my-frontend-observer 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +60 -0
- package/README.md +39 -11
- package/dist/application/frontendContractEvaluationService.d.ts +49 -0
- package/dist/application/frontendContractEvaluationService.js +112 -0
- package/dist/application/frontendContractEvaluationService.js.map +1 -0
- package/dist/application/frontendContractPersistenceService.d.ts +56 -0
- package/dist/application/frontendContractPersistenceService.js +91 -0
- package/dist/application/frontendContractPersistenceService.js.map +1 -0
- package/dist/artifacts/comparisonArtifactReader.d.ts +18 -0
- package/dist/artifacts/comparisonArtifactReader.js +35 -0
- package/dist/artifacts/comparisonArtifactReader.js.map +1 -0
- package/dist/artifacts/frontendContractArtifactReader.d.ts +24 -0
- package/dist/artifacts/frontendContractArtifactReader.js +47 -0
- package/dist/artifacts/frontendContractArtifactReader.js.map +1 -0
- package/dist/artifacts/frontendContractArtifactWriter.d.ts +34 -0
- package/dist/artifacts/frontendContractArtifactWriter.js +70 -0
- package/dist/artifacts/frontendContractArtifactWriter.js.map +1 -0
- package/dist/artifacts/frontendContractEvaluationArtifactReader.d.ts +17 -0
- package/dist/artifacts/frontendContractEvaluationArtifactReader.js +34 -0
- package/dist/artifacts/frontendContractEvaluationArtifactReader.js.map +1 -0
- package/dist/artifacts/frontendContractEvaluationArtifactWriter.d.ts +32 -0
- package/dist/artifacts/frontendContractEvaluationArtifactWriter.js +58 -0
- package/dist/artifacts/frontendContractEvaluationArtifactWriter.js.map +1 -0
- package/dist/cli.js +496 -6
- package/dist/cli.js.map +1 -1
- package/dist/domain/frontendContractEvaluation.d.ts +57 -0
- package/dist/domain/frontendContractEvaluation.js +454 -0
- package/dist/domain/frontendContractEvaluation.js.map +1 -0
- package/dist/domain/frontendContractEvaluationArtifact.d.ts +65 -0
- package/dist/domain/frontendContractEvaluationArtifact.js +108 -0
- package/dist/domain/frontendContractEvaluationArtifact.js.map +1 -0
- package/dist/domain/frontendContractIdentity.d.ts +39 -0
- package/dist/domain/frontendContractIdentity.js +70 -0
- package/dist/domain/frontendContractIdentity.js.map +1 -0
- package/dist/domain/frontendContracts.d.ts +188 -0
- package/dist/domain/frontendContracts.js +260 -0
- package/dist/domain/frontendContracts.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/docs/ARCHITECTURE.md +98 -1
- package/docs/CI_CD.md +47 -0
- package/docs/COMMANDS.md +162 -0
- package/docs/CONTRACTS.md +175 -3
- package/docs/CURRENT_STATE.md +92 -10
- package/docs/DEVELOPMENT.md +58 -10
- package/docs/PROJECT_OVERVIEW.md +19 -13
- package/docs/QUICKSTART.md +5 -0
- package/docs/RELEASE.md +17 -10
- package/docs/ROADMAP.md +6 -0
- package/docs/SECURITY.md +13 -1
- package/docs/WORKFLOWS.md +65 -8
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -5,6 +5,8 @@ import { normalizeRequest } from './request/request.js';
|
|
|
5
5
|
import { getProducerInfo } from './domain/schema.js';
|
|
6
6
|
import { observe } from './application/observationPersistence.js';
|
|
7
7
|
import { compareAndPersistFromArtifactRoots } from './application/comparisonService.js';
|
|
8
|
+
import { approveAndPersistBaseline, persistPerChangeContract } from './application/frontendContractPersistenceService.js';
|
|
9
|
+
import { evaluateAndPersistFromArtifactRoots } from './application/frontendContractEvaluationService.js';
|
|
8
10
|
const defaultIO = {
|
|
9
11
|
stdout: (text) => {
|
|
10
12
|
process.stdout.write(text);
|
|
@@ -19,17 +21,25 @@ Usage:
|
|
|
19
21
|
my-frontend-observer <command> [options]
|
|
20
22
|
|
|
21
23
|
Commands:
|
|
22
|
-
observe
|
|
23
|
-
|
|
24
|
-
compare
|
|
25
|
-
|
|
24
|
+
observe Capture one bounded browser observation and persist
|
|
25
|
+
it as a portable artifact.
|
|
26
|
+
compare Compare two persisted observations and write a
|
|
27
|
+
structured comparison artifact.
|
|
28
|
+
approve-baseline Explicitly approve and persist one already-authored
|
|
29
|
+
persistent baseline contract against the observation
|
|
30
|
+
it claims to approve.
|
|
31
|
+
save-change-contract Validate and persist one already-authored per-change
|
|
32
|
+
contract so it can later be evaluated.
|
|
33
|
+
evaluate-contract Evaluate a candidate change against an approved
|
|
34
|
+
baseline, a per-change contract, and existing
|
|
35
|
+
before/after/comparison evidence, and persist the
|
|
36
|
+
result.
|
|
26
37
|
|
|
27
38
|
Options:
|
|
28
39
|
--help Show this help.
|
|
29
40
|
--version Print the package version.
|
|
30
41
|
|
|
31
|
-
Run "my-frontend-observer
|
|
32
|
-
--help" for command-specific options.
|
|
42
|
+
Run "my-frontend-observer <command> --help" for command-specific options.
|
|
33
43
|
`;
|
|
34
44
|
const OBSERVE_HELP = `Usage:
|
|
35
45
|
my-frontend-observer observe --url <loopback-url> [options]
|
|
@@ -115,6 +125,105 @@ artifact, invalid configuration, or a failed artifact write, prints
|
|
|
115
125
|
structured diagnostics to stderr and exits nonzero. No progress output is
|
|
116
126
|
printed during a normal comparison.
|
|
117
127
|
`;
|
|
128
|
+
const APPROVE_BASELINE_HELP = `Usage:
|
|
129
|
+
my-frontend-observer approve-baseline --observation <observation-artifact-root> --contract-file <json-file> --output <directory>
|
|
130
|
+
|
|
131
|
+
Required:
|
|
132
|
+
--observation <path> Root directory of the persisted observation
|
|
133
|
+
artifact (the directory containing its
|
|
134
|
+
manifest.json) that this baseline claims to
|
|
135
|
+
approve.
|
|
136
|
+
--contract-file <json-file> Local JSON file containing one already-authored
|
|
137
|
+
persistent baseline contract (the raw contract
|
|
138
|
+
value, no wrapper field). Relative paths resolve
|
|
139
|
+
from the current working directory; the file
|
|
140
|
+
path itself is never persisted or included in
|
|
141
|
+
any identity.
|
|
142
|
+
--output <directory> Portable, relative output location for the
|
|
143
|
+
baseline artifact.
|
|
144
|
+
|
|
145
|
+
Options:
|
|
146
|
+
--help Show this help.
|
|
147
|
+
|
|
148
|
+
This command is the only explicit baseline-approval act in the observer -
|
|
149
|
+
approval is never inferred from a successful comparison or evaluation. The
|
|
150
|
+
supplied contract's source-observation reference must match the supplied
|
|
151
|
+
observation artifact's stable identity; a mismatched or unrelated observation
|
|
152
|
+
is rejected. Any \`supersedesBaselineId\` already authored in the contract is
|
|
153
|
+
preserved exactly - this command never discovers, infers, or deletes a prior
|
|
154
|
+
baseline. Remains local and non-mutating: it never launches a browser and
|
|
155
|
+
never modifies the source observation or any existing baseline artifact. On
|
|
156
|
+
success, prints a concise result and exits 0. On invalid syntax, an
|
|
157
|
+
unreadable/malformed contract file, a non-baseline contract, a
|
|
158
|
+
structurally invalid contract, a source-observation mismatch, an existing
|
|
159
|
+
artifact collision, or a persistence failure, prints structured diagnostics
|
|
160
|
+
to stderr and exits nonzero.
|
|
161
|
+
`;
|
|
162
|
+
const SAVE_CHANGE_CONTRACT_HELP = `Usage:
|
|
163
|
+
my-frontend-observer save-change-contract --contract-file <json-file> --output <directory>
|
|
164
|
+
|
|
165
|
+
Required:
|
|
166
|
+
--contract-file <json-file> Local JSON file containing one already-authored
|
|
167
|
+
per-change contract (the raw contract value, no
|
|
168
|
+
wrapper field). Relative paths resolve from the
|
|
169
|
+
current working directory; the file path itself
|
|
170
|
+
is never persisted or included in any identity.
|
|
171
|
+
--output <directory> Portable, relative output location for the
|
|
172
|
+
change-contract artifact.
|
|
173
|
+
|
|
174
|
+
Options:
|
|
175
|
+
--help Show this help.
|
|
176
|
+
|
|
177
|
+
This command validates and persists a per-change contract only - it does not
|
|
178
|
+
approve anything. Any \`supersedesBaselineClauseIds\` already authored on a
|
|
179
|
+
clause is preserved exactly; resolving those references against a particular
|
|
180
|
+
baseline remains \`evaluate-contract\`'s responsibility, not this command's.
|
|
181
|
+
Remains local and non-mutating. On success, prints a concise result and
|
|
182
|
+
exits 0. On invalid syntax, an unreadable/malformed contract file, a
|
|
183
|
+
non-change contract (e.g. a persistent baseline contract), a structurally
|
|
184
|
+
invalid contract (including an authored \`unexpected\` category, which is
|
|
185
|
+
never a valid authored scope), an existing artifact collision, or a
|
|
186
|
+
persistence failure, prints structured diagnostics to stderr and exits
|
|
187
|
+
nonzero.
|
|
188
|
+
`;
|
|
189
|
+
const EVALUATE_CONTRACT_HELP = `Usage:
|
|
190
|
+
my-frontend-observer evaluate-contract --before <observation-artifact-root> --after <observation-artifact-root> --comparison <comparison-artifact-root> --baseline <baseline-contract-artifact-root> --change <per-change-contract-artifact-root> --output <directory> [--enforce]
|
|
191
|
+
|
|
192
|
+
Required:
|
|
193
|
+
--before <path> Root directory of the "before" persisted observation
|
|
194
|
+
artifact.
|
|
195
|
+
--after <path> Root directory of the "after" persisted observation
|
|
196
|
+
artifact.
|
|
197
|
+
--comparison <path> Root directory of the already-persisted comparison
|
|
198
|
+
artifact for that before/after pair.
|
|
199
|
+
--baseline <path> Root directory of the already-approved persistent
|
|
200
|
+
baseline contract artifact.
|
|
201
|
+
--change <path> Root directory of the already-persisted per-change
|
|
202
|
+
contract artifact.
|
|
203
|
+
--output <directory> Portable, relative output location for the
|
|
204
|
+
evaluation artifact.
|
|
205
|
+
|
|
206
|
+
Options:
|
|
207
|
+
--enforce Make a FAIL verdict produce a nonzero process exit status. A
|
|
208
|
+
FAIL evaluation is always persisted and printed identically
|
|
209
|
+
with or without this flag - it changes only the process exit
|
|
210
|
+
code, never evaluation identity, contents, or persistence.
|
|
211
|
+
--help Show this help.
|
|
212
|
+
|
|
213
|
+
This command never launches a browser, never re-resolves targets, and never
|
|
214
|
+
recomputes comparison or relationship evidence - it reads the already-
|
|
215
|
+
persisted before/after observations and comparison exactly as given and
|
|
216
|
+
evaluates the supplied baseline/change contracts against them exactly once.
|
|
217
|
+
A FAIL verdict (a found regression or unsatisfied contract clause) is a
|
|
218
|
+
successful, persisted evaluation outcome, not an execution error; without
|
|
219
|
+
--enforce it exits 0 like PASS. On success (evaluation constructed and
|
|
220
|
+
persisted, verdict PASS, or verdict FAIL without --enforce), prints a
|
|
221
|
+
concise result and exits 0. With --enforce and verdict FAIL, prints the same
|
|
222
|
+
result and exits nonzero. On invalid syntax, an unreadable/malformed/
|
|
223
|
+
incoherent source artifact, or a persistence failure (evaluation could not
|
|
224
|
+
even be constructed), prints structured diagnostics to stderr, persists
|
|
225
|
+
nothing, and exits nonzero.
|
|
226
|
+
`;
|
|
118
227
|
function parseViewport(raw) {
|
|
119
228
|
const match = /^(\d+)x(\d+)$/.exec(raw);
|
|
120
229
|
if (!match)
|
|
@@ -435,6 +544,260 @@ function loadComparisonConfigFile(filePath) {
|
|
|
435
544
|
}
|
|
436
545
|
return { ok: true, config: parsed };
|
|
437
546
|
}
|
|
547
|
+
/**
|
|
548
|
+
* CLI/input-boundary-only responsibility, mirroring `loadComparisonConfigFile`:
|
|
549
|
+
* read one local JSON file and validate only the root shape this file format
|
|
550
|
+
* owns (plain, non-array object) - the file supplies the raw contract value
|
|
551
|
+
* directly (no wrapper field). Every semantic/structural rule (artifact
|
|
552
|
+
* kind, schema version, contract class, clause shape, authored category
|
|
553
|
+
* vocabulary) stays owned by the existing frozen domain validators
|
|
554
|
+
* (`isValidPersistentBaselineContract`/`isValidPerChangeContract`, invoked
|
|
555
|
+
* inside the application layer), never duplicated here. The file path
|
|
556
|
+
* itself is never returned to the caller beyond this function, so it can
|
|
557
|
+
* never reach a persisted artifact or its identity.
|
|
558
|
+
*/
|
|
559
|
+
function loadContractFile(filePath, flagLabel) {
|
|
560
|
+
let rawText;
|
|
561
|
+
try {
|
|
562
|
+
rawText = readFileSync(filePath, 'utf8');
|
|
563
|
+
}
|
|
564
|
+
catch (err) {
|
|
565
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
566
|
+
return { ok: false, error: `${flagLabel} could not be read: ${message}` };
|
|
567
|
+
}
|
|
568
|
+
let parsed;
|
|
569
|
+
try {
|
|
570
|
+
parsed = JSON.parse(rawText);
|
|
571
|
+
}
|
|
572
|
+
catch (err) {
|
|
573
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
574
|
+
return { ok: false, error: `${flagLabel} is not valid JSON: ${message}` };
|
|
575
|
+
}
|
|
576
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
|
|
577
|
+
return { ok: false, error: `${flagLabel} root must be a JSON object` };
|
|
578
|
+
}
|
|
579
|
+
return { ok: true, contract: parsed };
|
|
580
|
+
}
|
|
581
|
+
/** CLI-syntax-only parsing, mirroring `parseCompareArgs`. */
|
|
582
|
+
function parseApproveBaselineArgs(argv) {
|
|
583
|
+
const errors = [];
|
|
584
|
+
let observationRoot;
|
|
585
|
+
let observationFlagCount = 0;
|
|
586
|
+
let contractFilePath;
|
|
587
|
+
let contractFileFlagCount = 0;
|
|
588
|
+
let outputLocation;
|
|
589
|
+
let outputFlagCount = 0;
|
|
590
|
+
for (let i = 0; i < argv.length; i += 1) {
|
|
591
|
+
const arg = argv[i];
|
|
592
|
+
switch (arg) {
|
|
593
|
+
case '--observation': {
|
|
594
|
+
const value = argv[(i += 1)];
|
|
595
|
+
observationFlagCount += 1;
|
|
596
|
+
if (value === undefined)
|
|
597
|
+
errors.push('--observation requires a path argument');
|
|
598
|
+
else if (observationFlagCount > 1)
|
|
599
|
+
errors.push('--observation may only be specified once');
|
|
600
|
+
else
|
|
601
|
+
observationRoot = value;
|
|
602
|
+
break;
|
|
603
|
+
}
|
|
604
|
+
case '--contract-file': {
|
|
605
|
+
const value = argv[(i += 1)];
|
|
606
|
+
contractFileFlagCount += 1;
|
|
607
|
+
if (value === undefined)
|
|
608
|
+
errors.push('--contract-file requires a file path argument');
|
|
609
|
+
else if (contractFileFlagCount > 1)
|
|
610
|
+
errors.push('--contract-file may only be specified once');
|
|
611
|
+
else
|
|
612
|
+
contractFilePath = value;
|
|
613
|
+
break;
|
|
614
|
+
}
|
|
615
|
+
case '--output': {
|
|
616
|
+
const value = argv[(i += 1)];
|
|
617
|
+
outputFlagCount += 1;
|
|
618
|
+
if (value === undefined)
|
|
619
|
+
errors.push('--output requires a directory argument');
|
|
620
|
+
else if (outputFlagCount > 1)
|
|
621
|
+
errors.push('--output may only be specified once');
|
|
622
|
+
else
|
|
623
|
+
outputLocation = value;
|
|
624
|
+
break;
|
|
625
|
+
}
|
|
626
|
+
default:
|
|
627
|
+
errors.push(`unrecognized argument: ${arg}`);
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
if (observationRoot === undefined)
|
|
631
|
+
errors.push('--observation is required');
|
|
632
|
+
if (contractFilePath === undefined)
|
|
633
|
+
errors.push('--contract-file is required');
|
|
634
|
+
if (outputLocation === undefined)
|
|
635
|
+
errors.push('--output is required');
|
|
636
|
+
if (errors.length > 0)
|
|
637
|
+
return { ok: false, errors };
|
|
638
|
+
return { ok: true, observationRoot: observationRoot, contractFilePath: contractFilePath, outputLocation: outputLocation };
|
|
639
|
+
}
|
|
640
|
+
/** CLI-syntax-only parsing, mirroring `parseCompareArgs`. */
|
|
641
|
+
function parseSaveChangeContractArgs(argv) {
|
|
642
|
+
const errors = [];
|
|
643
|
+
let contractFilePath;
|
|
644
|
+
let contractFileFlagCount = 0;
|
|
645
|
+
let outputLocation;
|
|
646
|
+
let outputFlagCount = 0;
|
|
647
|
+
for (let i = 0; i < argv.length; i += 1) {
|
|
648
|
+
const arg = argv[i];
|
|
649
|
+
switch (arg) {
|
|
650
|
+
case '--contract-file': {
|
|
651
|
+
const value = argv[(i += 1)];
|
|
652
|
+
contractFileFlagCount += 1;
|
|
653
|
+
if (value === undefined)
|
|
654
|
+
errors.push('--contract-file requires a file path argument');
|
|
655
|
+
else if (contractFileFlagCount > 1)
|
|
656
|
+
errors.push('--contract-file may only be specified once');
|
|
657
|
+
else
|
|
658
|
+
contractFilePath = value;
|
|
659
|
+
break;
|
|
660
|
+
}
|
|
661
|
+
case '--output': {
|
|
662
|
+
const value = argv[(i += 1)];
|
|
663
|
+
outputFlagCount += 1;
|
|
664
|
+
if (value === undefined)
|
|
665
|
+
errors.push('--output requires a directory argument');
|
|
666
|
+
else if (outputFlagCount > 1)
|
|
667
|
+
errors.push('--output may only be specified once');
|
|
668
|
+
else
|
|
669
|
+
outputLocation = value;
|
|
670
|
+
break;
|
|
671
|
+
}
|
|
672
|
+
default:
|
|
673
|
+
errors.push(`unrecognized argument: ${arg}`);
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
if (contractFilePath === undefined)
|
|
677
|
+
errors.push('--contract-file is required');
|
|
678
|
+
if (outputLocation === undefined)
|
|
679
|
+
errors.push('--output is required');
|
|
680
|
+
if (errors.length > 0)
|
|
681
|
+
return { ok: false, errors };
|
|
682
|
+
return { ok: true, contractFilePath: contractFilePath, outputLocation: outputLocation };
|
|
683
|
+
}
|
|
684
|
+
/** CLI-syntax-only parsing. `--enforce` is a boolean switch (no value); repeating it is harmless (idempotent), matching a boolean flag's natural semantics rather than the "may only be specified once" policy used for single-value flags. */
|
|
685
|
+
function parseEvaluateContractArgs(argv) {
|
|
686
|
+
const errors = [];
|
|
687
|
+
let beforeRoot;
|
|
688
|
+
let beforeFlagCount = 0;
|
|
689
|
+
let afterRoot;
|
|
690
|
+
let afterFlagCount = 0;
|
|
691
|
+
let comparisonRoot;
|
|
692
|
+
let comparisonFlagCount = 0;
|
|
693
|
+
let baselineRoot;
|
|
694
|
+
let baselineFlagCount = 0;
|
|
695
|
+
let changeRoot;
|
|
696
|
+
let changeFlagCount = 0;
|
|
697
|
+
let outputLocation;
|
|
698
|
+
let outputFlagCount = 0;
|
|
699
|
+
let enforce = false;
|
|
700
|
+
for (let i = 0; i < argv.length; i += 1) {
|
|
701
|
+
const arg = argv[i];
|
|
702
|
+
switch (arg) {
|
|
703
|
+
case '--before': {
|
|
704
|
+
const value = argv[(i += 1)];
|
|
705
|
+
beforeFlagCount += 1;
|
|
706
|
+
if (value === undefined)
|
|
707
|
+
errors.push('--before requires a path argument');
|
|
708
|
+
else if (beforeFlagCount > 1)
|
|
709
|
+
errors.push('--before may only be specified once');
|
|
710
|
+
else
|
|
711
|
+
beforeRoot = value;
|
|
712
|
+
break;
|
|
713
|
+
}
|
|
714
|
+
case '--after': {
|
|
715
|
+
const value = argv[(i += 1)];
|
|
716
|
+
afterFlagCount += 1;
|
|
717
|
+
if (value === undefined)
|
|
718
|
+
errors.push('--after requires a path argument');
|
|
719
|
+
else if (afterFlagCount > 1)
|
|
720
|
+
errors.push('--after may only be specified once');
|
|
721
|
+
else
|
|
722
|
+
afterRoot = value;
|
|
723
|
+
break;
|
|
724
|
+
}
|
|
725
|
+
case '--comparison': {
|
|
726
|
+
const value = argv[(i += 1)];
|
|
727
|
+
comparisonFlagCount += 1;
|
|
728
|
+
if (value === undefined)
|
|
729
|
+
errors.push('--comparison requires a path argument');
|
|
730
|
+
else if (comparisonFlagCount > 1)
|
|
731
|
+
errors.push('--comparison may only be specified once');
|
|
732
|
+
else
|
|
733
|
+
comparisonRoot = value;
|
|
734
|
+
break;
|
|
735
|
+
}
|
|
736
|
+
case '--baseline': {
|
|
737
|
+
const value = argv[(i += 1)];
|
|
738
|
+
baselineFlagCount += 1;
|
|
739
|
+
if (value === undefined)
|
|
740
|
+
errors.push('--baseline requires a path argument');
|
|
741
|
+
else if (baselineFlagCount > 1)
|
|
742
|
+
errors.push('--baseline may only be specified once');
|
|
743
|
+
else
|
|
744
|
+
baselineRoot = value;
|
|
745
|
+
break;
|
|
746
|
+
}
|
|
747
|
+
case '--change': {
|
|
748
|
+
const value = argv[(i += 1)];
|
|
749
|
+
changeFlagCount += 1;
|
|
750
|
+
if (value === undefined)
|
|
751
|
+
errors.push('--change requires a path argument');
|
|
752
|
+
else if (changeFlagCount > 1)
|
|
753
|
+
errors.push('--change may only be specified once');
|
|
754
|
+
else
|
|
755
|
+
changeRoot = value;
|
|
756
|
+
break;
|
|
757
|
+
}
|
|
758
|
+
case '--output': {
|
|
759
|
+
const value = argv[(i += 1)];
|
|
760
|
+
outputFlagCount += 1;
|
|
761
|
+
if (value === undefined)
|
|
762
|
+
errors.push('--output requires a directory argument');
|
|
763
|
+
else if (outputFlagCount > 1)
|
|
764
|
+
errors.push('--output may only be specified once');
|
|
765
|
+
else
|
|
766
|
+
outputLocation = value;
|
|
767
|
+
break;
|
|
768
|
+
}
|
|
769
|
+
case '--enforce':
|
|
770
|
+
enforce = true;
|
|
771
|
+
break;
|
|
772
|
+
default:
|
|
773
|
+
errors.push(`unrecognized argument: ${arg}`);
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
if (beforeRoot === undefined)
|
|
777
|
+
errors.push('--before is required');
|
|
778
|
+
if (afterRoot === undefined)
|
|
779
|
+
errors.push('--after is required');
|
|
780
|
+
if (comparisonRoot === undefined)
|
|
781
|
+
errors.push('--comparison is required');
|
|
782
|
+
if (baselineRoot === undefined)
|
|
783
|
+
errors.push('--baseline is required');
|
|
784
|
+
if (changeRoot === undefined)
|
|
785
|
+
errors.push('--change is required');
|
|
786
|
+
if (outputLocation === undefined)
|
|
787
|
+
errors.push('--output is required');
|
|
788
|
+
if (errors.length > 0)
|
|
789
|
+
return { ok: false, errors };
|
|
790
|
+
return {
|
|
791
|
+
ok: true,
|
|
792
|
+
beforeRoot: beforeRoot,
|
|
793
|
+
afterRoot: afterRoot,
|
|
794
|
+
comparisonRoot: comparisonRoot,
|
|
795
|
+
baselineRoot: baselineRoot,
|
|
796
|
+
changeRoot: changeRoot,
|
|
797
|
+
outputLocation: outputLocation,
|
|
798
|
+
enforce,
|
|
799
|
+
};
|
|
800
|
+
}
|
|
438
801
|
function formatDiagnostic(diagnostic) {
|
|
439
802
|
const target = diagnostic.targetName === undefined ? '' : ` (target: ${diagnostic.targetName})`;
|
|
440
803
|
return `[${diagnostic.code}] ${diagnostic.message}${target}`;
|
|
@@ -542,6 +905,124 @@ async function runCompareCommand(argv, io) {
|
|
|
542
905
|
io.stdout(`Diagnostics: ${result.diagnosticsCount}\n`);
|
|
543
906
|
return 0;
|
|
544
907
|
}
|
|
908
|
+
/**
|
|
909
|
+
* Thin orchestration only: parse args, load the raw contract JSON file, then
|
|
910
|
+
* delegate to the existing `approveAndPersistBaseline` application function
|
|
911
|
+
* exactly once. No contract/coherence validation lives here - see
|
|
912
|
+
* `src/application/frontendContractPersistenceService.ts`. This is the only
|
|
913
|
+
* command in the observer that approves a baseline.
|
|
914
|
+
*/
|
|
915
|
+
async function runApproveBaselineCommand(argv, io) {
|
|
916
|
+
if (argv.includes('--help')) {
|
|
917
|
+
io.stdout(APPROVE_BASELINE_HELP);
|
|
918
|
+
return 0;
|
|
919
|
+
}
|
|
920
|
+
const parsedArgs = parseApproveBaselineArgs(argv);
|
|
921
|
+
if (!parsedArgs.ok) {
|
|
922
|
+
for (const error of parsedArgs.errors)
|
|
923
|
+
io.stderr(`error: ${error}\n`);
|
|
924
|
+
io.stderr(APPROVE_BASELINE_HELP);
|
|
925
|
+
return 1;
|
|
926
|
+
}
|
|
927
|
+
const loaded = loadContractFile(parsedArgs.contractFilePath, '--contract-file');
|
|
928
|
+
if (!loaded.ok) {
|
|
929
|
+
io.stderr(`error: ${loaded.error}\n`);
|
|
930
|
+
io.stderr(APPROVE_BASELINE_HELP);
|
|
931
|
+
return 1;
|
|
932
|
+
}
|
|
933
|
+
// Exactly one application approval attempt: one observation read, one coherence check, persisted at most once.
|
|
934
|
+
const result = await approveAndPersistBaseline(loaded.contract, parsedArgs.observationRoot, { outputLocation: parsedArgs.outputLocation });
|
|
935
|
+
if (!result.ok) {
|
|
936
|
+
for (const diagnostic of result.diagnostics)
|
|
937
|
+
io.stderr(`${formatDiagnostic(diagnostic)}\n`);
|
|
938
|
+
return 1;
|
|
939
|
+
}
|
|
940
|
+
io.stdout(`Baseline: ${result.baselineId}\n`);
|
|
941
|
+
io.stdout(`State: approved\n`);
|
|
942
|
+
io.stdout(`Artifact: ${result.artifactRoot}\n`);
|
|
943
|
+
io.stdout(`Clauses: ${result.clauseCount}\n`);
|
|
944
|
+
io.stdout(`Supersedes: ${result.supersedesBaselineId ?? 'none'}\n`);
|
|
945
|
+
return 0;
|
|
946
|
+
}
|
|
947
|
+
/**
|
|
948
|
+
* Thin orchestration only: parse args, load the raw contract JSON file, then
|
|
949
|
+
* delegate to the existing `persistPerChangeContract` application function
|
|
950
|
+
* exactly once. Persistence, not approval.
|
|
951
|
+
*/
|
|
952
|
+
async function runSaveChangeContractCommand(argv, io) {
|
|
953
|
+
if (argv.includes('--help')) {
|
|
954
|
+
io.stdout(SAVE_CHANGE_CONTRACT_HELP);
|
|
955
|
+
return 0;
|
|
956
|
+
}
|
|
957
|
+
const parsedArgs = parseSaveChangeContractArgs(argv);
|
|
958
|
+
if (!parsedArgs.ok) {
|
|
959
|
+
for (const error of parsedArgs.errors)
|
|
960
|
+
io.stderr(`error: ${error}\n`);
|
|
961
|
+
io.stderr(SAVE_CHANGE_CONTRACT_HELP);
|
|
962
|
+
return 1;
|
|
963
|
+
}
|
|
964
|
+
const loaded = loadContractFile(parsedArgs.contractFilePath, '--contract-file');
|
|
965
|
+
if (!loaded.ok) {
|
|
966
|
+
io.stderr(`error: ${loaded.error}\n`);
|
|
967
|
+
io.stderr(SAVE_CHANGE_CONTRACT_HELP);
|
|
968
|
+
return 1;
|
|
969
|
+
}
|
|
970
|
+
// Exactly one application persistence attempt.
|
|
971
|
+
const result = await persistPerChangeContract(loaded.contract, { outputLocation: parsedArgs.outputLocation });
|
|
972
|
+
if (!result.ok) {
|
|
973
|
+
for (const diagnostic of result.diagnostics)
|
|
974
|
+
io.stderr(`${formatDiagnostic(diagnostic)}\n`);
|
|
975
|
+
return 1;
|
|
976
|
+
}
|
|
977
|
+
io.stdout(`Change contract: ${result.contractId}\n`);
|
|
978
|
+
io.stdout(`Artifact: ${result.artifactRoot}\n`);
|
|
979
|
+
io.stdout(`Clauses: ${result.clauseCount}\n`);
|
|
980
|
+
io.stdout(`Supersedes baseline clauses: ${result.supersedesBaselineClauseCount}\n`);
|
|
981
|
+
return 0;
|
|
982
|
+
}
|
|
983
|
+
/**
|
|
984
|
+
* Thin orchestration only: parse args, then delegate to the existing
|
|
985
|
+
* `evaluateAndPersistFromArtifactRoots` application function exactly once.
|
|
986
|
+
* No evaluation/tolerance/conflict/unexpected-classification logic lives
|
|
987
|
+
* here - see `src/domain/frontendContractEvaluation.ts`. `--enforce` is
|
|
988
|
+
* applied only after the evaluation has already been constructed and
|
|
989
|
+
* persisted: it selects the process exit status for an already-final FAIL
|
|
990
|
+
* result and never affects evaluation identity, contents, or persistence. A
|
|
991
|
+
* FAIL verdict is a successful, persisted evaluation outcome (a found
|
|
992
|
+
* regression), never treated as a construction/persistence failure.
|
|
993
|
+
*/
|
|
994
|
+
async function runEvaluateContractCommand(argv, io) {
|
|
995
|
+
if (argv.includes('--help')) {
|
|
996
|
+
io.stdout(EVALUATE_CONTRACT_HELP);
|
|
997
|
+
return 0;
|
|
998
|
+
}
|
|
999
|
+
const parsedArgs = parseEvaluateContractArgs(argv);
|
|
1000
|
+
if (!parsedArgs.ok) {
|
|
1001
|
+
for (const error of parsedArgs.errors)
|
|
1002
|
+
io.stderr(`error: ${error}\n`);
|
|
1003
|
+
io.stderr(EVALUATE_CONTRACT_HELP);
|
|
1004
|
+
return 1;
|
|
1005
|
+
}
|
|
1006
|
+
// Exactly one application evaluation attempt: reads before/after/comparison/baseline/change once each,
|
|
1007
|
+
// calls the canonical evaluator exactly once, and persists exactly one evaluation artifact.
|
|
1008
|
+
const result = await evaluateAndPersistFromArtifactRoots(parsedArgs.beforeRoot, parsedArgs.afterRoot, parsedArgs.comparisonRoot, parsedArgs.baselineRoot, parsedArgs.changeRoot, {
|
|
1009
|
+
outputLocation: parsedArgs.outputLocation,
|
|
1010
|
+
});
|
|
1011
|
+
if (!result.ok) {
|
|
1012
|
+
for (const diagnostic of result.diagnostics)
|
|
1013
|
+
io.stderr(`${formatDiagnostic(diagnostic)}\n`);
|
|
1014
|
+
return 1;
|
|
1015
|
+
}
|
|
1016
|
+
io.stdout(`Evaluation: ${result.evaluationId}\n`);
|
|
1017
|
+
io.stdout(`Verdict: ${result.overallVerdict}\n`);
|
|
1018
|
+
io.stdout(`Artifact: ${result.artifactRoot}\n`);
|
|
1019
|
+
io.stdout(`Clauses: ${result.clauseResultCount}\n`);
|
|
1020
|
+
io.stdout(`Unexpected: ${result.unexpectedChangeCount}\n`);
|
|
1021
|
+
io.stdout(`Enforced: ${parsedArgs.enforce ? 'yes' : 'no'}\n`);
|
|
1022
|
+
if (parsedArgs.enforce && result.overallVerdict === 'FAIL')
|
|
1023
|
+
return 1;
|
|
1024
|
+
return 0;
|
|
1025
|
+
}
|
|
545
1026
|
/** Testable CLI entry point: pure function of argv (+ injectable IO), no direct process.exit. */
|
|
546
1027
|
export async function runCli(argv, io = defaultIO) {
|
|
547
1028
|
const [command, ...rest] = argv;
|
|
@@ -563,6 +1044,15 @@ export async function runCli(argv, io = defaultIO) {
|
|
|
563
1044
|
if (command === 'compare') {
|
|
564
1045
|
return runCompareCommand(rest, io);
|
|
565
1046
|
}
|
|
1047
|
+
if (command === 'approve-baseline') {
|
|
1048
|
+
return runApproveBaselineCommand(rest, io);
|
|
1049
|
+
}
|
|
1050
|
+
if (command === 'save-change-contract') {
|
|
1051
|
+
return runSaveChangeContractCommand(rest, io);
|
|
1052
|
+
}
|
|
1053
|
+
if (command === 'evaluate-contract') {
|
|
1054
|
+
return runEvaluateContractCommand(rest, io);
|
|
1055
|
+
}
|
|
566
1056
|
io.stderr(`error: unrecognized command "${command}"\n`);
|
|
567
1057
|
io.stderr(TOP_LEVEL_HELP);
|
|
568
1058
|
return 1;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|