@primmel/primmel 1.13.0 → 1.15.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.
Files changed (151) hide show
  1. package/dist/src/check-rules.d.ts.map +1 -1
  2. package/dist/src/check-rules.js +86 -0
  3. package/dist/src/check-rules.js.map +1 -1
  4. package/dist/src/check.d.ts.map +1 -1
  5. package/dist/src/check.js +805 -0
  6. package/dist/src/check.js.map +1 -1
  7. package/dist/src/model-diff.d.ts.map +1 -1
  8. package/dist/src/model-diff.js +38 -0
  9. package/dist/src/model-diff.js.map +1 -1
  10. package/dist/src/ser-des/config/applicationDeclaration.d.ts +5 -0
  11. package/dist/src/ser-des/config/applicationDeclaration.d.ts.map +1 -0
  12. package/dist/src/ser-des/config/applicationDeclaration.js +102 -0
  13. package/dist/src/ser-des/config/applicationDeclaration.js.map +1 -0
  14. package/dist/src/ser-des/config/approval.d.ts.map +1 -1
  15. package/dist/src/ser-des/config/approval.js +56 -9
  16. package/dist/src/ser-des/config/approval.js.map +1 -1
  17. package/dist/src/ser-des/config/aspect.d.ts +5 -0
  18. package/dist/src/ser-des/config/aspect.d.ts.map +1 -0
  19. package/dist/src/ser-des/config/aspect.js +128 -0
  20. package/dist/src/ser-des/config/aspect.js.map +1 -0
  21. package/dist/src/ser-des/config/calculationContext.d.ts +5 -0
  22. package/dist/src/ser-des/config/calculationContext.d.ts.map +1 -0
  23. package/dist/src/ser-des/config/calculationContext.js +62 -0
  24. package/dist/src/ser-des/config/calculationContext.js.map +1 -0
  25. package/dist/src/ser-des/config/certificateTemplate.d.ts +5 -0
  26. package/dist/src/ser-des/config/certificateTemplate.d.ts.map +1 -0
  27. package/dist/src/ser-des/config/certificateTemplate.js +195 -0
  28. package/dist/src/ser-des/config/certificateTemplate.js.map +1 -0
  29. package/dist/src/ser-des/config/evaluationDimension.d.ts +5 -0
  30. package/dist/src/ser-des/config/evaluationDimension.d.ts.map +1 -0
  31. package/dist/src/ser-des/config/evaluationDimension.js +128 -0
  32. package/dist/src/ser-des/config/evaluationDimension.js.map +1 -0
  33. package/dist/src/ser-des/config/evaluationProfile.d.ts +5 -0
  34. package/dist/src/ser-des/config/evaluationProfile.d.ts.map +1 -0
  35. package/dist/src/ser-des/config/evaluationProfile.js +61 -0
  36. package/dist/src/ser-des/config/evaluationProfile.js.map +1 -0
  37. package/dist/src/ser-des/config/gateway.d.ts.map +1 -1
  38. package/dist/src/ser-des/config/gateway.js +57 -0
  39. package/dist/src/ser-des/config/gateway.js.map +1 -1
  40. package/dist/src/ser-des/config/identitySlot.d.ts +5 -0
  41. package/dist/src/ser-des/config/identitySlot.d.ts.map +1 -0
  42. package/dist/src/ser-des/config/identitySlot.js +120 -0
  43. package/dist/src/ser-des/config/identitySlot.js.map +1 -0
  44. package/dist/src/ser-des/config/index.d.ts.map +1 -1
  45. package/dist/src/ser-des/config/index.js +159 -0
  46. package/dist/src/ser-des/config/index.js.map +1 -1
  47. package/dist/src/ser-des/config/process.d.ts.map +1 -1
  48. package/dist/src/ser-des/config/process.js +46 -0
  49. package/dist/src/ser-des/config/process.js.map +1 -1
  50. package/dist/src/ser-des/config/promiseSet.d.ts +5 -0
  51. package/dist/src/ser-des/config/promiseSet.d.ts.map +1 -0
  52. package/dist/src/ser-des/config/promiseSet.js +46 -0
  53. package/dist/src/ser-des/config/promiseSet.js.map +1 -0
  54. package/dist/src/ser-des/config/selectionRules.d.ts +9 -0
  55. package/dist/src/ser-des/config/selectionRules.d.ts.map +1 -0
  56. package/dist/src/ser-des/config/selectionRules.js +372 -0
  57. package/dist/src/ser-des/config/selectionRules.js.map +1 -0
  58. package/dist/src/ser-des/config/subject.d.ts +18 -1
  59. package/dist/src/ser-des/config/subject.d.ts.map +1 -1
  60. package/dist/src/ser-des/config/subject.js +177 -61
  61. package/dist/src/ser-des/config/subject.js.map +1 -1
  62. package/dist/src/ser-des/config/testReport.d.ts +7 -0
  63. package/dist/src/ser-des/config/testReport.d.ts.map +1 -0
  64. package/dist/src/ser-des/config/testReport.js +322 -0
  65. package/dist/src/ser-des/config/testReport.js.map +1 -0
  66. package/dist/src/ser-des/config/verificationPathway.d.ts +5 -0
  67. package/dist/src/ser-des/config/verificationPathway.d.ts.map +1 -0
  68. package/dist/src/ser-des/config/verificationPathway.js +361 -0
  69. package/dist/src/ser-des/config/verificationPathway.js.map +1 -0
  70. package/dist/src/ser-des/config/workflowConfig.d.ts +5 -0
  71. package/dist/src/ser-des/config/workflowConfig.d.ts.map +1 -0
  72. package/dist/src/ser-des/config/workflowConfig.js +129 -0
  73. package/dist/src/ser-des/config/workflowConfig.js.map +1 -0
  74. package/dist/src/ser-des/config/workflowStage.d.ts +5 -0
  75. package/dist/src/ser-des/config/workflowStage.d.ts.map +1 -0
  76. package/dist/src/ser-des/config/workflowStage.js +96 -0
  77. package/dist/src/ser-des/config/workflowStage.js.map +1 -0
  78. package/dist/src/ser-des/package.d.ts +10 -0
  79. package/dist/src/ser-des/package.d.ts.map +1 -1
  80. package/dist/src/ser-des/package.js +164 -12
  81. package/dist/src/ser-des/package.js.map +1 -1
  82. package/dist/src/ser-des/parse.d.ts.map +1 -1
  83. package/dist/src/ser-des/parse.js +26 -0
  84. package/dist/src/ser-des/parse.js.map +1 -1
  85. package/dist/src/ser-des/types.d.ts +29 -0
  86. package/dist/src/ser-des/types.d.ts.map +1 -1
  87. package/dist/src/types/ApplicationDeclaration.d.ts +23 -0
  88. package/dist/src/types/ApplicationDeclaration.d.ts.map +1 -0
  89. package/dist/src/types/ApplicationDeclaration.js +32 -0
  90. package/dist/src/types/ApplicationDeclaration.js.map +1 -0
  91. package/dist/src/types/Approval.d.ts +5 -0
  92. package/dist/src/types/Approval.d.ts.map +1 -1
  93. package/dist/src/types/Aspect.d.ts +30 -0
  94. package/dist/src/types/Aspect.d.ts.map +1 -0
  95. package/dist/src/types/Aspect.js +41 -0
  96. package/dist/src/types/Aspect.js.map +1 -0
  97. package/dist/src/types/CalculationContext.d.ts +17 -0
  98. package/dist/src/types/CalculationContext.d.ts.map +1 -0
  99. package/dist/src/types/CalculationContext.js +34 -0
  100. package/dist/src/types/CalculationContext.js.map +1 -0
  101. package/dist/src/types/CertificateTemplate.d.ts +46 -0
  102. package/dist/src/types/CertificateTemplate.d.ts.map +1 -0
  103. package/dist/src/types/CertificateTemplate.js +46 -0
  104. package/dist/src/types/CertificateTemplate.js.map +1 -0
  105. package/dist/src/types/EvaluationDimension.d.ts +32 -0
  106. package/dist/src/types/EvaluationDimension.d.ts.map +1 -0
  107. package/dist/src/types/EvaluationDimension.js +38 -0
  108. package/dist/src/types/EvaluationDimension.js.map +1 -0
  109. package/dist/src/types/EvaluationProfile.d.ts +10 -0
  110. package/dist/src/types/EvaluationProfile.d.ts.map +1 -0
  111. package/dist/src/types/EvaluationProfile.js +25 -0
  112. package/dist/src/types/EvaluationProfile.js.map +1 -0
  113. package/dist/src/types/Gateway.d.ts +22 -0
  114. package/dist/src/types/Gateway.d.ts.map +1 -1
  115. package/dist/src/types/IdentitySlot.d.ts +24 -0
  116. package/dist/src/types/IdentitySlot.d.ts.map +1 -0
  117. package/dist/src/types/IdentitySlot.js +34 -0
  118. package/dist/src/types/IdentitySlot.js.map +1 -0
  119. package/dist/src/types/PromiseSet.d.ts +8 -0
  120. package/dist/src/types/PromiseSet.d.ts.map +1 -0
  121. package/dist/src/types/PromiseSet.js +35 -0
  122. package/dist/src/types/PromiseSet.js.map +1 -0
  123. package/dist/src/types/SelectionRules.d.ts +73 -0
  124. package/dist/src/types/SelectionRules.d.ts.map +1 -0
  125. package/dist/src/types/SelectionRules.js +55 -0
  126. package/dist/src/types/SelectionRules.js.map +1 -0
  127. package/dist/src/types/Standard.d.ts +58 -0
  128. package/dist/src/types/Standard.d.ts.map +1 -1
  129. package/dist/src/types/Subject.d.ts +31 -1
  130. package/dist/src/types/Subject.d.ts.map +1 -1
  131. package/dist/src/types/TestReport.d.ts +71 -0
  132. package/dist/src/types/TestReport.d.ts.map +1 -0
  133. package/dist/src/types/TestReport.js +73 -0
  134. package/dist/src/types/TestReport.js.map +1 -0
  135. package/dist/src/types/VerificationPathway.d.ts +63 -0
  136. package/dist/src/types/VerificationPathway.d.ts.map +1 -0
  137. package/dist/src/types/VerificationPathway.js +56 -0
  138. package/dist/src/types/VerificationPathway.js.map +1 -0
  139. package/dist/src/types/WorkflowConfig.d.ts +34 -0
  140. package/dist/src/types/WorkflowConfig.d.ts.map +1 -0
  141. package/dist/src/types/WorkflowConfig.js +47 -0
  142. package/dist/src/types/WorkflowConfig.js.map +1 -0
  143. package/dist/src/types/WorkflowStage.d.ts +22 -0
  144. package/dist/src/types/WorkflowStage.d.ts.map +1 -0
  145. package/dist/src/types/WorkflowStage.js +37 -0
  146. package/dist/src/types/WorkflowStage.js.map +1 -0
  147. package/dist/src/types/process.d.ts +21 -0
  148. package/dist/src/types/process.d.ts.map +1 -1
  149. package/dist-browser/index.mjs +2215 -1025
  150. package/dist-cli/primmel.mjs +8589 -5285
  151. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aspect.js","sourceRoot":"","sources":["../../../../src/ser-des/config/aspect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Dumper, Parser } from '../types';
2
+ import CalculationContext from '../../types/CalculationContext';
3
+ export declare const parseCalculationContext: Parser;
4
+ export declare const dumpCalculationContext: Dumper<CalculationContext>;
5
+ //# sourceMappingURL=calculationContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculationContext.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/calculationContext.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAI/C,OAAO,kBAEN,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,uBAAuB,EAAE,MAuCrC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,kBAAkB,CAY7D,CAAC"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────
3
+ // `calculation_context` construct (smart TODO.roadmap/40 batch 3; the
4
+ // packages-as-SSOT epic) — the evaluation-side wiring of computation
5
+ // inputs to their subject-chain sources (types/CalculationContext.ts
6
+ // carries the banner and the grammar sketch). The source scalar stays
7
+ // parse-total (the legacy-token rejection is C133's, check-side); the
8
+ // codec stays total.
9
+ // ─────────────────────────────────────────────────────────────────────
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.dumpCalculationContext = exports.parseCalculationContext = void 0;
12
+ const tokenize_1 = require("../tokenize");
13
+ const parse_block_1 = require("../parse-block");
14
+ const field_parser_1 = require("./field-parser");
15
+ const parseCalculationContext = (id, data) => {
16
+ const context = { id, fields: [] };
17
+ (0, parse_block_1.forEachEntry)(data, (keyword, value) => {
18
+ if (keyword === 'field') {
19
+ const field = {
20
+ id: (0, tokenize_1.stripWrapping)((0, field_parser_1.stripColon)(value())),
21
+ source: '',
22
+ expression: '',
23
+ };
24
+ (0, parse_block_1.forEachEntry)((0, tokenize_1.unwrapBlock)(value()), (k2, v2) => {
25
+ if (k2 === 'source') {
26
+ field.source = (0, tokenize_1.stripWrapping)(v2());
27
+ }
28
+ else if (k2 === 'expression') {
29
+ field.expression = (0, tokenize_1.stripWrapping)(v2());
30
+ }
31
+ else {
32
+ return false;
33
+ }
34
+ return true;
35
+ }, { construct: 'calculation_context', id });
36
+ context.fields.push(field);
37
+ }
38
+ else {
39
+ return false;
40
+ }
41
+ return true;
42
+ }, { construct: 'calculation_context', id });
43
+ return ctx => {
44
+ ctx.calculationContexts[id] = context;
45
+ return ctx;
46
+ };
47
+ };
48
+ exports.parseCalculationContext = parseCalculationContext;
49
+ const dumpCalculationContext = function (c) {
50
+ let out = 'calculation_context ' + (0, field_parser_1.dumpBareSafe)(c.id) + ' {\n';
51
+ for (const f of c.fields) {
52
+ let entry = ' field ' + (0, field_parser_1.dumpBareSafe)(f.id) + ' { source ' + (0, field_parser_1.dumpBareSafe)(f.source);
53
+ if (f.expression) {
54
+ entry += ' expression "' + (0, tokenize_1.escapeString)(f.expression) + '"';
55
+ }
56
+ out += entry + ' }\n';
57
+ }
58
+ out += '}\n';
59
+ return out;
60
+ };
61
+ exports.dumpCalculationContext = dumpCalculationContext;
62
+ //# sourceMappingURL=calculationContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculationContext.js","sourceRoot":"","sources":["../../../../src/ser-des/config/calculationContext.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,sEAAsE;AACtE,qEAAqE;AACrE,qEAAqE;AACrE,sEAAsE;AACtE,sEAAsE;AACtE,qBAAqB;AACrB,wEAAwE;;;AAGxE,0CAAuE;AACvE,gDAA8C;AAC9C,iDAA0D;AAKnD,MAAM,uBAAuB,GAAW,CAAC,EAAU,EAAE,IAAY,EAAE,EAAE;IAC1E,MAAM,OAAO,GAAuB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAEvD,IAAA,0BAAY,EACV,IAAI,EACJ,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACjB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,KAAK,GAA4B;gBACrC,EAAE,EAAE,IAAA,wBAAa,EAAC,IAAA,yBAAU,EAAC,KAAK,EAAE,CAAC,CAAC;gBACtC,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,EAAE;aACf,CAAC;YACF,IAAA,0BAAY,EACV,IAAA,sBAAW,EAAC,KAAK,EAAE,CAAC,EACpB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;gBACT,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;oBACpB,KAAK,CAAC,MAAM,GAAG,IAAA,wBAAa,EAAC,EAAE,EAAE,CAAC,CAAC;gBACrC,CAAC;qBAAM,IAAI,EAAE,KAAK,YAAY,EAAE,CAAC;oBAC/B,KAAK,CAAC,UAAU,GAAG,IAAA,wBAAa,EAAC,EAAE,EAAE,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,EACD,EAAE,SAAS,EAAE,qBAAqB,EAAE,EAAE,EAAE,CACzC,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,EAAE,SAAS,EAAE,qBAAqB,EAAE,EAAE,EAAE,CACzC,CAAC;IAEF,OAAO,GAAG,CAAC,EAAE;QACX,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;QACtC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,CAAC;AAvCW,QAAA,uBAAuB,2BAuClC;AAEK,MAAM,sBAAsB,GAA+B,UAAU,CAAC;IAC3E,IAAI,GAAG,GAAW,sBAAsB,GAAG,IAAA,2BAAY,EAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;IACvE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,KAAK,GACP,UAAU,GAAG,IAAA,2BAAY,EAAC,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,GAAG,IAAA,2BAAY,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YACjB,KAAK,IAAI,eAAe,GAAG,IAAA,uBAAY,EAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;QAC9D,CAAC;QACD,GAAG,IAAI,KAAK,GAAG,MAAM,CAAC;IACxB,CAAC;IACD,GAAG,IAAI,KAAK,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAZW,QAAA,sBAAsB,0BAYjC"}
@@ -0,0 +1,5 @@
1
+ import type { Dumper, Parser } from '../types';
2
+ import CertificateTemplate from '../../types/CertificateTemplate';
3
+ export declare const parseCertificateTemplate: Parser;
4
+ export declare const dumpCertificateTemplate: Dumper<CertificateTemplate>;
5
+ //# sourceMappingURL=certificateTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificateTemplate.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/certificateTemplate.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQ/C,OAAO,mBAGN,MAAM,iCAAiC,CAAC;AAWzC,eAAO,MAAM,wBAAwB,EAAE,MA+GtC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,mBAAmB,CA+D/D,CAAC"}
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────
3
+ // `certificate_template` construct (smart TODO.roadmap/40 batch 3; the
4
+ // packages-as-SSOT epic) — the certificate rendering contract
5
+ // (types/CertificateTemplate.ts carries the banner and the grammar
6
+ // sketch). The obligation vocabulary is parse-enforced (the fail-closed
7
+ // precedent); the characteristic type vocabulary and every reference
8
+ // resolution are check-enforced (C136) — the codec stays total.
9
+ // ─────────────────────────────────────────────────────────────────────
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.dumpCertificateTemplate = exports.parseCertificateTemplate = void 0;
12
+ const tokenize_1 = require("../tokenize");
13
+ const parse_block_1 = require("../parse-block");
14
+ const field_parser_1 = require("./field-parser");
15
+ const CERTIFICATE_OBLIGATIONS = ['mandatory', 'optional'];
16
+ function readIdList(block) {
17
+ return (0, tokenize_1.default)((0, tokenize_1.stripWrapping)(block))
18
+ .map(field_parser_1.stripColon)
19
+ .map(tokenize_1.stripWrapping)
20
+ .filter(s => s.length > 0);
21
+ }
22
+ const parseCertificateTemplate = (id, data) => {
23
+ const template = {
24
+ id,
25
+ numberFormat: '',
26
+ dimensionLabels: null,
27
+ characteristics: [],
28
+ anrSection: null,
29
+ };
30
+ (0, parse_block_1.forEachEntry)(data, (keyword, value) => {
31
+ if (keyword === 'number_format') {
32
+ template.numberFormat = (0, tokenize_1.stripWrapping)(value());
33
+ }
34
+ else if (keyword === 'dimension_labels') {
35
+ const labels = { pattern: '', separator: '' };
36
+ (0, parse_block_1.forEachEntry)((0, tokenize_1.unwrapBlock)(value()), (k2, v2) => {
37
+ if (k2 === 'pattern') {
38
+ labels.pattern = (0, tokenize_1.stripWrapping)(v2());
39
+ }
40
+ else if (k2 === 'separator') {
41
+ labels.separator = (0, tokenize_1.stripWrapping)(v2());
42
+ }
43
+ else {
44
+ return false;
45
+ }
46
+ return true;
47
+ }, { construct: 'certificate_template', id });
48
+ template.dimensionLabels = labels;
49
+ }
50
+ else if (keyword === 'characteristic') {
51
+ const c = {
52
+ id: (0, tokenize_1.stripWrapping)((0, field_parser_1.stripColon)(value())),
53
+ type: '',
54
+ label: '',
55
+ attribute: '',
56
+ attributes: [],
57
+ dimension: '',
58
+ obligation: '',
59
+ };
60
+ (0, parse_block_1.forEachEntry)((0, tokenize_1.unwrapBlock)(value()), (k2, v2) => {
61
+ if (k2 === 'type') {
62
+ c.type = (0, tokenize_1.stripWrapping)(v2());
63
+ }
64
+ else if (k2 === 'label') {
65
+ c.label = (0, tokenize_1.stripWrapping)(v2());
66
+ }
67
+ else if (k2 === 'attribute') {
68
+ c.attribute = (0, tokenize_1.stripWrapping)(v2());
69
+ }
70
+ else if (k2 === 'attributes') {
71
+ c.attributes = readIdList(v2());
72
+ }
73
+ else if (k2 === 'dimension') {
74
+ c.dimension = (0, tokenize_1.stripWrapping)(v2());
75
+ }
76
+ else if (k2 === 'obligation') {
77
+ const o = (0, tokenize_1.stripWrapping)(v2());
78
+ if (!CERTIFICATE_OBLIGATIONS.includes(o)) {
79
+ throw new Error(`Parsing error: certificate_template. ID ${id}: Unknown obligation "${o}" (valid: ${CERTIFICATE_OBLIGATIONS.join(', ')})`);
80
+ }
81
+ c.obligation = o;
82
+ }
83
+ else {
84
+ return false;
85
+ }
86
+ return true;
87
+ }, { construct: 'certificate_template', id });
88
+ template.characteristics.push(c);
89
+ }
90
+ else if (keyword === 'anr_section') {
91
+ const anr = {
92
+ title: '',
93
+ coveredLabel: '',
94
+ notEvaluatedLabel: '',
95
+ pendingLabel: '',
96
+ noneTargetedNote: '',
97
+ };
98
+ (0, parse_block_1.forEachEntry)((0, tokenize_1.unwrapBlock)(value()), (k2, v2) => {
99
+ if (k2 === 'title') {
100
+ anr.title = (0, tokenize_1.stripWrapping)(v2());
101
+ }
102
+ else if (k2 === 'covered_label') {
103
+ anr.coveredLabel = (0, tokenize_1.stripWrapping)(v2());
104
+ }
105
+ else if (k2 === 'not_evaluated_label') {
106
+ anr.notEvaluatedLabel = (0, tokenize_1.stripWrapping)(v2());
107
+ }
108
+ else if (k2 === 'pending_label') {
109
+ anr.pendingLabel = (0, tokenize_1.stripWrapping)(v2());
110
+ }
111
+ else if (k2 === 'none_targeted_note') {
112
+ anr.noneTargetedNote = (0, tokenize_1.stripWrapping)(v2());
113
+ }
114
+ else {
115
+ return false;
116
+ }
117
+ return true;
118
+ }, { construct: 'certificate_template', id });
119
+ template.anrSection = anr;
120
+ }
121
+ else {
122
+ return false;
123
+ }
124
+ return true;
125
+ }, { construct: 'certificate_template', id });
126
+ return ctx => {
127
+ ctx.certificateTemplates[id] = template;
128
+ return ctx;
129
+ };
130
+ };
131
+ exports.parseCertificateTemplate = parseCertificateTemplate;
132
+ const dumpCertificateTemplate = function (t) {
133
+ let out = 'certificate_template ' + (0, field_parser_1.dumpBareSafe)(t.id) + ' {\n';
134
+ if (t.numberFormat) {
135
+ out += ' number_format "' + (0, tokenize_1.escapeString)(t.numberFormat) + '"\n';
136
+ }
137
+ if (t.dimensionLabels) {
138
+ out += ' dimension_labels {\n';
139
+ out += ' pattern "' + (0, tokenize_1.escapeString)(t.dimensionLabels.pattern) + '"\n';
140
+ if (t.dimensionLabels.separator) {
141
+ out +=
142
+ ' separator "' + (0, tokenize_1.escapeString)(t.dimensionLabels.separator) + '"\n';
143
+ }
144
+ out += ' }\n';
145
+ }
146
+ for (const c of t.characteristics) {
147
+ out += ' characteristic ' + (0, field_parser_1.dumpBareSafe)(c.id) + ' {\n';
148
+ if (c.type) {
149
+ out += ' type ' + (0, field_parser_1.dumpBareSafe)(c.type) + '\n';
150
+ }
151
+ if (c.label) {
152
+ out += ' label "' + (0, tokenize_1.escapeString)(c.label) + '"\n';
153
+ }
154
+ if (c.attribute) {
155
+ out += ' attribute ' + (0, field_parser_1.dumpBareSafe)(c.attribute) + '\n';
156
+ }
157
+ if (c.attributes.length > 0) {
158
+ out +=
159
+ ' attributes { ' + c.attributes.map(field_parser_1.dumpBareSafe).join(' ') + ' }\n';
160
+ }
161
+ if (c.dimension) {
162
+ out += ' dimension ' + (0, field_parser_1.dumpBareSafe)(c.dimension) + '\n';
163
+ }
164
+ if (c.obligation) {
165
+ out += ' obligation ' + c.obligation + '\n';
166
+ }
167
+ out += ' }\n';
168
+ }
169
+ if (t.anrSection) {
170
+ const a = t.anrSection;
171
+ out += ' anr_section {\n';
172
+ if (a.title) {
173
+ out += ' title "' + (0, tokenize_1.escapeString)(a.title) + '"\n';
174
+ }
175
+ if (a.coveredLabel) {
176
+ out += ' covered_label "' + (0, tokenize_1.escapeString)(a.coveredLabel) + '"\n';
177
+ }
178
+ if (a.notEvaluatedLabel) {
179
+ out +=
180
+ ' not_evaluated_label "' + (0, tokenize_1.escapeString)(a.notEvaluatedLabel) + '"\n';
181
+ }
182
+ if (a.pendingLabel) {
183
+ out += ' pending_label "' + (0, tokenize_1.escapeString)(a.pendingLabel) + '"\n';
184
+ }
185
+ if (a.noneTargetedNote) {
186
+ out +=
187
+ ' none_targeted_note "' + (0, tokenize_1.escapeString)(a.noneTargetedNote) + '"\n';
188
+ }
189
+ out += ' }\n';
190
+ }
191
+ out += '}\n';
192
+ return out;
193
+ };
194
+ exports.dumpCertificateTemplate = dumpCertificateTemplate;
195
+ //# sourceMappingURL=certificateTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificateTemplate.js","sourceRoot":"","sources":["../../../../src/ser-des/config/certificateTemplate.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,uEAAuE;AACvE,8DAA8D;AAC9D,mEAAmE;AACnE,wEAAwE;AACxE,qEAAqE;AACrE,gEAAgE;AAChE,wEAAwE;;;AAGxE,0CAIqB;AACrB,gDAA8C;AAC9C,iDAA0D;AAM1D,MAAM,uBAAuB,GAAG,CAAC,WAAW,EAAE,UAAU,CAAU,CAAC;AAEnE,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAA,kBAAQ,EAAC,IAAA,wBAAa,EAAC,KAAK,CAAC,CAAC;SAClC,GAAG,CAAC,yBAAU,CAAC;SACf,GAAG,CAAC,wBAAa,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/B,CAAC;AAEM,MAAM,wBAAwB,GAAW,CAAC,EAAU,EAAE,IAAY,EAAE,EAAE;IAC3E,MAAM,QAAQ,GAAwB;QACpC,EAAE;QACF,YAAY,EAAE,EAAE;QAChB,eAAe,EAAE,IAAI;QACrB,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE,IAAI;KACjB,CAAC;IAEF,IAAA,0BAAY,EACV,IAAI,EACJ,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACjB,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;YAChC,QAAQ,CAAC,YAAY,GAAG,IAAA,wBAAa,EAAC,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,OAAO,KAAK,kBAAkB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;YAC9C,IAAA,0BAAY,EACV,IAAA,sBAAW,EAAC,KAAK,EAAE,CAAC,EACpB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;gBACT,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;oBACrB,MAAM,CAAC,OAAO,GAAG,IAAA,wBAAa,EAAC,EAAE,EAAE,CAAC,CAAC;gBACvC,CAAC;qBAAM,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;oBAC9B,MAAM,CAAC,SAAS,GAAG,IAAA,wBAAa,EAAC,EAAE,EAAE,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,EACD,EAAE,SAAS,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAC1C,CAAC;YACF,QAAQ,CAAC,eAAe,GAAG,MAAM,CAAC;QACpC,CAAC;aAAM,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;YACxC,MAAM,CAAC,GAA8B;gBACnC,EAAE,EAAE,IAAA,wBAAa,EAAC,IAAA,yBAAU,EAAC,KAAK,EAAE,CAAC,CAAC;gBACtC,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,EAAE;aACf,CAAC;YACF,IAAA,0BAAY,EACV,IAAA,sBAAW,EAAC,KAAK,EAAE,CAAC,EACpB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;gBACT,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;oBAClB,CAAC,CAAC,IAAI,GAAG,IAAA,wBAAa,EAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,CAAC;qBAAM,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;oBAC1B,CAAC,CAAC,KAAK,GAAG,IAAA,wBAAa,EAAC,EAAE,EAAE,CAAC,CAAC;gBAChC,CAAC;qBAAM,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;oBAC9B,CAAC,CAAC,SAAS,GAAG,IAAA,wBAAa,EAAC,EAAE,EAAE,CAAC,CAAC;gBACpC,CAAC;qBAAM,IAAI,EAAE,KAAK,YAAY,EAAE,CAAC;oBAC/B,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,CAAC;qBAAM,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;oBAC9B,CAAC,CAAC,SAAS,GAAG,IAAA,wBAAa,EAAC,EAAE,EAAE,CAAC,CAAC;gBACpC,CAAC;qBAAM,IAAI,EAAE,KAAK,YAAY,EAAE,CAAC;oBAC/B,MAAM,CAAC,GAAG,IAAA,wBAAa,EAAC,EAAE,EAAE,CAAC,CAAC;oBAC9B,IAAI,CAAE,uBAA6C,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChE,MAAM,IAAI,KAAK,CACb,2CAA2C,EAAE,yBAAyB,CAAC,aAAa,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC1H,CAAC;oBACJ,CAAC;oBACD,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,EACD,EAAE,SAAS,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAC1C,CAAC;YACF,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;YACrC,MAAM,GAAG,GAA0B;gBACjC,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,EAAE;gBAChB,iBAAiB,EAAE,EAAE;gBACrB,YAAY,EAAE,EAAE;gBAChB,gBAAgB,EAAE,EAAE;aACrB,CAAC;YACF,IAAA,0BAAY,EACV,IAAA,sBAAW,EAAC,KAAK,EAAE,CAAC,EACpB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;gBACT,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;oBACnB,GAAG,CAAC,KAAK,GAAG,IAAA,wBAAa,EAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,CAAC;qBAAM,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;oBAClC,GAAG,CAAC,YAAY,GAAG,IAAA,wBAAa,EAAC,EAAE,EAAE,CAAC,CAAC;gBACzC,CAAC;qBAAM,IAAI,EAAE,KAAK,qBAAqB,EAAE,CAAC;oBACxC,GAAG,CAAC,iBAAiB,GAAG,IAAA,wBAAa,EAAC,EAAE,EAAE,CAAC,CAAC;gBAC9C,CAAC;qBAAM,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;oBAClC,GAAG,CAAC,YAAY,GAAG,IAAA,wBAAa,EAAC,EAAE,EAAE,CAAC,CAAC;gBACzC,CAAC;qBAAM,IAAI,EAAE,KAAK,oBAAoB,EAAE,CAAC;oBACvC,GAAG,CAAC,gBAAgB,GAAG,IAAA,wBAAa,EAAC,EAAE,EAAE,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,EACD,EAAE,SAAS,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAC1C,CAAC;YACF,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,EAAE,SAAS,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAC1C,CAAC;IAEF,OAAO,GAAG,CAAC,EAAE;QACX,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,CAAC;AA/GW,QAAA,wBAAwB,4BA+GnC;AAEK,MAAM,uBAAuB,GAAgC,UAClE,CAAC;IAED,IAAI,GAAG,GAAW,uBAAuB,GAAG,IAAA,2BAAY,EAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;IACxE,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;QACnB,GAAG,IAAI,mBAAmB,GAAG,IAAA,uBAAY,EAAC,CAAC,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;QACtB,GAAG,IAAI,wBAAwB,CAAC;QAChC,GAAG,IAAI,eAAe,GAAG,IAAA,uBAAY,EAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QACzE,IAAI,CAAC,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;YAChC,GAAG;gBACD,iBAAiB,GAAG,IAAA,uBAAY,EAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QAC1E,CAAC;QACD,GAAG,IAAI,OAAO,CAAC;IACjB,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;QAClC,GAAG,IAAI,mBAAmB,GAAG,IAAA,2BAAY,EAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QACzD,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACX,GAAG,IAAI,WAAW,GAAG,IAAA,2BAAY,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACZ,GAAG,IAAI,aAAa,GAAG,IAAA,uBAAY,EAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,IAAI,gBAAgB,GAAG,IAAA,2BAAY,EAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,GAAG;gBACD,mBAAmB,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,2BAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QAC5E,CAAC;QACD,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,IAAI,gBAAgB,GAAG,IAAA,2BAAY,EAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YACjB,GAAG,IAAI,iBAAiB,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;QACjD,CAAC;QACD,GAAG,IAAI,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;QACvB,GAAG,IAAI,mBAAmB,CAAC;QAC3B,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACZ,GAAG,IAAI,aAAa,GAAG,IAAA,uBAAY,EAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YACnB,GAAG,IAAI,qBAAqB,GAAG,IAAA,uBAAY,EAAC,CAAC,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC;YACxB,GAAG;gBACD,2BAA2B,GAAG,IAAA,uBAAY,EAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC;QAC5E,CAAC;QACD,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YACnB,GAAG,IAAI,qBAAqB,GAAG,IAAA,uBAAY,EAAC,CAAC,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACvB,GAAG;gBACD,0BAA0B,GAAG,IAAA,uBAAY,EAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;QAC1E,CAAC;QACD,GAAG,IAAI,OAAO,CAAC;IACjB,CAAC;IACD,GAAG,IAAI,KAAK,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AA/DW,QAAA,uBAAuB,2BA+DlC"}
@@ -0,0 +1,5 @@
1
+ import type { Dumper, Parser } from '../types';
2
+ import EvaluationDimensions from '../../types/EvaluationDimension';
3
+ export declare const parseEvaluationDimensions: Parser;
4
+ export declare const dumpEvaluationDimensions: Dumper<EvaluationDimensions>;
5
+ //# sourceMappingURL=evaluationDimension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluationDimension.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/evaluationDimension.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAI/C,OAAO,oBAEN,MAAM,iCAAiC,CAAC;AAoBzC,eAAO,MAAM,yBAAyB,EAAE,MAsEvC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,oBAAoB,CA8BjE,CAAC"}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────
3
+ // `evaluation_dimensions` construct (smart TODO.roadmap/40 batch 3; the
4
+ // packages-as-SSOT epic) — the form-facing classification field schema
5
+ // (types/EvaluationDimension.ts carries the banner and the grammar
6
+ // sketch). The type and setting vocabularies are parse-enforced (the
7
+ // fail-closed precedent); the enum/field-name resolutions are
8
+ // check-enforced (C134) — the codec stays total. `per_channel` is
9
+ // deliberately absent (the owner-settled single home is kernel
10
+ // Instrument.perChannel).
11
+ // ─────────────────────────────────────────────────────────────────────
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.dumpEvaluationDimensions = exports.parseEvaluationDimensions = void 0;
14
+ const tokenize_1 = require("../tokenize");
15
+ const parse_block_1 = require("../parse-block");
16
+ const field_parser_1 = require("./field-parser");
17
+ const EVALUATION_FIELD_TYPES = [
18
+ 'integer',
19
+ 'number',
20
+ 'string',
21
+ 'text',
22
+ 'boolean',
23
+ 'date',
24
+ ];
25
+ const EVALUATION_FIELD_SETTINGS = [
26
+ 'MUST',
27
+ 'SHALL',
28
+ 'RECOMMEND',
29
+ 'SHOULD',
30
+ 'MAY',
31
+ 'OPTIONAL',
32
+ ];
33
+ const parseEvaluationDimensions = (id, data) => {
34
+ const dims = { id, label: '', fields: [] };
35
+ (0, parse_block_1.forEachEntry)(data, (keyword, value) => {
36
+ if (keyword === 'label') {
37
+ dims.label = (0, tokenize_1.stripWrapping)(value());
38
+ }
39
+ else if (keyword === 'field') {
40
+ const field = {
41
+ id: (0, tokenize_1.stripWrapping)((0, field_parser_1.stripColon)(value())),
42
+ label: '',
43
+ type: '',
44
+ enumRef: '',
45
+ required: false,
46
+ editable: true,
47
+ setting: '',
48
+ multiple: false,
49
+ };
50
+ (0, parse_block_1.forEachEntry)((0, tokenize_1.unwrapBlock)(value()), (k2, v2) => {
51
+ if (k2 === 'label') {
52
+ field.label = (0, tokenize_1.stripWrapping)(v2());
53
+ }
54
+ else if (k2 === 'type') {
55
+ const t = (0, tokenize_1.stripWrapping)(v2());
56
+ if (!EVALUATION_FIELD_TYPES.includes(t)) {
57
+ throw new Error(`Parsing error: evaluation_dimensions. ID ${id}: Unknown field type "${t}" (valid: ${EVALUATION_FIELD_TYPES.join(', ')})`);
58
+ }
59
+ field.type = t;
60
+ }
61
+ else if (k2 === 'enum') {
62
+ field.enumRef = (0, tokenize_1.stripWrapping)(v2());
63
+ }
64
+ else if (k2 === 'required') {
65
+ field.required = v2() === 'true';
66
+ }
67
+ else if (k2 === 'editable') {
68
+ field.editable = v2() === 'true';
69
+ }
70
+ else if (k2 === 'setting') {
71
+ const s = (0, tokenize_1.stripWrapping)(v2());
72
+ if (!EVALUATION_FIELD_SETTINGS.includes(s)) {
73
+ throw new Error(`Parsing error: evaluation_dimensions. ID ${id}: Unknown setting "${s}" (valid: ${EVALUATION_FIELD_SETTINGS.join(', ')})`);
74
+ }
75
+ field.setting = s;
76
+ }
77
+ else if (k2 === 'multiple') {
78
+ field.multiple = v2() === 'true';
79
+ }
80
+ else {
81
+ return false;
82
+ }
83
+ return true;
84
+ }, { construct: 'evaluation_dimensions', id });
85
+ dims.fields.push(field);
86
+ }
87
+ else {
88
+ return false;
89
+ }
90
+ return true;
91
+ }, { construct: 'evaluation_dimensions', id });
92
+ return ctx => {
93
+ ctx.evaluationDimensions[id] = dims;
94
+ return ctx;
95
+ };
96
+ };
97
+ exports.parseEvaluationDimensions = parseEvaluationDimensions;
98
+ const dumpEvaluationDimensions = function (d) {
99
+ let out = 'evaluation_dimensions ' + (0, field_parser_1.dumpBareSafe)(d.id) + ' {\n';
100
+ if (d.label) {
101
+ out += ' label "' + (0, tokenize_1.escapeString)(d.label) + '"\n';
102
+ }
103
+ for (const f of d.fields) {
104
+ out += ' field ' + (0, field_parser_1.dumpBareSafe)(f.id) + ' {\n';
105
+ if (f.label) {
106
+ out += ' label "' + (0, tokenize_1.escapeString)(f.label) + '"\n';
107
+ }
108
+ if (f.type) {
109
+ out += ' type ' + (0, field_parser_1.dumpBareSafe)(f.type) + '\n';
110
+ }
111
+ if (f.enumRef) {
112
+ out += ' enum ' + (0, field_parser_1.dumpBareSafe)(f.enumRef) + '\n';
113
+ }
114
+ out += ' required ' + (f.required ? 'true' : 'false') + '\n';
115
+ out += ' editable ' + (f.editable ? 'true' : 'false') + '\n';
116
+ if (f.setting) {
117
+ out += ' setting ' + (0, field_parser_1.dumpBareSafe)(f.setting) + '\n';
118
+ }
119
+ if (f.multiple) {
120
+ out += ' multiple true\n';
121
+ }
122
+ out += ' }\n';
123
+ }
124
+ out += '}\n';
125
+ return out;
126
+ };
127
+ exports.dumpEvaluationDimensions = dumpEvaluationDimensions;
128
+ //# sourceMappingURL=evaluationDimension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluationDimension.js","sourceRoot":"","sources":["../../../../src/ser-des/config/evaluationDimension.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Dumper, Parser } from '../types';
2
+ import EvaluationProfile from '../../types/EvaluationProfile';
3
+ export declare const parseEvaluationProfile: Parser;
4
+ export declare const dumpEvaluationProfile: Dumper<EvaluationProfile>;
5
+ //# sourceMappingURL=evaluationProfile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluationProfile.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/evaluationProfile.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQ/C,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAE9D,eAAO,MAAM,sBAAsB,EAAE,MA8BpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,iBAAiB,CAgB3D,CAAC"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────
3
+ // `evaluation_profile` construct (smart TODO.roadmap/40 batch 3; the
4
+ // packages-as-SSOT epic) — the named dimension-value presets
5
+ // (types/EvaluationProfile.ts carries the banner and the grammar
6
+ // sketch). The dimensions map is open-keyed (no schema lock-in); the
7
+ // key/value resolution is check-enforced (C135) — the codec stays
8
+ // total.
9
+ // ─────────────────────────────────────────────────────────────────────
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.dumpEvaluationProfile = exports.parseEvaluationProfile = void 0;
12
+ const tokenize_1 = require("../tokenize");
13
+ const parse_block_1 = require("../parse-block");
14
+ const field_parser_1 = require("./field-parser");
15
+ const parseEvaluationProfile = (id, data) => {
16
+ const profile = { id, dimensions: {}, description: '' };
17
+ (0, parse_block_1.forEachEntry)(data, (keyword, value) => {
18
+ if (keyword === 'dimensions') {
19
+ // The open dimension-keyed map: alternating key/value tokens.
20
+ const t = (0, tokenize_1.default)((0, tokenize_1.unwrapBlock)(value()));
21
+ for (let i = 0; i + 1 < t.length; i += 2) {
22
+ const k = (0, tokenize_1.stripWrapping)((0, field_parser_1.stripColon)(t[i]));
23
+ const v = (0, tokenize_1.stripWrapping)(t[i + 1]);
24
+ if (k) {
25
+ profile.dimensions[k] = v;
26
+ }
27
+ }
28
+ }
29
+ else if (keyword === 'description') {
30
+ profile.description = (0, tokenize_1.stripWrapping)(value());
31
+ }
32
+ else {
33
+ return false;
34
+ }
35
+ return true;
36
+ }, { construct: 'evaluation_profile', id });
37
+ return ctx => {
38
+ ctx.evaluationProfiles[id] = profile;
39
+ return ctx;
40
+ };
41
+ };
42
+ exports.parseEvaluationProfile = parseEvaluationProfile;
43
+ const dumpEvaluationProfile = function (p) {
44
+ let out = 'evaluation_profile ' + (0, field_parser_1.dumpBareSafe)(p.id) + ' {\n';
45
+ const keys = Object.keys(p.dimensions);
46
+ if (keys.length > 0) {
47
+ out +=
48
+ ' dimensions { ' +
49
+ keys
50
+ .map(k => (0, field_parser_1.dumpBareSafe)(k) + ' ' + (0, field_parser_1.dumpBareSafe)(p.dimensions[k]))
51
+ .join(' ') +
52
+ ' }\n';
53
+ }
54
+ if (p.description) {
55
+ out += ' description "' + (0, tokenize_1.escapeString)(p.description) + '"\n';
56
+ }
57
+ out += '}\n';
58
+ return out;
59
+ };
60
+ exports.dumpEvaluationProfile = dumpEvaluationProfile;
61
+ //# sourceMappingURL=evaluationProfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluationProfile.js","sourceRoot":"","sources":["../../../../src/ser-des/config/evaluationProfile.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,qEAAqE;AACrE,6DAA6D;AAC7D,iEAAiE;AACjE,qEAAqE;AACrE,kEAAkE;AAClE,SAAS;AACT,wEAAwE;;;AAGxE,0CAIqB;AACrB,gDAA8C;AAC9C,iDAA0D;AAGnD,MAAM,sBAAsB,GAAW,CAAC,EAAU,EAAE,IAAY,EAAE,EAAE;IACzE,MAAM,OAAO,GAAsB,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAE3E,IAAA,0BAAY,EACV,IAAI,EACJ,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACjB,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC7B,8DAA8D;YAC9D,MAAM,CAAC,GAAG,IAAA,kBAAQ,EAAC,IAAA,sBAAW,EAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,GAAG,IAAA,wBAAa,EAAC,IAAA,yBAAU,EAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;gBAC3C,MAAM,CAAC,GAAG,IAAA,wBAAa,EAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;gBACnC,IAAI,CAAC,EAAE,CAAC;oBACN,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;YACrC,OAAO,CAAC,WAAW,GAAG,IAAA,wBAAa,EAAC,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE,EAAE,CACxC,CAAC;IAEF,OAAO,GAAG,CAAC,EAAE;QACX,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;QACrC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,CAAC;AA9BW,QAAA,sBAAsB,0BA8BjC;AAEK,MAAM,qBAAqB,GAA8B,UAAU,CAAC;IACzE,IAAI,GAAG,GAAW,qBAAqB,GAAG,IAAA,2BAAY,EAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,GAAG;YACD,iBAAiB;gBACjB,IAAI;qBACD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,2BAAY,EAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAA,2BAAY,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC;qBAChE,IAAI,CAAC,GAAG,CAAC;gBACZ,MAAM,CAAC;IACX,CAAC;IACD,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAClB,GAAG,IAAI,iBAAiB,GAAG,IAAA,uBAAY,EAAC,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;IACjE,CAAC;IACD,GAAG,IAAI,KAAK,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAhBW,QAAA,qBAAqB,yBAgBhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,OAA6B,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE1C,eAAO,MAAM,kBAAkB,EAAE,MAwBhC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,OAAO,CAKvC,CAAC"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/gateway.ts"],"names":[],"mappings":"AAyBA,OAAO,OAA0C,MAAM,qBAAqB,CAAC;AAQ7E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE1C,eAAO,MAAM,kBAAkB,EAAE,MAyChC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,OAAO,CAKvC,CAAC"}
@@ -1,18 +1,62 @@
1
1
  "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────
3
+ // `exclusive_gateway` construct — the workflow routing cascade (smart
4
+ // TODO.roadmap/40 batch 5; the packages-as-SSOT epic; closes the kernel
5
+ // half of smart's TODO.refactor/16).
6
+ //
7
+ // exclusive_gateway test_runs_gateway {
8
+ // label "Determine Required Test Runs"
9
+ // edge conduct_mdlo_tests {
10
+ // condition "[accuracy_class] in ['C', 'D']"
11
+ // label "3 load applications"
12
+ // }
13
+ // edge conduct_mdlo_tests_5runs {
14
+ // condition "[accuracy_class] in ['A', 'B']"
15
+ // label "5 load applications"
16
+ // }
17
+ // edge skip { condition default label "Not applicable" }
18
+ // }
19
+ //
20
+ // `edge <target-process-id> { … }` is a repeatable, ordered two-token
21
+ // facet: the first satisfied condition in declaration order wins, and
22
+ // the edge carrying the bare token `default` is the catch-all
23
+ // (recommended last — C142 checks the discipline). The condition stays
24
+ // an opaque string, never resolved kernel-side (the R26 precedent).
25
+ // ─────────────────────────────────────────────────────────────────────
2
26
  Object.defineProperty(exports, "__esModule", { value: true });
3
27
  exports.dumpGateway = exports.parseExclusiveGate = void 0;
4
28
  const tokenize_1 = require("../tokenize");
29
+ const field_parser_1 = require("./field-parser");
5
30
  const parse_block_1 = require("../parse-block");
6
31
  const parseExclusiveGate = function (id, data) {
7
32
  const gateway = {
8
33
  id: id,
9
34
  gatewayType: 'exclusive_gateway',
10
35
  label: '',
36
+ edges: [],
11
37
  };
12
38
  (0, parse_block_1.forEachEntry)(data, (command, value) => {
13
39
  if (command === 'label') {
14
40
  gateway.label = (0, parse_block_1.unwrapped)(value);
15
41
  }
42
+ else if (command === 'edge') {
43
+ // edge <target-process-id> { condition "…"|default label "…" }
44
+ const edge = {
45
+ target: (0, tokenize_1.stripWrapping)(value()),
46
+ condition: '',
47
+ label: '',
48
+ };
49
+ const et = (0, tokenize_1.default)((0, tokenize_1.unwrapBlock)(value()));
50
+ for (let j = 0; j + 1 < et.length; j += 2) {
51
+ if (et[j] === 'condition') {
52
+ edge.condition = (0, tokenize_1.stripWrapping)(et[j + 1]);
53
+ }
54
+ else if (et[j] === 'label') {
55
+ edge.label = (0, tokenize_1.stripWrapping)(et[j + 1]);
56
+ }
57
+ }
58
+ gateway.edges.push(edge);
59
+ }
16
60
  else {
17
61
  return false;
18
62
  }
@@ -36,6 +80,19 @@ function dumpEGate(egate) {
36
80
  if (egate.label !== '') {
37
81
  out += ' label "' + (0, tokenize_1.escapeString)(egate.label) + '"\n';
38
82
  }
83
+ for (const e of egate.edges ?? []) {
84
+ out += ' edge ' + (0, field_parser_1.dumpBareSafe)(e.target) + ' {';
85
+ if (e.condition === 'default') {
86
+ out += ' condition default';
87
+ }
88
+ else if (e.condition !== '') {
89
+ out += ' condition "' + (0, tokenize_1.escapeString)(e.condition) + '"';
90
+ }
91
+ if (e.label !== '') {
92
+ out += ' label "' + (0, tokenize_1.escapeString)(e.label) + '"';
93
+ }
94
+ out += ' }\n';
95
+ }
39
96
  out += '}\n';
40
97
  return out;
41
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../../src/ser-des/config/gateway.ts"],"names":[],"mappings":";;;AACA,0CAA2C;AAC3C,gDAAyD;AAGlD,MAAM,kBAAkB,GAAW,UAAU,EAAE,EAAE,IAAI;IAC1D,MAAM,OAAO,GAAqB;QAChC,EAAE,EAAE,EAAE;QACN,WAAW,EAAE,mBAAmB;QAChC,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,IAAA,0BAAY,EACV,IAAI,EACJ,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACjB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,EAAE,CACvC,CAAC;IAEF,OAAO,GAAG,CAAC,EAAE;QACX,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;QAC3B,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,kBAAkB,sBAwB7B;AAEK,MAAM,WAAW,GAAoB,UAAU,IAAI;IACxD,IAAI,IAAI,CAAC,WAAW,KAAK,mBAAmB,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC,IAAwB,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AALW,QAAA,WAAW,eAKtB;AAEF,SAAS,SAAS,CAAC,KAAuB;IACxC,IAAI,GAAG,GAAW,oBAAoB,GAAG,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC;IAC3D,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;QACvB,GAAG,IAAI,WAAW,GAAG,IAAA,uBAAY,EAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACzD,CAAC;IACD,GAAG,IAAI,KAAK,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../../src/ser-des/config/gateway.ts"],"names":[],"mappings":"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"}