@metaobjectsdev/render 1.0.11 → 1.0.12
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/dist/extract/extract.d.ts.map +1 -1
- package/dist/extract/extract.js +33 -2
- package/dist/extract/extract.js.map +1 -1
- package/dist/extract/types.d.ts +14 -1
- package/dist/extract/types.d.ts.map +1 -1
- package/dist/extract/types.js +9 -1
- package/dist/extract/types.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/extract/extract.ts +33 -2
- package/src/extract/types.ts +24 -2
- package/src/index.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/extract/extract.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAa,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAQ9F,sFAAsF;AACtF,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,MAAM,EAAE,aAAa,EACrB,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,GACpC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/extract/extract.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAa,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAQ9F,sFAAsF;AACtF,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,MAAM,EAAE,aAAa,EACrB,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,GACpC,iBAAiB,CA4DnB"}
|
package/dist/extract/extract.js
CHANGED
|
@@ -13,23 +13,54 @@ export function extract(text, schema, opts) {
|
|
|
13
13
|
const data = {};
|
|
14
14
|
const stripped = strip(text);
|
|
15
15
|
const ci = o.tolerance !== Tolerance.STRICT;
|
|
16
|
+
// #364: the document-level onLocate hook runs BEFORE the default locator. A non-null return
|
|
17
|
+
// is the payload span, fed into the same format-specific forgiving reader a default-located
|
|
18
|
+
// span would be — tolerance/coercion/normalizers/onField downstream are unaffected. A null
|
|
19
|
+
// return (or no hook) falls through to the default locate strategy unchanged. A thrown error
|
|
20
|
+
// propagates (not swallowed), matching onField.
|
|
21
|
+
const located = o.onLocate == null ? null : o.onLocate(text ?? "", schema.format);
|
|
16
22
|
// XML rootless (opts.rootless): the payload's fields ARE the top-level elements — there is no
|
|
17
23
|
// enclosing root to locate — so parse the whole stripped text's top-level elements directly.
|
|
18
24
|
// Otherwise locate the <rootName> span as before. JSON is unaffected. Mirrors Java Extract.
|
|
19
25
|
let span;
|
|
20
26
|
let raw;
|
|
21
|
-
|
|
27
|
+
// Whether the SELECTED region (not the original reply) was itself empty/blank — the signal
|
|
28
|
+
// markEmpty() keys on below. For the default path this is the pre-existing "nothing to parse"
|
|
29
|
+
// test (stripped.length === 0 || span == null); for onLocate it must be judged against the
|
|
30
|
+
// hook's OWN return, not the original text — otherwise an empty located span (e.g. the hook
|
|
31
|
+
// deliberately returning "") reports "not empty" while every field is LOST, because the
|
|
32
|
+
// original reply was non-blank even though the thing onLocate chose to parse was.
|
|
33
|
+
let regionBlank;
|
|
34
|
+
if (located != null) {
|
|
35
|
+
span = located;
|
|
36
|
+
raw =
|
|
37
|
+
schema.format === Format.JSON
|
|
38
|
+
? readJson(located)
|
|
39
|
+
: o.rootless
|
|
40
|
+
? readXmlRootless(located, ci)
|
|
41
|
+
: readXml(located, ci);
|
|
42
|
+
// `from` is deliberately left empty rather than the original text: a document-level audit
|
|
43
|
+
// entry that copied the whole raw reply (which can be arbitrarily large) into the report on
|
|
44
|
+
// every call would make the report itself heavy for no benefit `to`'s length doesn't already
|
|
45
|
+
// give. `to` is the located span's LENGTH, not the span text, for the same reason.
|
|
46
|
+
report.addCoercion({ fieldPath: "", from: "", to: String(located.length), kind: "onLocate" });
|
|
47
|
+
regionBlank = located.trim().length === 0;
|
|
48
|
+
}
|
|
49
|
+
else if (schema.format === Format.JSON) {
|
|
22
50
|
({ span, raw } = selectJson(text, stripped, schema.fields, ci));
|
|
51
|
+
regionBlank = stripped.length === 0 || span == null;
|
|
23
52
|
}
|
|
24
53
|
else if (o.rootless) {
|
|
25
54
|
span = stripped.length === 0 ? null : stripped;
|
|
26
55
|
raw = span == null ? {} : readXmlRootless(stripped, ci);
|
|
56
|
+
regionBlank = stripped.length === 0 || span == null;
|
|
27
57
|
}
|
|
28
58
|
else {
|
|
29
59
|
span = locateXml(stripped, schema.rootName, ci);
|
|
30
60
|
raw = span == null ? {} : readXml(span, ci);
|
|
61
|
+
regionBlank = stripped.length === 0 || span == null;
|
|
31
62
|
}
|
|
32
|
-
if (isEmptyRecord(raw) &&
|
|
63
|
+
if (isEmptyRecord(raw) && regionBlank) {
|
|
33
64
|
report.markEmpty();
|
|
34
65
|
}
|
|
35
66
|
extractFields(schema.fields, raw, "", data, report, o, ci);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/extract/extract.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,EACL,MAAM,EACN,SAAS,EACT,eAAe,EACf,SAAS,EACT,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnE,sFAAsF;AACtF,MAAM,UAAU,OAAO,CACrB,IAA+B,EAC/B,MAAqB,EACrB,IAAqC;IAErC,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACtC,MAAM,IAAI,GAA4B,EAAE,CAAC;IAEzC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC;IAE5C,8FAA8F;IAC9F,6FAA6F;IAC7F,4FAA4F;IAC5F,IAAI,IAAmB,CAAC;IACxB,IAAI,GAA4B,CAAC;IACjC,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/extract/extract.ts"],"names":[],"mappings":"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"}
|
package/dist/extract/types.d.ts
CHANGED
|
@@ -123,9 +123,21 @@ export declare function extractSchema(format: Format, rootName: string, fields:
|
|
|
123
123
|
* default coercion. The single bespoke-coercion hook (the bounded "20%").
|
|
124
124
|
*/
|
|
125
125
|
export type OnField = (fieldPath: string, rawValue: string, spec: FieldSpec) => unknown | null;
|
|
126
|
+
/**
|
|
127
|
+
* FR-364: the document-level locate hook. Receives the RAW reply text (null/undefined
|
|
128
|
+
* normalized to `""`) and the schema's declared `Format`; returns the substring that is the
|
|
129
|
+
* payload, or `null` to fall back to the default locator (the fenced-then-first-object rule
|
|
130
|
+
* #363 fixed). A non-null return is parsed by the normal pipeline exactly like a
|
|
131
|
+
* default-located span — tolerance, coercion, `normalizers`, and `onField` all still apply —
|
|
132
|
+
* so this hook only decides WHICH text is the payload, never how it is parsed. The returned
|
|
133
|
+
* text need not be a literal substring of the input (the hook may synthesize it). A thrown
|
|
134
|
+
* error propagates (it is not swallowed), matching `onField`.
|
|
135
|
+
*/
|
|
136
|
+
export type OnLocate = (text: string, format: Format) => string | null;
|
|
126
137
|
/**
|
|
127
138
|
* Bounded runtime override surface. aliases/normalizers are MERGED with the
|
|
128
|
-
* schema's, runtime winning on key conflict. onField is the single hook
|
|
139
|
+
* schema's, runtime winning on key conflict. onField is the single per-field hook; onLocate
|
|
140
|
+
* is the single document-level (payload-location) hook.
|
|
129
141
|
*
|
|
130
142
|
* `rootless` (XML only): when `true`, the input has NO enclosing root element — the payload's
|
|
131
143
|
* fields ARE the top-level elements (a flat sequence like `<a>..</a><b>..</b>`). The engine
|
|
@@ -138,6 +150,7 @@ export interface ExtractOptions {
|
|
|
138
150
|
readonly aliases: Readonly<Record<string, string>>;
|
|
139
151
|
readonly normalizers: Readonly<Record<string, (raw: string) => unknown | null>>;
|
|
140
152
|
readonly onField: OnField | null;
|
|
153
|
+
readonly onLocate: OnLocate | null;
|
|
141
154
|
readonly rootless: boolean;
|
|
142
155
|
}
|
|
143
156
|
export declare function defaults(): ExtractOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/extract/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/extract/types.ts"],"names":[],"mappings":"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"}
|
package/dist/extract/types.js
CHANGED
|
@@ -152,7 +152,14 @@ export function extractSchema(format, rootName, fields) {
|
|
|
152
152
|
return { format, rootName, fields: fields == null ? [] : [...fields] };
|
|
153
153
|
}
|
|
154
154
|
export function defaults() {
|
|
155
|
-
return {
|
|
155
|
+
return {
|
|
156
|
+
tolerance: Tolerance.NORMAL,
|
|
157
|
+
aliases: {},
|
|
158
|
+
normalizers: {},
|
|
159
|
+
onField: null,
|
|
160
|
+
onLocate: null,
|
|
161
|
+
rootless: false,
|
|
162
|
+
};
|
|
156
163
|
}
|
|
157
164
|
/** Normalize a partial / undefined options bag into a complete ExtractOptions. */
|
|
158
165
|
export function normalizeOptions(opts) {
|
|
@@ -163,6 +170,7 @@ export function normalizeOptions(opts) {
|
|
|
163
170
|
aliases: opts.aliases == null ? {} : { ...opts.aliases },
|
|
164
171
|
normalizers: opts.normalizers == null ? {} : { ...opts.normalizers },
|
|
165
172
|
onField: opts.onField ?? null,
|
|
173
|
+
onLocate: opts.onLocate ?? null,
|
|
166
174
|
rootless: opts.rootless ?? false,
|
|
167
175
|
};
|
|
168
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/extract/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/extract/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { type Provider, InMemoryProvider } from "./provider.js";
|
|
|
3
3
|
export { ESCAPERS, type RenderFormat } from "./escapers.js";
|
|
4
4
|
export { verify, resolveTemplateVariable, parseTemplate, ERR_VAR_NOT_ON_PAYLOAD, ERR_PARTIAL_UNRESOLVED, ERR_REQUIRED_SLOT_UNUSED, ERR_OUTPUT_TAG_MISSING, type PayloadField, type ResolveStack, type VerifyError, type VerifyOptions, } from "./verify.js";
|
|
5
5
|
export { extract } from "./extract/extract.js";
|
|
6
|
-
export { Format, FieldKind, FieldExtraction, Tolerance, ExtractionReport, scalar, textContentField, withItemBounds, enumField, enumArray, range, object, extractSchema, defaults, orThrow, ExtractError, type FieldSpec, type ExtractSchema, type ExtractOptions, type ExtractionOutcome, type ExtractionResult, type Coercion, type OnField, } from "./extract/types.js";
|
|
6
|
+
export { Format, FieldKind, FieldExtraction, Tolerance, ExtractionReport, scalar, textContentField, withItemBounds, enumField, enumArray, range, object, extractSchema, defaults, orThrow, ExtractError, type FieldSpec, type ExtractSchema, type ExtractOptions, type ExtractionOutcome, type ExtractionResult, type Coercion, type OnField, type OnLocate, } from "./extract/types.js";
|
|
7
7
|
export { asString, asInt, asLong, asDouble, asBool, asStringList, } from "./extract/extract-map.js";
|
|
8
8
|
export { renderOutputFormat } from "./prompt/output-format-renderer.js";
|
|
9
9
|
export { PromptStyle, promptStyleFrom } from "./prompt/prompt-style.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,KAAK,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EACL,MAAM,EACN,uBAAuB,EACvB,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACL,MAAM,EACN,SAAS,EACT,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EACb,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,KAAK,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EACL,MAAM,EACN,uBAAuB,EACvB,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACL,MAAM,EACN,SAAS,EACT,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EACb,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,QAAQ,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,YAAY,GACb,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,KAAK,eAAe,GACrB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAiB,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAqB,MAAM,eAAe,CAAC;AAC5D,OAAO,EACL,MAAM,EACN,uBAAuB,EACvB,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GAKvB,MAAM,aAAa,CAAC;AAErB,4DAA4D;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACL,MAAM,EACN,SAAS,EACT,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EACb,QAAQ,EACR,OAAO,EACP,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAiB,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAqB,MAAM,eAAe,CAAC;AAC5D,OAAO,EACL,MAAM,EACN,uBAAuB,EACvB,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GAKvB,MAAM,aAAa,CAAC;AAErB,4DAA4D;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACL,MAAM,EACN,SAAS,EACT,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EACb,QAAQ,EACR,OAAO,EACP,YAAY,GASb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,YAAY,GACb,MAAM,0BAA0B,CAAC;AAElC,uFAAuF;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EACL,qBAAqB,EACrB,WAAW,GAEZ,MAAM,8BAA8B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metaobjectsdev/render",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
4
4
|
"description": "Logic-less, deterministic text render engine (Mustache) for MetaObjects templates — provider-resolved partials, format-driven escaping, zero core dependency.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
package/src/extract/extract.ts
CHANGED
|
@@ -28,22 +28,53 @@ export function extract(
|
|
|
28
28
|
const stripped = strip(text);
|
|
29
29
|
const ci = o.tolerance !== Tolerance.STRICT;
|
|
30
30
|
|
|
31
|
+
// #364: the document-level onLocate hook runs BEFORE the default locator. A non-null return
|
|
32
|
+
// is the payload span, fed into the same format-specific forgiving reader a default-located
|
|
33
|
+
// span would be — tolerance/coercion/normalizers/onField downstream are unaffected. A null
|
|
34
|
+
// return (or no hook) falls through to the default locate strategy unchanged. A thrown error
|
|
35
|
+
// propagates (not swallowed), matching onField.
|
|
36
|
+
const located = o.onLocate == null ? null : o.onLocate(text ?? "", schema.format);
|
|
37
|
+
|
|
31
38
|
// XML rootless (opts.rootless): the payload's fields ARE the top-level elements — there is no
|
|
32
39
|
// enclosing root to locate — so parse the whole stripped text's top-level elements directly.
|
|
33
40
|
// Otherwise locate the <rootName> span as before. JSON is unaffected. Mirrors Java Extract.
|
|
34
41
|
let span: string | null;
|
|
35
42
|
let raw: Record<string, unknown>;
|
|
36
|
-
|
|
43
|
+
// Whether the SELECTED region (not the original reply) was itself empty/blank — the signal
|
|
44
|
+
// markEmpty() keys on below. For the default path this is the pre-existing "nothing to parse"
|
|
45
|
+
// test (stripped.length === 0 || span == null); for onLocate it must be judged against the
|
|
46
|
+
// hook's OWN return, not the original text — otherwise an empty located span (e.g. the hook
|
|
47
|
+
// deliberately returning "") reports "not empty" while every field is LOST, because the
|
|
48
|
+
// original reply was non-blank even though the thing onLocate chose to parse was.
|
|
49
|
+
let regionBlank: boolean;
|
|
50
|
+
if (located != null) {
|
|
51
|
+
span = located;
|
|
52
|
+
raw =
|
|
53
|
+
schema.format === Format.JSON
|
|
54
|
+
? readJson(located)
|
|
55
|
+
: o.rootless
|
|
56
|
+
? readXmlRootless(located, ci)
|
|
57
|
+
: readXml(located, ci);
|
|
58
|
+
// `from` is deliberately left empty rather than the original text: a document-level audit
|
|
59
|
+
// entry that copied the whole raw reply (which can be arbitrarily large) into the report on
|
|
60
|
+
// every call would make the report itself heavy for no benefit `to`'s length doesn't already
|
|
61
|
+
// give. `to` is the located span's LENGTH, not the span text, for the same reason.
|
|
62
|
+
report.addCoercion({ fieldPath: "", from: "", to: String(located.length), kind: "onLocate" });
|
|
63
|
+
regionBlank = located.trim().length === 0;
|
|
64
|
+
} else if (schema.format === Format.JSON) {
|
|
37
65
|
({ span, raw } = selectJson(text, stripped, schema.fields, ci));
|
|
66
|
+
regionBlank = stripped.length === 0 || span == null;
|
|
38
67
|
} else if (o.rootless) {
|
|
39
68
|
span = stripped.length === 0 ? null : stripped;
|
|
40
69
|
raw = span == null ? {} : readXmlRootless(stripped, ci);
|
|
70
|
+
regionBlank = stripped.length === 0 || span == null;
|
|
41
71
|
} else {
|
|
42
72
|
span = locateXml(stripped, schema.rootName, ci);
|
|
43
73
|
raw = span == null ? {} : readXml(span, ci);
|
|
74
|
+
regionBlank = stripped.length === 0 || span == null;
|
|
44
75
|
}
|
|
45
76
|
|
|
46
|
-
if (isEmptyRecord(raw) &&
|
|
77
|
+
if (isEmptyRecord(raw) && regionBlank) {
|
|
47
78
|
report.markEmpty();
|
|
48
79
|
}
|
|
49
80
|
|
package/src/extract/types.ts
CHANGED
|
@@ -261,9 +261,22 @@ export function extractSchema(format: Format, rootName: string, fields: readonly
|
|
|
261
261
|
*/
|
|
262
262
|
export type OnField = (fieldPath: string, rawValue: string, spec: FieldSpec) => unknown | null;
|
|
263
263
|
|
|
264
|
+
/**
|
|
265
|
+
* FR-364: the document-level locate hook. Receives the RAW reply text (null/undefined
|
|
266
|
+
* normalized to `""`) and the schema's declared `Format`; returns the substring that is the
|
|
267
|
+
* payload, or `null` to fall back to the default locator (the fenced-then-first-object rule
|
|
268
|
+
* #363 fixed). A non-null return is parsed by the normal pipeline exactly like a
|
|
269
|
+
* default-located span — tolerance, coercion, `normalizers`, and `onField` all still apply —
|
|
270
|
+
* so this hook only decides WHICH text is the payload, never how it is parsed. The returned
|
|
271
|
+
* text need not be a literal substring of the input (the hook may synthesize it). A thrown
|
|
272
|
+
* error propagates (it is not swallowed), matching `onField`.
|
|
273
|
+
*/
|
|
274
|
+
export type OnLocate = (text: string, format: Format) => string | null;
|
|
275
|
+
|
|
264
276
|
/**
|
|
265
277
|
* Bounded runtime override surface. aliases/normalizers are MERGED with the
|
|
266
|
-
* schema's, runtime winning on key conflict. onField is the single hook
|
|
278
|
+
* schema's, runtime winning on key conflict. onField is the single per-field hook; onLocate
|
|
279
|
+
* is the single document-level (payload-location) hook.
|
|
267
280
|
*
|
|
268
281
|
* `rootless` (XML only): when `true`, the input has NO enclosing root element — the payload's
|
|
269
282
|
* fields ARE the top-level elements (a flat sequence like `<a>..</a><b>..</b>`). The engine
|
|
@@ -276,11 +289,19 @@ export interface ExtractOptions {
|
|
|
276
289
|
readonly aliases: Readonly<Record<string, string>>;
|
|
277
290
|
readonly normalizers: Readonly<Record<string, (raw: string) => unknown | null>>;
|
|
278
291
|
readonly onField: OnField | null;
|
|
292
|
+
readonly onLocate: OnLocate | null;
|
|
279
293
|
readonly rootless: boolean;
|
|
280
294
|
}
|
|
281
295
|
|
|
282
296
|
export function defaults(): ExtractOptions {
|
|
283
|
-
return {
|
|
297
|
+
return {
|
|
298
|
+
tolerance: Tolerance.NORMAL,
|
|
299
|
+
aliases: {},
|
|
300
|
+
normalizers: {},
|
|
301
|
+
onField: null,
|
|
302
|
+
onLocate: null,
|
|
303
|
+
rootless: false,
|
|
304
|
+
};
|
|
284
305
|
}
|
|
285
306
|
|
|
286
307
|
/** Normalize a partial / undefined options bag into a complete ExtractOptions. */
|
|
@@ -291,6 +312,7 @@ export function normalizeOptions(opts?: Partial<ExtractOptions> | null): Extract
|
|
|
291
312
|
aliases: opts.aliases == null ? {} : { ...opts.aliases },
|
|
292
313
|
normalizers: opts.normalizers == null ? {} : { ...opts.normalizers },
|
|
293
314
|
onField: opts.onField ?? null,
|
|
315
|
+
onLocate: opts.onLocate ?? null,
|
|
294
316
|
rootless: opts.rootless ?? false,
|
|
295
317
|
};
|
|
296
318
|
}
|