@metaobjectsdev/render 0.15.21 → 0.16.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.
@@ -54,6 +54,11 @@ function extractFields(fields, raw, prefix, data, report, o, ci) {
54
54
  data[f.name] = coerced;
55
55
  report.addCoercion({ fieldPath: path, from: "", to: f.defaultValue, kind: "default" });
56
56
  report.set(path, FieldExtraction.DEFAULTED);
57
+ // A default SATISFIES @required, so this field will never appear in
58
+ // lostRequired() — which is what the generated guards key on. Record it
59
+ // separately so "the document did not answer a required field" stays askable.
60
+ if (f.required)
61
+ report.markDefaultedRequired(path);
57
62
  continue;
58
63
  }
59
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/extract/extract.ts"],"names":[],"mappings":"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"}
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,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACpD,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;QAClC,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC5B,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;SAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/C,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAChD,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QAClE,MAAM,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,aAAa,CACpB,MAA4B,EAC5B,GAA4B,EAC5B,MAAc,EACd,IAA6B,EAC7B,MAAwB,EACxB,CAAiB,EACjB,EAAW;IAEX,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAClE,4FAA4F;QAC5F,gEAAgE;QAChE,MAAM,OAAO,GAAG,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,yFAAyF;YACzF,0FAA0F;YAC1F,0FAA0F;YAC1F,0FAA0F;YAC1F,oCAAoC;YACpC,IAAI,CAAC,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;gBAC3B,MAAM,OAAO,GACX,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC/E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;oBACvB,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;oBACvF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;oBAC5C,oEAAoE;oBACpE,wEAAwE;oBACxE,8EAA8E;oBAC9E,IAAI,CAAC,CAAC,QAAQ;wBAAE,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;oBACnD,SAAS;gBACX,CAAC;YACH,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAC7F,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,4CAA4C;YAC5C,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;YAC5C,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC7B,kFAAkF;YAClF,qFAAqF;YACrF,qFAAqF;YACrF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAC7F,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACZ,4EAA4E;YAC5E,oFAAoF;YACpF,MAAM,QAAQ,GAAc,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACzE,MAAM,GAAG,GAAc,EAAE,CAAC;YAC1B,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,2FAA2F;YAC3F,4FAA4F;YAC5F,6FAA6F;YAC7F,wFAAwF;YACxF,wCAAwC;YACxC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC;YAC/C,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC;gBACnC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClE,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACpB,YAAY,GAAG,IAAI,CAAC;oBACpB,IAAI,YAAY;wBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;gBACpE,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACZ,IAAI,YAAY;wBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;YACD,+EAA+E;YAC/E,sFAAsF;YACtF,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;YACnB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACvF,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,6CAA6C;YAC7C,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;YAC5C,SAAS;QACX,CAAC;QACD,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,wFAAwF;YACxF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,IAAY,EAAE,MAAwB;IAC7D,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE;QAAE,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI;YAAE,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC;IACpF,OAAO,YAAY,KAAK,eAAe,IAAI,YAAY,KAAK,SAAS;QACnE,CAAC,CAAC,eAAe,CAAC,SAAS;QAC3B,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC;AAChC,CAAC;AAED,gHAAgH;AAChH,SAAS,YAAY,CACnB,CAAY,EACZ,OAAgB,EAChB,IAAY,EACZ,MAAwB,EACxB,CAAiB,EACjB,EAAW;IAEX,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,wFAAwF;QACxF,8CAA8C;QAC9C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,MAAM,UAAU,GAA4B,EAAE,CAAC;YAC/C,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,OAAkC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACpG,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,OAAO,SAAS,CAAC,CAAC,6CAA6C;IACjE,CAAC;IACD,6FAA6F;IAC7F,4FAA4F;IAC5F,+CAA+C;IAC/C,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;QACtF,OAAO,GAAI,OAAmC,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAChF,OAAO,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,kGAAkG;AAClG,SAAS,MAAM,CAAC,GAA4B,EAAE,IAAY,EAAE,EAAW;IACrE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;IACtE,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK;gBAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,aAAa,CAAC,CAA0B;IAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,0EAA0E;AAC1E,SAAS,eAAe,CAAC,CAAU;IACjC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC"}
@@ -164,6 +164,7 @@ export declare function orThrow<T>(result: ExtractionResult<T>): T | null;
164
164
  export declare class ExtractionReport {
165
165
  private readonly _states;
166
166
  private readonly _coercions;
167
+ private readonly _defaultedRequired;
167
168
  private _empty;
168
169
  set(fieldPath: string, state: FieldExtraction): void;
169
170
  addCoercion(c: Coercion): void;
@@ -174,6 +175,28 @@ export declare class ExtractionReport {
174
175
  lostRequired(): string[];
175
176
  malformed(): string[];
176
177
  hasLostRequired(): boolean;
178
+ /** Every field the document did not answer, whose value came from its `@default`. */
179
+ defaulted(): string[];
180
+ /**
181
+ * The dangerous subset: **`@required` fields the document did NOT answer**, whose value
182
+ * was silently supplied by their `@default`.
183
+ *
184
+ * These do NOT appear in `lostRequired()`, and that is deliberate — a default IS an
185
+ * answer, so the field is not "lost". But it means a `@default` **switches off loss
186
+ * detection for that field**, including in generated code: the generated extractor and
187
+ * `dataOrThrow()` both key their failure signal on `hasLostRequired()`, so a required
188
+ * field with a default can never make them fire.
189
+ *
190
+ * That is a sharp edge worth being able to SEE. It propagates through `extends` — adding
191
+ * an innocuous `@default` to a shared abstract field silently disables loss detection for
192
+ * every field inheriting it — and a missing value then becomes indistinguishable from a
193
+ * real one. Check this alongside `hasLostRequired()` when an absent answer must not be
194
+ * mistaken for a given one.
195
+ */
196
+ defaultedRequired(): string[];
197
+ hasDefaultedRequired(): boolean;
198
+ /** Called by extract when an absent **required** field is filled from its `@default`. */
199
+ markDefaultedRequired(fieldPath: string): void;
177
200
  private byState;
178
201
  }
179
202
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/extract/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAUpD,uFAAuF;AACvF,eAAO,MAAM,MAAM;;;CAGT,CAAC;AACX,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAE1D,uFAAuF;AACvF,eAAO,MAAM,SAAS;;;;;;;;CAQZ,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;CAOlB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAErF;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE,wIAAwI;AACxI,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAC5D,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IACtC,uGAAuG;IACvG,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,uFAAuF;IACvF,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,OAAO,EACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,SAAS,CAeX;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,CAE5F;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,EAChC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,EAChD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,SAAS,GAAE,aAAuB,EAClC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,SAAS,CAeX;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,EAChC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,EAChD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,SAAS,GAAE,aAAuB,EAClC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,SAAS,CAeX;AAED,wBAAgB,KAAK,CACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,OAAO,EACjB,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,SAAS,CAeX;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,CAe/G;AAED,0FAA0F;AAC1F,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;CACvC;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,GAAG,aAAa,CAElH;AAED;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,OAAO,GAAG,IAAI,CAAC;AAE/F;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IAChF,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,QAAQ,IAAI,cAAc,CAEzC;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,GAAG,cAAc,CAStF;AAED,4GAA4G;AAC5G,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED,wGAAwG;AACxG,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;gBAC7B,YAAY,EAAE,SAAS,MAAM,EAAE;CAK5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAKhE;AAED,oHAAoH;AACpH,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,MAAM,CAAS;IAEvB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;IAIpD,WAAW,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI;IAI9B,SAAS,IAAI,IAAI;IAIjB,OAAO,IAAI,OAAO;IAIlB,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC;IAI9C,SAAS,IAAI,SAAS,QAAQ,EAAE;IAIhC,YAAY,IAAI,MAAM,EAAE;IAIxB,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,IAAI,OAAO;IAI1B,OAAO,CAAC,OAAO;CAKhB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/extract/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAUpD,uFAAuF;AACvF,eAAO,MAAM,MAAM;;;CAGT,CAAC;AACX,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAE1D,uFAAuF;AACvF,eAAO,MAAM,SAAS;;;;;;;;CAQZ,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;CAOlB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAErF;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE,wIAAwI;AACxI,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAC5D,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IACtC,uGAAuG;IACvG,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,uFAAuF;IACvF,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,OAAO,EACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,SAAS,CAeX;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,CAE5F;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,EAChC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,EAChD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,SAAS,GAAE,aAAuB,EAClC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,SAAS,CAeX;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,EAChC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,EAChD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,SAAS,GAAE,aAAuB,EAClC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,SAAS,CAeX;AAED,wBAAgB,KAAK,CACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,OAAO,EACjB,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,SAAS,CAeX;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,CAe/G;AAED,0FAA0F;AAC1F,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;CACvC;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,GAAG,aAAa,CAElH;AAED;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,OAAO,GAAG,IAAI,CAAC;AAE/F;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IAChF,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,QAAQ,IAAI,cAAc,CAEzC;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,GAAG,cAAc,CAStF;AAED,4GAA4G;AAC5G,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED,wGAAwG;AACxG,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;gBAC7B,YAAY,EAAE,SAAS,MAAM,EAAE;CAK5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAKhE;AAED,oHAAoH;AACpH,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,MAAM,CAAS;IAEvB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;IAIpD,WAAW,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI;IAI9B,SAAS,IAAI,IAAI;IAIjB,OAAO,IAAI,OAAO;IAIlB,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC;IAI9C,SAAS,IAAI,SAAS,QAAQ,EAAE;IAIhC,YAAY,IAAI,MAAM,EAAE;IAIxB,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,IAAI,OAAO;IAI1B,qFAAqF;IACrF,SAAS,IAAI,MAAM,EAAE;IAIrB;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAI7B,oBAAoB,IAAI,OAAO;IAI/B,yFAAyF;IACzF,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI9C,OAAO,CAAC,OAAO;CAKhB"}
@@ -190,6 +190,7 @@ export class ExtractionReport {
190
190
  // Insertion-ordered (Map preserves insertion order, mirroring Java LinkedHashMap).
191
191
  _states = new Map();
192
192
  _coercions = [];
193
+ _defaultedRequired = new Set();
193
194
  _empty = false;
194
195
  set(fieldPath, state) {
195
196
  this._states.set(fieldPath, state);
@@ -218,6 +219,36 @@ export class ExtractionReport {
218
219
  hasLostRequired() {
219
220
  return this.lostRequired().length > 0;
220
221
  }
222
+ /** Every field the document did not answer, whose value came from its `@default`. */
223
+ defaulted() {
224
+ return this.byState(FieldExtraction.DEFAULTED);
225
+ }
226
+ /**
227
+ * The dangerous subset: **`@required` fields the document did NOT answer**, whose value
228
+ * was silently supplied by their `@default`.
229
+ *
230
+ * These do NOT appear in `lostRequired()`, and that is deliberate — a default IS an
231
+ * answer, so the field is not "lost". But it means a `@default` **switches off loss
232
+ * detection for that field**, including in generated code: the generated extractor and
233
+ * `dataOrThrow()` both key their failure signal on `hasLostRequired()`, so a required
234
+ * field with a default can never make them fire.
235
+ *
236
+ * That is a sharp edge worth being able to SEE. It propagates through `extends` — adding
237
+ * an innocuous `@default` to a shared abstract field silently disables loss detection for
238
+ * every field inheriting it — and a missing value then becomes indistinguishable from a
239
+ * real one. Check this alongside `hasLostRequired()` when an absent answer must not be
240
+ * mistaken for a given one.
241
+ */
242
+ defaultedRequired() {
243
+ return [...this._defaultedRequired];
244
+ }
245
+ hasDefaultedRequired() {
246
+ return this._defaultedRequired.size > 0;
247
+ }
248
+ /** Called by extract when an absent **required** field is filled from its `@default`. */
249
+ markDefaultedRequired(fieldPath) {
250
+ this._defaultedRequired.add(fieldPath);
251
+ }
221
252
  byState(s) {
222
253
  const out = [];
223
254
  for (const [k, v] of this._states)
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/render",
3
- "version": "0.15.21",
3
+ "version": "0.16.0",
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",
@@ -79,6 +79,10 @@ function extractFields(
79
79
  data[f.name] = coerced;
80
80
  report.addCoercion({ fieldPath: path, from: "", to: f.defaultValue, kind: "default" });
81
81
  report.set(path, FieldExtraction.DEFAULTED);
82
+ // A default SATISFIES @required, so this field will never appear in
83
+ // lostRequired() — which is what the generated guards key on. Record it
84
+ // separately so "the document did not answer a required field" stays askable.
85
+ if (f.required) report.markDefaultedRequired(path);
82
86
  continue;
83
87
  }
84
88
  }
@@ -323,6 +323,7 @@ export class ExtractionReport {
323
323
  // Insertion-ordered (Map preserves insertion order, mirroring Java LinkedHashMap).
324
324
  private readonly _states = new Map<string, FieldExtraction>();
325
325
  private readonly _coercions: Coercion[] = [];
326
+ private readonly _defaultedRequired = new Set<string>();
326
327
  private _empty = false;
327
328
 
328
329
  set(fieldPath: string, state: FieldExtraction): void {
@@ -361,6 +362,40 @@ export class ExtractionReport {
361
362
  return this.lostRequired().length > 0;
362
363
  }
363
364
 
365
+ /** Every field the document did not answer, whose value came from its `@default`. */
366
+ defaulted(): string[] {
367
+ return this.byState(FieldExtraction.DEFAULTED);
368
+ }
369
+
370
+ /**
371
+ * The dangerous subset: **`@required` fields the document did NOT answer**, whose value
372
+ * was silently supplied by their `@default`.
373
+ *
374
+ * These do NOT appear in `lostRequired()`, and that is deliberate — a default IS an
375
+ * answer, so the field is not "lost". But it means a `@default` **switches off loss
376
+ * detection for that field**, including in generated code: the generated extractor and
377
+ * `dataOrThrow()` both key their failure signal on `hasLostRequired()`, so a required
378
+ * field with a default can never make them fire.
379
+ *
380
+ * That is a sharp edge worth being able to SEE. It propagates through `extends` — adding
381
+ * an innocuous `@default` to a shared abstract field silently disables loss detection for
382
+ * every field inheriting it — and a missing value then becomes indistinguishable from a
383
+ * real one. Check this alongside `hasLostRequired()` when an absent answer must not be
384
+ * mistaken for a given one.
385
+ */
386
+ defaultedRequired(): string[] {
387
+ return [...this._defaultedRequired];
388
+ }
389
+
390
+ hasDefaultedRequired(): boolean {
391
+ return this._defaultedRequired.size > 0;
392
+ }
393
+
394
+ /** Called by extract when an absent **required** field is filled from its `@default`. */
395
+ markDefaultedRequired(fieldPath: string): void {
396
+ this._defaultedRequired.add(fieldPath);
397
+ }
398
+
364
399
  private byState(s: FieldExtraction): string[] {
365
400
  const out: string[] = [];
366
401
  for (const [k, v] of this._states) if (v === s) out.push(k);