@metaobjectsdev/render 0.8.1 → 0.9.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.
Files changed (81) hide show
  1. package/dist/email-document.d.ts +7 -0
  2. package/dist/email-document.d.ts.map +1 -0
  3. package/dist/email-document.js +2 -0
  4. package/dist/email-document.js.map +1 -0
  5. package/dist/extract/coerce.d.ts +15 -0
  6. package/dist/extract/coerce.d.ts.map +1 -0
  7. package/dist/{recover → extract}/coerce.js +87 -13
  8. package/dist/extract/coerce.js.map +1 -0
  9. package/dist/{recover/recover-map.d.ts → extract/extract-map.d.ts} +1 -1
  10. package/dist/{recover/recover-map.d.ts.map → extract/extract-map.d.ts.map} +1 -1
  11. package/dist/{recover/recover-map.js → extract/extract-map.js} +3 -3
  12. package/dist/{recover/recover-map.js.map → extract/extract-map.js.map} +1 -1
  13. package/dist/extract/extract.d.ts +4 -0
  14. package/dist/extract/extract.d.ts.map +1 -0
  15. package/dist/extract/extract.js +157 -0
  16. package/dist/extract/extract.js.map +1 -0
  17. package/dist/{recover → extract}/json-forgiving-reader.d.ts.map +1 -1
  18. package/dist/{recover → extract}/json-forgiving-reader.js +1 -1
  19. package/dist/{recover → extract}/json-forgiving-reader.js.map +1 -1
  20. package/dist/{recover → extract}/locate.d.ts.map +1 -1
  21. package/dist/{recover → extract}/locate.js.map +1 -1
  22. package/dist/extract/normalize.d.ts +4 -0
  23. package/dist/extract/normalize.d.ts.map +1 -0
  24. package/dist/extract/normalize.js +22 -0
  25. package/dist/extract/normalize.js.map +1 -0
  26. package/dist/extract/strip.d.ts.map +1 -0
  27. package/dist/{recover → extract}/strip.js.map +1 -1
  28. package/dist/extract/types.d.ts +160 -0
  29. package/dist/extract/types.d.ts.map +1 -0
  30. package/dist/extract/types.js +221 -0
  31. package/dist/extract/types.js.map +1 -0
  32. package/dist/{recover → extract}/xml-forgiving-reader.d.ts.map +1 -1
  33. package/dist/{recover → extract}/xml-forgiving-reader.js +1 -1
  34. package/dist/{recover → extract}/xml-forgiving-reader.js.map +1 -1
  35. package/dist/index.d.ts +4 -3
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +4 -4
  38. package/dist/index.js.map +1 -1
  39. package/dist/prompt/output-format-renderer.d.ts.map +1 -1
  40. package/dist/prompt/output-format-renderer.js +113 -59
  41. package/dist/prompt/output-format-renderer.js.map +1 -1
  42. package/dist/prompt/output-format-spec.d.ts +1 -1
  43. package/dist/prompt/prompt-field.d.ts +1 -1
  44. package/package.json +1 -1
  45. package/src/email-document.ts +6 -0
  46. package/src/extract/KNOWN_GAPS.md +59 -0
  47. package/src/extract/coerce.ts +224 -0
  48. package/src/{recover/recover-map.ts → extract/extract-map.ts} +2 -2
  49. package/src/extract/extract.ts +187 -0
  50. package/src/{recover → extract}/json-forgiving-reader.ts +1 -1
  51. package/src/extract/normalize.ts +23 -0
  52. package/src/extract/types.ts +346 -0
  53. package/src/{recover → extract}/xml-forgiving-reader.ts +1 -1
  54. package/src/index.ts +17 -11
  55. package/src/prompt/output-format-renderer.ts +140 -61
  56. package/src/prompt/output-format-spec.ts +1 -1
  57. package/src/prompt/prompt-field.ts +1 -1
  58. package/dist/recover/coerce.d.ts +0 -5
  59. package/dist/recover/coerce.d.ts.map +0 -1
  60. package/dist/recover/coerce.js.map +0 -1
  61. package/dist/recover/recover.d.ts +0 -4
  62. package/dist/recover/recover.d.ts.map +0 -1
  63. package/dist/recover/recover.js +0 -115
  64. package/dist/recover/recover.js.map +0 -1
  65. package/dist/recover/strip.d.ts.map +0 -1
  66. package/dist/recover/types.d.ts +0 -117
  67. package/dist/recover/types.d.ts.map +0 -1
  68. package/dist/recover/types.js +0 -124
  69. package/dist/recover/types.js.map +0 -1
  70. package/src/recover/KNOWN_GAPS.md +0 -35
  71. package/src/recover/coerce.ts +0 -141
  72. package/src/recover/recover.ts +0 -146
  73. package/src/recover/types.ts +0 -217
  74. /package/dist/{recover → extract}/json-forgiving-reader.d.ts +0 -0
  75. /package/dist/{recover → extract}/locate.d.ts +0 -0
  76. /package/dist/{recover → extract}/locate.js +0 -0
  77. /package/dist/{recover → extract}/strip.d.ts +0 -0
  78. /package/dist/{recover → extract}/strip.js +0 -0
  79. /package/dist/{recover → extract}/xml-forgiving-reader.d.ts +0 -0
  80. /package/src/{recover → extract}/locate.ts +0 -0
  81. /package/src/{recover → extract}/strip.ts +0 -0
@@ -0,0 +1,160 @@
1
+ import type { NormalizeMode } from "./normalize.js";
2
+ /** Output format the dirty text claims to be. Corpus schema.json uses "JSON"/"XML". */
3
+ export declare const Format: {
4
+ readonly JSON: "JSON";
5
+ readonly XML: "XML";
6
+ };
7
+ export type Format = (typeof Format)[keyof typeof Format];
8
+ /** The coercion target kinds the engine understands. OBJECT = nested ExtractSchema. */
9
+ export declare const FieldKind: {
10
+ readonly STRING: "STRING";
11
+ readonly INT: "INT";
12
+ readonly LONG: "LONG";
13
+ readonly DOUBLE: "DOUBLE";
14
+ readonly BOOLEAN: "BOOLEAN";
15
+ readonly ENUM: "ENUM";
16
+ readonly OBJECT: "OBJECT";
17
+ };
18
+ export type FieldKind = (typeof FieldKind)[keyof typeof FieldKind];
19
+ /**
20
+ * FROZEN cross-port per-field extraction classification. Do not reorder or add
21
+ * without an ADR. These string values are SERIALIZED in the conformance corpus.
22
+ */
23
+ export declare const FieldExtraction: {
24
+ readonly EXTRACTED: "EXTRACTED";
25
+ readonly DEFAULTED: "DEFAULTED";
26
+ readonly LOST_OPTIONAL: "LOST_OPTIONAL";
27
+ readonly LOST_REQUIRED: "LOST_REQUIRED";
28
+ readonly MALFORMED: "MALFORMED";
29
+ };
30
+ export type FieldExtraction = (typeof FieldExtraction)[keyof typeof FieldExtraction];
31
+ /**
32
+ * STRICT: case-sensitive, minimal repair. NORMAL: case-insensitive keys/tags
33
+ * (default). LOOSE: maximal repair (currently identical to NORMAL — reserved).
34
+ */
35
+ export declare const Tolerance: {
36
+ readonly STRICT: "STRICT";
37
+ readonly NORMAL: "NORMAL";
38
+ readonly LOOSE: "LOOSE";
39
+ };
40
+ export type Tolerance = (typeof Tolerance)[keyof typeof Tolerance];
41
+ /** A recorded normalization/coercion. kind e.g. "normalize", "alias", "runtime-alias-override", "clamp", "coerceDefault", "default". */
42
+ export interface Coercion {
43
+ readonly fieldPath: string;
44
+ readonly from: string;
45
+ readonly to: string;
46
+ readonly kind: string;
47
+ }
48
+ /**
49
+ * One field's extract descriptor. enumValues/enumAlias non-null only for ENUM;
50
+ * min/max non-null only for numeric range constraints; nested non-null only for OBJECT.
51
+ */
52
+ export interface FieldSpec {
53
+ readonly name: string;
54
+ readonly kind: FieldKind;
55
+ readonly required: boolean;
56
+ readonly array: boolean;
57
+ readonly enumValues: readonly string[] | null;
58
+ readonly enumAlias: Readonly<Record<string, string>> | null;
59
+ readonly min: number | null;
60
+ readonly max: number | null;
61
+ readonly nested: ExtractSchema | null;
62
+ /** FR-011: present-but-uncoercible fallback member (from `@coerceDefault`). ENUM-only; null = none. */
63
+ readonly coerceDefault: string | null;
64
+ /**
65
+ * Absent-fill default (from `@default`). When the field is ABSENT, extract fills this value
66
+ * → DEFAULTED (which satisfies `@required`). Generalized to ALL field kinds (Phase B): for an
67
+ * enum it is the member string verbatim; for a non-enum it is coerced to `kind` via the pure
68
+ * scalar coerce (so `@default "0"` on `field.int` yields integer 0). null = no default.
69
+ */
70
+ readonly defaultValue: string | null;
71
+ /** FR-011: resolved enum normalization mode (from `@normalize`; default `"strip"`). */
72
+ readonly normalize: NormalizeMode;
73
+ }
74
+ /**
75
+ * A scalar field, optionally carrying an absent-fill `@default` (Phase B — generalized
76
+ * `@default`). When ABSENT from the model response, extract coerces `defaultValue` to `kind`
77
+ * and classifies the field DEFAULTED (which satisfies `@required`). `defaultValue == null` is
78
+ * the no-default case (back-compat with the original two-arg call).
79
+ */
80
+ export declare function scalar(name: string, kind: FieldKind, required: boolean, defaultValue?: string | null): FieldSpec;
81
+ export declare function enumField(name: string, required: boolean, values: readonly string[] | null, aliases: Readonly<Record<string, string>> | null, coerceDefault?: string | null, normalize?: NormalizeMode, defaultValue?: string | null): FieldSpec;
82
+ /**
83
+ * Phase B (array-of-enum): an enum field that is a list (`array === true`). Each element flows
84
+ * through the SAME enum coercion pipeline a scalar enum uses (exact → normalize → `@enumAlias`
85
+ * → `@coerceDefault` → MALFORMED) and is classified independently by indexed path (`tags[0]`,
86
+ * `tags[1]`, …). Mirrors {@link enumField} but with `array = true`.
87
+ */
88
+ export declare function enumArray(name: string, required: boolean, values: readonly string[] | null, aliases: Readonly<Record<string, string>> | null, coerceDefault?: string | null, normalize?: NormalizeMode, defaultValue?: string | null): FieldSpec;
89
+ export declare function range(name: string, kind: FieldKind, required: boolean, min: number | null, max: number | null): FieldSpec;
90
+ export declare function object(name: string, required: boolean, array: boolean, nested: ExtractSchema | null): FieldSpec;
91
+ /** Top-level extract descriptor. rootName = the XML root tag / logical JSON root name. */
92
+ export interface ExtractSchema {
93
+ readonly format: Format;
94
+ readonly rootName: string;
95
+ readonly fields: readonly FieldSpec[];
96
+ }
97
+ export declare function extractSchema(format: Format, rootName: string, fields: readonly FieldSpec[] | null): ExtractSchema;
98
+ /**
99
+ * ctx carries the field path and the FieldSpec; return null to fall through to
100
+ * default coercion. The single bespoke-coercion hook (the bounded "20%").
101
+ */
102
+ export type OnField = (fieldPath: string, rawValue: string, spec: FieldSpec) => unknown | null;
103
+ /**
104
+ * Bounded runtime override surface. aliases/normalizers are MERGED with the
105
+ * schema's, runtime winning on key conflict. onField is the single hook.
106
+ */
107
+ export interface ExtractOptions {
108
+ readonly tolerance: Tolerance;
109
+ readonly aliases: Readonly<Record<string, string>>;
110
+ readonly normalizers: Readonly<Record<string, (raw: string) => unknown | null>>;
111
+ readonly onField: OnField | null;
112
+ }
113
+ export declare function defaults(): ExtractOptions;
114
+ /** Normalize a partial / undefined options bag into a complete ExtractOptions. */
115
+ export declare function normalizeOptions(opts?: Partial<ExtractOptions> | null): ExtractOptions;
116
+ /** Engine return. data is a forgiving record; Phase-2 codegen wraps it into a typed ExtractionResult<T>. */
117
+ export interface ExtractionOutcome {
118
+ readonly data: Record<string, unknown>;
119
+ readonly report: ExtractionReport;
120
+ }
121
+ /** Typed result of a generated extract(...): best-effort value (null where lost/malformed) + report. */
122
+ export interface ExtractionResult<T> {
123
+ readonly data: T | null;
124
+ readonly report: ExtractionReport;
125
+ }
126
+ /**
127
+ * Thrown by {@link orThrow} when a {@link ExtractionResult} lost a `@required` field. Mirrors
128
+ * Java's `ExtractException`. Carries the list of lost-required field paths.
129
+ */
130
+ export declare class ExtractError extends Error {
131
+ readonly lostRequired: readonly string[];
132
+ constructor(lostRequired: readonly string[]);
133
+ }
134
+ /**
135
+ * Opt-in strictness over a never-throwing {@link ExtractionResult}. Mirrors Java
136
+ * `ExtractionResult.orThrow()`. Throws a {@link ExtractError} iff the report has a lost
137
+ * `@required` field; otherwise returns `result.data`.
138
+ *
139
+ * <p>TS divergence from Java (documented): `ExtractionResult` is a plain interface (the generated
140
+ * output-parsers build it as an object literal), so `orThrow` is a free function rather than a
141
+ * method on the result. Semantics are identical.</p>
142
+ */
143
+ export declare function orThrow<T>(result: ExtractionResult<T>): T | null;
144
+ /** Mutable accumulator of per-field extraction classification, the degenerate-response flag, and coercion notes. */
145
+ export declare class ExtractionReport {
146
+ private readonly _states;
147
+ private readonly _coercions;
148
+ private _empty;
149
+ set(fieldPath: string, state: FieldExtraction): void;
150
+ addCoercion(c: Coercion): void;
151
+ markEmpty(): void;
152
+ isEmpty(): boolean;
153
+ states(): ReadonlyMap<string, FieldExtraction>;
154
+ coercions(): readonly Coercion[];
155
+ lostRequired(): string[];
156
+ malformed(): string[];
157
+ hasLostRequired(): boolean;
158
+ private byState;
159
+ }
160
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/extract/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,221 @@
1
+ // FR-010 extract engine — types & model (Tier-2 idiomatic TS port).
2
+ //
3
+ // Cross-port REFERENCE is the Java engine
4
+ // (server/java/render/.../extract/). This file ports the Java records/enums to
5
+ // idiomatic TS: enums become string-union `as const` objects (values match the
6
+ // corpus / Java enum names exactly), records become readonly interfaces +
7
+ // factory functions, and the mutable ExtractionReport is a class.
8
+ /** Output format the dirty text claims to be. Corpus schema.json uses "JSON"/"XML". */
9
+ export const Format = {
10
+ JSON: "JSON",
11
+ XML: "XML",
12
+ };
13
+ /** The coercion target kinds the engine understands. OBJECT = nested ExtractSchema. */
14
+ export const FieldKind = {
15
+ STRING: "STRING",
16
+ INT: "INT",
17
+ LONG: "LONG",
18
+ DOUBLE: "DOUBLE",
19
+ BOOLEAN: "BOOLEAN",
20
+ ENUM: "ENUM",
21
+ OBJECT: "OBJECT",
22
+ };
23
+ /**
24
+ * FROZEN cross-port per-field extraction classification. Do not reorder or add
25
+ * without an ADR. These string values are SERIALIZED in the conformance corpus.
26
+ */
27
+ export const FieldExtraction = {
28
+ EXTRACTED: "EXTRACTED",
29
+ // A `@default`/`@coerceDefault`-backed value (absent-fill or present-but-uncoercible fallback).
30
+ DEFAULTED: "DEFAULTED",
31
+ LOST_OPTIONAL: "LOST_OPTIONAL",
32
+ LOST_REQUIRED: "LOST_REQUIRED",
33
+ MALFORMED: "MALFORMED",
34
+ };
35
+ /**
36
+ * STRICT: case-sensitive, minimal repair. NORMAL: case-insensitive keys/tags
37
+ * (default). LOOSE: maximal repair (currently identical to NORMAL — reserved).
38
+ */
39
+ export const Tolerance = {
40
+ STRICT: "STRICT",
41
+ NORMAL: "NORMAL",
42
+ LOOSE: "LOOSE",
43
+ };
44
+ /**
45
+ * A scalar field, optionally carrying an absent-fill `@default` (Phase B — generalized
46
+ * `@default`). When ABSENT from the model response, extract coerces `defaultValue` to `kind`
47
+ * and classifies the field DEFAULTED (which satisfies `@required`). `defaultValue == null` is
48
+ * the no-default case (back-compat with the original two-arg call).
49
+ */
50
+ export function scalar(name, kind, required, defaultValue) {
51
+ return {
52
+ name,
53
+ kind,
54
+ required,
55
+ array: false,
56
+ enumValues: null,
57
+ enumAlias: null,
58
+ min: null,
59
+ max: null,
60
+ nested: null,
61
+ coerceDefault: null,
62
+ defaultValue: defaultValue ?? null,
63
+ normalize: "strip",
64
+ };
65
+ }
66
+ export function enumField(name, required, values, aliases, coerceDefault, normalize = "strip", defaultValue) {
67
+ return {
68
+ name,
69
+ kind: FieldKind.ENUM,
70
+ required,
71
+ array: false,
72
+ enumValues: values == null ? null : [...values],
73
+ enumAlias: aliases == null ? {} : { ...aliases },
74
+ min: null,
75
+ max: null,
76
+ nested: null,
77
+ coerceDefault: coerceDefault ?? null,
78
+ defaultValue: defaultValue ?? null,
79
+ normalize,
80
+ };
81
+ }
82
+ /**
83
+ * Phase B (array-of-enum): an enum field that is a list (`array === true`). Each element flows
84
+ * through the SAME enum coercion pipeline a scalar enum uses (exact → normalize → `@enumAlias`
85
+ * → `@coerceDefault` → MALFORMED) and is classified independently by indexed path (`tags[0]`,
86
+ * `tags[1]`, …). Mirrors {@link enumField} but with `array = true`.
87
+ */
88
+ export function enumArray(name, required, values, aliases, coerceDefault, normalize = "strip", defaultValue) {
89
+ return {
90
+ name,
91
+ kind: FieldKind.ENUM,
92
+ required,
93
+ array: true,
94
+ enumValues: values == null ? null : [...values],
95
+ enumAlias: aliases == null ? {} : { ...aliases },
96
+ min: null,
97
+ max: null,
98
+ nested: null,
99
+ coerceDefault: coerceDefault ?? null,
100
+ defaultValue: defaultValue ?? null,
101
+ normalize,
102
+ };
103
+ }
104
+ export function range(name, kind, required, min, max) {
105
+ return {
106
+ name,
107
+ kind,
108
+ required,
109
+ array: false,
110
+ enumValues: null,
111
+ enumAlias: null,
112
+ min,
113
+ max,
114
+ nested: null,
115
+ coerceDefault: null,
116
+ defaultValue: null,
117
+ normalize: "strip",
118
+ };
119
+ }
120
+ export function object(name, required, array, nested) {
121
+ return {
122
+ name,
123
+ kind: FieldKind.OBJECT,
124
+ required,
125
+ array,
126
+ enumValues: null,
127
+ enumAlias: null,
128
+ min: null,
129
+ max: null,
130
+ nested,
131
+ coerceDefault: null,
132
+ defaultValue: null,
133
+ normalize: "strip",
134
+ };
135
+ }
136
+ export function extractSchema(format, rootName, fields) {
137
+ return { format, rootName, fields: fields == null ? [] : [...fields] };
138
+ }
139
+ export function defaults() {
140
+ return { tolerance: Tolerance.NORMAL, aliases: {}, normalizers: {}, onField: null };
141
+ }
142
+ /** Normalize a partial / undefined options bag into a complete ExtractOptions. */
143
+ export function normalizeOptions(opts) {
144
+ if (opts == null)
145
+ return defaults();
146
+ return {
147
+ tolerance: opts.tolerance ?? Tolerance.NORMAL,
148
+ aliases: opts.aliases == null ? {} : { ...opts.aliases },
149
+ normalizers: opts.normalizers == null ? {} : { ...opts.normalizers },
150
+ onField: opts.onField ?? null,
151
+ };
152
+ }
153
+ /**
154
+ * Thrown by {@link orThrow} when a {@link ExtractionResult} lost a `@required` field. Mirrors
155
+ * Java's `ExtractException`. Carries the list of lost-required field paths.
156
+ */
157
+ export class ExtractError extends Error {
158
+ lostRequired;
159
+ constructor(lostRequired) {
160
+ super(`extract: required field(s) lost: ${lostRequired.join(", ")}`);
161
+ this.name = "ExtractError";
162
+ this.lostRequired = [...lostRequired];
163
+ }
164
+ }
165
+ /**
166
+ * Opt-in strictness over a never-throwing {@link ExtractionResult}. Mirrors Java
167
+ * `ExtractionResult.orThrow()`. Throws a {@link ExtractError} iff the report has a lost
168
+ * `@required` field; otherwise returns `result.data`.
169
+ *
170
+ * <p>TS divergence from Java (documented): `ExtractionResult` is a plain interface (the generated
171
+ * output-parsers build it as an object literal), so `orThrow` is a free function rather than a
172
+ * method on the result. Semantics are identical.</p>
173
+ */
174
+ export function orThrow(result) {
175
+ if (result.report.hasLostRequired()) {
176
+ throw new ExtractError(result.report.lostRequired());
177
+ }
178
+ return result.data;
179
+ }
180
+ /** Mutable accumulator of per-field extraction classification, the degenerate-response flag, and coercion notes. */
181
+ export class ExtractionReport {
182
+ // Insertion-ordered (Map preserves insertion order, mirroring Java LinkedHashMap).
183
+ _states = new Map();
184
+ _coercions = [];
185
+ _empty = false;
186
+ set(fieldPath, state) {
187
+ this._states.set(fieldPath, state);
188
+ }
189
+ addCoercion(c) {
190
+ this._coercions.push(c);
191
+ }
192
+ markEmpty() {
193
+ this._empty = true;
194
+ }
195
+ isEmpty() {
196
+ return this._empty;
197
+ }
198
+ states() {
199
+ return new Map(this._states);
200
+ }
201
+ coercions() {
202
+ return [...this._coercions];
203
+ }
204
+ lostRequired() {
205
+ return this.byState(FieldExtraction.LOST_REQUIRED);
206
+ }
207
+ malformed() {
208
+ return this.byState(FieldExtraction.MALFORMED);
209
+ }
210
+ hasLostRequired() {
211
+ return this.lostRequired().length > 0;
212
+ }
213
+ byState(s) {
214
+ const out = [];
215
+ for (const [k, v] of this._states)
216
+ if (v === s)
217
+ out.push(k);
218
+ return out;
219
+ }
220
+ }
221
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/extract/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"xml-forgiving-reader.d.ts","sourceRoot":"","sources":["../../src/recover/xml-forgiving-reader.ts"],"names":[],"mappings":"AAgBA,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS1G"}
1
+ {"version":3,"file":"xml-forgiving-reader.d.ts","sourceRoot":"","sources":["../../src/extract/xml-forgiving-reader.ts"],"names":[],"mappings":"AAgBA,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS1G"}
@@ -41,7 +41,7 @@ function parseChildren(inner, ci, out) {
41
41
  next = close.index + close[0].length;
42
42
  }
43
43
  else {
44
- // unclosed tag: recover text up to the next sibling open tag
44
+ // unclosed tag: extract text up to the next sibling open tag
45
45
  const sib = matchFrom(OPEN_TAG_SRC, flags, inner, contentStart);
46
46
  if (sib != null) {
47
47
  contentEnd = sib.index;
@@ -1 +1 @@
1
- {"version":3,"file":"xml-forgiving-reader.js","sourceRoot":"","sources":["../../src/recover/xml-forgiving-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xml-forgiving-reader.js","sourceRoot":"","sources":["../../src/extract/xml-forgiving-reader.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,12 +2,13 @@ export { render, type RenderOptions } from "./render.js";
2
2
  export { type Provider, InMemoryProvider } from "./provider.js";
3
3
  export { ESCAPERS, type RenderFormat } from "./escapers.js";
4
4
  export { verify, ERR_VAR_NOT_ON_PAYLOAD, ERR_PARTIAL_UNRESOLVED, ERR_REQUIRED_SLOT_UNUSED, ERR_OUTPUT_TAG_MISSING, type PayloadField, type VerifyError, type VerifyOptions, } from "./verify.js";
5
- export { recover } from "./recover/recover.js";
6
- export { Format, FieldKind, FieldRecovery, Tolerance, RecoveryReport, scalar, enumField, range, object, recoverSchema, defaults, type FieldSpec, type RecoverSchema, type RecoverOptions, type RecoverOutcome, type RecoveryResult, type Coercion, type OnField, } from "./recover/types.js";
7
- export { asString, asInt, asLong, asDouble, asBool, asStringList, } from "./recover/recover-map.js";
5
+ export { extract } from "./extract/extract.js";
6
+ export { Format, FieldKind, FieldExtraction, Tolerance, ExtractionReport, scalar, 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";
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";
10
10
  export { PROMPT_OVERRIDES_NONE, noOverrides, type PromptOverrides, } from "./prompt/prompt-overrides.js";
11
11
  export type { OutputFormatSpec } from "./prompt/output-format-spec.js";
12
12
  export type { PromptField } from "./prompt/prompt-field.js";
13
+ export type { EmailDocument } from "./email-document.js";
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -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,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,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,aAAa,EACb,SAAS,EACT,cAAc,EACd,MAAM,EACN,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EACb,QAAQ,EACR,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,OAAO,GACb,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"}
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,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,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,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,GACb,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 CHANGED
@@ -2,10 +2,10 @@ export { render } from "./render.js";
2
2
  export { InMemoryProvider } from "./provider.js";
3
3
  export { ESCAPERS } from "./escapers.js";
4
4
  export { verify, ERR_VAR_NOT_ON_PAYLOAD, ERR_PARTIAL_UNRESOLVED, ERR_REQUIRED_SLOT_UNUSED, ERR_OUTPUT_TAG_MISSING, } from "./verify.js";
5
- // FR-010 tolerant recover engine (Tier-2 forgiving parser).
6
- export { recover } from "./recover/recover.js";
7
- export { Format, FieldKind, FieldRecovery, Tolerance, RecoveryReport, scalar, enumField, range, object, recoverSchema, defaults, } from "./recover/types.js";
8
- export { asString, asInt, asLong, asDouble, asBool, asStringList, } from "./recover/recover-map.js";
5
+ // FR-010 tolerant extract engine (Tier-2 forgiving parser).
6
+ export { extract } from "./extract/extract.js";
7
+ export { Format, FieldKind, FieldExtraction, Tolerance, ExtractionReport, scalar, enumField, enumArray, range, object, extractSchema, defaults, orThrow, ExtractError, } from "./extract/types.js";
8
+ export { asString, asInt, asLong, asDouble, asBool, asStringList, } from "./extract/extract-map.js";
9
9
  // FR-010 artifact 1 — output-format prompt renderer ("produce your answer like this").
10
10
  export { renderOutputFormat } from "./prompt/output-format-renderer.js";
11
11
  export { PromptStyle, promptStyleFrom } from "./prompt/prompt-style.js";
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,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GAIvB,MAAM,aAAa,CAAC;AAErB,4DAA4D;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACL,MAAM,EACN,SAAS,EACT,aAAa,EACb,SAAS,EACT,cAAc,EACd,MAAM,EACN,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EACb,QAAQ,GAQT,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"}
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,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GAIvB,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,SAAS,EACT,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EACb,QAAQ,EACR,OAAO,EACP,YAAY,GAQb,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"output-format-renderer.d.ts","sourceRoot":"","sources":["../../src/prompt/output-format-renderer.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAe7D;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,GAAG,MAAM,CAU7F"}
1
+ {"version":3,"file":"output-format-renderer.d.ts","sourceRoot":"","sources":["../../src/prompt/output-format-renderer.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAoB7D;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,GAAG,MAAM,CAU7F"}