@metaobjectsdev/docs-site 1.0.13 → 1.1.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.
@@ -1,4 +1,4 @@
1
- import { deriveM2MFields, resolveRelationshipReference, stripPackage } from "@metaobjectsdev/metadata";
1
+ import { deriveM2MFields, resolveRelationshipReference, OBJECT_REPORT_ATTR_FROM, OBJECT_SUBTYPE_REPORT, TYPE_OBJECT, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_THROUGH, IDENTITY_REFERENCE_ATTR_REFERENCES, FIELD_ATTR_OBJECT_REF, ORIGIN_PASSTHROUGH_ATTR_FROM, TEMPLATE_ATTR_PAYLOAD_REF, TEMPLATE_ATTR_RESPONSE_REF, refTarget, } from "@metaobjectsdev/metadata";
2
2
  import { treeOf } from "./load.js";
3
3
  export function pkgOf(node) {
4
4
  return (node.package ?? node.fileDefaultPackage ?? "");
@@ -13,7 +13,10 @@ export class LinkGraph {
13
13
  _to = new Map();
14
14
  _extBy = new Map();
15
15
  _origins = new Map();
16
+ /** The loaded root the graph was built from (a report's derived columns resolve against it). */
17
+ root;
16
18
  constructor(model) {
19
+ this.root = model.root;
17
20
  for (const o of model.root.ownChildren()) {
18
21
  let kind;
19
22
  if (o.type === "object")
@@ -33,16 +36,21 @@ export class LinkGraph {
33
36
  (this._from.get(r.from) ?? this._from.set(r.from, []).get(r.from)).push(r);
34
37
  (this._to.get(r.to) ?? this._to.set(r.to, []).get(r.to)).push(r);
35
38
  };
36
- const resolveRef = (raw, ctxPkg) => {
37
- const cand = raw.includes("::") ? raw : `${ctxPkg}::${raw}`;
38
- return this._nodes.has(cand) ? cand : (this._nodes.has(raw) ? raw : undefined);
39
+ // ADR-0059 R7 — an edge points at the object the reference attribute is bound to,
40
+ // resolved where the attribute was declared, never re-resolved in an inheritor's package.
41
+ const bound = (node, attr) => {
42
+ const target = refTarget(node, attr);
43
+ if (target === undefined)
44
+ return undefined;
45
+ const key = fqnOf(target);
46
+ return this._nodes.has(key) ? key : undefined;
39
47
  };
40
48
  // M:N through-junction edge. Derives the junction FK fields via the metadata
41
49
  // SSOT (deriveM2MFields) — hetero, directed (@sourceRefField), or symmetric
42
50
  // (@symmetric). On a derivation failure (ambiguous self-join) the edge is
43
51
  // SKIPPED — generation never fails.
44
- const addM2mEdge = (from, to, rel, obj, ctxPkg, onDelete, subtype) => {
45
- const through = rel.through ? (resolveRef(rel.through, ctxPkg) ?? rel.through) : undefined;
52
+ const addM2mEdge = (from, to, rel, obj, onDelete, subtype) => {
53
+ const through = rel.through ? (bound(rel, RELATIONSHIP_ATTR_THROUGH) ?? rel.through) : undefined;
46
54
  let sourceJoinField, targetJoinField;
47
55
  try {
48
56
  const f = deriveM2MFields(rel, obj, model.root);
@@ -58,12 +66,9 @@ export class LinkGraph {
58
66
  const fqn = fqnOf(dn.node);
59
67
  if (dn.kind === "object") {
60
68
  for (const f of dn.node.childrenOfType("field")) {
61
- const ref = f.attr("objectRef");
62
- if (typeof ref === "string") {
63
- const to = resolveRef(ref, dn.pkg);
64
- if (to)
65
- addRef({ from: fqn, to, via: f.name, kind: "field" });
66
- }
69
+ const to = bound(f, FIELD_ATTR_OBJECT_REF);
70
+ if (to)
71
+ addRef({ from: fqn, to, via: f.name, kind: "field" });
67
72
  }
68
73
  // dn.node is typed MetaData; the enclosing dn.kind === "object" guard
69
74
  // guarantees it is a MetaObject at runtime. The `unknown` bridge is needed
@@ -75,17 +80,14 @@ export class LinkGraph {
75
80
  // reference whose (target, first-field) a belongs-to relationship covered.
76
81
  const coveredFk = new Set();
77
82
  for (const rel of obj.relationships()) {
78
- const objectRef = rel.objectRef;
79
- if (typeof objectRef !== "string")
80
- continue;
81
- const to = resolveRef(objectRef, dn.pkg);
83
+ const to = bound(rel, RELATIONSHIP_ATTR_OBJECT_REF);
82
84
  if (!to)
83
85
  continue;
84
86
  const cardinality = rel.cardinality === "many" ? "many" : rel.cardinality === "one" ? "one" : undefined;
85
87
  const onDelete = rel.onDelete;
86
88
  const subtype = rel.subType;
87
89
  if (cardinality === "many" && rel.through !== undefined) {
88
- addM2mEdge(fqn, to, rel, obj, dn.pkg, onDelete, subtype); // Task 3 helper
90
+ addM2mEdge(fqn, to, rel, obj, onDelete, subtype); // Task 3 helper
89
91
  continue;
90
92
  }
91
93
  // belongs-to (1:N, one) — resolve the identity.reference this relationship
@@ -98,8 +100,7 @@ export class LinkGraph {
98
100
  // uses; ambiguous cases resolve to undefined and simply leave every candidate
99
101
  // reference to draw its own "fk" edge, which is the safe (extra-info, not
100
102
  // missing-edge) outcome for a docs graph.
101
- const target = stripPackage(objectRef);
102
- const match = resolveRelationshipReference(obj, rel.name, target, rel.sourceRefField);
103
+ const match = resolveRelationshipReference(obj, rel.name, refTarget(rel, RELATIONSHIP_ATTR_OBJECT_REF), rel.sourceRefField);
103
104
  const fkField = match?.fields?.[0];
104
105
  if (fkField)
105
106
  coveredFk.add(`${to}::${fkField}`);
@@ -108,32 +109,34 @@ export class LinkGraph {
108
109
  for (const id of dn.node.childrenOfType("identity")) {
109
110
  if (id.subType !== "reference")
110
111
  continue;
111
- const ref = id.attr("references");
112
- if (typeof ref === "string") {
113
- const to = resolveRef(ref, dn.pkg);
114
- if (to) {
115
- const fieldsValue = id.attr("fields") ?? id.name;
116
- const firstField = Array.isArray(fieldsValue) ? String(fieldsValue[0] ?? "") : String(fieldsValue);
117
- if (coveredFk.has(`${to}::${firstField}`))
118
- continue; // superseded by a relationship edge
119
- const via = Array.isArray(fieldsValue) ? fieldsValue.join(", ") : String(fieldsValue);
120
- addRef({ from: fqn, to, via, kind: "fk" });
121
- }
122
- }
112
+ const to = bound(id, IDENTITY_REFERENCE_ATTR_REFERENCES);
113
+ if (!to)
114
+ continue;
115
+ const fieldsValue = id.attr("fields") ?? id.name;
116
+ const firstField = Array.isArray(fieldsValue) ? String(fieldsValue[0] ?? "") : String(fieldsValue);
117
+ if (coveredFk.has(`${to}::${firstField}`))
118
+ continue; // superseded by a relationship edge
119
+ const via = Array.isArray(fieldsValue) ? fieldsValue.join(", ") : String(fieldsValue);
120
+ addRef({ from: fqn, to, via, kind: "fk" });
123
121
  }
124
122
  for (const f of dn.node.childrenOfType("field")) {
125
123
  for (const org of f.childrenOfType("origin")) {
126
124
  const from = String(org.attr("from") ?? ""), via = String(org.attr("via") ?? "");
127
125
  (this._origins.get(fqn) ?? this._origins.set(fqn, []).get(fqn)).push({ field: f.name, from, via });
128
126
  // connect a projection to its source object so it is not orphaned on diagrams:
129
- // `from` is "pkg::Entity.field" — strip the trailing ".field" to get the source object ref.
130
- const dot = from.lastIndexOf(".");
131
- const srcRef = dot > 0 ? from.slice(0, dot) : "";
132
- const to = srcRef ? resolveRef(srcRef, dn.pkg) : undefined;
127
+ // `from` is "pkg::Entity.field"; its bound target is the source object.
128
+ const to = bound(org, ORIGIN_PASSTHROUGH_ATTR_FROM);
133
129
  if (to && to !== fqn)
134
130
  addRef({ from: fqn, to, via: `${f.name} (origin)`, kind: "origin" });
135
131
  }
136
132
  }
133
+ // FR-044: a report reads from its @from entity. The edge is what puts the report on
134
+ // that entity's page and diagrams, and keeps a report from reading as an orphan.
135
+ if (dn.node.type === TYPE_OBJECT && dn.node.subType === OBJECT_SUBTYPE_REPORT) {
136
+ const to = bound(dn.node, OBJECT_REPORT_ATTR_FROM);
137
+ if (to)
138
+ addRef({ from: fqn, to, via: OBJECT_REPORT_ATTR_FROM, kind: "report" });
139
+ }
137
140
  const sup = dn.node.superResolved;
138
141
  if (sup) {
139
142
  const supFqn = fqnOf(sup);
@@ -142,20 +145,14 @@ export class LinkGraph {
142
145
  }
143
146
  }
144
147
  else {
145
- const p = dn.node.attr("payloadRef");
146
- if (typeof p === "string") {
147
- const to = resolveRef(p, dn.pkg);
148
- if (to)
149
- addRef({ from: fqn, to, via: "payloadRef", kind: "payload" });
150
- }
148
+ const toPayload = bound(dn.node, TEMPLATE_ATTR_PAYLOAD_REF);
149
+ if (toPayload)
150
+ addRef({ from: fqn, to: toPayload, via: "payloadRef", kind: "payload" });
151
151
  // A prompt's @responseRef is the response value-object it PRODUCES — the
152
152
  // missing hop of the data-flow pipeline (prompt → response VO → entity).
153
- const r = dn.node.attr("responseRef");
154
- if (typeof r === "string") {
155
- const to = resolveRef(r, dn.pkg);
156
- if (to)
157
- addRef({ from: fqn, to, via: "responseRef", kind: "response" });
158
- }
153
+ const toResponse = bound(dn.node, TEMPLATE_ATTR_RESPONSE_REF);
154
+ if (toResponse)
155
+ addRef({ from: fqn, to: toResponse, via: "responseRef", kind: "response" });
159
156
  }
160
157
  }
161
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"link-graph.js","sourceRoot":"","sources":["../src/link-graph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACvG,OAAO,EAAoB,MAAM,EAAE,MAAM,WAAW,CAAC;AAgBrD,MAAM,UAAU,KAAK,CAAC,IAAc;IAClC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAK,IAAwC,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;AAC9F,CAAC;AACD,MAAM,UAAU,KAAK,CAAC,IAAc;IAClC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,OAAO,SAAS;IACZ,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;IACpC,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;IACjC,GAAG,GAAG,IAAI,GAAG,EAAiB,CAAC;IAC/B,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAC;IACtC,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAElD,YAAY,KAAkB;QAC5B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACzC,IAAI,IAAiC,CAAC;YACtC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,GAAG,QAAQ,CAAC;iBACpC,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;gBAAE,IAAI,GAAG,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;YACpF,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBACxB,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO;gBAChC,IAAI,EAAE,GAAG,OAAO,IAAI,CAAC,CAAC,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;aACnE,CAAC,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,CAAM,EAAE,EAAE;YACxB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5E,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC;QACF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,MAAc,EAAsB,EAAE;YACrE,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjF,CAAC,CAAC;QACF,6EAA6E;QAC7E,4EAA4E;QAC5E,0EAA0E;QAC1E,oCAAoC;QACpC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,GAAqB,EAAE,GAAe,EAAE,MAAc,EAAE,QAA4B,EAAE,OAA2B,EAAQ,EAAE;YACvK,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3F,IAAI,eAAmC,EAAE,eAAmC,CAAC;YAC7E,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChD,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC;gBAChC,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAE,2EAA2E;YACtF,CAAC;YACD,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACzK,CAAC,CAAC;QACF,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACzB,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;oBAChD,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAChC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;wBAC5B,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;wBACnC,IAAI,EAAE;4BAAE,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;oBAChE,CAAC;gBACH,CAAC;gBACD,sEAAsE;gBACtE,2EAA2E;gBAC3E,uEAAuE;gBACvE,MAAM,GAAG,GAAG,EAAE,CAAC,IAA6B,CAAC;gBAC7C,6EAA6E;gBAC7E,yEAAyE;gBACzE,uEAAuE;gBACvE,2EAA2E;gBAC3E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;gBACpC,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC;oBACtC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;oBAChC,IAAI,OAAO,SAAS,KAAK,QAAQ;wBAAE,SAAS;oBAC5C,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;oBACzC,IAAI,CAAC,EAAE;wBAAE,SAAS;oBAClB,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;oBACxG,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;oBAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;oBAC5B,IAAI,WAAW,KAAK,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBACxD,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAG,gBAAgB;wBAC5E,SAAS;oBACX,CAAC;oBACD,2EAA2E;oBAC3E,8EAA8E;oBAC9E,2EAA2E;oBAC3E,2EAA2E;oBAC3E,2EAA2E;oBAC3E,qEAAqE;oBACrE,6EAA6E;oBAC7E,8EAA8E;oBAC9E,0EAA0E;oBAC1E,0CAA0C;oBAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;oBACvC,MAAM,KAAK,GAAG,4BAA4B,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;oBACtF,MAAM,OAAO,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;oBACnC,IAAI,OAAO;wBAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;oBAChD,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBACjG,CAAC;gBACD,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;oBACpD,IAAI,EAAE,CAAC,OAAO,KAAK,WAAW;wBAAE,SAAS;oBACzC,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAClC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;wBAC5B,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;wBACnC,IAAI,EAAE,EAAE,CAAC;4BACP,MAAM,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;4BACjD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;4BACnG,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,UAAU,EAAE,CAAC;gCAAE,SAAS,CAAG,oCAAoC;4BAC3F,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;4BACtF,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC7C,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;oBAChD,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;wBACjF,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;wBACpG,+EAA+E;wBAC/E,4FAA4F;wBAC5F,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;wBAClC,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACjD,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBAC3D,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG;4BAAE,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC7F,CAAC;gBACH,CAAC;gBACD,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;gBAClC,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC1B,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;oBACnE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACrC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC1B,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;oBACjC,IAAI,EAAE;wBAAE,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACxE,CAAC;gBACD,yEAAyE;gBACzE,yEAAyE;gBACzE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACtC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC1B,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;oBACjC,IAAI,EAAE;wBAAE,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,KAAgB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,KAAK,CAAC,GAAW,IAAyB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxE,QAAQ,CAAC,GAAW,IAAW,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,GAAW,IAAW,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,CAAC,GAAW;QAChB,MAAM,CAAC,GAAG,CAAC,EAAS,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACvE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,UAAU,CAAC,GAAW,IAAe,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzE,SAAS,CAAC,GAAW,IAAiB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5E,SAAS,CAAC,GAAW;QACnB,MAAM,GAAG,GAAc,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,GAAG,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;YAC9D,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC;gBAAE,MAAM;YACd,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,eAAe,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;aAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;aAC5E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,CAAC,QAAgB,EAAE,MAAc;QACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElC,yDAAyD;QACzD,SAAS,CAAC,GAAG,EAAE,CAAC;QAEhB,gCAAgC;QAChC,qFAAqF;QACrF,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxE,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChC,SAAS,EAAE,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC;QAExC,kDAAkD;QAClD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAErD,8BAA8B;QAC9B,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;CACF"}
1
+ {"version":3,"file":"link-graph.js","sourceRoot":"","sources":["../src/link-graph.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAM3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AASpD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,yGAAyG;IACzG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iHAAiH;IACjH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;oFAEgF;IAChF,cAAc,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA+GD,wBAAsB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA6JzE"}
1
+ {"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAM3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AASpD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,yGAAyG;IACzG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iHAAiH;IACjH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;oFAEgF;IAChF,cAAc,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA+GD,wBAAsB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA+JzE"}
package/dist/site.js CHANGED
@@ -127,6 +127,7 @@ export async function generateSite(opts) {
127
127
  const objectTocHtml = (d) => {
128
128
  const sections = [
129
129
  { id: "s-overview", label: "Overview", present: !!d.desc },
130
+ { id: "s-report", label: "Report", present: d.report !== undefined },
130
131
  { id: "s-fields", label: "Fields", present: d.ownFields.length > 0 },
131
132
  { id: "s-indexes", label: "Indexes & keys", present: d.indexes.length > 0 },
132
133
  { id: "s-validators", label: "Validators", present: d.validators.length > 0 },
@@ -134,6 +135,7 @@ export async function generateSite(opts) {
134
135
  { id: "s-provenance", label: "Field provenance", present: d.origins.length > 0 },
135
136
  { id: "s-inheritance", label: "Inheritance", present: !!d.inheritanceMermaid },
136
137
  { id: "s-neighborhood", label: "Neighborhood", present: !!d.neighborhoodMermaid },
138
+ { id: "s-reporting", label: "Reporting", present: d.reporting !== undefined },
137
139
  { id: "s-referenced-by", label: "Referenced by", present: d.referencedBy.length > 0 },
138
140
  ];
139
141
  return sections
package/dist/site.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"site.js","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"site.js","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/docs-site",
3
- "version": "1.0.13",
4
- "description": "HTML documentation-site generator for metaobjects models — a browsable multi-page site (nav, search, per-object/package pages, kind-aware ER diagrams). Powers the `meta docs --site` surface.",
3
+ "version": "1.1.0",
4
+ "description": "HTML documentation-site generator for metaobjects models — a browsable multi-page site (nav, search, per-object/package pages, kind-aware ER diagrams). Powers the `docs-site` generator (`docsSiteFile()`).",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -48,8 +48,8 @@
48
48
  "access": "public"
49
49
  },
50
50
  "dependencies": {
51
- "@metaobjectsdev/metadata": "1.0.13",
52
- "@metaobjectsdev/render": "1.0.13",
51
+ "@metaobjectsdev/metadata": "1.1.0",
52
+ "@metaobjectsdev/render": "1.1.0",
53
53
  "yaml": "^2.9.0"
54
54
  },
55
55
  "devDependencies": {
@@ -2,6 +2,10 @@ import type { MetaData } from "@metaobjectsdev/metadata";
2
2
  import { LinkGraph, fqnOf, type Ref } from "../link-graph.js";
3
3
  import type { CoverageTracker } from "../coverage.js";
4
4
  import { esc, badge } from "../badges.js";
5
+ import {
6
+ REPORT_RENDERED_ATTRS, buildReportSection, buildReportingSection, isReportNode,
7
+ type ReportSection, type ReportingSection,
8
+ } from "./report-data.js";
5
9
  import { inheritanceTree, erDiagramRich, flowchartDomain, RICH_MAX, type ErEdge, type ErNode, type ErAttr } from "../mermaid.js";
6
10
 
7
11
  // capped box attributes for the rich neighborhood ERD: PK → FKs(target) → enums → required, ≤6 + overflow count
@@ -90,6 +94,10 @@ export interface ObjectPageData {
90
94
  referencedBy: { name: string; href: string; via: string }[];
91
95
  references: { name: string; href: string; via: string }[]; usedByTemplates: { name: string; href: string }[];
92
96
  sourceFile: string;
97
+ /** FR-044: present on an `object.report` page only. */
98
+ report?: ReportSection | undefined;
99
+ /** FR-044: present on a page whose object declares reporting members or is a report's `@from`. */
100
+ reporting?: ReportingSection | undefined;
93
101
  }
94
102
 
95
103
  function fieldRow(f: MetaData, ownerHref: string, g: LinkGraph, cov: CoverageTracker, ctxPkg: string): FieldRow {
@@ -123,7 +131,9 @@ function fieldRow(f: MetaData, ownerHref: string, g: LinkGraph, cov: CoverageTra
123
131
  let refHref: string | undefined, refName: string | undefined;
124
132
  const oref = a("objectRef");
125
133
  if (typeof oref === "string") {
126
- const t = g.byFqn(oref.includes("::") ? oref : `${ctxPkg}::${oref}`) ?? g.byFqn(oref);
134
+ // `::Name` is root-absolute (ADR-0059): the loader writes it for a root-level target.
135
+ const t = oref.startsWith("::") ? g.byFqn(oref.slice(2))
136
+ : g.byFqn(oref.includes("::") ? oref : `${ctxPkg}::${oref}`) ?? g.byFqn(oref);
127
137
  if (t) {
128
138
  refHref = g.relHref(ownerHref, t.href); refName = t.name;
129
139
  const contains = f.subType === "object";
@@ -173,7 +183,10 @@ export function buildObjectPage(fqn: string, g: LinkGraph, cov: CoverageTracker)
173
183
  cov.consumeNode(o);
174
184
  cov.consumeAttr(o, "description");
175
185
  // consumer/structural attrs authored on the object itself (e.g. @dataflow, @neo4j)
176
- const objectAttrs = otherAttrs(o, cov, new Set(["description"]));
186
+ // FR-044: a report's own attrs are rendered by its Report section, not as badges.
187
+ const report = isReportNode(o) ? buildReportSection(dn, g.root, g, cov) : undefined;
188
+ const reporting = buildReportingSection(dn, g, cov);
189
+ const objectAttrs = otherAttrs(o, cov, new Set(["description", ...(report ? REPORT_RENDERED_ATTRS : [])]));
177
190
 
178
191
  // inheritance hierarchy rows (ancestors nearest-last so level increases downward) + self + direct children
179
192
  const anc = g.ancestors(fqn); // nearest-first
@@ -213,7 +226,9 @@ export function buildObjectPage(fqn: string, g: LinkGraph, cov: CoverageTracker)
213
226
  } else if (id.subType === "reference") {
214
227
  const ref = id.attr("references"); if (ref !== undefined) cov.consumeAttr(id, "references");
215
228
  const enf = id.attr("enforce"); if (enf !== undefined) cov.consumeAttr(id, "enforce");
216
- indexes.push({ name: id.name, kind: "fk", fields, extra: [ref ? `→ ${esc(String(ref))}` : "", enf === false || enf === "false" ? "logical" : "", idExtra].filter(Boolean).join(" · "), unique: false });
229
+ // The page quotes the reference as the author wrote it (ADR-0059); the loaded value is canonical.
230
+ const shown = id.authoredAttr("references") ?? ref;
231
+ indexes.push({ name: id.name, kind: "fk", fields, extra: [shown ? `→ ${esc(String(shown))}` : "", enf === false || enf === "false" ? "logical" : "", idExtra].filter(Boolean).join(" · "), unique: false });
217
232
  }
218
233
  }
219
234
  for (const ix of o.childrenOfType("index")) {
@@ -348,5 +363,6 @@ export function buildObjectPage(fqn: string, g: LinkGraph, cov: CoverageTracker)
348
363
  pkg: dn.pkg, href: dn.href, breadcrumbHtml: crumbs.join(" / "), desc: esc(o.attr("description") ?? ""),
349
364
  tableName, pkHtml, objectAttrs, storageAttrs, layouts, ownFields, inheritedFields, indexes, validators, relations, origins,
350
365
  hierarchy, inheritanceMermaid, neighborhoodMermaid, neighborhoodLegend, neighborhoodMore, referencedBy, references, usedByTemplates, sourceFile: src,
366
+ report, reporting,
351
367
  };
352
368
  }
@@ -0,0 +1,149 @@
1
+ // FR-044 on the HTML site (Table G of the Plan 3 spec):
2
+ //
3
+ // • an `object.report`'s page gets a "Report" section: its `@from` (linked), the view it
4
+ // is read from or why it is not served, where a `@spine` report's rows come from, its
5
+ // row scope, and one row per derived column from `reportShape`;
6
+ // • the page of an entity that declares dimensions, measures or segments, or that a
7
+ // report names as its `@from`, gets a "Reporting" section.
8
+ //
9
+ // The sentences come from `@metaobjectsdev/metadata` (`core/reporting/report-describe.ts`),
10
+ // the same describers the markdown model pages use, so the two surfaces cannot disagree.
11
+ // This module only turns their `code` spans into HTML.
12
+
13
+ import type { MetaData, MetaRoot } from "@metaobjectsdev/metadata";
14
+ import {
15
+ DIMENSION_SUBTYPE_TIME,
16
+ OBJECT_REPORT_ATTR_DIMENSIONS,
17
+ OBJECT_REPORT_ATTR_FILTER,
18
+ OBJECT_REPORT_ATTR_FROM,
19
+ OBJECT_REPORT_ATTR_MEASURES,
20
+ OBJECT_REPORT_ATTR_SEGMENT,
21
+ OBJECT_REPORT_ATTR_SPINE,
22
+ OBJECT_SUBTYPE_REPORT,
23
+ TYPE_DIMENSION,
24
+ TYPE_MEASURE,
25
+ TYPE_OBJECT,
26
+ TYPE_SEGMENT,
27
+ describeDimension,
28
+ describeMeasure,
29
+ describeReportField,
30
+ describeReportRowScope,
31
+ describeReportRows,
32
+ describeSegment,
33
+ isMetaObject,
34
+ reportFieldTypeName,
35
+ reportNotServedReason,
36
+ reportReadSource,
37
+ reportShape,
38
+ reportingDescribedAttrs,
39
+ } from "@metaobjectsdev/metadata";
40
+ import { type DocNode, type LinkGraph, fqnOf } from "../link-graph.js";
41
+ import type { CoverageTracker } from "../coverage.js";
42
+ import { esc } from "../badges.js";
43
+
44
+ /** The attrs of an `object.report` the Report section renders (so the generic
45
+ * attribute badges on the page skip them). */
46
+ export const REPORT_RENDERED_ATTRS: ReadonlySet<string> = new Set([
47
+ OBJECT_REPORT_ATTR_FROM,
48
+ OBJECT_REPORT_ATTR_DIMENSIONS,
49
+ OBJECT_REPORT_ATTR_MEASURES,
50
+ OBJECT_REPORT_ATTR_SEGMENT,
51
+ OBJECT_REPORT_ATTR_FILTER,
52
+ OBJECT_REPORT_ATTR_SPINE,
53
+ ]);
54
+
55
+ export function isReportNode(node: MetaData): boolean {
56
+ return node.type === TYPE_OBJECT && node.subType === OBJECT_SUBTYPE_REPORT;
57
+ }
58
+
59
+ /** Escape, then turn each `code` span into a <code> element (this render lib does not escape). */
60
+ function html(text: string): string {
61
+ return esc(text).replace(/`([^`]*)`/g, "<code>$1</code>");
62
+ }
63
+
64
+ /**
65
+ * Mark a dimension, measure or segment as rendered, with exactly the attrs its describer
66
+ * prints (`reportingDescribedAttrs`). Anything else authored on the node stays unconsumed,
67
+ * so the coverage audit reports it as a gap instead of claiming a page shows it.
68
+ */
69
+ function consumeDescribed(node: MetaData, cov: CoverageTracker): void {
70
+ cov.consumeNode(node);
71
+ for (const name of reportingDescribedAttrs(node)) {
72
+ // ADR-0039: resolving, the read the describer itself makes.
73
+ if (node.attr(name) !== undefined) cov.consumeAttr(node, name);
74
+ }
75
+ }
76
+
77
+ // ─── A report's page ───────────────────────────────────────────────────────────
78
+
79
+ export interface ReportColumnRow { name: string; type: string; nullable: string; role: string; definitionHtml: string; }
80
+ export interface ReportSection {
81
+ fromName: string; fromHref: string;
82
+ /** The view a served report is read from. Absent when it is not served. */
83
+ viewName?: string | undefined;
84
+ /** "Not served: …" (Table A). Absent for a served report. */
85
+ notServed?: string | undefined;
86
+ /** Where a `@spine` report's rows come from. Absent without `@spine`. */
87
+ rowsHtml?: string | undefined;
88
+ scopeHtml?: string | undefined;
89
+ columns: ReportColumnRow[];
90
+ }
91
+
92
+ export function buildReportSection(dn: DocNode, root: MetaRoot, g: LinkGraph, cov: CoverageTracker): ReportSection {
93
+ const report = dn.node;
94
+ if (!isMetaObject(report)) throw new Error(`not a report object: ${fqnOf(report)}`);
95
+ for (const name of REPORT_RENDERED_ATTRS) if (report.attr(name) !== undefined) cov.consumeAttr(report, name);
96
+ // From `reportShape`, which resolves for a report with no source too.
97
+ const shape = reportShape(report, root);
98
+ const from = g.byFqn(fqnOf(shape.from));
99
+ const notServed = reportNotServedReason(report);
100
+ const rows = describeReportRows(shape, root);
101
+ const scope = describeReportRowScope(report);
102
+ return {
103
+ fromName: shape.from.name,
104
+ fromHref: from ? g.relHref(dn.href, from.href) : "",
105
+ viewName: notServed === undefined ? reportReadSource(report)?.physicalName : undefined,
106
+ notServed,
107
+ rowsHtml: rows !== undefined ? html(rows) : undefined,
108
+ scopeHtml: scope !== undefined ? html(scope) : undefined,
109
+ columns: shape.fields.map((f) => ({
110
+ name: f.name,
111
+ type: reportFieldTypeName(f),
112
+ nullable: f.required ? "no" : "yes",
113
+ role: f.role,
114
+ definitionHtml: html(describeReportField(f)),
115
+ })),
116
+ };
117
+ }
118
+
119
+ // ─── The @from entity's page ───────────────────────────────────────────────────
120
+
121
+ export interface ReportingMemberRow { name: string; kind: string; definitionHtml: string; }
122
+ export interface ReportingSection {
123
+ dimensions: ReportingMemberRow[]; measures: ReportingMemberRow[]; segments: ReportingMemberRow[];
124
+ reports: { name: string; href: string }[];
125
+ }
126
+
127
+ /** Undefined when the object declares no reporting member and no report reads from it. */
128
+ export function buildReportingSection(dn: DocNode, g: LinkGraph, cov: CoverageTracker): ReportingSection | undefined {
129
+ const o = dn.node;
130
+ if (isReportNode(o)) return undefined;
131
+ const members = (type: string, describe: (n: MetaData) => string, kind: (n: MetaData) => string): ReportingMemberRow[] =>
132
+ // Resolving (`childrenOfType`), so a member declared on an abstract base shows on
133
+ // every entity that inherits it, which is where a report may name it from.
134
+ o.childrenOfType(type).map((n) => {
135
+ consumeDescribed(n, cov);
136
+ return { name: n.name, kind: kind(n), definitionHtml: html(describe(n)) };
137
+ });
138
+ const dimensions = members(TYPE_DIMENSION, describeDimension, (n) => (n.subType === DIMENSION_SUBTYPE_TIME ? "time" : ""));
139
+ const measures = members(TYPE_MEASURE, describeMeasure, () => "");
140
+ const segments = members(TYPE_SEGMENT, describeSegment, () => "");
141
+ const reports = g.refsTo(fqnOf(o))
142
+ .filter((r) => r.kind === "report")
143
+ .map((r) => g.byFqn(r.from))
144
+ .filter((r): r is DocNode => r !== undefined)
145
+ .map((r) => ({ name: r.name, href: g.relHref(dn.href, r.href) }))
146
+ .sort((a, b) => a.name.localeCompare(b.name));
147
+ if (dimensions.length + measures.length + segments.length + reports.length === 0) return undefined;
148
+ return { dimensions, measures, segments, reports };
149
+ }
package/src/coverage.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  import type { MetaData, MetaRoot } from "@metaobjectsdev/metadata";
2
2
 
3
3
  export interface CoverageRow { key: string; count: number; consumed: boolean; }
4
- export interface CoverageReport { kinds: CoverageRow[]; attrs: CoverageRow[]; warnings: string[]; }
4
+ export interface CoverageReport {
5
+ kinds: CoverageRow[];
6
+ attrs: CoverageRow[];
7
+ warnings: string[];
8
+ }
5
9
 
6
10
  export class CoverageTracker {
7
11
  private kinds = new Set<string>();
@@ -23,7 +27,9 @@ export class CoverageTracker {
23
27
  [...m.entries()].sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0)).map(([key, count]) => ({ key, count, consumed: seen.has(key) }));
24
28
  const kinds = rows(kindCount, this.kinds);
25
29
  const attrs = rows(attrCount, this.attrs);
26
- const warnings = [...kinds, ...attrs].filter((r) => !r.consumed).map((r) => `coverage: ${r.key} (${r.count}) not rendered by any page`);
30
+ const warnings = [...kinds, ...attrs]
31
+ .filter((r) => !r.consumed)
32
+ .map((r) => `coverage: ${r.key} (${r.count}) not rendered by any page`);
27
33
  return { kinds, attrs, warnings };
28
34
  }
29
35
  }