@primmel/primmel 1.5.1 → 1.5.3

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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"}
@@ -346,16 +346,21 @@ function C(e) {
346
346
  }
347
347
  function w(e, t) {
348
348
  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;
349
+ let n = e.fieldReferences ?? e.formReferences, r = "source" in e || "sourceRef" in e || e.sourceRefs !== void 0;
350
+ if (n && !r) return n.push({
351
+ urn: t.target,
352
+ role: "source"
353
+ }), !0;
354
+ let i = C(t.target);
355
+ 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
356
  }
352
- if (t.predicate === "cites") return e.referenceIds ? e.referenceIds.push(t.target) : e.fieldReferences ? e.fieldReferences.push({
357
+ if (t.predicate === "cites") return e.fieldReferences ? e.fieldReferences.push({
353
358
  urn: t.target,
354
359
  role: "reference"
355
- }) : e.formReferences && e.formReferences.push({
360
+ }) : e.formReferences ? e.formReferences.push({
356
361
  urn: t.target,
357
362
  role: "reference"
358
- }), !0;
363
+ }) : e.referenceIds && e.referenceIds.push(t.target), !0;
359
364
  if ([
360
365
  "requirement",
361
366
  "test-procedure",
@@ -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.3",
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",