@goodbones/cli 0.1.0-beta.6 → 0.1.0-beta.8

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.
@@ -2,6 +2,7 @@ import { type ConfigInvalid, type Language, type LoadedPolicy, type PatternInval
2
2
  import * as Result from "effect/Result";
3
3
  export type { LoadedPolicy } from "@goodbones/core";
4
4
  export declare const hostLanguages: () => ReadonlyArray<Language>;
5
+ export declare const hostNow: () => number;
5
6
  export declare const manifestPathOf: (repoRoot: string, configFilename?: string) => string;
6
7
  export declare const loadPolicyFromFile: (repoRoot: string, configFilename?: string) => Promise<LoadedPolicy>;
7
8
  export declare const loadPolicyFromManifest: (repoRoot: string, manifest: unknown) => Result.Result<LoadedPolicy, ConfigInvalid | PatternInvalid>;
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/config-loader.ts"],"names":[],"mappings":"AAEA,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;AAIpD,eAAO,MAAM,aAAa,QAAO,aAAa,CAAC,QAAQ,CAA2B,CAAC;AAQnF,eAAO,MAAM,cAAc,aAAc,MAAM,mBAAmB,MAAM,KAAG,MAG/B,CAAC;AAE7C,eAAO,MAAM,kBAAkB,aACnB,MAAM,mBACC,MAAM,KACtB,OAAO,CAAC,YAAY,CAatB,CAAC;AAMF,eAAO,MAAM,sBAAsB,aACvB,MAAM,YACN,OAAO,KAChB,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,GAAG,cAAc,CAOzD,CAAC"}
1
+ {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/config-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,QAAQ,EAEb,KAAK,YAAY,EAIjB,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,CAmBtB,CAAC;AAMF,eAAO,MAAM,sBAAsB,aACvB,MAAM,YACN,OAAO,KAChB,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,GAAG,cAAc,CASzD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type CoverageFamily, type Graph, type ObservedEdge, type Snapshot, type Violation } from "@goodbones/core";
1
+ import { type CampaignHit, type CoverageFamily, type Graph, type ObservedEdge, type Snapshot, type Violation } from "@goodbones/core";
2
2
  import * as Effect from "effect/Effect";
3
3
  import { type LoadedPolicy } from "./config-loader.js";
4
4
  export type CliFailure = {
@@ -12,6 +12,7 @@ export type UnresolvedEdge = {
12
12
  };
13
13
  export type Findings = {
14
14
  readonly violations: ReadonlyArray<Violation>;
15
+ readonly campaigns: ReadonlyArray<CampaignHit>;
15
16
  readonly unresolved: ReadonlyArray<UnresolvedEdge>;
16
17
  readonly files: number;
17
18
  readonly edges: ReadonlyArray<ObservedEdge>;
@@ -24,6 +25,19 @@ export declare const collectFindings: (policy: LoadedPolicy, roots: ReadonlyArra
24
25
  export type ReportedViolation = Violation & {
25
26
  readonly fingerprint: string;
26
27
  readonly baselined: boolean;
28
+ readonly ledgered: boolean;
29
+ };
30
+ export type CampaignReport = {
31
+ readonly id: string;
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";
27
41
  };
28
42
  export type CoverageReport = Readonly<Record<CoverageFamily, {
29
43
  readonly covered: number;
@@ -47,6 +61,7 @@ export type CheckReport = {
47
61
  readonly unrestricted: ReadonlyArray<string>;
48
62
  readonly partial: ReadonlyArray<string>;
49
63
  };
64
+ readonly campaigns: ReadonlyArray<CampaignReport>;
50
65
  };
51
66
  export declare const checkReport: (policy: LoadedPolicy, roots: ReadonlyArray<string>, manifestPath: string) => CheckReport;
52
67
  export type CheckOptions = {
@@ -63,6 +78,12 @@ export declare const explain: (policy: LoadedPolicy, file: string) => Effect.Eff
63
78
  export declare const facts: (policy: LoadedPolicy, file: string, format?: "text" | "json") => Effect.Effect<void, CliFailure>;
64
79
  export declare const init: (repoRoot: string) => Effect.Effect<void, CliFailure>;
65
80
  export declare const migrate: (repoRoot: string, configFilename?: string) => Effect.Effect<void, CliFailure>;
81
+ export declare const campaignArgsOf: (argv: ReadonlyArray<string>, ids: ReadonlyArray<string>) => {
82
+ readonly subcommand: string | undefined;
83
+ readonly id: string | undefined;
84
+ readonly roots: ReadonlyArray<string>;
85
+ };
86
+ export declare const campaigns: (policy: LoadedPolicy, defaultRoots: ReadonlyArray<string>, argv: ReadonlyArray<string>) => Effect.Effect<void, CliFailure>;
66
87
  export declare const run: (repoRoot: string, argv: ReadonlyArray<string>, configFilename?: string) => Effect.Effect<void, CliFailure>;
67
88
  export declare const fingerprint: (violation: Violation) => string;
68
89
  //# sourceMappingURL=run.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,cAAc,EAkBnB,KAAK,KAAK,EAQV,KAAK,YAAY,EAOjB,KAAK,QAAQ,EAMb,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,KAAK,YAAY,EAAsC,MAAM,oBAAoB,CAAC;AAiB3F,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAMnF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAIvB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAE5C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAG3B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,eAAe,WAClB,YAAY,SACb,aAAa,CAAC,MAAM,CAAC,YACnB,cAAc,KACtB,QAuFF,CAAC;AA4BF,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,QAAQ,CACnC,MAAM,CACJ,cAAc,EACd;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAC9E,CACF,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IAGrB,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAEtE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAEnD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;KACzC,CAAC;CACH,CAAC;AAkBF,eAAO,MAAM,WAAW,WACd,YAAY,SACb,aAAa,CAAC,MAAM,CAAC,gBACd,MAAM,KACnB,WAAoF,CAAC;AA8HxF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,KAAK,WACR,YAAY,SACb,aAAa,CAAC,MAAM,CAAC,WACnB,YAAY,KACpB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAU7B,CAAC;AASL,eAAO,MAAM,UAAU,WACb,YAAY,SACb,aAAa,CAAC,MAAM,CAAC,gBACd,MAAM,KACnB,QA0CF,CAAC;AA0FF,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAM9C,eAAO,MAAM,WAAW,WACd,YAAY,SACb,aAAa,CAAC,MAAM,CAAC,WACnB,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAM7B,CAAC;AAKL,eAAO,MAAM,QAAQ,WACX,YAAY,SACb,aAAa,CAAC,MAAM,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAiC7B,CAAC;AAEL,eAAO,MAAM,aAAa,WAChB,YAAY,SACb,aAAa,CAAC,MAAM,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAkB7B,CAAC;AAIL,eAAO,MAAM,OAAO,WAAY,YAAY,QAAQ,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAuFvF,CAAC;AAQL,eAAO,MAAM,KAAK,WACR,YAAY,QACd,MAAM,WACJ,MAAM,GAAG,MAAM,KACtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAmD7B,CAAC;AAuDL,eAAO,MAAM,IAAI,aAAc,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAoBlE,CAAC;AAKL,eAAO,MAAM,OAAO,aACR,MAAM,mBACC,MAAM,KACtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CA0C7B,CAAC;AAEL,eAAO,MAAM,GAAG,aACJ,MAAM,QACV,aAAa,CAAC,MAAM,CAAC,mBAEV,MAAM,KACtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CA6E7B,CAAC;AAEL,eAAO,MAAM,WAAW,kCAAgB,CAAC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,28 @@
1
1
  import * as path from "node:path";
2
- import { findManifestFile, loadPolicy, makeFileSystemLive, readManifestFile, } from "@goodbones/core";
2
+ import { astGrepMatcher } from "@goodbones/ast-grep";
3
+ import { findManifestFile, loadCampaignFunctions, loadPolicy, makeFileSystemLive, makeReportSourceLive, readManifestFile, } from "@goodbones/core";
3
4
  import { typescriptLanguage } from "@goodbones/typescript";
4
5
  import * as Result from "effect/Result";
5
6
  // The language packs this host is composed with. Constructed here and handed
6
- // down as the `Language` port, so nothing below this file names TypeScript.
7
- export const hostLanguages = () => [typescriptLanguage()];
7
+ // down as the `Language` port, so nothing below this file names TypeScript —
8
+ // or ast-grep, which the pack is composed with here for the campaigns
9
+ // family's `syntax` term.
10
+ export const hostLanguages = () => [
11
+ typescriptLanguage({ syntax: astGrepMatcher() }),
12
+ ];
13
+ // The clock the campaigns are judged by. `ARCHITECTURE_NOW` (an ISO date or
14
+ // epoch milliseconds) pins it, for a CI that replays a day or a test that
15
+ // needs a stall to have happened.
16
+ export const hostNow = () => {
17
+ const pinned = process.env.ARCHITECTURE_NOW;
18
+ if (pinned === undefined || pinned === "")
19
+ return Date.now();
20
+ const parsed = /^\d+$/.test(pinned) ? Number(pinned) : Date.parse(pinned);
21
+ if (Number.isNaN(parsed)) {
22
+ throw new Error(`ARCHITECTURE_NOW is ${JSON.stringify(pinned)}, which is not a date.`);
23
+ }
24
+ return parsed;
25
+ };
8
26
  // The CLI's composition root: read the manifest file, construct the language
9
27
  // packs and the live file system, and hand them to the loader. The plugin has
10
28
  // one of its own with the same three lines, on purpose — the two hosts share
@@ -17,13 +35,19 @@ export const manifestPathOf = (repoRoot, configFilename) => configFilename === u
17
35
  export const loadPolicyFromFile = async (repoRoot, configFilename) => {
18
36
  const configPath = manifestPathOf(repoRoot, configFilename);
19
37
  const read = await readManifestFile(configPath);
38
+ // The `fn` terms are imported here, before the policy loads: the core
39
+ // receives the functions as a map and touches no module loader.
40
+ const { functions, manifest } = await loadCampaignFunctions(configPath, read.manifest);
20
41
  const loaded = loadPolicy({
21
42
  repoRoot,
22
43
  configPath,
23
- manifest: read.manifest,
44
+ manifest,
24
45
  locate: read.locate,
25
46
  languages: hostLanguages(),
26
47
  fileSystem: makeFileSystemLive(repoRoot),
48
+ functions,
49
+ reports: makeReportSourceLive(repoRoot),
50
+ now: hostNow(),
27
51
  });
28
52
  if (Result.isFailure(loaded))
29
53
  throw loaded.failure;
@@ -39,5 +63,7 @@ export const loadPolicyFromManifest = (repoRoot, manifest) => loadPolicy({
39
63
  manifest,
40
64
  languages: hostLanguages(),
41
65
  fileSystem: makeFileSystemLive(repoRoot),
66
+ reports: makeReportSourceLive(repoRoot),
67
+ now: hostNow(),
42
68
  });
43
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,EAEL,gBAAgB,EAGhB,UAAU,EACV,kBAAkB,EAElB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,6EAA6E;AAC7E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,aAAa,GAAG,GAA4B,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAEnF,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,iCAAiC;AACjC,wEAAwE;AACxE,iDAAiD;AACjD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,cAAuB,EAAU,EAAE,CAClF,cAAc,KAAK,SAAS;IAC1B,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC;IAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,QAAgB,EAChB,cAAuB,EACA,EAAE;IACzB,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,UAAU,CAAC;QACxB,QAAQ;QACR,UAAU;QACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,aAAa,EAAE;QAC1B,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC;KACzC,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;QAAE,MAAM,MAAM,CAAC,OAAO,CAAC;IACnD,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC,CAAC;AAEF,yEAAyE;AACzE,sEAAsE;AACtE,8EAA8E;AAC9E,mCAAmC;AACnC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,QAAgB,EAChB,QAAiB,EAC4C,EAAE,CAC/D,UAAU,CAAC;IACT,QAAQ;IACR,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvD,QAAQ;IACR,SAAS,EAAE,aAAa,EAAE;IAC1B,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC;CACzC,CAAC,CAAC"}
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config-loader.ts"],"names":[],"mappings":"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"}