@primmel/primmel 1.21.11 → 1.21.12
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/provision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/provision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,eAAO,MAAM,cAAc,EAAE,MAiF5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAUnE,CAAC;AAEJ,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,CAsB3C,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.dumpProvision = exports.resolveProvision = exports.parseProvision = void 0;
|
|
4
4
|
const tokenize_1 = require("../tokenize");
|
|
5
|
-
const
|
|
5
|
+
const tokenize_2 = require("../tokenize");
|
|
6
6
|
const resolve_1 = require("../resolve");
|
|
7
7
|
const parseProvision = function (id, data) {
|
|
8
8
|
const result = {
|
|
@@ -15,24 +15,63 @@ const parseProvision = function (id, data) {
|
|
|
15
15
|
ref: [],
|
|
16
16
|
},
|
|
17
17
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
// The provision's own walk — NOT forEachEntry. The free-form
|
|
19
|
+
// key/value pairs are part of the spec, and a free-form value may be
|
|
20
|
+
// MULTI-TOKEN (`subject claims Sample#data`): the pairwise walk
|
|
21
|
+
// cannot express that (the stray tokens abort the parse and poison
|
|
22
|
+
// everything after). An unknown keyword opens a free-form entry whose
|
|
23
|
+
// value is every token up to the next known keyword, joined;
|
|
24
|
+
// single-token values parse byte-identically to the old form.
|
|
25
|
+
const KNOWN = new Set(['modality', 'condition', 'reference']);
|
|
26
|
+
/** Unwrap one string token: quoted → unescape; brace block → strip the
|
|
27
|
+
* braces; bare → as-is. The string-form of parse-block's unwrapped(). */
|
|
28
|
+
const unwrapToken = (x) => {
|
|
29
|
+
if (x.length >= 2 && x.startsWith('"') && x.endsWith('"')) {
|
|
30
|
+
return (0, tokenize_2.unescapeString)(x.slice(1, -1));
|
|
21
31
|
}
|
|
22
|
-
|
|
23
|
-
|
|
32
|
+
if (x.length >= 2 && x.startsWith('{') && x.endsWith('}')) {
|
|
33
|
+
return (0, tokenize_2.unwrapBlock)(x);
|
|
24
34
|
}
|
|
25
|
-
|
|
26
|
-
|
|
35
|
+
return x;
|
|
36
|
+
};
|
|
37
|
+
const t = (0, tokenize_1.tokenizePackage)(data);
|
|
38
|
+
let i = 0;
|
|
39
|
+
while (i < t.length) {
|
|
40
|
+
const keyword = t[i++];
|
|
41
|
+
if (keyword === 'modality') {
|
|
42
|
+
if (i >= t.length) {
|
|
43
|
+
throw new Error(`Parsing error: provision. ID ${id}: Expecting value for modality`);
|
|
44
|
+
}
|
|
45
|
+
result.modality = t[i++];
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (keyword === 'condition') {
|
|
49
|
+
if (i >= t.length) {
|
|
50
|
+
throw new Error(`Parsing error: provision. ID ${id}: Expecting value for condition`);
|
|
51
|
+
}
|
|
52
|
+
result.condition = unwrapToken(t[i++]);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (keyword === 'reference') {
|
|
56
|
+
if (i >= t.length) {
|
|
57
|
+
throw new Error(`Parsing error: provision. ID ${id}: Expecting value for reference`);
|
|
58
|
+
}
|
|
59
|
+
result._relations.ref = (0, tokenize_1.tokenizePackage)(t[i++]);
|
|
60
|
+
continue;
|
|
27
61
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
result.subject.set(command, value());
|
|
62
|
+
// The free-form subject entry.
|
|
63
|
+
const rest = [];
|
|
64
|
+
while (i < t.length && !KNOWN.has(t[i])) {
|
|
65
|
+
rest.push(t[i++]);
|
|
33
66
|
}
|
|
34
|
-
|
|
35
|
-
|
|
67
|
+
if (rest.length === 0) {
|
|
68
|
+
// A trailing bare keyword: a free-form key with an empty value.
|
|
69
|
+
result.subject.set(keyword, '');
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
const value = rest.map(unwrapToken).join(' ');
|
|
73
|
+
result.subject.set(keyword, value);
|
|
74
|
+
}
|
|
36
75
|
return ctx => {
|
|
37
76
|
ctx.provisions[id] = result;
|
|
38
77
|
return ctx;
|
|
@@ -53,7 +92,11 @@ exports.resolveProvision = resolveProvision;
|
|
|
53
92
|
const dumpProvision = function (pro) {
|
|
54
93
|
let out = 'provision ' + pro.id + ' {\n';
|
|
55
94
|
pro.subject.forEach((value, key) => {
|
|
56
|
-
|
|
95
|
+
// A multi-word value dumps QUOTED — bare, it would reparse as
|
|
96
|
+
// several free-form entries. Single-token values stay bare
|
|
97
|
+
// (byte-identical to the corpus).
|
|
98
|
+
const v = value.includes(' ') ? `"${(0, tokenize_1.escapeString)(value)}"` : value;
|
|
99
|
+
out += ' ' + key + ' ' + v + '\n';
|
|
57
100
|
});
|
|
58
101
|
out += ' condition "' + (0, tokenize_1.escapeString)(pro.condition) + '"\n';
|
|
59
102
|
if (pro.modality !== '') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../../../../src/ser-des/config/provision.ts"],"names":[],"mappings":";;;AAEA,0CAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../../../../src/ser-des/config/provision.ts"],"names":[],"mappings":";;;AAEA,0CAA4D;AAC5D,0CAA0D;AAG1D,wCAAgD;AAEzC,MAAM,cAAc,GAAW,UAAU,EAAE,EAAE,IAAI;IACtD,MAAM,MAAM,GAAwB;QAClC,OAAO,EAAE,IAAI,GAAG,EAAkB;QAClC,EAAE,EAAE,EAAE;QACN,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,GAAG,EAAE,EAAE;QACP,UAAU,EAAE;YACV,GAAG,EAAE,EAAE;SACR;KACF,CAAC;IAEF,6DAA6D;IAC7D,qEAAqE;IACrE,gEAAgE;IAChE,mEAAmE;IACnE,sEAAsE;IACtE,6DAA6D;IAC7D,8DAA8D;IAC9D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAE9D;8EAC0E;IAC1E,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE;QACxC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAA,yBAAc,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAA,sBAAW,EAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,MAAM,CAAC,GAAG,IAAA,0BAAe,EAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;QACxB,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACb,gCAAgC,EAAE,gCAAgC,CACnE,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACb,gCAAgC,EAAE,iCAAiC,CACpE,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC;YACxC,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACb,gCAAgC,EAAE,iCAAiC,CACpE,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,IAAA,0BAAe,EAAC,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QACD,+BAA+B;QAC/B,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,gEAAgE;YAChE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAChC,MAAM;QACR,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,GAAG,CAAC,EAAE;QACX,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,CAAC;AAjFW,QAAA,cAAc,kBAiFzB;AAEK,MAAM,gBAAgB,GAC3B,UAAU,GAAG,EAAE,UAAU;IACvB,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;AAVS,QAAA,gBAAgB,oBAUzB;AAEG,MAAM,aAAa,GAAsB,UAAU,GAAG;IAC3D,IAAI,GAAG,GAAW,YAAY,GAAG,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;IACjD,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,GAAW,EAAE,EAAE;QACjD,8DAA8D;QAC9D,2DAA2D;QAC3D,kCAAkC;QAClC,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAA,uBAAY,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,GAAG,IAAI,eAAe,GAAG,IAAA,uBAAY,EAAC,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IAC7D,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QACxB,GAAG,IAAI,aAAa,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7C,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,IAAI,iBAAiB,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACxB,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;AAtBW,QAAA,aAAa,iBAsBxB"}
|
package/dist-browser/index.mjs
CHANGED
|
@@ -2548,11 +2548,38 @@ var Qt = (e, t) => {
|
|
|
2548
2548
|
condition: "",
|
|
2549
2549
|
ref: [],
|
|
2550
2550
|
_relations: { ref: [] }
|
|
2551
|
-
}
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2551
|
+
}, a = /* @__PURE__ */ new Set([
|
|
2552
|
+
"modality",
|
|
2553
|
+
"condition",
|
|
2554
|
+
"reference"
|
|
2555
|
+
]), s = (e) => e.length >= 2 && e.startsWith("\"") && e.endsWith("\"") ? o(e.slice(1, -1)) : e.length >= 2 && e.startsWith("{") && e.endsWith("}") ? i(e) : e, c = r(t), l = 0;
|
|
2556
|
+
for (; l < c.length;) {
|
|
2557
|
+
let t = c[l++];
|
|
2558
|
+
if (t === "modality") {
|
|
2559
|
+
if (l >= c.length) throw Error(`Parsing error: provision. ID ${e}: Expecting value for modality`);
|
|
2560
|
+
n.modality = c[l++];
|
|
2561
|
+
continue;
|
|
2562
|
+
}
|
|
2563
|
+
if (t === "condition") {
|
|
2564
|
+
if (l >= c.length) throw Error(`Parsing error: provision. ID ${e}: Expecting value for condition`);
|
|
2565
|
+
n.condition = s(c[l++]);
|
|
2566
|
+
continue;
|
|
2567
|
+
}
|
|
2568
|
+
if (t === "reference") {
|
|
2569
|
+
if (l >= c.length) throw Error(`Parsing error: provision. ID ${e}: Expecting value for reference`);
|
|
2570
|
+
n._relations.ref = r(c[l++]);
|
|
2571
|
+
continue;
|
|
2572
|
+
}
|
|
2573
|
+
let i = [];
|
|
2574
|
+
for (; l < c.length && !a.has(c[l]);) i.push(c[l++]);
|
|
2575
|
+
if (i.length === 0) {
|
|
2576
|
+
n.subject.set(t, "");
|
|
2577
|
+
break;
|
|
2578
|
+
}
|
|
2579
|
+
let o = i.map(s).join(" ");
|
|
2580
|
+
n.subject.set(t, o);
|
|
2581
|
+
}
|
|
2582
|
+
return (t) => (t.provisions[e] = n, t);
|
|
2556
2583
|
}, rn = function(e, t) {
|
|
2557
2584
|
let n = [];
|
|
2558
2585
|
for (let r of t._relations.ref) {
|
|
@@ -2566,7 +2593,8 @@ var Qt = (e, t) => {
|
|
|
2566
2593
|
}, an = function(e) {
|
|
2567
2594
|
let t = "provision " + e.id + " {\n";
|
|
2568
2595
|
if (e.subject.forEach((e, n) => {
|
|
2569
|
-
|
|
2596
|
+
let r = e.includes(" ") ? `"${s(e)}"` : e;
|
|
2597
|
+
t += " " + n + " " + r + "\n";
|
|
2570
2598
|
}), t += " condition \"" + s(e.condition) + "\"\n", e.modality !== "" && (t += " modality " + e.modality + "\n"), e.ref.length > 0) {
|
|
2571
2599
|
t += " reference {\n";
|
|
2572
2600
|
for (let n of e.ref) t += " " + n.id + "\n";
|
package/dist-cli/primmel.mjs
CHANGED
|
@@ -4720,22 +4720,58 @@ var parseProvision = function(id, data) {
|
|
|
4720
4720
|
ref: []
|
|
4721
4721
|
}
|
|
4722
4722
|
};
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
(
|
|
4726
|
-
|
|
4727
|
-
|
|
4728
|
-
|
|
4729
|
-
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
|
|
4723
|
+
const KNOWN = /* @__PURE__ */ new Set(["modality", "condition", "reference"]);
|
|
4724
|
+
const unwrapToken = (x) => {
|
|
4725
|
+
if (x.length >= 2 && x.startsWith('"') && x.endsWith('"')) {
|
|
4726
|
+
return unescapeString(x.slice(1, -1));
|
|
4727
|
+
}
|
|
4728
|
+
if (x.length >= 2 && x.startsWith("{") && x.endsWith("}")) {
|
|
4729
|
+
return unwrapBlock(x);
|
|
4730
|
+
}
|
|
4731
|
+
return x;
|
|
4732
|
+
};
|
|
4733
|
+
const t = tokenizePackage(data);
|
|
4734
|
+
let i = 0;
|
|
4735
|
+
while (i < t.length) {
|
|
4736
|
+
const keyword = t[i++];
|
|
4737
|
+
if (keyword === "modality") {
|
|
4738
|
+
if (i >= t.length) {
|
|
4739
|
+
throw new Error(
|
|
4740
|
+
`Parsing error: provision. ID ${id}: Expecting value for modality`
|
|
4741
|
+
);
|
|
4734
4742
|
}
|
|
4735
|
-
|
|
4736
|
-
|
|
4737
|
-
|
|
4738
|
-
|
|
4743
|
+
result.modality = t[i++];
|
|
4744
|
+
continue;
|
|
4745
|
+
}
|
|
4746
|
+
if (keyword === "condition") {
|
|
4747
|
+
if (i >= t.length) {
|
|
4748
|
+
throw new Error(
|
|
4749
|
+
`Parsing error: provision. ID ${id}: Expecting value for condition`
|
|
4750
|
+
);
|
|
4751
|
+
}
|
|
4752
|
+
result.condition = unwrapToken(t[i++]);
|
|
4753
|
+
continue;
|
|
4754
|
+
}
|
|
4755
|
+
if (keyword === "reference") {
|
|
4756
|
+
if (i >= t.length) {
|
|
4757
|
+
throw new Error(
|
|
4758
|
+
`Parsing error: provision. ID ${id}: Expecting value for reference`
|
|
4759
|
+
);
|
|
4760
|
+
}
|
|
4761
|
+
result._relations.ref = tokenizePackage(t[i++]);
|
|
4762
|
+
continue;
|
|
4763
|
+
}
|
|
4764
|
+
const rest = [];
|
|
4765
|
+
while (i < t.length && !KNOWN.has(t[i])) {
|
|
4766
|
+
rest.push(t[i++]);
|
|
4767
|
+
}
|
|
4768
|
+
if (rest.length === 0) {
|
|
4769
|
+
result.subject.set(keyword, "");
|
|
4770
|
+
break;
|
|
4771
|
+
}
|
|
4772
|
+
const value = rest.map(unwrapToken).join(" ");
|
|
4773
|
+
result.subject.set(keyword, value);
|
|
4774
|
+
}
|
|
4739
4775
|
return (ctx) => {
|
|
4740
4776
|
ctx.provisions[id] = result;
|
|
4741
4777
|
return ctx;
|
|
@@ -4754,7 +4790,8 @@ var resolveProvision = function(ctx, unresolved) {
|
|
|
4754
4790
|
var dumpProvision = function(pro) {
|
|
4755
4791
|
let out = "provision " + pro.id + " {\n";
|
|
4756
4792
|
pro.subject.forEach((value, key) => {
|
|
4757
|
-
|
|
4793
|
+
const v = value.includes(" ") ? `"${escapeString(value)}"` : value;
|
|
4794
|
+
out += " " + key + " " + v + "\n";
|
|
4758
4795
|
});
|
|
4759
4796
|
out += ' condition "' + escapeString(pro.condition) + '"\n';
|
|
4760
4797
|
if (pro.modality !== "") {
|
package/package.json
CHANGED