@goodbones/cli 0.1.0-beta.10 → 0.1.0-beta.12
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/build/dts/config-loader.d.ts.map +1 -1
- package/build/dts/run.d.ts +18 -17
- package/build/dts/run.d.ts.map +1 -1
- package/build/esm/config-loader.js +4 -4
- package/build/esm/config-loader.js.map +1 -1
- package/build/esm/run.js +389 -358
- package/build/esm/run.js.map +1 -1
- package/package.json +5 -4
- package/src/config-loader.ts +7 -5
- package/src/run.ts +521 -441
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/config-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/config-loader.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,QAAQ,EACb,KAAK,YAAY,EAGjB,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAMpD,eAAO,MAAM,aAAa,QAAO,aAAa,CAAC,QAAQ,CAEtD,CAAC;AAKF,eAAO,MAAM,OAAO,QAAO,MAQ1B,CAAC;AAQF,eAAO,MAAM,cAAc,aAAc,MAAM,mBAAmB,MAAM,KAAG,MAG/B,CAAC;AAE7C,eAAO,MAAM,kBAAkB,aACnB,MAAM,mBACC,MAAM,KACtB,OAAO,CAAC,YAAY,CAkBtB,CAAC;AAMF,eAAO,MAAM,sBAAsB,aACvB,MAAM,YACN,OAAO,KAChB,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,GAAG,cAAc,CASzD,CAAC"}
|
package/build/dts/run.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type CampaignEvaluation, type CampaignReport } from "@goodbones/campaigns";
|
|
2
|
+
import { type ConformanceMeasure, type CoverageFamily, type Graph, type ObservedEdge, type Snapshot, type Violation } from "@goodbones/core";
|
|
2
3
|
import * as Effect from "effect/Effect";
|
|
3
4
|
import { type LoadedPolicy } from "./config-loader.js";
|
|
4
5
|
export type CliFailure = {
|
|
@@ -12,7 +13,7 @@ export type UnresolvedEdge = {
|
|
|
12
13
|
};
|
|
13
14
|
export type Findings = {
|
|
14
15
|
readonly violations: ReadonlyArray<Violation>;
|
|
15
|
-
readonly campaigns: ReadonlyArray<
|
|
16
|
+
readonly campaigns: ReadonlyArray<CampaignEvaluation>;
|
|
16
17
|
readonly unresolved: ReadonlyArray<UnresolvedEdge>;
|
|
17
18
|
readonly files: number;
|
|
18
19
|
readonly edges: ReadonlyArray<ObservedEdge>;
|
|
@@ -26,18 +27,9 @@ export type ReportedViolation = Violation & {
|
|
|
26
27
|
readonly fingerprint: string;
|
|
27
28
|
readonly baselined: boolean;
|
|
28
29
|
readonly ledgered: boolean;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
readonly
|
|
32
|
-
readonly count: number;
|
|
33
|
-
readonly new: ReadonlyArray<string>;
|
|
34
|
-
readonly stale: ReadonlyArray<string>;
|
|
35
|
-
readonly drifted: number;
|
|
36
|
-
readonly missingLedger: boolean;
|
|
37
|
-
readonly arithmetic: boolean;
|
|
38
|
-
readonly complete: boolean;
|
|
39
|
-
readonly stalled: boolean;
|
|
40
|
-
readonly onComplete: "keep" | "remove";
|
|
30
|
+
readonly objective?: string;
|
|
31
|
+
readonly sector?: string;
|
|
32
|
+
readonly entry?: string;
|
|
41
33
|
};
|
|
42
34
|
export type CoverageReport = Readonly<Record<CoverageFamily, {
|
|
43
35
|
readonly covered: number;
|
|
@@ -79,16 +71,25 @@ export type ConformanceOptions = CheckOptions;
|
|
|
79
71
|
export declare const conformance: (policy: LoadedPolicy, roots: ReadonlyArray<string>, options: ConformanceOptions) => Effect.Effect<void, CliFailure>;
|
|
80
72
|
export declare const coverage: (policy: LoadedPolicy, roots: ReadonlyArray<string>) => Effect.Effect<void, CliFailure>;
|
|
81
73
|
export declare const writeBaseline: (policy: LoadedPolicy, roots: ReadonlyArray<string>) => Effect.Effect<void, CliFailure>;
|
|
82
|
-
export declare const explain: (policy: LoadedPolicy, file: string) => Effect.Effect<void, CliFailure>;
|
|
74
|
+
export declare const explain: (policy: LoadedPolicy, file: string, roots?: ReadonlyArray<string>) => Effect.Effect<void, CliFailure>;
|
|
83
75
|
export declare const facts: (policy: LoadedPolicy, file: string, format?: "text" | "json") => Effect.Effect<void, CliFailure>;
|
|
84
76
|
export declare const init: (repoRoot: string) => Effect.Effect<void, CliFailure>;
|
|
85
77
|
export declare const migrate: (repoRoot: string, configFilename?: string) => Effect.Effect<void, CliFailure>;
|
|
86
78
|
export declare const campaignArgsOf: (argv: ReadonlyArray<string>, ids: ReadonlyArray<string>) => {
|
|
87
79
|
readonly subcommand: string | undefined;
|
|
88
|
-
readonly
|
|
80
|
+
readonly args: ReadonlyArray<string>;
|
|
81
|
+
readonly roots: ReadonlyArray<string>;
|
|
82
|
+
};
|
|
83
|
+
export declare const objectiveArgsOf: (argv: ReadonlyArray<string>, ids: ReadonlyArray<string>) => {
|
|
84
|
+
readonly subcommand: string | undefined;
|
|
85
|
+
readonly target: {
|
|
86
|
+
campaign: string;
|
|
87
|
+
objective: string | null;
|
|
88
|
+
} | null;
|
|
89
89
|
readonly roots: ReadonlyArray<string>;
|
|
90
90
|
};
|
|
91
|
-
export declare const
|
|
91
|
+
export declare const objectives: (policy: LoadedPolicy, defaultRoots: ReadonlyArray<string>, argv: ReadonlyArray<string>) => Effect.Effect<void, CliFailure>;
|
|
92
|
+
export declare const campaigns: (policy: LoadedPolicy, defaultRoots: ReadonlyArray<string>, argv: ReadonlyArray<string>, configFilename?: string) => Effect.Effect<void, CliFailure>;
|
|
92
93
|
export declare const run: (repoRoot: string, argv: ReadonlyArray<string>, configFilename?: string) => Effect.Effect<void, CliFailure>;
|
|
93
94
|
export declare const fingerprint: (violation: Violation) => string;
|
|
94
95
|
//# sourceMappingURL=run.d.ts.map
|
package/build/dts/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as path from "node:path";
|
|
2
2
|
import { astGrepMatcher } from "@goodbones/ast-grep";
|
|
3
|
-
import {
|
|
3
|
+
import { campaignsExtension, loadCampaignFunctions, makeReportSourceLive, } from "@goodbones/campaigns";
|
|
4
|
+
import { findManifestFile, loadPolicy, makeFileSystemLive, readManifestFile, } from "@goodbones/core";
|
|
4
5
|
import { typescriptLanguage } from "@goodbones/typescript";
|
|
5
6
|
import * as Result from "effect/Result";
|
|
6
7
|
// The language packs this host is composed with. Constructed here and handed
|
|
@@ -45,8 +46,7 @@ export const loadPolicyFromFile = async (repoRoot, configFilename) => {
|
|
|
45
46
|
locate: read.locate,
|
|
46
47
|
languages: hostLanguages(),
|
|
47
48
|
fileSystem: makeFileSystemLive(repoRoot),
|
|
48
|
-
functions,
|
|
49
|
-
reports: makeReportSourceLive(repoRoot),
|
|
49
|
+
extensions: [campaignsExtension({ functions, reports: makeReportSourceLive(repoRoot) })],
|
|
50
50
|
now: hostNow(),
|
|
51
51
|
});
|
|
52
52
|
if (Result.isFailure(loaded))
|
|
@@ -63,7 +63,7 @@ export const loadPolicyFromManifest = (repoRoot, manifest) => loadPolicy({
|
|
|
63
63
|
manifest,
|
|
64
64
|
languages: hostLanguages(),
|
|
65
65
|
fileSystem: makeFileSystemLive(repoRoot),
|
|
66
|
-
reports: makeReportSourceLive(repoRoot),
|
|
66
|
+
extensions: [campaignsExtension({ reports: makeReportSourceLive(repoRoot) })],
|
|
67
67
|
now: hostNow(),
|
|
68
68
|
});
|
|
69
69
|
//# sourceMappingURL=config-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config-loader.ts"],"names":[],"mappings":"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"}
|