@primmel/primmel 1.5.1 → 1.5.2

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.
@@ -26,8 +26,14 @@ export declare function refTargetToSourceRef(target: string): {
26
26
  /** The single-model fold (docs/primmel/18 §18.4): a parsed ref maps onto
27
27
  * the element's LEGACY channel, so every consumer (the check layer, the
28
28
  * YAML projections) reads one model regardless of spelling:
29
- * derives-from → sourceRefs (the provenance channel)
30
- * cites → referenceIds (or the role-references channel)
29
+ * derives-from → the provenance channel when the element HAS
30
+ * one (sourceRefs + the singular mirror); forms
31
+ * and fields carry their provenance as the
32
+ * role-'source' entry of the role-references
33
+ * channel instead (their legacy shape)
34
+ * cites → the role-'reference' entry of the
35
+ * role-references channel when the element has
36
+ * one, else referenceIds
31
37
  * other citation role → the role-references channel (fieldReferences /
32
38
  * formReferences, whichever the element carries)
33
39
  * semantic predicate → stays in refs (the new channel)
@@ -1 +1 @@
1
- {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/ref.ts"],"names":[],"mappings":"AAiBA,uDAAuD;AACvD,MAAM,WAAW,GAAG;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;yEACyE;AACzE,wBAAgB,QAAQ,CACtB,CAAC,EAAE,MAAM,EAAE,EACX,CAAC,EAAE,MAAM,EACT,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACpC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GACjC;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAY5B;AAED;;+BAE+B;AAC/B,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,MAAM,EACnB,IAAI,EAAE,MAAM,MAAM,GAAG,SAAS,EAC9B,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACpC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GACjC,GAAG,CAOL;AAED,gEAAgE;AAChE,wBAAgB,QAAQ,CACtB,IAAI,EAAE,GAAG,EAAE,GAAG,SAAS,EACvB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAClC,MAAM,CAYR;AAED;qCACqC;AACrC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAwBP;AAED;;;;;;;;yEAQyE;AACzE,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE;IACF,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE,SAAS,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACtE,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,EACD,GAAG,EAAE,GAAG,GACP,OAAO,CAiDT;AAED;;yCAEyC;AACzC,wBAAgB,kBAAkB,CAChC,GAAG,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EACvD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAClC,MAAM,CAUR"}
1
+ {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/ref.ts"],"names":[],"mappings":"AAiBA,uDAAuD;AACvD,MAAM,WAAW,GAAG;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;yEACyE;AACzE,wBAAgB,QAAQ,CACtB,CAAC,EAAE,MAAM,EAAE,EACX,CAAC,EAAE,MAAM,EACT,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACpC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GACjC;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAY5B;AAED;;+BAE+B;AAC/B,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,MAAM,EACnB,IAAI,EAAE,MAAM,MAAM,GAAG,SAAS,EAC9B,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACpC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GACjC,GAAG,CAOL;AAED,gEAAgE;AAChE,wBAAgB,QAAQ,CACtB,IAAI,EAAE,GAAG,EAAE,GAAG,SAAS,EACvB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAClC,MAAM,CAYR;AAED;qCACqC;AACrC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAwBP;AAED;;;;;;;;;;;;;;yEAcyE;AACzE,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE;IACF,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE,SAAS,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACtE,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,EACD,GAAG,EAAE,GAAG,GACP,OAAO,CA8DT;AAED;;yCAEyC;AACzC,wBAAgB,kBAAkB,CAChC,GAAG,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EACvD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAClC,MAAM,CAUR"}
@@ -92,14 +92,30 @@ function refTargetToSourceRef(target) {
92
92
  /** The single-model fold (docs/primmel/18 §18.4): a parsed ref maps onto
93
93
  * the element's LEGACY channel, so every consumer (the check layer, the
94
94
  * YAML projections) reads one model regardless of spelling:
95
- * derives-from → sourceRefs (the provenance channel)
96
- * cites → referenceIds (or the role-references channel)
95
+ * derives-from → the provenance channel when the element HAS
96
+ * one (sourceRefs + the singular mirror); forms
97
+ * and fields carry their provenance as the
98
+ * role-'source' entry of the role-references
99
+ * channel instead (their legacy shape)
100
+ * cites → the role-'reference' entry of the
101
+ * role-references channel when the element has
102
+ * one, else referenceIds
97
103
  * other citation role → the role-references channel (fieldReferences /
98
104
  * formReferences, whichever the element carries)
99
105
  * semantic predicate → stays in refs (the new channel)
100
106
  * Returns true when the ref was folded (never also keep it in refs). */
101
107
  function foldRefIntoLegacy(el, ref) {
102
108
  if (ref.predicate === 'derives-from') {
109
+ // Forms and fields carry provenance as the role-'source' entry of
110
+ // their role-references channel (their legacy shape — the YAML
111
+ // projections read exactly that channel); everything else has a real
112
+ // provenance channel (sourceRefs + the singular mirror).
113
+ const roleChannel = el.fieldReferences ?? el.formReferences;
114
+ const hasProvenanceSlot = 'source' in el || 'sourceRef' in el || el.sourceRefs !== undefined;
115
+ if (roleChannel && !hasProvenanceSlot) {
116
+ roleChannel.push({ urn: ref.target, role: 'source' });
117
+ return true;
118
+ }
103
119
  const b = refTargetToSourceRef(ref.target);
104
120
  if (!b) {
105
121
  return false;
@@ -122,15 +138,17 @@ function foldRefIntoLegacy(el, ref) {
122
138
  return true;
123
139
  }
124
140
  if (ref.predicate === 'cites') {
125
- if (el.referenceIds) {
126
- el.referenceIds.push(ref.target);
127
- }
128
- else if (el.fieldReferences) {
141
+ // The role-references channel is the citation home where the element
142
+ // has one (forms, fields); referenceIds elsewhere.
143
+ if (el.fieldReferences) {
129
144
  el.fieldReferences.push({ urn: ref.target, role: 'reference' });
130
145
  }
131
146
  else if (el.formReferences) {
132
147
  el.formReferences.push({ urn: ref.target, role: 'reference' });
133
148
  }
149
+ else if (el.referenceIds) {
150
+ el.referenceIds.push(ref.target);
151
+ }
134
152
  return true;
135
153
  }
136
154
  const CITATION_ROLES = [
@@ -1 +1 @@
1
- {"version":3,"file":"ref.js","sourceRoot":"","sources":["../../../../src/ser-des/config/ref.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ref.js","sourceRoot":"","sources":["../../../../src/ser-des/config/ref.ts"],"names":[],"mappings":"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"}
@@ -249,14 +249,15 @@ var m = function(e) {
249
249
  let n = r(e), i = 0;
250
250
  for (; i < n.length;) {
251
251
  let e = n[i++];
252
- if (i < n.length) if (e === "title") t.title = a(n[i++]);
253
- else if (e === "schema") t.schema = a(n[i++]);
254
- else if (e === "edition") t.edition = a(n[i++]);
255
- else if (e === "author") t.author = a(n[i++]);
256
- else if (e === "namespace") t.namespace = a(n[i++]);
257
- else if (e === "shortname") t.shortname = a(n[i++]);
258
- else throw Error("Parsing error: metadata. Unknown keyword " + e);
259
- else throw Error("Parsing error: metadata. Expecting value for " + e);
252
+ if (i < n.length) {
253
+ if (e === "title") t.title = a(n[i++]);
254
+ else if (e === "schema") t.schema = a(n[i++]);
255
+ else if (e === "edition") t.edition = a(n[i++]);
256
+ else if (e === "author") t.author = a(n[i++]);
257
+ else if (e === "namespace") t.namespace = a(n[i++]);
258
+ else if (e === "shortname") t.shortname = a(n[i++]);
259
+ else throw Error("Parsing error: metadata. Unknown keyword " + e);
260
+ } else throw Error("Parsing error: metadata. Expecting value for " + e);
260
261
  }
261
262
  }
262
263
  return (e) => (e.metadata = t, e);
@@ -346,16 +347,21 @@ function C(e) {
346
347
  }
347
348
  function w(e, t) {
348
349
  if (t.predicate === "derives-from") {
349
- let n = C(t.target);
350
- return n ? ((e.sourceRefs ??= []).push(n), "source" in e && !e.source && (e.source = n), "sourceRef" in e && !e.sourceRef && (e.sourceRef = n), "reference" in e && !e.reference && (e.reference = n.doc), !0) : !1;
350
+ let n = e.fieldReferences ?? e.formReferences, r = "source" in e || "sourceRef" in e || e.sourceRefs !== void 0;
351
+ if (n && !r) return n.push({
352
+ urn: t.target,
353
+ role: "source"
354
+ }), !0;
355
+ let i = C(t.target);
356
+ return i ? ((e.sourceRefs ??= []).push(i), "source" in e && !e.source && (e.source = i), "sourceRef" in e && !e.sourceRef && (e.sourceRef = i), "reference" in e && !e.reference && (e.reference = i.doc), !0) : !1;
351
357
  }
352
- if (t.predicate === "cites") return e.referenceIds ? e.referenceIds.push(t.target) : e.fieldReferences ? e.fieldReferences.push({
358
+ if (t.predicate === "cites") return e.fieldReferences ? e.fieldReferences.push({
353
359
  urn: t.target,
354
360
  role: "reference"
355
- }) : e.formReferences && e.formReferences.push({
361
+ }) : e.formReferences ? e.formReferences.push({
356
362
  urn: t.target,
357
363
  role: "reference"
358
- }), !0;
364
+ }) : e.referenceIds && e.referenceIds.push(t.target), !0;
359
365
  if ([
360
366
  "requirement",
361
367
  "test-procedure",
@@ -469,14 +475,16 @@ function re(e) {
469
475
  let t = r(e.trim().replace(/^[[{]/, "").replace(/[\]}]$/, "")), n = [], o = 0;
470
476
  for (; o < t.length;) {
471
477
  let e = a(t[o++].replace(/,$/, ""));
472
- if (e) if (o < t.length && t[o].startsWith("{")) {
473
- let s = r(i(t[o++])), c = "";
474
- for (let e = 0; e + 1 < s.length; e += 2) s[e] === "label" && (c = a(s[e + 1]));
475
- n.push({
476
- value: e,
477
- label: c
478
- });
479
- } else n.push(e);
478
+ if (e) {
479
+ if (o < t.length && t[o].startsWith("{")) {
480
+ let s = r(i(t[o++])), c = "";
481
+ for (let e = 0; e + 1 < s.length; e += 2) s[e] === "label" && (c = a(s[e + 1]));
482
+ n.push({
483
+ value: e,
484
+ label: c
485
+ });
486
+ } else n.push(e);
487
+ }
480
488
  }
481
489
  return n;
482
490
  }
@@ -723,13 +731,15 @@ function de(e, t) {
723
731
  let e = n(t), o = 0;
724
732
  for (; o < e.length;) {
725
733
  let t = e[o++];
726
- if (o < e.length) if (t === "parameters") {
727
- let t = n(i(e[o++])), s = 0;
728
- for (; s < t.length;) {
729
- let e = A(t[s++]);
730
- s < t.length && (t[s] === ":" && s++, s < t.length && (r.parameters[e] = a(t[s++])));
731
- }
732
- } else t === "applicability" ? r.applicability = P(i(e[o++])) : i(e[o++]);
734
+ if (o < e.length) {
735
+ if (t === "parameters") {
736
+ let t = n(i(e[o++])), s = 0;
737
+ for (; s < t.length;) {
738
+ let e = A(t[s++]);
739
+ s < t.length && (t[s] === ":" && s++, s < t.length && (r.parameters[e] = a(t[s++])));
740
+ }
741
+ } else t === "applicability" ? r.applicability = P(i(e[o++])) : i(e[o++]);
742
+ }
733
743
  }
734
744
  }
735
745
  return r;
@@ -1960,7 +1970,7 @@ function Vt(e) {
1960
1970
  let s = a.text.trim().slice(1, a.text.lastIndexOf("]")), c = [];
1961
1971
  for (let e of n(s)) e.startsWith("{") && c.push(Bt(i(e)));
1962
1972
  t[e] = c;
1963
- } else r[o].startsWith("{") ? t[e] = Bt(i(r[o++])) : t[e] = Rt(a(r[o++]));
1973
+ } else t[e] = r[o].startsWith("{") ? Bt(i(r[o++])) : Rt(a(r[o++]));
1964
1974
  }
1965
1975
  return t;
1966
1976
  }
@@ -2036,32 +2046,33 @@ var Gt = function(e, t) {
2036
2046
  let s = r(t), c = 0;
2037
2047
  for (; c < s.length;) {
2038
2048
  let t = s[c++];
2039
- if (c < s.length) if (t === "title") o.title = i(s[c++]);
2040
- else if (t === "description") o.description = a(s[c++]);
2041
- else if (t === "columns") {
2042
- let e = s[c++];
2043
- e.startsWith("{") ? o.columnDefs = zt(i(e)) : o.columns = i(e);
2044
- } else if (t === "display") o.display = i(s[c++]);
2045
- else if (t === "source") {
2046
- let e = N(i(s[c++]));
2047
- o.sourceRef ||= e, (o.sourceRefs ??= []).push(e);
2048
- } else if (t === "source_discrepancy") o.sourceDiscrepancy = E(i(s[c++]));
2049
- else if (t === "overrides") o.overrides = Wt(i(s[c++]));
2050
- else if (t === "profiles") {
2051
- let e = n(i(s[c++])), t = [], r = 0;
2052
- for (; r < e.length;) if (e[r] === "profile") {
2053
- r++;
2054
- let t = a(e[r++]), n = r < e.length ? i(e[r++]) : "";
2055
- o.profileDefs = o.profileDefs ?? [], o.profileDefs.push(Ht(t, n));
2056
- } else t.push(e[r++]);
2057
- t.length > 0 && (o.profiles = Ut(t.join(" ")));
2058
- } else if (t === "domain") o.domain = i(s[c++]);
2059
- else if (t === "data") o.data = Kt(i(s[c++]));
2060
- else if (t === "ref") {
2061
- let e = b(s, c, a, i);
2062
- w(o, e.ref) || (o.refs ??= []).push(e.ref), c = e.next;
2063
- } else c++;
2064
- else throw Error(`Parsing error: table. ID ${e}: Expecting value for ${t}`);
2049
+ if (c < s.length) {
2050
+ if (t === "title") o.title = i(s[c++]);
2051
+ else if (t === "description") o.description = a(s[c++]);
2052
+ else if (t === "columns") {
2053
+ let e = s[c++];
2054
+ e.startsWith("{") ? o.columnDefs = zt(i(e)) : o.columns = i(e);
2055
+ } else if (t === "display") o.display = i(s[c++]);
2056
+ else if (t === "source") {
2057
+ let e = N(i(s[c++]));
2058
+ o.sourceRef ||= e, (o.sourceRefs ??= []).push(e);
2059
+ } else if (t === "source_discrepancy") o.sourceDiscrepancy = E(i(s[c++]));
2060
+ else if (t === "overrides") o.overrides = Wt(i(s[c++]));
2061
+ else if (t === "profiles") {
2062
+ let e = n(i(s[c++])), t = [], r = 0;
2063
+ for (; r < e.length;) if (e[r] === "profile") {
2064
+ r++;
2065
+ let t = a(e[r++]), n = r < e.length ? i(e[r++]) : "";
2066
+ o.profileDefs = o.profileDefs ?? [], o.profileDefs.push(Ht(t, n));
2067
+ } else t.push(e[r++]);
2068
+ t.length > 0 && (o.profiles = Ut(t.join(" ")));
2069
+ } else if (t === "domain") o.domain = i(s[c++]);
2070
+ else if (t === "data") o.data = Kt(i(s[c++]));
2071
+ else if (t === "ref") {
2072
+ let e = b(s, c, a, i);
2073
+ w(o, e.ref) || (o.refs ??= []).push(e.ref), c = e.next;
2074
+ } else c++;
2075
+ } else throw Error(`Parsing error: table. ID ${e}: Expecting value for ${t}`);
2065
2076
  }
2066
2077
  }
2067
2078
  return (t) => (t.tables[e] = o, t);
@@ -2149,12 +2160,13 @@ var Yt = function(e) {
2149
2160
  let a = r(t), o = 0;
2150
2161
  for (; o < a.length;) {
2151
2162
  let t = a[o++];
2152
- if (o < a.length) if (t === "type" || t === "kind") {
2153
- let t = a[o++];
2154
- if (!Qt.includes(t)) throw Error(`Parsing error: link. ID ${e}: Unknown kind ${t} (valid: ${Qt.join(", ")})`);
2155
- n.kind = t;
2156
- } else t === "target" || t === "path" || t === "url" ? n.target = i(a[o++]) : t === "namespace" || t === "ns" ? n.namespace = i(a[o++]) : o++;
2157
- else throw Error(`Parsing error: link. ID ${e}: Expecting value for ${t}`);
2163
+ if (o < a.length) {
2164
+ if (t === "type" || t === "kind") {
2165
+ let t = a[o++];
2166
+ if (!Qt.includes(t)) throw Error(`Parsing error: link. ID ${e}: Unknown kind ${t} (valid: ${Qt.join(", ")})`);
2167
+ n.kind = t;
2168
+ } else t === "target" || t === "path" || t === "url" ? n.target = i(a[o++]) : t === "namespace" || t === "ns" ? n.namespace = i(a[o++]) : o++;
2169
+ } else throw Error(`Parsing error: link. ID ${e}: Expecting value for ${t}`);
2158
2170
  }
2159
2171
  }
2160
2172
  return (t) => (t.links[e] = n, t);
@@ -2176,7 +2188,7 @@ var Yt = function(e) {
2176
2188
  let e = r(t), a = 0;
2177
2189
  for (; a < e.length;) {
2178
2190
  let t = e[a++];
2179
- t === "on" ? n.on = e[a++] : t === "author" || t === "username" ? n.author = i(e[a++]) : t === "timestamp" ? n.timestamp = i(e[a++]) : t === "text" || t === "message" ? n.text = i(e[a++]) : t === "reply_to" ? n.replyTo = e[a++] : t === "feedback" ? n._feedback = r(i(e[a++])) : t === "resolved" ? a < e.length && (e[a] === "true" || e[a] === "false") ? n.resolved = e[a++] === "true" : n.resolved = !0 : a++;
2191
+ t === "on" ? n.on = e[a++] : t === "author" || t === "username" ? n.author = i(e[a++]) : t === "timestamp" ? n.timestamp = i(e[a++]) : t === "text" || t === "message" ? n.text = i(e[a++]) : t === "reply_to" ? n.replyTo = e[a++] : t === "feedback" ? n._feedback = r(i(e[a++])) : t === "resolved" ? n.resolved = a < e.length && (e[a] === "true" || e[a] === "false") ? e[a++] === "true" : !0 : a++;
2180
2192
  }
2181
2193
  }
2182
2194
  return (t) => (t.comments[e] = n, t);
@@ -2354,40 +2366,41 @@ var un = function(e, t) {
2354
2366
  let s = r(t), c = 0;
2355
2367
  for (; c < s.length;) {
2356
2368
  let t = s[c++];
2357
- if (c < s.length) if (t === "name") o.name = a(s[c++]);
2358
- else if (t === "description") o.description = a(s[c++]);
2359
- else if (t === "data_class") o.dataClassId = a(s[c++]);
2360
- else if (t === "header") o.headerFormId = a(s[c++]);
2361
- else if (t === "section") o.section = a(s[c++]);
2362
- else if (t === "requirements") o.requirements = r(s[c++]).map(a);
2363
- else if (t === "note") o.formNotes.push(a(s[c++]));
2364
- else if (t === "scope") o.scope = a(s[c++]);
2365
- else if (t === "report_rows") {
2366
- let e = n(i(s[c++])), t = {
2367
- field: "",
2368
- itemKey: ""
2369
- };
2370
- for (let n = 0; n + 1 < e.length; n += 2) e[n] === "field" ? t.field = a(e[n + 1]) : e[n] === "item_key" && (t.itemKey = a(e[n + 1]));
2371
- o.reportRows = t;
2372
- } else if (t === "references") o.formReferences = pe(i(s[c++]));
2373
- else if (t === "ref") {
2374
- let e = b(s, c, a, i);
2375
- w(o, e.ref) || (o.refs = [...o.refs ?? [], e.ref]), c = e.next;
2376
- } else if (t === "calculation_context") o.calculationContext = hn(i(s[c++]));
2377
- else if (t === "instances") o.formInstances = gn(i(s[c++]));
2378
- else if (t === "constraints") o.formConstraints = _n(i(s[c++]));
2379
- else if (t === "conformance_process") {
2380
- let e = s[c++];
2381
- e.startsWith("{") ? (o.conformanceProcessIds = n(i(e)).map(a), o.conformanceProcessId = o.conformanceProcessIds[0] ?? "") : o.conformanceProcessId = a(e);
2382
- } else if (t === "applicability") o.applicability = P(i(s[c++]));
2383
- else if (t === "field") {
2384
- let e = oe(s, c);
2385
- e ? (o.fields.push(se(e.name, e.block, e.type || void 0)), c = e.next) : c++;
2386
- } else if (t === "subform_ref") {
2387
- let e = s[c++], t = c < s.length ? i(s[c++]) : "";
2388
- o.fields.push(bn(e, t));
2389
- } else t === "pass_fail" ? o.passFail = vn(i(s[c++])) : t === "reference" ? o.referenceIds = r(s[c++]).map(a) : c++;
2390
- else throw Error(`Parsing error: form. ID ${e}: Expecting value for ${t}`);
2369
+ if (c < s.length) {
2370
+ if (t === "name") o.name = a(s[c++]);
2371
+ else if (t === "description") o.description = a(s[c++]);
2372
+ else if (t === "data_class") o.dataClassId = a(s[c++]);
2373
+ else if (t === "header") o.headerFormId = a(s[c++]);
2374
+ else if (t === "section") o.section = a(s[c++]);
2375
+ else if (t === "requirements") o.requirements = r(s[c++]).map(a);
2376
+ else if (t === "note") o.formNotes.push(a(s[c++]));
2377
+ else if (t === "scope") o.scope = a(s[c++]);
2378
+ else if (t === "report_rows") {
2379
+ let e = n(i(s[c++])), t = {
2380
+ field: "",
2381
+ itemKey: ""
2382
+ };
2383
+ for (let n = 0; n + 1 < e.length; n += 2) e[n] === "field" ? t.field = a(e[n + 1]) : e[n] === "item_key" && (t.itemKey = a(e[n + 1]));
2384
+ o.reportRows = t;
2385
+ } else if (t === "references") o.formReferences = pe(i(s[c++]));
2386
+ else if (t === "ref") {
2387
+ let e = b(s, c, a, i);
2388
+ w(o, e.ref) || (o.refs = [...o.refs ?? [], e.ref]), c = e.next;
2389
+ } else if (t === "calculation_context") o.calculationContext = hn(i(s[c++]));
2390
+ else if (t === "instances") o.formInstances = gn(i(s[c++]));
2391
+ else if (t === "constraints") o.formConstraints = _n(i(s[c++]));
2392
+ else if (t === "conformance_process") {
2393
+ let e = s[c++];
2394
+ e.startsWith("{") ? (o.conformanceProcessIds = n(i(e)).map(a), o.conformanceProcessId = o.conformanceProcessIds[0] ?? "") : o.conformanceProcessId = a(e);
2395
+ } else if (t === "applicability") o.applicability = P(i(s[c++]));
2396
+ else if (t === "field") {
2397
+ let e = oe(s, c);
2398
+ e ? (o.fields.push(se(e.name, e.block, e.type || void 0)), c = e.next) : c++;
2399
+ } else if (t === "subform_ref") {
2400
+ let e = s[c++], t = c < s.length ? i(s[c++]) : "";
2401
+ o.fields.push(bn(e, t));
2402
+ } else t === "pass_fail" ? o.passFail = vn(i(s[c++])) : t === "reference" ? o.referenceIds = r(s[c++]).map(a) : c++;
2403
+ } else throw Error(`Parsing error: form. ID ${e}: Expecting value for ${t}`);
2391
2404
  }
2392
2405
  }
2393
2406
  return (t) => (t.forms[e] = o, t);
@@ -2579,17 +2592,18 @@ var Cn = function(e, t) {
2579
2592
  let o = r(t), s = 0;
2580
2593
  for (; s < o.length;) {
2581
2594
  let t = o[s++];
2582
- if (s < o.length) if (t === "description") n.description = a(o[s++]);
2583
- else if (t === "type") {
2584
- let t = o[s++];
2585
- if (t === "object" || t === "array") n.shapeType = t;
2586
- else throw Error(`Parsing error: subform. ID ${e}: type must be object or array (got ${t})`);
2587
- } else if (t === "parameters") n.parameters = wn(i(o[s++]));
2588
- else if (t === "field") {
2589
- let e = oe(o, s);
2590
- e ? (n.fields.push(se(e.name, e.block, e.type || void 0)), s = e.next) : s++;
2591
- } else s++;
2592
- else throw Error(`Parsing error: subform. ID ${e}: Expecting value for ${t}`);
2595
+ if (s < o.length) {
2596
+ if (t === "description") n.description = a(o[s++]);
2597
+ else if (t === "type") {
2598
+ let t = o[s++];
2599
+ if (t === "object" || t === "array") n.shapeType = t;
2600
+ else throw Error(`Parsing error: subform. ID ${e}: type must be object or array (got ${t})`);
2601
+ } else if (t === "parameters") n.parameters = wn(i(o[s++]));
2602
+ else if (t === "field") {
2603
+ let e = oe(o, s);
2604
+ e ? (n.fields.push(se(e.name, e.block, e.type || void 0)), s = e.next) : s++;
2605
+ } else s++;
2606
+ } else throw Error(`Parsing error: subform. ID ${e}: Expecting value for ${t}`);
2593
2607
  }
2594
2608
  }
2595
2609
  return (t) => (t.subforms[e] = n, t);
@@ -2605,17 +2619,19 @@ function wn(e) {
2605
2619
  let e = r(i(o[s++])), t = 0;
2606
2620
  for (; t < e.length;) {
2607
2621
  let r = e[t++];
2608
- if (t < e.length) if (r === "description") l = a(e[t++]);
2609
- else if (r === "default") d = a(e[t++]), u = !0;
2610
- else if (r === "mapping") {
2611
- let r = i(e[t++]);
2612
- f = {};
2613
- let o = n(r), s = 0;
2614
- for (; s < o.length;) {
2615
- let e = A(o[s++]);
2616
- s < o.length && (o[s] === ":" && s++, s < o.length && (f[e] = a(o[s++])));
2617
- }
2618
- } else t++;
2622
+ if (t < e.length) {
2623
+ if (r === "description") l = a(e[t++]);
2624
+ else if (r === "default") d = a(e[t++]), u = !0;
2625
+ else if (r === "mapping") {
2626
+ let r = i(e[t++]);
2627
+ f = {};
2628
+ let o = n(r), s = 0;
2629
+ for (; s < o.length;) {
2630
+ let e = A(o[s++]);
2631
+ s < o.length && (o[s] === ":" && s++, s < o.length && (f[e] = a(o[s++])));
2632
+ }
2633
+ } else t++;
2634
+ }
2619
2635
  }
2620
2636
  }
2621
2637
  t.push({
@@ -2765,30 +2781,31 @@ var Tn = function(e) {
2765
2781
  let s = r(t), c = 0;
2766
2782
  for (; c < s.length;) {
2767
2783
  let t = s[c++];
2768
- if (c < s.length) if (t === "name") o.name = i(s[c++]);
2769
- else if (t === "identifier") o.identifier = a(s[c++]);
2770
- else if (t === "type") o.ruleType = a(s[c++]);
2771
- else if (t === "category") o.category = a(s[c++]);
2772
- else if (t === "label") o.label = a(s[c++]);
2773
- else if (t === "description") o.description = i(s[c++]);
2774
- else if (t === "expression") o.expression = i(s[c++]);
2775
- else if (t === "reference") o._relations.ref = r(s[c++]);
2776
- else if (t === "ref") {
2777
- let e = b(s, c, a, i);
2778
- w(o, e.ref) || (o.refs ??= []).push(e.ref), c = e.next;
2779
- } else if (t === "source") {
2780
- let e = n(i(s[c++])), t = {
2781
- doc: "",
2782
- clause: ""
2783
- };
2784
- for (let n = 0; n + 1 < e.length; n += 2) e[n] === "doc" ? t.doc = a(e[n + 1]) : e[n] === "clause" ? t.clause = a(e[n + 1]) : e[n] === "fragment" && (t.fragment = a(e[n + 1]));
2785
- o.sourceRef ||= t, (o.sourceRefs ??= []).push(t);
2786
- } else if (t === "inputs") o.inputs = jn(i(s[c++]));
2787
- else if (t === "output") {
2788
- let e = "";
2789
- s[c] === ":" && (e += s[c++]), c < s.length && !s[c].startsWith("{") && (e += " " + s[c++]), c < s.length && s[c].startsWith("{") && (e += " " + s[c++]), o.output = Mn(e);
2790
- } else t === "params" ? o.params = n(a(s[c++])).map(a).filter((e) => e.length > 0) : t === "lookup" ? o.lookup = Nn(i(s[c++])) : t === "profile" ? o.profile = a(s[c++]) : c++;
2791
- else throw Error(`Parsing error: calculation. ID ${e}: Expecting value for ${t}`);
2784
+ if (c < s.length) {
2785
+ if (t === "name") o.name = i(s[c++]);
2786
+ else if (t === "identifier") o.identifier = a(s[c++]);
2787
+ else if (t === "type") o.ruleType = a(s[c++]);
2788
+ else if (t === "category") o.category = a(s[c++]);
2789
+ else if (t === "label") o.label = a(s[c++]);
2790
+ else if (t === "description") o.description = i(s[c++]);
2791
+ else if (t === "expression") o.expression = i(s[c++]);
2792
+ else if (t === "reference") o._relations.ref = r(s[c++]);
2793
+ else if (t === "ref") {
2794
+ let e = b(s, c, a, i);
2795
+ w(o, e.ref) || (o.refs ??= []).push(e.ref), c = e.next;
2796
+ } else if (t === "source") {
2797
+ let e = n(i(s[c++])), t = {
2798
+ doc: "",
2799
+ clause: ""
2800
+ };
2801
+ for (let n = 0; n + 1 < e.length; n += 2) e[n] === "doc" ? t.doc = a(e[n + 1]) : e[n] === "clause" ? t.clause = a(e[n + 1]) : e[n] === "fragment" && (t.fragment = a(e[n + 1]));
2802
+ o.sourceRef ||= t, (o.sourceRefs ??= []).push(t);
2803
+ } else if (t === "inputs") o.inputs = jn(i(s[c++]));
2804
+ else if (t === "output") {
2805
+ let e = "";
2806
+ s[c] === ":" && (e += s[c++]), c < s.length && !s[c].startsWith("{") && (e += " " + s[c++]), c < s.length && s[c].startsWith("{") && (e += " " + s[c++]), o.output = Mn(e);
2807
+ } else t === "params" ? o.params = n(a(s[c++])).map(a).filter((e) => e.length > 0) : t === "lookup" ? o.lookup = Nn(i(s[c++])) : t === "profile" ? o.profile = a(s[c++]) : c++;
2808
+ } else throw Error(`Parsing error: calculation. ID ${e}: Expecting value for ${t}`);
2792
2809
  }
2793
2810
  }
2794
2811
  return (t) => (t.calculations[e] = o, t);
@@ -2902,52 +2919,55 @@ var Pn = function(e, t) {
2902
2919
  let a = r(t), o = 0;
2903
2920
  for (; o < a.length;) {
2904
2921
  let t = a[o++];
2905
- if (o < a.length) if (t === "kind") {
2906
- let t = a[o++];
2907
- if (t !== "lifecycle" && t !== "operational") throw Error(`Parsing error: state_machine. Entity ${e}: Unknown kind ${t} (valid: lifecycle, operational)`);
2908
- n.kind = t;
2909
- } else if (t === "initial") n.initialState = a[o++];
2910
- else if (t === "states") {
2911
- let e = i(a[o++]);
2912
- for (let t of e.split(/\s+/).filter((e) => e.length > 0)) n.states.push({ name: t });
2913
- } else if (t === "transition") {
2914
- let e = [], t = a[o++];
2915
- if (t.startsWith("[")) {
2916
- let n = t;
2917
- for (; !n.includes("]") && o < a.length;) n += " " + a[o++];
2918
- e = n.replace(/^\[/, "").replace(/\]$/, "").split(/[,\s]+/).filter((e) => e.length > 0);
2919
- } else e = [t];
2920
- o < a.length && (a[o] === "->" || a[o] === "→") && o++;
2921
- let s = o < a.length ? a[o++] : "", c = "";
2922
- o < a.length && a[o] === "action" && (o++, o < a.length && (c = a[o++]));
2923
- let l = "", u = [], d = [];
2924
- if (o < a.length && a[o].startsWith("{")) {
2925
- let e = r(i(a[o++])), t = 0;
2926
- for (; t < e.length;) {
2927
- let n = e[t++];
2928
- if (t < e.length) if (n === "guard") l = i(e[t++]);
2929
- else if (n === "cascade") {
2922
+ if (o < a.length) {
2923
+ if (t === "kind") {
2924
+ let t = a[o++];
2925
+ if (t !== "lifecycle" && t !== "operational") throw Error(`Parsing error: state_machine. Entity ${e}: Unknown kind ${t} (valid: lifecycle, operational)`);
2926
+ n.kind = t;
2927
+ } else if (t === "initial") n.initialState = a[o++];
2928
+ else if (t === "states") {
2929
+ let e = i(a[o++]);
2930
+ for (let t of e.split(/\s+/).filter((e) => e.length > 0)) n.states.push({ name: t });
2931
+ } else if (t === "transition") {
2932
+ let e = [], t = a[o++];
2933
+ if (t.startsWith("[")) {
2934
+ let n = t;
2935
+ for (; !n.includes("]") && o < a.length;) n += " " + a[o++];
2936
+ e = n.replace(/^\[/, "").replace(/\]$/, "").split(/[,\s]+/).filter((e) => e.length > 0);
2937
+ } else e = [t];
2938
+ o < a.length && (a[o] === "->" || a[o] === "→") && o++;
2939
+ let s = o < a.length ? a[o++] : "", c = "";
2940
+ o < a.length && a[o] === "action" && (o++, o < a.length && (c = a[o++]));
2941
+ let l = "", u = [], d = [];
2942
+ if (o < a.length && a[o].startsWith("{")) {
2943
+ let e = r(i(a[o++])), t = 0;
2944
+ for (; t < e.length;) {
2930
2945
  let n = e[t++];
2931
2946
  if (t < e.length) {
2932
- let r = i(e[t++]);
2933
- u.push(Rn(n, r));
2947
+ if (n === "guard") l = i(e[t++]);
2948
+ else if (n === "cascade") {
2949
+ let n = e[t++];
2950
+ if (t < e.length) {
2951
+ let r = i(e[t++]);
2952
+ u.push(Rn(n, r));
2953
+ }
2954
+ } else n === "reference" ? d.push(...r(e[t++])) : i(e[t++]);
2934
2955
  }
2935
- } else n === "reference" ? d.push(...r(e[t++])) : i(e[t++]);
2956
+ }
2936
2957
  }
2937
- }
2938
- for (let t of e) {
2939
- let e = {
2940
- from: t,
2941
- to: s,
2942
- actionName: c,
2943
- guard: l,
2944
- cascades: u,
2945
- referenceIds: d
2946
- };
2947
- n.transitions.push(e);
2948
- }
2949
- } else t === "reference" ? n.referenceIds.push(...r(a[o++])) : o++;
2950
- else throw Error(`Parsing error: state_machine. Entity ${e}: Expecting value for ${t}`);
2958
+ for (let t of e) {
2959
+ let e = {
2960
+ from: t,
2961
+ to: s,
2962
+ actionName: c,
2963
+ guard: l,
2964
+ cascades: u,
2965
+ referenceIds: d
2966
+ };
2967
+ n.transitions.push(e);
2968
+ }
2969
+ } else t === "reference" ? n.referenceIds.push(...r(a[o++])) : o++;
2970
+ } else throw Error(`Parsing error: state_machine. Entity ${e}: Expecting value for ${t}`);
2951
2971
  }
2952
2972
  }
2953
2973
  return (t) => (t.stateMachines[e] = n, t);
@@ -2964,26 +2984,28 @@ function Rn(e, t) {
2964
2984
  }, s = r(t), c = 0;
2965
2985
  for (; c < s.length;) {
2966
2986
  let e = s[c++];
2967
- if (c < s.length) if (e === "action") {
2968
- let e = s[c++];
2969
- if (!In.includes(e)) throw Error(`Parsing error: state_machine cascade. Unknown action ${e} (valid: ${In.join(", ")})`);
2970
- o.action = e;
2971
- } else if (e === "where") o.where = i(s[c++]);
2972
- else if (e === "via") o.via = s[c++];
2973
- else if (e === "with") o.with = zn(s[c++]);
2974
- else if (e === "set") {
2975
- let e = n(i(s[c++])), t = 0;
2976
- for (; t < e.length;) {
2977
- let n = A(e[t++]);
2978
- if (t < e.length && (e[t] === ":" && t++, t < e.length)) {
2979
- let r = {
2980
- field: n,
2981
- value: a(e[t++])
2982
- };
2983
- o.set.push(r);
2987
+ if (c < s.length) {
2988
+ if (e === "action") {
2989
+ let e = s[c++];
2990
+ if (!In.includes(e)) throw Error(`Parsing error: state_machine cascade. Unknown action ${e} (valid: ${In.join(", ")})`);
2991
+ o.action = e;
2992
+ } else if (e === "where") o.where = i(s[c++]);
2993
+ else if (e === "via") o.via = s[c++];
2994
+ else if (e === "with") o.with = zn(s[c++]);
2995
+ else if (e === "set") {
2996
+ let e = n(i(s[c++])), t = 0;
2997
+ for (; t < e.length;) {
2998
+ let n = A(e[t++]);
2999
+ if (t < e.length && (e[t] === ":" && t++, t < e.length)) {
3000
+ let r = {
3001
+ field: n,
3002
+ value: a(e[t++])
3003
+ };
3004
+ o.set.push(r);
3005
+ }
2984
3006
  }
2985
- }
2986
- } else e === "create" ? o.create = zn(s[c++]) : i(s[c++]);
3007
+ } else e === "create" ? o.create = zn(s[c++]) : i(s[c++]);
3008
+ }
2987
3009
  }
2988
3010
  if (o.action && (o.set.length > 0 || o.create !== null)) throw Error(`Parsing error: state_machine cascade. Target ${e} mixes action with set/create — the two forms are mutually exclusive (schema oneOf)`);
2989
3011
  return o;
@@ -6120,13 +6142,13 @@ var za = function(e, t) {
6120
6142
  else if (e === "content_contract") n.contentContract = Ra(i(o[s++]));
6121
6143
  else if (e === "produced_when") {
6122
6144
  let e = a(o[s++] ?? "");
6123
- e === "per_interval" ? n.producedWhen = {
6145
+ n.producedWhen = e === "per_interval" ? {
6124
6146
  kind: e,
6125
6147
  interval: a(o[s++] ?? "")
6126
- } : e === "on_event" ? n.producedWhen = {
6148
+ } : e === "on_event" ? {
6127
6149
  kind: e,
6128
6150
  event: a(o[s++] ?? "")
6129
- } : n.producedWhen = { kind: e };
6151
+ } : { kind: e };
6130
6152
  } else if (e === "retention") n.retention = a(o[s++]);
6131
6153
  else if (e === "source") {
6132
6154
  let e = N(i(o[s++]));
@@ -7983,7 +8005,7 @@ function As(e) {
7983
8005
  let i = /* @__PURE__ */ new Set();
7984
8006
  return t.filter((e) => {
7985
8007
  let t = js(e);
7986
- return i.has(t) ? !1 : (i.add(t), !0);
8008
+ return !i.has(t) && (i.add(t), !0);
7987
8009
  });
7988
8010
  }
7989
8011
  function js(e) {
@@ -1169,6 +1169,12 @@ function refTargetToSourceRef(target) {
1169
1169
  }
1170
1170
  function foldRefIntoLegacy(el, ref) {
1171
1171
  if (ref.predicate === "derives-from") {
1172
+ const roleChannel = el.fieldReferences ?? el.formReferences;
1173
+ const hasProvenanceSlot = "source" in el || "sourceRef" in el || el.sourceRefs !== void 0;
1174
+ if (roleChannel && !hasProvenanceSlot) {
1175
+ roleChannel.push({ urn: ref.target, role: "source" });
1176
+ return true;
1177
+ }
1172
1178
  const b = refTargetToSourceRef(ref.target);
1173
1179
  if (!b) {
1174
1180
  return false;
@@ -1186,12 +1192,12 @@ function foldRefIntoLegacy(el, ref) {
1186
1192
  return true;
1187
1193
  }
1188
1194
  if (ref.predicate === "cites") {
1189
- if (el.referenceIds) {
1190
- el.referenceIds.push(ref.target);
1191
- } else if (el.fieldReferences) {
1195
+ if (el.fieldReferences) {
1192
1196
  el.fieldReferences.push({ urn: ref.target, role: "reference" });
1193
1197
  } else if (el.formReferences) {
1194
1198
  el.formReferences.push({ urn: ref.target, role: "reference" });
1199
+ } else if (el.referenceIds) {
1200
+ el.referenceIds.push(ref.target);
1195
1201
  }
1196
1202
  return true;
1197
1203
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primmel/primmel",
3
- "version": "1.5.1",
3
+ "version": "1.5.2",
4
4
  "description": "Primmel — parser, types, and serializer for the Primmel modelling language (successor to MMEL)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",