@goodbones/core 0.1.0-beta.4 → 0.1.0-beta.6

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.
Files changed (55) hide show
  1. package/build/dts/core/coverage.d.ts +20 -0
  2. package/build/dts/core/coverage.d.ts.map +1 -1
  3. package/build/dts/core/graph.d.ts +1 -0
  4. package/build/dts/core/graph.d.ts.map +1 -1
  5. package/build/dts/core/imports.d.ts +3 -1
  6. package/build/dts/core/imports.d.ts.map +1 -1
  7. package/build/dts/core/slack.d.ts +22 -0
  8. package/build/dts/core/slack.d.ts.map +1 -0
  9. package/build/dts/domain/architecture-config.d.ts +15 -0
  10. package/build/dts/domain/architecture-config.d.ts.map +1 -1
  11. package/build/dts/domain/snapshot.d.ts +162 -0
  12. package/build/dts/domain/snapshot.d.ts.map +1 -0
  13. package/build/dts/index.d.ts +7 -5
  14. package/build/dts/index.d.ts.map +1 -1
  15. package/build/dts/manifest/compile.d.ts +5 -1
  16. package/build/dts/manifest/compile.d.ts.map +1 -1
  17. package/build/dts/manifest/expand.d.ts +1 -0
  18. package/build/dts/manifest/expand.d.ts.map +1 -1
  19. package/build/dts/manifest/manifest.d.ts +2 -0
  20. package/build/dts/manifest/manifest.d.ts.map +1 -1
  21. package/build/esm/core/coverage.js +107 -32
  22. package/build/esm/core/coverage.js.map +1 -1
  23. package/build/esm/core/graph.js +37 -0
  24. package/build/esm/core/graph.js.map +1 -1
  25. package/build/esm/core/imports.js +14 -9
  26. package/build/esm/core/imports.js.map +1 -1
  27. package/build/esm/core/slack.js +76 -0
  28. package/build/esm/core/slack.js.map +1 -0
  29. package/build/esm/domain/architecture-config.js +24 -0
  30. package/build/esm/domain/architecture-config.js.map +1 -1
  31. package/build/esm/domain/snapshot.js +112 -0
  32. package/build/esm/domain/snapshot.js.map +1 -0
  33. package/build/esm/index.js +6 -4
  34. package/build/esm/index.js.map +1 -1
  35. package/build/esm/load/policy.js +1 -1
  36. package/build/esm/load/policy.js.map +1 -1
  37. package/build/esm/manifest/compile.js +48 -25
  38. package/build/esm/manifest/compile.js.map +1 -1
  39. package/build/esm/manifest/expand.js +5 -0
  40. package/build/esm/manifest/expand.js.map +1 -1
  41. package/build/esm/manifest/manifest.js +1 -0
  42. package/build/esm/manifest/manifest.js.map +1 -1
  43. package/package.json +3 -1
  44. package/schema/conformance.schema.json +546 -0
  45. package/src/core/coverage.ts +164 -34
  46. package/src/core/graph.ts +36 -0
  47. package/src/core/imports.ts +29 -13
  48. package/src/core/slack.ts +135 -0
  49. package/src/domain/architecture-config.ts +26 -0
  50. package/src/domain/snapshot.ts +225 -0
  51. package/src/index.ts +34 -1
  52. package/src/load/policy.ts +1 -1
  53. package/src/manifest/compile.ts +79 -28
  54. package/src/manifest/expand.ts +9 -0
  55. package/src/manifest/manifest.ts +4 -0
@@ -27,7 +27,21 @@ export type CoverageInputs = {
27
27
  readonly surfaceRules: ReadonlyArray<CompiledSurfaceRule>;
28
28
  readonly graph: CompiledGraph;
29
29
  };
30
+ export type Reach = {
31
+ readonly file: string;
32
+ readonly imports: boolean;
33
+ readonly structure: "enumerated" | "open" | null;
34
+ readonly members: boolean;
35
+ readonly surface: boolean;
36
+ readonly graph: boolean;
37
+ };
38
+ export declare const reachOf: (policy: CoverageInputs, files: ReadonlyArray<string>) => ReadonlyArray<Reach>;
30
39
  export declare const coverageOf: (policy: CoverageInputs, files: ReadonlyArray<string>) => Coverage;
40
+ export type Residue = {
41
+ readonly files: ReadonlyArray<string>;
42
+ readonly folders: ReadonlyArray<string>;
43
+ };
44
+ export declare const residueOf: (policy: CoverageInputs, files: ReadonlyArray<string>) => Residue;
31
45
  export type CoverageFloors = {
32
46
  readonly imports?: number;
33
47
  readonly structure?: number;
@@ -36,6 +50,12 @@ export type CoverageFloors = {
36
50
  readonly graph?: number;
37
51
  };
38
52
  export type CoverageFamily = keyof CoverageFloors;
53
+ export type Vacancy = ReadonlyArray<{
54
+ readonly node: string;
55
+ readonly allowances: number;
56
+ }>;
57
+ export declare const vacantNodesOf: (rules: ReadonlyArray<CompiledImportRule>, files: ReadonlyArray<string>) => ReadonlySet<string>;
58
+ export declare const vacancyOf: (rules: ReadonlyArray<CompiledImportRule>, files: ReadonlyArray<string>) => Vacancy;
39
59
  export declare const fractionOf: (covered: number, total: number) => number;
40
60
  export declare const fractionsOf: (coverage: Coverage) => Readonly<Record<CoverageFamily, number>>;
41
61
  export type Shortfall = {
@@ -1 +1 @@
1
- {"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../../src/core/coverage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAOxD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAE9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAGvB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACxD,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC1D,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC/B,CAAC;AAiBF,eAAO,MAAM,UAAU,WAAY,cAAc,SAAS,aAAa,CAAC,MAAM,CAAC,KAAG,QA4CjF,CAAC;AAIF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC;AAElD,eAAO,MAAM,UAAU,YAAa,MAAM,SAAS,MAAM,KAAG,MACzB,CAAC;AAEpC,eAAO,MAAM,WAAW,aAAc,QAAQ,KAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAMtF,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,kBAAkB,aACnB,QAAQ,UACV,cAAc,KACrB,aAAa,CAAC,SAAS,CAczB,CAAC"}
1
+ {"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../../src/core/coverage.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,7 @@ export declare const EMPTY_GRAPH_RULES: CompiledGraph;
35
35
  export declare const hasGraphRules: (rules: CompiledGraph) => boolean;
36
36
  export declare const compileGraphRules: (config: GraphConfig | undefined) => Result.Result<CompiledGraph, PatternInvalid>;
37
37
  export declare const cyclesIn: (graph: Graph) => ReadonlyArray<ReadonlyArray<string>>;
38
+ export declare const heightOf: (graph: Graph) => ReadonlyMap<string, number>;
38
39
  export declare const evaluateGraph: (rules: CompiledGraph, graph: Graph) => ReadonlyArray<Violation>;
39
40
  export declare const graphOf: (probe: GraphProbe) => Graph;
40
41
  export declare const graphRulesFailingTheirProbe: (rules: CompiledGraph) => ReadonlyArray<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/core/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EACV,WAAW,EAGX,UAAU,EAEX,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMxD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,GAAG;IAC7D,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IACzD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,aAAsD,CAAC;AAEvF,eAAO,MAAM,aAAa,UAAW,aAAa,KAAG,OACgB,CAAC;AA+EtE,eAAO,MAAM,iBAAiB,WACpB,WAAW,GAAG,SAAS,KAC9B,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,CAoB7C,CAAC;AAkEF,eAAO,MAAM,QAAQ,UAAW,KAAK,KAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAOvE,CAAC;AAqFL,eAAO,MAAM,aAAa,UAAW,aAAa,SAAS,KAAK,KAAG,aAAa,CAAC,SAAS,CAIzF,CAAC;AAGF,eAAO,MAAM,OAAO,UAAW,UAAU,KAAG,KAW3C,CAAC;AAEF,eAAO,MAAM,2BAA2B,UAAW,aAAa,KAAG,aAAa,CAAC,MAAM,CAUtF,CAAC"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/core/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EACV,WAAW,EAGX,UAAU,EAEX,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMxD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,GAAG;IAC7D,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IACzD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,aAAsD,CAAC;AAEvF,eAAO,MAAM,aAAa,UAAW,aAAa,KAAG,OACgB,CAAC;AA+EtE,eAAO,MAAM,iBAAiB,WACpB,WAAW,GAAG,SAAS,KAC9B,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,CAoB7C,CAAC;AAkEF,eAAO,MAAM,QAAQ,UAAW,KAAK,KAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAOvE,CAAC;AAQL,eAAO,MAAM,QAAQ,UAAW,KAAK,KAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CA4BjE,CAAC;AAqFF,eAAO,MAAM,aAAa,UAAW,aAAa,SAAS,KAAK,KAAG,aAAa,CAAC,SAAS,CAIzF,CAAC;AAGF,eAAO,MAAM,OAAO,UAAW,UAAU,KAAG,KAW3C,CAAC;AAEF,eAAO,MAAM,2BAA2B,UAAW,aAAa,KAAG,aAAa,CAAC,MAAM,CAUtF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import * as Result from "effect/Result";
2
- import type { ImportProbe, ImportProbeTarget, ImportRule } from "../domain/architecture-config.js";
2
+ import type { Allowance, ImportProbe, ImportProbeTarget, ImportRule } from "../domain/architecture-config.js";
3
3
  import type { ImportUnresolved, PatternInvalid } from "../domain/architecture-error.js";
4
4
  import type { Violation } from "../domain/violation.js";
5
5
  import type { DependencyKind, ModuleResolver, ResolvedTarget } from "../ports/module-resolver.js";
@@ -11,6 +11,7 @@ export type CompiledImportRule = {
11
11
  readonly to: ReadonlyArray<string>;
12
12
  readonly toNot: ReadonlyArray<string>;
13
13
  readonly externals: ReadonlySet<string>;
14
+ readonly allowances: ReadonlyArray<Allowance>;
14
15
  readonly dependencyKind: DependencyKind | null;
15
16
  readonly probe: ImportProbe;
16
17
  };
@@ -22,6 +23,7 @@ export type ImportEdge = {
22
23
  };
23
24
  export type SelectedRule = readonly [CompiledImportRule, RegExpExecArray];
24
25
  export declare const rulesSelecting: (rules: ReadonlyArray<CompiledImportRule>, importer: string) => ReadonlyArray<SelectedRule>;
26
+ export declare const evaluateResolvedEdge: (selected: ReadonlyArray<SelectedRule>, importer: string, target: ResolvedTarget) => ReadonlyArray<Violation>;
25
27
  export declare const evaluateSelectedEdge: (selected: ReadonlyArray<SelectedRule>, resolver: ModuleResolver, edge: ImportEdge) => Result.Result<ReadonlyArray<Violation>, ImportUnresolved>;
26
28
  export declare const evaluateImportEdge: (rules: ReadonlyArray<CompiledImportRule>, resolver: ModuleResolver, edge: ImportEdge) => Result.Result<ReadonlyArray<Violation>, ImportUnresolved>;
27
29
  export declare const probeTargetOf: (to: ImportProbeTarget) => ResolvedTarget;
@@ -1 +1 @@
1
- {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../../src/core/imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnG,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AASlG,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAIxC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAGtC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,SACtB,UAAU,KACf,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAuBlD,CAAC;AAEF,eAAO,MAAM,kBAAkB,UACtB,aAAa,CAAC,UAAU,CAAC,KAC/B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,cAAc,CAQjE,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;AAK1E,eAAO,MAAM,cAAc,UAClB,aAAa,CAAC,kBAAkB,CAAC,YAC9B,MAAM,KACf,aAAa,CAAC,YAAY,CAO5B,CAAC;AAiBF,eAAO,MAAM,oBAAoB,aACrB,aAAa,CAAC,YAAY,CAAC,YAC3B,cAAc,QAClB,UAAU,KACf,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAqB1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,UACtB,aAAa,CAAC,kBAAkB,CAAC,YAC9B,cAAc,QAClB,UAAU,KACf,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,gBAAgB,CACiB,CAAC;AAI7E,eAAO,MAAM,aAAa,OAAQ,iBAAiB,KAAG,cAIrD,CAAC;AAKF,eAAO,MAAM,sBAAsB,UAC1B,aAAa,CAAC,kBAAkB,CAAC,KACvC,aAAa,CAAC,kBAAkB,CAK/B,CAAC"}
1
+ {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../../src/core/imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,UAAU,EACX,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AASlG,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAIxC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAGtC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAGxC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,SACtB,UAAU,KACf,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAwBlD,CAAC;AAEF,eAAO,MAAM,kBAAkB,UACtB,aAAa,CAAC,UAAU,CAAC,KAC/B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,cAAc,CAQjE,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;AAK1E,eAAO,MAAM,cAAc,UAClB,aAAa,CAAC,kBAAkB,CAAC,YAC9B,MAAM,KACf,aAAa,CAAC,YAAY,CAO5B,CAAC;AAmBF,eAAO,MAAM,oBAAoB,aACrB,aAAa,CAAC,YAAY,CAAC,YAC3B,MAAM,UACR,cAAc,KACrB,aAAa,CAAC,SAAS,CAczB,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACrB,aAAa,CAAC,YAAY,CAAC,YAC3B,cAAc,QAClB,UAAU,KACf,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAM1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,UACtB,aAAa,CAAC,kBAAkB,CAAC,YAC9B,cAAc,QAClB,UAAU,KACf,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,gBAAgB,CACiB,CAAC;AAI7E,eAAO,MAAM,aAAa,OAAQ,iBAAiB,KAAG,cAIrD,CAAC;AAKF,eAAO,MAAM,sBAAsB,UAC1B,aAAa,CAAC,kBAAkB,CAAC,KACvC,aAAa,CAAC,kBAAkB,CAK/B,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { Allowance } from "../domain/architecture-config.js";
2
+ import type { ResolvedTarget } from "../ports/module-resolver.js";
3
+ import type { CompiledImportRule } from "./imports.js";
4
+ export type ObservedEdge = {
5
+ readonly importer: string;
6
+ readonly target: ResolvedTarget;
7
+ };
8
+ export type Slack = Pick<Allowance, "node" | "kind" | "entry"> & {
9
+ readonly fragment?: string;
10
+ readonly of?: number;
11
+ };
12
+ export type Concentration = Pick<Allowance, "kind" | "entry"> & {
13
+ readonly fragment: string;
14
+ readonly usedAt: number;
15
+ readonly of: number;
16
+ };
17
+ export type SlackReport = {
18
+ readonly slack: ReadonlyArray<Slack>;
19
+ readonly concentration: ReadonlyArray<Concentration>;
20
+ };
21
+ export declare const slackOf: (rules: ReadonlyArray<CompiledImportRule>, edges: ReadonlyArray<ObservedEdge>, files: ReadonlyArray<string>) => SlackReport;
22
+ //# sourceMappingURL=slack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../../src/core/slack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAWvD,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC,CAAC;AAMF,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAMF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IAC9D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CACtD,CAAC;AAuCF,eAAO,MAAM,OAAO,UACX,aAAa,CAAC,kBAAkB,CAAC,SACjC,aAAa,CAAC,YAAY,CAAC,SAC3B,aAAa,CAAC,MAAM,CAAC,KAC3B,WAkDF,CAAC"}
@@ -12,6 +12,13 @@ declare const ImportProbe: Schema.Struct<{
12
12
  readonly builtin: Schema.String;
13
13
  }>]>;
14
14
  }>;
15
+ export declare const Allowance: Schema.Struct<{
16
+ readonly node: Schema.String;
17
+ readonly kind: Schema.Literals<readonly ["allow", "external"]>;
18
+ readonly entry: Schema.String;
19
+ readonly pattern: Schema.optionalKey<Schema.String>;
20
+ readonly fragment: Schema.optionalKey<Schema.String>;
21
+ }>;
15
22
  export declare const ImportRule: Schema.Struct<{
16
23
  readonly name: Schema.String;
17
24
  readonly message: Schema.String;
@@ -27,6 +34,13 @@ export declare const ImportRule: Schema.Struct<{
27
34
  readonly fromNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
28
35
  readonly to: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
29
36
  readonly toNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
37
+ readonly allowances: Schema.optionalKey<Schema.$Array<Schema.Struct<{
38
+ readonly node: Schema.String;
39
+ readonly kind: Schema.Literals<readonly ["allow", "external"]>;
40
+ readonly entry: Schema.String;
41
+ readonly pattern: Schema.optionalKey<Schema.String>;
42
+ readonly fragment: Schema.optionalKey<Schema.String>;
43
+ }>>>;
30
44
  readonly externals: Schema.optionalKey<Schema.$Array<Schema.String>>;
31
45
  readonly dependencyKind: Schema.optionalKey<Schema.Literals<readonly ["external", "local", "builtin"]>>;
32
46
  }>;
@@ -291,6 +305,7 @@ declare const StructureConfig: Schema.Struct<{
291
305
  readonly sameAs: Schema.optionalKey<Schema.Finite>;
292
306
  }>>>;
293
307
  }>;
308
+ export type Allowance = (typeof Allowance)["Type"];
294
309
  export type ImportRule = (typeof ImportRule)["Type"];
295
310
  export type ResolveConfig = (typeof ResolveConfig)["Type"];
296
311
  export type ResolveScope = (typeof ResolveScope)["Type"];
@@ -1 +1 @@
1
- {"version":3,"file":"architecture-config.d.ts","sourceRoot":"","sources":["../../../src/domain/architecture-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"architecture-config.d.ts","sourceRoot":"","sources":["../../../src/domain/architecture-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ import * as Schema from "effect/Schema";
2
+ export declare const SNAPSHOT_SCHEMA_ID = "https://dataquail.github.io/goodbones/schema/conformance.schema.json";
3
+ export declare const SNAPSHOT_VERSION = 1;
4
+ export declare const SnapshotViolation: Schema.Struct<{
5
+ readonly fingerprint: Schema.String;
6
+ readonly kind: Schema.Literals<readonly ["import", "export", "structure", "member", "surface", "graph"]>;
7
+ readonly ruleName: Schema.String;
8
+ readonly file: Schema.String;
9
+ readonly subject: Schema.NullOr<Schema.String>;
10
+ readonly message: Schema.String;
11
+ readonly baselined: Schema.Boolean;
12
+ }>;
13
+ export declare const SnapshotSlack: Schema.Struct<{
14
+ readonly node: Schema.String;
15
+ readonly kind: Schema.Literals<readonly ["allow", "external"]>;
16
+ readonly entry: Schema.String;
17
+ readonly fragment: Schema.optionalKey<Schema.String>;
18
+ readonly of: Schema.optionalKey<Schema.Finite>;
19
+ }>;
20
+ export declare const SnapshotConcentration: Schema.Struct<{
21
+ readonly fragment: Schema.String;
22
+ readonly kind: Schema.Literals<readonly ["allow", "external"]>;
23
+ readonly entry: Schema.String;
24
+ readonly usedAt: Schema.Finite;
25
+ readonly of: Schema.Finite;
26
+ }>;
27
+ export declare const SnapshotVacancy: Schema.Struct<{
28
+ readonly node: Schema.String;
29
+ readonly allowances: Schema.Finite;
30
+ }>;
31
+ export declare const Snapshot: Schema.Struct<{
32
+ readonly version: Schema.Literal<1>;
33
+ readonly manifest: Schema.Struct<{
34
+ readonly path: Schema.String;
35
+ readonly sha256: Schema.String;
36
+ }>;
37
+ readonly roots: Schema.$Array<Schema.String>;
38
+ readonly files: Schema.Finite;
39
+ readonly ok: Schema.Boolean;
40
+ readonly coverage: Schema.Struct<Record<"graph" | "imports" | "members" | "structure" | "surface", Schema.Struct<{
41
+ readonly covered: Schema.Finite;
42
+ readonly total: Schema.Finite;
43
+ readonly floor: Schema.optionalKey<Schema.Finite>;
44
+ }>>>;
45
+ readonly residue: Schema.Struct<{
46
+ readonly files: Schema.$Array<Schema.String>;
47
+ readonly folders: Schema.$Array<Schema.String>;
48
+ }>;
49
+ readonly vacant: Schema.$Array<Schema.Struct<{
50
+ readonly node: Schema.String;
51
+ readonly allowances: Schema.Finite;
52
+ }>>;
53
+ readonly violations: Schema.$Array<Schema.Struct<{
54
+ readonly fingerprint: Schema.String;
55
+ readonly kind: Schema.Literals<readonly ["import", "export", "structure", "member", "surface", "graph"]>;
56
+ readonly ruleName: Schema.String;
57
+ readonly file: Schema.String;
58
+ readonly subject: Schema.NullOr<Schema.String>;
59
+ readonly message: Schema.String;
60
+ readonly baselined: Schema.Boolean;
61
+ }>>;
62
+ readonly unresolved: Schema.$Array<Schema.Struct<{
63
+ readonly file: Schema.String;
64
+ readonly specifier: Schema.String;
65
+ readonly detail: Schema.String;
66
+ }>>;
67
+ readonly stale: Schema.$Array<Schema.String>;
68
+ readonly baseline: Schema.Struct<{
69
+ readonly size: Schema.Finite;
70
+ }>;
71
+ readonly cycles: Schema.Finite;
72
+ readonly slack: Schema.$Array<Schema.Struct<{
73
+ readonly node: Schema.String;
74
+ readonly kind: Schema.Literals<readonly ["allow", "external"]>;
75
+ readonly entry: Schema.String;
76
+ readonly fragment: Schema.optionalKey<Schema.String>;
77
+ readonly of: Schema.optionalKey<Schema.Finite>;
78
+ }>>;
79
+ readonly concentration: Schema.$Array<Schema.Struct<{
80
+ readonly fragment: Schema.String;
81
+ readonly kind: Schema.Literals<readonly ["allow", "external"]>;
82
+ readonly entry: Schema.String;
83
+ readonly usedAt: Schema.Finite;
84
+ readonly of: Schema.Finite;
85
+ }>>;
86
+ readonly adoption: Schema.Struct<{
87
+ readonly unrestricted: Schema.$Array<Schema.String>;
88
+ readonly partial: Schema.$Array<Schema.String>;
89
+ }>;
90
+ }>;
91
+ export type Snapshot = typeof Snapshot.Type;
92
+ export type SnapshotViolation = typeof SnapshotViolation.Type;
93
+ export type SnapshotSlack = typeof SnapshotSlack.Type;
94
+ export type SnapshotConcentration = typeof SnapshotConcentration.Type;
95
+ export type SnapshotVacancy = typeof SnapshotVacancy.Type;
96
+ export declare const decodeSnapshot: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => import("effect/Result").Result<Schema.Struct.ReadonlySide<{
97
+ readonly version: Schema.Literal<1>;
98
+ readonly manifest: Schema.Struct<{
99
+ readonly path: Schema.String;
100
+ readonly sha256: Schema.String;
101
+ }>;
102
+ readonly roots: Schema.$Array<Schema.String>;
103
+ readonly files: Schema.Finite;
104
+ readonly ok: Schema.Boolean;
105
+ readonly coverage: Schema.Struct<Record<"graph" | "imports" | "members" | "structure" | "surface", Schema.Struct<{
106
+ readonly covered: Schema.Finite;
107
+ readonly total: Schema.Finite;
108
+ readonly floor: Schema.optionalKey<Schema.Finite>;
109
+ }>>>;
110
+ readonly residue: Schema.Struct<{
111
+ readonly files: Schema.$Array<Schema.String>;
112
+ readonly folders: Schema.$Array<Schema.String>;
113
+ }>;
114
+ readonly vacant: Schema.$Array<Schema.Struct<{
115
+ readonly node: Schema.String;
116
+ readonly allowances: Schema.Finite;
117
+ }>>;
118
+ readonly violations: Schema.$Array<Schema.Struct<{
119
+ readonly fingerprint: Schema.String;
120
+ readonly kind: Schema.Literals<readonly ["import", "export", "structure", "member", "surface", "graph"]>;
121
+ readonly ruleName: Schema.String;
122
+ readonly file: Schema.String;
123
+ readonly subject: Schema.NullOr<Schema.String>;
124
+ readonly message: Schema.String;
125
+ readonly baselined: Schema.Boolean;
126
+ }>>;
127
+ readonly unresolved: Schema.$Array<Schema.Struct<{
128
+ readonly file: Schema.String;
129
+ readonly specifier: Schema.String;
130
+ readonly detail: Schema.String;
131
+ }>>;
132
+ readonly stale: Schema.$Array<Schema.String>;
133
+ readonly baseline: Schema.Struct<{
134
+ readonly size: Schema.Finite;
135
+ }>;
136
+ readonly cycles: Schema.Finite;
137
+ readonly slack: Schema.$Array<Schema.Struct<{
138
+ readonly node: Schema.String;
139
+ readonly kind: Schema.Literals<readonly ["allow", "external"]>;
140
+ readonly entry: Schema.String;
141
+ readonly fragment: Schema.optionalKey<Schema.String>;
142
+ readonly of: Schema.optionalKey<Schema.Finite>;
143
+ }>>;
144
+ readonly concentration: Schema.$Array<Schema.Struct<{
145
+ readonly fragment: Schema.String;
146
+ readonly kind: Schema.Literals<readonly ["allow", "external"]>;
147
+ readonly entry: Schema.String;
148
+ readonly usedAt: Schema.Finite;
149
+ readonly of: Schema.Finite;
150
+ }>>;
151
+ readonly adoption: Schema.Struct<{
152
+ readonly unrestricted: Schema.$Array<Schema.String>;
153
+ readonly partial: Schema.$Array<Schema.String>;
154
+ }>;
155
+ }, "Type">, Schema.SchemaError>;
156
+ type JsonValue = string | number | boolean | null | JsonObject | ReadonlyArray<JsonValue>;
157
+ type JsonObject = {
158
+ readonly [key: string]: JsonValue;
159
+ };
160
+ export declare const snapshotJsonSchema: () => JsonObject;
161
+ export {};
162
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/domain/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAiBxC,eAAO,MAAM,kBAAkB,yEACyC,CAAC;AAEzE,eAAO,MAAM,gBAAgB,IAAI,CAAC;AA+BlC,eAAO,MAAM,iBAAiB;;;;;;;;EAc5B,CAAC;AASH,eAAO,MAAM,aAAa;;;;;;EAmBxB,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;EAMhC,CAAC;AAEH,eAAO,MAAM,eAAe;;;EAM1B,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8EnB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC;AAC5C,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AACtD,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAC;AACtE,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAK1D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAGzB,CAAC;AAEH,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AAC1F,KAAK,UAAU,GAAG;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAIxD,eAAO,MAAM,kBAAkB,QAAO,UAcrC,CAAC"}
@@ -1,22 +1,24 @@
1
1
  export { type Baseline, type BaselineFilter, baselineOf, decodeBaseline, EMPTY_BASELINE, makeBaselineFilter, serializeBaseline, staleEntriesOf, unbaselined, } from "./core/baseline.js";
2
- export { type Coverage, type CoverageFamily, type CoverageFloors, coverageOf, coverageShortfalls, fractionsOf, } from "./core/coverage.js";
2
+ export { type Coverage, type CoverageFamily, type CoverageFloors, coverageOf, coverageShortfalls, fractionsOf, type Reach, reachOf, type Residue, residueOf, type Vacancy, vacancyOf, } from "./core/coverage.js";
3
3
  export { type BindingEdge, type CompiledExportRule, compileExportRule, compileExportRules, evaluateBindingEdge, evaluateSelectedBindings, exportRulesFailingTheirProbe, exportRulesSelecting, type ExportViolation, type SelectedExportRule, } from "./core/exports.js";
4
- export { type CompiledGraph, compileGraphRules, cyclesIn, EMPTY_GRAPH_RULES, evaluateGraph, type Graph, graphRulesFailingTheirProbe, hasGraphRules, } from "./core/graph.js";
5
- export { type CompiledImportRule, compileImportRule, compileImportRules, evaluateImportEdge, evaluateSelectedEdge, type ImportEdge, probeTargetOf, rulesFailingTheirProbe, rulesSelecting, type SelectedRule, } from "./core/imports.js";
4
+ export { type CompiledGraph, compileGraphRules, cyclesIn, EMPTY_GRAPH_RULES, evaluateGraph, type Graph, graphRulesFailingTheirProbe, hasGraphRules, heightOf, } from "./core/graph.js";
5
+ export { type CompiledImportRule, compileImportRule, compileImportRules, evaluateImportEdge, evaluateResolvedEdge, evaluateSelectedEdge, type ImportEdge, probeTargetOf, rulesFailingTheirProbe, rulesSelecting, type SelectedRule, } from "./core/imports.js";
6
6
  export { type CompiledMemberRule, compileMemberRules, evaluateMemberSite, memberRulesFailingTheirProbe, memberRulesSelecting, } from "./core/members.js";
7
+ export { type Concentration, type ObservedEdge, type Slack, slackOf, type SlackReport, } from "./core/slack.js";
7
8
  export { type CompiledStructure, compileStructure, EMPTY_STRUCTURE, evaluateStructure, requiredSiblingsOf, structureRulesFailingTheirProbe, } from "./core/structure.js";
8
9
  export { type CompiledSurfaceRule, compileSurfaceRules, evaluateSurface, surfaceRulesFailingTheirProbe, surfaceRulesSelecting, } from "./core/surface.js";
9
- export { type BindingKind, type DeclarationKind, type ExportFix, type ExportRule, type GraphConfig, type GraphCycleRule, type GraphOrphanRule, type GraphReachRule, type ImportProbe, type ImportProbeTarget, type ImportRule, type MemberRule, type MemberSubject, type ResolveConfig, type ResolveScope, type StructureConfig, type SurfaceRule, } from "./domain/architecture-config.js";
10
+ export { type Allowance, type BindingKind, type DeclarationKind, type ExportFix, type ExportRule, type GraphConfig, type GraphCycleRule, type GraphOrphanRule, type GraphReachRule, type ImportProbe, type ImportProbeTarget, type ImportRule, type MemberRule, type MemberSubject, type ResolveConfig, type ResolveScope, type StructureConfig, type SurfaceRule, } from "./domain/architecture-config.js";
10
11
  export { ConfigInvalid, ImportUnresolved, PatternInvalid, ScopeInvalid, } from "./domain/architecture-error.js";
11
12
  export { type Binding, type ExportSite, type MemberSite, type SourceFacts, } from "./domain/facts.js";
12
13
  export { type ManifestLocator, type ManifestPath, type ManifestPosition, renderManifestPath, } from "./domain/manifest-location.js";
14
+ export { decodeSnapshot, type Snapshot, SNAPSHOT_SCHEMA_ID, SNAPSHOT_VERSION, type SnapshotConcentration, snapshotJsonSchema, Snapshot as SnapshotSchema, type SnapshotSlack, type SnapshotVacancy, type SnapshotViolation, } from "./domain/snapshot.js";
13
15
  export { fingerprintOf, formatMessage, type Violation, type ViolationKind, } from "./domain/violation.js";
14
16
  export { makeFileSystemLive } from "./infrastructure/file-system-live.js";
15
17
  export { findManifestFile, formatManifestYaml, MANIFEST_FILENAMES, type ManifestFile, readManifestFile, } from "./infrastructure/manifest-file.js";
16
18
  export { expandIncludes, type IncludedManifest, type IncludeReader, type SourceDocument, } from "./infrastructure/manifest-include.js";
17
19
  export { listPackageRoots, listSourceFiles, type PackagedLanguage, type PackageRoot, type WalkedLanguage, } from "./infrastructure/walk.js";
18
20
  export { type LoadedPolicy, loadPolicy, type LoadPolicyInput } from "./load/policy.js";
19
- export { type LoweredRules, lowerManifest, type ProbeLanguage } from "./manifest/compile.js";
21
+ export { type LoweredRules, lowerManifest, type LowerOptions, type ProbeLanguage, } from "./manifest/compile.js";
20
22
  export { type ExpandedManifest, type ExpandIssue, expandManifest, type Origin, originOf, type Substitution, } from "./manifest/expand.js";
21
23
  export { type Candidate, candidatesOf, type Generalization, type InferInput, inferManifest, type InferOptions, type InferPackage, type Inferred, type InferredTarget, singularOf, } from "./manifest/infer.js";
22
24
  export { MANIFEST_NODE_SCHEMA_ID, MANIFEST_SCHEMA_ID, manifestJsonSchema, manifestNodeJsonSchema, } from "./manifest/json-schema.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type ExportRule, type GraphConfig, type ImportRule, type MemberRule, type StructureFolder, type StructureNaming, type StructureParity, type StructureRoot, type SurfaceRule } from "../domain/architecture-config.js";
2
+ import { type Substitution } from "./expand.js";
2
3
  import { type Manifest } from "./manifest.js";
3
4
  export type LoweredRules = {
4
5
  readonly imports: ReadonlyArray<ImportRule>;
@@ -22,5 +23,8 @@ export type ProbeLanguage = {
22
23
  readonly id: string;
23
24
  readonly extensions: ReadonlyArray<string>;
24
25
  };
25
- export declare const lowerManifest: (manifest: Manifest, languages?: ReadonlyArray<ProbeLanguage>) => LoweredRules;
26
+ export type LowerOptions = {
27
+ readonly substitutions?: ReadonlyArray<Substitution>;
28
+ };
29
+ export declare const lowerManifest: (manifest: Manifest, languages?: ReadonlyArray<ProbeLanguage>, options?: LowerOptions) => LoweredRules;
26
30
  //# sourceMappingURL=compile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../src/manifest/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EAEf,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAGL,KAAK,QAAQ,EAGd,MAAM,eAAe,CAAC;AAKvB,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAG5B,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;IACF,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QAC7C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QACjD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAChD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;KACjD,CAAC;CACH,CAAC;AAMF,eAAO,MAAM,QAAQ,SAAc,CAAC;AAqDpC,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC5C,CAAC;AA8KF,eAAO,MAAM,aAAa,aACd,QAAQ,cACP,aAAa,CAAC,aAAa,CAAC,KACtC,YAytBF,CAAC"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../src/manifest/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EAEf,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EAGL,KAAK,QAAQ,EAGd,MAAM,eAAe,CAAC;AAKvB,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAG5B,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;IACF,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QAC7C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QACjD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAChD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;KACjD,CAAC;CACH,CAAC;AAMF,eAAO,MAAM,QAAQ,SAAc,CAAC;AAoDpC,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC5C,CAAC;AAgMF,MAAM,MAAM,YAAY,GAAG;IAIzB,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;CACtD,CAAC;AAEF,eAAO,MAAM,aAAa,aACd,QAAQ,cACP,aAAa,CAAC,aAAa,CAAC,YAC9B,YAAY,KACpB,YAgvBF,CAAC"}
@@ -23,4 +23,5 @@ export type Origin = {
23
23
  };
24
24
  export declare const expandManifest: (input: unknown) => Result.Result<ExpandedManifest, ExpandIssue>;
25
25
  export declare const originOf: (substitutions: ReadonlyArray<Substitution>, path: ManifestPath) => Origin;
26
+ export declare const fragmentOf: (substitutions: ReadonlyArray<Substitution>, path: ManifestPath) => string | undefined;
26
27
  //# sourceMappingURL=expand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"expand.d.ts","sourceRoot":"","sources":["../../../src/manifest/expand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAcnE,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAMF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;CACrD,CAAC;AAMF,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnF,CAAC;AAQF,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CA6F1F,CAAC;AAMF,eAAO,MAAM,QAAQ,kBACJ,aAAa,CAAC,YAAY,CAAC,QACpC,YAAY,KACjB,MAmBF,CAAC"}
1
+ {"version":3,"file":"expand.d.ts","sourceRoot":"","sources":["../../../src/manifest/expand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAcnE,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAMF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;CACrD,CAAC;AAMF,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnF,CAAC;AAQF,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CA6F1F,CAAC;AAMF,eAAO,MAAM,QAAQ,kBACJ,aAAa,CAAC,YAAY,CAAC,QACpC,YAAY,KACjB,MAmBF,CAAC;AAMF,eAAO,MAAM,UAAU,kBACN,aAAa,CAAC,YAAY,CAAC,QACpC,YAAY,KACjB,MAAM,GAAG,SAA2D,CAAC"}
@@ -2,6 +2,7 @@ import * as Result from "effect/Result";
2
2
  import * as Schema from "effect/Schema";
3
3
  import { ConfigInvalid } from "../domain/architecture-error.js";
4
4
  import { type ManifestLocator } from "../domain/manifest-location.js";
5
+ import { type Substitution } from "./expand.js";
5
6
  declare const Imports: Schema.Struct<{
6
7
  readonly message: Schema.optionalKey<Schema.String>;
7
8
  readonly allow: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
@@ -203,6 +204,7 @@ export declare const globsOf: (globs: string | ReadonlyArray<string>) => Readonl
203
204
  export type DecodedManifest = {
204
205
  readonly manifest: Manifest;
205
206
  readonly notices: ReadonlyArray<string>;
207
+ readonly substitutions: ReadonlyArray<Substitution>;
206
208
  };
207
209
  export type DecodeManifestOptions = {
208
210
  readonly locate?: ManifestLocator | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/manifest/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/manifest/manifest.ts"],"names":[],"mappings":"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"}