@3f-consulting/spec-controller-core 0.1.0-alpha.7 → 0.1.0-alpha.71
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/README.md +3 -3
- package/dist/assemble/evidenceReconciliationFromSources.d.ts +5 -40
- package/dist/assemble/evidenceReconciliationFromSources.d.ts.map +1 -1
- package/dist/assemble/evidenceReconciliationFromSources.js +30 -325
- package/dist/assemble/evidenceReconciliationFromSources.js.map +1 -1
- package/dist/assemble/renderInput.d.ts +7 -73
- package/dist/assemble/renderInput.d.ts.map +1 -1
- package/dist/assemble/renderInput.js +3 -45
- package/dist/assemble/renderInput.js.map +1 -1
- package/dist/census/evidenceObligations.d.ts +11 -46
- package/dist/census/evidenceObligations.d.ts.map +1 -1
- package/dist/census/evidenceObligations.js +19 -25
- package/dist/census/evidenceObligations.js.map +1 -1
- package/dist/domain/evidenceOrder.d.ts +3 -0
- package/dist/domain/evidenceOrder.d.ts.map +1 -0
- package/dist/domain/evidenceOrder.js +15 -0
- package/dist/domain/evidenceOrder.js.map +1 -0
- package/dist/domain/evidenceReconciliation.d.ts +21 -391
- package/dist/domain/evidenceReconciliation.d.ts.map +1 -1
- package/dist/domain/evidenceReconciliation.js +87 -382
- package/dist/domain/evidenceReconciliation.js.map +1 -1
- package/dist/domain/featureCode.d.ts +4 -0
- package/dist/domain/featureCode.d.ts.map +1 -0
- package/dist/domain/featureCode.js +12 -0
- package/dist/domain/featureCode.js.map +1 -0
- package/dist/domain/journal.d.ts +8 -393
- package/dist/domain/journal.d.ts.map +1 -1
- package/dist/domain/journal.js +6 -118
- package/dist/domain/journal.js.map +1 -1
- package/dist/domain/ledger.d.ts +8 -328
- package/dist/domain/ledger.d.ts.map +1 -1
- package/dist/domain/ledger.js +23 -326
- package/dist/domain/ledger.js.map +1 -1
- package/dist/domain/messages.d.ts +213 -0
- package/dist/domain/messages.d.ts.map +1 -0
- package/dist/domain/messages.js +313 -0
- package/dist/domain/messages.js.map +1 -0
- package/dist/domain/outcome.d.ts +3 -0
- package/dist/domain/outcome.d.ts.map +1 -0
- package/dist/domain/outcome.js +2 -0
- package/dist/domain/outcome.js.map +1 -0
- package/dist/domain/posting.d.ts +8 -105
- package/dist/domain/posting.d.ts.map +1 -1
- package/dist/domain/posting.js +4 -56
- package/dist/domain/posting.js.map +1 -1
- package/dist/domain/qualityCheckFault.d.ts +3 -43
- package/dist/domain/qualityCheckFault.d.ts.map +1 -1
- package/dist/domain/qualityCheckFault.js +0 -24
- package/dist/domain/qualityCheckFault.js.map +1 -1
- package/dist/domain/qualityCheckReconciliation.d.ts +7 -280
- package/dist/domain/qualityCheckReconciliation.d.ts.map +1 -1
- package/dist/domain/qualityCheckReconciliation.js +63 -463
- package/dist/domain/qualityCheckReconciliation.js.map +1 -1
- package/dist/domain/qualityCheckReconciliationFault.d.ts +0 -19
- package/dist/domain/qualityCheckReconciliationFault.d.ts.map +1 -1
- package/dist/domain/qualityCheckReconciliationFault.js +1 -24
- package/dist/domain/qualityCheckReconciliationFault.js.map +1 -1
- package/dist/domain/scenarioCodeError.d.ts +16 -0
- package/dist/domain/scenarioCodeError.d.ts.map +1 -0
- package/dist/domain/scenarioCodeError.js +4 -0
- package/dist/domain/scenarioCodeError.js.map +1 -0
- package/dist/domain/scenarioReconciliation.d.ts +2 -207
- package/dist/domain/scenarioReconciliation.d.ts.map +1 -1
- package/dist/domain/scenarioReconciliation.js +4 -101
- package/dist/domain/scenarioReconciliation.js.map +1 -1
- package/dist/domain/scnAllocation.d.ts +27 -0
- package/dist/domain/scnAllocation.d.ts.map +1 -0
- package/dist/domain/scnAllocation.js +33 -0
- package/dist/domain/scnAllocation.js.map +1 -0
- package/dist/domain/verdictCode.d.ts +10 -0
- package/dist/domain/verdictCode.d.ts.map +1 -0
- package/dist/domain/verdictCode.js +16 -0
- package/dist/domain/verdictCode.js.map +1 -0
- package/dist/index.d.ts +14 -40
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -88
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +3 -27
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +3 -94
- package/dist/internal.js.map +1 -1
- package/dist/lib/bareTerm.d.ts +0 -39
- package/dist/lib/bareTerm.d.ts.map +1 -1
- package/dist/lib/bareTerm.js +0 -39
- package/dist/lib/bareTerm.js.map +1 -1
- package/dist/lib/portablePath.d.ts.map +1 -1
- package/dist/lib/portablePath.js +2 -16
- package/dist/lib/portablePath.js.map +1 -1
- package/dist/lib/scnCitation.d.ts +0 -32
- package/dist/lib/scnCitation.d.ts.map +1 -1
- package/dist/lib/scnCitation.js +2 -42
- package/dist/lib/scnCitation.js.map +1 -1
- package/dist/model.d.ts +0 -23
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +0 -23
- package/dist/model.js.map +1 -1
- package/dist/parse/checkScriptsRunInCI.d.ts +5 -168
- package/dist/parse/checkScriptsRunInCI.d.ts.map +1 -1
- package/dist/parse/checkScriptsRunInCI.js +11 -171
- package/dist/parse/checkScriptsRunInCI.js.map +1 -1
- package/dist/parse/ciStepRecord.d.ts +4 -118
- package/dist/parse/ciStepRecord.d.ts.map +1 -1
- package/dist/parse/ciStepRecord.js +18 -225
- package/dist/parse/ciStepRecord.js.map +1 -1
- package/dist/parse/commandRuns.d.ts +0 -39
- package/dist/parse/commandRuns.d.ts.map +1 -1
- package/dist/parse/commandRuns.js +6 -67
- package/dist/parse/commandRuns.js.map +1 -1
- package/dist/parse/cucumber.d.ts +0 -53
- package/dist/parse/cucumber.d.ts.map +1 -1
- package/dist/parse/cucumber.js +42 -146
- package/dist/parse/cucumber.js.map +1 -1
- package/dist/parse/discoveryScope.d.ts +1 -46
- package/dist/parse/discoveryScope.d.ts.map +1 -1
- package/dist/parse/discoveryScope.js +2 -57
- package/dist/parse/discoveryScope.js.map +1 -1
- package/dist/parse/fitnessCitations.d.ts +1 -72
- package/dist/parse/fitnessCitations.d.ts.map +1 -1
- package/dist/parse/fitnessCitations.js +3 -55
- package/dist/parse/fitnessCitations.js.map +1 -1
- package/dist/parse/reconcilerSteps.d.ts +0 -46
- package/dist/parse/reconcilerSteps.d.ts.map +1 -1
- package/dist/parse/reconcilerSteps.js +2 -64
- package/dist/parse/reconcilerSteps.js.map +1 -1
- package/dist/parse/runningFitnessFunctions.d.ts +9 -0
- package/dist/parse/runningFitnessFunctions.d.ts.map +1 -0
- package/dist/parse/runningFitnessFunctions.js +57 -0
- package/dist/parse/runningFitnessFunctions.js.map +1 -0
- package/dist/parse/scenarioCodeErrors.d.ts +11 -0
- package/dist/parse/scenarioCodeErrors.d.ts.map +1 -0
- package/dist/parse/scenarioCodeErrors.js +78 -0
- package/dist/parse/scenarioCodeErrors.js.map +1 -0
- package/dist/parse/scenarios.d.ts +3 -228
- package/dist/parse/scenarios.d.ts.map +1 -1
- package/dist/parse/scenarios.js +20 -457
- package/dist/parse/scenarios.js.map +1 -1
- package/dist/parse/stepAccounting.d.ts +0 -46
- package/dist/parse/stepAccounting.d.ts.map +1 -1
- package/dist/parse/stepAccounting.js +1 -55
- package/dist/parse/stepAccounting.js.map +1 -1
- package/dist/parse/stepExclusions.d.ts +0 -47
- package/dist/parse/stepExclusions.d.ts.map +1 -1
- package/dist/parse/stepExclusions.js +2 -50
- package/dist/parse/stepExclusions.js.map +1 -1
- package/dist/parse/stepNames.d.ts +0 -27
- package/dist/parse/stepNames.d.ts.map +1 -1
- package/dist/parse/stepNames.js +0 -27
- package/dist/parse/stepNames.js.map +1 -1
- package/dist/parse/targetCorpus.d.ts +1 -78
- package/dist/parse/targetCorpus.d.ts.map +1 -1
- package/dist/parse/targetCorpus.js +4 -46
- package/dist/parse/targetCorpus.js.map +1 -1
- package/dist/parse/targetManifest.d.ts +8 -146
- package/dist/parse/targetManifest.d.ts.map +1 -1
- package/dist/parse/targetManifest.js +48 -198
- package/dist/parse/targetManifest.js.map +1 -1
- package/dist/parse/vitest.d.ts +0 -60
- package/dist/parse/vitest.d.ts.map +1 -1
- package/dist/parse/vitest.js +4 -83
- package/dist/parse/vitest.js.map +1 -1
- package/dist/provenance/provenance.d.ts +2 -110
- package/dist/provenance/provenance.d.ts.map +1 -1
- package/dist/provenance/provenance.js +2 -58
- package/dist/provenance/provenance.js.map +1 -1
- package/dist/render/behaviouralRunners.d.ts +0 -29
- package/dist/render/behaviouralRunners.d.ts.map +1 -1
- package/dist/render/behaviouralRunners.js +6 -69
- package/dist/render/behaviouralRunners.js.map +1 -1
- package/dist/render/configurationNotRead.d.ts +3 -0
- package/dist/render/configurationNotRead.d.ts.map +1 -0
- package/dist/render/configurationNotRead.js +17 -0
- package/dist/render/configurationNotRead.js.map +1 -0
- package/dist/render/discoveryScope.d.ts +0 -37
- package/dist/render/discoveryScope.d.ts.map +1 -1
- package/dist/render/discoveryScope.js +3 -39
- package/dist/render/discoveryScope.js.map +1 -1
- package/dist/render/evidenceGrid.d.ts +1 -35
- package/dist/render/evidenceGrid.d.ts.map +1 -1
- package/dist/render/evidenceGrid.js +21 -103
- package/dist/render/evidenceGrid.js.map +1 -1
- package/dist/render/excludedSteps.d.ts +0 -26
- package/dist/render/excludedSteps.d.ts.map +1 -1
- package/dist/render/excludedSteps.js +4 -32
- package/dist/render/excludedSteps.js.map +1 -1
- package/dist/render/fitnessFunctions.d.ts +3 -0
- package/dist/render/fitnessFunctions.d.ts.map +1 -0
- package/dist/render/fitnessFunctions.js +12 -0
- package/dist/render/fitnessFunctions.js.map +1 -0
- package/dist/render/json.d.ts +0 -11
- package/dist/render/json.d.ts.map +1 -1
- package/dist/render/json.js +0 -11
- package/dist/render/json.js.map +1 -1
- package/dist/render/markdown.d.ts +1 -55
- package/dist/render/markdown.d.ts.map +1 -1
- package/dist/render/markdown.js +128 -467
- package/dist/render/markdown.js.map +1 -1
- package/dist/render/provenanceSection.d.ts +0 -22
- package/dist/render/provenanceSection.d.ts.map +1 -1
- package/dist/render/provenanceSection.js +10 -53
- package/dist/render/provenanceSection.js.map +1 -1
- package/dist/render/reconcilerSteps.d.ts +0 -25
- package/dist/render/reconcilerSteps.d.ts.map +1 -1
- package/dist/render/reconcilerSteps.js +5 -30
- package/dist/render/reconcilerSteps.js.map +1 -1
- package/dist/render/runVerdict.d.ts +0 -38
- package/dist/render/runVerdict.d.ts.map +1 -1
- package/dist/render/runVerdict.js +62 -129
- package/dist/render/runVerdict.js.map +1 -1
- package/dist/render/scenarioCodeErrorsSection.d.ts +3 -0
- package/dist/render/scenarioCodeErrorsSection.d.ts.map +1 -0
- package/dist/render/scenarioCodeErrorsSection.js +45 -0
- package/dist/render/scenarioCodeErrorsSection.js.map +1 -0
- package/dist/render/stepAccounting.d.ts +0 -36
- package/dist/render/stepAccounting.d.ts.map +1 -1
- package/dist/render/stepAccounting.js +5 -49
- package/dist/render/stepAccounting.js.map +1 -1
- package/dist/render/testVolume.d.ts +0 -25
- package/dist/render/testVolume.d.ts.map +1 -1
- package/dist/render/testVolume.js +4 -35
- package/dist/render/testVolume.js.map +1 -1
- package/package.json +4 -1
- package/dist/domain/checkCharacteristics.d.ts +0 -88
- package/dist/domain/checkCharacteristics.d.ts.map +0 -1
- package/dist/domain/checkCharacteristics.js +0 -109
- package/dist/domain/checkCharacteristics.js.map +0 -1
- package/dist/domain/fitnessChecks.d.ts +0 -79
- package/dist/domain/fitnessChecks.d.ts.map +0 -1
- package/dist/domain/fitnessChecks.js +0 -81
- package/dist/domain/fitnessChecks.js.map +0 -1
- package/dist/domain/qualityCheckFaultMessages.d.ts +0 -43
- package/dist/domain/qualityCheckFaultMessages.d.ts.map +0 -1
- package/dist/domain/qualityCheckFaultMessages.js +0 -38
- package/dist/domain/qualityCheckFaultMessages.js.map +0 -1
- package/dist/lib/featureCode.d.ts +0 -21
- package/dist/lib/featureCode.d.ts.map +0 -1
- package/dist/lib/featureCode.js +0 -24
- package/dist/lib/featureCode.js.map +0 -1
- package/dist/parse/corpusCodeFaults.d.ts +0 -76
- package/dist/parse/corpusCodeFaults.d.ts.map +0 -1
- package/dist/parse/corpusCodeFaults.js +0 -121
- package/dist/parse/corpusCodeFaults.js.map +0 -1
- package/dist/parse/corpusFaults.d.ts +0 -124
- package/dist/parse/corpusFaults.d.ts.map +0 -1
- package/dist/parse/corpusFaults.js +0 -72
- package/dist/parse/corpusFaults.js.map +0 -1
- package/dist/parse/corpusGrammarFaults.d.ts +0 -71
- package/dist/parse/corpusGrammarFaults.d.ts.map +0 -1
- package/dist/parse/corpusGrammarFaults.js +0 -292
- package/dist/parse/corpusGrammarFaults.js.map +0 -1
- package/dist/parse/runningStaticChecks.d.ts +0 -125
- package/dist/parse/runningStaticChecks.d.ts.map +0 -1
- package/dist/parse/runningStaticChecks.js +0 -316
- package/dist/parse/runningStaticChecks.js.map +0 -1
- package/dist/render/staticChecks.d.ts +0 -23
- package/dist/render/staticChecks.d.ts.map +0 -1
- package/dist/render/staticChecks.js +0 -69
- package/dist/render/staticChecks.js.map +0 -1
|
@@ -1,92 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
* The whole-document report model (@SCN-RMD-001) — the ONE model
|
|
3
|
-
* both renderings consume, in document order, so the JSON and the markdown are one
|
|
4
|
-
* model in two renderings, not two dialects.
|
|
5
|
-
*
|
|
6
|
-
* `assembleRenderInput` builds it from the existing reconcile pieces (the balance, the run
|
|
7
|
-
* context, and the obligation / observation / static-check sibling reads). The JSON renderer collapses
|
|
8
|
-
* to a glue-free `JSON.stringify(assembleRenderInput(...))`. The assembler is the ONLY place the
|
|
9
|
-
* JSON-surface vocabulary lives — the manifesto-vocabulary key renames (the revert)
|
|
10
|
-
* are MAPPED here so they never ripple into markdown.ts / evidenceObservations.ts internals, keeping the
|
|
11
|
-
* markdown byte-identical this slice.
|
|
12
|
-
*
|
|
13
|
-
* The sections are in document order with `runProvenance` renamed, a materialised `summary`,
|
|
14
|
-
* the per-scenario reconciliation under `evidenceReconciliation` (RMD-002), and the observed
|
|
15
|
-
* evidence under `evidenceObservations` (RMD-003) — every JSON section reads in the manifesto's
|
|
16
|
-
* vocabulary. The static-check census is `summary.staticChecks` counts alone (2.4): its
|
|
17
|
-
* member detail lives in the rows (named → `@lint` sub-rows; no-evidence-obligation → the suspense row),
|
|
18
|
-
* so there is no standalone `staticChecks` section — symmetric with the runtime side.
|
|
19
|
-
*
|
|
20
|
-
* Parent: (@SCN-RMD-001).
|
|
21
|
-
*/
|
|
1
|
+
import type { ScenarioCodeError, ScenarioCodePopulation } from "../domain/scenarioCodeError.js";
|
|
22
2
|
import type { Ledger } from "../model.js";
|
|
23
3
|
import type { EvidenceReconciliation, Summary } from "../domain/evidenceReconciliation.js";
|
|
24
4
|
import { type ProvenanceObject, type RunContext } from "../provenance/provenance.js";
|
|
25
|
-
import type { EvidenceObligations, UntaggedScenario } from "../census/evidenceObligations.js";
|
|
26
|
-
export type { ScenarioReconciliationTotals, EvidenceObligationTotals, MissingByQualityCheck,
|
|
27
|
-
export type { Summary, TestVolumeTotals,
|
|
28
|
-
/** The evidence-obligation census section, as serialised on the report. */
|
|
5
|
+
import type { EvidenceObligations, SharedScnCode, UntaggedScenario } from "../census/evidenceObligations.js";
|
|
6
|
+
export type { ScenarioReconciliationTotals, EvidenceObligationTotals, MissingByQualityCheck, FitnessTally, } from "../domain/ledger.js";
|
|
7
|
+
export type { Summary, TestVolumeTotals, FitnessFunctionTotals, EvidenceReconciliation, } from "../domain/evidenceReconciliation.js";
|
|
29
8
|
export interface EvidenceObligationsSection {
|
|
30
9
|
excludedOccurrences: number;
|
|
31
10
|
untaggedScenarios: UntaggedScenario[];
|
|
32
|
-
|
|
11
|
+
sharedScnCodes?: SharedScnCode[];
|
|
33
12
|
}
|
|
34
|
-
/**
|
|
35
|
-
* Presentation metadata — a small top-level object holding the run's PRESENTATION
|
|
36
|
-
* facts (names/titles), kept cleanly SEPARATE from the reconciliation records (`summary` /
|
|
37
|
-
* `evidenceReconciliation` / `evidenceObservations` / `staticChecks`). It carries the feature
|
|
38
|
-
* titles (the `feature-code → slug` map the by-feature cut names each feature from); it is
|
|
39
|
-
* NOT a reconciliation record, so it does not sit as a sibling of the records. Present only
|
|
40
|
-
* when the run carries ≥1 coded feature (i.e. when `featureNames` is non-empty).
|
|
41
|
-
*/
|
|
42
13
|
export interface ReportMetadata {
|
|
43
|
-
/** The feature titles — the `feature-code → slug` map (@SCN-RMD-006). */
|
|
44
14
|
featureNames?: Record<string, string>;
|
|
45
15
|
}
|
|
46
|
-
/**
|
|
47
|
-
* The whole-document report — the ordered sections as data. RMD-002 / RMD-003 rename the interim
|
|
48
|
-
* `scenarios` / `evidenceObservations` keys to `evidenceReconciliation` / `evidenceObservations`;
|
|
49
|
-
* the static-check census is `summary.staticChecks` counts alone (2.4 — the standalone
|
|
50
|
-
* `staticChecks` section collapsed, its member detail now in the rows). The `warnings` top-level
|
|
51
|
-
* key was RETIRED — a zero-evidence scenario is now a `both-missing` row in
|
|
52
|
-
* `evidenceReconciliation`, not a separate axis.
|
|
53
|
-
*/
|
|
54
16
|
export interface RenderInput {
|
|
55
17
|
runProvenance: ProvenanceObject;
|
|
56
18
|
summary: Summary;
|
|
57
|
-
/**
|
|
58
|
-
* THE LEDGER — the accounts with their posted entries (@SCN-RMD-002, 3F-1848). Sits BESIDE
|
|
59
|
-
* `summary`, so root reads as chain step 6 literally: "The summary has the totals and the ledger
|
|
60
|
-
* the detail."
|
|
61
|
-
*
|
|
62
|
-
* Renamed from the member `evidenceReconciliation` — the 3F-1138 error ONE LAYER DOWN. This
|
|
63
|
-
* document IS the Evidence Reconciliation, so a key of that name was the layer naming itself
|
|
64
|
-
* inside itself, and the grid it named is by canon the LEDGER.
|
|
65
|
-
*
|
|
66
|
-
* Typed `Ledger`, NOT `ScenarioReconciliation[]`: code identifiers and JSON keys are ONE
|
|
67
|
-
* vocabulary (manifesto line 3), so this and `"ledger": { "scenarioReconciliations": [...] }`
|
|
68
|
-
* agree as OBJECTS — a Ledger that holds entries cannot serialise as a bare array of rows.
|
|
69
|
-
*/
|
|
70
19
|
ledger: Ledger;
|
|
20
|
+
scenarioCodeErrors?: readonly ScenarioCodeError[];
|
|
21
|
+
scenarioCodePopulation?: ScenarioCodePopulation;
|
|
71
22
|
evidenceObligations?: EvidenceObligationsSection;
|
|
72
|
-
/**
|
|
73
|
-
* The presentation metadata — the feature titles (`metadata.featureNames`, the
|
|
74
|
-
* `feature-code → slug` map the by-feature cut names each feature in full from). It is
|
|
75
|
-
* presentation *metadata* (names), NOT a reconciliation record, so it is cleanly separated
|
|
76
|
-
* from the records rather than sitting as their sibling. The LAST document key (the retired
|
|
77
|
-
* `warnings` key no longer trails it).
|
|
78
|
-
*/
|
|
79
23
|
metadata?: ReportMetadata;
|
|
80
24
|
}
|
|
81
|
-
/**
|
|
82
|
-
* Assemble the whole-document report from the reconcile pieces. The JSON-surface vocabulary
|
|
83
|
-
* lives HERE (mapped, not renamed at the model): `provenance` → `runProvenance`; `scenarios`
|
|
84
|
-
* → `evidenceReconciliation`; `evidenceObservations` → `evidenceObservations` (+ `phantom`/`suspense` →
|
|
85
|
-
* `phantomEvidenceObservations`/`suspenseEvidenceObservations`); the static-check census is the
|
|
86
|
-
* materialised `summary.staticChecks` counts alone (2.4 — no standalone section, the
|
|
87
|
-
* member detail lives in the rows); the summary is materialised. Sections are inserted in document
|
|
88
|
-
* order, so JSON.stringify preserves it. The optional sections are included only when their sibling
|
|
89
|
-
* read is threaded (the CLI always threads them; the narrower-arg tests exercise omission).
|
|
90
|
-
*/
|
|
91
25
|
export declare function assembleRenderInput(evidenceReconciliation: EvidenceReconciliation, ctx: RunContext, evidenceObligations?: EvidenceObligations, featureNames?: ReadonlyMap<string, string>): RenderInput;
|
|
92
26
|
//# sourceMappingURL=renderInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderInput.d.ts","sourceRoot":"","sources":["../../src/assemble/renderInput.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"renderInput.d.ts","sourceRoot":"","sources":["../../src/assemble/renderInput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAChG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAoB,KAAK,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACvG,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAE7G,YAAY,EACV,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EACrB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAE7C,MAAM,WAAW,0BAA0B;IACzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,gBAAgB,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAClD,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CACjC,sBAAsB,EAAE,sBAAsB,EAC9C,GAAG,EAAE,UAAU,EACf,mBAAmB,CAAC,EAAE,mBAAmB,EACzC,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,WAAW,CAmBb"}
|
|
@@ -1,61 +1,19 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The whole-document report model (@SCN-RMD-001) — the ONE model
|
|
3
|
-
* both renderings consume, in document order, so the JSON and the markdown are one
|
|
4
|
-
* model in two renderings, not two dialects.
|
|
5
|
-
*
|
|
6
|
-
* `assembleRenderInput` builds it from the existing reconcile pieces (the balance, the run
|
|
7
|
-
* context, and the obligation / observation / static-check sibling reads). The JSON renderer collapses
|
|
8
|
-
* to a glue-free `JSON.stringify(assembleRenderInput(...))`. The assembler is the ONLY place the
|
|
9
|
-
* JSON-surface vocabulary lives — the manifesto-vocabulary key renames (the revert)
|
|
10
|
-
* are MAPPED here so they never ripple into markdown.ts / evidenceObservations.ts internals, keeping the
|
|
11
|
-
* markdown byte-identical this slice.
|
|
12
|
-
*
|
|
13
|
-
* The sections are in document order with `runProvenance` renamed, a materialised `summary`,
|
|
14
|
-
* the per-scenario reconciliation under `evidenceReconciliation` (RMD-002), and the observed
|
|
15
|
-
* evidence under `evidenceObservations` (RMD-003) — every JSON section reads in the manifesto's
|
|
16
|
-
* vocabulary. The static-check census is `summary.staticChecks` counts alone (2.4): its
|
|
17
|
-
* member detail lives in the rows (named → `@lint` sub-rows; no-evidence-obligation → the suspense row),
|
|
18
|
-
* so there is no standalone `staticChecks` section — symmetric with the runtime side.
|
|
19
|
-
*
|
|
20
|
-
* Parent: (@SCN-RMD-001).
|
|
21
|
-
*/
|
|
22
1
|
import { provenanceObject } from "../provenance/provenance.js";
|
|
23
|
-
/**
|
|
24
|
-
* Assemble the whole-document report from the reconcile pieces. The JSON-surface vocabulary
|
|
25
|
-
* lives HERE (mapped, not renamed at the model): `provenance` → `runProvenance`; `scenarios`
|
|
26
|
-
* → `evidenceReconciliation`; `evidenceObservations` → `evidenceObservations` (+ `phantom`/`suspense` →
|
|
27
|
-
* `phantomEvidenceObservations`/`suspenseEvidenceObservations`); the static-check census is the
|
|
28
|
-
* materialised `summary.staticChecks` counts alone (2.4 — no standalone section, the
|
|
29
|
-
* member detail lives in the rows); the summary is materialised. Sections are inserted in document
|
|
30
|
-
* order, so JSON.stringify preserves it. The optional sections are included only when their sibling
|
|
31
|
-
* read is threaded (the CLI always threads them; the narrower-arg tests exercise omission).
|
|
32
|
-
*/
|
|
33
2
|
export function assembleRenderInput(evidenceReconciliation, ctx, evidenceObligations, featureNames) {
|
|
34
3
|
return {
|
|
35
4
|
runProvenance: provenanceObject(ctx),
|
|
36
|
-
// THE CONCEPT, SPREAD (3F-2233) — `summary` then `ledger`, exactly the key order the document
|
|
37
|
-
// has always had, so the JSON is byte-identical. `assemble` no longer BUILDS either: the
|
|
38
|
-
// Evidence Reconciliation arrives whole from its own factory, and this function only frames it
|
|
39
|
-
// with the run's provenance, the census section and the presentation metadata.
|
|
40
5
|
...evidenceReconciliation,
|
|
41
6
|
...(evidenceObligations
|
|
42
7
|
? {
|
|
43
8
|
evidenceObligations: {
|
|
44
9
|
excludedOccurrences: evidenceObligations.excludedOccurrences,
|
|
45
10
|
untaggedScenarios: evidenceObligations.untaggedScenarios,
|
|
46
|
-
|
|
11
|
+
...(evidenceObligations.sharedScnCodes && evidenceObligations.sharedScnCodes.length > 0
|
|
12
|
+
? { sharedScnCodes: evidenceObligations.sharedScnCodes }
|
|
13
|
+
: {}),
|
|
47
14
|
},
|
|
48
15
|
}
|
|
49
16
|
: {}),
|
|
50
|
-
// No staticChecks census SECTION (2.4): the guard member detail lives in the rows
|
|
51
|
-
// (named → each scenario's `@lint` sub-row; no-evidence-obligation → the suspense row), symmetric with
|
|
52
|
-
// the runtime side. The counts survive in `summary.staticChecks` (the balance-check identity).
|
|
53
|
-
// No `evidenceObservations` SECTION (@SCN-RMD-003 / @SCN-RPT-010, 3F-2103): the runtime
|
|
54
|
-
// evidence-observation counting is RETIRED to the Ledger fold (`runtimeObservationTally`). Its
|
|
55
|
-
// raw totals re-home onto `summary.rawByRuntimeQualityCheck`; the per-`(scnId, quality-check)`
|
|
56
|
-
// `attributed[]` did NOT re-home — it re-represented the posted credits the Ledger already
|
|
57
|
-
// carries (`ledger.scenarioReconciliations[].evidenceObservations`), the parallel store the
|
|
58
|
-
// done-criterion deletes rather than relocates. The grid cell counts those credits off the rows.
|
|
59
17
|
...(featureNames && featureNames.size > 0
|
|
60
18
|
? { metadata: { featureNames: Object.fromEntries(featureNames) } }
|
|
61
19
|
: {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderInput.js","sourceRoot":"","sources":["../../src/assemble/renderInput.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"renderInput.js","sourceRoot":"","sources":["../../src/assemble/renderInput.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAA0C,MAAM,6BAA6B,CAAC;AAoCvG,MAAM,UAAU,mBAAmB,CACjC,sBAA8C,EAC9C,GAAe,EACf,mBAAyC,EACzC,YAA0C;IAE1C,OAAO;QACL,aAAa,EAAE,gBAAgB,CAAC,GAAG,CAAC;QACpC,GAAG,sBAAsB;QACzB,GAAG,CAAC,mBAAmB;YACrB,CAAC,CAAC;gBACE,mBAAmB,EAAE;oBACnB,mBAAmB,EAAE,mBAAmB,CAAC,mBAAmB;oBAC5D,iBAAiB,EAAE,mBAAmB,CAAC,iBAAiB;oBACxD,GAAG,CAAC,mBAAmB,CAAC,cAAc,IAAI,mBAAmB,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;wBACrF,CAAC,CAAC,EAAE,cAAc,EAAE,mBAAmB,CAAC,cAAc,EAAE;wBACxD,CAAC,CAAC,EAAE,CAAC;iBACR;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC;YACvC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,EAAE;YAClE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,57 +1,22 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The EvidenceObligations — the obligation-corpus census carried ALONGSIDE the balance, a
|
|
3
|
-
* sibling to both the pure Ledger (the obligation-vs-observation verdict data) and
|
|
4
|
-
* the RunContext (run metadata). It records how the parsed corpus reconciles
|
|
5
|
-
* against EVERY raw @SCN mention in the source: how many ids the source mentioned in
|
|
6
|
-
* total (tag + non-tag context) vs how many were actually read as scenarios.
|
|
7
|
-
*
|
|
8
|
-
* The lone non-derivable corpus fact is `excludedOccurrences` (raw − scenarioCount): the
|
|
9
|
-
* @SCN ids seen in prose, comments, or step text that the tag-line parser ignores.
|
|
10
|
-
* `scenarioCount` is derivable from the balance and `rawScnOccurrences` is derivable
|
|
11
|
-
* as scenarioCount + excludedOccurrences, so only `excludedOccurrences` is persisted
|
|
12
|
-
* on the JSON surface (project design §3). Threaded CLI→renderers exactly like
|
|
13
|
-
* RunContext — a third, OPTIONAL renderer argument — so the existing 2-arg byte/JSON
|
|
14
|
-
* guards stay green untouched.
|
|
15
|
-
*
|
|
16
|
-
* Parent: (@SCN-RPT-008).
|
|
17
|
-
*/
|
|
18
|
-
/**
|
|
19
|
-
* One untagged scenario (@SCN-RPT-014) — a Gherkin scenario header with no
|
|
20
|
-
* `@SCN` tag, located by its feature file + scenario name (the where-to-fix locator).
|
|
21
|
-
*/
|
|
22
1
|
export interface UntaggedScenario {
|
|
23
|
-
/** The feature file the scenario lives in (e.g. `report.feature`). */
|
|
24
2
|
feature: string;
|
|
25
|
-
/** The scenario name — the text after the `Scenario:`/`Outline:`/`Example:` keyword. */
|
|
26
3
|
scenario: string;
|
|
27
4
|
}
|
|
28
|
-
|
|
5
|
+
export declare function untaggedScenarioId({ feature, scenario }: UntaggedScenario): string;
|
|
6
|
+
export interface SharedScnCode {
|
|
7
|
+
scnId: string;
|
|
8
|
+
scenarios: UntaggedScenario[];
|
|
9
|
+
}
|
|
29
10
|
export interface EvidenceObligations {
|
|
30
|
-
/** Every @SCN-FFF-NNN occurrence in the whole source (tag-line + non-tag context). */
|
|
31
11
|
rawScnOccurrences: number;
|
|
32
|
-
/** The @SCN ids actually read as scenarios. */
|
|
33
12
|
scenarioCount: number;
|
|
34
|
-
/** rawScnOccurrences − scenarioCount: ids seen in non-tag context, excluded. */
|
|
35
13
|
excludedOccurrences: number;
|
|
36
|
-
/**
|
|
37
|
-
* Gherkin scenarios with no @SCN tag — feature:scenario locators, sorted.
|
|
38
|
-
* A NEW non-derivable obligation-side datum, so it persists on JSON beside
|
|
39
|
-
* `excludedOccurrences` (project design §3).
|
|
40
|
-
*/
|
|
41
14
|
untaggedScenarios: UntaggedScenario[];
|
|
42
|
-
|
|
43
|
-
* @SCN codes that appear only in prose, never as a tag anywhere — the
|
|
44
|
-
* dangling references, sorted. A cross-corpus `proseCodes − tagCodes` difference,
|
|
45
|
-
* distinct from `excludedOccurrences` (raw occurrences). Non-derivable obligation-side
|
|
46
|
-
* datum → persists on JSON beside the others (project design §3).
|
|
47
|
-
*/
|
|
48
|
-
proseOnlyCodes: string[];
|
|
15
|
+
sharedScnCodes?: SharedScnCode[];
|
|
49
16
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
*/
|
|
56
|
-
export declare function evidenceObligations(raw: number, scenarioCount: number, untaggedScenarios?: UntaggedScenario[], proseOnlyCodes?: string[]): EvidenceObligations;
|
|
17
|
+
export declare function evidenceObligations(raw: number, scenarioCount: number, untaggedScenarios?: UntaggedScenario[], sharedScnCodes?: SharedScnCode[]): EvidenceObligations;
|
|
18
|
+
export declare function sharedScnCodesOf(files: readonly {
|
|
19
|
+
feature: string;
|
|
20
|
+
source: string;
|
|
21
|
+
}[]): SharedScnCode[];
|
|
57
22
|
//# sourceMappingURL=evidenceObligations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidenceObligations.d.ts","sourceRoot":"","sources":["../../src/census/evidenceObligations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evidenceObligations.d.ts","sourceRoot":"","sources":["../../src/census/evidenceObligations.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAElF;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,iBAAiB,GAAE,gBAAgB,EAAO,EAC1C,cAAc,GAAE,aAAa,EAAO,GACnC,mBAAmB,CAQrB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GACpD,aAAa,EAAE,CAWjB"}
|
|
@@ -1,33 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
* The lone non-derivable corpus fact is `excludedOccurrences` (raw − scenarioCount): the
|
|
9
|
-
* @SCN ids seen in prose, comments, or step text that the tag-line parser ignores.
|
|
10
|
-
* `scenarioCount` is derivable from the balance and `rawScnOccurrences` is derivable
|
|
11
|
-
* as scenarioCount + excludedOccurrences, so only `excludedOccurrences` is persisted
|
|
12
|
-
* on the JSON surface (project design §3). Threaded CLI→renderers exactly like
|
|
13
|
-
* RunContext — a third, OPTIONAL renderer argument — so the existing 2-arg byte/JSON
|
|
14
|
-
* guards stay green untouched.
|
|
15
|
-
*
|
|
16
|
-
* Parent: (@SCN-RPT-008).
|
|
17
|
-
*/
|
|
18
|
-
/**
|
|
19
|
-
* Build a EvidenceObligations from the raw-occurrence count, the scenario count,
|
|
20
|
-
* and the untagged scenarios: `excludedOccurrences = raw − scenarioCount` — the ids
|
|
21
|
-
* seen in non-tag context (each scenario contributes exactly one tag-line
|
|
22
|
-
* occurrence). `untaggedScenarios` defaults to empty for callers that don't read them.
|
|
23
|
-
*/
|
|
24
|
-
export function evidenceObligations(raw, scenarioCount, untaggedScenarios = [], proseOnlyCodes = []) {
|
|
1
|
+
import { parseTaggedScenarios } from "../parse/scenarios.js";
|
|
2
|
+
import { CORE_MESSAGES, CoreMessage } from "../domain/messages.js";
|
|
3
|
+
export function untaggedScenarioId({ feature, scenario }) {
|
|
4
|
+
return CORE_MESSAGES[CoreMessage.UntaggedScenarioId](feature, scenario);
|
|
5
|
+
}
|
|
6
|
+
export function evidenceObligations(raw, scenarioCount, untaggedScenarios = [], sharedScnCodes = []) {
|
|
25
7
|
return {
|
|
26
8
|
rawScnOccurrences: raw,
|
|
27
9
|
scenarioCount,
|
|
28
10
|
excludedOccurrences: raw - scenarioCount,
|
|
29
11
|
untaggedScenarios,
|
|
30
|
-
|
|
12
|
+
sharedScnCodes,
|
|
31
13
|
};
|
|
32
14
|
}
|
|
15
|
+
export function sharedScnCodesOf(files) {
|
|
16
|
+
const byCode = new Map();
|
|
17
|
+
for (const { feature, source } of files) {
|
|
18
|
+
for (const { scnId, name } of parseTaggedScenarios(source)) {
|
|
19
|
+
byCode.set(scnId, [...(byCode.get(scnId) ?? []), { feature, scenario: name }]);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return [...byCode]
|
|
23
|
+
.filter(([, scenarios]) => scenarios.length > 1)
|
|
24
|
+
.map(([scnId, scenarios]) => ({ scnId, scenarios }))
|
|
25
|
+
.sort((a, b) => a.scnId.localeCompare(b.scnId));
|
|
26
|
+
}
|
|
33
27
|
//# sourceMappingURL=evidenceObligations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidenceObligations.js","sourceRoot":"","sources":["../../src/census/evidenceObligations.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"evidenceObligations.js","sourceRoot":"","sources":["../../src/census/evidenceObligations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOnE,MAAM,UAAU,kBAAkB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAoB;IACxE,OAAO,aAAa,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC1E,CAAC;AAeD,MAAM,UAAU,mBAAmB,CACjC,GAAW,EACX,aAAqB,EACrB,oBAAwC,EAAE,EAC1C,iBAAkC,EAAE;IAEpC,OAAO;QACL,iBAAiB,EAAE,GAAG;QACtB,aAAa;QACb,mBAAmB,EAAE,GAAG,GAAG,aAAa;QACxC,iBAAiB;QACjB,cAAc;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAAqD;IAErD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;IACrD,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACxC,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC;SACf,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;SAC/C,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;SACnD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidenceOrder.d.ts","sourceRoot":"","sources":["../../src/domain/evidenceOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAUxD,wBAAgB,eAAe,CAC7B,YAAY,EAAE,SAAS,mBAAmB,EAAE,GAC3C,mBAAmB,EAAE,CAOvB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { RUNTIME_QUALITY_CHECKS } from "./ledger.js";
|
|
2
|
+
const QUALITY_CHECK_ORDER = [...RUNTIME_QUALITY_CHECKS, "fitness"];
|
|
3
|
+
function evidenceOrderKey(o) {
|
|
4
|
+
const content = JSON.stringify(o, Object.keys(o).sort());
|
|
5
|
+
return [QUALITY_CHECK_ORDER.indexOf(o.qualityCheck), o.locator ?? "", o.scnId ?? "", content].join("\u0000");
|
|
6
|
+
}
|
|
7
|
+
export function inEvidenceOrder(observations) {
|
|
8
|
+
const byKey = new Map();
|
|
9
|
+
for (const o of observations) {
|
|
10
|
+
const key = evidenceOrderKey(o);
|
|
11
|
+
byKey.set(key, [...(byKey.get(key) ?? []), o]);
|
|
12
|
+
}
|
|
13
|
+
return [...byKey.keys()].sort().flatMap((key) => byKey.get(key));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=evidenceOrder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidenceOrder.js","sourceRoot":"","sources":["../../src/domain/evidenceOrder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,mBAAmB,GAAsB,CAAC,GAAG,sBAAsB,EAAE,SAAS,CAAC,CAAC;AAEtF,SAAS,gBAAgB,CAAC,CAAsB;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/G,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,YAA4C;IAE5C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiC,CAAC;IACvD,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAChC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC;AACpE,CAAC"}
|