@primmel/primmel 1.12.0 → 1.14.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/check-rules.d.ts.map +1 -1
- package/dist/src/check-rules.js +115 -0
- package/dist/src/check-rules.js.map +1 -1
- package/dist/src/check.d.ts.map +1 -1
- package/dist/src/check.js +896 -0
- package/dist/src/check.js.map +1 -1
- package/dist/src/model-diff.d.ts.map +1 -1
- package/dist/src/model-diff.js +40 -0
- package/dist/src/model-diff.js.map +1 -1
- package/dist/src/ser-des/config/applicationDeclaration.d.ts +5 -0
- package/dist/src/ser-des/config/applicationDeclaration.d.ts.map +1 -0
- package/dist/src/ser-des/config/applicationDeclaration.js +102 -0
- package/dist/src/ser-des/config/applicationDeclaration.js.map +1 -0
- package/dist/src/ser-des/config/aspect.d.ts +5 -0
- package/dist/src/ser-des/config/aspect.d.ts.map +1 -0
- package/dist/src/ser-des/config/aspect.js +128 -0
- package/dist/src/ser-des/config/aspect.js.map +1 -0
- package/dist/src/ser-des/config/calculation.d.ts.map +1 -1
- package/dist/src/ser-des/config/calculation.js +134 -18
- package/dist/src/ser-des/config/calculation.js.map +1 -1
- package/dist/src/ser-des/config/calculationContext.d.ts +5 -0
- package/dist/src/ser-des/config/calculationContext.d.ts.map +1 -0
- package/dist/src/ser-des/config/calculationContext.js +62 -0
- package/dist/src/ser-des/config/calculationContext.js.map +1 -0
- package/dist/src/ser-des/config/certificateTemplate.d.ts +5 -0
- package/dist/src/ser-des/config/certificateTemplate.d.ts.map +1 -0
- package/dist/src/ser-des/config/certificateTemplate.js +195 -0
- package/dist/src/ser-des/config/certificateTemplate.js.map +1 -0
- package/dist/src/ser-des/config/commonTestCondition.d.ts +5 -0
- package/dist/src/ser-des/config/commonTestCondition.d.ts.map +1 -0
- package/dist/src/ser-des/config/commonTestCondition.js +75 -0
- package/dist/src/ser-des/config/commonTestCondition.js.map +1 -0
- package/dist/src/ser-des/config/evaluationDimension.d.ts +5 -0
- package/dist/src/ser-des/config/evaluationDimension.d.ts.map +1 -0
- package/dist/src/ser-des/config/evaluationDimension.js +128 -0
- package/dist/src/ser-des/config/evaluationDimension.js.map +1 -0
- package/dist/src/ser-des/config/evaluationProfile.d.ts +5 -0
- package/dist/src/ser-des/config/evaluationProfile.d.ts.map +1 -0
- package/dist/src/ser-des/config/evaluationProfile.js +61 -0
- package/dist/src/ser-des/config/evaluationProfile.js.map +1 -0
- package/dist/src/ser-des/config/formulaNote.d.ts +5 -0
- package/dist/src/ser-des/config/formulaNote.d.ts.map +1 -0
- package/dist/src/ser-des/config/formulaNote.js +66 -0
- package/dist/src/ser-des/config/formulaNote.js.map +1 -0
- package/dist/src/ser-des/config/identitySlot.d.ts +5 -0
- package/dist/src/ser-des/config/identitySlot.d.ts.map +1 -0
- package/dist/src/ser-des/config/identitySlot.js +120 -0
- package/dist/src/ser-des/config/identitySlot.js.map +1 -0
- package/dist/src/ser-des/config/index.d.ts.map +1 -1
- package/dist/src/ser-des/config/index.js +200 -0
- package/dist/src/ser-des/config/index.js.map +1 -1
- package/dist/src/ser-des/config/partAnnex.d.ts +5 -0
- package/dist/src/ser-des/config/partAnnex.d.ts.map +1 -0
- package/dist/src/ser-des/config/partAnnex.js +91 -0
- package/dist/src/ser-des/config/partAnnex.js.map +1 -0
- package/dist/src/ser-des/config/promiseSet.d.ts +5 -0
- package/dist/src/ser-des/config/promiseSet.d.ts.map +1 -0
- package/dist/src/ser-des/config/promiseSet.js +46 -0
- package/dist/src/ser-des/config/promiseSet.js.map +1 -0
- package/dist/src/ser-des/config/selectionRules.d.ts +9 -0
- package/dist/src/ser-des/config/selectionRules.d.ts.map +1 -0
- package/dist/src/ser-des/config/selectionRules.js +372 -0
- package/dist/src/ser-des/config/selectionRules.js.map +1 -0
- package/dist/src/ser-des/config/storyline.d.ts +7 -0
- package/dist/src/ser-des/config/storyline.d.ts.map +1 -0
- package/dist/src/ser-des/config/storyline.js +264 -0
- package/dist/src/ser-des/config/storyline.js.map +1 -0
- package/dist/src/ser-des/config/subject.d.ts +18 -1
- package/dist/src/ser-des/config/subject.d.ts.map +1 -1
- package/dist/src/ser-des/config/subject.js +270 -61
- package/dist/src/ser-des/config/subject.js.map +1 -1
- package/dist/src/ser-des/config/testReport.d.ts +7 -0
- package/dist/src/ser-des/config/testReport.d.ts.map +1 -0
- package/dist/src/ser-des/config/testReport.js +322 -0
- package/dist/src/ser-des/config/testReport.js.map +1 -0
- package/dist/src/ser-des/config/verificationPathway.d.ts +5 -0
- package/dist/src/ser-des/config/verificationPathway.d.ts.map +1 -0
- package/dist/src/ser-des/config/verificationPathway.js +361 -0
- package/dist/src/ser-des/config/verificationPathway.js.map +1 -0
- package/dist/src/ser-des/config/workflowConfig.d.ts +5 -0
- package/dist/src/ser-des/config/workflowConfig.d.ts.map +1 -0
- package/dist/src/ser-des/config/workflowConfig.js +129 -0
- package/dist/src/ser-des/config/workflowConfig.js.map +1 -0
- package/dist/src/ser-des/package.d.ts +10 -0
- package/dist/src/ser-des/package.d.ts.map +1 -1
- package/dist/src/ser-des/package.js +166 -12
- package/dist/src/ser-des/package.js.map +1 -1
- package/dist/src/ser-des/parse.d.ts.map +1 -1
- package/dist/src/ser-des/parse.js +29 -0
- package/dist/src/ser-des/parse.js.map +1 -1
- package/dist/src/ser-des/types.d.ts +37 -0
- package/dist/src/ser-des/types.d.ts.map +1 -1
- package/dist/src/types/ApplicationDeclaration.d.ts +23 -0
- package/dist/src/types/ApplicationDeclaration.d.ts.map +1 -0
- package/dist/src/types/ApplicationDeclaration.js +32 -0
- package/dist/src/types/ApplicationDeclaration.js.map +1 -0
- package/dist/src/types/Aspect.d.ts +30 -0
- package/dist/src/types/Aspect.d.ts.map +1 -0
- package/dist/src/types/Aspect.js +41 -0
- package/dist/src/types/Aspect.js.map +1 -0
- package/dist/src/types/Calculation.d.ts +35 -0
- package/dist/src/types/Calculation.d.ts.map +1 -1
- package/dist/src/types/CalculationContext.d.ts +17 -0
- package/dist/src/types/CalculationContext.d.ts.map +1 -0
- package/dist/src/types/CalculationContext.js +34 -0
- package/dist/src/types/CalculationContext.js.map +1 -0
- package/dist/src/types/CertificateTemplate.d.ts +46 -0
- package/dist/src/types/CertificateTemplate.d.ts.map +1 -0
- package/dist/src/types/CertificateTemplate.js +46 -0
- package/dist/src/types/CertificateTemplate.js.map +1 -0
- package/dist/src/types/CommonTestCondition.d.ts +15 -0
- package/dist/src/types/CommonTestCondition.d.ts.map +1 -0
- package/dist/src/types/CommonTestCondition.js +22 -0
- package/dist/src/types/CommonTestCondition.js.map +1 -0
- package/dist/src/types/EvaluationDimension.d.ts +32 -0
- package/dist/src/types/EvaluationDimension.d.ts.map +1 -0
- package/dist/src/types/EvaluationDimension.js +38 -0
- package/dist/src/types/EvaluationDimension.js.map +1 -0
- package/dist/src/types/EvaluationProfile.d.ts +10 -0
- package/dist/src/types/EvaluationProfile.d.ts.map +1 -0
- package/dist/src/types/EvaluationProfile.js +25 -0
- package/dist/src/types/EvaluationProfile.js.map +1 -0
- package/dist/src/types/IdentitySlot.d.ts +24 -0
- package/dist/src/types/IdentitySlot.d.ts.map +1 -0
- package/dist/src/types/IdentitySlot.js +34 -0
- package/dist/src/types/IdentitySlot.js.map +1 -0
- package/dist/src/types/PartAnnex.d.ts +18 -0
- package/dist/src/types/PartAnnex.d.ts.map +1 -0
- package/dist/src/types/PartAnnex.js +29 -0
- package/dist/src/types/PartAnnex.js.map +1 -0
- package/dist/src/types/PromiseSet.d.ts +8 -0
- package/dist/src/types/PromiseSet.d.ts.map +1 -0
- package/dist/src/types/PromiseSet.js +35 -0
- package/dist/src/types/PromiseSet.js.map +1 -0
- package/dist/src/types/SelectionRules.d.ts +73 -0
- package/dist/src/types/SelectionRules.d.ts.map +1 -0
- package/dist/src/types/SelectionRules.js +55 -0
- package/dist/src/types/SelectionRules.js.map +1 -0
- package/dist/src/types/Standard.d.ts +73 -0
- package/dist/src/types/Standard.d.ts.map +1 -1
- package/dist/src/types/Storyline.d.ts +62 -0
- package/dist/src/types/Storyline.d.ts.map +1 -0
- package/dist/src/types/Storyline.js +51 -0
- package/dist/src/types/Storyline.js.map +1 -0
- package/dist/src/types/Subject.d.ts +64 -1
- package/dist/src/types/Subject.d.ts.map +1 -1
- package/dist/src/types/Symbol.d.ts +17 -0
- package/dist/src/types/Symbol.d.ts.map +1 -1
- package/dist/src/types/TestReport.d.ts +71 -0
- package/dist/src/types/TestReport.d.ts.map +1 -0
- package/dist/src/types/TestReport.js +73 -0
- package/dist/src/types/TestReport.js.map +1 -0
- package/dist/src/types/VerificationPathway.d.ts +63 -0
- package/dist/src/types/VerificationPathway.d.ts.map +1 -0
- package/dist/src/types/VerificationPathway.js +56 -0
- package/dist/src/types/VerificationPathway.js.map +1 -0
- package/dist/src/types/WorkflowConfig.d.ts +34 -0
- package/dist/src/types/WorkflowConfig.d.ts.map +1 -0
- package/dist/src/types/WorkflowConfig.js +47 -0
- package/dist/src/types/WorkflowConfig.js.map +1 -0
- package/dist-browser/index.mjs +2391 -934
- package/dist-cli/primmel.mjs +9364 -5469
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storyline.js","sourceRoot":"","sources":["../../../../src/ser-des/config/storyline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ParseContext } from '../types';
|
|
2
|
-
import type { AttributeDefinition, Behavior, Capability, ClassificationDimension, ConditionSet, Instrument, Subject } from '../../types/Subject';
|
|
2
|
+
import type { AttributeDefinition, Behavior, Capability, ClassificationDimension, ConditionSet, Instrument, Subject, SubjectPromise } from '../../types/Subject';
|
|
3
3
|
export declare function parseDimension(id: string, block: string): ClassificationDimension;
|
|
4
4
|
/**
|
|
5
5
|
* Serialize one classification dimension at the given indent — the one
|
|
@@ -9,6 +9,14 @@ export declare function parseDimension(id: string, block: string): Classificatio
|
|
|
9
9
|
* present; the unified typed refs (non-provenance) follow the values.
|
|
10
10
|
*/
|
|
11
11
|
export declare function dumpDimension(d: ClassificationDimension, indent: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Read ONE rich promise entry body (`target … level … conditions …
|
|
14
|
+
* statement … verified_by { … } source { … } certificate { … }`).
|
|
15
|
+
* Exported for the promise_set register (config/promiseSet.ts, smart
|
|
16
|
+
* TODO.roadmap/40 batch 3), which reuses the promise sub-grammar
|
|
17
|
+
* verbatim.
|
|
18
|
+
*/
|
|
19
|
+
export declare function readPromiseEntry(id: string, block: string): SubjectPromise;
|
|
12
20
|
/**
|
|
13
21
|
* Resolve a subject's `extends` chain: merge each subject with its
|
|
14
22
|
* parent from ctx.subjects, recursively when the parent itself extends.
|
|
@@ -21,6 +29,15 @@ export declare function dumpDimension(d: ClassificationDimension, indent: string
|
|
|
21
29
|
* always terminates.
|
|
22
30
|
*/
|
|
23
31
|
export declare function resolveSubject(ctx: ParseContext, item: Subject): Subject;
|
|
32
|
+
/**
|
|
33
|
+
* Dump ONE rich promise entry at the given indent — shared by
|
|
34
|
+
* dumpSubjectPromises (is.promises) and the promise_set register
|
|
35
|
+
* (config/promiseSet.ts, smart TODO.roadmap/40 batch 3), which prefixes
|
|
36
|
+
* its entries with the `promise` keyword. Facet order is the byte
|
|
37
|
+
* contract: target, level, conditions, statement, verified_by, source,
|
|
38
|
+
* certificate.
|
|
39
|
+
*/
|
|
40
|
+
export declare function dumpPromiseEntry(p: SubjectPromise, indent: string, keyword?: string): string;
|
|
24
41
|
export declare const instrumentConstruct: {
|
|
25
42
|
readonly keyword: "instrument";
|
|
26
43
|
readonly field: "instruments";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/subject.ts"],"names":[],"mappings":"AA0IA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EACV,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,uBAAuB,EAEvB,YAAY,EAEZ,UAAU,
|
|
1
|
+
{"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/subject.ts"],"names":[],"mappings":"AA0IA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EACV,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,uBAAuB,EAEvB,YAAY,EAEZ,UAAU,EASV,OAAO,EAEP,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAsU7B,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,GACZ,uBAAuB,CAuDzB;AA+ED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,CAAC,EAAE,uBAAuB,EAC1B,MAAM,EAAE,MAAM,GACb,MAAM,CAuER;AA4tCD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CA0C1E;AA+ND;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAcxE;AA6HD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,cAAc,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,SAAK,GACX,MAAM,CAsBR;AA8ID,eAAO,MAAM,mBAAmB;;;;;0BAjwDO,UAAU,KAAG,MAAM;CAuwDhD,CAAC;AAEX,eAAO,MAAM,4BAA4B;;;;;uBAx4CI,mBAAmB,KAAG,MAAM;CA84C/D,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;;uBA9vCI,UAAU,KAAG,MAAM;CAowC7C,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;;uBAhrCI,QAAQ,KAAG,MAAM;CAsrCzC,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;;wBApiCK,YAAY,KAAG,MAAM;CA0iClD,CAAC;AAEX,eAAO,MAAM,gBAAgB;;;;;sBAKA,KAAK;uBAxFD,OAAO,KAAG,MAAM;CA0FvC,CAAC"}
|
|
@@ -103,7 +103,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
103
103
|
exports.subjectConstruct = exports.conditionSetConstruct = exports.behaviorConstruct = exports.capabilityConstruct = exports.attributeDefinitionConstruct = exports.instrumentConstruct = void 0;
|
|
104
104
|
exports.parseDimension = parseDimension;
|
|
105
105
|
exports.dumpDimension = dumpDimension;
|
|
106
|
+
exports.readPromiseEntry = readPromiseEntry;
|
|
106
107
|
exports.resolveSubject = resolveSubject;
|
|
108
|
+
exports.dumpPromiseEntry = dumpPromiseEntry;
|
|
107
109
|
const tokenize_1 = require("../tokenize");
|
|
108
110
|
const tokenize_2 = require("../tokenize");
|
|
109
111
|
const parse_block_1 = require("../parse-block");
|
|
@@ -925,6 +927,92 @@ const dumpInstrument = function (inst) {
|
|
|
925
927
|
return out;
|
|
926
928
|
};
|
|
927
929
|
// ── attribute_definition ─────────────────────────────────────────────
|
|
930
|
+
/**
|
|
931
|
+
* The `pair_list { … }` block (smart TODO.roadmap/40 batch 4): key /
|
|
932
|
+
* value / key_dimension scalar facets plus the repeatable two-token
|
|
933
|
+
* `component <id> { … }` entries (the segregation-block idiom — the
|
|
934
|
+
* block claims its sub-tokens manually).
|
|
935
|
+
*/
|
|
936
|
+
function parsePairList(block) {
|
|
937
|
+
const decl = {
|
|
938
|
+
key: '',
|
|
939
|
+
value: '',
|
|
940
|
+
keyDimension: '',
|
|
941
|
+
components: [],
|
|
942
|
+
};
|
|
943
|
+
const t = (0, tokenize_1.default)(block);
|
|
944
|
+
let i = 0;
|
|
945
|
+
while (i < t.length) {
|
|
946
|
+
const cmd = t[i++];
|
|
947
|
+
if (i > t.length) {
|
|
948
|
+
break;
|
|
949
|
+
}
|
|
950
|
+
if (cmd === 'key') {
|
|
951
|
+
decl.key = (0, tokenize_2.stripWrapping)(t[i++]);
|
|
952
|
+
}
|
|
953
|
+
else if (cmd === 'value') {
|
|
954
|
+
decl.value = (0, tokenize_2.stripWrapping)(t[i++]);
|
|
955
|
+
}
|
|
956
|
+
else if (cmd === 'key_dimension') {
|
|
957
|
+
decl.keyDimension = (0, tokenize_2.stripWrapping)(t[i++]);
|
|
958
|
+
}
|
|
959
|
+
else if (cmd === 'component') {
|
|
960
|
+
const cid = (0, tokenize_2.stripWrapping)(t[i++]);
|
|
961
|
+
const component = { id: cid, name: '', source: null };
|
|
962
|
+
if (i < t.length && t[i].startsWith('{')) {
|
|
963
|
+
const et = (0, tokenize_1.default)((0, tokenize_2.unwrapBlock)(t[i++]));
|
|
964
|
+
let j = 0;
|
|
965
|
+
while (j < et.length) {
|
|
966
|
+
const ec = et[j++];
|
|
967
|
+
if (j >= et.length) {
|
|
968
|
+
break;
|
|
969
|
+
}
|
|
970
|
+
if (ec === 'name') {
|
|
971
|
+
component.name = (0, tokenize_2.stripWrapping)(et[j++]);
|
|
972
|
+
}
|
|
973
|
+
else if (ec === 'source') {
|
|
974
|
+
component.source = (0, field_parser_1.readSource)((0, tokenize_2.unwrapBlock)(et[j++]));
|
|
975
|
+
}
|
|
976
|
+
else {
|
|
977
|
+
(0, tokenize_2.unwrapBlock)(et[j++]);
|
|
978
|
+
}
|
|
979
|
+
}
|
|
980
|
+
}
|
|
981
|
+
decl.components.push(component);
|
|
982
|
+
}
|
|
983
|
+
else {
|
|
984
|
+
i = (0, parse_block_1.skipUnknownValue)(t, i, cmd);
|
|
985
|
+
}
|
|
986
|
+
}
|
|
987
|
+
return decl;
|
|
988
|
+
}
|
|
989
|
+
function dumpPairList(decl) {
|
|
990
|
+
let out = ' pair_list {\n';
|
|
991
|
+
out += ' key ' + (0, field_parser_1.dumpBareSafe)(decl.key) + '\n';
|
|
992
|
+
out += ' value ' + (0, field_parser_1.dumpBareSafe)(decl.value) + '\n';
|
|
993
|
+
if (decl.keyDimension) {
|
|
994
|
+
out += ' key_dimension ' + (0, field_parser_1.dumpBareSafe)(decl.keyDimension) + '\n';
|
|
995
|
+
}
|
|
996
|
+
for (const c of decl.components) {
|
|
997
|
+
out += ' component ' + (0, field_parser_1.dumpBareSafe)(c.id) + ' {\n';
|
|
998
|
+
if (c.name) {
|
|
999
|
+
out += ' name "' + (0, tokenize_2.escapeString)(c.name) + '"\n';
|
|
1000
|
+
}
|
|
1001
|
+
if (c.source && (c.source.doc || c.source.clause)) {
|
|
1002
|
+
out += ' source {\n';
|
|
1003
|
+
if (c.source.doc) {
|
|
1004
|
+
out += ' doc "' + (0, tokenize_2.escapeString)(c.source.doc) + '"\n';
|
|
1005
|
+
}
|
|
1006
|
+
if (c.source.clause) {
|
|
1007
|
+
out += ' clause "' + (0, tokenize_2.escapeString)(c.source.clause) + '"\n';
|
|
1008
|
+
}
|
|
1009
|
+
out += ' }\n';
|
|
1010
|
+
}
|
|
1011
|
+
out += ' }\n';
|
|
1012
|
+
}
|
|
1013
|
+
out += ' }\n';
|
|
1014
|
+
return out;
|
|
1015
|
+
}
|
|
928
1016
|
const parseAttributeDefinition = function (id, data) {
|
|
929
1017
|
const result = {
|
|
930
1018
|
id,
|
|
@@ -978,6 +1066,10 @@ const parseAttributeDefinition = function (id, data) {
|
|
|
978
1066
|
else if (cmd === 'value_type') {
|
|
979
1067
|
result.valueType = (0, tokenize_2.stripWrapping)(t[i++]);
|
|
980
1068
|
}
|
|
1069
|
+
else if (cmd === 'pair_list') {
|
|
1070
|
+
// The pair-list block (smart TODO.roadmap/40 batch 4).
|
|
1071
|
+
result.pairList = parsePairList((0, tokenize_2.unwrapBlock)(t[i++]));
|
|
1072
|
+
}
|
|
981
1073
|
else if (cmd === 'origin') {
|
|
982
1074
|
result.origin = (0, tokenize_2.stripWrapping)(t[i++]);
|
|
983
1075
|
}
|
|
@@ -1066,6 +1158,9 @@ const dumpAttributeDefinition = function (a) {
|
|
|
1066
1158
|
if (a.valueType) {
|
|
1067
1159
|
out += ' value_type ' + a.valueType + '\n';
|
|
1068
1160
|
}
|
|
1161
|
+
if (a.pairList) {
|
|
1162
|
+
out += dumpPairList(a.pairList);
|
|
1163
|
+
}
|
|
1069
1164
|
if (a.origin) {
|
|
1070
1165
|
out += ' origin ' + a.origin + '\n';
|
|
1071
1166
|
}
|
|
@@ -1733,7 +1828,7 @@ function readPromiseLevel(t, i) {
|
|
|
1733
1828
|
/**
|
|
1734
1829
|
* Read is.promises entries (TODO.roadmap/08). Two entry forms:
|
|
1735
1830
|
* - rich: `<id> { target … level … conditions … statement …
|
|
1736
|
-
* verified_by { … } source { … } }`
|
|
1831
|
+
* verified_by { … } source { … } certificate { … } }`
|
|
1737
1832
|
* - shorthand: a quoted phrase or a bare token NOT followed by a block —
|
|
1738
1833
|
* the legacy string-list form, parsed as a statement-only promise
|
|
1739
1834
|
* (empty id/target/conditions; the linter's C43 flags it as
|
|
@@ -1757,55 +1852,121 @@ function readPromises(block) {
|
|
|
1757
1852
|
statement: (0, tokenize_2.stripWrapping)(tok),
|
|
1758
1853
|
verifiedBy: [],
|
|
1759
1854
|
source: null,
|
|
1855
|
+
certificate: null,
|
|
1760
1856
|
});
|
|
1761
1857
|
continue;
|
|
1762
1858
|
}
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1859
|
+
out.push(readPromiseEntry((0, field_parser_1.stripColon)(tok), (0, tokenize_2.unwrapBlock)(t[i++])));
|
|
1860
|
+
}
|
|
1861
|
+
return out;
|
|
1862
|
+
}
|
|
1863
|
+
/** The certificate print-projection obligation vocabulary (mandatory |
|
|
1864
|
+
* optional) — parse-enforced, the fail-closed precedent. */
|
|
1865
|
+
const PROMISE_CERTIFICATE_OBLIGATIONS = ['mandatory', 'optional'];
|
|
1866
|
+
/** Read a promise's `certificate { … }` block (smart TODO.roadmap/40
|
|
1867
|
+
* batch 3): the content-binding XOR (attribute | attributes | dimension
|
|
1868
|
+
* | none — the statement row) is check-enforced (C131); the obligation
|
|
1869
|
+
* vocabulary is parse-enforced. */
|
|
1870
|
+
function readPromiseCertificate(promiseId, block) {
|
|
1871
|
+
const cert = {
|
|
1872
|
+
attribute: '',
|
|
1873
|
+
attributes: [],
|
|
1874
|
+
dimension: '',
|
|
1875
|
+
type: '',
|
|
1876
|
+
label: '',
|
|
1877
|
+
obligation: '',
|
|
1878
|
+
};
|
|
1879
|
+
const t = (0, tokenize_1.default)(block);
|
|
1880
|
+
let i = 0;
|
|
1881
|
+
while (i < t.length) {
|
|
1882
|
+
const cmd = t[i++];
|
|
1883
|
+
if (i > t.length) {
|
|
1884
|
+
break;
|
|
1885
|
+
}
|
|
1886
|
+
if (cmd === 'attribute') {
|
|
1887
|
+
cert.attribute = (0, tokenize_2.stripWrapping)(t[i++]);
|
|
1888
|
+
}
|
|
1889
|
+
else if (cmd === 'attributes') {
|
|
1890
|
+
cert.attributes = readIdList(t[i++]);
|
|
1891
|
+
}
|
|
1892
|
+
else if (cmd === 'dimension') {
|
|
1893
|
+
cert.dimension = (0, tokenize_2.stripWrapping)(t[i++]);
|
|
1894
|
+
}
|
|
1895
|
+
else if (cmd === 'type') {
|
|
1896
|
+
cert.type = (0, tokenize_2.stripWrapping)(t[i++]);
|
|
1897
|
+
}
|
|
1898
|
+
else if (cmd === 'label') {
|
|
1899
|
+
cert.label = (0, tokenize_2.stripWrapping)(t[i++]);
|
|
1900
|
+
}
|
|
1901
|
+
else if (cmd === 'obligation') {
|
|
1902
|
+
const o = (0, tokenize_2.stripWrapping)(t[i++]);
|
|
1903
|
+
if (!PROMISE_CERTIFICATE_OBLIGATIONS.includes(o)) {
|
|
1904
|
+
throw new Error(`Parsing error: promise. ID ${promiseId}: Unknown certificate obligation "${o}" (valid: ${PROMISE_CERTIFICATE_OBLIGATIONS.join(', ')})`);
|
|
1804
1905
|
}
|
|
1906
|
+
cert.obligation = o;
|
|
1907
|
+
}
|
|
1908
|
+
else {
|
|
1909
|
+
(0, tokenize_2.unwrapBlock)(t[i++]);
|
|
1805
1910
|
}
|
|
1806
|
-
out.push(p);
|
|
1807
1911
|
}
|
|
1808
|
-
return
|
|
1912
|
+
return cert;
|
|
1913
|
+
}
|
|
1914
|
+
/**
|
|
1915
|
+
* Read ONE rich promise entry body (`target … level … conditions …
|
|
1916
|
+
* statement … verified_by { … } source { … } certificate { … }`).
|
|
1917
|
+
* Exported for the promise_set register (config/promiseSet.ts, smart
|
|
1918
|
+
* TODO.roadmap/40 batch 3), which reuses the promise sub-grammar
|
|
1919
|
+
* verbatim.
|
|
1920
|
+
*/
|
|
1921
|
+
function readPromiseEntry(id, block) {
|
|
1922
|
+
const p = {
|
|
1923
|
+
id,
|
|
1924
|
+
target: '',
|
|
1925
|
+
level: null,
|
|
1926
|
+
conditions: '',
|
|
1927
|
+
statement: '',
|
|
1928
|
+
verifiedBy: [],
|
|
1929
|
+
source: null,
|
|
1930
|
+
certificate: null,
|
|
1931
|
+
};
|
|
1932
|
+
const inner = (0, tokenize_1.default)(block);
|
|
1933
|
+
let j = 0;
|
|
1934
|
+
while (j < inner.length) {
|
|
1935
|
+
const cmd = inner[j++];
|
|
1936
|
+
if (j >= inner.length) {
|
|
1937
|
+
break;
|
|
1938
|
+
}
|
|
1939
|
+
if (cmd === 'target') {
|
|
1940
|
+
p.target = (0, tokenize_2.stripWrapping)(inner[j++]);
|
|
1941
|
+
}
|
|
1942
|
+
else if (cmd === 'level') {
|
|
1943
|
+
const read = readPromiseLevel(inner, j);
|
|
1944
|
+
p.level = read.level;
|
|
1945
|
+
j = read.next;
|
|
1946
|
+
}
|
|
1947
|
+
else if (cmd === 'conditions') {
|
|
1948
|
+
// ocl{…} expressions reassemble across whitespace (readValueToken).
|
|
1949
|
+
const read = (0, field_parser_1.readValueToken)(inner, j);
|
|
1950
|
+
p.conditions = (0, tokenize_2.stripWrapping)(read.text);
|
|
1951
|
+
j = read.next;
|
|
1952
|
+
}
|
|
1953
|
+
else if (cmd === 'statement') {
|
|
1954
|
+
p.statement = (0, tokenize_2.stripWrapping)(inner[j++]);
|
|
1955
|
+
}
|
|
1956
|
+
else if (cmd === 'verified_by') {
|
|
1957
|
+
p.verifiedBy = readIdList(inner[j++]);
|
|
1958
|
+
}
|
|
1959
|
+
else if (cmd === 'source') {
|
|
1960
|
+
p.source = (0, field_parser_1.readSource)((0, tokenize_2.unwrapBlock)(inner[j++]));
|
|
1961
|
+
}
|
|
1962
|
+
else if (cmd === 'certificate') {
|
|
1963
|
+
p.certificate = readPromiseCertificate(p.id, (0, tokenize_2.unwrapBlock)(inner[j++]));
|
|
1964
|
+
}
|
|
1965
|
+
else {
|
|
1966
|
+
(0, tokenize_2.unwrapBlock)(inner[j++]);
|
|
1967
|
+
}
|
|
1968
|
+
}
|
|
1969
|
+
return p;
|
|
1809
1970
|
}
|
|
1810
1971
|
/** A promise carrying nothing but its prose statement (the shorthand form). */
|
|
1811
1972
|
function isStatementOnlyPromise(p) {
|
|
@@ -1814,7 +1975,8 @@ function isStatementOnlyPromise(p) {
|
|
|
1814
1975
|
!p.level &&
|
|
1815
1976
|
!p.conditions &&
|
|
1816
1977
|
p.verifiedBy.length === 0 &&
|
|
1817
|
-
!p.source
|
|
1978
|
+
!p.source &&
|
|
1979
|
+
!p.certificate);
|
|
1818
1980
|
}
|
|
1819
1981
|
function parseSubjectIs(block, result) {
|
|
1820
1982
|
const t = (0, tokenize_1.default)(block);
|
|
@@ -2131,6 +2293,68 @@ function dumpPromiseLevel(level) {
|
|
|
2131
2293
|
}
|
|
2132
2294
|
return (0, quantity_1.dumpQuantityBlock)(level.quantity ?? { value: '' });
|
|
2133
2295
|
}
|
|
2296
|
+
/** Dump a promise's certificate print projection (smart TODO.roadmap/40
|
|
2297
|
+
* batch 3) — facet order is the byte contract: attribute | attributes |
|
|
2298
|
+
* dimension, then type, label, obligation. */
|
|
2299
|
+
function dumpPromiseCertificate(cert, indent) {
|
|
2300
|
+
const facet = indent + ' ';
|
|
2301
|
+
let out = indent + 'certificate {\n';
|
|
2302
|
+
if (cert.attribute) {
|
|
2303
|
+
out += facet + 'attribute ' + (0, field_parser_1.dumpBareSafe)(cert.attribute) + '\n';
|
|
2304
|
+
}
|
|
2305
|
+
if (cert.attributes.length > 0) {
|
|
2306
|
+
out +=
|
|
2307
|
+
facet +
|
|
2308
|
+
'attributes { ' +
|
|
2309
|
+
cert.attributes.map(field_parser_1.dumpBareSafe).join(' ') +
|
|
2310
|
+
' }\n';
|
|
2311
|
+
}
|
|
2312
|
+
if (cert.dimension) {
|
|
2313
|
+
out += facet + 'dimension ' + (0, field_parser_1.dumpBareSafe)(cert.dimension) + '\n';
|
|
2314
|
+
}
|
|
2315
|
+
if (cert.type) {
|
|
2316
|
+
out += facet + 'type ' + (0, field_parser_1.dumpBareSafe)(cert.type) + '\n';
|
|
2317
|
+
}
|
|
2318
|
+
if (cert.label) {
|
|
2319
|
+
out += facet + 'label "' + (0, tokenize_2.escapeString)(cert.label) + '"\n';
|
|
2320
|
+
}
|
|
2321
|
+
if (cert.obligation) {
|
|
2322
|
+
out += facet + 'obligation ' + (0, field_parser_1.dumpBareSafe)(cert.obligation) + '\n';
|
|
2323
|
+
}
|
|
2324
|
+
out += indent + '}\n';
|
|
2325
|
+
return out;
|
|
2326
|
+
}
|
|
2327
|
+
/**
|
|
2328
|
+
* Dump ONE rich promise entry at the given indent — shared by
|
|
2329
|
+
* dumpSubjectPromises (is.promises) and the promise_set register
|
|
2330
|
+
* (config/promiseSet.ts, smart TODO.roadmap/40 batch 3), which prefixes
|
|
2331
|
+
* its entries with the `promise` keyword. Facet order is the byte
|
|
2332
|
+
* contract: target, level, conditions, statement, verified_by, source,
|
|
2333
|
+
* certificate.
|
|
2334
|
+
*/
|
|
2335
|
+
function dumpPromiseEntry(p, indent, keyword = '') {
|
|
2336
|
+
const facet = indent + ' ';
|
|
2337
|
+
let out = indent + keyword + (0, field_parser_1.dumpBareSafe)(p.id) + ' {\n';
|
|
2338
|
+
if (p.target) {
|
|
2339
|
+
out += facet + 'target ' + (0, field_parser_1.dumpBareSafe)(p.target) + '\n';
|
|
2340
|
+
}
|
|
2341
|
+
if (p.level) {
|
|
2342
|
+
out += facet + 'level ' + dumpPromiseLevel(p.level) + '\n';
|
|
2343
|
+
}
|
|
2344
|
+
if (p.conditions) {
|
|
2345
|
+
out += facet + 'conditions ' + dumpSubjectDerivation(p.conditions) + '\n';
|
|
2346
|
+
}
|
|
2347
|
+
if (p.statement) {
|
|
2348
|
+
out += facet + 'statement "' + (0, tokenize_2.escapeString)(p.statement) + '"\n';
|
|
2349
|
+
}
|
|
2350
|
+
out += dumpIdList('verified_by', p.verifiedBy, facet);
|
|
2351
|
+
out += dumpSource('source', p.source ?? null, facet);
|
|
2352
|
+
if (p.certificate) {
|
|
2353
|
+
out += dumpPromiseCertificate(p.certificate, facet);
|
|
2354
|
+
}
|
|
2355
|
+
out += indent + '}\n';
|
|
2356
|
+
return out;
|
|
2357
|
+
}
|
|
2134
2358
|
/**
|
|
2135
2359
|
* Dump is.promises (TODO.roadmap/08). Byte-compat with the legacy string
|
|
2136
2360
|
* list: a block of statement-only entries keeps the single-line form
|
|
@@ -2153,22 +2377,7 @@ function dumpSubjectPromises(promises) {
|
|
|
2153
2377
|
out += ' ' + (0, field_parser_1.dumpBareSafe)(p.statement) + '\n';
|
|
2154
2378
|
continue;
|
|
2155
2379
|
}
|
|
2156
|
-
out +=
|
|
2157
|
-
if (p.target) {
|
|
2158
|
-
out += ' target ' + (0, field_parser_1.dumpBareSafe)(p.target) + '\n';
|
|
2159
|
-
}
|
|
2160
|
-
if (p.level) {
|
|
2161
|
-
out += ' level ' + dumpPromiseLevel(p.level) + '\n';
|
|
2162
|
-
}
|
|
2163
|
-
if (p.conditions) {
|
|
2164
|
-
out += ' conditions ' + dumpSubjectDerivation(p.conditions) + '\n';
|
|
2165
|
-
}
|
|
2166
|
-
if (p.statement) {
|
|
2167
|
-
out += ' statement "' + (0, tokenize_2.escapeString)(p.statement) + '"\n';
|
|
2168
|
-
}
|
|
2169
|
-
out += dumpIdList('verified_by', p.verifiedBy, ' ');
|
|
2170
|
-
out += dumpSource('source', p.source ?? null, ' ');
|
|
2171
|
-
out += ' }\n';
|
|
2380
|
+
out += dumpPromiseEntry(p, ' ');
|
|
2172
2381
|
}
|
|
2173
2382
|
out += ' }\n';
|
|
2174
2383
|
return out;
|