prefix-safe-json 0.1.0 → 0.2.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/README.md +57 -3
- package/dist/coordinator/coordinator.d.ts +53 -0
- package/dist/coordinator/coordinator.d.ts.map +1 -0
- package/dist/coordinator/coordinator.js +477 -0
- package/dist/coordinator/coordinator.js.map +1 -0
- package/dist/coordinator/diagnostic-codes.d.ts +37 -0
- package/dist/coordinator/diagnostic-codes.d.ts.map +1 -0
- package/dist/coordinator/diagnostic-codes.js +48 -0
- package/dist/coordinator/diagnostic-codes.js.map +1 -0
- package/dist/coordinator/protocol.d.ts +62 -0
- package/dist/coordinator/protocol.d.ts.map +1 -0
- package/dist/coordinator/protocol.js +2 -0
- package/dist/coordinator/protocol.js.map +1 -0
- package/dist/coordinator/types.d.ts +104 -0
- package/dist/coordinator/types.d.ts.map +1 -0
- package/dist/coordinator/types.js +7 -0
- package/dist/coordinator/types.js.map +1 -0
- package/dist/diagnostics/codes.d.ts +24 -0
- package/dist/diagnostics/codes.d.ts.map +1 -0
- package/dist/diagnostics/codes.js +28 -0
- package/dist/diagnostics/codes.js.map +1 -0
- package/dist/diagnostics/factory.d.ts +8 -0
- package/dist/diagnostics/factory.d.ts.map +1 -0
- package/dist/diagnostics/factory.js +17 -0
- package/dist/diagnostics/factory.js.map +1 -0
- package/dist/gate/decide.d.ts +27 -0
- package/dist/gate/decide.d.ts.map +1 -0
- package/dist/gate/decide.js +179 -0
- package/dist/gate/decide.js.map +1 -0
- package/dist/gate/gate.d.ts +25 -0
- package/dist/gate/gate.d.ts.map +1 -0
- package/dist/gate/gate.js +96 -0
- package/dist/gate/gate.js.map +1 -0
- package/dist/gate/types.d.ts +184 -0
- package/dist/gate/types.d.ts.map +1 -0
- package/dist/gate/types.js +2 -0
- package/dist/gate/types.js.map +1 -0
- package/dist/grammar/frame.d.ts +58 -0
- package/dist/grammar/frame.d.ts.map +1 -0
- package/dist/grammar/frame.js +87 -0
- package/dist/grammar/frame.js.map +1 -0
- package/dist/grammar/pointer.d.ts +10 -0
- package/dist/grammar/pointer.d.ts.map +1 -0
- package/dist/grammar/pointer.js +20 -0
- package/dist/grammar/pointer.js.map +1 -0
- package/dist/grammar/stack.d.ts +73 -0
- package/dist/grammar/stack.d.ts.map +1 -0
- package/dist/grammar/stack.js +168 -0
- package/dist/grammar/stack.js.map +1 -0
- package/dist/guard/ai-sdk.d.ts +48 -0
- package/dist/guard/ai-sdk.d.ts.map +1 -0
- package/dist/guard/ai-sdk.js +51 -0
- package/dist/guard/ai-sdk.js.map +1 -0
- package/dist/guard/provider-guard.d.ts +4 -0
- package/dist/guard/provider-guard.d.ts.map +1 -0
- package/dist/guard/provider-guard.js +38 -0
- package/dist/guard/provider-guard.js.map +1 -0
- package/dist/guard/types.d.ts +48 -0
- package/dist/guard/types.d.ts.map +1 -0
- package/dist/guard/types.js +2 -0
- package/dist/guard/types.js.map +1 -0
- package/dist/index.d.ts +85 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +99 -0
- package/dist/index.js.map +1 -0
- package/dist/lexer/scanner.d.ts +106 -0
- package/dist/lexer/scanner.d.ts.map +1 -0
- package/dist/lexer/scanner.js +658 -0
- package/dist/lexer/scanner.js.map +1 -0
- package/dist/lexer/states.d.ts +31 -0
- package/dist/lexer/states.d.ts.map +1 -0
- package/dist/lexer/states.js +35 -0
- package/dist/lexer/states.js.map +1 -0
- package/dist/lexer/tokens.d.ts +22 -0
- package/dist/lexer/tokens.d.ts.map +1 -0
- package/dist/lexer/tokens.js +22 -0
- package/dist/lexer/tokens.js.map +1 -0
- package/dist/limits.d.ts +14 -0
- package/dist/limits.d.ts.map +1 -0
- package/dist/limits.js +23 -0
- package/dist/limits.js.map +1 -0
- package/dist/parser.d.ts +6 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +922 -0
- package/dist/parser.js.map +1 -0
- package/dist/providers/adapter.d.ts +10 -0
- package/dist/providers/adapter.d.ts.map +1 -0
- package/dist/providers/adapter.js +2 -0
- package/dist/providers/adapter.js.map +1 -0
- package/dist/providers/ai-sdk.d.ts +63 -0
- package/dist/providers/ai-sdk.d.ts.map +1 -0
- package/dist/providers/ai-sdk.js +240 -0
- package/dist/providers/ai-sdk.js.map +1 -0
- package/dist/providers/anthropic.d.ts +45 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +112 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/gemini.d.ts +31 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +94 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/openai-compatible.d.ts +33 -0
- package/dist/providers/openai-compatible.d.ts.map +1 -0
- package/dist/providers/openai-compatible.js +160 -0
- package/dist/providers/openai-compatible.js.map +1 -0
- package/dist/providers/openai.d.ts +55 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +263 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/openrouter.d.ts +35 -0
- package/dist/providers/openrouter.d.ts.map +1 -0
- package/dist/providers/openrouter.js +55 -0
- package/dist/providers/openrouter.js.map +1 -0
- package/dist/semantic/builder.d.ts +55 -0
- package/dist/semantic/builder.d.ts.map +1 -0
- package/dist/semantic/builder.js +140 -0
- package/dist/semantic/builder.js.map +1 -0
- package/dist/semantic/events.d.ts +2 -0
- package/dist/semantic/events.d.ts.map +1 -0
- package/dist/semantic/events.js +5 -0
- package/dist/semantic/events.js.map +1 -0
- package/dist/semantic/snapshot.d.ts +56 -0
- package/dist/semantic/snapshot.d.ts.map +1 -0
- package/dist/semantic/snapshot.js +230 -0
- package/dist/semantic/snapshot.js.map +1 -0
- package/dist/types.d.ts +156 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utf8/decoder.d.ts +53 -0
- package/dist/utf8/decoder.d.ts.map +1 -0
- package/dist/utf8/decoder.js +323 -0
- package/dist/utf8/decoder.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { ScannerState } from "./states.js";
|
|
2
|
+
import type { Token } from "./tokens.js";
|
|
3
|
+
import type { Diagnostic, RepairAction, ParserOptions } from "../types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Incremental JSON scanner.
|
|
6
|
+
* Feed characters one at a time via feedChar().
|
|
7
|
+
* Collect tokens via takeTokens().
|
|
8
|
+
*/
|
|
9
|
+
export declare class Scanner {
|
|
10
|
+
private options;
|
|
11
|
+
private maxStringBytes;
|
|
12
|
+
constructor(options?: ParserOptions);
|
|
13
|
+
private state;
|
|
14
|
+
private tokens;
|
|
15
|
+
private diagnostics;
|
|
16
|
+
private repairs;
|
|
17
|
+
private stringBuffer;
|
|
18
|
+
private stringIsKey;
|
|
19
|
+
private stringByteStart;
|
|
20
|
+
private unicodeHexBuffer;
|
|
21
|
+
private highSurrogate;
|
|
22
|
+
/** Tracks position in surrogate pair sequence: 0=initial, 1=saw backslash, 2=saw 'u' */
|
|
23
|
+
private surrogatePhase;
|
|
24
|
+
private numberBuffer;
|
|
25
|
+
private numberByteStart;
|
|
26
|
+
private numberHasDigit;
|
|
27
|
+
private literalTarget;
|
|
28
|
+
private literalIndex;
|
|
29
|
+
private literalByteStart;
|
|
30
|
+
/** Byte offset of the current character being fed. Set by the caller. */
|
|
31
|
+
private currentByteOffset;
|
|
32
|
+
/** Whether we're in a key position for string parsing. */
|
|
33
|
+
private nextStringIsKey;
|
|
34
|
+
get currentState(): ScannerState;
|
|
35
|
+
/**
|
|
36
|
+
* Feed a single character to the scanner.
|
|
37
|
+
* @param ch - The character to process.
|
|
38
|
+
* @param byteOffset - Absolute byte offset of this character in the input stream.
|
|
39
|
+
* @param charByteLength - Number of bytes this character occupies in UTF-8.
|
|
40
|
+
*/
|
|
41
|
+
feedChar(ch: string, byteOffset: number, charByteLength: number): void;
|
|
42
|
+
/**
|
|
43
|
+
* Take all tokens accumulated since the last call.
|
|
44
|
+
* Clears the internal token buffer.
|
|
45
|
+
*/
|
|
46
|
+
takeTokens(): Token[];
|
|
47
|
+
/**
|
|
48
|
+
* Take all diagnostics accumulated since the last call.
|
|
49
|
+
* Clears the internal diagnostic buffer.
|
|
50
|
+
*/
|
|
51
|
+
takeDiagnostics(): Diagnostic[];
|
|
52
|
+
takeRepairs(): RepairAction[];
|
|
53
|
+
/**
|
|
54
|
+
* Set whether the next string to be scanned should be treated as an object key.
|
|
55
|
+
*/
|
|
56
|
+
setNextStringIsKey(isKey: boolean): void;
|
|
57
|
+
/**
|
|
58
|
+
* Get info about any pending (incomplete) value.
|
|
59
|
+
*/
|
|
60
|
+
getPendingInfo(): {
|
|
61
|
+
type: "string" | "number" | "literal" | "unicode_escape" | "surrogate" | "none";
|
|
62
|
+
buffer: string;
|
|
63
|
+
byteStart: number;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Check numberBuffer against the parts of RFC 8259's number grammar that
|
|
67
|
+
* aren't already enforced by the state machine's character-by-character
|
|
68
|
+
* transitions: no leading zero in the integer part, and no trailing
|
|
69
|
+
* "." or exponent marker with no digit following it. Returns an error
|
|
70
|
+
* message if invalid, or null if the buffer is a well-formed number.
|
|
71
|
+
*/
|
|
72
|
+
private numberGrammarError;
|
|
73
|
+
/**
|
|
74
|
+
* Attempt to finalize a pending number (at end of input or finish()).
|
|
75
|
+
* - "finalized": a valid number token was emitted.
|
|
76
|
+
* - "invalid": there was a complete-looking buffer, but it violates JSON
|
|
77
|
+
* number grammar (leading zero, trailing "." or exponent marker with
|
|
78
|
+
* no digit after it). Nothing is emitted; numberBuffer is left as-is.
|
|
79
|
+
* - "not_ready": scanner isn't in a finalizable number state at all
|
|
80
|
+
* (e.g. buffer is just "-", or ends right at a bare "e"/"E" with no
|
|
81
|
+
* sign or digit yet) — unchanged pre-existing behavior, callers should
|
|
82
|
+
* not newly diagnose this case.
|
|
83
|
+
*/
|
|
84
|
+
finalizeNumber(): "finalized" | "invalid" | "not_ready";
|
|
85
|
+
/**
|
|
86
|
+
* Attempt to finalize a pending literal (at end of input or finish).
|
|
87
|
+
* Returns true if a literal token was emitted.
|
|
88
|
+
*/
|
|
89
|
+
finalizeLiteral(): boolean;
|
|
90
|
+
private processStructural;
|
|
91
|
+
private processString;
|
|
92
|
+
private processEscape;
|
|
93
|
+
private processUnicodeEscape;
|
|
94
|
+
private processSurrogatePending;
|
|
95
|
+
private processNumber;
|
|
96
|
+
private processLiteral;
|
|
97
|
+
private beginString;
|
|
98
|
+
private beginNumber;
|
|
99
|
+
private beginLiteral;
|
|
100
|
+
private commitNumber;
|
|
101
|
+
private isValueTerminator;
|
|
102
|
+
private reprocessChar;
|
|
103
|
+
private emitToken;
|
|
104
|
+
private emitDiagnostic;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=scanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/lexer/scanner.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAsB3E;;;;GAIG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,cAAc,CAAS;gBAEnB,OAAO,CAAC,EAAE,aAAa;IAQnC,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,OAAO,CAAsB;IAGrC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAK;IAG5B,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,aAAa,CAAK;IAC1B,wFAAwF;IACxF,OAAO,CAAC,cAAc,CAAK;IAG3B,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,gBAAgB,CAAK;IAG7B,yEAAyE;IACzE,OAAO,CAAC,iBAAiB,CAAK;IAG9B,0DAA0D;IAC1D,OAAO,CAAC,eAAe,CAAS;IAEhC,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAqCtE;;;OAGG;IACH,UAAU,IAAI,KAAK,EAAE;IAMrB;;;OAGG;IACH,eAAe,IAAI,UAAU,EAAE;IAM/B,WAAW,IAAI,YAAY,EAAE;IAM7B;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIxC;;OAEG;IACH,cAAc,IAAI;QAChB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,GAAG,WAAW,GAAG,MAAM,CAAC;QAChF,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB;IA2CD;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;;;;;;;;;OAUG;IACH,cAAc,IAAI,WAAW,GAAG,SAAS,GAAG,WAAW;IAuBvD;;;OAGG;IACH,eAAe,IAAI,OAAO;IA8B1B,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,aAAa;IAiErB,OAAO,CAAC,aAAa;IA6CrB,OAAO,CAAC,oBAAoB;IA8D5B,OAAO,CAAC,uBAAuB;IAqC/B,OAAO,CAAC,aAAa;IAiHrB,OAAO,CAAC,cAAc;IAwDtB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,cAAc;CAWvB"}
|