@goodbones/core 0.1.0-beta.1 → 0.1.0-beta.10

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 (164) hide show
  1. package/build/dts/core/campaigns.d.ts +141 -0
  2. package/build/dts/core/campaigns.d.ts.map +1 -0
  3. package/build/dts/core/coverage.d.ts +20 -0
  4. package/build/dts/core/coverage.d.ts.map +1 -1
  5. package/build/dts/core/graph.d.ts +2 -0
  6. package/build/dts/core/graph.d.ts.map +1 -1
  7. package/build/dts/core/imports.d.ts +3 -1
  8. package/build/dts/core/imports.d.ts.map +1 -1
  9. package/build/dts/core/ledger.d.ts +61 -0
  10. package/build/dts/core/ledger.d.ts.map +1 -0
  11. package/build/dts/core/slack.d.ts +22 -0
  12. package/build/dts/core/slack.d.ts.map +1 -0
  13. package/build/dts/core/structure.d.ts +1 -0
  14. package/build/dts/core/structure.d.ts.map +1 -1
  15. package/build/dts/domain/architecture-config.d.ts +324 -1
  16. package/build/dts/domain/architecture-config.d.ts.map +1 -1
  17. package/build/dts/domain/architecture-error.d.ts +8 -0
  18. package/build/dts/domain/architecture-error.d.ts.map +1 -1
  19. package/build/dts/domain/facts.d.ts +1 -0
  20. package/build/dts/domain/facts.d.ts.map +1 -1
  21. package/build/dts/domain/manifest-location.d.ts +9 -0
  22. package/build/dts/domain/manifest-location.d.ts.map +1 -0
  23. package/build/dts/domain/report.d.ts +16 -0
  24. package/build/dts/domain/report.d.ts.map +1 -0
  25. package/build/dts/domain/snapshot.d.ts +224 -0
  26. package/build/dts/domain/snapshot.d.ts.map +1 -0
  27. package/build/dts/domain/violation.d.ts +1 -1
  28. package/build/dts/domain/violation.d.ts.map +1 -1
  29. package/build/dts/index.d.ts +24 -9
  30. package/build/dts/index.d.ts.map +1 -1
  31. package/build/dts/infrastructure/campaign-functions.d.ts +7 -0
  32. package/build/dts/infrastructure/campaign-functions.d.ts.map +1 -0
  33. package/build/dts/infrastructure/manifest-file.d.ts +11 -2
  34. package/build/dts/infrastructure/manifest-file.d.ts.map +1 -1
  35. package/build/dts/infrastructure/manifest-include.d.ts +16 -0
  36. package/build/dts/infrastructure/manifest-include.d.ts.map +1 -0
  37. package/build/dts/infrastructure/report-source-fake.d.ts +4 -0
  38. package/build/dts/infrastructure/report-source-fake.d.ts.map +1 -0
  39. package/build/dts/infrastructure/report-source-live.d.ts +3 -0
  40. package/build/dts/infrastructure/report-source-live.d.ts.map +1 -0
  41. package/build/dts/infrastructure/syntax-matcher-fake.d.ts +10 -0
  42. package/build/dts/infrastructure/syntax-matcher-fake.d.ts.map +1 -0
  43. package/build/dts/infrastructure/walk.d.ts +6 -0
  44. package/build/dts/infrastructure/walk.d.ts.map +1 -1
  45. package/build/dts/load/policy.d.ts +16 -0
  46. package/build/dts/load/policy.d.ts.map +1 -1
  47. package/build/dts/manifest/compile.d.ts +7 -2
  48. package/build/dts/manifest/compile.d.ts.map +1 -1
  49. package/build/dts/manifest/expand.d.ts +27 -0
  50. package/build/dts/manifest/expand.d.ts.map +1 -0
  51. package/build/dts/manifest/infer.d.ts +55 -0
  52. package/build/dts/manifest/infer.d.ts.map +1 -0
  53. package/build/dts/manifest/json-schema.d.ts +10 -0
  54. package/build/dts/manifest/json-schema.d.ts.map +1 -0
  55. package/build/dts/manifest/manifest.d.ts +381 -1
  56. package/build/dts/manifest/manifest.d.ts.map +1 -1
  57. package/build/dts/ports/campaign-predicate.d.ts +24 -0
  58. package/build/dts/ports/campaign-predicate.d.ts.map +1 -0
  59. package/build/dts/ports/language.d.ts +4 -0
  60. package/build/dts/ports/language.d.ts.map +1 -1
  61. package/build/dts/ports/report-source.d.ts +14 -0
  62. package/build/dts/ports/report-source.d.ts.map +1 -0
  63. package/build/dts/ports/syntax-matcher.d.ts +21 -0
  64. package/build/dts/ports/syntax-matcher.d.ts.map +1 -0
  65. package/build/dts/testing.d.ts +2 -0
  66. package/build/dts/testing.d.ts.map +1 -1
  67. package/build/esm/core/campaigns.js +778 -0
  68. package/build/esm/core/campaigns.js.map +1 -0
  69. package/build/esm/core/coverage.js +107 -32
  70. package/build/esm/core/coverage.js.map +1 -1
  71. package/build/esm/core/graph.js +45 -0
  72. package/build/esm/core/graph.js.map +1 -1
  73. package/build/esm/core/imports.js +14 -9
  74. package/build/esm/core/imports.js.map +1 -1
  75. package/build/esm/core/ledger.js +171 -0
  76. package/build/esm/core/ledger.js.map +1 -0
  77. package/build/esm/core/slack.js +76 -0
  78. package/build/esm/core/slack.js.map +1 -0
  79. package/build/esm/core/structure.js +5 -2
  80. package/build/esm/core/structure.js.map +1 -1
  81. package/build/esm/domain/architecture-config.js +158 -1
  82. package/build/esm/domain/architecture-config.js.map +1 -1
  83. package/build/esm/domain/architecture-error.js +27 -0
  84. package/build/esm/domain/architecture-error.js.map +1 -1
  85. package/build/esm/domain/manifest-location.js +21 -0
  86. package/build/esm/domain/manifest-location.js.map +1 -0
  87. package/build/esm/domain/report.js +168 -0
  88. package/build/esm/domain/report.js.map +1 -0
  89. package/build/esm/domain/snapshot.js +141 -0
  90. package/build/esm/domain/snapshot.js.map +1 -0
  91. package/build/esm/domain/violation.js.map +1 -1
  92. package/build/esm/index.js +21 -8
  93. package/build/esm/index.js.map +1 -1
  94. package/build/esm/infrastructure/campaign-functions.js +67 -0
  95. package/build/esm/infrastructure/campaign-functions.js.map +1 -0
  96. package/build/esm/infrastructure/manifest-file.js +158 -7
  97. package/build/esm/infrastructure/manifest-file.js.map +1 -1
  98. package/build/esm/infrastructure/manifest-include.js +187 -0
  99. package/build/esm/infrastructure/manifest-include.js.map +1 -0
  100. package/build/esm/infrastructure/report-source-fake.js +6 -0
  101. package/build/esm/infrastructure/report-source-fake.js.map +1 -0
  102. package/build/esm/infrastructure/report-source-live.js +165 -0
  103. package/build/esm/infrastructure/report-source-live.js.map +1 -0
  104. package/build/esm/infrastructure/syntax-matcher-fake.js +33 -0
  105. package/build/esm/infrastructure/syntax-matcher-fake.js.map +1 -0
  106. package/build/esm/infrastructure/walk.js +57 -1
  107. package/build/esm/infrastructure/walk.js.map +1 -1
  108. package/build/esm/load/policy.js +123 -3
  109. package/build/esm/load/policy.js.map +1 -1
  110. package/build/esm/manifest/compile.js +228 -26
  111. package/build/esm/manifest/compile.js.map +1 -1
  112. package/build/esm/manifest/expand.js +116 -0
  113. package/build/esm/manifest/expand.js.map +1 -0
  114. package/build/esm/manifest/infer.js +455 -0
  115. package/build/esm/manifest/infer.js.map +1 -0
  116. package/build/esm/manifest/json-schema.js +135 -0
  117. package/build/esm/manifest/json-schema.js.map +1 -0
  118. package/build/esm/manifest/manifest.js +243 -5
  119. package/build/esm/manifest/manifest.js.map +1 -1
  120. package/build/esm/ports/campaign-predicate.js +2 -0
  121. package/build/esm/ports/campaign-predicate.js.map +1 -0
  122. package/build/esm/ports/report-source.js +7 -0
  123. package/build/esm/ports/report-source.js.map +1 -0
  124. package/build/esm/ports/syntax-matcher.js +12 -0
  125. package/build/esm/ports/syntax-matcher.js.map +1 -0
  126. package/build/esm/testing.js +2 -0
  127. package/build/esm/testing.js.map +1 -1
  128. package/package.json +9 -3
  129. package/schema/architecture-node.schema.json +2405 -0
  130. package/schema/architecture.schema.json +2825 -0
  131. package/schema/conformance.schema.json +775 -0
  132. package/src/core/campaigns.ts +1056 -0
  133. package/src/core/coverage.ts +164 -34
  134. package/src/core/graph.ts +48 -0
  135. package/src/core/imports.ts +29 -13
  136. package/src/core/ledger.ts +242 -0
  137. package/src/core/slack.ts +135 -0
  138. package/src/core/structure.ts +10 -5
  139. package/src/domain/architecture-config.ts +205 -1
  140. package/src/domain/architecture-error.ts +30 -0
  141. package/src/domain/facts.ts +9 -4
  142. package/src/domain/manifest-location.ts +41 -0
  143. package/src/domain/report.ts +203 -0
  144. package/src/domain/snapshot.ts +302 -0
  145. package/src/domain/violation.ts +4 -1
  146. package/src/index.ts +172 -3
  147. package/src/infrastructure/campaign-functions.ts +98 -0
  148. package/src/infrastructure/manifest-file.ts +204 -8
  149. package/src/infrastructure/manifest-include.ts +318 -0
  150. package/src/infrastructure/report-source-fake.ts +10 -0
  151. package/src/infrastructure/report-source-live.ts +192 -0
  152. package/src/infrastructure/syntax-matcher-fake.ts +51 -0
  153. package/src/infrastructure/walk.ts +70 -1
  154. package/src/load/policy.ts +193 -3
  155. package/src/manifest/compile.ts +290 -28
  156. package/src/manifest/expand.ts +183 -0
  157. package/src/manifest/infer.ts +643 -0
  158. package/src/manifest/json-schema.ts +168 -0
  159. package/src/manifest/manifest.ts +339 -11
  160. package/src/ports/campaign-predicate.ts +30 -0
  161. package/src/ports/language.ts +17 -0
  162. package/src/ports/report-source.ts +35 -0
  163. package/src/ports/syntax-matcher.ts +42 -0
  164. package/src/testing.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../../src/manifest/infer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,eAAe,CAAC;AAe5D,MAAM,MAAM,cAAc,GAGtB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAEjD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAGvD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,MAAM,MAAM,YAAY,GAAG;IAEzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAItB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAEvB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,CAAC,cAAc,CAAC,CAAC;IAGpE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAI/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAKF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAElD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAIzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,CAAC;AAGF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAEnD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAGtC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAG1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAsSF,eAAO,MAAM,UAAU,WAAY,MAAM,KAAG,MAU3C,CAAC;AA8BF,eAAO,MAAM,YAAY,UAChB,UAAU,eACL,aAAa,CAAC,cAAc,CAAC,KACxC,aAAa,CAAC,SAAS,CAuEzB,CAAC;AAwDF,eAAO,MAAM,aAAa,UAAW,UAAU,WAAW,YAAY,KAAG,QAqFxE,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare const MANIFEST_SCHEMA_ID = "https://dataquail.github.io/goodbones/schema/architecture.schema.json";
2
+ export declare const MANIFEST_NODE_SCHEMA_ID = "https://dataquail.github.io/goodbones/schema/architecture-node.schema.json";
3
+ type JsonValue = string | number | boolean | null | JsonObject | ReadonlyArray<JsonValue>;
4
+ type JsonObject = {
5
+ readonly [key: string]: JsonValue;
6
+ };
7
+ export declare const manifestJsonSchema: () => JsonObject;
8
+ export declare const manifestNodeJsonSchema: () => JsonObject;
9
+ export {};
10
+ //# sourceMappingURL=json-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../../../src/manifest/json-schema.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,kBAAkB,0EAC0C,CAAC;AAI1E,eAAO,MAAM,uBAAuB,+EAC0C,CAAC;AAE/E,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;AA6ExD,eAAO,MAAM,kBAAkB,QAAO,UA+BrC,CAAC;AAMF,eAAO,MAAM,sBAAsB,QAAO,UA8BzC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import * as Result from "effect/Result";
2
2
  import * as Schema from "effect/Schema";
3
3
  import { ConfigInvalid } from "../domain/architecture-error.js";
4
+ import { type ManifestLocator } from "../domain/manifest-location.js";
5
+ import { type Substitution } from "./expand.js";
4
6
  declare const Imports: Schema.Struct<{
5
7
  readonly message: Schema.optionalKey<Schema.String>;
6
8
  readonly allow: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
@@ -120,6 +122,242 @@ declare const Limits: Schema.Struct<{
120
122
  readonly surface: Schema.optionalKey<Schema.Finite>;
121
123
  readonly graph: Schema.optionalKey<Schema.Finite>;
122
124
  }>>;
125
+ readonly conformance: Schema.optionalKey<Schema.Struct<{
126
+ readonly residue: Schema.optionalKey<Schema.Finite>;
127
+ readonly vacant: Schema.optionalKey<Schema.Finite>;
128
+ readonly slack: Schema.optionalKey<Schema.Finite>;
129
+ readonly concentration: Schema.optionalKey<Schema.Finite>;
130
+ }>>;
131
+ }>;
132
+ declare const PathTerm: Schema.Struct<{
133
+ readonly file: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
134
+ readonly fileNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
135
+ readonly subject: Schema.optionalKey<Schema.Finite>;
136
+ readonly convention: Schema.optionalKey<Schema.Union<readonly [Schema.Literals<readonly ["kebab-case", "camelCase", "PascalCase", "snake_case"]>, Schema.Struct<{
137
+ readonly regex: Schema.String;
138
+ }>]>>;
139
+ }>;
140
+ declare const ImportsTerm: Schema.Struct<{
141
+ readonly resolves: Schema.Union<readonly [Schema.String, Schema.Struct<{
142
+ readonly external: Schema.String;
143
+ }>, Schema.Struct<{
144
+ readonly builtin: Schema.String;
145
+ }>]>;
146
+ readonly symbols: Schema.optionalKey<Schema.$Array<Schema.String>>;
147
+ }>;
148
+ declare const ExportsTerm: Schema.Struct<{
149
+ readonly name: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
150
+ readonly kinds: Schema.optionalKey<Schema.$Array<Schema.Literals<readonly ["named", "default", "namespace"]>>>;
151
+ readonly declares: Schema.optionalKey<Schema.$Array<Schema.Literals<readonly ["function", "class", "variable", "type", "interface", "enum", "expression", "other"]>>>;
152
+ readonly reexport: Schema.optionalKey<Schema.Boolean>;
153
+ }>;
154
+ declare const MembersTerm: Schema.Struct<{
155
+ readonly subject: Schema.Literals<readonly ["members", "calls"]>;
156
+ readonly name: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
157
+ readonly in: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
158
+ readonly declares: Schema.optionalKey<Schema.$Array<Schema.Literals<readonly ["function", "class", "variable", "type", "interface", "enum", "expression", "other"]>>>;
159
+ }>;
160
+ declare const ContentTerm: Schema.Struct<{
161
+ readonly regex: Schema.String;
162
+ }>;
163
+ declare const SyntaxTerm: Schema.Struct<{
164
+ readonly pattern: Schema.optionalKey<Schema.Unknown>;
165
+ readonly kind: Schema.optionalKey<Schema.Unknown>;
166
+ readonly regex: Schema.optionalKey<Schema.Unknown>;
167
+ readonly nthChild: Schema.optionalKey<Schema.Unknown>;
168
+ readonly inside: Schema.optionalKey<Schema.Unknown>;
169
+ readonly has: Schema.optionalKey<Schema.Unknown>;
170
+ readonly precedes: Schema.optionalKey<Schema.Unknown>;
171
+ readonly follows: Schema.optionalKey<Schema.Unknown>;
172
+ readonly all: Schema.optionalKey<Schema.Unknown>;
173
+ readonly any: Schema.optionalKey<Schema.Unknown>;
174
+ readonly not: Schema.optionalKey<Schema.Unknown>;
175
+ readonly where: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Struct<{
176
+ readonly regex: Schema.optionalKey<Schema.String>;
177
+ readonly binding: Schema.optionalKey<Schema.Struct<{
178
+ readonly resolves: Schema.Union<readonly [Schema.String, Schema.Struct<{
179
+ readonly external: Schema.String;
180
+ }>, Schema.Struct<{
181
+ readonly builtin: Schema.String;
182
+ }>]>;
183
+ readonly member: Schema.optionalKey<Schema.$Array<Schema.String>>;
184
+ }>>;
185
+ }>>>;
186
+ }>;
187
+ declare const ReportTerm: Schema.Struct<{
188
+ readonly command: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
189
+ readonly file: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
190
+ readonly format: Schema.Literals<readonly ["tsc", "eslint", "oxlint", "regex"]>;
191
+ readonly pattern: Schema.optionalKey<Schema.String>;
192
+ readonly codes: Schema.optionalKey<Schema.$Array<Schema.String>>;
193
+ readonly codesNot: Schema.optionalKey<Schema.$Array<Schema.String>>;
194
+ }>;
195
+ export type DetectorSpec = {
196
+ readonly all: ReadonlyArray<DetectorSpec>;
197
+ } | {
198
+ readonly any: ReadonlyArray<DetectorSpec>;
199
+ } | {
200
+ readonly not: DetectorSpec;
201
+ } | {
202
+ readonly path: typeof PathTerm.Type;
203
+ } | {
204
+ readonly imports: typeof ImportsTerm.Type;
205
+ } | {
206
+ readonly exports: typeof ExportsTerm.Type;
207
+ } | {
208
+ readonly members: typeof MembersTerm.Type;
209
+ } | {
210
+ readonly requires: ReadonlyArray<string>;
211
+ } | {
212
+ readonly content: typeof ContentTerm.Type;
213
+ } | {
214
+ readonly syntax: typeof SyntaxTerm.Type;
215
+ } | {
216
+ readonly report: typeof ReportTerm.Type;
217
+ } | {
218
+ readonly fn: string;
219
+ };
220
+ declare const CampaignProbe: Schema.Struct<{
221
+ readonly path: Schema.String;
222
+ readonly source: Schema.optionalKey<Schema.String>;
223
+ readonly edges: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.Struct<{
224
+ readonly external: Schema.String;
225
+ }>, Schema.Struct<{
226
+ readonly builtin: Schema.String;
227
+ }>]>>>;
228
+ readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
229
+ readonly report: Schema.optionalKey<Schema.$Array<Schema.Struct<{
230
+ readonly line: Schema.Finite;
231
+ readonly column: Schema.optionalKey<Schema.Finite>;
232
+ readonly code: Schema.optionalKey<Schema.String>;
233
+ readonly message: Schema.optionalKey<Schema.String>;
234
+ }>>>;
235
+ }>;
236
+ declare const Campaign: Schema.Struct<{
237
+ readonly id: Schema.String;
238
+ readonly title: Schema.optionalKey<Schema.String>;
239
+ readonly why: Schema.String;
240
+ readonly how: Schema.String;
241
+ readonly owner: Schema.optionalKey<Schema.String>;
242
+ readonly scope: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
243
+ readonly unit: Schema.Literals<readonly ["file", "declaration", "match"]>;
244
+ readonly detect: Schema.Union<readonly [Schema.Struct<{
245
+ readonly all: Schema.$Array<Schema.suspend<Schema.Codec<DetectorSpec, DetectorSpec, never, never>>>;
246
+ }>, Schema.Struct<{
247
+ readonly any: Schema.$Array<Schema.suspend<Schema.Codec<DetectorSpec, DetectorSpec, never, never>>>;
248
+ }>, Schema.Struct<{
249
+ readonly not: Schema.suspend<Schema.Codec<DetectorSpec, DetectorSpec, never, never>>;
250
+ }>, Schema.Struct<{
251
+ readonly path: Schema.Struct<{
252
+ readonly file: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
253
+ readonly fileNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
254
+ readonly subject: Schema.optionalKey<Schema.Finite>;
255
+ readonly convention: Schema.optionalKey<Schema.Union<readonly [Schema.Literals<readonly ["kebab-case", "camelCase", "PascalCase", "snake_case"]>, Schema.Struct<{
256
+ readonly regex: Schema.String;
257
+ }>]>>;
258
+ }>;
259
+ }>, Schema.Struct<{
260
+ readonly imports: Schema.Struct<{
261
+ readonly resolves: Schema.Union<readonly [Schema.String, Schema.Struct<{
262
+ readonly external: Schema.String;
263
+ }>, Schema.Struct<{
264
+ readonly builtin: Schema.String;
265
+ }>]>;
266
+ readonly symbols: Schema.optionalKey<Schema.$Array<Schema.String>>;
267
+ }>;
268
+ }>, Schema.Struct<{
269
+ readonly exports: Schema.Struct<{
270
+ readonly name: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
271
+ readonly kinds: Schema.optionalKey<Schema.$Array<Schema.Literals<readonly ["named", "default", "namespace"]>>>;
272
+ readonly declares: Schema.optionalKey<Schema.$Array<Schema.Literals<readonly ["function", "class", "variable", "type", "interface", "enum", "expression", "other"]>>>;
273
+ readonly reexport: Schema.optionalKey<Schema.Boolean>;
274
+ }>;
275
+ }>, Schema.Struct<{
276
+ readonly members: Schema.Struct<{
277
+ readonly subject: Schema.Literals<readonly ["members", "calls"]>;
278
+ readonly name: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
279
+ readonly in: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
280
+ readonly declares: Schema.optionalKey<Schema.$Array<Schema.Literals<readonly ["function", "class", "variable", "type", "interface", "enum", "expression", "other"]>>>;
281
+ }>;
282
+ }>, Schema.Struct<{
283
+ readonly requires: Schema.$Array<Schema.String>;
284
+ }>, Schema.Struct<{
285
+ readonly content: Schema.Struct<{
286
+ readonly regex: Schema.String;
287
+ }>;
288
+ }>, Schema.Struct<{
289
+ readonly syntax: Schema.Struct<{
290
+ readonly pattern: Schema.optionalKey<Schema.Unknown>;
291
+ readonly kind: Schema.optionalKey<Schema.Unknown>;
292
+ readonly regex: Schema.optionalKey<Schema.Unknown>;
293
+ readonly nthChild: Schema.optionalKey<Schema.Unknown>;
294
+ readonly inside: Schema.optionalKey<Schema.Unknown>;
295
+ readonly has: Schema.optionalKey<Schema.Unknown>;
296
+ readonly precedes: Schema.optionalKey<Schema.Unknown>;
297
+ readonly follows: Schema.optionalKey<Schema.Unknown>;
298
+ readonly all: Schema.optionalKey<Schema.Unknown>;
299
+ readonly any: Schema.optionalKey<Schema.Unknown>;
300
+ readonly not: Schema.optionalKey<Schema.Unknown>;
301
+ readonly where: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Struct<{
302
+ readonly regex: Schema.optionalKey<Schema.String>;
303
+ readonly binding: Schema.optionalKey<Schema.Struct<{
304
+ readonly resolves: Schema.Union<readonly [Schema.String, Schema.Struct<{
305
+ readonly external: Schema.String;
306
+ }>, Schema.Struct<{
307
+ readonly builtin: Schema.String;
308
+ }>]>;
309
+ readonly member: Schema.optionalKey<Schema.$Array<Schema.String>>;
310
+ }>>;
311
+ }>>>;
312
+ }>;
313
+ }>, Schema.Struct<{
314
+ readonly report: Schema.Struct<{
315
+ readonly command: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
316
+ readonly file: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
317
+ readonly format: Schema.Literals<readonly ["tsc", "eslint", "oxlint", "regex"]>;
318
+ readonly pattern: Schema.optionalKey<Schema.String>;
319
+ readonly codes: Schema.optionalKey<Schema.$Array<Schema.String>>;
320
+ readonly codesNot: Schema.optionalKey<Schema.$Array<Schema.String>>;
321
+ }>;
322
+ }>, Schema.Struct<{
323
+ readonly fn: Schema.String;
324
+ }>]>;
325
+ readonly probes: Schema.Struct<{
326
+ readonly fires: Schema.$Array<Schema.Struct<{
327
+ readonly path: Schema.String;
328
+ readonly source: Schema.optionalKey<Schema.String>;
329
+ readonly edges: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.Struct<{
330
+ readonly external: Schema.String;
331
+ }>, Schema.Struct<{
332
+ readonly builtin: Schema.String;
333
+ }>]>>>;
334
+ readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
335
+ readonly report: Schema.optionalKey<Schema.$Array<Schema.Struct<{
336
+ readonly line: Schema.Finite;
337
+ readonly column: Schema.optionalKey<Schema.Finite>;
338
+ readonly code: Schema.optionalKey<Schema.String>;
339
+ readonly message: Schema.optionalKey<Schema.String>;
340
+ }>>>;
341
+ }>>;
342
+ readonly ignores: Schema.optionalKey<Schema.$Array<Schema.Struct<{
343
+ readonly path: Schema.String;
344
+ readonly source: Schema.optionalKey<Schema.String>;
345
+ readonly edges: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.Struct<{
346
+ readonly external: Schema.String;
347
+ }>, Schema.Struct<{
348
+ readonly builtin: Schema.String;
349
+ }>]>>>;
350
+ readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
351
+ readonly report: Schema.optionalKey<Schema.$Array<Schema.Struct<{
352
+ readonly line: Schema.Finite;
353
+ readonly column: Schema.optionalKey<Schema.Finite>;
354
+ readonly code: Schema.optionalKey<Schema.String>;
355
+ readonly message: Schema.optionalKey<Schema.String>;
356
+ }>>>;
357
+ }>>>;
358
+ }>;
359
+ readonly staleAfter: Schema.String;
360
+ readonly onComplete: Schema.optionalKey<Schema.Literals<readonly ["keep", "remove"]>>;
123
361
  }>;
124
362
  export declare const Manifest: Schema.Struct<{
125
363
  readonly resolve: Schema.Struct<{
@@ -185,7 +423,140 @@ export declare const Manifest: Schema.Struct<{
185
423
  readonly surface: Schema.optionalKey<Schema.Finite>;
186
424
  readonly graph: Schema.optionalKey<Schema.Finite>;
187
425
  }>>;
426
+ readonly conformance: Schema.optionalKey<Schema.Struct<{
427
+ readonly residue: Schema.optionalKey<Schema.Finite>;
428
+ readonly vacant: Schema.optionalKey<Schema.Finite>;
429
+ readonly slack: Schema.optionalKey<Schema.Finite>;
430
+ readonly concentration: Schema.optionalKey<Schema.Finite>;
431
+ }>>;
188
432
  }>>;
433
+ readonly campaigns: Schema.optionalKey<Schema.$Array<Schema.Struct<{
434
+ readonly id: Schema.String;
435
+ readonly title: Schema.optionalKey<Schema.String>;
436
+ readonly why: Schema.String;
437
+ readonly how: Schema.String;
438
+ readonly owner: Schema.optionalKey<Schema.String>;
439
+ readonly scope: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
440
+ readonly unit: Schema.Literals<readonly ["file", "declaration", "match"]>;
441
+ readonly detect: Schema.Union<readonly [Schema.Struct<{
442
+ readonly all: Schema.$Array<Schema.suspend<Schema.Codec<DetectorSpec, DetectorSpec, never, never>>>;
443
+ }>, Schema.Struct<{
444
+ readonly any: Schema.$Array<Schema.suspend<Schema.Codec<DetectorSpec, DetectorSpec, never, never>>>;
445
+ }>, Schema.Struct<{
446
+ readonly not: Schema.suspend<Schema.Codec<DetectorSpec, DetectorSpec, never, never>>;
447
+ }>, Schema.Struct<{
448
+ readonly path: Schema.Struct<{
449
+ readonly file: Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>;
450
+ readonly fileNot: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
451
+ readonly subject: Schema.optionalKey<Schema.Finite>;
452
+ readonly convention: Schema.optionalKey<Schema.Union<readonly [Schema.Literals<readonly ["kebab-case", "camelCase", "PascalCase", "snake_case"]>, Schema.Struct<{
453
+ readonly regex: Schema.String;
454
+ }>]>>;
455
+ }>;
456
+ }>, Schema.Struct<{
457
+ readonly imports: Schema.Struct<{
458
+ readonly resolves: Schema.Union<readonly [Schema.String, Schema.Struct<{
459
+ readonly external: Schema.String;
460
+ }>, Schema.Struct<{
461
+ readonly builtin: Schema.String;
462
+ }>]>;
463
+ readonly symbols: Schema.optionalKey<Schema.$Array<Schema.String>>;
464
+ }>;
465
+ }>, Schema.Struct<{
466
+ readonly exports: Schema.Struct<{
467
+ readonly name: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
468
+ readonly kinds: Schema.optionalKey<Schema.$Array<Schema.Literals<readonly ["named", "default", "namespace"]>>>;
469
+ readonly declares: Schema.optionalKey<Schema.$Array<Schema.Literals<readonly ["function", "class", "variable", "type", "interface", "enum", "expression", "other"]>>>;
470
+ readonly reexport: Schema.optionalKey<Schema.Boolean>;
471
+ }>;
472
+ }>, Schema.Struct<{
473
+ readonly members: Schema.Struct<{
474
+ readonly subject: Schema.Literals<readonly ["members", "calls"]>;
475
+ readonly name: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
476
+ readonly in: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
477
+ readonly declares: Schema.optionalKey<Schema.$Array<Schema.Literals<readonly ["function", "class", "variable", "type", "interface", "enum", "expression", "other"]>>>;
478
+ }>;
479
+ }>, Schema.Struct<{
480
+ readonly requires: Schema.$Array<Schema.String>;
481
+ }>, Schema.Struct<{
482
+ readonly content: Schema.Struct<{
483
+ readonly regex: Schema.String;
484
+ }>;
485
+ }>, Schema.Struct<{
486
+ readonly syntax: Schema.Struct<{
487
+ readonly pattern: Schema.optionalKey<Schema.Unknown>;
488
+ readonly kind: Schema.optionalKey<Schema.Unknown>;
489
+ readonly regex: Schema.optionalKey<Schema.Unknown>;
490
+ readonly nthChild: Schema.optionalKey<Schema.Unknown>;
491
+ readonly inside: Schema.optionalKey<Schema.Unknown>;
492
+ readonly has: Schema.optionalKey<Schema.Unknown>;
493
+ readonly precedes: Schema.optionalKey<Schema.Unknown>;
494
+ readonly follows: Schema.optionalKey<Schema.Unknown>;
495
+ readonly all: Schema.optionalKey<Schema.Unknown>;
496
+ readonly any: Schema.optionalKey<Schema.Unknown>;
497
+ readonly not: Schema.optionalKey<Schema.Unknown>;
498
+ readonly where: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Struct<{
499
+ readonly regex: Schema.optionalKey<Schema.String>;
500
+ readonly binding: Schema.optionalKey<Schema.Struct<{
501
+ readonly resolves: Schema.Union<readonly [Schema.String, Schema.Struct<{
502
+ readonly external: Schema.String;
503
+ }>, Schema.Struct<{
504
+ readonly builtin: Schema.String;
505
+ }>]>;
506
+ readonly member: Schema.optionalKey<Schema.$Array<Schema.String>>;
507
+ }>>;
508
+ }>>>;
509
+ }>;
510
+ }>, Schema.Struct<{
511
+ readonly report: Schema.Struct<{
512
+ readonly command: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
513
+ readonly file: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
514
+ readonly format: Schema.Literals<readonly ["tsc", "eslint", "oxlint", "regex"]>;
515
+ readonly pattern: Schema.optionalKey<Schema.String>;
516
+ readonly codes: Schema.optionalKey<Schema.$Array<Schema.String>>;
517
+ readonly codesNot: Schema.optionalKey<Schema.$Array<Schema.String>>;
518
+ }>;
519
+ }>, Schema.Struct<{
520
+ readonly fn: Schema.String;
521
+ }>]>;
522
+ readonly probes: Schema.Struct<{
523
+ readonly fires: Schema.$Array<Schema.Struct<{
524
+ readonly path: Schema.String;
525
+ readonly source: Schema.optionalKey<Schema.String>;
526
+ readonly edges: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.Struct<{
527
+ readonly external: Schema.String;
528
+ }>, Schema.Struct<{
529
+ readonly builtin: Schema.String;
530
+ }>]>>>;
531
+ readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
532
+ readonly report: Schema.optionalKey<Schema.$Array<Schema.Struct<{
533
+ readonly line: Schema.Finite;
534
+ readonly column: Schema.optionalKey<Schema.Finite>;
535
+ readonly code: Schema.optionalKey<Schema.String>;
536
+ readonly message: Schema.optionalKey<Schema.String>;
537
+ }>>>;
538
+ }>>;
539
+ readonly ignores: Schema.optionalKey<Schema.$Array<Schema.Struct<{
540
+ readonly path: Schema.String;
541
+ readonly source: Schema.optionalKey<Schema.String>;
542
+ readonly edges: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.Struct<{
543
+ readonly external: Schema.String;
544
+ }>, Schema.Struct<{
545
+ readonly builtin: Schema.String;
546
+ }>]>>>;
547
+ readonly files: Schema.optionalKey<Schema.$Array<Schema.String>>;
548
+ readonly report: Schema.optionalKey<Schema.$Array<Schema.Struct<{
549
+ readonly line: Schema.Finite;
550
+ readonly column: Schema.optionalKey<Schema.Finite>;
551
+ readonly code: Schema.optionalKey<Schema.String>;
552
+ readonly message: Schema.optionalKey<Schema.String>;
553
+ }>>>;
554
+ }>>>;
555
+ }>;
556
+ readonly staleAfter: Schema.String;
557
+ readonly onComplete: Schema.optionalKey<Schema.Literals<readonly ["keep", "remove"]>>;
558
+ }>>>;
559
+ readonly ledger: Schema.optionalKey<Schema.String>;
189
560
  readonly aliases: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
190
561
  readonly tree: Schema.$Record<Schema.String, Schema.Codec<ManifestNode, ManifestNode, never, never>>;
191
562
  }>;
@@ -198,11 +569,20 @@ export type GraphSpec = typeof Graph.Type;
198
569
  export type LimitsSpec = typeof Limits.Type;
199
570
  export type NamingSpec = typeof Naming.Type;
200
571
  export type ExportRestriction = typeof ExportRestriction.Type;
572
+ export type CampaignSpec = typeof Campaign.Type;
573
+ export type CampaignProbeSpec = typeof CampaignProbe.Type;
574
+ export type SyntaxTermSpec = typeof SyntaxTerm.Type;
575
+ export declare const DEFAULT_LEDGER_DIR = ".architecture-campaigns";
576
+ export declare const durationMs: (duration: string) => number;
201
577
  export declare const globsOf: (globs: string | ReadonlyArray<string>) => ReadonlyArray<string>;
202
578
  export type DecodedManifest = {
203
579
  readonly manifest: Manifest;
204
580
  readonly notices: ReadonlyArray<string>;
581
+ readonly substitutions: ReadonlyArray<Substitution>;
582
+ };
583
+ export type DecodeManifestOptions = {
584
+ readonly locate?: ManifestLocator | undefined;
205
585
  };
206
- export declare const decodeManifest: (configPath: string, input: unknown) => Result.Result<DecodedManifest, ConfigInvalid>;
586
+ export declare const decodeManifest: (configPath: string, input: unknown, options?: DecodeManifestOptions) => Result.Result<DecodedManifest, ConfigInvalid>;
207
587
  export {};
208
588
  //# sourceMappingURL=manifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/manifest/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAwBhE,QAAA,MAAM,OAAO;;;;;;;;;;;;EAkBX,CAAC;AAMH,QAAA,MAAM,UAAU;;;;EAMd,CAAC;AASH,QAAA,MAAM,MAAM;;;;;;IAIV,CAAC;AAYH,QAAA,MAAM,OAAO;;;;;;;;;;;;EAWX,CAAC;AAWH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;EAyBX,CAAC;AAKH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;EAoBrB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAI1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAK3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAGzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC,IAAI,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IAGtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAI1C,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAE7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;CAC5D,CAAC;AA8CF,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;EAIT,CAAC;AAeH,QAAA,MAAM,MAAM;;;;;;;;;;EAIV,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBnB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;AAC9C,MAAM,MAAM,cAAc,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;AACpD,MAAM,MAAM,WAAW,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;AAC9C,MAAM,MAAM,WAAW,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;AAC9C,MAAM,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC;AAC5C,MAAM,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC;AAC5C,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC;AAE9D,eAAO,MAAM,OAAO,UAAW,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,KAAG,aAAa,CAAC,MAAM,CACvC,CAAC;AAI9C,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAG5B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACzC,CAAC;AAmGF,eAAO,MAAM,cAAc,eACb,MAAM,SACX,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAU9C,CAAC"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/manifest/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAWxC,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAwB1E,QAAA,MAAM,OAAO;;;;;;;;;;;;EAkBX,CAAC;AAMH,QAAA,MAAM,UAAU;;;;EAMd,CAAC;AASH,QAAA,MAAM,MAAM;;;;;;IAIV,CAAC;AAYH,QAAA,MAAM,OAAO;;;;;;;;;;;;EAWX,CAAC;AAWH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;EAyBX,CAAC;AAKH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;EAoBrB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAI1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAK3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAGzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC,IAAI,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IAGtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAI1C,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAE7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;CAC5D,CAAC;AA8CF,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;EAIT,CAAC;AA4BH,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;EAKV,CAAC;AAeH,QAAA,MAAM,QAAQ;;;;;;;EAKZ,CAAC;AAKH,QAAA,MAAM,WAAW;;;;;;;EAGf,CAAC;AAGH,QAAA,MAAM,WAAW;;;;;EAKf,CAAC;AAGH,QAAA,MAAM,WAAW;;;;;EAKf,CAAC;AAGH,QAAA,MAAM,WAAW;;EAA0C,CAAC;AAqB5D,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;EAad,CAAC;AAeH,QAAA,MAAM,UAAU;;;;;;;EA0Bf,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAAE,GAC7C;IAAE,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAAE,GAC7C;IAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAA;CAAE,GACvC;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,WAAW,CAAC,IAAI,CAAA;CAAE,GAC7C;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,WAAW,CAAC,IAAI,CAAA;CAAE,GAC7C;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,WAAW,CAAC,IAAI,CAAA;CAAE,GAE7C;IAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,GAC5C;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,WAAW,CAAC,IAAI,CAAA;CAAE,GAC7C;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,UAAU,CAAC,IAAI,CAAA;CAAE,GAC3C;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,UAAU,CAAC,IAAI,CAAA;CAAE,GAE3C;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AA2B5B,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;EAMjB,CAAC;AAMH,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBZ,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBnB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;AAC9C,MAAM,MAAM,cAAc,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;AACpD,MAAM,MAAM,WAAW,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;AAC9C,MAAM,MAAM,WAAW,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;AAC9C,MAAM,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC;AAC5C,MAAM,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC;AAC5C,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC;AAC9D,MAAM,MAAM,YAAY,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC;AAChD,MAAM,MAAM,iBAAiB,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;AAEpD,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAG5D,eAAO,MAAM,UAAU,aAAc,MAAM,KAAG,MAG7C,CAAC;AAEF,eAAO,MAAM,OAAO,UAAW,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,KAAG,aAAa,CAAC,MAAM,CACvC,CAAC;AAS9C,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAG5B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAGxC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;CACrD,CAAC;AAmGF,MAAM,MAAM,qBAAqB,GAAG;IAGlC,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAC/C,CAAC;AA+CF,eAAO,MAAM,cAAc,eACb,MAAM,SACX,OAAO,YACL,qBAAqB,KAC7B,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAuC9C,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { SourceFacts } from "../domain/facts.js";
2
+ import type { SyntaxTree } from "./syntax-matcher.js";
3
+ export type Range = {
4
+ readonly start: {
5
+ readonly line: number;
6
+ readonly column: number;
7
+ };
8
+ readonly end: {
9
+ readonly line: number;
10
+ readonly column: number;
11
+ };
12
+ };
13
+ export type CampaignPredicateInput = {
14
+ readonly file: string;
15
+ readonly text: string;
16
+ readonly facts: SourceFacts;
17
+ readonly syntax: SyntaxTree | null;
18
+ };
19
+ export type CampaignSubject = {
20
+ readonly subject: string;
21
+ readonly range?: Range;
22
+ };
23
+ export type CampaignPredicate = (input: CampaignPredicateInput) => boolean | ReadonlyArray<CampaignSubject>;
24
+ //# sourceMappingURL=campaign-predicate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign-predicate.d.ts","sourceRoot":"","sources":["../../../src/ports/campaign-predicate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAUtD,MAAM,MAAM,KAAK,GAAG;IAElB,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,QAAQ,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAClE,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAE5B,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEnF,MAAM,MAAM,iBAAiB,GAAG,CAC9B,KAAK,EAAE,sBAAsB,KAC1B,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC"}
@@ -3,12 +3,16 @@ import type { ExportFix, ResolveScope } from "../domain/architecture-config.js";
3
3
  import type { ScopeInvalid } from "../domain/architecture-error.js";
4
4
  import type { FactExtractor } from "./fact-extractor.js";
5
5
  import type { ModuleResolver } from "./module-resolver.js";
6
+ import type { SyntaxMatcher } from "./syntax-matcher.js";
6
7
  export type Language = {
7
8
  readonly id: string;
8
9
  readonly extensions: ReadonlyArray<string>;
9
10
  readonly ignoredFiles: ReadonlyArray<RegExp>;
11
+ readonly packageMarkers: ReadonlyArray<string>;
12
+ readonly sourceRoots: ReadonlyArray<string>;
10
13
  readonly extractor: FactExtractor;
11
14
  readonly fixes: ReadonlyArray<ExportFix>;
15
+ readonly syntax?: SyntaxMatcher;
12
16
  readonly makeResolver: (repoRoot: string, scope: ResolveScope) => Result.Result<ModuleResolver, ScopeInvalid>;
13
17
  };
14
18
  //# sourceMappingURL=language.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../../../src/ports/language.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAU3D,MAAM,MAAM,QAAQ,GAAG;IAErB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAG3C,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAG7C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAIlC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAKzC,QAAQ,CAAC,YAAY,EAAE,CACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,YAAY,KAChB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;CAClD,CAAC"}
1
+ {"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../../../src/ports/language.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUzD,MAAM,MAAM,QAAQ,GAAG;IAErB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAG3C,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAM7C,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAK/C,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAG5C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAIlC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAKzC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAKhC,QAAQ,CAAC,YAAY,EAAE,CACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,YAAY,KAChB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;CAClD,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Diagnostic, ReportFormat } from "../domain/report.js";
2
+ export type ReportSpec = {
3
+ readonly command?: string | ReadonlyArray<string> | undefined;
4
+ readonly file?: string | ReadonlyArray<string> | undefined;
5
+ readonly format: ReportFormat;
6
+ readonly pattern?: string | undefined;
7
+ };
8
+ export declare const reportSourcesOf: (spec: ReportSpec) => ReadonlyArray<string>;
9
+ export type ReportSource = {
10
+ readonly diagnosticsOf: (spec: ReportSpec, file: string) => ReadonlyArray<Diagnostic>;
11
+ readonly read?: ((spec: ReportSpec) => Promise<void>) | undefined;
12
+ };
13
+ export declare const NO_REPORTS: ReportSource;
14
+ //# sourceMappingURL=report-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-source.d.ts","sourceRoot":"","sources":["../../../src/ports/report-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKpE,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,CAAC;AAGF,eAAO,MAAM,eAAe,SAAU,UAAU,KAAG,aAAa,CAAC,MAAM,CAGtE,CAAC;AAYF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,aAAa,CAAC,UAAU,CAAC,CAAC;IACtF,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CACnE,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,YAA0C,CAAC"}
@@ -0,0 +1,21 @@
1
+ export type Position = {
2
+ readonly line: number;
3
+ readonly column: number;
4
+ };
5
+ export type SyntaxMatch = {
6
+ readonly text: string;
7
+ readonly captures: ReadonlyMap<string, string>;
8
+ readonly range: {
9
+ readonly start: Position;
10
+ readonly end: Position;
11
+ };
12
+ readonly anchor: string | null;
13
+ };
14
+ export type SyntaxTree = {
15
+ readonly findAll: (rule: unknown) => ReadonlyArray<SyntaxMatch>;
16
+ readonly anchorAt: (position: Position) => string | null;
17
+ };
18
+ export type SyntaxMatcher = {
19
+ readonly parse: (file: string, text: string) => SyntaxTree | null;
20
+ };
21
+ //# sourceMappingURL=syntax-matcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syntax-matcher.d.ts","sourceRoot":"","sources":["../../../src/ports/syntax-matcher.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,QAAQ,GAAG;IAErB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAA;KAAE,CAAC;IAGrE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAGvB,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;IAIhE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,GAAG,IAAI,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAG1B,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,UAAU,GAAG,IAAI,CAAC;CACnE,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export { makeFactExtractorFake } from "./infrastructure/fact-extractor-fake.js";
2
2
  export { makeFileSystemFake } from "./infrastructure/file-system-fake.js";
3
3
  export { makeModuleResolverFake } from "./infrastructure/module-resolver-fake.js";
4
+ export { makeReportSourceFake } from "./infrastructure/report-source-fake.js";
5
+ export { makeSyntaxMatcherFake, type StagedMatch } from "./infrastructure/syntax-matcher-fake.js";
4
6
  //# sourceMappingURL=testing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,KAAK,WAAW,EAAE,MAAM,yCAAyC,CAAC"}