@intentset/architecture 0.8.1 → 0.10.0

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 (56) hide show
  1. package/dist/areas.d.ts +1 -1
  2. package/dist/areas.d.ts.map +1 -1
  3. package/dist/areas.js +3 -0
  4. package/dist/areas.js.map +1 -1
  5. package/dist/baseline.d.ts +96 -11
  6. package/dist/baseline.d.ts.map +1 -1
  7. package/dist/baseline.js +219 -22
  8. package/dist/baseline.js.map +1 -1
  9. package/dist/boundaries.d.ts +11 -2
  10. package/dist/boundaries.d.ts.map +1 -1
  11. package/dist/boundaries.js +175 -17
  12. package/dist/boundaries.js.map +1 -1
  13. package/dist/check.d.ts +9 -2
  14. package/dist/check.d.ts.map +1 -1
  15. package/dist/check.js +21 -6
  16. package/dist/check.js.map +1 -1
  17. package/dist/config.d.ts +10 -0
  18. package/dist/config.d.ts.map +1 -1
  19. package/dist/config.js +32 -1
  20. package/dist/config.js.map +1 -1
  21. package/dist/extract.d.ts +36 -1
  22. package/dist/extract.d.ts.map +1 -1
  23. package/dist/extract.js +142 -22
  24. package/dist/extract.js.map +1 -1
  25. package/dist/finding.d.ts +12 -0
  26. package/dist/finding.d.ts.map +1 -1
  27. package/dist/finding.js +6 -1
  28. package/dist/finding.js.map +1 -1
  29. package/dist/imports.d.ts +16 -0
  30. package/dist/imports.d.ts.map +1 -1
  31. package/dist/imports.js +17 -2
  32. package/dist/imports.js.map +1 -1
  33. package/dist/index.d.ts +8 -7
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +6 -5
  36. package/dist/index.js.map +1 -1
  37. package/dist/layers.d.ts +6 -0
  38. package/dist/layers.d.ts.map +1 -1
  39. package/dist/layers.js +19 -0
  40. package/dist/layers.js.map +1 -1
  41. package/dist/names.d.ts +48 -0
  42. package/dist/names.d.ts.map +1 -0
  43. package/dist/names.js +194 -0
  44. package/dist/names.js.map +1 -0
  45. package/package.json +2 -2
  46. package/src/areas.ts +3 -1
  47. package/src/baseline.ts +266 -24
  48. package/src/boundaries.ts +191 -22
  49. package/src/check.ts +34 -7
  50. package/src/config.ts +44 -1
  51. package/src/extract.ts +168 -22
  52. package/src/finding.ts +19 -1
  53. package/src/imports.ts +25 -3
  54. package/src/index.ts +16 -4
  55. package/src/layers.ts +18 -0
  56. package/src/names.ts +215 -0
@@ -20,12 +20,24 @@
20
20
  * package first, since that is the surface it should use.
21
21
  * 5. AMP006 a policy or model file importing its slice's client seam or
22
22
  * infrastructure, or a backend SDK.
23
- * 6. VSA006 an edge inside one slice that the layer matrix does not allow.
23
+ * 6. VSA006 an edge inside one slice that the layer matrix does not allow;
24
+ * or, where the edge's own target is allowed or in no layer (an
25
+ * entrypoint, a barrel in a permitted layer, another slice's
26
+ * entrypoint), a name it takes that is defined in a layer the
27
+ * importer's may not import. The file that defines a name
28
+ * decides, however many files pass it on, and another slice's
29
+ * contract does not widen what a layer may reach (VSA §5,
30
+ * profile §3). A name that cannot be followed is listed as not
31
+ * checked.
24
32
  *
25
33
  * Beside those: TS002 (warning) when one slice reaches another's entrypoint
26
34
  * by relative path although an alias for it is configured; AMP002 when a
27
- * slice file outside its client seam imports a backend SDK; TS001 (warning)
28
- * when an entrypoint re-exports with `export *`.
35
+ * slice file outside its client seam imports a backend SDK; TS007 when a
36
+ * slice file imports a package its layer's `forbiddenPackages` names, such as
37
+ * a UI framework in a policy, a model or the client seam; TS001 (warning)
38
+ * when an entrypoint re-exports with `export *`. TS008, a slice file outside
39
+ * presentation that renders JSX, is `checkJsx`: it reads the file, not an
40
+ * edge.
29
41
  *
30
42
  * Test files get the separate pass profile §3 asks for: they may import
31
43
  * their own slice's internals, and VSA003 and TS003 still apply to anyone
@@ -40,8 +52,10 @@
40
52
  */
41
53
  import { isAreaSchema } from "./areas.js";
42
54
  import { finding, listSome } from "./finding.js";
43
- import { inSeam, isPure, knownLayer, layerAllows, layerOf } from "./layers.js";
44
- import { matchAny, matchPattern } from "./patterns.js";
55
+ import { takenBy } from "./imports.js";
56
+ import { fileLayer, inSeam, isPure, knownLayer, layerAllows, layerOf } from "./layers.js";
57
+ import { NameIndex } from "./names.js";
58
+ import { compareStrings, matchAny, matchPattern } from "./patterns.js";
45
59
  import { describePackage } from "./regions.js";
46
60
  function how(edge) {
47
61
  const kind = edge.reexport
@@ -95,9 +109,10 @@ function describeRegion(region) {
95
109
  return region.kind;
96
110
  }
97
111
  }
98
- export function checkBoundaries(model, edges, resolver) {
112
+ export function checkBoundaries(model, edges, resolver, names = new NameIndex(edges, new Map())) {
99
113
  const { config } = model;
100
114
  const findings = [];
115
+ const untraced = [];
101
116
  const sliceEdges = new Map();
102
117
  let fileEdges = 0;
103
118
  let crossSliceEdges = 0;
@@ -124,7 +139,10 @@ export function checkBoundaries(model, edges, resolver) {
124
139
  return null;
125
140
  }
126
141
  const who = test ? `Test file ${from}` : from;
127
- const subject = { edges: [{ from, to }, ...(owner !== null ? [{ from: owner, to: target.id }] : [])] };
142
+ const subject = {
143
+ edges: [{ from, to }, ...(owner !== null ? [{ from: owner, to: target.id }] : [])],
144
+ taken: takenBy(edge),
145
+ };
128
146
  const why = "It is a warning because the importer lies outside the declared scope (VSA §9).";
129
147
  if (isScreen(to)) {
130
148
  if (!test && matchAny(config.routerFiles, from))
@@ -151,6 +169,73 @@ export function checkBoundaries(model, edges, resolver) {
151
169
  ...subject,
152
170
  });
153
171
  };
172
+ /** What the layer matrix lets `layer` import, itself first. */
173
+ const allowedFrom = (layer) => [layer, ...(config.layerMatrix[layer] ?? [])].filter((value, i, all) => all.indexOf(value) === i);
174
+ // VSA006 for the names an edge takes through files that pass them on: each is judged by the layer of the file
175
+ // that defines it, in the importer's slice or in the slice whose entrypoint it came through.
176
+ const passedOn = (edge, source) => {
177
+ const from = edge.from;
178
+ const a = layerOf(source, from);
179
+ if (a.layer === null || !knownLayer(config, a.layer))
180
+ return null;
181
+ const refused = new Map();
182
+ for (const definition of names.definitions(edge)) {
183
+ const { origin } = definition;
184
+ if (origin.kind === "untraced") {
185
+ const what = definition.name === "*" ? "the names" : `the name ${definition.name}`;
186
+ untraced.push(`${from}:${edge.line}: ${what} "${edge.specifier}" passes on could not be followed to the file that defines ${definition.name === "*" ? "them" : "it"} (${origin.why}), so ${definition.name === "*" ? "their layers were" : "its layer was"} not checked`);
187
+ continue;
188
+ }
189
+ // A name the edge's own target defines is judged with the edge itself; a package's, by the package rules.
190
+ if (origin.kind === "package" || origin.through.length === 0)
191
+ continue;
192
+ const owner = sliceOf(model.regionOf(origin.file));
193
+ if (owner === undefined)
194
+ continue;
195
+ const b = layerOf(owner, origin.file);
196
+ if (b.layer === null || !knownLayer(config, b.layer) || layerAllows(config, a.layer, b.layer))
197
+ continue;
198
+ const entry = refused.get(origin.file) ?? {
199
+ names: [],
200
+ typed: [],
201
+ through: origin.through,
202
+ layer: b.layer,
203
+ owner,
204
+ };
205
+ entry.names.push(definition.name);
206
+ entry.typed.push(`${definition.typeOnly ? "type " : ""}${definition.name} from ${origin.file}`);
207
+ refused.set(origin.file, entry);
208
+ }
209
+ if (refused.size === 0)
210
+ return null;
211
+ const files = [...refused.keys()].sort(compareStrings);
212
+ const foreign = files.some((file) => refused.get(file)?.owner.id !== source.id);
213
+ const parts = files.map((file) => {
214
+ const entry = refused.get(file);
215
+ const of = entry.owner.id === source.id ? "" : ` of ${entry.owner.id}`;
216
+ const via = entry.through.length > 1 ? ` by way of ${entry.through.slice(1).join(", ")}` : "";
217
+ return `${entry.names.join(", ")} from ${file}, in the ${entry.layer} layer${of}${via}`;
218
+ });
219
+ const owners = [...new Set(files.map((file) => refused.get(file)?.owner.id))].filter((id) => id !== source.id);
220
+ return finding({
221
+ code: "VSA006",
222
+ artifact: source.id,
223
+ path: from,
224
+ location: { line: edge.line },
225
+ message: `${from} is in the ${a.layer} layer of ${source.id} and ${how(edge)}, which passes on ${parts.join("; and ")}.`,
226
+ remediation: `The ${a.layer} layer may import ${allowedFrom(a.layer).join(", ")}, whichever file passes a name on${foreign ? ", and another slice's contract does not widen that" : ""}; take what it needs from a layer it may import, such as a use-case that makes the call (profile §3).`,
227
+ edges: [
228
+ { from, to: edge.to },
229
+ ...files.map((file) => ({ from, to: file })),
230
+ ...owners.map((id) => ({ from: source.id, to: id })),
231
+ ],
232
+ // Each name with the file that defines it, so a name passed on from another file is a new entry.
233
+ taken: {
234
+ ...takenBy(edge),
235
+ names: files.flatMap((file) => refused.get(file).typed).sort(compareStrings),
236
+ },
237
+ });
238
+ };
154
239
  for (const edge of edges) {
155
240
  const from = edge.from;
156
241
  if (!model.inScope(from)) {
@@ -176,6 +261,7 @@ export function checkBoundaries(model, edges, resolver) {
176
261
  message: `Test file ${from} ${how(edge)}, a screen of ${target.id}, and tests must not bypass another slice's contract.`,
177
262
  remediation: `Test ${target.id}'s screens from ${target.id}'s own tests, or drive them through the router (profile §3).`,
178
263
  edges: [{ from, to: edge.to }],
264
+ taken: takenBy(edge),
179
265
  }));
180
266
  }
181
267
  else if (!target.meta.entrypoints.includes(edge.to)) {
@@ -187,6 +273,7 @@ export function checkBoundaries(model, edges, resolver) {
187
273
  message: `Test file ${from} ${how(edge)}, a private file of ${target.id}; ${describeSurfaces(model, target, from)}.`,
188
274
  remediation: `${importInstead(model, target, from)} instead; tests may reach only their own slice's internals (profile §3).`,
189
275
  edges: [{ from, to: edge.to }],
276
+ taken: takenBy(edge),
190
277
  }));
191
278
  }
192
279
  continue;
@@ -204,12 +291,12 @@ export function checkBoundaries(model, edges, resolver) {
204
291
  message: `The entrypoint of ${source.id} re-exports everything from "${edge.specifier}" with a wildcard, which can publish private modules as contract.`,
205
292
  remediation: "Export the reviewed names explicitly (VSA §4, TS001).",
206
293
  edges: [{ from, to: edge.to ?? edge.specifier }],
294
+ taken: takenBy(edge),
207
295
  }));
208
296
  }
209
297
  if (edge.to === null) {
210
- if (source !== undefined &&
211
- !model.underBackend(from) &&
212
- matchAny(config.backendSdks, edge.specifier.replace(/^node:/, ""))) {
298
+ const specifier = edge.specifier.replace(/^node:/, "");
299
+ if (source !== undefined && !model.underBackend(from) && matchAny(config.backendSdks, specifier)) {
213
300
  if (isPure(source, from)) {
214
301
  findings.push(finding({
215
302
  code: "AMP006",
@@ -219,6 +306,7 @@ export function checkBoundaries(model, edges, resolver) {
219
306
  message: `${from} is a policy or model file of ${source.id} and ${how(edge)}, a backend SDK.`,
220
307
  remediation: "Keep SDK and generated client types out of policies and models; adapt them in the client seam (AMP006).",
221
308
  edges: [{ from, to: edge.specifier }],
309
+ taken: takenBy(edge),
222
310
  }));
223
311
  }
224
312
  else if (!inSeam(source, from)) {
@@ -230,8 +318,24 @@ export function checkBoundaries(model, edges, resolver) {
230
318
  message: `${from} ${how(edge)}, a backend SDK, outside the client seam of ${source.id}.`,
231
319
  remediation: `Move the backend call into ${source.id}'s client seam and call that from here (AMP002, VSA010).`,
232
320
  edges: [{ from, to: edge.specifier }],
321
+ taken: takenBy(edge),
233
322
  }));
234
323
  }
324
+ continue;
325
+ }
326
+ const layer = source !== undefined && !model.underBackend(from) ? fileLayer(source, from) : null;
327
+ const pattern = layer === null ? undefined : (config.forbiddenPackages[layer] ?? []).find((p) => matchPattern(p, specifier));
328
+ if (source !== undefined && layer !== null && pattern !== undefined) {
329
+ findings.push(finding({
330
+ code: "TS007",
331
+ artifact,
332
+ path: from,
333
+ location,
334
+ message: `${from} is in the ${layer} layer of ${source.id} and ${how(edge)}, a package the ${layer} layer may not import (forbiddenPackages: ${pattern}).`,
335
+ remediation: forbiddenRemediation(layer, specifier),
336
+ edges: [{ from, to: edge.specifier }],
337
+ taken: takenBy(edge),
338
+ }));
235
339
  }
236
340
  continue;
237
341
  }
@@ -248,7 +352,10 @@ export function checkBoundaries(model, edges, resolver) {
248
352
  }
249
353
  if (!model.inScope(to) && target === undefined)
250
354
  continue;
251
- const subject = { edges: [{ from, to }, ...(source && target ? [{ from: source.id, to: target.id }] : [])] };
355
+ const subject = {
356
+ edges: [{ from, to }, ...(source && target ? [{ from: source.id, to: target.id }] : [])],
357
+ taken: takenBy(edge),
358
+ };
252
359
  // 1. AMP001, and AMP011 for an area repository's schema bridge (profile §9). The shared backend
253
360
  // package is backend code: what it may import is AMP008's question.
254
361
  if (model.underBackend(to) && !model.underBackend(from) && !matchAny(config.sharedBackend, from)) {
@@ -362,6 +469,11 @@ export function checkBoundaries(model, edges, resolver) {
362
469
  }));
363
470
  }
364
471
  }
472
+ if (source !== undefined) {
473
+ const passed = passedOn(edge, source);
474
+ if (passed !== null)
475
+ findings.push(passed);
476
+ }
365
477
  continue;
366
478
  }
367
479
  if (source === undefined)
@@ -396,23 +508,69 @@ export function checkBoundaries(model, edges, resolver) {
396
508
  if (target !== undefined) {
397
509
  const a = layerOf(source, from);
398
510
  const b = layerOf(source, to);
399
- if (a.layer === null || b.layer === null || !knownLayer(config, a.layer) || !knownLayer(config, b.layer))
400
- continue;
401
- if (!layerAllows(config, a.layer, b.layer)) {
402
- const allowed = [a.layer, ...(config.layerMatrix[a.layer] ?? [])].filter((value, i, all) => all.indexOf(value) === i);
511
+ if (a.layer !== null &&
512
+ b.layer !== null &&
513
+ knownLayer(config, a.layer) &&
514
+ knownLayer(config, b.layer) &&
515
+ !layerAllows(config, a.layer, b.layer)) {
403
516
  findings.push(finding({
404
517
  code: "VSA006",
405
518
  artifact,
406
519
  path: from,
407
520
  location,
408
521
  message: `${from} is in the ${a.layer} layer of ${source.id} and ${how(edge)}, which is in the ${b.layer} layer.`,
409
- remediation: `The ${a.layer} layer may import ${allowed.join(", ")}; move the dependency so it flows downward (profile §3).`,
522
+ remediation: `The ${a.layer} layer may import ${allowedFrom(a.layer).join(", ")}; move the dependency so it flows downward (profile §3).`,
410
523
  ...subject,
411
524
  }));
525
+ continue;
412
526
  }
527
+ const passed = passedOn(edge, source);
528
+ if (passed !== null)
529
+ findings.push(passed);
413
530
  }
414
531
  }
415
- return { findings, sliceEdges, fileEdges, crossSliceEdges };
532
+ return { findings, sliceEdges, fileEdges, crossSliceEdges, untraced: [...new Set(untraced)].sort(compareStrings) };
533
+ }
534
+ function forbiddenRemediation(layer, specifier) {
535
+ if (layer === "policy" || layer === "model") {
536
+ return `Policies and models stay free of UI and transport: keep what needs "${specifier}" in the presentation layer and pass plain values in (profile §3, TS007).`;
537
+ }
538
+ if (layer === "external") {
539
+ return `The client seam is transport: return plain values from it, and let a hook in the presentation layer hold the state "${specifier}" provides (profile §3, TS007).`;
540
+ }
541
+ return `Move what needs "${specifier}" to a layer that may import it, or change forbiddenPackages in .intentset/architecture.yaml if the policy is wrong (TS007).`;
542
+ }
543
+ /** The profile's layers other than presentation, which render no JSX (TS008). A layer of the repository's own naming is not judged. */
544
+ const NO_JSX_LAYERS = ["application", "policy", "model", "external"];
545
+ /**
546
+ * TS008: a slice file outside the presentation layer that renders JSX. The automatic runtime needs no import for it,
547
+ * so this reads the file rather than an edge. Composition, shared code and tests may render; a file in no layer is
548
+ * VSA006's warning already.
549
+ */
550
+ export function checkJsx(model, jsx) {
551
+ const findings = [];
552
+ for (const path of [...jsx.keys()].sort(compareStrings)) {
553
+ if (!model.inScope(path) || model.isTest(path) || model.underBackend(path))
554
+ continue;
555
+ const region = model.regionOf(path);
556
+ const slice = region.kind === "slice" ? model.sliceById.get(region.owner) : undefined;
557
+ if (slice === undefined || slice.meta.entrypoints.includes(path))
558
+ continue;
559
+ const layer = fileLayer(slice, path);
560
+ if (layer === null || !NO_JSX_LAYERS.includes(layer))
561
+ continue;
562
+ findings.push(finding({
563
+ code: "TS008",
564
+ artifact: slice.id,
565
+ path,
566
+ location: { line: jsx.get(path) },
567
+ message: `${path} is in the ${layer} layer of ${slice.id} and renders JSX, which only the presentation layer may.`,
568
+ remediation: layer === "external"
569
+ ? "The client seam is transport: return data from it and render it in a component under the presentation layer (profile §3, TS008)."
570
+ : "Move the markup into a component in the presentation layer, and pass it the values this file computes (profile §3, TS008).",
571
+ }));
572
+ }
573
+ return findings;
416
574
  }
417
575
  /** One warning per slice whose code files are in no declared layer, or in a layer the matrix does not know (VSA006). */
418
576
  export function checkUnclassified(model) {
@@ -1 +1 @@
1
- {"version":3,"file":"boundaries.js","sourceRoot":"","sources":["../src/boundaries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boundaries.js","sourceRoot":"","sources":["../src/boundaries.ts"],"names":[],"mappings":"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"}
package/dist/check.d.ts CHANGED
@@ -12,7 +12,7 @@
12
12
  * for imports, reported as a TS004 warning: never a pass (invariant 6).
13
13
  */
14
14
  import { type Diagnostic, type Graph, type Level, type OwnershipEntry, type OwnershipReportSection, type Registries } from "@intentset/core";
15
- import { type BaselineEntry, type Mode } from "./baseline.ts";
15
+ import { type BaselineEntry, type BaselineSubject, type Mode } from "./baseline.ts";
16
16
  import { type ArchitectureConfig } from "./config.ts";
17
17
  import { type ExceptionRecord } from "./exceptions.ts";
18
18
  import { type ImportEdge } from "./imports.ts";
@@ -24,6 +24,8 @@ export interface CheckOptions {
24
24
  /** Exception records handed in, in addition to architecture/exceptions/*.yaml in the tree. */
25
25
  exceptions?: readonly (ExceptionRecord | Record<string, unknown>)[];
26
26
  baseline?: readonly BaselineEntry[];
27
+ /** The baseline file's repository-relative path, which a stale entry's VSA014 names. Default none. */
28
+ baselinePath?: string;
27
29
  /** "migration" applies the baseline; "strict" ignores it. Default migration. */
28
30
  mode?: Mode;
29
31
  /** The date exceptions expire against, YYYY-MM-DD. Default today, UTC. */
@@ -52,7 +54,7 @@ export interface ArchitectureSummary {
52
54
  excepted: number;
53
55
  /** Diagnostics the baseline turned into warnings (migration mode only). */
54
56
  baselined: number;
55
- /** Baseline entries that matched nothing and can be retired. */
57
+ /** Baseline entries that matched nothing: each is a VSA014 error until the baseline is written without it. */
56
58
  baselineStale: number;
57
59
  /** What could not be checked: never a pass (invariant 6). */
58
60
  unresolved: string[];
@@ -64,6 +66,11 @@ export interface ArchitectureResult {
64
66
  summary: ArchitectureSummary;
65
67
  /** The resolved import graph, for reports and impact views. */
66
68
  edges: ImportEdge[];
69
+ /**
70
+ * What each diagnostic that came from a finding is about, keyed by the diagnostic objects in `diagnostics`: what
71
+ * `writeBaseline` needs to write entries a later run matches (VSA §9).
72
+ */
73
+ subjects: ReadonlyMap<Diagnostic, BaselineSubject>;
67
74
  /**
68
75
  * Where every file falls, sorted by path: each production file's region and
69
76
  * owner, every test file with the slice its claims match, and nothing for a
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EAEhB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAiB,KAAK,aAAa,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAG7E,OAAO,EAA4B,KAAK,kBAAkB,EAAyC,MAAM,aAAa,CAAC;AAEvH,OAAO,EAAmB,KAAK,eAAe,EAAuC,MAAM,iBAAiB,CAAC;AAE7G,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAOjE,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,kEAAkE;IAClE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,8FAA8F;IAC9F,UAAU,CAAC,EAAE,SAAS,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IACpE,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACpC,gFAAgF;IAChF,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,iGAAiG;IACjG,cAAc,EAAE,MAAM,CAAC;IACvB,4FAA4F;IAC5F,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gFAAgF;IAChF,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,+DAA+D;IAC/D,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB;;;;;;OAMG;IACH,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,4GAA4G;AAC5G,eAAO,MAAM,eAAe,UAO3B,CAAC;AAMF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAC5C,OAAO,GAAE,YAAiB,GACzB,kBAAkB,CA+GpB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACrD,sBAAsB,CAOxB"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EAEhB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,IAAI,EAEV,MAAM,eAAe,CAAC;AAGvB,OAAO,EAA4B,KAAK,kBAAkB,EAAyC,MAAM,aAAa,CAAC;AAEvH,OAAO,EAAmB,KAAK,eAAe,EAAuC,MAAM,iBAAiB,CAAC;AAE7G,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAQjE,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,kEAAkE;IAClE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,8FAA8F;IAC9F,UAAU,CAAC,EAAE,SAAS,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IACpE,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACpC,sGAAsG;IACtG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,iGAAiG;IACjG,cAAc,EAAE,MAAM,CAAC;IACvB,4FAA4F;IAC5F,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,8GAA8G;IAC9G,aAAa,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gFAAgF;IAChF,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,+DAA+D;IAC/D,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB;;;OAGG;IACH,QAAQ,EAAE,WAAW,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACnD;;;;;;OAMG;IACH,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,4GAA4G;AAC5G,eAAO,MAAM,eAAe,UAO3B,CAAC;AAMF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAC5C,OAAO,GAAE,YAAiB,GACzB,kBAAkB,CA4HpB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACrD,sBAAsB,CAOxB"}
package/dist/check.js CHANGED
@@ -13,14 +13,15 @@
13
13
  */
14
14
  import { sortDiagnostics, } from "@intentset/core";
15
15
  import { AREA_REVIEW_REQUIRED, checkAreas } from "./areas.js";
16
- import { applyBaseline } from "./baseline.js";
17
- import { checkBoundaries, checkUnclassified } from "./boundaries.js";
16
+ import { applyBaseline, staleEntryDiagnostics, } from "./baseline.js";
17
+ import { checkBoundaries, checkJsx, checkUnclassified } from "./boundaries.js";
18
18
  import { checkClaims } from "./claims.js";
19
19
  import { ARCHITECTURE_CONFIG_PATH, readArchitectureConfig, resolveConfig } from "./config.js";
20
20
  import { checkDependencies } from "./dependencies.js";
21
21
  import { applyExceptions, readExceptionRecord, readExceptions } from "./exceptions.js";
22
22
  import { finding } from "./finding.js";
23
23
  import { buildImportGraph } from "./imports.js";
24
+ import { NameIndex } from "./names.js";
24
25
  import { checkOwnership } from "./ownership.js";
25
26
  import { isCode } from "./paths.js";
26
27
  import { compareStrings } from "./patterns.js";
@@ -81,8 +82,10 @@ export function checkArchitecture(graph, registries, tree, options = {}) {
81
82
  unresolved.push(`${note.path}: ${note.message}`);
82
83
  findings.push(...checkClaims(model, graph, registriesPath));
83
84
  findings.push(...checkOwnership(model, graph, level));
84
- const boundaries = checkBoundaries(model, imports.edges, resolver);
85
+ const boundaries = checkBoundaries(model, imports.edges, resolver, new NameIndex(imports.edges, imports.exports));
85
86
  findings.push(...boundaries.findings);
87
+ unresolved.push(...boundaries.untraced);
88
+ findings.push(...checkJsx(model, imports.jsx));
86
89
  findings.push(...checkUnclassified(model));
87
90
  const areaCheck = checkAreas(model, imports.edges);
88
91
  findings.push(...areaCheck.findings);
@@ -107,8 +110,20 @@ export function checkArchitecture(graph, registries, tree, options = {}) {
107
110
  ...recordProblems.map((item) => item.diagnostic),
108
111
  ...excepted.recordFindings.map((item) => item.diagnostic),
109
112
  ];
110
- const baseline = applyBaseline(diagnostics, options.baseline ?? [], mode);
111
- diagnostics = sortDiagnostics(baseline.diagnostics);
113
+ const about = new Map();
114
+ for (const item of [...excepted.findings, ...recordProblems, ...excepted.recordFindings]) {
115
+ about.set(item.diagnostic, { edges: item.edges, ...(item.taken !== undefined ? { taken: item.taken } : {}) });
116
+ }
117
+ const baseline = applyBaseline(diagnostics, options.baseline ?? [], mode, (diagnostic) => about.get(diagnostic));
118
+ // applyBaseline maps one for one, so the subjects follow the diagnostics it returns.
119
+ const subjects = new Map();
120
+ baseline.diagnostics.forEach((diagnostic, i) => {
121
+ const subject = about.get(diagnostics[i]);
122
+ if (subject !== undefined)
123
+ subjects.set(diagnostic, subject);
124
+ });
125
+ const stale = staleEntryDiagnostics(baseline.stale, options.baseline ?? [], options.baselinePath ?? null);
126
+ diagnostics = sortDiagnostics([...baseline.diagnostics, ...stale]);
112
127
  const owned = (path) => {
113
128
  const kind = model.regionOf(path).kind;
114
129
  return kind !== "backend" && kind !== "unowned";
@@ -141,7 +156,7 @@ export function checkArchitecture(graph, registries, tree, options = {}) {
141
156
  ownership.push({ path, region: region.kind, owner: region.owner ?? null });
142
157
  }
143
158
  ownership.sort((a, b) => compareStrings(a.path, b.path));
144
- return { diagnostics, summary, edges: imports.edges, ownership };
159
+ return { diagnostics, summary, edges: imports.edges, ownership, subjects };
145
160
  }
146
161
  /**
147
162
  * `reports.ownership` for the export (spec/export.md §4.4): the check's file
package/dist/check.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -48,6 +48,11 @@ export interface ArchitectureConfig {
48
48
  backendSdks: string[];
49
49
  /** The internal layer matrix (profile §3): each layer may import itself and the layers listed. */
50
50
  layerMatrix: Record<string, string[]>;
51
+ /**
52
+ * Packages a layer may not import, by layer name: specifier patterns matched, as backendSdks are, against the
53
+ * specifier as written with `node:` removed (TS007). A layer not named may import any package.
54
+ */
55
+ forbiddenPackages: Record<string, string[]>;
51
56
  /** Export conditions tried first when resolving a workspace package's entry, before types, import and default. */
52
57
  conditions: string[];
53
58
  /** Areas (profile §9). Empty for a repository with one backend, which none of AMP007 to AMP013 concern. */
@@ -57,6 +62,11 @@ export interface ArchitectureConfig {
57
62
  /** The one frontend file that may import area schemas, type-only, and call generateClient (AMP011). */
58
63
  schemaBridge: string | null;
59
64
  }
65
+ /**
66
+ * The UI frameworks profile §3 keeps out of policies, models and the client seam by default. A repository adds its
67
+ * UI kit and data-fetching hooks (`@mui/**`, `@tanstack/react-query/**`) in `forbiddenPackages`.
68
+ */
69
+ export declare const UI_FRAMEWORKS: string[];
60
70
  export declare const DEFAULT_ARCHITECTURE_CONFIG: ArchitectureConfig;
61
71
  /** The defaults with a partial configuration laid over them; a key given replaces the default whole. */
62
72
  export declare function resolveConfig(...layers: (Partial<ArchitectureConfig> | undefined)[]): ArchitectureConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,iBAAiB,CAAC;AAGrE,eAAO,MAAM,wBAAwB,iCAAiC,CAAC;AAEvE,8FAA8F;AAC9F,MAAM,WAAW,UAAU;IACzB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iHAAiH;IACjH,MAAM,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,uEAAuE;AACvE,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,MAAM,WAAW,kBAAkB;IACjC,kGAAkG;IAClG,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,0FAA0F;IAC1F,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,yCAAyC;IACzC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kDAAkD;IAClD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,wEAAwE;IACxE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gHAAgH;IAChH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oHAAoH;IACpH,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,qGAAqG;IACrG,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uFAAuF;IACvF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAC;IACpB,iGAAiG;IACjG,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,kGAAkG;IAClG,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,kHAAkH;IAClH,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,2GAA2G;IAC3G,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,yFAAyF;IACzF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,uGAAuG;IACvG,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,2BAA2B,EAAE,kBAwBzC,CAAC;AAoCF,wGAAwG;AACxG,wBAAgB,aAAa,CAAC,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,kBAAkB,CASxG;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAiC,GACtC;IAAE,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CAqGpE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,iBAAiB,CAAC;AAGrE,eAAO,MAAM,wBAAwB,iCAAiC,CAAC;AAEvE,8FAA8F;AAC9F,MAAM,WAAW,UAAU;IACzB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iHAAiH;IACjH,MAAM,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,uEAAuE;AACvE,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,MAAM,WAAW,kBAAkB;IACjC,kGAAkG;IAClG,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,0FAA0F;IAC1F,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,yCAAyC;IACzC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kDAAkD;IAClD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,wEAAwE;IACxE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gHAAgH;IAChH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oHAAoH;IACpH,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,qGAAqG;IACrG,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uFAAuF;IACvF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAC;IACpB,iGAAiG;IACjG,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,kGAAkG;IAClG,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,kHAAkH;IAClH,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,2GAA2G;IAC3G,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,yFAAyF;IACzF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,uGAAuG;IACvG,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,UASzB,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,kBAyBzC,CAAC;AAsCF,wGAAwG;AACxG,wBAAgB,aAAa,CAAC,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,kBAAkB,CASxG;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAiC,GACtC;IAAE,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CAyHpE"}