@opensip-cli/fitness 0.1.12 → 0.1.14
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/__tests__/baseline-plane.test.js +15 -4
- package/dist/__tests__/baseline-plane.test.js.map +1 -1
- package/dist/__tests__/check-utils.test.js +3 -1
- package/dist/__tests__/check-utils.test.js.map +1 -1
- package/dist/__tests__/fingerprint-parity.test.js +49 -11
- package/dist/__tests__/fingerprint-parity.test.js.map +1 -1
- package/dist/baseline-strategy.d.ts +1 -2
- package/dist/baseline-strategy.d.ts.map +1 -1
- package/dist/baseline-strategy.js +6 -1
- package/dist/baseline-strategy.js.map +1 -1
- package/dist/check-utils/display.d.ts.map +1 -1
- package/dist/check-utils/display.js +4 -1
- package/dist/check-utils/display.js.map +1 -1
- package/dist/cli/__tests__/fit-gate-mode.test.js +14 -3
- package/dist/cli/__tests__/fit-gate-mode.test.js.map +1 -1
- package/dist/cli/__tests__/fit-modes-live.test.js +20 -7
- package/dist/cli/__tests__/fit-modes-live.test.js.map +1 -1
- package/dist/cli/__tests__/fit-runner-progress.test.js +22 -4
- package/dist/cli/__tests__/fit-runner-progress.test.js.map +1 -1
- package/dist/cli/fit/__tests__/changed-targeting.test.d.ts +2 -0
- package/dist/cli/fit/__tests__/changed-targeting.test.d.ts.map +1 -0
- package/dist/cli/fit/__tests__/changed-targeting.test.js +128 -0
- package/dist/cli/fit/__tests__/changed-targeting.test.js.map +1 -0
- package/dist/cli/fit/__tests__/display-fold.test.js +6 -2
- package/dist/cli/fit/__tests__/display-fold.test.js.map +1 -1
- package/dist/cli/fit/__tests__/envelope-view-table.test.js +4 -1
- package/dist/cli/fit/__tests__/envelope-view-table.test.js.map +1 -1
- package/dist/cli/fit/__tests__/fit-export-command-spec.test.js +17 -19
- package/dist/cli/fit/__tests__/fit-export-command-spec.test.js.map +1 -1
- package/dist/cli/fit/__tests__/gate-resolved-config.test.js +4 -1
- package/dist/cli/fit/__tests__/gate-resolved-config.test.js.map +1 -1
- package/dist/cli/fit/changed-targeting.d.ts +20 -0
- package/dist/cli/fit/changed-targeting.d.ts.map +1 -0
- package/dist/cli/fit/changed-targeting.js +75 -0
- package/dist/cli/fit/changed-targeting.js.map +1 -0
- package/dist/cli/fit/check-loader.d.ts.map +1 -1
- package/dist/cli/fit/check-loader.js +3 -2
- package/dist/cli/fit/check-loader.js.map +1 -1
- package/dist/cli/fit/config-loader.d.ts.map +1 -1
- package/dist/cli/fit/config-loader.js +4 -3
- package/dist/cli/fit/config-loader.js.map +1 -1
- package/dist/cli/fit/fit-aux-command-specs.d.ts.map +1 -1
- package/dist/cli/fit/fit-aux-command-specs.js +8 -9
- package/dist/cli/fit/fit-aux-command-specs.js.map +1 -1
- package/dist/cli/fit/fit-command-spec.d.ts.map +1 -1
- package/dist/cli/fit/fit-command-spec.js +27 -2
- package/dist/cli/fit/fit-command-spec.js.map +1 -1
- package/dist/cli/fit/load-outcome.js +1 -1
- package/dist/cli/fit/load-outcome.js.map +1 -1
- package/dist/cli/fit/recipe-selector.d.ts.map +1 -1
- package/dist/cli/fit/recipe-selector.js +3 -2
- package/dist/cli/fit/recipe-selector.js.map +1 -1
- package/dist/cli/fit/result-builders.d.ts.map +1 -1
- package/dist/cli/fit/result-builders.js +4 -3
- package/dist/cli/fit/result-builders.js.map +1 -1
- package/dist/cli/fit-modes.d.ts.map +1 -1
- package/dist/cli/fit-modes.js +47 -53
- package/dist/cli/fit-modes.js.map +1 -1
- package/dist/cli/fit-recipes.d.ts.map +1 -1
- package/dist/cli/fit-recipes.js +12 -5
- package/dist/cli/fit-recipes.js.map +1 -1
- package/dist/cli/fit-worker.d.ts.map +1 -1
- package/dist/cli/fit-worker.js +15 -26
- package/dist/cli/fit-worker.js.map +1 -1
- package/dist/cli/fit.d.ts.map +1 -1
- package/dist/cli/fit.js +23 -7
- package/dist/cli/fit.js.map +1 -1
- package/dist/config/fitness-config-schema.d.ts.map +1 -1
- package/dist/config/fitness-config-schema.js +10 -2
- package/dist/config/fitness-config-schema.js.map +1 -1
- package/dist/framework/__tests__/abortable-exec.test.js +12 -4
- package/dist/framework/__tests__/abortable-exec.test.js.map +1 -1
- package/dist/framework/__tests__/check-config.test.js +4 -1
- package/dist/framework/__tests__/check-config.test.js.map +1 -1
- package/dist/framework/__tests__/command-executor.test.js +4 -1
- package/dist/framework/__tests__/command-executor.test.js.map +1 -1
- package/dist/framework/__tests__/content-filter-dispatch.test.js +9 -3
- package/dist/framework/__tests__/content-filter-dispatch.test.js.map +1 -1
- package/dist/framework/__tests__/define-check.test.js +26 -4
- package/dist/framework/__tests__/define-check.test.js.map +1 -1
- package/dist/framework/__tests__/define-regex-list-check.test.js +109 -16
- package/dist/framework/__tests__/define-regex-list-check.test.js.map +1 -1
- package/dist/framework/__tests__/directive-inventory.test.js +56 -12
- package/dist/framework/__tests__/directive-inventory.test.js.map +1 -1
- package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.js +5 -1
- package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.js.map +1 -1
- package/dist/framework/__tests__/execution-context.test.js +55 -11
- package/dist/framework/__tests__/execution-context.test.js.map +1 -1
- package/dist/framework/__tests__/path-matcher.test.js +35 -7
- package/dist/framework/__tests__/path-matcher.test.js.map +1 -1
- package/dist/framework/__tests__/scope-resolver.golden.test.js +8 -2
- package/dist/framework/__tests__/scope-resolver.golden.test.js.map +1 -1
- package/dist/framework/__tests__/scope-resolver.test.js +24 -4
- package/dist/framework/__tests__/scope-resolver.test.js.map +1 -1
- package/dist/framework/define-check.d.ts.map +1 -1
- package/dist/framework/define-check.js +4 -1
- package/dist/framework/define-check.js.map +1 -1
- package/dist/framework/directive-inventory.d.ts.map +1 -1
- package/dist/framework/directive-inventory.js.map +1 -1
- package/dist/framework/execution-context.d.ts.map +1 -1
- package/dist/framework/execution-context.js +3 -1
- package/dist/framework/execution-context.js.map +1 -1
- package/dist/framework/ignore-processing.d.ts.map +1 -1
- package/dist/framework/ignore-processing.js.map +1 -1
- package/dist/framework/scope-resolver.d.ts.map +1 -1
- package/dist/framework/scope-resolver.js +6 -1
- package/dist/framework/scope-resolver.js.map +1 -1
- package/dist/persistence/session-payload.d.ts +3 -0
- package/dist/persistence/session-payload.d.ts.map +1 -1
- package/dist/persistence/session-payload.js +1 -0
- package/dist/persistence/session-payload.js.map +1 -1
- package/dist/persistence/session-payload.test.js +7 -1
- package/dist/persistence/session-payload.test.js.map +1 -1
- package/dist/persistence/session-replay.d.ts.map +1 -1
- package/dist/persistence/session-replay.js +5 -0
- package/dist/persistence/session-replay.js.map +1 -1
- package/dist/persistence/session-replay.test.js +3 -1
- package/dist/persistence/session-replay.test.js.map +1 -1
- package/dist/recipes/__tests__/check-resolution.test.js +32 -8
- package/dist/recipes/__tests__/check-resolution.test.js.map +1 -1
- package/dist/recipes/__tests__/execution-branches.test.js +52 -9
- package/dist/recipes/__tests__/execution-branches.test.js.map +1 -1
- package/dist/recipes/__tests__/execution-paths.test.js +31 -6
- package/dist/recipes/__tests__/execution-paths.test.js.map +1 -1
- package/dist/recipes/__tests__/retry.test.js +6 -1
- package/dist/recipes/__tests__/retry.test.js.map +1 -1
- package/dist/recipes/__tests__/run-one-check.test.js +5 -1
- package/dist/recipes/__tests__/run-one-check.test.js.map +1 -1
- package/dist/recipes/built-in-recipes.d.ts.map +1 -1
- package/dist/recipes/built-in-recipes.js +59 -2
- package/dist/recipes/built-in-recipes.js.map +1 -1
- package/dist/recipes/registry.d.ts.map +1 -1
- package/dist/recipes/registry.js +4 -1
- package/dist/recipes/registry.js.map +1 -1
- package/dist/recipes/service-types.d.ts.map +1 -1
- package/dist/signalers/__tests__/loader.test.js +15 -4
- package/dist/signalers/__tests__/loader.test.js.map +1 -1
- package/dist/signalers/schema.d.ts +1 -1
- package/dist/targets/__tests__/loader.test.js +8 -2
- package/dist/targets/__tests__/loader.test.js.map +1 -1
- package/dist/targets/__tests__/target-registry.test.js +4 -1
- package/dist/targets/__tests__/target-registry.test.js.map +1 -1
- package/dist/targets/loader.d.ts.map +1 -1
- package/dist/targets/loader.js +6 -2
- package/dist/targets/loader.js.map +1 -1
- package/dist/tool.d.ts.map +1 -1
- package/dist/tool.js +7 -2
- package/dist/tool.js.map +1 -1
- package/dist/types/findings.d.ts.map +1 -1
- package/dist/types/findings.js +4 -1
- package/dist/types/findings.js.map +1 -1
- package/package.json +45 -12
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { LanguageRegistry, RunScope, ToolRegistry, runWithScopeSync } from '@opensip-cli/core';
|
|
3
|
+
import { describe, expect, it } from 'vitest';
|
|
4
|
+
import { resolveChangedSet, restrictFileMapToChanged } from '../changed-targeting.js';
|
|
5
|
+
function minimalImpactCatalog() {
|
|
6
|
+
return {
|
|
7
|
+
version: '2.0',
|
|
8
|
+
tool: 'graph',
|
|
9
|
+
language: 'typescript',
|
|
10
|
+
builtAt: '2026-01-01T00:00:00.000Z',
|
|
11
|
+
functions: {
|
|
12
|
+
caller: [
|
|
13
|
+
{
|
|
14
|
+
bodyHash: 'caller',
|
|
15
|
+
qualifiedName: 'caller',
|
|
16
|
+
simpleName: 'caller',
|
|
17
|
+
filePath: 'src/caller.ts',
|
|
18
|
+
line: 1,
|
|
19
|
+
column: 1,
|
|
20
|
+
endLine: 5,
|
|
21
|
+
kind: 'function-declaration',
|
|
22
|
+
visibility: 'exported',
|
|
23
|
+
inTestFile: false,
|
|
24
|
+
definedInGenerated: false,
|
|
25
|
+
params: [],
|
|
26
|
+
returnType: null,
|
|
27
|
+
enclosingClass: null,
|
|
28
|
+
decorators: [],
|
|
29
|
+
calls: [
|
|
30
|
+
{
|
|
31
|
+
to: ['callee'],
|
|
32
|
+
line: 2,
|
|
33
|
+
column: 4,
|
|
34
|
+
resolution: 'static',
|
|
35
|
+
confidence: 'high',
|
|
36
|
+
text: 'callee()',
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
callee: [
|
|
42
|
+
{
|
|
43
|
+
bodyHash: 'callee',
|
|
44
|
+
qualifiedName: 'callee',
|
|
45
|
+
simpleName: 'callee',
|
|
46
|
+
filePath: 'src/callee.ts',
|
|
47
|
+
line: 1,
|
|
48
|
+
column: 1,
|
|
49
|
+
endLine: 5,
|
|
50
|
+
kind: 'function-declaration',
|
|
51
|
+
visibility: 'exported',
|
|
52
|
+
inTestFile: false,
|
|
53
|
+
definedInGenerated: false,
|
|
54
|
+
params: [],
|
|
55
|
+
returnType: null,
|
|
56
|
+
enclosingClass: null,
|
|
57
|
+
decorators: [],
|
|
58
|
+
calls: [],
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
describe('restrictFileMapToChanged', () => {
|
|
65
|
+
it('intersects check targets with the changed set and drops empty checks', () => {
|
|
66
|
+
const cwd = '/proj';
|
|
67
|
+
const changed = new Set([path.resolve(cwd, 'src/a.ts')]);
|
|
68
|
+
const scopeMap = new Map([
|
|
69
|
+
['check-a', [path.resolve(cwd, 'src/a.ts'), path.resolve(cwd, 'src/b.ts')]],
|
|
70
|
+
['check-b', [path.resolve(cwd, 'src/c.ts')]],
|
|
71
|
+
]);
|
|
72
|
+
const narrowed = restrictFileMapToChanged(scopeMap, changed);
|
|
73
|
+
expect([...narrowed.keys()]).toEqual(['check-a']);
|
|
74
|
+
expect(narrowed.get('check-a')).toEqual([path.resolve(cwd, 'src/a.ts')]);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
describe('resolveChangedSet', () => {
|
|
78
|
+
it('degrades to changed-only when graphCatalog thunk is absent', () => {
|
|
79
|
+
const cwd = '/proj';
|
|
80
|
+
const scope = new RunScope({
|
|
81
|
+
tools: new ToolRegistry(),
|
|
82
|
+
languages: new LanguageRegistry(),
|
|
83
|
+
});
|
|
84
|
+
runWithScopeSync(scope, () => {
|
|
85
|
+
const result = resolveChangedSet({
|
|
86
|
+
cwd,
|
|
87
|
+
changed: true,
|
|
88
|
+
includeImpacted: true,
|
|
89
|
+
});
|
|
90
|
+
expect(result.ok).toBe(false);
|
|
91
|
+
});
|
|
92
|
+
scope.dispose();
|
|
93
|
+
});
|
|
94
|
+
it('expands targets with impacted files when catalog thunk is wired', () => {
|
|
95
|
+
const cwd = '/proj';
|
|
96
|
+
const catalog = minimalImpactCatalog();
|
|
97
|
+
const scope = new RunScope({
|
|
98
|
+
tools: new ToolRegistry(),
|
|
99
|
+
languages: new LanguageRegistry(),
|
|
100
|
+
});
|
|
101
|
+
// `graphCatalog` is a contributed scope slot (installed by graph's
|
|
102
|
+
// contributeScope() via Object.assign), not a constructor option — mirror
|
|
103
|
+
// that install here.
|
|
104
|
+
Object.assign(scope, { graphCatalog: () => catalog });
|
|
105
|
+
runWithScopeSync(scope, () => {
|
|
106
|
+
const result = resolveChangedSet({
|
|
107
|
+
cwd,
|
|
108
|
+
changed: true,
|
|
109
|
+
includeImpacted: true,
|
|
110
|
+
since: undefined,
|
|
111
|
+
});
|
|
112
|
+
// Without git, resolveChangedFiles fails — this exercises the degraded path.
|
|
113
|
+
expect(result.ok).toBe(false);
|
|
114
|
+
if (!result.ok) {
|
|
115
|
+
expect(result.warning).toBeTruthy();
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
scope.dispose();
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
describe('RunScope.graphCatalog default', () => {
|
|
122
|
+
it('returns undefined when no thunk is configured', () => {
|
|
123
|
+
const scope = new RunScope();
|
|
124
|
+
expect(scope.graphCatalog).toBeUndefined();
|
|
125
|
+
scope.dispose();
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
//# sourceMappingURL=changed-targeting.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changed-targeting.test.js","sourceRoot":"","sources":["../../../../src/cli/fit/__tests__/changed-targeting.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAItF,SAAS,oBAAoB;IAC3B,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,0BAA0B;QACnC,SAAS,EAAE;YACT,MAAM,EAAE;gBACN;oBACE,QAAQ,EAAE,QAAQ;oBAClB,aAAa,EAAE,QAAQ;oBACvB,UAAU,EAAE,QAAQ;oBACpB,QAAQ,EAAE,eAAe;oBACzB,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,CAAC;oBACV,IAAI,EAAE,sBAAsB;oBAC5B,UAAU,EAAE,UAAU;oBACtB,UAAU,EAAE,KAAK;oBACjB,kBAAkB,EAAE,KAAK;oBACzB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;oBACpB,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE;wBACL;4BACE,EAAE,EAAE,CAAC,QAAQ,CAAC;4BACd,IAAI,EAAE,CAAC;4BACP,MAAM,EAAE,CAAC;4BACT,UAAU,EAAE,QAAQ;4BACpB,UAAU,EAAE,MAAM;4BAClB,IAAI,EAAE,UAAU;yBACjB;qBACF;iBACF;aACF;YACD,MAAM,EAAE;gBACN;oBACE,QAAQ,EAAE,QAAQ;oBAClB,aAAa,EAAE,QAAQ;oBACvB,UAAU,EAAE,QAAQ;oBACpB,QAAQ,EAAE,eAAe;oBACzB,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,CAAC;oBACV,IAAI,EAAE,sBAAsB;oBAC5B,UAAU,EAAE,UAAU;oBACtB,UAAU,EAAE,KAAK;oBACjB,kBAAkB,EAAE,KAAK;oBACzB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,IAAI;oBACpB,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE,EAAE;iBACV;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,GAAG,GAAG,OAAO,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAA4B;YAClD,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;YAC3E,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;SAC7C,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,GAAG,GAAG,OAAO,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC;YACzB,KAAK,EAAE,IAAI,YAAY,EAAE;YACzB,SAAS,EAAE,IAAI,gBAAgB,EAAE;SAClC,CAAC,CAAC;QACH,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE;YAC3B,MAAM,MAAM,GAAG,iBAAiB,CAAC;gBAC/B,GAAG;gBACH,OAAO,EAAE,IAAI;gBACb,eAAe,EAAE,IAAI;aACtB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,GAAG,GAAG,OAAO,CAAC;QACpB,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC;YACzB,KAAK,EAAE,IAAI,YAAY,EAAE;YACzB,SAAS,EAAE,IAAI,gBAAgB,EAAE;SAClC,CAAC,CAAC;QACH,mEAAmE;QACnE,0EAA0E;QAC1E,qBAAqB;QACrB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE;YAC3B,MAAM,MAAM,GAAG,iBAAiB,CAAC;gBAC/B,GAAG;gBACH,OAAO,EAAE,IAAI;gBACb,eAAe,EAAE,IAAI;gBACrB,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,6EAA6E;YAC7E,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;QAC3C,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -30,7 +30,9 @@ function fitnessScope() {
|
|
|
30
30
|
}
|
|
31
31
|
describe('applyCheckDisplay', () => {
|
|
32
32
|
it('folds icon + displayName onto a check whose slug has a map entry', () => {
|
|
33
|
-
const map = {
|
|
33
|
+
const map = {
|
|
34
|
+
'my-check': ['🚀', 'My Check'],
|
|
35
|
+
};
|
|
34
36
|
const [folded] = applyCheckDisplay([stubCheck('my-check')], map);
|
|
35
37
|
expect(folded?.config.icon).toBe('🚀');
|
|
36
38
|
expect(folded?.config.displayName).toBe('My Check');
|
|
@@ -42,7 +44,9 @@ describe('applyCheckDisplay', () => {
|
|
|
42
44
|
});
|
|
43
45
|
it('does not mutate the original check (returns a new object)', () => {
|
|
44
46
|
const original = stubCheck('immutable');
|
|
45
|
-
const [folded] = applyCheckDisplay([original], {
|
|
47
|
+
const [folded] = applyCheckDisplay([original], {
|
|
48
|
+
immutable: ['🔒', 'Immutable'],
|
|
49
|
+
});
|
|
46
50
|
expect(original.config.icon).toBeUndefined();
|
|
47
51
|
expect(folded).not.toBe(original);
|
|
48
52
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-fold.test.js","sourceRoot":"","sources":["../../../../src/cli/fit/__tests__/display-fold.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAKjE,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,EAAE,CAAC;IACT,OAAO,WAAW,CAAC;QACjB,EAAE,EAAE,2BAA2B,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE;QACtE,IAAI;QACJ,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KAClB,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AACjF,SAAS,YAAY;IACnB,MAAM,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC7B,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,GAAG,GAAsC,
|
|
1
|
+
{"version":3,"file":"display-fold.test.js","sourceRoot":"","sources":["../../../../src/cli/fit/__tests__/display-fold.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,10 @@ function fitRowsToLiveRunTable(rows) {
|
|
|
17
17
|
}));
|
|
18
18
|
}
|
|
19
19
|
function makeFitnessScope() {
|
|
20
|
-
const scope = new RunScope({
|
|
20
|
+
const scope = new RunScope({
|
|
21
|
+
languages: new LanguageRegistry(),
|
|
22
|
+
tools: new ToolRegistry(),
|
|
23
|
+
});
|
|
21
24
|
applyToolContributeScope(scope, fitnessTool);
|
|
22
25
|
return scope;
|
|
23
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope-view-table.test.js","sourceRoot":"","sources":["../../../../src/cli/fit/__tests__/envelope-view-table.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,SAAS,qBAAqB,CAAC,IAA0C;IACvE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxB,IAAI,EAAE,GAAG,CAAC,KAAK;QACf,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"envelope-view-table.test.js","sourceRoot":"","sources":["../../../../src/cli/fit/__tests__/envelope-view-table.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,SAAS,qBAAqB,CAAC,IAA0C;IACvE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxB,IAAI,EAAE,GAAG,CAAC,KAAK;QACf,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC;QACzB,SAAS,EAAE,IAAI,gBAAgB,EAAE;QACjC,KAAK,EAAE,IAAI,YAAY,EAAE;KAC1B,CAAC,CAAC;IACH,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,QAAQ,GAAG,mBAAmB,CAAC;YACnC,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,0BAA0B;YACrC,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,KAAK;oBACb,cAAc,EAAE,CAAC;oBACjB,UAAU,EAAE,EAAE;oBACd,cAAc,EAAE,CAAC;oBACjB,QAAQ,EAAE,OAAO;oBACjB,YAAY,EAAE,CAAC;iBAChB;gBACD;oBACE,IAAI,EAAE,aAAa;oBACnB,MAAM,EAAE,IAAI;oBACZ,cAAc,EAAE,CAAC;oBACjB,UAAU,EAAE,EAAE;oBACd,cAAc,EAAE,CAAC;oBACjB,QAAQ,EAAE,OAAO;oBACjB,YAAY,EAAE,CAAC;iBAChB;aACF;YACD,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,4BAA4B;YACpC,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,CACrD,YAAY,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CACjE,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,CAAC,YAAY,CAAC,IAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;KAKjD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -19,16 +19,14 @@ const OUT_PATH = 'out/fit-baseline.sarif';
|
|
|
19
19
|
function makeCli(exportImpl) {
|
|
20
20
|
const exportBaselineSarif = vi.fn(exportImpl ?? (() => Promise.resolve()));
|
|
21
21
|
const emitJson = vi.fn();
|
|
22
|
-
const
|
|
23
|
-
const setExitCode = vi.fn();
|
|
22
|
+
const reportFailure = vi.fn(() => Promise.resolve());
|
|
24
23
|
const cli = {
|
|
25
24
|
exportBaselineSarif,
|
|
26
25
|
emitJson,
|
|
27
|
-
|
|
28
|
-
setExitCode,
|
|
26
|
+
reportFailure,
|
|
29
27
|
logger: { debug: vi.fn(), info: vi.fn(), warn: vi.fn(), error: vi.fn() },
|
|
30
28
|
};
|
|
31
|
-
return { cli, exportBaselineSarif, emitJson,
|
|
29
|
+
return { cli, exportBaselineSarif, emitJson, reportFailure };
|
|
32
30
|
}
|
|
33
31
|
let stdoutSpy;
|
|
34
32
|
let stderrSpy;
|
|
@@ -56,23 +54,23 @@ describe('fit export (canonical) command spec', () => {
|
|
|
56
54
|
const out = stdoutSpy.mock.calls.map((c) => String(c[0])).join('');
|
|
57
55
|
expect(out).toContain('Exported fit baseline');
|
|
58
56
|
});
|
|
59
|
-
it('maps the ConfigurationError "no baseline" path to exit 2
|
|
60
|
-
const { cli,
|
|
57
|
+
it('maps the ConfigurationError "no baseline" path to reportFailure exit 2', async () => {
|
|
58
|
+
const { cli, reportFailure } = makeCli(() => Promise.reject(new ConfigurationError('No fit baseline captured')));
|
|
61
59
|
await fitExportCommandSpec.handler({ format: 'baseline', out: OUT_PATH, _args: [] }, cli);
|
|
62
|
-
expect(
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
expect(reportFailure).toHaveBeenCalledWith({
|
|
61
|
+
message: 'No fit baseline captured',
|
|
62
|
+
exitCode: 2,
|
|
63
|
+
jsonRequested: false,
|
|
64
|
+
});
|
|
65
65
|
});
|
|
66
|
-
it('
|
|
67
|
-
const { cli,
|
|
66
|
+
it('routes --json + missing baseline through reportFailure', async () => {
|
|
67
|
+
const { cli, reportFailure } = makeCli(() => Promise.reject(new ConfigurationError('No fit baseline captured')));
|
|
68
68
|
await fitExportCommandSpec.handler({ format: 'baseline', out: OUT_PATH, json: true, _args: [] }, cli);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const payload = emitError.mock.calls[0]?.[0];
|
|
75
|
-
expect(payload?.exitCode).toBe(2);
|
|
69
|
+
expect(reportFailure).toHaveBeenCalledWith({
|
|
70
|
+
message: 'No fit baseline captured',
|
|
71
|
+
exitCode: 2,
|
|
72
|
+
jsonRequested: true,
|
|
73
|
+
});
|
|
76
74
|
});
|
|
77
75
|
});
|
|
78
76
|
//# sourceMappingURL=fit-export-command-spec.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fit-export-command-spec.test.js","sourceRoot":"","sources":["../../../../src/cli/fit/__tests__/fit-export-command-spec.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAqB,MAAM,QAAQ,CAAC;AAE5F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAIvF;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"fit-export-command-spec.test.js","sourceRoot":"","sources":["../../../../src/cli/fit/__tests__/fit-export-command-spec.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,10 @@ import { resolveFitVerdictPolicy } from '../result-builders.js';
|
|
|
19
19
|
* `@opensip-cli/core/test-utils` helper. The fitness engine's own tests
|
|
20
20
|
* cannot use `@opensip-cli/test-support` (it depends on this package —
|
|
21
21
|
* the dev edge would make the package graph cyclic; ADR-0040). */
|
|
22
|
-
const makeTestScope = () => new RunScope({
|
|
22
|
+
const makeTestScope = () => new RunScope({
|
|
23
|
+
languages: new LanguageRegistry(),
|
|
24
|
+
tools: new ToolRegistry(),
|
|
25
|
+
});
|
|
23
26
|
/** The minimal `signalersConfig` shape `resolveFitVerdictPolicy` reads as the FALLBACK source. */
|
|
24
27
|
function makeSignalersConfig(failOnErrors, failOnWarnings) {
|
|
25
28
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-resolved-config.test.js","sourceRoot":"","sources":["../../../../src/cli/fit/__tests__/gate-resolved-config.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAKhE;;;mEAGmE;AACnE,MAAM,aAAa,GAAG,GAAa,EAAE,CACnC,IAAI,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"gate-resolved-config.test.js","sourceRoot":"","sources":["../../../../src/cli/fit/__tests__/gate-resolved-config.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type FitOptions } from '@opensip-cli/contracts';
|
|
2
|
+
export interface ChangedSetOk {
|
|
3
|
+
readonly ok: true;
|
|
4
|
+
readonly files: ReadonlySet<string>;
|
|
5
|
+
readonly basis: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ChangedSetFail {
|
|
8
|
+
readonly ok: false;
|
|
9
|
+
readonly warning: string;
|
|
10
|
+
}
|
|
11
|
+
export type ChangedSetResult = ChangedSetOk | ChangedSetFail;
|
|
12
|
+
/**
|
|
13
|
+
* Resolve the changed file set (absolute paths) for a `--changed` fit run.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveChangedSet(args: Pick<FitOptions, 'cwd' | 'since' | 'changed' | 'includeImpacted'>): ChangedSetResult;
|
|
16
|
+
/**
|
|
17
|
+
* Intersect each check's target file list with the changed set; drop empty checks.
|
|
18
|
+
*/
|
|
19
|
+
export declare function restrictFileMapToChanged(scopeMap: Map<string, readonly string[]>, changedAbs: ReadonlySet<string>): Map<string, readonly string[]>;
|
|
20
|
+
//# sourceMappingURL=changed-targeting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changed-targeting.d.ts","sourceRoot":"","sources":["../../../src/cli/fit/changed-targeting.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoC,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAK3F,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,cAAc,CAAC;AAM7D;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,iBAAiB,CAAC,GACtE,gBAAgB,CAoDlB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,EACxC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,GAAG,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAShC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Changed-file targeting for `fit --changed` (ADR-0085).
|
|
3
|
+
*/
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { computeImpact } from '@opensip-cli/contracts';
|
|
6
|
+
import { createToolLogger, currentScope, resolveChangedFiles } from '@opensip-cli/core';
|
|
7
|
+
const log = createToolLogger('fitness:cli');
|
|
8
|
+
function toAbsolute(cwd, relativePosix) {
|
|
9
|
+
return path.resolve(cwd, relativePosix.split('/').join(path.sep));
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Resolve the changed file set (absolute paths) for a `--changed` fit run.
|
|
13
|
+
*/
|
|
14
|
+
export function resolveChangedSet(args) {
|
|
15
|
+
if (args.changed !== true && !args.since) {
|
|
16
|
+
return { ok: false, warning: 'resolveChangedSet called without --changed or --since' };
|
|
17
|
+
}
|
|
18
|
+
const resolved = resolveChangedFiles(args.cwd, { since: args.since });
|
|
19
|
+
if (!resolved.ok) {
|
|
20
|
+
log.warn({
|
|
21
|
+
evt: 'fitness.cli.changed.degraded',
|
|
22
|
+
module: 'fitness:cli',
|
|
23
|
+
reason: resolved.reason,
|
|
24
|
+
});
|
|
25
|
+
return { ok: false, warning: resolved.message };
|
|
26
|
+
}
|
|
27
|
+
const fileSet = new Set();
|
|
28
|
+
for (const rel of resolved.files) {
|
|
29
|
+
fileSet.add(toAbsolute(args.cwd, rel));
|
|
30
|
+
}
|
|
31
|
+
if (args.includeImpacted === true) {
|
|
32
|
+
const catalog = currentScope()?.graphCatalog?.();
|
|
33
|
+
if (!catalog) {
|
|
34
|
+
log.warn({
|
|
35
|
+
evt: 'fitness.cli.changed.degraded',
|
|
36
|
+
module: 'fitness:cli',
|
|
37
|
+
reason: 'graph-catalog-unavailable',
|
|
38
|
+
});
|
|
39
|
+
return {
|
|
40
|
+
ok: true,
|
|
41
|
+
files: fileSet,
|
|
42
|
+
basis: `${resolved.basis.type}:changed-only (graph catalog unavailable)`,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const impact = computeImpact(catalog, resolved.files);
|
|
46
|
+
for (const fn of [...impact.changedFunctions, ...impact.impactedFunctions]) {
|
|
47
|
+
fileSet.add(toAbsolute(args.cwd, fn.filePath));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
log.info({
|
|
51
|
+
evt: 'fitness.cli.changed.resolved',
|
|
52
|
+
module: 'fitness:cli',
|
|
53
|
+
changedFiles: resolved.files.length,
|
|
54
|
+
impactedFiles: fileSet.size,
|
|
55
|
+
});
|
|
56
|
+
return {
|
|
57
|
+
ok: true,
|
|
58
|
+
files: fileSet,
|
|
59
|
+
basis: resolved.basis.ref ? `changed:git:${resolved.basis.ref}` : 'changed:git:working-tree',
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Intersect each check's target file list with the changed set; drop empty checks.
|
|
64
|
+
*/
|
|
65
|
+
export function restrictFileMapToChanged(scopeMap, changedAbs) {
|
|
66
|
+
const narrowed = new Map();
|
|
67
|
+
for (const [slug, files] of scopeMap) {
|
|
68
|
+
const intersection = files.filter((f) => changedAbs.has(path.resolve(f)));
|
|
69
|
+
if (intersection.length > 0) {
|
|
70
|
+
narrowed.set(slug, intersection);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return narrowed;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=changed-targeting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changed-targeting.js","sourceRoot":"","sources":["../../../src/cli/fit/changed-targeting.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-loader.d.ts","sourceRoot":"","sources":["../../../src/cli/fit/check-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"check-loader.d.ts","sourceRoot":"","sources":["../../../src/cli/fit/check-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAuBH;;6EAE6E;AAC7E,wBAAgB,eAAe,IAAI,SAAS,MAAM,EAAE,CAEnD;AAED;;;;;GAKG;AAEH,wBAAgB,mBAAmB,IAAI,SAAS,MAAM,EAAE,CAEvD;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAMD;+DAC+D;AAC/D,wBAAsB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsD3E"}
|
|
@@ -21,9 +21,10 @@
|
|
|
21
21
|
import { dirname } from 'node:path';
|
|
22
22
|
import { fileURLToPath } from 'node:url';
|
|
23
23
|
import { resolveCapabilityPreferences } from '@opensip-cli/config';
|
|
24
|
-
import { capabilityDiscoveryToCliDiagnostic, currentScope, loadCapabilityDomain,
|
|
24
|
+
import { createToolLogger, capabilityDiscoveryToCliDiagnostic, currentScope, loadCapabilityDomain, } from '@opensip-cli/core';
|
|
25
25
|
import { currentCheckRegistry, currentFitnessLoadState } from '../../framework/scope-registry.js';
|
|
26
26
|
import { loadAllPlugins } from '../../plugins/loader.js';
|
|
27
|
+
const log = createToolLogger('fitness:cli');
|
|
27
28
|
// ---------------------------------------------------------------------------
|
|
28
29
|
// Public accessors — all read the current RunScope's fitness load state
|
|
29
30
|
// (`scope.fitness.load`), set once per run by `ensureChecksLoaded()`.
|
|
@@ -82,7 +83,7 @@ export async function ensureChecksLoaded(projectDir) {
|
|
|
82
83
|
if (pluginResult.errors.length > 0) {
|
|
83
84
|
// Structured classification happens in finalizeFitLoadOutcome; log only here.
|
|
84
85
|
for (const err of pluginResult.errors) {
|
|
85
|
-
|
|
86
|
+
log.warn({
|
|
86
87
|
evt: 'cli.plugin.warning',
|
|
87
88
|
module: 'cli:fit',
|
|
88
89
|
message: err,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-loader.js","sourceRoot":"","sources":["../../../src/cli/fit/check-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,kCAAkC,EAClC,YAAY,EACZ,oBAAoB,
|
|
1
|
+
{"version":3,"file":"check-loader.js","sourceRoot":"","sources":["../../../src/cli/fit/check-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../../src/cli/fit/config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../../src/cli/fit/config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAItE,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9D,cAAc,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC;CAClE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,GAAG;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,CAsBxF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,gCAAgC,CACpD,cAAc,EAAE,eAAe,CAAC,gBAAgB,CAAC,GAChD,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAuC5B"}
|
|
@@ -7,9 +7,10 @@
|
|
|
7
7
|
* zero findings, the exact failure mode the CLI exists to prevent.
|
|
8
8
|
*/
|
|
9
9
|
import { EXIT_CODES } from '@opensip-cli/contracts';
|
|
10
|
-
import {
|
|
10
|
+
import { createToolLogger } from '@opensip-cli/core';
|
|
11
11
|
import { loadSignalersConfig } from '../../signalers/index.js';
|
|
12
12
|
import { loadTargetsConfig } from '../../targets/index.js';
|
|
13
|
+
const log = createToolLogger('fitness:cli');
|
|
13
14
|
/**
|
|
14
15
|
* Resolve `signalersConfig` + `targetsConfig` for this run. Scope-first
|
|
15
16
|
* (ADR-0023 one-reader): on CLI paths both loaders project from the
|
|
@@ -31,7 +32,7 @@ export function loadFitConfig(args) {
|
|
|
31
32
|
}
|
|
32
33
|
catch (error) {
|
|
33
34
|
const message = error instanceof Error ? error.message : String(error);
|
|
34
|
-
|
|
35
|
+
log.warn({ evt: 'cli.config.load_failed', module: 'cli:fit', message });
|
|
35
36
|
return {
|
|
36
37
|
error: {
|
|
37
38
|
type: 'error',
|
|
@@ -91,7 +92,7 @@ export async function validateLanguagesAgainstAdapters(targetRegistry) {
|
|
|
91
92
|
if (unknownLanguages.size === 0)
|
|
92
93
|
return [];
|
|
93
94
|
const list = [...unknownLanguages].sort().join(', ');
|
|
94
|
-
|
|
95
|
+
log.warn({
|
|
95
96
|
evt: 'cli.config.unknown_languages',
|
|
96
97
|
module: 'cli:fit',
|
|
97
98
|
unknown: [...unknownLanguages],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../src/cli/fit/config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../src/cli/fit/config-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fit-aux-command-specs.d.ts","sourceRoot":"","sources":["../../../src/cli/fit/fit-aux-command-specs.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AASH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"fit-aux-command-specs.d.ts","sourceRoot":"","sources":["../../../src/cli/fit/fit-aux-command-specs.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AASH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAcrE,kDAAkD;AAClD,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,OAAO,EAAE,cAAc,CAazE,CAAC;AAEH,sDAAsD;AACtD,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,OAAO,EAAE,cAAc,CAW1E,CAAC;AAEL;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,uBAAwB,CAAC;AA4CxD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,OAAO,EAAE,cAAc,CAkCpE,CAAC"}
|
|
@@ -22,9 +22,10 @@
|
|
|
22
22
|
* documented non-Ink exception. The host renders nothing.
|
|
23
23
|
*/
|
|
24
24
|
import { EXIT_CODES } from '@opensip-cli/contracts';
|
|
25
|
-
import { ConfigurationError, defineNestedCommand
|
|
25
|
+
import { createToolLogger, ConfigurationError, defineNestedCommand } from '@opensip-cli/core';
|
|
26
26
|
import { listChecks } from '../fit-list.js';
|
|
27
27
|
import { listRecipes } from '../fit-recipes.js';
|
|
28
|
+
const log = createToolLogger('fitness:cli');
|
|
28
29
|
// =============================================================================
|
|
29
30
|
// GROUPED <tool> <verb> CHILDREN (the canonical Tier-2 grammar)
|
|
30
31
|
//
|
|
@@ -86,19 +87,17 @@ async function runFitBaselineExport(opts, cli) {
|
|
|
86
87
|
const exitCode = error instanceof ConfigurationError
|
|
87
88
|
? EXIT_CODES.CONFIGURATION_ERROR
|
|
88
89
|
: EXIT_CODES.RUNTIME_ERROR;
|
|
89
|
-
|
|
90
|
+
log.warn({
|
|
90
91
|
evt: 'cli.fit.baseline_export.failed',
|
|
91
92
|
module: 'fit:cli',
|
|
92
93
|
message,
|
|
93
94
|
exitCode,
|
|
94
95
|
});
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
cli.setExitCode(exitCode);
|
|
101
|
-
process.stderr.write(`Error: ${message}\n`);
|
|
96
|
+
await cli.reportFailure({
|
|
97
|
+
message,
|
|
98
|
+
exitCode,
|
|
99
|
+
jsonRequested: opts.json === true,
|
|
100
|
+
});
|
|
102
101
|
return;
|
|
103
102
|
}
|
|
104
103
|
const result = { type: 'fit-baseline-export', outPath: opts.out };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fit-aux-command-specs.js","sourceRoot":"","sources":["../../../src/cli/fit/fit-aux-command-specs.ts"],"names":[],"mappings":"AAAA,2WAA2W;AAC3W,yPAAyP;AACzP;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fit-aux-command-specs.js","sourceRoot":"","sources":["../../../src/cli/fit/fit-aux-command-specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fit-command-spec.d.ts","sourceRoot":"","sources":["../../../src/cli/fit/fit-command-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"fit-command-spec.d.ts","sourceRoot":"","sources":["../../../src/cli/fit/fit-command-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAgBH,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,mBAAmB,CAAC;AAoD3E;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,gFAkF/E;AAED,OAAO,EAAE,qBAAqB,IAAI,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|