@primmel/primmel 1.17.2 → 1.18.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.
- package/dist/src/ser-des/config/note.d.ts.map +1 -1
- package/dist/src/ser-des/config/note.js +25 -1
- package/dist/src/ser-des/config/note.js.map +1 -1
- package/dist/src/types/Note.d.ts +8 -0
- package/dist/src/types/Note.d.ts.map +1 -1
- package/dist-browser/index.mjs +16 -7
- package/dist-cli/primmel.mjs +14 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/note.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"note.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/note.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAazD,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAavD,eAAO,MAAM,SAAS,EAAE,MA2DvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAYtD,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,IAAI,CAoBjC,CAAC"}
|
|
@@ -4,6 +4,8 @@ exports.dumpNote = exports.resolveNote = exports.parseNote = void 0;
|
|
|
4
4
|
const tokenize_1 = require("../tokenize");
|
|
5
5
|
const parse_block_1 = require("../parse-block");
|
|
6
6
|
const sourceDiscrepancy_1 = require("./sourceDiscrepancy");
|
|
7
|
+
const field_parser_1 = require("./field-parser");
|
|
8
|
+
const ref_1 = require("./ref");
|
|
7
9
|
const resolve_1 = require("../resolve");
|
|
8
10
|
// EXAMPLE is the legacy (MMEL v2) note type — the corpus carries it.
|
|
9
11
|
const VALID_NOTE_TYPES = [
|
|
@@ -19,12 +21,13 @@ const parseNote = function (id, data) {
|
|
|
19
21
|
type: 'NOTE',
|
|
20
22
|
message: '',
|
|
21
23
|
sourceDiscrepancy: null,
|
|
24
|
+
source: null,
|
|
22
25
|
ref: [],
|
|
23
26
|
_relations: {
|
|
24
27
|
ref: [],
|
|
25
28
|
},
|
|
26
29
|
};
|
|
27
|
-
(0, parse_block_1.forEachEntry)(data, (command, value) => {
|
|
30
|
+
(0, parse_block_1.forEachEntry)(data, (command, value, peek) => {
|
|
28
31
|
if (command === 'type') {
|
|
29
32
|
const v = value();
|
|
30
33
|
if (!VALID_NOTE_TYPES.includes(v)) {
|
|
@@ -38,9 +41,26 @@ const parseNote = function (id, data) {
|
|
|
38
41
|
else if (command === 'source_discrepancy') {
|
|
39
42
|
result.sourceDiscrepancy = (0, sourceDiscrepancy_1.parseSourceDiscrepancy)((0, tokenize_1.unwrapBlock)(value()));
|
|
40
43
|
}
|
|
44
|
+
else if (command === 'source') {
|
|
45
|
+
// The clause-site provenance (the requirement idiom): repeated
|
|
46
|
+
// blocks collect into sourceRefs; source mirrors the first.
|
|
47
|
+
const src = (0, field_parser_1.readSource)((0, tokenize_1.unwrapBlock)(value()));
|
|
48
|
+
if (!result.source) {
|
|
49
|
+
result.source = src;
|
|
50
|
+
}
|
|
51
|
+
(result.sourceRefs ??= []).push(src);
|
|
52
|
+
}
|
|
41
53
|
else if (command === 'reference') {
|
|
54
|
+
// The bibliographic citation channel (the references-collection
|
|
55
|
+
// id list — resolveNote resolves each), never provenance.
|
|
42
56
|
result._relations.ref = (0, tokenize_1.tokenizePackage)(value());
|
|
43
57
|
}
|
|
58
|
+
else if (command === 'ref') {
|
|
59
|
+
// The unified typed reference (spec: docs/primmel/18) — a
|
|
60
|
+
// URN-anchored derives-from folds into the provenance facet.
|
|
61
|
+
const r = (0, ref_1.parseRefFromReaders)(value, peek, tokenize_1.stripWrapping, tokenize_1.unwrapBlock);
|
|
62
|
+
(0, ref_1.foldRefIntoLegacy)(result, r);
|
|
63
|
+
}
|
|
44
64
|
else {
|
|
45
65
|
return false;
|
|
46
66
|
}
|
|
@@ -70,6 +90,10 @@ const dumpNote = function (n) {
|
|
|
70
90
|
if (n.sourceDiscrepancy) {
|
|
71
91
|
out += (0, sourceDiscrepancy_1.dumpSourceDiscrepancy)(n.sourceDiscrepancy, ' ') + '\n';
|
|
72
92
|
}
|
|
93
|
+
for (const src of n.sourceRefs ??
|
|
94
|
+
(n.source && (n.source.doc || n.source.clause) ? [n.source] : [])) {
|
|
95
|
+
out += (0, ref_1.dumpSourceRefAsRef)(src, ' ', tokenize_1.escapeString);
|
|
96
|
+
}
|
|
73
97
|
if (n.ref.length > 0) {
|
|
74
98
|
out += ' reference {\n';
|
|
75
99
|
for (const r of n.ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note.js","sourceRoot":"","sources":["../../../../src/ser-des/config/note.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"note.js","sourceRoot":"","sources":["../../../../src/ser-des/config/note.ts"],"names":[],"mappings":";;;AACA,0CAAwF;AACxF,gDAAyD;AACzD,2DAG6B;AAC7B,iDAA4C;AAC5C,+BAIe;AAKf,wCAAgD;AAEhD,qEAAqE;AACrE,MAAM,gBAAgB,GAAe;IACnC,MAAM;IACN,SAAS;IACT,SAAS;IACT,SAAS;IACT,YAAY;CACb,CAAC;AAEK,MAAM,SAAS,GAAW,UAAU,EAAE,EAAE,IAAI;IACjD,MAAM,MAAM,GAAmB;QAC7B,EAAE,EAAE,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,EAAE;QACX,iBAAiB,EAAE,IAAI;QACvB,MAAM,EAAE,IAAI;QACZ,GAAG,EAAE,EAAE;QACP,UAAU,EAAE;YACV,GAAG,EAAE,EAAE;SACR;KACF,CAAC;IAEF,IAAA,0BAAY,EACV,IAAI,EACJ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,KAAK,EAAc,CAAC;YAC9B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CACb,2BAA2B,EAAE,kBAAkB,CAAC,YAAY,gBAAgB,CAAC,IAAI,CAC/E,IAAI,CACL,GAAG,CACL,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,OAAO,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,OAAO,KAAK,oBAAoB,EAAE,CAAC;YAC5C,MAAM,CAAC,iBAAiB,GAAG,IAAA,0CAAsB,EAAC,IAAA,sBAAW,EAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,+DAA+D;YAC/D,4DAA4D;YAC5D,MAAM,GAAG,GAAG,IAAA,yBAAU,EAAC,IAAA,sBAAW,EAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;YACtB,CAAC;YACD,CAAC,MAAM,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YACnC,gEAAgE;YAChE,0DAA0D;YAC1D,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,IAAA,0BAAe,EAAC,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YAC7B,0DAA0D;YAC1D,6DAA6D;YAC7D,MAAM,CAAC,GAAG,IAAA,yBAAmB,EAAC,KAAK,EAAE,IAAI,EAAE,wBAAa,EAAE,sBAAW,CAAC,CAAC;YACvE,IAAA,uBAAiB,EAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAC1B,CAAC;IAEF,OAAO,GAAG,CAAC,EAAE;QACX,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,CAAC;AA3DW,QAAA,SAAS,aA2DpB;AAEK,MAAM,WAAW,GAAmC,UACzD,GAAG,EACH,UAAU;IAEV,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,KAAK,MAAM,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,IAAA,4BAAkB,EAAY,GAAG,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,CAAC;AAChC,CAAC,CAAC;AAZW,QAAA,WAAW,eAYtB;AAEK,MAAM,QAAQ,GAAiB,UAAU,CAAC;IAC/C,IAAI,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC;IAClC,GAAG,IAAI,SAAS,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;IACjC,GAAG,IAAI,aAAa,GAAG,IAAA,uBAAY,EAAC,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;IACvD,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACxB,GAAG,IAAI,IAAA,yCAAqB,EAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;IACjE,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,UAAU;QAC5B,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACpE,GAAG,IAAI,IAAA,wBAAkB,EAAC,GAAG,EAAE,IAAI,EAAE,uBAAY,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG,IAAI,iBAAiB,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,GAAG,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,GAAG,IAAI,OAAO,CAAC;IACjB,CAAC;IACD,GAAG,IAAI,KAAK,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AApBW,QAAA,QAAQ,YAoBnB"}
|
package/dist/src/types/Note.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Reference from './Reference';
|
|
2
2
|
import Resolvable from './Resolvable';
|
|
3
3
|
import type SourceDiscrepancy from './SourceDiscrepancy';
|
|
4
|
+
import type { SourceRef } from './Subject';
|
|
4
5
|
export type NoteType = 'NOTE' | 'CAUTION' | 'WARNING' | 'EXAMPLE' | 'COMMENTARY';
|
|
5
6
|
interface Note {
|
|
6
7
|
id: string;
|
|
@@ -8,6 +9,13 @@ interface Note {
|
|
|
8
9
|
message: string;
|
|
9
10
|
/** Source-discrepancy annotation attached to this note. */
|
|
10
11
|
sourceDiscrepancy?: SourceDiscrepancy | null;
|
|
12
|
+
/** The clause-site provenance (the requirement idiom: the singular
|
|
13
|
+
mirror of the first source block, the canonical
|
|
14
|
+
`ref derives-from "<urn>#clause-<n>"` spelling on dump). */
|
|
15
|
+
source?: SourceRef | null;
|
|
16
|
+
/** Every provenance block in document order (the first mirrors
|
|
17
|
+
`source`). */
|
|
18
|
+
sourceRefs?: SourceRef[];
|
|
11
19
|
ref: Reference[];
|
|
12
20
|
}
|
|
13
21
|
export default Note;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Note.d.ts","sourceRoot":"","sources":["../../../src/types/Note.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,iBAAiB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Note.d.ts","sourceRoot":"","sources":["../../../src/types/Note.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,iBAAiB,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAClB,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;AAE5D,UAAU,IAAI;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7C;;mEAE+D;IAC/D,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1B;qBACiB;IACjB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,GAAG,EAAE,SAAS,EAAE,CAAC;CAClB;AAED,eAAe,IAAI,CAAC;AAEpB,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC"}
|
package/dist-browser/index.mjs
CHANGED
|
@@ -2838,18 +2838,25 @@ var Mn = [
|
|
|
2838
2838
|
type: "NOTE",
|
|
2839
2839
|
message: "",
|
|
2840
2840
|
sourceDiscrepancy: null,
|
|
2841
|
+
source: null,
|
|
2841
2842
|
ref: [],
|
|
2842
2843
|
_relations: { ref: [] }
|
|
2843
2844
|
};
|
|
2844
|
-
return v(t, (t,
|
|
2845
|
+
return v(t, (t, o, s) => {
|
|
2845
2846
|
if (t === "type") {
|
|
2846
|
-
let t =
|
|
2847
|
+
let t = o();
|
|
2847
2848
|
if (!Mn.includes(t)) throw Error(`Parsing error: note. ID ${e}: Unknown type ${t} (valid: ${Mn.join(", ")})`);
|
|
2848
2849
|
n.type = t;
|
|
2849
|
-
} else if (t === "message") n.message = x(
|
|
2850
|
-
else if (t === "source_discrepancy") n.sourceDiscrepancy = A(i(
|
|
2851
|
-
else if (t === "
|
|
2852
|
-
|
|
2850
|
+
} else if (t === "message") n.message = x(o);
|
|
2851
|
+
else if (t === "source_discrepancy") n.sourceDiscrepancy = A(i(o()));
|
|
2852
|
+
else if (t === "source") {
|
|
2853
|
+
let e = I(i(o()));
|
|
2854
|
+
n.source ||= e, (n.sourceRefs ??= []).push(e);
|
|
2855
|
+
} else if (t === "reference") n._relations.ref = r(o());
|
|
2856
|
+
else if (t === "ref") {
|
|
2857
|
+
let e = C(o, s, a, i);
|
|
2858
|
+
T(n, e);
|
|
2859
|
+
} else return !1;
|
|
2853
2860
|
return !0;
|
|
2854
2861
|
}, {
|
|
2855
2862
|
construct: "note",
|
|
@@ -2867,7 +2874,9 @@ var Mn = [
|
|
|
2867
2874
|
};
|
|
2868
2875
|
}, Fn = function(e) {
|
|
2869
2876
|
let t = "note " + e.id + " {\n";
|
|
2870
|
-
|
|
2877
|
+
t += " type " + e.type + "\n", t += " message \"" + s(e.message) + "\"\n", e.sourceDiscrepancy && (t += j(e.sourceDiscrepancy, " ") + "\n");
|
|
2878
|
+
for (let n of e.sourceRefs ?? (e.source && (e.source.doc || e.source.clause) ? [e.source] : [])) t += E(n, " ", s);
|
|
2879
|
+
if (e.ref.length > 0) {
|
|
2871
2880
|
t += " reference {\n";
|
|
2872
2881
|
for (let n of e.ref) t += " " + n.id + "\n";
|
|
2873
2882
|
t += " }\n";
|
package/dist-cli/primmel.mjs
CHANGED
|
@@ -5255,6 +5255,7 @@ var parseNote = function(id, data) {
|
|
|
5255
5255
|
type: "NOTE",
|
|
5256
5256
|
message: "",
|
|
5257
5257
|
sourceDiscrepancy: null,
|
|
5258
|
+
source: null,
|
|
5258
5259
|
ref: [],
|
|
5259
5260
|
_relations: {
|
|
5260
5261
|
ref: []
|
|
@@ -5262,7 +5263,7 @@ var parseNote = function(id, data) {
|
|
|
5262
5263
|
};
|
|
5263
5264
|
forEachEntry(
|
|
5264
5265
|
data,
|
|
5265
|
-
(command, value) => {
|
|
5266
|
+
(command, value, peek) => {
|
|
5266
5267
|
if (command === "type") {
|
|
5267
5268
|
const v = value();
|
|
5268
5269
|
if (!VALID_NOTE_TYPES.includes(v)) {
|
|
@@ -5277,8 +5278,17 @@ var parseNote = function(id, data) {
|
|
|
5277
5278
|
result.message = unwrapped(value);
|
|
5278
5279
|
} else if (command === "source_discrepancy") {
|
|
5279
5280
|
result.sourceDiscrepancy = parseSourceDiscrepancy(unwrapBlock(value()));
|
|
5281
|
+
} else if (command === "source") {
|
|
5282
|
+
const src = readSource(unwrapBlock(value()));
|
|
5283
|
+
if (!result.source) {
|
|
5284
|
+
result.source = src;
|
|
5285
|
+
}
|
|
5286
|
+
(result.sourceRefs ??= []).push(src);
|
|
5280
5287
|
} else if (command === "reference") {
|
|
5281
5288
|
result._relations.ref = tokenizePackage(value());
|
|
5289
|
+
} else if (command === "ref") {
|
|
5290
|
+
const r = parseRefFromReaders(value, peek, stripWrapping, unwrapBlock);
|
|
5291
|
+
foldRefIntoLegacy(result, r);
|
|
5282
5292
|
} else {
|
|
5283
5293
|
return false;
|
|
5284
5294
|
}
|
|
@@ -5308,6 +5318,9 @@ var dumpNote = function(n) {
|
|
|
5308
5318
|
if (n.sourceDiscrepancy) {
|
|
5309
5319
|
out += dumpSourceDiscrepancy(n.sourceDiscrepancy, " ") + "\n";
|
|
5310
5320
|
}
|
|
5321
|
+
for (const src of n.sourceRefs ?? (n.source && (n.source.doc || n.source.clause) ? [n.source] : [])) {
|
|
5322
|
+
out += dumpSourceRefAsRef(src, " ", escapeString);
|
|
5323
|
+
}
|
|
5311
5324
|
if (n.ref.length > 0) {
|
|
5312
5325
|
out += " reference {\n";
|
|
5313
5326
|
for (const r of n.ref) {
|
package/package.json
CHANGED