prefix-safe-json 0.6.1 → 0.6.3
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 +105 -131
- package/dist/parser.js +13 -22
- package/dist/parser.js.map +1 -1
- package/dist/utf8/decoder.d.ts +2 -0
- package/dist/utf8/decoder.d.ts.map +1 -1
- package/dist/utf8/decoder.js +41 -12
- package/dist/utf8/decoder.js.map +1 -1
- package/dist/validation/standard-schema-validator.d.ts.map +1 -1
- package/dist/validation/standard-schema-validator.js +5 -2
- package/dist/validation/standard-schema-validator.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -4,24 +4,56 @@
|
|
|
4
4
|
[](https://github.com/canblmz1/prefix-safe-json/actions/workflows/ci.yml)
|
|
5
5
|
[](#license)
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
parsed
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
Keep an incomplete or ambiguously identified LLM tool call from reaching your
|
|
8
|
+
application's tools. `prefix-safe-json` checks the original argument stream,
|
|
9
|
+
completion signals and schema **before your application runs a tool**, even
|
|
10
|
+
when the SDK's parsed arguments look usable.
|
|
11
|
+
|
|
12
|
+
The core package returns one-shot decisions; your application performs the
|
|
13
|
+
side effect. The separate integration below keeps tool execution in the SDK.
|
|
14
|
+
Provider signals must accurately describe completion;
|
|
14
15
|
see the [provider-honesty limit](examples/openai-consumer/README.md).
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
For AI SDK 7 with OpenAI-compatible Chat Completions, the experimental
|
|
18
|
+
[guarded chat integration](packages/ai-sdk/README.md) keeps your ordinary
|
|
19
|
+
`execute` callbacks and the SDK's automatic tool-result continuation:
|
|
20
|
+
|
|
21
|
+
For a new application, install the separately versioned companion and a tested SDK/provider
|
|
22
|
+
pair together. In an existing application, keep your supported locked peer
|
|
23
|
+
versions; see the integration's installation instructions.
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
npm install --save-exact psj-ai-sdk@0.3.2 prefix-safe-json@0.6.2 ai@7.0.143 @ai-sdk/openai-compatible@3.0.71
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { createGuardedChat } from "psj-ai-sdk";
|
|
31
|
+
import { stepCountIs } from "ai";
|
|
32
|
+
|
|
33
|
+
const chat = createGuardedChat({ name: "provider", baseURL, apiKey });
|
|
34
|
+
const result = chat({ model: modelId, tools, prompt, stopWhen: stepCountIs(5) });
|
|
19
35
|
```
|
|
20
36
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
37
|
+
Text/reasoning can stream while tool calls wait for the entire response and
|
|
38
|
+
batch validation. Optional local recording saves refused responses for
|
|
39
|
+
offline wire-policy replay and explicit CI expectations. See the integration's
|
|
40
|
+
supported policies and provisional-text limits. Run the [offline example](examples/guarded-chat/)
|
|
41
|
+
without a key. The core runtime gains no AI SDK dependency.
|
|
42
|
+
|
|
43
|
+
For prepublication review, use the two packed
|
|
44
|
+
artifacts described in the [evaluation kit](docs/COMPANION_EVALUATION.md).
|
|
45
|
+
The [whole-batch contract](docs/BATCH_CONTRACT.md) distinguishes the fixed
|
|
46
|
+
0.3.2 policy from older previews. The kit also compares identical responses
|
|
47
|
+
through the current native SDK, a small native check and the companion.
|
|
48
|
+
|
|
49
|
+
For caller-owned dispatch, install `prefix-safe-json` from npm and use the
|
|
50
|
+
[complete TypeScript agent-loop example](examples/typed-agent-loop/):
|
|
51
|
+
[download its ZIP](https://github.com/canblmz1/prefix-safe-json/releases/download/v0.6.1/prefix-safe-json-0.6.1-typed-loop.zip),
|
|
52
|
+
extract it, then run `npm install --engine-strict --no-audit --no-fund` and
|
|
53
|
+
`npm start` with Node 22+. It uses published PSJ `0.6.1`, runs tools, sends
|
|
54
|
+
their matched results back to the model, and returns a final answer. Five
|
|
55
|
+
authored scenarios use memory counters; no API key or repository build is needed.
|
|
56
|
+
[Choose another SDK](examples/README.md).
|
|
25
57
|
|
|
26
58
|
## Safe execution example
|
|
27
59
|
|
|
@@ -83,27 +115,37 @@ key. The caller owns dispatch and continuation. Schema transformations,
|
|
|
83
115
|
defaults and removed keys are refused; [validation details](docs/VALIDATION.md#typed-raw-input-guard).
|
|
84
116
|
|
|
85
117
|
To try the published version without cloning this repository, download the
|
|
86
|
-
[0.6.
|
|
118
|
+
[0.6.1 typed-loop example ZIP](https://github.com/canblmz1/prefix-safe-json/releases/download/v0.6.1/prefix-safe-json-0.6.1-typed-loop.zip),
|
|
87
119
|
extract it, then run `npm install --engine-strict --no-audit --no-fund` and
|
|
88
120
|
`npm start` inside the extracted directory. Node 22+ is required. The example
|
|
89
121
|
uses authored model responses and memory counters; no API key is needed.
|
|
90
122
|
|
|
91
123
|
## When this adds value
|
|
92
124
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
125
|
+
PSJ fits applications that can retain original stream evidence and own tool
|
|
126
|
+
dispatch, especially when they need the same completion and identity policy
|
|
127
|
+
across providers. Check your integration before adding it:
|
|
128
|
+
|
|
129
|
+
| Your current boundary | First step |
|
|
130
|
+
| --- | --- |
|
|
131
|
+
| You retain argument deltas and control dispatch | Compare a harmless tool with and without the guard |
|
|
132
|
+
| Your SDK already refuses the failure you care about | Test that native behavior first; an extra dependency may add no value |
|
|
133
|
+
| Your framework runs tools before exposing raw events | Find a pre-execution hook or keep the native path; observing later cannot prevent an earlier effect |
|
|
134
|
+
| You want partial JSON for a UI or recovery of truncated XML | Use a preview/recovery tool; PSJ's execution policy does not provide that behavior |
|
|
135
|
+
|
|
136
|
+
The [integration guide](docs/TRY_IN_YOUR_PROJECT.md) explains the migration
|
|
137
|
+
steps and [external fit audit](docs/EXTERNAL_FIT_AUDIT.md) records useful
|
|
138
|
+
integrations and cases where no additional benefit was shown.
|
|
139
|
+
The [usability audit](docs/USABILITY_AUDIT.md) separates reproduced integration
|
|
140
|
+
blockers, fixes and the limits that still need evaluation.
|
|
99
141
|
|
|
100
142
|
For a concrete difference beyond unsafe termination, the
|
|
101
143
|
[identity comparison](docs/IDENTITY_TRIAL.md) feeds complete, schema-valid
|
|
102
144
|
calls through real `streamText()`: native execution records both calls when
|
|
103
145
|
they reuse an ID; the locked PSJ path refuses that ambiguous identity. With
|
|
104
146
|
distinct IDs, both paths record both calls. These are authored fixtures,
|
|
105
|
-
not live-provider or WorkflowAgent certification.
|
|
106
|
-
|
|
147
|
+
not live-provider or WorkflowAgent certification. Select `ai-sdk` in the
|
|
148
|
+
launcher for this comparison, or run `npm run identity` in that installed consumer.
|
|
107
149
|
|
|
108
150
|
## Replay an incident and keep it as a regression test
|
|
109
151
|
|
|
@@ -112,104 +154,53 @@ Have a recorded Anthropic or AI SDK tool stream? The experimental
|
|
|
112
154
|
and compares it with reviewed expectations in CI. It runs from a repository
|
|
113
155
|
checkout without model requests or tool dispatch.
|
|
114
156
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
[
|
|
119
|
-
|
|
157
|
+
To test an SDK upgrade with original HTTP/SSE bytes, use the separate
|
|
158
|
+
[experimental regression development package](packages/regression/README.md).
|
|
159
|
+
It checks actual installed SDK inputs, harmless effects and paired results
|
|
160
|
+
in CI. Install its [experimental preview tarball](https://github.com/canblmz1/prefix-safe-json/releases/tag/psj-regression-v0.1.0)
|
|
161
|
+
as a development dependency; it is distributed separately from the PSJ
|
|
162
|
+
runtime package.
|
|
120
163
|
|
|
121
|
-
|
|
122
|
-
node scripts/try-npm-demo.mjs tanstack
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
Choose `ai-sdk`, `openai`, `anthropic`, `langchain`, `openrouter` or `tanstack`.
|
|
126
|
-
Every example installs published PSJ `0.5.4`; no API key or repository build
|
|
127
|
-
is needed. The ZIP contains example sources, the launcher and licenses;
|
|
128
|
-
dependencies are downloaded from npm. See the [trial index](examples/README.md)
|
|
129
|
-
for the SDK versions and checks. The earlier dated downloads remain unchanged.
|
|
164
|
+
## Run a standalone npm demo
|
|
130
165
|
|
|
131
|
-
|
|
132
|
-
without installing the repository's development dependencies:
|
|
166
|
+
From this checkout, with Node 22+ and npm:
|
|
133
167
|
|
|
134
168
|
```bash
|
|
135
169
|
node scripts/try-npm-demo.mjs
|
|
136
170
|
```
|
|
137
171
|
|
|
138
|
-
The
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
`
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
zero. The installed-consumer check also passes with `ai@7.0.137`, matching the
|
|
171
|
-
version in [the parallel-call truncation report](https://github.com/vercel/ai/issues/22914).
|
|
172
|
-
It does not implement UI state changes or continuation after a truncated step.
|
|
173
|
-
|
|
174
|
-
The launcher then runs `npm run identity`, including an unlocked native
|
|
175
|
-
control with harmless SDK-executed counters. Expected native / PSJ effects
|
|
176
|
-
are **2 / 2** for distinct IDs and **2 / 0** for duplicate IDs. The PSJ path
|
|
177
|
-
keeps every SDK callback at zero and uses one-shot caller dispatch. CI checks
|
|
178
|
-
all three examples with `ai@7.0.77`, `7.0.128`, `7.0.137` and `7.0.140`.
|
|
179
|
-
See the [identity trial](docs/IDENTITY_TRIAL.md) for the original-event
|
|
180
|
-
boundary and the distinction from WorkflowAgent's result-pairing report.
|
|
181
|
-
|
|
182
|
-
Using LangChain? The [standalone SDK comparison](examples/langchain-consumer/README.md)
|
|
183
|
-
feeds the same original OpenAI-compatible fixture to `ChatOpenAI.stream()` and
|
|
184
|
-
PSJ, checking that token-limit calls produce zero effects. It is a mock-transport
|
|
185
|
-
comparison; your application still needs access to original provider evidence.
|
|
186
|
-
|
|
187
|
-
Using the official Anthropic SDK? Run `node scripts/try-npm-demo.mjs anthropic`
|
|
188
|
-
for the [installed-package terminal-boundary trial](examples/anthropic-consumer/README.md).
|
|
189
|
-
It checks complete, token-limited, missing-`message_stop`, and post-terminal
|
|
190
|
-
argument cases through the SDK's actual SSE parser. The LangChain comparison
|
|
191
|
-
can also be launched with `node scripts/try-npm-demo.mjs langchain`.
|
|
192
|
-
|
|
193
|
-
Using the official OpenAI SDK? Run `node scripts/try-npm-demo.mjs openai` for
|
|
194
|
-
the [installed-package Chat Completions trial](examples/openai-consumer/README.md).
|
|
195
|
-
It checks complete and interrupted calls, duplicate IDs and late argument
|
|
196
|
-
evidence through `openai@7.34.0`. It also demonstrates a limit: PSJ cannot detect
|
|
197
|
-
upstream truncation when the provider supplies complete JSON and falsely
|
|
198
|
-
reports successful termination. These are mock-transport checks, not live
|
|
199
|
-
OpenAI or vLLM certification.
|
|
200
|
-
|
|
201
|
-
Using OpenRouter Agent? Run `node scripts/try-npm-demo.mjs openrouter` for the
|
|
202
|
-
[manual dispatch and continuation trial](examples/openrouter-consumer/README.md).
|
|
203
|
-
It checks that accepted tool results reach the next model request with matching
|
|
204
|
-
call IDs, while invalid batches cause zero effects and no continuation request.
|
|
205
|
-
It uses authored SSE through the installed SDK; no live model call is made.
|
|
206
|
-
|
|
207
|
-
Using TanStack AI with OpenRouter? Run `node scripts/try-npm-demo.mjs tanstack`
|
|
208
|
-
for the [installed-package comparison](examples/tanstack-consumer/README.md).
|
|
209
|
-
It checks raw native finish reasons, usage trailers and paired results using
|
|
210
|
-
published PSJ `0.5.4`, harmless counters and authored SSE. The
|
|
211
|
-
[native-first standalone trial](https://gist.github.com/canblmz1/ba1e62d792da37d3f420c328f56d81be)
|
|
212
|
-
also offers a PSJ-free baseline and an optional comparison from npm or source.
|
|
172
|
+
The default `guarded` trial installs companion `0.3.2`, core
|
|
173
|
+
PSJ `0.6.2`, AI SDK `7.0.143` and OpenAI-compatible provider `3.0.71`.
|
|
174
|
+
It uses ordinary SDK callbacks and automatic result continuation. The
|
|
175
|
+
explicit `typed` trial installs published PSJ `0.6.1`, AI SDK `7.0.143`
|
|
176
|
+
and Zod `4.4.3` in a separate temporary project. It checks a complete
|
|
177
|
+
tool → result → model loop, token limits, duplicate IDs, cancellation and a
|
|
178
|
+
tool error. The complete control returns a final answer; refused batches do
|
|
179
|
+
not continue. The directory stays available for editing and rerunning.
|
|
180
|
+
|
|
181
|
+
Choose another boundary by passing one of these names:
|
|
182
|
+
|
|
183
|
+
| Choice | PSJ pin | What to inspect |
|
|
184
|
+
| --- | --- | --- |
|
|
185
|
+
| `guarded` (default) | core `0.6.2` + companion `0.3.2` | [Native callbacks and automatic continuation](examples/guarded-chat/) |
|
|
186
|
+
| `typed` | `0.6.1` | [Typed inputs and caller-owned continuation](examples/typed-agent-loop/) |
|
|
187
|
+
| `ai-sdk` | `0.5.4` | [Termination, interleaved calls and native/PSJ identity comparison](docs/IDENTITY_TRIAL.md) |
|
|
188
|
+
| `openai` | `0.5.4` | [Original Chat Completions evidence and provider-honesty limit](examples/openai-consumer/README.md) |
|
|
189
|
+
| `anthropic` | `0.5.4` | [Final message termination and interrupted streams](examples/anthropic-consumer/README.md) |
|
|
190
|
+
| `langchain` | `0.5.4` | [Parsed candidates versus original provider evidence](examples/langchain-consumer/README.md) |
|
|
191
|
+
| `openrouter` | `0.5.4` | [Raw events, manual dispatch and paired results](examples/openrouter-consumer/README.md) |
|
|
192
|
+
| `tanstack` | `0.5.4` | [Native finish reasons, usage trailers and server-tool results](examples/tanstack-consumer/README.md) |
|
|
193
|
+
|
|
194
|
+
All trials use authored fixtures and harmless counters; they need no API key,
|
|
195
|
+
model server or repository build. Installation requires npm registry access.
|
|
196
|
+
A passing fixture is not a live-provider or own-project integration result.
|
|
197
|
+
The older [six-SDK ZIP](https://github.com/canblmz1/prefix-safe-json/releases/download/v0.5.4/prefix-safe-json-0.5.4-trials.zip)
|
|
198
|
+
retains its original six choices and `0.5.4` pins; `typed` is available in
|
|
199
|
+
the current checkout and the separate `0.6.1` ZIP linked above.
|
|
200
|
+
|
|
201
|
+
To connect a real application, follow the [integration guide](docs/TRY_IN_YOUR_PROJECT.md).
|
|
202
|
+
Your application must retain original evidence, stop automatic execution and
|
|
203
|
+
send accepted tool results into its own continuation loop.
|
|
213
204
|
|
|
214
205
|
## Why parse success is not enough
|
|
215
206
|
|
|
@@ -378,24 +369,7 @@ const result = parser.finish({ reason: "complete" });
|
|
|
378
369
|
console.log(result.executable);
|
|
379
370
|
```
|
|
380
371
|
|
|
381
|
-
## Product experiment: Devam
|
|
382
|
-
|
|
383
|
-
[Devam](https://github.com/canblmz1/devam-prototype) is a separate browser prototype for
|
|
384
|
-
carrying the current request, completion claims, manual reviews and unfinished
|
|
385
|
-
work between AI conversations. It includes examples for everyday users,
|
|
386
|
-
people coding with AI, and AI application developers.
|
|
387
|
-
[Try the live prototype](https://canblmz1.github.io/devam-prototype/).
|
|
388
|
-
Development continues in its own repository; it is not part of the PSJ npm
|
|
389
|
-
package and does not currently depend on PSJ. The original experiment remains
|
|
390
|
-
here as a tested snapshot. Run that snapshot without dependencies or API keys:
|
|
391
|
-
|
|
392
|
-
```bash
|
|
393
|
-
node experiments/devam/server.mjs
|
|
394
|
-
```
|
|
395
372
|
|
|
396
|
-
Open `http://127.0.0.1:4317`. The prototype is experimental; its
|
|
397
|
-
[research notes](experiments/devam/RESEARCH.md) distinguish reported pain,
|
|
398
|
-
existing alternatives and unvalidated product demand.
|
|
399
373
|
|
|
400
374
|
## Development
|
|
401
375
|
|
package/dist/parser.js
CHANGED
|
@@ -120,33 +120,15 @@ class Parser {
|
|
|
120
120
|
};
|
|
121
121
|
this.addRepair(repair);
|
|
122
122
|
}
|
|
123
|
-
//
|
|
124
|
-
for (const err of decoded.errors) {
|
|
125
|
-
// Every UTF-8 decode failure kind (overlong, out_of_range,
|
|
126
|
-
// invalid_start_byte, invalid_continuation) maps to the same
|
|
127
|
-
// machine-readable code - there is no per-kind DiagnosticCode - so
|
|
128
|
-
// `err.kind` only distinguishes the free-text message below, not the
|
|
129
|
-
// code itself. A branch here would be equivalent under every mutation
|
|
130
|
-
// (the resulting `code` value can never differ), so there is no
|
|
131
|
-
// branch to test.
|
|
132
|
-
const diag = createDiagnostic(DiagnosticCode.E_INVALID_UTF8, "error", err.byteOffset, `Invalid UTF-8: ${err.kind} at byte ${err.byteOffset}`, false);
|
|
133
|
-
this.addDiagnostic(diag);
|
|
134
|
-
this.syntax_ = "invalid";
|
|
135
|
-
this.terminal = true;
|
|
136
|
-
return {
|
|
137
|
-
acceptedBytes: decoded.consumed,
|
|
138
|
-
emittedEvents: this.events.emittedDuringPush,
|
|
139
|
-
syntax: this.syntax_,
|
|
140
|
-
terminal: true,
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
// Feed decoded text to scanner character by character
|
|
123
|
+
// Commit only the verified prefix, never recovery text after a UTF-8 error.
|
|
144
124
|
const text = decoded.text;
|
|
145
125
|
// Track byte positions via UTF-8 encoding
|
|
146
126
|
let bytePos = this.consumedBytes;
|
|
127
|
+
let codePointIndex = 0;
|
|
147
128
|
for (const ch of text) {
|
|
148
|
-
if (this.terminal)
|
|
129
|
+
if (this.terminal || codePointIndex === decoded.validPrefixCodePoints)
|
|
149
130
|
break;
|
|
131
|
+
codePointIndex++;
|
|
150
132
|
const charBytes = getUtf8ByteLength(ch);
|
|
151
133
|
// If root is already complete, handle trailing content at parser level
|
|
152
134
|
if (this.rootComplete) {
|
|
@@ -231,6 +213,15 @@ class Parser {
|
|
|
231
213
|
bytePos += charBytes;
|
|
232
214
|
}
|
|
233
215
|
this.consumedBytes = bytePos;
|
|
216
|
+
// Report UTF-8 failure after the prefix's events, unless an earlier
|
|
217
|
+
// scanner/grammar/resource failure already stopped the parser.
|
|
218
|
+
const err = decoded.errors[0];
|
|
219
|
+
if (err && !this.terminal) {
|
|
220
|
+
const diag = createDiagnostic(DiagnosticCode.E_INVALID_UTF8, "error", err.byteOffset, `Invalid UTF-8: ${err.kind} at byte ${err.byteOffset}`, false);
|
|
221
|
+
this.addDiagnostic(diag);
|
|
222
|
+
this.syntax_ = "invalid";
|
|
223
|
+
this.terminal = true;
|
|
224
|
+
}
|
|
234
225
|
return {
|
|
235
226
|
acceptedBytes: decoded.consumed,
|
|
236
227
|
emittedEvents: this.events.emittedDuringPush,
|
package/dist/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/utf8/decoder.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export interface DecodeResult {
|
|
|
8
8
|
errors: Utf8Error[];
|
|
9
9
|
/** True if BOM was detected and stripped during this chunk. */
|
|
10
10
|
strippedBom: boolean;
|
|
11
|
+
/** Decoded code points before the first error; absent on error-free chunks. */
|
|
12
|
+
validPrefixCodePoints?: number;
|
|
11
13
|
}
|
|
12
14
|
export interface Utf8Error {
|
|
13
15
|
kind: "invalid_start_byte" | "invalid_continuation" | "overlong" | "out_of_range";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/utf8/decoder.ts"],"names":[],"mappings":"AAeA,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/utf8/decoder.ts"],"names":[],"mappings":"AAeA,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EACA,oBAAoB,GACpB,sBAAsB,GACtB,UAAU,GACV,cAAc,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,4DAA4D;IAC5D,OAAO,CAAC,OAAO,CAAgB;IAC/B,gEAAgE;IAChE,OAAO,CAAC,eAAe,CAAK;IAC5B,qDAAqD;IACrD,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,aAAa,CAAS;IAE9B;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY;IAsOvC;;OAEG;IACH,aAAa,IAAI,OAAO;IAKxB;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAK9B;;;OAGG;IACH,OAAO,CAAC,cAAc;CA6DvB;AAoBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAGpD"}
|
package/dist/utf8/decoder.js
CHANGED
|
@@ -32,10 +32,15 @@ export class Utf8Decoder {
|
|
|
32
32
|
decode(bytes) {
|
|
33
33
|
const errors = [];
|
|
34
34
|
const codePoints = [];
|
|
35
|
+
let validPrefixCodePoints;
|
|
36
|
+
const recordError = (error) => {
|
|
37
|
+
validPrefixCodePoints ??= codePoints.length;
|
|
38
|
+
errors.push(error);
|
|
39
|
+
};
|
|
35
40
|
let strippedBom = false;
|
|
36
41
|
let i = 0;
|
|
37
|
-
//
|
|
38
|
-
if (!this.checkedForBom) {
|
|
42
|
+
// Empty chunks must not decide whether the stream starts with a BOM.
|
|
43
|
+
if (!this.checkedForBom && bytes.length > 0) {
|
|
39
44
|
while (this.bomBuffer.length < 3 && i < bytes.length) {
|
|
40
45
|
this.bomBuffer.push(bytes[i]);
|
|
41
46
|
i++;
|
|
@@ -76,14 +81,15 @@ export class Utf8Decoder {
|
|
|
76
81
|
const startOffset = this.totalOffset;
|
|
77
82
|
// If we have pending bytes from a previous chunk, try to complete the sequence
|
|
78
83
|
if (this.pending.length > 0) {
|
|
84
|
+
const pendingOffset = startOffset - this.pending.length;
|
|
79
85
|
let brokenByInvalidContinuation = false;
|
|
80
86
|
while (i < bytes.length && this.pending.length < this.pendingExpected) {
|
|
81
87
|
const b = bytes[i];
|
|
82
88
|
if ((b & 0xc0) !== 0x80) {
|
|
83
89
|
// Not a valid continuation byte — the pending sequence is broken
|
|
84
|
-
|
|
90
|
+
recordError({
|
|
85
91
|
kind: "invalid_continuation",
|
|
86
|
-
byteOffset:
|
|
92
|
+
byteOffset: pendingOffset,
|
|
87
93
|
});
|
|
88
94
|
this.pending = [];
|
|
89
95
|
this.pendingExpected = 0;
|
|
@@ -102,9 +108,9 @@ export class Utf8Decoder {
|
|
|
102
108
|
// alongside the invalid_continuation one already pushed above.
|
|
103
109
|
if (!brokenByInvalidContinuation && this.pending.length === this.pendingExpected) {
|
|
104
110
|
// We have a complete sequence — decode it
|
|
105
|
-
const result = this.decodeSequence(this.pending,
|
|
111
|
+
const result = this.decodeSequence(this.pending, pendingOffset);
|
|
106
112
|
if (result.error) {
|
|
107
|
-
|
|
113
|
+
recordError(result.error);
|
|
108
114
|
}
|
|
109
115
|
else {
|
|
110
116
|
codePoints.push(result.codePoint);
|
|
@@ -122,6 +128,28 @@ export class Utf8Decoder {
|
|
|
122
128
|
while (i < bytes.length) {
|
|
123
129
|
const b = bytes[i];
|
|
124
130
|
const seqOffset = this.totalOffset;
|
|
131
|
+
// A short trailing sequence is incomplete only if its available
|
|
132
|
+
// continuation bytes are valid. Match the pending-sequence check
|
|
133
|
+
// above without waiting for bytes that cannot repair this sequence.
|
|
134
|
+
if ((b & 0xf0) === 0xe0 || (b & 0xf8) === 0xf0) {
|
|
135
|
+
const needed = (b & 0xf0) === 0xe0 ? 3 : 4;
|
|
136
|
+
if (i + needed > bytes.length) {
|
|
137
|
+
let invalidContinuation = false;
|
|
138
|
+
for (let j = i + 1; j < bytes.length; j++) {
|
|
139
|
+
if ((bytes[j] & 0xc0) !== 0x80) {
|
|
140
|
+
invalidContinuation = true;
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (invalidContinuation) {
|
|
145
|
+
recordError({ kind: "invalid_continuation", byteOffset: seqOffset });
|
|
146
|
+
// Preserve direct decoder recovery: retry bytes after the lead.
|
|
147
|
+
i++;
|
|
148
|
+
this.totalOffset++;
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
125
153
|
if (b <= 0x7f) {
|
|
126
154
|
// Single-byte ASCII
|
|
127
155
|
codePoints.push(b);
|
|
@@ -135,7 +163,7 @@ export class Utf8Decoder {
|
|
|
135
163
|
const seq = [b, bytes[i + 1]];
|
|
136
164
|
const result = this.decodeSequence(seq, seqOffset);
|
|
137
165
|
if (result.error) {
|
|
138
|
-
|
|
166
|
+
recordError(result.error);
|
|
139
167
|
i++;
|
|
140
168
|
this.totalOffset++;
|
|
141
169
|
}
|
|
@@ -163,7 +191,7 @@ export class Utf8Decoder {
|
|
|
163
191
|
const seq = [b, bytes[i + 1], bytes[i + 2]];
|
|
164
192
|
const result = this.decodeSequence(seq, seqOffset);
|
|
165
193
|
if (result.error) {
|
|
166
|
-
|
|
194
|
+
recordError(result.error);
|
|
167
195
|
i++;
|
|
168
196
|
this.totalOffset++;
|
|
169
197
|
}
|
|
@@ -190,7 +218,7 @@ export class Utf8Decoder {
|
|
|
190
218
|
const seq = [b, bytes[i + 1], bytes[i + 2], bytes[i + 3]];
|
|
191
219
|
const result = this.decodeSequence(seq, seqOffset);
|
|
192
220
|
if (result.error) {
|
|
193
|
-
|
|
221
|
+
recordError(result.error);
|
|
194
222
|
i++;
|
|
195
223
|
this.totalOffset++;
|
|
196
224
|
}
|
|
@@ -212,7 +240,7 @@ export class Utf8Decoder {
|
|
|
212
240
|
}
|
|
213
241
|
else {
|
|
214
242
|
// Invalid start byte (0x80-0xBF or 0xF8+)
|
|
215
|
-
|
|
243
|
+
recordError({
|
|
216
244
|
kind: "invalid_start_byte",
|
|
217
245
|
byteOffset: seqOffset,
|
|
218
246
|
});
|
|
@@ -222,13 +250,14 @@ export class Utf8Decoder {
|
|
|
222
250
|
}
|
|
223
251
|
const text = codePointsToString(codePoints);
|
|
224
252
|
const consumed = this.totalOffset - startOffset;
|
|
225
|
-
return { text, consumed, errors, strippedBom };
|
|
253
|
+
return { text, consumed, errors, strippedBom, validPrefixCodePoints };
|
|
226
254
|
}
|
|
227
255
|
/**
|
|
228
256
|
* Check if there are buffered incomplete bytes.
|
|
229
257
|
*/
|
|
230
258
|
hasIncomplete() {
|
|
231
|
-
return this.pending.length > 0
|
|
259
|
+
return this.pending.length > 0 ||
|
|
260
|
+
(!this.checkedForBom && this.bomBuffer.length > 0);
|
|
232
261
|
}
|
|
233
262
|
/**
|
|
234
263
|
* Get the byte offset where the incomplete sequence started.
|
package/dist/utf8/decoder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/utf8/decoder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/utf8/decoder.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAC9E,EAAE;AACF,oEAAoE;AACpE,2EAA2E;AAC3E,mDAAmD;AACnD,EAAE;AACF,oBAAoB;AACpB,0DAA0D;AAC1D,iCAAiC;AACjC,yCAAyC;AACzC,qDAAqD;AACrD,8EAA8E;AAyB9E;;;GAGG;AACH,MAAM,OAAO,WAAW;IACtB,4DAA4D;IACpD,OAAO,GAAa,EAAE,CAAC;IAC/B,gEAAgE;IACxD,eAAe,GAAG,CAAC,CAAC;IAC5B,qDAAqD;IAC7C,WAAW,GAAG,CAAC,CAAC;IAEhB,SAAS,GAAa,EAAE,CAAC;IACzB,aAAa,GAAG,KAAK,CAAC;IAE9B;;;OAGG;IACH,MAAM,CAAC,KAAiB;QACtB,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,qBAAyC,CAAC;QAC9C,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAQ,EAAE;YAC7C,qBAAqB,KAAK,UAAU,CAAC,MAAM,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC;QACF,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,CAAC;QAEV,qEAAqE;QACrE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBACrD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;gBACxC,CAAC,EAAE,CAAC;YACN,CAAC;YAED,MAAM,WAAW,GACf,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;gBAC5B,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;gBACzD,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAE5D,IAAI,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,2CAA2C;gBAC3C,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;YAC/D,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,eAAe,GAAG,IAAI,UAAU,EAAE,CAAC;YAEvC,IACE,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC;gBAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI;gBAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI;gBAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EAC1B,CAAC;gBACD,WAAW,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;gBACtB,iEAAiE;gBACjE,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrD,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxC,eAAe,GAAG,IAAI,UAAU,CAAC,oBAAoB,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxF,eAAe,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAC1C,eAAe,CAAC,GAAG,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,4DAA4D;gBAC5D,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxC,eAAe,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAClF,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpC,eAAe,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC/D,CAAC;YAED,qDAAqD;YACrD,CAAC,GAAG,CAAC,CAAC;YACN,KAAK,GAAG,eAAe,CAAC;QAC1B,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,+EAA+E;QAC/E,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,aAAa,GAAG,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACxD,IAAI,2BAA2B,GAAG,KAAK,CAAC;YACxC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBACtE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;gBAC7B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACxB,iEAAiE;oBACjE,WAAW,CAAC;wBACV,IAAI,EAAE,sBAAsB;wBAC5B,UAAU,EAAE,aAAa;qBAC1B,CAAC,CAAC;oBACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;oBAClB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;oBACzB,2BAA2B,GAAG,IAAI,CAAC;oBACnC,2DAA2D;oBAC3D,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrB,CAAC,EAAE,CAAC;gBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;YAED,uEAAuE;YACvE,iEAAiE;YACjE,mEAAmE;YACnE,mEAAmE;YACnE,+DAA+D;YAC/D,IAAI,CAAC,2BAA2B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;gBACjF,0CAA0C;gBAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAChC,IAAI,CAAC,OAAO,EACZ,aAAa,CACd,CAAC;gBACF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACpC,CAAC;gBACD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;gBAClB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,CAAC,2BAA2B,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC7D,wCAAwC;gBACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;gBAChD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;YACrD,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;YAEnC,gEAAgE;YAChE,iEAAiE;YACjE,oEAAoE;YACpE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,IAAI,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC9B,IAAI,mBAAmB,GAAG,KAAK,CAAC;oBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC1C,IAAI,CAAE,KAAK,CAAC,CAAC,CAAY,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;4BAC3C,mBAAmB,GAAG,IAAI,CAAC;4BAC3B,MAAM;wBACR,CAAC;oBACH,CAAC;oBACD,IAAI,mBAAmB,EAAE,CAAC;wBACxB,WAAW,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;wBACrE,gEAAgE;wBAChE,CAAC,EAAE,CAAC;wBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,SAAS;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;gBACd,oBAAoB;gBACpB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC,EAAE,CAAC;gBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;iBAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/B,kBAAkB;gBAClB,MAAM,MAAM,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAW,CAAC,CAAC;oBACxC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBACnD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;wBACjB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC1B,CAAC,EAAE,CAAC;wBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAClC,CAAC,IAAI,MAAM,CAAC;wBACZ,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC;oBAC7B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,yCAAyC;oBACzC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;oBAC9B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;oBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;oBACxC,CAAC;oBACD,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;oBACrC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;gBACnB,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/B,kBAAkB;gBAClB,MAAM,MAAM,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAW,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAW,CAAC,CAAC;oBAChE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBACnD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;wBACjB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC1B,CAAC,EAAE,CAAC;wBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAClC,CAAC,IAAI,MAAM,CAAC;wBACZ,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC;oBAC7B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;oBAC9B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;oBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;oBACxC,CAAC;oBACD,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;oBACrC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;gBACnB,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/B,kBAAkB;gBAClB,MAAM,MAAM,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAW,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAW,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAW,CAAC,CAAC;oBACxF,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBACnD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;wBACjB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC1B,CAAC,EAAE,CAAC;wBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAClC,CAAC,IAAI,MAAM,CAAC;wBACZ,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC;oBAC7B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;oBAC9B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;oBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;oBACxC,CAAC;oBACD,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;oBACrC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;gBACnB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,0CAA0C;gBAC1C,WAAW,CAAC;oBACV,IAAI,EAAE,oBAAoB;oBAC1B,UAAU,EAAE,SAAS;iBACtB,CAAC,CAAC;gBACH,CAAC,EAAE,CAAC;gBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAChD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC5B,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAChD,CAAC;IAGD;;;OAGG;IACK,cAAc,CACpB,GAAa,EACb,MAAc;QAEd,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QAEvB,8BAA8B;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAE,GAAG,CAAC,CAAC,CAAY,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzC,OAAO;oBACL,SAAS,EAAE,CAAC;oBACZ,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,EAAE;iBAC5D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,SAAiB,CAAC;QACtB,IAAI,YAAoB,CAAC;QAEzB,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,SAAS,GAAG,CAAC,CAAE,GAAG,CAAC,CAAC,CAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC,CAAY,GAAG,IAAI,CAAC,CAAC;YAC7E,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACrB,SAAS;gBACP,CAAC,CAAE,GAAG,CAAC,CAAC,CAAY,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClC,CAAE,GAAG,CAAC,CAAC,CAAY,GAAG,IAAI,CAAC,CAAC;YAC9B,YAAY,GAAG,KAAK,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,YAAY;YACZ,SAAS;gBACP,CAAC,CAAE,GAAG,CAAC,CAAC,CAAY,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAY,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClC,CAAE,GAAG,CAAC,CAAC,CAAY,GAAG,IAAI,CAAC,CAAC;YAC9B,YAAY,GAAG,OAAO,CAAC;QACzB,CAAC;QAED,0BAA0B;QAC1B,IAAI,SAAS,GAAG,YAAY,EAAE,CAAC;YAC7B,OAAO;gBACL,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE;aAChD,CAAC;QACJ,CAAC;QAED,sEAAsE;QACtE,wEAAwE;QACxE,sEAAsE;QACtE,uEAAuE;QACvE,wEAAwE;QACxE,6BAA6B;QAC7B,IAAI,SAAS,GAAG,QAAQ,IAAI,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;YACzE,OAAO;gBACL,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE;aACpD,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,UAAoB;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC;IACxB,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;QACvD,IAAI,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard-schema-validator.d.ts","sourceRoot":"","sources":["../../src/validation/standard-schema-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAwB,MAAM,YAAY,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE;QACpB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;KAChD,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"standard-schema-validator.d.ts","sourceRoot":"","sources":["../../src/validation/standard-schema-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAwB,MAAM,YAAY,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE;QACpB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;KAChD,CAAC;CACH;AAgGD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,kBAAkB,CAEnF;AAED,4EAA4E;AAC5E,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,oBAAoB,EAAE,eAAe,UAAQ,GAAG,kBAAkB,CAuDvH"}
|
|
@@ -43,8 +43,11 @@ function formatIssue(issue) {
|
|
|
43
43
|
* than refusing it here, synchronously, with a clear, specific reason.
|
|
44
44
|
*/
|
|
45
45
|
function assertStandardSchemaV1(schema) {
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
// ArkType and other callable schemas expose the same interface on a
|
|
47
|
+
// function. Only the schema container may be callable; metadata and
|
|
48
|
+
// validation results still have to be ordinary object-shaped values.
|
|
49
|
+
if ((!isRecord(schema) && typeof schema !== "function") || !("~standard" in schema)) {
|
|
50
|
+
throw new Error('prefix-safe-json: fromStandardSchema() requires an object or function with a "~standard" property ' +
|
|
48
51
|
"(the Standard Schema v1 interface - see https://standardschema.dev). Received: " +
|
|
49
52
|
describeForError(schema));
|
|
50
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard-schema-validator.js","sourceRoot":"","sources":["../../src/validation/standard-schema-validator.ts"],"names":[],"mappings":"AAyBA,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAQ,KAA4B,CAAC,IAAI,KAAK,UAAU,CAAC;AACjH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,OAAO,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,OAAgB;IACzC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAE,OAAgC,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,WAAW,CAAC,KAA4B;IAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1G,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,sBAAsB,CAAC,MAAe;IAC7C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"standard-schema-validator.js","sourceRoot":"","sources":["../../src/validation/standard-schema-validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prefix-safe-json",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"description": "Fail-closed execution integrity for streamed LLM tool calls — reject truncated or unconfirmed arguments before side effects",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"json",
|
|
@@ -104,6 +104,7 @@
|
|
|
104
104
|
"ai-v5": "npm:ai@5.0.244",
|
|
105
105
|
"ai-v6": "npm:ai@6.0.264",
|
|
106
106
|
"ai-v7": "npm:ai@7.0.77",
|
|
107
|
+
"arktype": "2.2.8",
|
|
107
108
|
"clarinet": "^0.12.6",
|
|
108
109
|
"eslint": "^9.8.0",
|
|
109
110
|
"fast-check": "^4.9.0",
|