@goodbones/core 0.1.0-beta.1

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 (147) hide show
  1. package/LICENSE +21 -0
  2. package/build/dts/core/baseline.d.ts +16 -0
  3. package/build/dts/core/baseline.d.ts.map +1 -0
  4. package/build/dts/core/coverage.d.ts +47 -0
  5. package/build/dts/core/coverage.d.ts.map +1 -0
  6. package/build/dts/core/exports.d.ts +38 -0
  7. package/build/dts/core/exports.d.ts.map +1 -0
  8. package/build/dts/core/graph.d.ts +40 -0
  9. package/build/dts/core/graph.d.ts.map +1 -0
  10. package/build/dts/core/imports.d.ts +29 -0
  11. package/build/dts/core/imports.d.ts.map +1 -0
  12. package/build/dts/core/members.d.ts +26 -0
  13. package/build/dts/core/members.d.ts.map +1 -0
  14. package/build/dts/core/patterns.d.ts +17 -0
  15. package/build/dts/core/patterns.d.ts.map +1 -0
  16. package/build/dts/core/structure.d.ts +48 -0
  17. package/build/dts/core/structure.d.ts.map +1 -0
  18. package/build/dts/core/surface.d.ts +39 -0
  19. package/build/dts/core/surface.d.ts.map +1 -0
  20. package/build/dts/domain/architecture-config.d.ts +322 -0
  21. package/build/dts/domain/architecture-config.d.ts.map +1 -0
  22. package/build/dts/domain/architecture-error.d.ts +35 -0
  23. package/build/dts/domain/architecture-error.d.ts.map +1 -0
  24. package/build/dts/domain/facts.d.ts +26 -0
  25. package/build/dts/domain/facts.d.ts.map +1 -0
  26. package/build/dts/domain/violation.d.ts +11 -0
  27. package/build/dts/domain/violation.d.ts.map +1 -0
  28. package/build/dts/index.d.ts +23 -0
  29. package/build/dts/index.d.ts.map +1 -0
  30. package/build/dts/infrastructure/fact-extractor-fake.d.ts +4 -0
  31. package/build/dts/infrastructure/fact-extractor-fake.d.ts.map +1 -0
  32. package/build/dts/infrastructure/file-system-fake.d.ts +3 -0
  33. package/build/dts/infrastructure/file-system-fake.d.ts.map +1 -0
  34. package/build/dts/infrastructure/file-system-live.d.ts +3 -0
  35. package/build/dts/infrastructure/file-system-live.d.ts.map +1 -0
  36. package/build/dts/infrastructure/manifest-file.d.ts +3 -0
  37. package/build/dts/infrastructure/manifest-file.d.ts.map +1 -0
  38. package/build/dts/infrastructure/module-resolver-fake.d.ts +3 -0
  39. package/build/dts/infrastructure/module-resolver-fake.d.ts.map +1 -0
  40. package/build/dts/infrastructure/walk.d.ts +4 -0
  41. package/build/dts/infrastructure/walk.d.ts.map +1 -0
  42. package/build/dts/load/policy.d.ts +42 -0
  43. package/build/dts/load/policy.d.ts.map +1 -0
  44. package/build/dts/manifest/compile.d.ts +26 -0
  45. package/build/dts/manifest/compile.d.ts.map +1 -0
  46. package/build/dts/manifest/glob.d.ts +14 -0
  47. package/build/dts/manifest/glob.d.ts.map +1 -0
  48. package/build/dts/manifest/manifest.d.ts +208 -0
  49. package/build/dts/manifest/manifest.d.ts.map +1 -0
  50. package/build/dts/ports/fact-extractor.d.ts +5 -0
  51. package/build/dts/ports/fact-extractor.d.ts.map +1 -0
  52. package/build/dts/ports/file-system.d.ts +5 -0
  53. package/build/dts/ports/file-system.d.ts.map +1 -0
  54. package/build/dts/ports/language.d.ts +14 -0
  55. package/build/dts/ports/language.d.ts.map +1 -0
  56. package/build/dts/ports/module-resolver.d.ts +12 -0
  57. package/build/dts/ports/module-resolver.d.ts.map +1 -0
  58. package/build/dts/testing.d.ts +4 -0
  59. package/build/dts/testing.d.ts.map +1 -0
  60. package/build/esm/core/baseline.js +30 -0
  61. package/build/esm/core/baseline.js.map +1 -0
  62. package/build/esm/core/coverage.js +75 -0
  63. package/build/esm/core/coverage.js.map +1 -0
  64. package/build/esm/core/exports.js +102 -0
  65. package/build/esm/core/exports.js.map +1 -0
  66. package/build/esm/core/graph.js +259 -0
  67. package/build/esm/core/graph.js.map +1 -0
  68. package/build/esm/core/imports.js +103 -0
  69. package/build/esm/core/imports.js.map +1 -0
  70. package/build/esm/core/members.js +106 -0
  71. package/build/esm/core/members.js.map +1 -0
  72. package/build/esm/core/patterns.js +75 -0
  73. package/build/esm/core/patterns.js.map +1 -0
  74. package/build/esm/core/structure.js +257 -0
  75. package/build/esm/core/structure.js.map +1 -0
  76. package/build/esm/core/surface.js +137 -0
  77. package/build/esm/core/surface.js.map +1 -0
  78. package/build/esm/domain/architecture-config.js +312 -0
  79. package/build/esm/domain/architecture-config.js.map +1 -0
  80. package/build/esm/domain/architecture-error.js +41 -0
  81. package/build/esm/domain/architecture-error.js.map +1 -0
  82. package/build/esm/domain/facts.js +2 -0
  83. package/build/esm/domain/facts.js.map +1 -0
  84. package/build/esm/domain/violation.js +8 -0
  85. package/build/esm/domain/violation.js.map +1 -0
  86. package/build/esm/index.js +22 -0
  87. package/build/esm/index.js.map +1 -0
  88. package/build/esm/infrastructure/fact-extractor-fake.js +24 -0
  89. package/build/esm/infrastructure/fact-extractor-fake.js.map +1 -0
  90. package/build/esm/infrastructure/file-system-fake.js +10 -0
  91. package/build/esm/infrastructure/file-system-fake.js.map +1 -0
  92. package/build/esm/infrastructure/file-system-live.js +27 -0
  93. package/build/esm/infrastructure/file-system-live.js.map +1 -0
  94. package/build/esm/infrastructure/manifest-file.js +15 -0
  95. package/build/esm/infrastructure/manifest-file.js.map +1 -0
  96. package/build/esm/infrastructure/module-resolver-fake.js +33 -0
  97. package/build/esm/infrastructure/module-resolver-fake.js.map +1 -0
  98. package/build/esm/infrastructure/walk.js +45 -0
  99. package/build/esm/infrastructure/walk.js.map +1 -0
  100. package/build/esm/load/policy.js +207 -0
  101. package/build/esm/load/policy.js.map +1 -0
  102. package/build/esm/manifest/compile.js +706 -0
  103. package/build/esm/manifest/compile.js.map +1 -0
  104. package/build/esm/manifest/glob.js +77 -0
  105. package/build/esm/manifest/glob.js.map +1 -0
  106. package/build/esm/manifest/manifest.js +303 -0
  107. package/build/esm/manifest/manifest.js.map +1 -0
  108. package/build/esm/ports/fact-extractor.js +2 -0
  109. package/build/esm/ports/fact-extractor.js.map +1 -0
  110. package/build/esm/ports/file-system.js +2 -0
  111. package/build/esm/ports/file-system.js.map +1 -0
  112. package/build/esm/ports/language.js +2 -0
  113. package/build/esm/ports/language.js.map +1 -0
  114. package/build/esm/ports/module-resolver.js +2 -0
  115. package/build/esm/ports/module-resolver.js.map +1 -0
  116. package/build/esm/testing.js +7 -0
  117. package/build/esm/testing.js.map +1 -0
  118. package/package.json +61 -0
  119. package/src/core/baseline.ts +62 -0
  120. package/src/core/coverage.ts +154 -0
  121. package/src/core/exports.ts +171 -0
  122. package/src/core/graph.ts +331 -0
  123. package/src/core/imports.ts +160 -0
  124. package/src/core/members.ts +161 -0
  125. package/src/core/patterns.ts +116 -0
  126. package/src/core/structure.ts +349 -0
  127. package/src/core/surface.ts +181 -0
  128. package/src/domain/architecture-config.ts +370 -0
  129. package/src/domain/architecture-error.ts +59 -0
  130. package/src/domain/facts.ts +47 -0
  131. package/src/domain/violation.ts +24 -0
  132. package/src/index.ts +136 -0
  133. package/src/infrastructure/fact-extractor-fake.ts +28 -0
  134. package/src/infrastructure/file-system-fake.ts +14 -0
  135. package/src/infrastructure/file-system-live.ts +27 -0
  136. package/src/infrastructure/manifest-file.ts +17 -0
  137. package/src/infrastructure/module-resolver-fake.ts +39 -0
  138. package/src/infrastructure/walk.ts +54 -0
  139. package/src/load/policy.ts +344 -0
  140. package/src/manifest/compile.ts +1011 -0
  141. package/src/manifest/glob.ts +108 -0
  142. package/src/manifest/manifest.ts +408 -0
  143. package/src/ports/fact-extractor.ts +12 -0
  144. package/src/ports/file-system.ts +8 -0
  145. package/src/ports/language.ts +39 -0
  146. package/src/ports/module-resolver.ts +28 -0
  147. package/src/testing.ts +6 -0
@@ -0,0 +1,322 @@
1
+ import * as Schema from "effect/Schema";
2
+ declare const ImportProbeTarget: Schema.Union<readonly [Schema.String, Schema.Struct<{
3
+ readonly external: Schema.String;
4
+ }>, Schema.Struct<{
5
+ readonly builtin: Schema.String;
6
+ }>]>;
7
+ declare const ImportProbe: Schema.Struct<{
8
+ readonly from: Schema.String;
9
+ readonly to: Schema.Union<readonly [Schema.String, Schema.Struct<{
10
+ readonly external: Schema.String;
11
+ }>, Schema.Struct<{
12
+ readonly builtin: Schema.String;
13
+ }>]>;
14
+ }>;
15
+ export declare const ImportRule: Schema.Struct<{
16
+ readonly name: Schema.String;
17
+ readonly message: Schema.String;
18
+ readonly probe: Schema.Struct<{
19
+ readonly from: Schema.String;
20
+ readonly to: Schema.Union<readonly [Schema.String, Schema.Struct<{
21
+ readonly external: Schema.String;
22
+ }>, Schema.Struct<{
23
+ readonly builtin: Schema.String;
24
+ }>]>;
25
+ }>;
26
+ readonly from: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
27
+ readonly fromNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
28
+ readonly to: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
29
+ readonly toNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
30
+ readonly externals: Schema.optionalKey<Schema.$Array<Schema.String>>;
31
+ readonly dependencyKind: Schema.optionalKey<Schema.Literals<readonly ["external", "local", "builtin"]>>;
32
+ }>;
33
+ declare const ResolveScope: Schema.Struct<{
34
+ readonly files: Schema.String;
35
+ readonly language: Schema.String;
36
+ readonly options: Schema.optionalKey<Schema.Unknown>;
37
+ }>;
38
+ export declare const ResolveConfig: Schema.Struct<{
39
+ readonly scopes: Schema.$Array<Schema.Struct<{
40
+ readonly files: Schema.String;
41
+ readonly language: Schema.String;
42
+ readonly options: Schema.optionalKey<Schema.Unknown>;
43
+ }>>;
44
+ readonly unresolved: Schema.optionalKey<Schema.Literals<readonly ["error", "off"]>>;
45
+ readonly ignoreUnresolved: Schema.optionalKey<Schema.$Array<Schema.String>>;
46
+ }>;
47
+ export declare const ExportFix: Schema.Literals<readonly ["subpath-namespace-import"]>;
48
+ declare const BindingKind: Schema.Literals<readonly ["named", "default", "namespace"]>;
49
+ declare const ExportProbe: Schema.Struct<{
50
+ readonly from: Schema.String;
51
+ readonly to: Schema.String;
52
+ readonly symbol: Schema.String;
53
+ readonly kind: Schema.optionalKey<Schema.Literals<readonly ["named", "default", "namespace"]>>;
54
+ readonly source: Schema.optionalKey<Schema.String>;
55
+ }>;
56
+ export declare const ExportRule: Schema.Struct<{
57
+ readonly name: Schema.String;
58
+ readonly message: Schema.String;
59
+ readonly probe: Schema.Struct<{
60
+ readonly from: Schema.String;
61
+ readonly to: Schema.String;
62
+ readonly symbol: Schema.String;
63
+ readonly kind: Schema.optionalKey<Schema.Literals<readonly ["named", "default", "namespace"]>>;
64
+ readonly source: Schema.optionalKey<Schema.String>;
65
+ }>;
66
+ readonly from: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
67
+ readonly fromNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
68
+ readonly to: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
69
+ readonly toNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
70
+ readonly symbols: Schema.optionalKey<Schema.$Array<Schema.String>>;
71
+ readonly kinds: Schema.optionalKey<Schema.$Array<Schema.Literals<readonly ["named", "default", "namespace"]>>>;
72
+ readonly fix: Schema.optionalKey<Schema.Literals<readonly ["subpath-namespace-import"]>>;
73
+ }>;
74
+ export declare const DeclarationKind: Schema.Literals<readonly ["function", "class", "variable", "type", "interface", "enum", "expression", "other"]>;
75
+ declare const MemberSubject: Schema.Literals<readonly ["members", "calls"]>;
76
+ declare const MemberProbe: Schema.Struct<{
77
+ readonly from: Schema.String;
78
+ readonly name: Schema.String;
79
+ readonly in: Schema.optionalKey<Schema.String>;
80
+ readonly declares: Schema.optionalKey<Schema.Literals<readonly ["function", "class", "variable", "type", "interface", "enum", "expression", "other"]>>;
81
+ readonly source: Schema.optionalKey<Schema.String>;
82
+ }>;
83
+ export declare const MemberRule: Schema.Struct<{
84
+ readonly name: Schema.String;
85
+ readonly message: Schema.String;
86
+ readonly probe: Schema.Struct<{
87
+ readonly from: Schema.String;
88
+ readonly name: Schema.String;
89
+ readonly in: Schema.optionalKey<Schema.String>;
90
+ readonly declares: Schema.optionalKey<Schema.Literals<readonly ["function", "class", "variable", "type", "interface", "enum", "expression", "other"]>>;
91
+ readonly source: Schema.optionalKey<Schema.String>;
92
+ }>;
93
+ readonly from: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
94
+ readonly fromNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
95
+ readonly subject: Schema.Literals<readonly ["members", "calls"]>;
96
+ readonly in: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
97
+ readonly declares: Schema.optionalKey<Schema.$Array<Schema.Literals<readonly ["function", "class", "variable", "type", "interface", "enum", "expression", "other"]>>>;
98
+ readonly match: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
99
+ readonly matchNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
100
+ readonly allow: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
101
+ }>;
102
+ declare const SurfaceProbe: Schema.Struct<{
103
+ readonly from: Schema.String;
104
+ readonly sites: Schema.optionalKey<Schema.$Array<Schema.Struct<{
105
+ readonly name: Schema.String;
106
+ readonly kind: Schema.Literals<readonly ["named", "default", "namespace"]>;
107
+ readonly declares: Schema.optionalKey<Schema.Literals<readonly ["function", "class", "variable", "type", "interface", "enum", "expression", "other"]>>;
108
+ readonly reexport: Schema.optionalKey<Schema.Boolean>;
109
+ }>>>;
110
+ readonly source: Schema.optionalKey<Schema.String>;
111
+ }>;
112
+ export declare const SurfaceRule: Schema.Struct<{
113
+ readonly name: Schema.String;
114
+ readonly message: Schema.String;
115
+ readonly probe: Schema.Struct<{
116
+ readonly from: Schema.String;
117
+ readonly sites: Schema.optionalKey<Schema.$Array<Schema.Struct<{
118
+ readonly name: Schema.String;
119
+ readonly kind: Schema.Literals<readonly ["named", "default", "namespace"]>;
120
+ readonly declares: Schema.optionalKey<Schema.Literals<readonly ["function", "class", "variable", "type", "interface", "enum", "expression", "other"]>>;
121
+ readonly reexport: Schema.optionalKey<Schema.Boolean>;
122
+ }>>>;
123
+ readonly source: Schema.optionalKey<Schema.String>;
124
+ }>;
125
+ readonly from: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
126
+ readonly fromNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
127
+ readonly kinds: Schema.optionalKey<Schema.$Array<Schema.Literals<readonly ["named", "default", "namespace"]>>>;
128
+ readonly declares: Schema.optionalKey<Schema.$Array<Schema.Literals<readonly ["function", "class", "variable", "type", "interface", "enum", "expression", "other"]>>>;
129
+ readonly reexport: Schema.optionalKey<Schema.Boolean>;
130
+ readonly match: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
131
+ readonly matchNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
132
+ readonly forbid: Schema.optionalKey<Schema.Boolean>;
133
+ readonly allow: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
134
+ readonly convention: Schema.optionalKey<Schema.String>;
135
+ readonly count: Schema.optionalKey<Schema.Struct<{
136
+ readonly min: Schema.optionalKey<Schema.Finite>;
137
+ readonly max: Schema.optionalKey<Schema.Finite>;
138
+ }>>;
139
+ }>;
140
+ declare const GraphProbe: Schema.Struct<{
141
+ readonly edges: Schema.$Array<Schema.Tuple<readonly [Schema.String, Schema.String]>>;
142
+ readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
143
+ }>;
144
+ export declare const GraphCycleRule: Schema.Struct<{
145
+ readonly name: Schema.String;
146
+ readonly message: Schema.String;
147
+ readonly probe: Schema.Struct<{
148
+ readonly edges: Schema.$Array<Schema.Tuple<readonly [Schema.String, Schema.String]>>;
149
+ readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
150
+ }>;
151
+ readonly within: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
152
+ readonly withinNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
153
+ }>;
154
+ export declare const GraphOrphanRule: Schema.Struct<{
155
+ readonly name: Schema.String;
156
+ readonly message: Schema.String;
157
+ readonly probe: Schema.Struct<{
158
+ readonly edges: Schema.$Array<Schema.Tuple<readonly [Schema.String, Schema.String]>>;
159
+ readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
160
+ }>;
161
+ readonly within: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
162
+ readonly withinNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
163
+ readonly entry: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
164
+ }>;
165
+ export declare const GraphReachRule: Schema.Struct<{
166
+ readonly name: Schema.String;
167
+ readonly message: Schema.String;
168
+ readonly probe: Schema.Struct<{
169
+ readonly edges: Schema.$Array<Schema.Tuple<readonly [Schema.String, Schema.String]>>;
170
+ readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
171
+ }>;
172
+ readonly from: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
173
+ readonly fromNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
174
+ readonly to: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
175
+ readonly toNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
176
+ readonly via: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
177
+ }>;
178
+ export declare const GraphConfig: Schema.Struct<{
179
+ readonly cycles: Schema.optionalKey<Schema.$Array<Schema.Struct<{
180
+ readonly name: Schema.String;
181
+ readonly message: Schema.String;
182
+ readonly probe: Schema.Struct<{
183
+ readonly edges: Schema.$Array<Schema.Tuple<readonly [Schema.String, Schema.String]>>;
184
+ readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
185
+ }>;
186
+ readonly within: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
187
+ readonly withinNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
188
+ }>>>;
189
+ readonly orphans: Schema.optionalKey<Schema.$Array<Schema.Struct<{
190
+ readonly name: Schema.String;
191
+ readonly message: Schema.String;
192
+ readonly probe: Schema.Struct<{
193
+ readonly edges: Schema.$Array<Schema.Tuple<readonly [Schema.String, Schema.String]>>;
194
+ readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
195
+ }>;
196
+ readonly within: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
197
+ readonly withinNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
198
+ readonly entry: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
199
+ }>>>;
200
+ readonly reach: Schema.optionalKey<Schema.$Array<Schema.Struct<{
201
+ readonly name: Schema.String;
202
+ readonly message: Schema.String;
203
+ readonly probe: Schema.Struct<{
204
+ readonly edges: Schema.$Array<Schema.Tuple<readonly [Schema.String, Schema.String]>>;
205
+ readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
206
+ }>;
207
+ readonly from: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
208
+ readonly fromNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
209
+ readonly to: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
210
+ readonly toNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
211
+ readonly via: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
212
+ }>>>;
213
+ }>;
214
+ declare const StructureRoot: Schema.Struct<{
215
+ readonly name: Schema.String;
216
+ readonly message: Schema.String;
217
+ readonly probe: Schema.Struct<{
218
+ readonly path: Schema.String;
219
+ }>;
220
+ readonly path: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
221
+ }>;
222
+ declare const StructureFolder: Schema.Struct<{
223
+ readonly name: Schema.String;
224
+ readonly message: Schema.String;
225
+ readonly probe: Schema.Struct<{
226
+ readonly path: Schema.String;
227
+ }>;
228
+ readonly folder: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
229
+ readonly files: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
230
+ }>;
231
+ declare const StructureParity: Schema.Struct<{
232
+ readonly name: Schema.String;
233
+ readonly message: Schema.String;
234
+ readonly probe: Schema.Struct<{
235
+ readonly path: Schema.String;
236
+ }>;
237
+ readonly file: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
238
+ readonly fileNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
239
+ readonly requires: Schema.$Array<Schema.String>;
240
+ }>;
241
+ declare const StructureNaming: Schema.Struct<{
242
+ readonly name: Schema.String;
243
+ readonly message: Schema.String;
244
+ readonly probe: Schema.Struct<{
245
+ readonly path: Schema.String;
246
+ }>;
247
+ readonly file: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
248
+ readonly fileNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
249
+ readonly subject: Schema.Finite;
250
+ readonly convention: Schema.optionalKey<Schema.String>;
251
+ readonly sameAs: Schema.optionalKey<Schema.Finite>;
252
+ }>;
253
+ declare const StructureConfig: Schema.Struct<{
254
+ readonly roots: Schema.optionalKey<Schema.$Array<Schema.Struct<{
255
+ readonly name: Schema.String;
256
+ readonly message: Schema.String;
257
+ readonly probe: Schema.Struct<{
258
+ readonly path: Schema.String;
259
+ }>;
260
+ readonly path: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
261
+ }>>>;
262
+ readonly folders: Schema.optionalKey<Schema.$Array<Schema.Struct<{
263
+ readonly name: Schema.String;
264
+ readonly message: Schema.String;
265
+ readonly probe: Schema.Struct<{
266
+ readonly path: Schema.String;
267
+ }>;
268
+ readonly folder: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
269
+ readonly files: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
270
+ }>>>;
271
+ readonly parity: Schema.optionalKey<Schema.$Array<Schema.Struct<{
272
+ readonly name: Schema.String;
273
+ readonly message: Schema.String;
274
+ readonly probe: Schema.Struct<{
275
+ readonly path: Schema.String;
276
+ }>;
277
+ readonly file: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
278
+ readonly fileNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
279
+ readonly requires: Schema.$Array<Schema.String>;
280
+ }>>>;
281
+ readonly naming: Schema.optionalKey<Schema.$Array<Schema.Struct<{
282
+ readonly name: Schema.String;
283
+ readonly message: Schema.String;
284
+ readonly probe: Schema.Struct<{
285
+ readonly path: Schema.String;
286
+ }>;
287
+ readonly file: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
288
+ readonly fileNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
289
+ readonly subject: Schema.Finite;
290
+ readonly convention: Schema.optionalKey<Schema.String>;
291
+ readonly sameAs: Schema.optionalKey<Schema.Finite>;
292
+ }>>>;
293
+ }>;
294
+ export type ImportRule = (typeof ImportRule)["Type"];
295
+ export type ResolveConfig = (typeof ResolveConfig)["Type"];
296
+ export type ResolveScope = (typeof ResolveScope)["Type"];
297
+ export type ImportProbe = (typeof ImportProbe)["Type"];
298
+ export type ImportProbeTarget = (typeof ImportProbeTarget)["Type"];
299
+ export type ExportRule = (typeof ExportRule)["Type"];
300
+ export type ExportProbe = (typeof ExportProbe)["Type"];
301
+ export type BindingKind = (typeof BindingKind)["Type"];
302
+ export type ExportFix = (typeof ExportFix)["Type"];
303
+ export type MemberRule = (typeof MemberRule)["Type"];
304
+ export type MemberProbe = (typeof MemberProbe)["Type"];
305
+ export type MemberSubject = (typeof MemberSubject)["Type"];
306
+ export type GraphProbe = (typeof GraphProbe)["Type"];
307
+ export type GraphCycleRule = (typeof GraphCycleRule)["Type"];
308
+ export type GraphOrphanRule = (typeof GraphOrphanRule)["Type"];
309
+ export type GraphReachRule = (typeof GraphReachRule)["Type"];
310
+ export type GraphConfig = (typeof GraphConfig)["Type"];
311
+ export type DeclarationKind = (typeof DeclarationKind)["Type"];
312
+ export type SurfaceRule = (typeof SurfaceRule)["Type"];
313
+ export type SurfaceProbe = (typeof SurfaceProbe)["Type"];
314
+ export type StructureConfig = (typeof StructureConfig)["Type"];
315
+ export type StructureRoot = (typeof StructureRoot)["Type"];
316
+ export type StructureFolder = (typeof StructureFolder)["Type"];
317
+ export type StructureParity = (typeof StructureParity)["Type"];
318
+ export type StructureNaming = (typeof StructureNaming)["Type"];
319
+ export declare const OPEN_LAYOUT = "^.*$";
320
+ export declare const patternsOf: (patterns: string | ReadonlyArray<string>) => ReadonlyArray<string>;
321
+ export {};
322
+ //# sourceMappingURL=architecture-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architecture-config.d.ts","sourceRoot":"","sources":["../../../src/domain/architecture-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import * as Schema from "effect/Schema";
2
+ declare const ConfigInvalid_base: Schema.Class<ConfigInvalid, Schema.TaggedStruct<"ConfigInvalid", {
3
+ readonly configPath: Schema.String;
4
+ readonly detail: Schema.String;
5
+ }>, import("effect/Cause").YieldableError>;
6
+ export declare class ConfigInvalid extends ConfigInvalid_base {
7
+ get message(): string;
8
+ }
9
+ declare const PatternInvalid_base: Schema.Class<PatternInvalid, Schema.TaggedStruct<"PatternInvalid", {
10
+ readonly ruleName: Schema.String;
11
+ readonly field: Schema.String;
12
+ readonly pattern: Schema.String;
13
+ readonly detail: Schema.String;
14
+ }>, import("effect/Cause").YieldableError>;
15
+ export declare class PatternInvalid extends PatternInvalid_base {
16
+ get message(): string;
17
+ }
18
+ declare const ScopeInvalid_base: Schema.Class<ScopeInvalid, Schema.TaggedStruct<"ScopeInvalid", {
19
+ readonly files: Schema.String;
20
+ readonly language: Schema.String;
21
+ readonly detail: Schema.String;
22
+ }>, import("effect/Cause").YieldableError>;
23
+ export declare class ScopeInvalid extends ScopeInvalid_base {
24
+ get message(): string;
25
+ }
26
+ declare const ImportUnresolved_base: Schema.Class<ImportUnresolved, Schema.TaggedStruct<"ImportUnresolved", {
27
+ readonly fromFile: Schema.String;
28
+ readonly specifier: Schema.String;
29
+ readonly detail: Schema.String;
30
+ }>, import("effect/Cause").YieldableError>;
31
+ export declare class ImportUnresolved extends ImportUnresolved_base {
32
+ get message(): string;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=architecture-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architecture-error.d.ts","sourceRoot":"","sources":["../../../src/domain/architecture-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;;;;;AAMxC,qBAAa,aAAc,SAAQ,kBAGlC;IACC,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;;;;;;;AAED,qBAAa,cAAe,SAAQ,mBAQnC;IACC,IAAa,OAAO,IAAI,MAAM,CAI7B;CACF;;;;;;AAKD,qBAAa,YAAa,SAAQ,iBAOjC;IACC,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;;;;;;AAED,qBAAa,gBAAiB,SAAQ,qBAOrC;IACC,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF"}
@@ -0,0 +1,26 @@
1
+ import type { BindingKind, DeclarationKind, MemberSubject } from "./architecture-config.js";
2
+ export type Binding = {
3
+ readonly symbol: string;
4
+ readonly kind: BindingKind;
5
+ };
6
+ export type MemberSite = {
7
+ readonly file: string;
8
+ readonly subject: MemberSubject;
9
+ readonly name: string;
10
+ readonly in?: string;
11
+ readonly declares?: DeclarationKind;
12
+ };
13
+ export type ExportSite = {
14
+ readonly file: string;
15
+ readonly name: string;
16
+ readonly kind: BindingKind;
17
+ readonly declares: DeclarationKind;
18
+ readonly reexport: boolean;
19
+ };
20
+ export type SourceFacts = {
21
+ readonly specifiers: ReadonlyArray<string>;
22
+ readonly bindings: ReadonlyMap<string, ReadonlyArray<Binding>>;
23
+ readonly memberSites: ReadonlyArray<MemberSite>;
24
+ readonly exportSites: ReadonlyArray<ExportSite>;
25
+ };
26
+ //# sourceMappingURL=facts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facts.d.ts","sourceRoot":"","sources":["../../../src/domain/facts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAS5F,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B,CAAC;AAKF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;CACrC,CAAC;AAMF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAGxB,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAE3C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAEhD,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CACjD,CAAC"}
@@ -0,0 +1,11 @@
1
+ export type ViolationKind = "import" | "export" | "structure" | "member" | "surface" | "graph";
2
+ export type Violation = {
3
+ readonly kind: ViolationKind;
4
+ readonly ruleName: string;
5
+ readonly message: string;
6
+ readonly file: string;
7
+ readonly subject: string | null;
8
+ };
9
+ export declare const fingerprintOf: (violation: Violation) => string;
10
+ export declare const formatMessage: (violation: Violation) => string;
11
+ //# sourceMappingURL=violation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"violation.d.ts","sourceRoot":"","sources":["../../../src/domain/violation.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/F,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAItB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAKF,eAAO,MAAM,aAAa,cAAe,SAAS,KAAG,MACoC,CAAC;AAI1F,eAAO,MAAM,aAAa,cAAe,SAAS,KAAG,MACyC,CAAC"}
@@ -0,0 +1,23 @@
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";
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, 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";
6
+ export { type CompiledMemberRule, compileMemberRules, evaluateMemberSite, memberRulesFailingTheirProbe, memberRulesSelecting, } from "./core/members.js";
7
+ export { type CompiledStructure, compileStructure, EMPTY_STRUCTURE, evaluateStructure, requiredSiblingsOf, structureRulesFailingTheirProbe, } from "./core/structure.js";
8
+ 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 { ConfigInvalid, ImportUnresolved, PatternInvalid, ScopeInvalid, } from "./domain/architecture-error.js";
11
+ export { type Binding, type ExportSite, type MemberSite, type SourceFacts, } from "./domain/facts.js";
12
+ export { fingerprintOf, formatMessage, type Violation, type ViolationKind, } from "./domain/violation.js";
13
+ export { makeFileSystemLive } from "./infrastructure/file-system-live.js";
14
+ export { DEFAULT_CONFIG_FILENAME, readManifestFile } from "./infrastructure/manifest-file.js";
15
+ export { listSourceFiles, type WalkedLanguage } from "./infrastructure/walk.js";
16
+ export { type LoadedPolicy, loadPolicy, type LoadPolicyInput } from "./load/policy.js";
17
+ export { type LoweredRules, lowerManifest, type ProbeLanguage } from "./manifest/compile.js";
18
+ export { type DecodedManifest, decodeManifest, type Manifest, type ManifestNode, Manifest as ManifestSchema, } from "./manifest/manifest.js";
19
+ export { type FactExtractor } from "./ports/fact-extractor.js";
20
+ export { type FileSystem } from "./ports/file-system.js";
21
+ export { type Language } from "./ports/language.js";
22
+ export { type DependencyKind, type ModuleResolver, type ResolvedTarget, } from "./ports/module-resolver.js";
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { SourceFacts } from "../domain/facts.js";
2
+ import type { FactExtractor } from "../ports/fact-extractor.js";
3
+ export declare const makeFactExtractorFake: (facts: Readonly<Record<string, Partial<SourceFacts>>>) => FactExtractor;
4
+ //# sourceMappingURL=fact-extractor-fake.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact-extractor-fake.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/fact-extractor-fake.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAahE,eAAO,MAAM,qBAAqB,UACzB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KACpD,aAWD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FileSystem } from "../ports/file-system.js";
2
+ export declare const makeFileSystemFake: (present: Iterable<string>, contents?: Readonly<Record<string, string>>) => FileSystem;
3
+ //# sourceMappingURL=file-system-fake.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-system-fake.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/file-system-fake.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAI1D,eAAO,MAAM,kBAAkB,YACpB,QAAQ,CAAC,MAAM,CAAC,aACf,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KACzC,UAMF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FileSystem } from "../ports/file-system.js";
2
+ export declare const makeFileSystemLive: (repoRoot: string) => FileSystem;
3
+ //# sourceMappingURL=file-system-live.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-system-live.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/file-system-live.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAK1D,eAAO,MAAM,kBAAkB,aAAc,MAAM,KAAG,UAkBrD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const DEFAULT_CONFIG_FILENAME = "architecture.config.mjs";
2
+ export declare const readManifestFile: (configPath: string) => Promise<unknown>;
3
+ //# sourceMappingURL=manifest-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-file.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/manifest-file.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAKjE,eAAO,MAAM,gBAAgB,eAAsB,MAAM,KAAG,OAAO,CAAC,OAAO,CAO1E,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ModuleResolver, ResolvedTarget } from "../ports/module-resolver.js";
2
+ export declare const makeModuleResolverFake: (targets: Readonly<Record<string, string | ResolvedTarget>>) => ModuleResolver;
3
+ //# sourceMappingURL=module-resolver-fake.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-resolver-fake.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/module-resolver-fake.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAUlF,eAAO,MAAM,sBAAsB,YACxB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,KACzD,cAUD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Language } from "../ports/language.js";
2
+ export type WalkedLanguage = Pick<Language, "extensions" | "ignoredFiles">;
3
+ export declare const listSourceFiles: (repoRoot: string, roots: ReadonlyArray<string>, languages: ReadonlyArray<WalkedLanguage>) => ReadonlyArray<string>;
4
+ //# sourceMappingURL=walk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/walk.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAiBrD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,GAAG,cAAc,CAAC,CAAC;AAO3E,eAAO,MAAM,eAAe,aAChB,MAAM,SACT,aAAa,CAAC,MAAM,CAAC,aACjB,aAAa,CAAC,cAAc,CAAC,KACvC,aAAa,CAAC,MAAM,CAsBtB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import * as Result from "effect/Result";
2
+ import { type BaselineFilter } from "../core/baseline.js";
3
+ import { type CompiledExportRule } from "../core/exports.js";
4
+ import { type CompiledGraph } from "../core/graph.js";
5
+ import { type CompiledImportRule } from "../core/imports.js";
6
+ import { type CompiledMemberRule } from "../core/members.js";
7
+ import { type CompiledStructure } from "../core/structure.js";
8
+ import { type CompiledSurfaceRule } from "../core/surface.js";
9
+ import { ConfigInvalid, type PatternInvalid } from "../domain/architecture-error.js";
10
+ import { type LoweredRules } from "../manifest/compile.js";
11
+ import { type Manifest } from "../manifest/manifest.js";
12
+ import type { FactExtractor } from "../ports/fact-extractor.js";
13
+ import type { FileSystem } from "../ports/file-system.js";
14
+ import type { Language } from "../ports/language.js";
15
+ import type { ModuleResolver } from "../ports/module-resolver.js";
16
+ export type LoadedPolicy = {
17
+ readonly repoRoot: string;
18
+ readonly config: Manifest;
19
+ readonly importRules: ReadonlyArray<CompiledImportRule>;
20
+ readonly exportRules: ReadonlyArray<CompiledExportRule>;
21
+ readonly memberRules: ReadonlyArray<CompiledMemberRule>;
22
+ readonly surfaceRules: ReadonlyArray<CompiledSurfaceRule>;
23
+ readonly graph: CompiledGraph;
24
+ readonly adoption: LoweredRules["adoption"];
25
+ readonly structure: CompiledStructure;
26
+ readonly fileSystem: FileSystem;
27
+ readonly languages: ReadonlyArray<Language>;
28
+ readonly baseline: BaselineFilter;
29
+ readonly resolver: ModuleResolver;
30
+ readonly extractor: FactExtractor;
31
+ readonly ignoreUnresolved: ReadonlyArray<RegExp>;
32
+ readonly notices: ReadonlyArray<string>;
33
+ };
34
+ export type LoadPolicyInput = {
35
+ readonly repoRoot: string;
36
+ readonly configPath: string;
37
+ readonly manifest: unknown;
38
+ readonly languages: ReadonlyArray<Language>;
39
+ readonly fileSystem: FileSystem;
40
+ };
41
+ export declare const loadPolicy: (input: LoadPolicyInput) => Result.Result<LoadedPolicy, ConfigInvalid | PatternInvalid>;
42
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/load/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAEL,KAAK,cAAc,EAIpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,kBAAkB,EAGxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,kBAAkB,EAGxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,kBAAkB,EAGxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,mBAAmB,EAGzB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EAEb,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAQlE,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACxD,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACxD,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACxD,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAG1D,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAGhC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAG5C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAGlC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAEjD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAG5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC,CAAC;AAsGF,eAAO,MAAM,UAAU,UACd,eAAe,KACrB,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,GAAG,cAAc,CA8I5D,CAAC"}
@@ -0,0 +1,26 @@
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 Manifest } from "./manifest.js";
3
+ export type LoweredRules = {
4
+ readonly imports: ReadonlyArray<ImportRule>;
5
+ readonly exports: ReadonlyArray<ExportRule>;
6
+ readonly members: ReadonlyArray<MemberRule>;
7
+ readonly surface: ReadonlyArray<SurfaceRule>;
8
+ readonly graph: GraphConfig;
9
+ readonly adoption: {
10
+ readonly unrestricted: ReadonlyArray<string>;
11
+ readonly partial: ReadonlyArray<string>;
12
+ };
13
+ readonly structure: {
14
+ readonly roots: ReadonlyArray<StructureRoot>;
15
+ readonly folders: ReadonlyArray<StructureFolder>;
16
+ readonly parity: ReadonlyArray<StructureParity>;
17
+ readonly naming: ReadonlyArray<StructureNaming>;
18
+ };
19
+ };
20
+ export declare const ANY_FILE = "^.*$";
21
+ export type ProbeLanguage = {
22
+ readonly id: string;
23
+ readonly extensions: ReadonlyArray<string>;
24
+ };
25
+ export declare const lowerManifest: (manifest: Manifest, languages?: ReadonlyArray<ProbeLanguage>) => LoweredRules;
26
+ //# sourceMappingURL=compile.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,14 @@
1
+ export type CaptureIndex = Readonly<Record<string, number>>;
2
+ export type GlobCompilation = {
3
+ readonly source: string;
4
+ readonly captures: CaptureIndex;
5
+ readonly wildcards: ReadonlyArray<number>;
6
+ };
7
+ export declare const globToRegexSource: (glob: string, captures: CaptureIndex, options: {
8
+ readonly declaring: boolean;
9
+ readonly nextGroup: number;
10
+ readonly capturing?: boolean;
11
+ }) => GlobCompilation;
12
+ export declare const anchored: (source: string) => string;
13
+ export declare const prefixed: (source: string) => string;
14
+ //# sourceMappingURL=glob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../../src/manifest/glob.ts"],"names":[],"mappings":"AAmBA,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAM5D,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAGhC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3C,CAAC;AAKF,eAAO,MAAM,iBAAiB,SACtB,MAAM,YACF,YAAY,WACb;IACP,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAI3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B,KACA,eAwDF,CAAC;AAEF,eAAO,MAAM,QAAQ,WAAY,MAAM,KAAG,MAAuB,CAAC;AAElE,eAAO,MAAM,QAAQ,WAAY,MAAM,KAAG,MAAsB,CAAC"}