@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.
- package/dist/areas.d.ts +1 -1
- package/dist/areas.d.ts.map +1 -1
- package/dist/areas.js +3 -0
- package/dist/areas.js.map +1 -1
- package/dist/baseline.d.ts +96 -11
- package/dist/baseline.d.ts.map +1 -1
- package/dist/baseline.js +219 -22
- package/dist/baseline.js.map +1 -1
- package/dist/boundaries.d.ts +11 -2
- package/dist/boundaries.d.ts.map +1 -1
- package/dist/boundaries.js +175 -17
- package/dist/boundaries.js.map +1 -1
- package/dist/check.d.ts +9 -2
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +21 -6
- package/dist/check.js.map +1 -1
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +32 -1
- package/dist/config.js.map +1 -1
- package/dist/extract.d.ts +36 -1
- package/dist/extract.d.ts.map +1 -1
- package/dist/extract.js +142 -22
- package/dist/extract.js.map +1 -1
- package/dist/finding.d.ts +12 -0
- package/dist/finding.d.ts.map +1 -1
- package/dist/finding.js +6 -1
- package/dist/finding.js.map +1 -1
- package/dist/imports.d.ts +16 -0
- package/dist/imports.d.ts.map +1 -1
- package/dist/imports.js +17 -2
- package/dist/imports.js.map +1 -1
- package/dist/index.d.ts +8 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/layers.d.ts +6 -0
- package/dist/layers.d.ts.map +1 -1
- package/dist/layers.js +19 -0
- package/dist/layers.js.map +1 -1
- package/dist/names.d.ts +48 -0
- package/dist/names.d.ts.map +1 -0
- package/dist/names.js +194 -0
- package/dist/names.js.map +1 -0
- package/package.json +2 -2
- package/src/areas.ts +3 -1
- package/src/baseline.ts +266 -24
- package/src/boundaries.ts +191 -22
- package/src/check.ts +34 -7
- package/src/config.ts +44 -1
- package/src/extract.ts +168 -22
- package/src/finding.ts +19 -1
- package/src/imports.ts +25 -3
- package/src/index.ts +16 -4
- package/src/layers.ts +18 -0
- package/src/names.ts +215 -0
package/dist/boundaries.js
CHANGED
|
@@ -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;
|
|
28
|
-
*
|
|
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 {
|
|
44
|
-
import {
|
|
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 = {
|
|
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
|
-
|
|
211
|
-
|
|
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 = {
|
|
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
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
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 ${
|
|
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) {
|
package/dist/boundaries.js.map
CHANGED
|
@@ -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
|
|
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
|
package/dist/check.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
111
|
-
|
|
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":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAOL,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,
|
|
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;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|