@uwmd/core 1.8.0 → 1.10.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 (65) hide show
  1. package/dist/browser.d.ts +11 -3
  2. package/dist/browser.d.ts.map +1 -1
  3. package/dist/browser.js +6 -2
  4. package/dist/browser.js.map +1 -1
  5. package/dist/cli.js +121 -8
  6. package/dist/cli.js.map +1 -1
  7. package/dist/editor.d.ts +18 -1
  8. package/dist/editor.d.ts.map +1 -1
  9. package/dist/editor.js +55 -1
  10. package/dist/editor.js.map +1 -1
  11. package/dist/format-rules.d.ts +46 -0
  12. package/dist/format-rules.d.ts.map +1 -0
  13. package/dist/format-rules.js +134 -0
  14. package/dist/format-rules.js.map +1 -0
  15. package/dist/format.d.ts +4 -0
  16. package/dist/format.d.ts.map +1 -1
  17. package/dist/format.js +34 -4
  18. package/dist/format.js.map +1 -1
  19. package/dist/index.d.ts +12 -4
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +7 -3
  22. package/dist/index.js.map +1 -1
  23. package/dist/integrity-canonical.d.ts +20 -0
  24. package/dist/integrity-canonical.d.ts.map +1 -1
  25. package/dist/integrity-canonical.js +66 -0
  26. package/dist/integrity-canonical.js.map +1 -1
  27. package/dist/integrity.d.ts +10 -1
  28. package/dist/integrity.d.ts.map +1 -1
  29. package/dist/integrity.js +22 -6
  30. package/dist/integrity.js.map +1 -1
  31. package/dist/lease-up.d.ts +134 -0
  32. package/dist/lease-up.d.ts.map +1 -0
  33. package/dist/lease-up.js +196 -0
  34. package/dist/lease-up.js.map +1 -0
  35. package/dist/meta-shape.d.ts +96 -0
  36. package/dist/meta-shape.d.ts.map +1 -0
  37. package/dist/meta-shape.js +211 -0
  38. package/dist/meta-shape.js.map +1 -0
  39. package/dist/migrate-to-v2.d.ts +42 -0
  40. package/dist/migrate-to-v2.d.ts.map +1 -0
  41. package/dist/migrate-to-v2.js +0 -0
  42. package/dist/migrate-to-v2.js.map +1 -0
  43. package/dist/parser.d.ts.map +1 -1
  44. package/dist/parser.js +14 -1
  45. package/dist/parser.js.map +1 -1
  46. package/dist/protocol.d.ts +152 -4
  47. package/dist/protocol.d.ts.map +1 -1
  48. package/dist/protocol.js +330 -2
  49. package/dist/protocol.js.map +1 -1
  50. package/dist/renderer.d.ts +10 -0
  51. package/dist/renderer.d.ts.map +1 -1
  52. package/dist/renderer.js +72 -8
  53. package/dist/renderer.js.map +1 -1
  54. package/dist/types.d.ts +13 -0
  55. package/dist/types.d.ts.map +1 -1
  56. package/dist/types.js.map +1 -1
  57. package/dist/validator.d.ts +3 -48
  58. package/dist/validator.d.ts.map +1 -1
  59. package/dist/validator.js +194 -64
  60. package/dist/validator.js.map +1 -1
  61. package/dist/version.d.ts +1 -1
  62. package/dist/version.d.ts.map +1 -1
  63. package/dist/version.js +1 -1
  64. package/dist/version.js.map +1 -1
  65. package/package.json +2 -2
@@ -0,0 +1,211 @@
1
+ // RFC 0009 — the v2 nested `_meta` shape and the structural reshape ("shim").
2
+ //
3
+ // Format 2.0 reorganizes the flat ~18-field `_meta` into four named
4
+ // sub-objects (`provenance`, `quality`, `lifecycle`, `integrity`) and lifts
5
+ // `field_overrides` out of `_meta` into a top-level `_overrides` block
6
+ // annotation. v1.x keeps the flat shape; a file's `uw_version` frontmatter is
7
+ // global and decides the shape for every block in it (no mixing — the
8
+ // validator enforces `META-V2-IN-V1` / `META-V1-IN-V2`).
9
+ //
10
+ // Everything here is purely structural: no vocabulary value is ever
11
+ // rewritten. Vocabulary repair (legacy tags, `resolution: "manual"`) is
12
+ // `uwmd migrate`'s job, at the operator's explicit request.
13
+ //
14
+ // Two distinct products come out of this module, and conflating them is the
15
+ // classic mistake:
16
+ //
17
+ // 1. The **flat parse view** (`reshapeMetaV2toV1`) — lets every existing
18
+ // consumer (`routeBlock`, cascade, editor guards, integrity walk) keep
19
+ // reading `block.meta.version` / `.superseded` / `.source` unchanged
20
+ // while the on-disk shape is nested. Lossless, no defaulting.
21
+ // 2. The **canonical v2 form** (`canonicalV2BlockContent`) — the
22
+ // normalize-then-hash input for v2 digests (RFC 0009
23
+ // § Canonicalization). It applies the same defaulting to BOTH shapes
24
+ // (`flags ?? []`, `partial ?? false`, `agent_id ?? null`, …) so that a
25
+ // flat block and its nested reshape digest identically. A digest path
26
+ // that skipped defaulting for already-nested input would fork block
27
+ // identity on exactly the fields producers most often omit.
28
+ import { SOURCE_TAGS } from './types.js';
29
+ // ─── Shape detection ─────────────────────────────────────────────────────────
30
+ /**
31
+ * A raw `_meta` object is v2-shaped iff it carries object-valued `provenance`
32
+ * AND `lifecycle` (the v2 triple minus the section key, which both shapes
33
+ * carry under one spelling or another). Anything else — including the empty
34
+ * object a block without `_meta` degrades to — reads as v1: the flat shape is
35
+ * the permissive default for the whole of 1.x.
36
+ */
37
+ export function detectMetaShape(raw) {
38
+ if (!raw)
39
+ return 'v1';
40
+ return isObject(raw['provenance']) && isObject(raw['lifecycle']) ? 'v2' : 'v1';
41
+ }
42
+ function isObject(v) {
43
+ return typeof v === 'object' && v !== null && !Array.isArray(v);
44
+ }
45
+ /** Major component of a `uw_version` frontmatter string; unparseable or
46
+ * absent means 1 (mirrors `envelope.ts`'s `?? '1.1'` default). */
47
+ export function uwVersionMajor(uwVersion) {
48
+ if (typeof uwVersion !== 'string')
49
+ return 1;
50
+ const m = /^(\d+)/.exec(uwVersion.trim());
51
+ return m ? Number.parseInt(m[1], 10) : 1;
52
+ }
53
+ /** True when the file's frontmatter declares format 2.0 or later. */
54
+ export function isV2File(frontmatter) {
55
+ return uwVersionMajor(frontmatter?.uw_version) >= 2;
56
+ }
57
+ // ─── v1 → v2 (the shim, forward direction) ───────────────────────────────────
58
+ /** Every canonical tag except `manual`, which is a legal actor in its own
59
+ * right and never reinterpreted (RFC 0031, mirrored from parser.ts). */
60
+ const LEGACY_RESOLUTION_TAGS = new Set(SOURCE_TAGS.filter((t) => t !== 'manual'));
61
+ /**
62
+ * Structural reshape of a flat v1 `_meta` into the canonical v2 nested form
63
+ * (RFC 0009 §"Migration story"). Deterministic; applies RFC 0031's read-time
64
+ * interpretation first — a canonical tag in flat `source` becomes
65
+ * `provenance.resolution`, and `provenance.source` is left **absent, not
66
+ * invented**. `field_overrides` is NOT carried (it lifts to the block-level
67
+ * `_overrides` annotation — see `canonicalV2BlockContent`).
68
+ *
69
+ * Output is fully defaulted (explicit nulls / empty arrays per the RFC
70
+ * pseudocode) because this is also the digest normalization target.
71
+ */
72
+ export function reshapeMetaV1toV2(flat) {
73
+ const rawSource = flat.source;
74
+ const legacyTag = typeof rawSource === 'string' && LEGACY_RESOLUTION_TAGS.has(rawSource);
75
+ const flatRec = flat;
76
+ const section = flatRec['section'] ?? flatRec['section_id'];
77
+ const v2 = {
78
+ ...(typeof section === 'string' ? { section } : {}),
79
+ provenance: {
80
+ ...(legacyTag || rawSource === undefined ? {} : { source: rawSource }),
81
+ ...(flat.resolution !== undefined
82
+ ? { resolution: flat.resolution }
83
+ : legacyTag
84
+ ? { resolution: rawSource }
85
+ : {}),
86
+ actor: flat.actor,
87
+ agent_id: flat.agent_id ?? null,
88
+ agent_version: flat.agent_version ?? null,
89
+ timestamp: flat.timestamp,
90
+ notes: flat.notes ?? null,
91
+ ...(flat.market_data_ref !== undefined ? { market_data_ref: flat.market_data_ref } : {}),
92
+ ...(flat.inherited_from !== undefined ? { inherited_from: flat.inherited_from } : {}),
93
+ },
94
+ quality: {
95
+ confidence: flat.confidence,
96
+ human_review_required: flat.human_review_required,
97
+ flags: flat.flags ?? [],
98
+ partial: flat.partial ?? false,
99
+ provisional: flat.provisional ?? false,
100
+ },
101
+ lifecycle: {
102
+ revision: flat.version,
103
+ superseded: flat.superseded,
104
+ },
105
+ };
106
+ if (flat.input_hash != null ||
107
+ flat.content_hash !== undefined ||
108
+ flat.parent_hash !== undefined ||
109
+ flat.signature !== undefined) {
110
+ v2.integrity = {
111
+ input_hash: flat.input_hash ?? null,
112
+ ...(flat.content_hash !== undefined ? { content_hash: flat.content_hash } : {}),
113
+ parent_hash: flat.parent_hash ?? null,
114
+ ...(flat.signature !== undefined ? { signature: flat.signature } : {}),
115
+ };
116
+ }
117
+ return v2;
118
+ }
119
+ // ─── v2 → v1 (the flat parse view) ───────────────────────────────────────────
120
+ /**
121
+ * Flatten a nested v2 `_meta` (plus the block's `_overrides`, if any) into
122
+ * the in-memory `UWMeta` every existing consumer reads. Lossless view over
123
+ * the nested data: `lifecycle.revision` surfaces as `version`,
124
+ * `integrity.*` flattens, `_overrides` surfaces as `field_overrides`.
125
+ */
126
+ export function reshapeMetaV2toV1(nested, overrides) {
127
+ const p = nested.provenance ?? {};
128
+ const q = nested.quality ?? {};
129
+ const l = nested.lifecycle ?? {};
130
+ const integ = nested.integrity;
131
+ const flat = {
132
+ section: (nested.section ?? ''),
133
+ version: l.revision,
134
+ superseded: (l.superseded ?? false),
135
+ source: p.source,
136
+ ...(p.resolution !== undefined ? { resolution: p.resolution } : {}),
137
+ agent_id: p.agent_id ?? null,
138
+ agent_version: p.agent_version ?? null,
139
+ actor: p.actor,
140
+ timestamp: p.timestamp,
141
+ confidence: q.confidence,
142
+ human_review_required: (q.human_review_required ?? false),
143
+ flags: q.flags ?? [],
144
+ input_hash: integ?.input_hash ?? null,
145
+ notes: p.notes ?? null,
146
+ };
147
+ if (q.partial !== undefined)
148
+ flat.partial = q.partial;
149
+ if (q.provisional !== undefined)
150
+ flat.provisional = q.provisional;
151
+ if (overrides !== undefined)
152
+ flat.field_overrides = overrides;
153
+ if (integ?.content_hash !== undefined)
154
+ flat.content_hash = integ.content_hash;
155
+ if (integ?.parent_hash !== undefined)
156
+ flat.parent_hash = integ.parent_hash;
157
+ if (integ?.signature !== undefined)
158
+ flat.signature = integ.signature;
159
+ if (p.market_data_ref !== undefined)
160
+ flat.market_data_ref = p.market_data_ref;
161
+ if (p.inherited_from !== undefined)
162
+ flat.inherited_from = p.inherited_from;
163
+ return flat;
164
+ }
165
+ // ─── Digest normalization (RFC 0009 § Canonicalization, step 1) ──────────────
166
+ /**
167
+ * Produce the canonical v2 form of a block's content object — the input to
168
+ * v2 canonicalization. Accepts either shape and returns a NEW object:
169
+ *
170
+ * - flat `_meta` → reshaped nested, `field_overrides` lifted to `_overrides`
171
+ * - nested `_meta` → re-normalized through the same flat round-trip, so both
172
+ * shapes land on the identical defaulted form (a nested block omitting
173
+ * `quality.partial` digests the same as a flat block omitting `partial`)
174
+ *
175
+ * Exclusion of `integrity.content_hash` / `integrity.signature` / defaulted
176
+ * `integrity.algorithm` is canonicalization step 2 and lives in
177
+ * `integrity-canonical.ts` — this function deliberately keeps them so the
178
+ * stripping stays in one place.
179
+ */
180
+ export function canonicalV2BlockContent(content) {
181
+ const rawMeta = content['_meta'];
182
+ const shape = detectMetaShape(rawMeta);
183
+ let flat;
184
+ let overrides;
185
+ if (shape === 'v2') {
186
+ const nested = rawMeta;
187
+ // Lift a stray v1-style quality.field_overrides too — normalization owns
188
+ // structure, and _overrides is the only v2 home for per-field exceptions.
189
+ const strayOverrides = nested.quality?.['field_overrides'];
190
+ overrides = content['_overrides'] ?? strayOverrides;
191
+ flat = reshapeMetaV2toV1(nested);
192
+ }
193
+ else {
194
+ const flatMeta = (rawMeta ?? {});
195
+ overrides = flatMeta.field_overrides ?? content['_overrides'];
196
+ flat = flatMeta;
197
+ }
198
+ const nestedMeta = reshapeMetaV1toV2(flat);
199
+ // Preserve a non-default algorithm through normalization (step 2 decides
200
+ // whether it is excluded from the digest).
201
+ const rawAlg = shape === 'v2' ? rawMeta?.integrity?.algorithm : undefined;
202
+ if (rawAlg !== undefined) {
203
+ nestedMeta.integrity = { ...(nestedMeta.integrity ?? {}), algorithm: rawAlg };
204
+ }
205
+ const out = { ...content, _meta: nestedMeta };
206
+ delete out['_overrides'];
207
+ if (overrides !== undefined && overrides.length > 0)
208
+ out['_overrides'] = overrides;
209
+ return out;
210
+ }
211
+ //# sourceMappingURL=meta-shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-shape.js","sourceRoot":"","sources":["../src/meta-shape.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { UWBlockSignature } from './types.js';
2
+ /** What the CLI hands the re-signing callback for one migrated block. */
3
+ export interface ResignRequest {
4
+ section: string;
5
+ /** The block's freshly recomputed v2 content_hash. */
6
+ content_hash: string;
7
+ actor: string;
8
+ timestamp: string;
9
+ /** The signature being replaced (kid/alg travel for key selection). */
10
+ prior: UWBlockSignature;
11
+ }
12
+ export interface MigrateToV2Options {
13
+ /** Remove signatures, recording each removal in `provenance.notes`. */
14
+ stripSignatures?: boolean;
15
+ /**
16
+ * Re-sign each previously signed block over its new v2 digest. Injected by
17
+ * the CLI (crypto lives in `@uwmd/signing`); the engine stays crypto-free.
18
+ * Mutually exclusive with `stripSignatures`.
19
+ */
20
+ resign?: (request: ResignRequest) => Promise<UWBlockSignature>;
21
+ }
22
+ export interface MigrateToV2Result {
23
+ ok: boolean;
24
+ /** The migrated document; null when the migration refused. */
25
+ content: string | null;
26
+ /** Blocks reshaped to the nested form. */
27
+ changed: number;
28
+ /** Blocks whose content_hash was recomputed under the v2 rule. */
29
+ restamped: number;
30
+ /** Why the migration refused (empty when ok). */
31
+ refusals: string[];
32
+ /** What the migration did beyond reshaping (vocabulary rewrites, stripped
33
+ * or re-issued signatures). */
34
+ notes: string[];
35
+ }
36
+ /**
37
+ * Convert one v1.x document to the v2 shape. Bytes outside frontmatter's
38
+ * `uw_version` line and the section blocks are preserved exactly; every block
39
+ * is re-serialized with 2-space indentation (the corpus convention).
40
+ */
41
+ export declare function migrateToV2(content: string, options?: MigrateToV2Options): Promise<MigrateToV2Result>;
42
+ //# sourceMappingURL=migrate-to-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-to-v2.d.ts","sourceRoot":"","sources":["../src/migrate-to-v2.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,gBAAgB,EAA2B,MAAM,YAAY,CAAC;AAa5E,yEAAyE;AACzE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;oCACgC;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAmBD;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAwO5B"}
Binary file
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-to-v2.js","sourceRoot":"","sources":["../src/migrate-to-v2.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,8CAA8C;AAC9C,EAAE;AACF,mEAAmE;AACnE,4EAA4E;AAC5E,oEAAoE;AACpE,uEAAuE;AACvE,4EAA4E;AAC5E,6EAA6E;AAC7E,gCAAgC;AAChC,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,yEAAyE;AACzE,mEAAmE;AACnE,EAAE;AACF,6EAA6E;AAC7E,yEAAyE;AACzE,6EAA6E;AAC7E,6EAA6E;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,aAAa,GAAG,mCAAmC,CAAC;AAC1D,MAAM,cAAc,GAAG,UAAU,CAAC;AAClC,MAAM,cAAc,GAAG,UAAU,CAAC;AAElC;2EAC2E;AAC3E,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CACzD,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAC1C,CAAC;AAwDF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,UAA8B,EAAE;IAEhC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvC,8EAA8E;IAC9E,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,eAAmC,CAAC;IACxC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAClF,MAAM,CAAC,GAAG,6CAA6C,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;YACjF,IAAI,CAAC,EAAE,CAAC;gBACN,aAAa,GAAG,CAAC,CAAC;gBAClB,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,wCAAwC,CAAC,EAAE,CAAC;IAC1H,CAAC;IAED,8EAA8E;IAC9E,MAAM,GAAG,GAA8B,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;QAChC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3F,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC;QACvB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;QACnC,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClE,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,CAAC,EAAE,CAAC;QACJ,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,EAAE,CAAC;YACpE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;YACnC,CAAC,EAAE,CAAC;QACN,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QAChC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAE,KAAK,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACvD,IAAI,MAAM;YAAE,CAAC,EAAE,CAAC;QAEhB,IAAI,MAAM,GAAmC,IAAI,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAA4B,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,YAAY,OAAO,2BAA4B,GAAa,CAAC,OAAO,gCAAgC,CAAC,CAAC;YACpH,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAwC,CAAC;QACvE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,2DAA2D;YAC3D,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC;YAClC,IAAI,SAAS,KAAK,IAAI;gBAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5C,SAAS;QACX,CAAC;QAED,0EAA0E;QAC1E,yEAAyE;QACzE,yBAAyB;QACzB,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,QAAQ,GACZ,KAAK,KAAK,IAAI;YACZ,CAAC,CAAC,iBAAiB,CACf,OAA8B,EAC9B,MAAM,CAAC,YAAY,CAAkC,CACtD;YACH,CAAC,CAAE,OAA6B,CAAC;QAErC,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvF,QAAQ,CAAC,IAAI,CACX,YAAY,OAAO,oBAAoB,QAAQ,CAAC,MAAM,iGAAiG,CACxJ,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAiB;YAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM;YACpB,SAAS;YACT,SAAS;YACT,MAAM;YACN,SAAS;YACT,OAAO;YACP,OAAO;YACP,MAAM;YACN,QAAQ;YACR,UAAU,EAAE,iBAAiB,CAAC,QAAQ,CAAC;YACvC,SAAS,EAAE,QAAQ,CAAC,eAAe;YACnC,OAAO,EAAE,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ;YAClD,cAAc,EAAE,QAAQ,CAAC,SAAS;SACnC,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,8EAA8E;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,QAAQ,CAAC,IAAI,CACX,iBAAiB,MAAM,CAAC,MAAM,qBAAqB,KAAK,2KAA2K,CACpO,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEjD,8EAA8E;IAC9E,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,4EAA4E;QAC5E,IAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,UAAiC,KAAK,QAAQ,EAAE,CAAC;YAC5E,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,GAAG,YAAY,CAAC;YAClD,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,uEAAuE,CAAC,CAAC;YAClG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,mDAAmD,CAAC,CAAC;QACvF,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,UAAU,KAAK,QAAQ;gBAAE,CAAC,CAAC,UAAU,GAAG,YAAY,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,WAAW,GAAkB,IAAI,CAAC;QACtC,IAAI,WAAW,GAAkB,IAAI,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,CAAC,OAAO;gBAAE,SAAS;YACzB,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAuC,CAAC;YACvF,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;YACnC,mEAAmE;YACnE,wEAAwE;YACxE,wEAAwE;YACxE,kEAAkE;YAClE,wDAAwD;YACxD,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAC/C,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,KAAK,WAAW,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBACnE,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CACR,YAAY,CAAC,CAAC,OAAO,6GAA6G,CACnI,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,qEAAqE;YACrE,uEAAuE;YACvE,IAAI,CAAC,CAAC,cAAc,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAChD,OAAO,SAAS,CAAC,SAAS,CAAC;gBAC3B,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,+CAA+C,CAAC,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC;gBACjG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,qBAAqB,CAAC,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,CAAC;YAC1F,CAAC;YACD,OAAO,SAAS,CAAC,YAAY,CAAC;YAC9B,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;YAChE,SAAS,CAAC,YAAY,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACnG,SAAS,EAAE,CAAC;YACZ,WAAW,GAAG,SAAS,CAAC,YAAY,CAAC;YACrC,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC;YAE9C,IAAI,CAAC,CAAC,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;oBACrC,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,YAAY,EAAE,SAAS,CAAC,YAAY;oBACpC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK;oBACvB,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;oBAC/B,KAAK,EAAE,CAAC,CAAC,cAAc;iBACxB,CAAC,CAAC;gBACH,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;gBAChC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,4CAA4C,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;gBACvF,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,+BAA+B,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QACD,0EAA0E;QAC1E,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,cAAc;gBAAE,SAAS;YAC7C,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAuC,CAAC;YACvF,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;YACnC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC5B,OAAO,SAAS,CAAC,SAAS,CAAC;gBAC3B,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,+CAA+C,CAAC,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC;gBACjG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,qBAAqB,CAAC,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,CAAC;YAC1F,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC1B,mEAAmE;gBACnE,2DAA2D;gBAC3D,OAAO,SAAS,CAAC,SAAS,CAAC;gBAC3B,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,sFAAsF,CAAC,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC;gBACxI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,2DAA2D,CAAC,CAAC;YAC/F,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QACzE,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,SAAS;QACX,CAAC;QACD,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACtG,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IAEzF,SAAS,MAAM,CAAC,GAAa;QAC3B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IACtF,CAAC;AACH,CAAC;AAED;yDACyD;AACzD,SAAS,kBAAkB,CAAC,CAAe,EAAE,SAAkB;IAC7D,MAAM,MAAM,GAA4B,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;IAChE,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;IAC5F,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,YAAY;YAAE,SAAS;QAClD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,0EAA0E;IAC1E,yEAAyE;IACzE,+BAA+B;IAC/B,KAAK,SAAS,CAAC;IACf,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,IAAc,EAAE,IAAY;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IACpC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAIP,YAAY,EAEZ,YAAY,EAEb,MAAM,YAAY,CAAC;AAuDpB,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBACd,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;CAO1F;AAwJD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,YAAY,CAqHrF;AAoID,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAKlF;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,GAAG,IAAI,CAIhB;AAUD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAKzE;AAMD,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ3D"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAIP,YAAY,EAEZ,YAAY,EAGb,MAAM,YAAY,CAAC;AAyDpB,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBACd,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;CAO1F;AAyJD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,YAAY,CAsIrF;AAoID,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAKlF;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,GAAG,IAAI,CAIhB;AAUD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAKzE;AAMD,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ3D"}
package/dist/parser.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // .uw.md parser — extracts frontmatter, section blocks, prose, and pipeline log
2
2
  // Spec: UW_FORMAT_SPEC_v1.md §2.4 (annotation syntax), §2.7 (update semantics), §2.8 (multi-variant)
3
3
  import { SOURCE_TAGS } from './types.js';
4
+ import { detectMetaShape, reshapeMetaV2toV1 } from './meta-shape.js';
4
5
  // ─── Regex patterns ───────────────────────────────────────────────────────────
5
6
  // Opening fence: ```json uw:section=<id> [key=value ...]
6
7
  const FENCE_OPEN_RE = /^```json\s+uw:section=(\S+)(.*)?$/;
@@ -209,6 +210,7 @@ const MULTI_VARIANT_SECTIONS = new Set([
209
210
  'operating_statement',
210
211
  'stress_tests',
211
212
  'due_diligence',
213
+ 'lease_up_schedule',
212
214
  ]);
213
215
  // Sections routed to dedicated collections rather than the main sections map
214
216
  const _RESERVED_SECTION_IDS = new Set([
@@ -303,7 +305,17 @@ export function parseUWFile(content, options = {}) {
303
305
  }
304
306
  parsed = { _parse_error: String(err), _raw: rawJson };
305
307
  }
306
- const meta = interpretMetaSource(parsed['_meta'] ?? {});
308
+ // RFC 0009: a nested v2 `_meta` is flattened to the v1 in-memory view at
309
+ // parse time (the back-compat shim's read direction), so every consumer
310
+ // keeps reading `meta.version` / `.superseded` / `.source` unchanged. The
311
+ // on-disk shape is recorded on the block for the validator's
312
+ // META-V2-IN-V1 / META-V1-IN-V2 enforcement; `content` stays bytes-derived
313
+ // and untouched either way.
314
+ const rawMeta = parsed['_meta'];
315
+ const metaShape = detectMetaShape(rawMeta);
316
+ const meta = metaShape === 'v2'
317
+ ? interpretMetaSource(reshapeMetaV2toV1(rawMeta, parsed['_overrides']))
318
+ : interpretMetaSource(rawMeta ?? {});
307
319
  const block = {
308
320
  annotation,
309
321
  meta,
@@ -312,6 +324,7 @@ export function parseUWFile(content, options = {}) {
312
324
  rawJson,
313
325
  lineStart,
314
326
  lineEnd,
327
+ ...(rawMeta !== undefined ? { meta_shape: metaShape } : {}),
315
328
  };
316
329
  routeBlock(result, block, sectionId, annotation, capturedProse);
317
330
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,qGAAqG;AAYrG,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,iFAAiF;AAEjF,yDAAyD;AACzD,MAAM,aAAa,GAAG,mCAAmC,CAAC;AAC1D,mEAAmE;AACnE,MAAM,cAAc,GAAG,UAAU,CAAC;AAClC,6BAA6B;AAC7B,MAAM,cAAc,GAAG,UAAU,CAAC;AAClC,wEAAwE;AACxE,MAAM,KAAK,GAAG,iBAAiB,CAAC;AAEhC,iFAAiF;AACjF,0EAA0E;AAC1E,wEAAwE;AACxE,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,4CAA4C;AAC5C,mCAAmC;AACnC,gCAAgC;AAChC,EAAE;AACF,8EAA8E;AAC9E,4BAA4B;AAC5B,EAAE;AACF,6CAA6C;AAC7C,kDAAkD;AAClD,mDAAmD;AACnD,+EAA+E;AAC/E,mCAAmC;AACnC,wCAAwC;AACxC,EAAE;AACF,+EAA+E;AAC/E,sCAAsC;AAEtC,MAAM,yBAAyB,GAA2C;IACxE,6EAA6E;IAC7E,gEAAgE;IAChE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE;IACtD,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAAE;IACtD,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,sCAAsC,EAAE;IAC3E,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,qCAAqC,EAAE;IAC3E,0EAA0E;IAC1E,mEAAmE;IACnE,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,4BAA4B,EAAE;IACrE,mEAAmE;IACnE,EAAE,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,4BAA4B,EAAE;IAC7E,4CAA4C;IAC5C,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,sBAAsB,EAAE;IACxD,mBAAmB;IACnB,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,+BAA+B,EAAE;CACxE,CAAC;AAEF,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAS;IACb,IAAI,CAAU;IACd,OAAO,CAAU;IAC1B,YAAY,IAAY,EAAE,OAAe,EAAE,OAA4C,EAAE;QACvF,KAAK,CAAC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;CACF;AAED,SAAS,qBAAqB,CAAC,KAAe;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,oEAAoE;QACpE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACxC,KAAK,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,yBAAyB,EAAE,CAAC;YAC7D,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,cAAc,CACtB,0BAA0B,EAC1B,oBAAoB,CAAC,GAAG,CAAC,SAAS,OAAO,sFAAsF,EAC/H,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CACzB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,yEAAyE;IACzE,qEAAqE;IACrE,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ;YAAE,QAAQ,GAAG,CAAC,QAAQ,CAAC;aAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ;YAAE,QAAQ,GAAG,CAAC,QAAQ,CAAC;aACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,EAAE,CAAC;YACrF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;YAAC,CAAC,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QAEvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE/C,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAAC,CAAC,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QAEnD,wEAAwE;QACxE,0EAA0E;QAC1E,6DAA6D;QAC7D,MAAM,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAEpC,uEAAuE;QACvE,IAAI,MAAM,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClF,MAAM,GAAG,GAAc,EAAE,CAAC;YAC1B,CAAC,EAAE,CAAC;YACJ,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5D,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,CAAC,EAAE,CAAC;YACN,CAAC;YACD,IAAI,IAAI;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAC9B,CAAC;aAAM,IAAI,MAAM,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3H,4EAA4E;YAC5E,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,CAAC,EAAE,CAAC;YACJ,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACjF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAC,CAAC,EAAE,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBAC3E,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAAC,CAAC,EAAE,CAAC;oBAAC,SAAS;gBAAC,CAAC,CAAC,oCAAoC;gBAC1F,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;oBAAC,CAAC,EAAE,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBACrC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC9D,CAAC,EAAE,CAAC;YACN,CAAC;YACD,IAAI,IAAI;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5C,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC5B,gBAAgB;IAChB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7F,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,SAAS;IACT,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IACjD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iFAAiF;AAEjF,SAAS,oBAAoB,CAAC,SAAiB,EAAE,IAAY;IAC3D,MAAM,UAAU,GAAsB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAC7D,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;IACpB,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7B,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEvB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,GAAG;gBACN,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,YAAY;gBACf,UAAU,CAAC,UAAU,GAAG,KAAK,KAAK,MAAM,CAAC;gBACzC,MAAM;YACR,KAAK,YAAY;gBACf,UAAU,CAAC,UAAU,GAAG,KAAwB,CAAC;gBACjD,MAAM;YACR;gBACE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;oBAAE,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxD,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,iFAAiF;AACjF,kFAAkF;AAElF,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,qBAAqB;IACrB,cAAc;IACd,eAAe;CAChB,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,cAAc;IACd,qBAAqB;IACrB,kBAAkB;CACnB,CAAC,CAAC;AAEH,iFAAiF;AAEjF,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,UAAwB,EAAE;IACrE,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACnC,wEAAwE;IACxE,8EAA8E;IAC9E,uEAAuE;IACvE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAErC,MAAM,MAAM,GAAiB;QAC3B,WAAW,EAAE,EAAmB;QAChC,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,EAAE;QAChB,mBAAmB,EAAE,EAAE;QACvB,gBAAgB,EAAE,EAAE;QACpB,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;QACd,GAAG,EAAE,OAAO;KACb,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,gFAAgF;IAChF,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QAC/B,CAAC,GAAG,CAAC,CAAC;QACN,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,EAAE,CAAC;QACN,CAAC;QACD,CAAC,EAAE,CAAC,CAAC,wBAAwB;QAC7B,IAAI,CAAC;YACH,uEAAuE;YACvE,uEAAuE;YACvE,6CAA6C;YAC7C,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACjC,MAAM,CAAC,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAkB,CAAC;QACnF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,cAAc;gBAAE,MAAM,GAAG,CAAC;YAC7C,IAAI,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;YAC9D,MAAM,CAAC,WAAuC,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,gFAAgF;IAEhF,IAAI,UAAU,GAAa,EAAE,CAAC;IAE9B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,8EAA8E;QAC9E,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY;QAErC,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,UAAU,GAAG,EAAE,CAAC;QAEhB,uCAAuC;QACvC,CAAC,EAAE,CAAC;QACJ,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,EAAE,CAAC;QACN,CAAC;QAED,0EAA0E;QAC1E,yEAAyE;QACzE,uEAAuE;QACvE,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,IAAI,cAAc,CACtB,wBAAwB,EACxB,YAAY,SAAS,oBAAoB,SAAS,wBAAwB,EAC1E,EAAE,IAAI,EAAE,SAAS,EAAE,CACpB,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB;QAChD,CAAC,EAAE,CAAC,CAAC,wBAAwB;QAE7B,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,MAA+B,CAAC;QAEpC,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,YAAY,SAAS,KAAK,GAAG,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACxD,CAAC;QAED,MAAM,IAAI,GAAG,mBAAmB,CAAE,MAAM,CAAC,OAAO,CAAwB,IAAK,EAAa,CAAC,CAAC;QAE5F,MAAM,KAAK,GAAY;YACrB,UAAU;YACV,IAAI;YACJ,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,aAAa;YACpB,OAAO;YACP,SAAS;YACT,OAAO;SACR,CAAC;QAEF,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAEhF;qCACqC;AACrC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CACzD,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAC1C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AACtC,CAAC;AAED,iFAAiF;AAEjF,SAAS,UAAU,CACjB,MAAoB,EACpB,KAAc,EACd,SAAiB,EACjB,UAA6B,EAC7B,KAAa;IAEb,+BAA+B;IAC/B,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;QACjC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IAED,kEAAkE;IAClE,IAAI,SAAS,KAAK,qBAAqB,EAAE,CAAC;QACxC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IACD,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;QACrC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IAED,iCAAiC;IACjC,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QACrC,OAAO;IACT,CAAC;IAED,iFAAiF;IACjF,IAAI,UAAU,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,EAAE,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACrE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,mFAAmF;IACnF,IAAI,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,SAAS,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE5C,IAAI,CAAC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,QAAoC,CAAC;YACxD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YAEpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,2BAA2B;gBAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC;gBACpE,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC;gBACtD,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;oBACpB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;wBAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;oBACrE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC3C,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;wBAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;oBACrE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,kCAAkC;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAwB,CAAC;IAEnE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QAChC,OAAO;IACT,CAAC;IAED,2DAA2D;IAC3D,MAAM,aAAa,GAAG,QAAmB,CAAC;IAC1C,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC;IAEtD,IAAI,IAAI,GAAG,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACrE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACrE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAY;IACrC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1D,6FAA6F;IAC7F,OAAO,CAAC,CAAC,YAAY,IAAK,GAAc,CAAC,CAAC;AAC5C,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,UAAU,CAAC,MAAoB,EAAE,SAAiB;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,iBAAiB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,0CAA0C;IACrF,OAAO,KAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAAoB,EACpB,SAAiB,EACjB,OAAe;IAEf,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,OAAQ,KAAkC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AAC9D,CAAC;AAED,gFAAgF;AAChF,+EAA+E;AAC/E,4EAA4E;AAC5E,0EAA0E;AAC1E,4BAA4B;AAE5B,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAE5E,+EAA+E;AAC/E,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,OAAe;IAC9D,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChE,IAAI,gBAAgB,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9E,OAAQ,OAAmC,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,gFAAgF;AAChF,+DAA+D;AAC/D,kEAAkE;AAElE,MAAM,UAAU,OAAO,CAAC,GAAY,EAAE,IAAY;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3D,IAAI,OAAO,GAAG,GAAG,CAAC;IAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAChE,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { AssetClass, ConfidenceLevel, DealStage, FinancialThresholds, ParsedUWFile, PipelineStatus, UWBlock, UWMeta, UWSignatureAlgorithm, ValidationMessage, ValidationSeverity } from './types.js';
2
2
  /** Semver of this protocol. Bumped independently of @uwmd/core's npm version. */
3
- export declare const PROTOCOL_VERSION: "1.10.0";
3
+ export declare const PROTOCOL_VERSION: "1.14.0";
4
4
  /** Format spec version this protocol pairs with. */
5
5
  export declare const FORMAT_VERSION: "1.1";
6
6
  /** The four conformance tiers defined in UW_PROTOCOL_v1.md Part II. */
@@ -19,6 +19,8 @@ export type ViewerCapability = 'parse' | 'validate' | 'render-json' | 'render-cs
19
19
  | 'calc-sensitivity' | 'agent-host' | 'module-load'
20
20
  /** Verifies `_meta.signature` on blocks (§V.11.5, RFC 0010). */
21
21
  | 'signing'
22
+ /** Enforces capability tokens on writes (§XIV, RFC 0011). */
23
+ | 'capability-verify'
22
24
  /** Verifies `ModuleManifest.signature` and honors a host policy (§X.1.4, RFC 0002). */
23
25
  | 'module-signature-verification'
24
26
  /**
@@ -73,6 +75,13 @@ export interface ImplementationManifest {
73
75
  representations?: RepresentationCapability[];
74
76
  /** Asset classes the implementation specifically supports (omit = all). */
75
77
  asset_classes?: AssetClass[];
78
+ /**
79
+ * Display locales the implementation renders (RFC 0001). Absent means
80
+ * `['en-US']` — every pre-0001 manifest keeps meaning what it meant. A
81
+ * display render of a file whose declared `locale` is outside this list
82
+ * is refused with LOC-01, never silently rendered in a different locale.
83
+ */
84
+ supported_locales?: SupportedLocale[];
76
85
  /** Role / form factor of the implementation. */
77
86
  role?: ViewerRole;
78
87
  /** Public homepage / docs URL. */
@@ -87,9 +96,18 @@ export interface ImplementationManifest {
87
96
  * test: a manifest that varied with the caller's environment would make two
88
97
  * runs of the same suite incomparable.
89
98
  */
99
+ /**
100
+ * The registered display locales (RFC 0001). Closed — new locales land via
101
+ * small additive RFC amendments to the Part III table, never as free-form
102
+ * tags. Locale governs human display renders (chat/summary/report) ONLY:
103
+ * canonical JSON content, CSV renders, UW Lite canonical form, digests, and
104
+ * calc evaluation are locale-free by construction.
105
+ */
106
+ export declare const SUPPORTED_LOCALES: readonly ["en-US", "en-GB", "de-DE", "fr-FR", "ja-JP", "zh-CN"];
107
+ export type SupportedLocale = (typeof SUPPORTED_LOCALES)[number];
108
+ /** True when `tag` names a registered display locale (RFC 0001). */
109
+ export declare function isSupportedLocale(tag: unknown): tag is SupportedLocale;
90
110
  export declare const REFERENCE_IMPLEMENTATION_MANIFEST: ImplementationManifest;
91
- /** Frozen to 'en-US' in v1; field reserved for v2 i18n work. */
92
- export type SupportedLocale = 'en-US';
93
111
  export interface NumberFormatRules {
94
112
  locale: SupportedLocale;
95
113
  currency: {
@@ -288,6 +306,99 @@ export declare const BUILTIN_INCOMPLETE_DATA_POLICIES: readonly IncompleteDataPo
288
306
  * Returns null when no policy matches.
289
307
  */
290
308
  export declare function lookupIncompleteDataPolicy(section: string, field_path: string | undefined, stage: import('./types.js').DealStage, policies?: readonly IncompleteDataPolicy[]): IncompleteDataPolicy | null;
309
+ /**
310
+ * What a pipeline stage requires of the document. `required_sections` is the
311
+ * presence list; `required_field_paths` enforces field-level presence (used by
312
+ * the `scope` stage); `required_one_of` enforces "at least one of these paths
313
+ * must resolve" (also `scope`-only today).
314
+ *
315
+ * Paths are dot-notated relative to a section's content root, prefixed with
316
+ * the section ID (e.g. `property.asking_price`, `property.units`).
317
+ */
318
+ export interface StageRequirement {
319
+ required_sections: string[];
320
+ required_field_paths?: string[];
321
+ required_one_of?: string[][];
322
+ }
323
+ export declare const STAGE_REQUIREMENTS: Record<DealStage, StageRequirement>;
324
+ /**
325
+ * Legacy helper that returns just the section-list portion of a stage's
326
+ * requirements. Preserved for callers that pre-date the widened
327
+ * `StageRequirement` shape; new code SHOULD consult `STAGE_CONTRACT` (or
328
+ * `requiredSectionsFor` when the asset class is known).
329
+ */
330
+ export declare function getRequiredSections(stage: DealStage): readonly string[];
331
+ /**
332
+ * Per-class adjustments to the base stage lists (format spec §5.1 class
333
+ * overlays, RFC 0029). Exhaustive by design: only `land` and `mixed_use`
334
+ * diverge structurally — every other class reuses the base sections with
335
+ * class-appropriate payloads (hospitality's `rent_roll` carries
336
+ * keys/ADR/segmentation), so reuse needs no entry here.
337
+ *
338
+ * `exempt` removes a requirement outright; `substitute` replaces it with
339
+ * another section that is then *required* in its place.
340
+ */
341
+ export declare const STAGE_SECTION_OVERLAYS: Partial<Record<AssetClass, {
342
+ exempt?: readonly string[];
343
+ substitute?: Readonly<Record<string, string>>;
344
+ }>>;
345
+ /**
346
+ * One row of the merged stage contract: for a `(stage, section)` pair —
347
+ * optionally narrowed to a `field_path` or an `asset_class` — what presence
348
+ * is required and what to do when the data is provisional.
349
+ *
350
+ * This registry merges the three surfaces that previously answered "what
351
+ * does this stage demand": `STAGE_REQUIREMENTS` (presence),
352
+ * `STAGE_SECTION_OVERLAYS` (RFC 0029 class adjustments — now the
353
+ * `asset_class` qualifier on a row, per the RFC's own warning that a second
354
+ * table beside the merge recreates the two-surface problem), and
355
+ * `BUILTIN_INCOMPLETE_DATA_POLICIES` (`on_provisional`). It is derived
356
+ * mechanically from those compact authoring tables at module init, so the
357
+ * two views cannot disagree; validators consult THIS registry (via
358
+ * `requiredSectionsFor` / `lookupStageContract`).
359
+ *
360
+ * Two refinements against the RFC sketch, recorded here: `required` and
361
+ * `on_provisional` are optional — a row may state a policy for a section a
362
+ * stage doesn't require (rent_roll at scope), or a requirement with no
363
+ * policy — and `one_of` carries the scope stage's either-or field groups,
364
+ * which the sketch's single `field_path` could not express.
365
+ */
366
+ export interface StageContractEntry {
367
+ stage: DealStage;
368
+ section: string;
369
+ field_path?: string;
370
+ /** Group of paths where at least one must resolve (scope-only today). */
371
+ one_of?: readonly string[];
372
+ /** Class-qualified row (RFC 0029 overlay absorbed): applies only to files
373
+ * of this asset class, overriding the unqualified row. */
374
+ asset_class?: AssetClass;
375
+ required?: boolean;
376
+ on_provisional?: GapAction;
377
+ /** Reserved: distinct handling for `partial` blocks (full-block
378
+ * `provisional` governs today; nothing populates this yet). */
379
+ on_partial?: GapAction;
380
+ rationale?: string;
381
+ }
382
+ /** The merged stage registry. Derived once at module init — see
383
+ * {@link StageContractEntry}. */
384
+ export declare const STAGE_CONTRACT: readonly StageContractEntry[];
385
+ /**
386
+ * The sections a declared stage requires of a document of the given asset
387
+ * class, answered from `STAGE_CONTRACT`: unqualified `required: true` rows,
388
+ * overridden by any class-qualified row for the same `(stage, section)`.
389
+ * An unrecognized class — or none — takes the unqualified rows verbatim.
390
+ * Both consumers of stage completeness (`stage_readiness` and `DQ-06`)
391
+ * resolve through this one function, so the booleans and the issues stream
392
+ * can never disagree about what a stage requires.
393
+ */
394
+ export declare function requiredSectionsFor(stage: DealStage, assetClass?: string): readonly string[];
395
+ /**
396
+ * The most-specific `STAGE_CONTRACT` row for `(stage, section, field_path,
397
+ * asset_class)`. Specificity mirrors `lookupIncompleteDataPolicy`:
398
+ * class-qualified beats unqualified, field-scoped beats section-scoped.
399
+ * Returns null when the contract says nothing about the pair.
400
+ */
401
+ export declare function lookupStageContract(stage: DealStage, section: string, field_path?: string, assetClass?: string): StageContractEntry | null;
291
402
  /** Who is permitted to overwrite a block, derived from `_meta.source`. */
292
403
  export type EditAuthority = 'agent_only' | 'human_only' | 'either' | 'system_only';
293
404
  export interface EditPolicy {
@@ -667,7 +778,7 @@ export interface ProtocolError {
667
778
  cause?: string;
668
779
  }
669
780
  /**
670
- * View models for the 21 standard sections defined in UW_FORMAT_SPEC_v1.md §4.
781
+ * View models for the standard sections defined in UW_FORMAT_SPEC_v1.md §4.
671
782
  * Implementers SHOULD use these as the default rendering layout. Modules MAY
672
783
  * override per-section by declaring their own `view_models` entry.
673
784
  */
@@ -678,6 +789,43 @@ export declare const BUILTIN_VIEW_MODELS: ViewModelRegistry;
678
789
  * or a supersede, and whether the actor is permitted to write at all.
679
790
  */
680
791
  export declare const BUILTIN_EDIT_POLICIES: readonly EditPolicy[];
792
+ /** Why a capability token was rejected (Protocol §XIV.3). */
793
+ export type CapabilityRejection = 'expired' | 'not_yet_valid' | 'wrong_audience' | 'wrong_deal' | 'wrong_section' | 'wrong_stage' | 'wrong_op'
794
+ /** The token's `sub` is not the prospective block's `_meta.source`. */
795
+ | 'sub_mismatch' | 'bad_signature' | 'unknown_kid' | 'malformed';
796
+ /** The edit the verifier is asked to authorize, as the editor sees it. */
797
+ export interface CapabilityVerifyContext {
798
+ /** The file's frontmatter `deal_id`. */
799
+ deal_id: string;
800
+ /**
801
+ * The target section id. Frontmatter ops use the reserved name
802
+ * `_frontmatter`; pipeline-log appends use `pipeline_log`.
803
+ */
804
+ section: string;
805
+ /** The file's declared `deal_stage`, or null when none is declared. */
806
+ stage: string | null;
807
+ /** The EditOperation kind. */
808
+ op: string;
809
+ /** The prospective block's `_meta.source` (the RFC 0031 actor). */
810
+ source: string;
811
+ }
812
+ export type CapabilityVerdict = {
813
+ ok: true;
814
+ sub: string;
815
+ jti: string;
816
+ } | {
817
+ ok: false;
818
+ reason: CapabilityRejection;
819
+ };
820
+ /**
821
+ * Verifies a capability token against the edit it claims to authorize.
822
+ * Injected into `applyEditAsync` via `EditOptions.capabilityVerifier`; when
823
+ * one is configured, every write MUST present a token it accepts (POL-03
824
+ * otherwise). Async because verification is Web Crypto.
825
+ */
826
+ export interface CapabilityVerifier {
827
+ verify(token: string, ctx: CapabilityVerifyContext): Promise<CapabilityVerdict>;
828
+ }
681
829
  /**
682
830
  * One registered validator code family (protocol §III.6a, RFC 0030).
683
831
  *