@3f-consulting/spec-controller-core 0.1.0-alpha.50 → 0.1.0-alpha.52
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/assemble/evidenceReconciliationFromSources.js +0 -7
- package/dist/assemble/evidenceReconciliationFromSources.js.map +1 -1
- package/dist/domain/messages.d.ts +191 -0
- package/dist/domain/messages.d.ts.map +1 -0
- package/dist/domain/messages.js +279 -0
- package/dist/domain/messages.js.map +1 -0
- package/dist/domain/qualityCheckReconciliationFault.js +1 -1
- package/dist/domain/qualityCheckReconciliationFault.js.map +1 -1
- package/dist/parse/scenarioCodeErrors.d.ts.map +1 -1
- package/dist/parse/scenarioCodeErrors.js +7 -17
- package/dist/parse/scenarioCodeErrors.js.map +1 -1
- package/dist/render/behaviouralRunners.d.ts.map +1 -1
- package/dist/render/behaviouralRunners.js +6 -5
- package/dist/render/behaviouralRunners.js.map +1 -1
- package/dist/render/configurationNotRead.d.ts.map +1 -1
- package/dist/render/configurationNotRead.js +5 -5
- package/dist/render/configurationNotRead.js.map +1 -1
- package/dist/render/discoveryScope.d.ts.map +1 -1
- package/dist/render/discoveryScope.js +3 -2
- package/dist/render/discoveryScope.js.map +1 -1
- package/dist/render/excludedSteps.d.ts.map +1 -1
- package/dist/render/excludedSteps.js +4 -3
- package/dist/render/excludedSteps.js.map +1 -1
- package/dist/render/markdown.d.ts.map +1 -1
- package/dist/render/markdown.js +48 -50
- package/dist/render/markdown.js.map +1 -1
- package/dist/render/provenanceSection.d.ts.map +1 -1
- package/dist/render/provenanceSection.js +10 -9
- package/dist/render/provenanceSection.js.map +1 -1
- package/dist/render/reconcilerSteps.d.ts.map +1 -1
- package/dist/render/reconcilerSteps.js +5 -4
- package/dist/render/reconcilerSteps.js.map +1 -1
- package/dist/render/runVerdict.d.ts.map +1 -1
- package/dist/render/runVerdict.js +22 -30
- package/dist/render/runVerdict.js.map +1 -1
- package/dist/render/scenarioCodeErrorsSection.d.ts.map +1 -1
- package/dist/render/scenarioCodeErrorsSection.js +20 -17
- package/dist/render/scenarioCodeErrorsSection.js.map +1 -1
- package/dist/render/staticChecks.d.ts.map +1 -1
- package/dist/render/staticChecks.js +3 -2
- package/dist/render/staticChecks.js.map +1 -1
- package/dist/render/stepAccounting.js +5 -5
- package/dist/render/stepAccounting.js.map +1 -1
- package/dist/render/testVolume.d.ts.map +1 -1
- package/dist/render/testVolume.js +4 -3
- package/dist/render/testVolume.js.map +1 -1
- package/package.json +1 -1
- package/dist/domain/qualityCheckFaultMessages.d.ts +0 -8
- package/dist/domain/qualityCheckFaultMessages.d.ts.map +0 -1
- package/dist/domain/qualityCheckFaultMessages.js +0 -10
- package/dist/domain/qualityCheckFaultMessages.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcilerSteps.js","sourceRoot":"","sources":["../../src/render/reconcilerSteps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reconcilerSteps.js","sourceRoot":"","sources":["../../src/render/reconcilerSteps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,UAAU,GAAqD;IACnE,UAAU,EAAE,aAAa,CAAC,WAAW,CAAC,oBAAoB,CAAC;IAC3D,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC;CACtD,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAmB,EAAY,EAAE;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;IACnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,OAAO;QACL,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC;QAC5C,EAAE;QACF,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,KAAK,aAAa,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC1G,EAAE;KACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runVerdict.d.ts","sourceRoot":"","sources":["../../src/render/runVerdict.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"runVerdict.d.ts","sourceRoot":"","sources":["../../src/render/runVerdict.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAwE9D,eAAO,MAAM,iBAAiB,GAAI,QAAQ,WAAW,KAAG,MAAM,EAgB7D,CAAC"}
|
|
@@ -1,51 +1,44 @@
|
|
|
1
1
|
import { isBalanced, hasPendingItems } from "../domain/ledger.js";
|
|
2
2
|
import { hasScenarioCodeErrors } from "../domain/scenarioCodeError.js";
|
|
3
3
|
import { verdictCode } from "../domain/verdictCode.js";
|
|
4
|
+
import { CORE_MESSAGES, CoreMessage } from "../domain/messages.js";
|
|
4
5
|
const DEFAULT_CORPUS_DIR = "features";
|
|
5
6
|
function corpusExamined(provenance) {
|
|
6
7
|
return provenance.inputs.features ?? DEFAULT_CORPUS_DIR;
|
|
7
8
|
}
|
|
8
9
|
function scenarioCodeErrorsVerdict(reconciliation) {
|
|
9
|
-
const alsoOutOfBalance = isBalanced(reconciliation)
|
|
10
|
-
? ""
|
|
11
|
-
: " The accounts do not agree either: at least one Scenario Reconciliation carries a reconciling item.";
|
|
10
|
+
const alsoOutOfBalance = isBalanced(reconciliation) ? "" : CORE_MESSAGES[CoreMessage.AlsoOutOfBalance];
|
|
12
11
|
return {
|
|
13
|
-
headline:
|
|
14
|
-
exit:
|
|
15
|
-
gloss:
|
|
16
|
-
`cannot be trusted. Read \`## Scenario code errors\` above.${alsoOutOfBalance} This run FAILED.`,
|
|
12
|
+
headline: CORE_MESSAGES[CoreMessage.ScenarioCodeErrorsHeadline],
|
|
13
|
+
exit: CORE_MESSAGES[CoreMessage.VerdictExit](1),
|
|
14
|
+
gloss: CORE_MESSAGES[CoreMessage.ScenarioCodeErrorsGloss](alsoOutOfBalance),
|
|
17
15
|
};
|
|
18
16
|
}
|
|
19
17
|
const OUT_OF_BALANCE = {
|
|
20
|
-
headline:
|
|
21
|
-
exit:
|
|
22
|
-
gloss:
|
|
18
|
+
headline: CORE_MESSAGES[CoreMessage.OutOfBalanceHeadline],
|
|
19
|
+
exit: CORE_MESSAGES[CoreMessage.VerdictExit](1),
|
|
20
|
+
gloss: CORE_MESSAGES[CoreMessage.OutOfBalanceGloss],
|
|
23
21
|
};
|
|
24
22
|
const UNSOUND = {
|
|
25
|
-
headline:
|
|
26
|
-
exit:
|
|
27
|
-
gloss:
|
|
28
|
-
"it proves was never exercised. Read the run-integrity stamp above before any count " +
|
|
29
|
-
"below it.",
|
|
23
|
+
headline: CORE_MESSAGES[CoreMessage.UnsoundHeadline],
|
|
24
|
+
exit: CORE_MESSAGES[CoreMessage.VerdictExit](4),
|
|
25
|
+
gloss: CORE_MESSAGES[CoreMessage.UnsoundGloss],
|
|
30
26
|
};
|
|
31
27
|
const PENDING = {
|
|
32
|
-
headline:
|
|
33
|
-
exit:
|
|
34
|
-
gloss:
|
|
35
|
-
"treats a deferral as a failure (`--strict`). This run FAILED.",
|
|
28
|
+
headline: CORE_MESSAGES[CoreMessage.PendingHeadline],
|
|
29
|
+
exit: CORE_MESSAGES[CoreMessage.VerdictExit](3),
|
|
30
|
+
gloss: CORE_MESSAGES[CoreMessage.PendingGloss],
|
|
36
31
|
};
|
|
37
32
|
const BALANCED = {
|
|
38
|
-
headline:
|
|
39
|
-
exit:
|
|
40
|
-
gloss:
|
|
33
|
+
headline: CORE_MESSAGES[CoreMessage.BalancedHeadline],
|
|
34
|
+
exit: CORE_MESSAGES[CoreMessage.VerdictExit](0),
|
|
35
|
+
gloss: CORE_MESSAGES[CoreMessage.BalancedGloss],
|
|
41
36
|
};
|
|
42
37
|
function nothingToReconcile(corpusDir) {
|
|
43
38
|
return {
|
|
44
|
-
headline:
|
|
45
|
-
exit:
|
|
46
|
-
gloss:
|
|
47
|
-
`all, so this run has NO BASIS FOR A VERDICT — nothing was declared in \`${corpusDir}\` ` +
|
|
48
|
-
"and nothing was produced. Not balanced: a run that examined nothing must not certify.",
|
|
39
|
+
headline: CORE_MESSAGES[CoreMessage.NothingToReconcileHeadline],
|
|
40
|
+
exit: CORE_MESSAGES[CoreMessage.VerdictExit](5),
|
|
41
|
+
gloss: CORE_MESSAGES[CoreMessage.NothingToReconcileGloss](corpusDir),
|
|
49
42
|
};
|
|
50
43
|
}
|
|
51
44
|
function verdictFor(code, reconciliation, corpusDir, codeErrors) {
|
|
@@ -71,11 +64,10 @@ export const runVerdictSection = (report) => {
|
|
|
71
64
|
strict: report.runProvenance.strict === true,
|
|
72
65
|
});
|
|
73
66
|
const verdict = verdictFor(code, reconciliation, corpusExamined(report.runProvenance), codeErrors);
|
|
74
|
-
const lines = [
|
|
67
|
+
const lines = [CORE_MESSAGES[CoreMessage.RunVerdictHeading], "", `${verdict.headline} — ${verdict.gloss} (${verdict.exit})`];
|
|
75
68
|
if (code === 0 && hasPendingItems(reconciliation)) {
|
|
76
69
|
lines.push("");
|
|
77
|
-
lines.push(
|
|
78
|
-
"A run that treats a deferral as a failure gives exit 3 under `--strict`.");
|
|
70
|
+
lines.push(CORE_MESSAGES[CoreMessage.PendingItemsOutstanding]);
|
|
79
71
|
}
|
|
80
72
|
lines.push("");
|
|
81
73
|
return lines;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runVerdict.js","sourceRoot":"","sources":["../../src/render/runVerdict.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAoB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"runVerdict.js","sourceRoot":"","sources":["../../src/render/runVerdict.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenarioCodeErrorsSection.d.ts","sourceRoot":"","sources":["../../src/render/scenarioCodeErrorsSection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"scenarioCodeErrorsSection.d.ts","sourceRoot":"","sources":["../../src/render/scenarioCodeErrorsSection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AA0B9D,eAAO,MAAM,yBAAyB,GAAI,QAAQ,WAAW,KAAG,MAAM,EAsBrE,CAAC"}
|
|
@@ -1,41 +1,44 @@
|
|
|
1
|
-
|
|
1
|
+
import { CORE_MESSAGES, CoreMessage } from "../domain/messages.js";
|
|
2
2
|
function counted(n, noun) {
|
|
3
3
|
return `${n} ${noun}${n === 1 ? "" : "s"}`;
|
|
4
4
|
}
|
|
5
5
|
function cleanStatement(population) {
|
|
6
|
-
const inFile = "every coded scenario sits in the file its code names";
|
|
7
6
|
if (population === undefined)
|
|
8
|
-
return
|
|
7
|
+
return CORE_MESSAGES[CoreMessage.ScenarioCodesClean];
|
|
9
8
|
const { featureFiles, featureCodes } = population;
|
|
10
9
|
if (featureFiles === 0)
|
|
11
|
-
return
|
|
12
|
-
const over =
|
|
13
|
-
if (featureCodes === 0)
|
|
14
|
-
|
|
10
|
+
return CORE_MESSAGES[CoreMessage.NoFeatureFileJudged];
|
|
11
|
+
const over = CORE_MESSAGES[CoreMessage.ScenarioCodesCleanOver](counted(featureFiles, CORE_MESSAGES[CoreMessage.FeatureFileNoun]), counted(featureCodes, CORE_MESSAGES[CoreMessage.FeatureCodeNoun]));
|
|
12
|
+
if (featureCodes === 0) {
|
|
13
|
+
const them = featureFiles === 1 ? CORE_MESSAGES[CoreMessage.ItPronoun] : CORE_MESSAGES[CoreMessage.ThemPronoun];
|
|
14
|
+
return CORE_MESSAGES[CoreMessage.CleanNoCodedScenario](over, them);
|
|
15
|
+
}
|
|
15
16
|
if (featureCodes === featureFiles)
|
|
16
|
-
return
|
|
17
|
+
return CORE_MESSAGES[CoreMessage.CleanEachFileOwnCode](over);
|
|
17
18
|
const uncoded = featureFiles - featureCodes;
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
const hold = uncoded === 1 ? CORE_MESSAGES[CoreMessage.HoldsVerb] : CORE_MESSAGES[CoreMessage.HoldVerb];
|
|
20
|
+
return CORE_MESSAGES[CoreMessage.CleanOthersUncoded](over, uncoded, hold);
|
|
20
21
|
}
|
|
21
22
|
export const scenarioCodeErrorsSection = (report) => {
|
|
22
23
|
if (report.scenarioCodeErrors === undefined)
|
|
23
24
|
return [];
|
|
24
25
|
const errors = report.scenarioCodeErrors;
|
|
26
|
+
const heading = CORE_MESSAGES[CoreMessage.ScenarioCodeErrorsHeading];
|
|
27
|
+
const duplicateLine = CORE_MESSAGES[CoreMessage.DuplicateScnCodeNotListed];
|
|
25
28
|
if (errors.length === 0) {
|
|
26
|
-
return [
|
|
29
|
+
return [heading, "", cleanStatement(report.scenarioCodePopulation), "", duplicateLine, ""];
|
|
27
30
|
}
|
|
28
|
-
const count = errors.length === 1
|
|
31
|
+
const count = errors.length === 1
|
|
32
|
+
? CORE_MESSAGES[CoreMessage.OneScenarioCodeError]
|
|
33
|
+
: CORE_MESSAGES[CoreMessage.ScenarioCodeErrorCount](errors.length);
|
|
29
34
|
return [
|
|
30
|
-
|
|
35
|
+
heading,
|
|
31
36
|
"",
|
|
32
|
-
|
|
33
|
-
"the run fails (exit 1). Every account still reconciles as it would if the code were filed " +
|
|
34
|
-
"correctly.",
|
|
37
|
+
CORE_MESSAGES[CoreMessage.ScenarioCodeErrorsFraming](count),
|
|
35
38
|
"",
|
|
36
39
|
...errors.map((error) => `- \`${error.kind}\` — ${error.message}`),
|
|
37
40
|
"",
|
|
38
|
-
|
|
41
|
+
duplicateLine,
|
|
39
42
|
"",
|
|
40
43
|
];
|
|
41
44
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenarioCodeErrorsSection.js","sourceRoot":"","sources":["../../src/render/scenarioCodeErrorsSection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scenarioCodeErrorsSection.js","sourceRoot":"","sources":["../../src/render/scenarioCodeErrorsSection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticChecks.d.ts","sourceRoot":"","sources":["../../src/render/staticChecks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"staticChecks.d.ts","sourceRoot":"","sources":["../../src/render/staticChecks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAG9D,eAAO,MAAM,mBAAmB,GAAI,QAAQ,WAAW,KAAG,MAAM,EAQ/D,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { CORE_MESSAGES, CoreMessage } from "../domain/messages.js";
|
|
1
2
|
export const staticChecksSection = (report) => {
|
|
2
3
|
const { staticChecks: counts } = report.summary;
|
|
3
4
|
if (!counts)
|
|
4
5
|
return [];
|
|
5
6
|
return [
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
CORE_MESSAGES[CoreMessage.StaticChecksHeading], "",
|
|
8
|
+
CORE_MESSAGES[CoreMessage.StaticChecksCounts](counts.runningStaticCheckCount, counts.uncitedStaticCheckCount),
|
|
8
9
|
"",
|
|
9
10
|
];
|
|
10
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticChecks.js","sourceRoot":"","sources":["../../src/render/staticChecks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"staticChecks.js","sourceRoot":"","sources":["../../src/render/staticChecks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAmB,EAAY,EAAE;IACnE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO;QACL,aAAa,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,EAAE;QAClD,aAAa,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,uBAAuB,CAAC;QAC7G,EAAE;KACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
+
import { CORE_MESSAGES, CoreMessage } from "../domain/messages.js";
|
|
1
2
|
const verdictOf = ({ stepsRead, accountedFor }) => accountedFor === stepsRead
|
|
2
|
-
?
|
|
3
|
-
: `- ${stepsRead
|
|
4
|
-
`add up to the steps this run read.`;
|
|
3
|
+
? `- ${CORE_MESSAGES[CoreMessage.EveryStepAccountedFor]}`
|
|
4
|
+
: `- ${CORE_MESSAGES[CoreMessage.StepsNotAccountedFor](stepsRead, accountedFor)}`;
|
|
5
5
|
export const stepAccountingSection = (report) => {
|
|
6
6
|
const accounting = report.summary.stepAccounting;
|
|
7
7
|
if (accounting === undefined)
|
|
8
8
|
return [];
|
|
9
9
|
const { stepsRead, candidates, runners, reconciler, excluded, accountedFor } = accounting;
|
|
10
10
|
return [
|
|
11
|
-
|
|
11
|
+
CORE_MESSAGES[CoreMessage.StepAccountingHeading],
|
|
12
12
|
"",
|
|
13
|
-
|
|
13
|
+
CORE_MESSAGES[CoreMessage.StepAccountingTableHeader],
|
|
14
14
|
"| --- | --- | --- | --- | --- | --- |",
|
|
15
15
|
`| ${stepsRead} | ${candidates} | ${runners} | ${reconciler} | ${excluded} | ${accountedFor} |`,
|
|
16
16
|
"",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepAccounting.js","sourceRoot":"","sources":["../../src/render/stepAccounting.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stepAccounting.js","sourceRoot":"","sources":["../../src/render/stepAccounting.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAkB,EAAU,EAAE,CACxE,YAAY,KAAK,SAAS;IACxB,CAAC,CAAC,KAAK,aAAa,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE;IACzD,CAAC,CAAC,KAAK,aAAa,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;AAEtF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAmB,EAAY,EAAE;IACrE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;IACjD,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;IAC1F,OAAO;QACL,aAAa,CAAC,WAAW,CAAC,qBAAqB,CAAC;QAChD,EAAE;QACF,aAAa,CAAC,WAAW,CAAC,yBAAyB,CAAC;QACpD,uCAAuC;QACvC,KAAK,SAAS,MAAM,UAAU,MAAM,OAAO,MAAM,UAAU,MAAM,QAAQ,MAAM,YAAY,IAAI;QAC/F,EAAE;QACF,SAAS,CAAC,UAAU,CAAC;QACrB,EAAE;KACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testVolume.d.ts","sourceRoot":"","sources":["../../src/render/testVolume.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"testVolume.d.ts","sourceRoot":"","sources":["../../src/render/testVolume.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAG9D,eAAO,MAAM,iBAAiB,GAAI,QAAQ,WAAW,KAAG,MAAM,EAkB7D,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RUNTIME_QUALITY_CHECKS } from "../domain/ledger.js";
|
|
2
|
+
import { CORE_MESSAGES, CoreMessage } from "../domain/messages.js";
|
|
2
3
|
export const testVolumeSection = (report) => {
|
|
3
4
|
const volume = report.summary.testVolume;
|
|
4
5
|
const raw = report.summary.rawByRuntimeQualityCheck;
|
|
@@ -6,11 +7,11 @@ export const testVolumeSection = (report) => {
|
|
|
6
7
|
return [];
|
|
7
8
|
const total = volume.totalEvidenceObservations;
|
|
8
9
|
const lines = [
|
|
9
|
-
|
|
10
|
+
CORE_MESSAGES[CoreMessage.TestVolumeHeading],
|
|
10
11
|
"",
|
|
11
|
-
|
|
12
|
+
CORE_MESSAGES[CoreMessage.TestVolumeSum](total, volume.onScenario, volume.onPhantomScenario, volume.onSuspenseScenario),
|
|
12
13
|
"",
|
|
13
|
-
|
|
14
|
+
CORE_MESSAGES[CoreMessage.TestVolumeTableHeader],
|
|
14
15
|
"| --- | --- |",
|
|
15
16
|
];
|
|
16
17
|
for (const qualityCheck of RUNTIME_QUALITY_CHECKS) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testVolume.js","sourceRoot":"","sources":["../../src/render/testVolume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"testVolume.js","sourceRoot":"","sources":["../../src/render/testVolume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAmB,EAAY,EAAE;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC;IACpD,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,yBAAyB,CAAC;IAC/C,MAAM,KAAK,GAAG;QACZ,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC;QAC5C,EAAE;QACF,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,kBAAkB,CAAC;QACvH,EAAE;QACF,aAAa,CAAC,WAAW,CAAC,qBAAqB,CAAC;QAChD,eAAe;KAChB,CAAC;IACF,KAAK,MAAM,YAAY,IAAI,sBAAsB,EAAE,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,KAAK,YAAY,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@3f-consulting/spec-controller-core",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.52",
|
|
4
4
|
"description": "The pure, embeddable reconciliation core behind spec-controller — Gherkin/@SCN parse, the evidence model, reconcile primitives, and renderers. No CLI, no I/O.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"reconciliation",
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { QualityCheckFaultCode, type QualityCheckFault } from "./qualityCheckFault.js";
|
|
2
|
-
export type QualityCheckFaultMessages = {
|
|
3
|
-
readonly [C in QualityCheckFaultCode]: (fault: Extract<QualityCheckFault, {
|
|
4
|
-
code: C;
|
|
5
|
-
}>) => string;
|
|
6
|
-
};
|
|
7
|
-
export declare const QUALITY_CHECK_FAULT_MESSAGES: QualityCheckFaultMessages;
|
|
8
|
-
//# sourceMappingURL=qualityCheckFaultMessages.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"qualityCheckFaultMessages.d.ts","sourceRoot":"","sources":["../../src/domain/qualityCheckFaultMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEvF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,CAAC,IAAI,qBAAqB,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,KAAK,MAAM;CAClG,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,yBAS1C,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { QualityCheckFaultCode } from "./qualityCheckFault.js";
|
|
2
|
-
export const QUALITY_CHECK_FAULT_MESSAGES = {
|
|
3
|
-
[QualityCheckFaultCode.ObligationSideDivergesFromCanon]: (fault) => `QualityCheckReconciliation invariant (@SCN-LDG-030): outcome "${fault.outcome}" requires the ` +
|
|
4
|
-
`evidence obligation (debit) side to be ${fault.required}, but it was ` +
|
|
5
|
-
`${fault.actual}.`,
|
|
6
|
-
[QualityCheckFaultCode.ObservationSideDivergesFromCanon]: (fault) => `QualityCheckReconciliation invariant (@SCN-LDG-030): outcome "${fault.outcome}" requires the ` +
|
|
7
|
-
`evidence observation (credit) side to be ${fault.required}, but it was ` +
|
|
8
|
-
`${fault.actual}.`,
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=qualityCheckFaultMessages.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"qualityCheckFaultMessages.js","sourceRoot":"","sources":["../../src/domain/qualityCheckFaultMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAA0B,MAAM,wBAAwB,CAAC;AAMvF,MAAM,CAAC,MAAM,4BAA4B,GAA8B;IACrE,CAAC,qBAAqB,CAAC,+BAA+B,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CACjE,iEAAiE,KAAK,CAAC,OAAO,iBAAiB;QAC/F,0CAA0C,KAAK,CAAC,QAAQ,eAAe;QACvE,GAAG,KAAK,CAAC,MAAM,GAAG;IACpB,CAAC,qBAAqB,CAAC,gCAAgC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAClE,iEAAiE,KAAK,CAAC,OAAO,iBAAiB;QAC/F,4CAA4C,KAAK,CAAC,QAAQ,eAAe;QACzE,GAAG,KAAK,CAAC,MAAM,GAAG;CACrB,CAAC"}
|