archprint 0.13.1 → 0.15.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/CHANGELOG.md +26 -0
- package/README.md +21 -12
- package/dist/cli/adopted-rules.d.ts +30 -2
- package/dist/cli/adopted-rules.d.ts.map +1 -1
- package/dist/cli/adopted-rules.js +158 -2
- package/dist/cli/adopted-rules.js.map +1 -1
- package/dist/cli/allow.d.ts.map +1 -1
- package/dist/cli/allow.js +21 -4
- package/dist/cli/allow.js.map +1 -1
- package/dist/cli/allowed-evidence.d.ts.map +1 -1
- package/dist/cli/allowed-evidence.js +183 -1
- package/dist/cli/allowed-evidence.js.map +1 -1
- package/dist/cli/check-evaluate.d.ts.map +1 -1
- package/dist/cli/check-evaluate.js +124 -0
- package/dist/cli/check-evaluate.js.map +1 -1
- package/dist/cli/generate.d.ts +4 -4
- package/dist/cli/generate.d.ts.map +1 -1
- package/dist/cli/generate.js +115 -42
- package/dist/cli/generate.js.map +1 -1
- package/dist/cli/layout.d.ts +5 -2
- package/dist/cli/layout.d.ts.map +1 -1
- package/dist/cli/layout.js +43 -10
- package/dist/cli/layout.js.map +1 -1
- package/dist/cli/migrate.d.ts.map +1 -1
- package/dist/cli/migrate.js +1 -2
- package/dist/cli/migrate.js.map +1 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +10 -6
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/recommend.d.ts +3 -0
- package/dist/cli/recommend.d.ts.map +1 -1
- package/dist/cli/recommend.js +28 -8
- package/dist/cli/recommend.js.map +1 -1
- package/dist/cli/report.js +1 -1
- package/dist/cli/report.js.map +1 -1
- package/dist/detector/cycle-detector.d.ts +5 -0
- package/dist/detector/cycle-detector.d.ts.map +1 -1
- package/dist/detector/cycle-detector.js +20 -0
- package/dist/detector/cycle-detector.js.map +1 -1
- package/dist/detector/dependency-internals-detector.d.ts.map +1 -1
- package/dist/detector/dependency-internals-detector.js +6 -20
- package/dist/detector/dependency-internals-detector.js.map +1 -1
- package/dist/detector/entry-purity-detector.d.ts +7 -0
- package/dist/detector/entry-purity-detector.d.ts.map +1 -1
- package/dist/detector/entry-purity-detector.js +21 -10
- package/dist/detector/entry-purity-detector.js.map +1 -1
- package/dist/detector/phantom-dependency-detector.d.ts +7 -0
- package/dist/detector/phantom-dependency-detector.d.ts.map +1 -1
- package/dist/detector/phantom-dependency-detector.js +18 -39
- package/dist/detector/phantom-dependency-detector.js.map +1 -1
- package/dist/detector/server-client-detector.d.ts +5 -0
- package/dist/detector/server-client-detector.d.ts.map +1 -1
- package/dist/detector/server-client-detector.js +8 -3
- package/dist/detector/server-client-detector.js.map +1 -1
- package/dist/generator/app-isolation-emitters.d.ts +1 -0
- package/dist/generator/app-isolation-emitters.d.ts.map +1 -1
- package/dist/generator/app-isolation-emitters.js +2 -1
- package/dist/generator/app-isolation-emitters.js.map +1 -1
- package/dist/generator/depcruise-exempt.d.ts +4 -0
- package/dist/generator/depcruise-exempt.d.ts.map +1 -1
- package/dist/generator/depcruise-exempt.js +7 -0
- package/dist/generator/depcruise-exempt.js.map +1 -1
- package/dist/generator/dependency-internals-emitters.d.ts +2 -1
- package/dist/generator/dependency-internals-emitters.d.ts.map +1 -1
- package/dist/generator/dependency-internals-emitters.js +7 -3
- package/dist/generator/dependency-internals-emitters.js.map +1 -1
- package/dist/generator/entry-purity-emitters.d.ts +7 -3
- package/dist/generator/entry-purity-emitters.d.ts.map +1 -1
- package/dist/generator/entry-purity-emitters.js +19 -5
- package/dist/generator/entry-purity-emitters.js.map +1 -1
- package/dist/generator/env-access-emitters.d.ts +1 -0
- package/dist/generator/env-access-emitters.d.ts.map +1 -1
- package/dist/generator/env-access-emitters.js +1 -0
- package/dist/generator/env-access-emitters.js.map +1 -1
- package/dist/generator/eslint-app-emitter.d.ts +59 -0
- package/dist/generator/eslint-app-emitter.d.ts.map +1 -0
- package/dist/generator/eslint-app-emitter.js +275 -0
- package/dist/generator/eslint-app-emitter.js.map +1 -0
- package/dist/generator/eslint-preset-emitter.d.ts +2 -2
- package/dist/generator/eslint-preset-emitter.d.ts.map +1 -1
- package/dist/generator/eslint-preset-emitter.js +6 -6
- package/dist/generator/eslint-preset-emitter.js.map +1 -1
- package/dist/generator/feature-slice-emitters.d.ts +1 -0
- package/dist/generator/feature-slice-emitters.d.ts.map +1 -1
- package/dist/generator/feature-slice-emitters.js +2 -1
- package/dist/generator/feature-slice-emitters.js.map +1 -1
- package/dist/generator/layer-emitters.d.ts.map +1 -1
- package/dist/generator/layer-emitters.js +2 -6
- package/dist/generator/layer-emitters.js.map +1 -1
- package/dist/generator/phantom-dependency-emitters.d.ts +2 -1
- package/dist/generator/phantom-dependency-emitters.d.ts.map +1 -1
- package/dist/generator/phantom-dependency-emitters.js +7 -3
- package/dist/generator/phantom-dependency-emitters.js.map +1 -1
- package/dist/generator/role-layering-emitters.d.ts +2 -0
- package/dist/generator/role-layering-emitters.d.ts.map +1 -1
- package/dist/generator/role-layering-emitters.js +2 -1
- package/dist/generator/role-layering-emitters.js.map +1 -1
- package/dist/generator/server-client-emitters.d.ts +10 -3
- package/dist/generator/server-client-emitters.d.ts.map +1 -1
- package/dist/generator/server-client-emitters.js +23 -4
- package/dist/generator/server-client-emitters.js.map +1 -1
- package/dist/generator/stories-isolation-emitters.d.ts +1 -0
- package/dist/generator/stories-isolation-emitters.d.ts.map +1 -1
- package/dist/generator/stories-isolation-emitters.js +2 -1
- package/dist/generator/stories-isolation-emitters.js.map +1 -1
- package/dist/generator/ui-data-isolation-emitters.d.ts +1 -0
- package/dist/generator/ui-data-isolation-emitters.d.ts.map +1 -1
- package/dist/generator/ui-data-isolation-emitters.js +2 -1
- package/dist/generator/ui-data-isolation-emitters.js.map +1 -1
- package/dist/generator/workspace-package-emitters.d.ts +1 -0
- package/dist/generator/workspace-package-emitters.d.ts.map +1 -1
- package/dist/generator/workspace-package-emitters.js +1 -0
- package/dist/generator/workspace-package-emitters.js.map +1 -1
- package/dist/scanner/directives.d.ts +6 -0
- package/dist/scanner/directives.d.ts.map +1 -0
- package/dist/scanner/directives.js +35 -0
- package/dist/scanner/directives.js.map +1 -0
- package/dist/scanner/package-name.d.ts +10 -0
- package/dist/scanner/package-name.d.ts.map +1 -0
- package/dist/scanner/package-name.js +37 -0
- package/dist/scanner/package-name.js.map +1 -0
- package/dist/scanner/resolve-import.d.ts +5 -0
- package/dist/scanner/resolve-import.d.ts.map +1 -1
- package/dist/scanner/resolve-import.js +22 -19
- package/dist/scanner/resolve-import.js.map +1 -1
- package/dist/scanner/role-classifier.d.ts +11 -2
- package/dist/scanner/role-classifier.d.ts.map +1 -1
- package/dist/scanner/role-classifier.js +13 -39
- package/dist/scanner/role-classifier.js.map +1 -1
- package/package.json +2 -2
- package/dist/generator/eslint-layer-emitter.d.ts +0 -29
- package/dist/generator/eslint-layer-emitter.d.ts.map +0 -1
- package/dist/generator/eslint-layer-emitter.js +0 -121
- package/dist/generator/eslint-layer-emitter.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# archprint
|
|
2
2
|
|
|
3
|
+
## 0.15.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- `generate --only <family>` and `generate --rules <ids>` now add to the rules you adopted before instead of replacing them. Earlier, a scoped run kept only what it generated, so `--only layer` on a repo with no layer rules removed every adopted rule and `.archprint/eslint.mjs` with them. A scoped run now lists the rules it kept and names any earlier rule the current code no longer supports. A plain `archprint generate` still resets to the default rule set.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- `.archprint/config.json` now records every rule written to `.archprint/eslint.mjs` or `.archprint/dependency-cruiser.json`. Env access, workspace-package API, role layering, feature slices, app isolation, stories isolation and UI/data separation were enforced but missing from the adopted rules, so `archprint check` did not report them and `archprint allow` refused them. The enforced, report-only and held-for-review lists in `config.json`, the `--readme` section and the `init` summary now follow the adopted rules: a held rule you adopt with `--rules` is listed as adopted, and a recommended rule you did not adopt is listed as report only rather than as adopted.
|
|
12
|
+
|
|
13
|
+
If your CI pins an archprint version (for example the GitHub Action's `archprint-version`), use 0.15.0 or later there too: an older `archprint check` stops with an error on a `config.json` that records these rules.
|
|
14
|
+
|
|
15
|
+
## 0.14.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- Undeclared (phantom) dependencies and the server/client boundary can now be enforced with plain ESLint, like layer boundaries. When your repo does not use dependency-cruiser, `generate --include-structural` writes them into `.archprint/eslint.mjs` as `archprint/no-phantom-dependencies` and `archprint/no-server-only-in-client`, with no extra plugin, and they pass on the code they were generated from. The phantom-dependency rule reads your `package.json` each time ESLint starts, so declaring a package is enough; no regenerate. Both rules are now adopted, whichever tool enforces them: `archprint check` reports a new break and `archprint allow` accepts one.
|
|
20
|
+
|
|
21
|
+
Circular dependencies are now enforced. When your code has no cycle (and enough files to say so), `generate` and `init` adopt the rule `no-cycles`, without `--include-structural`, and `archprint check` reports each import that closes a new cycle in a pull request; to accept a cycle, allow every file in it. There is no lint rule for cycles, because finding one needs the whole import graph. The phantom-dependency and server/client rules still need `--include-structural`. Older archprint versions do not recognize these adopted rules, so update archprint in CI (for example the GitHub Action's `archprint-version`) before you regenerate.
|
|
22
|
+
|
|
23
|
+
Fixes: the server/client rule written for dependency-cruiser flagged every server module that correctly imports `server-only`, and missed the client component importing it; it now covers exactly the client components and server-only modules the scan found. A module that only mentions "server-only" in a comment or a string is no longer treated as server-only. A "use client" directive after a byte-order mark or a shebang line is recognized. `#` subpath imports and `scheme:` specifiers (such as `bun:test`) are no longer reported as undeclared packages.
|
|
24
|
+
|
|
25
|
+
- Package internals and entry purity can now be enforced with plain ESLint too. When your repo does not use dependency-cruiser, `generate --include-structural` writes `archprint/no-dependency-internals` (importing a package's `src` or `internal` folders) and `archprint/no-import-framework-entry` (importing a page, layout or route handler from other code) into `.archprint/eslint.mjs`. Both pass on the code they were generated from and are adopted, so `archprint check` reports a new break and `archprint allow` accepts one. The entry rule recognizes pages and routes by their path, so new routes are covered without regenerating.
|
|
26
|
+
|
|
27
|
+
Fixes: the entry-purity rule written for dependency-cruiser flagged a page importing another page, test files, and the imports that already existed when it was generated; it now exempts all three. Package-internals evidence no longer counts `#` subpath imports or `scheme:` specifiers as packages.
|
|
28
|
+
|
|
3
29
|
## 0.13.1
|
|
4
30
|
|
|
5
31
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -200,7 +200,9 @@ folder's purpose incorrectly. So only the **mechanical** families, which rest on
|
|
|
200
200
|
without review: forbidden imports (AP-001, AP-002), circular dependencies, test isolation, import style, console
|
|
201
201
|
isolation, and public-API barrels. An adversarial correctness audit (three rounds over four real repositories)
|
|
202
202
|
found zero false positives in these every round. All of them except circular dependencies are written as lint
|
|
203
|
-
rules;
|
|
203
|
+
rules; a cycle-free codebase with enough files for the gate adopts "no circular dependencies", which
|
|
204
|
+
`archprint check` enforces on each pull request (cycles need the whole import graph, so there is no lint rule for
|
|
205
|
+
them).
|
|
204
206
|
|
|
205
207
|
The **structural** families infer a "layer" or "role" from paths, which can be wrong (layer and role boundaries,
|
|
206
208
|
UI/data separation, entry purity, server/client, feature-slice and app isolation, env access, workspace package
|
|
@@ -217,7 +219,8 @@ connecting them, use `archprint generate --check`.
|
|
|
217
219
|
## What it can detect
|
|
218
220
|
|
|
219
221
|
**Ships as:** **Auto** = turned on as enforcement (mechanical families). **Review** = held for your review by
|
|
220
|
-
default; emit with `--include-structural`. **
|
|
222
|
+
default; emit with `--include-structural`. **Check** = enforced by `archprint check` on each pull request. **Report** =
|
|
223
|
+
shown only, never enforced.
|
|
221
224
|
|
|
222
225
|
Archprint recognizes the stack (Next.js, Nest, SvelteKit, Nuxt, Remix) and classifies UI components across React
|
|
223
226
|
(`.tsx`), Angular (`.component.ts`, `.directive.ts`), and Vue and Svelte single-file components (it reads the
|
|
@@ -226,7 +229,7 @@ Archprint recognizes the stack (Next.js, Nest, SvelteKit, Nuxt, Remix) and class
|
|
|
226
229
|
| Detector | Rule it can infer | Ships as |
|
|
227
230
|
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------- |
|
|
228
231
|
| Forbidden imports (AP-001, AP-002) | AP-001: a request entry (route handler) must not import the DB client. AP-002: a server entry must not import the UI layer | Auto |
|
|
229
|
-
| Circular dependencies | The module graph should stay acyclic
|
|
232
|
+
| Circular dependencies | The module graph should stay acyclic; adopted when there are no cycles, and `archprint check` reports a new one | Check |
|
|
230
233
|
| Test isolation | Production (non-test) code must not import test or spec files | Auto |
|
|
231
234
|
| Dependency hygiene | Import third-party packages by their public entry, not a dependency's `src`/`internal` internals | Review |
|
|
232
235
|
| Dependency declaration | Every imported third-party package must be declared in `package.json` (no phantom/transitive deps) | Review |
|
|
@@ -247,7 +250,7 @@ Archprint recognizes the stack (Next.js, Nest, SvelteKit, Nuxt, Remix) and class
|
|
|
247
250
|
| Transitive reachability | A layer boundary that a plain import rule passes but that leaks through an intermediary layer | Report |
|
|
248
251
|
|
|
249
252
|
`recommend` (and `init`) sort every rule family into tiers: rules your code already follows (enforce now), rules
|
|
250
|
-
your code follows that Archprint reports but does not write
|
|
253
|
+
your code follows that Archprint reports but does not write, rules with thin
|
|
251
254
|
evidence (review and adopt), and rules that comparable repos commonly follow but yours does not yet (adopt from day
|
|
252
255
|
one). Each recommendation carries the share of comparable repos (your detected stack, else
|
|
253
256
|
overall) that already enforce that rule, mined from a census of tens of thousands of public TypeScript
|
|
@@ -268,16 +271,17 @@ format.
|
|
|
268
271
|
held for review, and worth adopting, and the list of managed outputs `eject` removes.
|
|
269
272
|
- **`.archprint/eslint.mjs`** (when ESLint is present): one self-contained ESLint flat-config file that inlines
|
|
270
273
|
every inferred ESLint rule (marker-based forbidden imports, `no-restricted-imports` import-style boundaries,
|
|
271
|
-
console isolation, and
|
|
274
|
+
console isolation, and, when you include structural rules and do not use dependency-cruiser, layer boundaries,
|
|
275
|
+
undeclared (phantom) dependencies, the server/client boundary, package internals and entry purity)
|
|
272
276
|
and needs no extra plugins: it adds rules to your existing ESLint setup, which already parses your TypeScript.
|
|
273
277
|
So you can commit it, publish it, or hand it to another repo and adopt it in one line
|
|
274
278
|
(`import archprint from './.archprint/eslint.mjs'`). Layer boundaries are the exception: they find your app
|
|
275
279
|
relative to the file, so they only apply where it was generated. It self-ignores `**/.archprint/**`. The
|
|
276
|
-
forbidden-import (AP-) and
|
|
277
|
-
config enforces them too, no extra install.
|
|
280
|
+
forbidden-import (AP-) rules and those structural rules ship as a generated local eslint plugin inside it, so
|
|
281
|
+
wiring the eslint config enforces them too, no extra install.
|
|
278
282
|
- **`.archprint/dependency-cruiser.json`** (when dependency-cruiser is present): one `forbidden` ruleset with the
|
|
279
283
|
mechanical boundaries (public-API deep-import, test-isolation); the review-held ones (layer, role-layering,
|
|
280
|
-
feature-slice, app-isolation, entry-purity, dependency-internals, phantom deps) are added only with
|
|
284
|
+
feature-slice, app-isolation, entry-purity, dependency-internals, phantom deps, server/client) are added only with
|
|
281
285
|
`--include-structural`, after you review them.
|
|
282
286
|
- **A managed section in your `README.md`** summarizing what is enforced now, followed but only reported, held for
|
|
283
287
|
review, and worth adopting (written by `init`, or `generate --readme`), plus a managed `.prettierignore` entry so
|
|
@@ -350,6 +354,11 @@ jobs:
|
|
|
350
354
|
`generate`, and checks only the rules recorded there: the mechanical rules, plus layer boundaries once you adopt
|
|
351
355
|
them with `--include-structural`. Rules adopted in the same
|
|
352
356
|
pull request are listed but never counted against it.
|
|
357
|
+
- **Imports that resolve to nothing are TypeScript's job.** Run `tsc --noEmit` in CI, or rely on the type check
|
|
358
|
+
`next build` runs by default: it reports a missing module (TS2307) with your project's own module resolution.
|
|
359
|
+
Archprint does not generate this rule, and on a TypeScript app `import/no-unresolved` or dependency-cruiser's
|
|
360
|
+
`not-to-unresolvable` tend to report false errors on `paths` aliases, package `exports` and bundler suffixes such
|
|
361
|
+
as `?raw`.
|
|
353
362
|
- **A justified exception needs a reason.** When a file has a real reason to break a rule, record it:
|
|
354
363
|
`npx archprint allow AP-001 app/api/health/route.ts --reason "Health check queries the database directly"`.
|
|
355
364
|
It goes in the `allowed` list of `.archprint/config.json`, `check` stops counting it and lists it with its reason
|
|
@@ -481,8 +490,8 @@ reachability) and knip (dead code); rather than compete, it writes the rules it
|
|
|
481
490
|
fresh repo too), and names the installed tool that will enforce each rule it can write.
|
|
482
491
|
- **`archprint generate [path]`**: writes the auto-trusted mechanical rules to `.archprint/` for the linters your
|
|
483
492
|
repo uses; structural rules are held for review. `--emit <eslint|dependency-cruiser|all>` forces the format,
|
|
484
|
-
`--only <family>` and `--rules <ids>`
|
|
485
|
-
|
|
493
|
+
`--only <family>` and `--rules <ids>` adopt one family or the rules they name (such as `AP-002`, `import-style`
|
|
494
|
+
or the layer rule `no-lib-to-app`) and keep the rules you adopted before, `--check` runs the generated rules against your repo,
|
|
486
495
|
`--readme` adds the README section, `--expand` also writes the per-family files, cards, fixtures and graph, and
|
|
487
496
|
`--rule <id>` emits one reviewed rule. Also `--include-structural`, `--no-graph`, `--out <dir>`, `--fast`.
|
|
488
497
|
- **`archprint check [path]`**: reports the violations of your adopted rules that a change introduces, compared
|
|
@@ -555,8 +564,8 @@ Without dependency-cruiser, each boundary becomes an ESLint rule in `.archprint/
|
|
|
555
564
|
`archprint/no-utils-to-app`, with no extra plugin; with dependency-cruiser, it goes there instead. The rule
|
|
556
565
|
exempts the files that already break the boundary, so your lint stays green, and it catches a new import across
|
|
557
566
|
the boundary, by relative path or alias. `archprint check` reports a new break in a pull request, and
|
|
558
|
-
`archprint allow` records a justified exception. `--rules`
|
|
559
|
-
|
|
567
|
+
`archprint allow` records a justified exception. `--rules` adds the rules it names to the ones you adopted before,
|
|
568
|
+
so you can adopt boundaries one run at a time; a plain `archprint generate` resets to the default rule set. If your CI pins archprint (for example the GitHub Action's `archprint-version`), use 0.13.0
|
|
560
569
|
or later there first. The [rules reference](https://tommkruix.github.io/archprint/rules#layer-boundaries-review)
|
|
561
570
|
says exactly which imports and files the rule reads.
|
|
562
571
|
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { Role } from '../scanner/role-classifier.js';
|
|
2
|
+
import type { AppIsolationGroup } from '../detector/app-isolation-detector.js';
|
|
3
|
+
import type { FeatureSliceGroup } from '../detector/feature-slice-detector.js';
|
|
2
4
|
import type { LayerBoundary } from '../detector/layer-detector.js';
|
|
5
|
+
import type { RoleBoundary } from '../detector/role-layering-detector.js';
|
|
3
6
|
import type { ScannedPattern, ScanResult } from './scan.js';
|
|
4
7
|
/** Where 0.9.0 to 0.11.x kept the adopted rules, before they moved into config.json. */
|
|
5
8
|
export declare const LEGACY_RULES_FILE = "rules.json";
|
|
@@ -28,18 +31,43 @@ export interface PublicApiRule extends RuleBase {
|
|
|
28
31
|
dir: string;
|
|
29
32
|
}
|
|
30
33
|
export interface SingleFamilyRule extends RuleBase {
|
|
31
|
-
family: 'test-isolation' | 'console-isolation' | 'import-style';
|
|
34
|
+
family: 'test-isolation' | 'console-isolation' | 'import-style' | 'phantom-deps' | 'server-client' | 'dependency-hygiene' | 'entry-purity' | 'cycles' | 'env-access' | 'workspace-package-api' | 'stories-isolation' | 'ui-data';
|
|
32
35
|
}
|
|
33
36
|
export interface LayerRule extends RuleBase {
|
|
34
37
|
family: 'layer';
|
|
35
38
|
from: string;
|
|
36
39
|
to: string;
|
|
37
40
|
}
|
|
38
|
-
export
|
|
41
|
+
export interface RoleLayeringRule extends RuleBase {
|
|
42
|
+
family: 'role-layering';
|
|
43
|
+
from: Role;
|
|
44
|
+
to: Role;
|
|
45
|
+
}
|
|
46
|
+
export interface SiblingIsolationRule extends RuleBase {
|
|
47
|
+
family: 'feature-slice' | 'app-isolation';
|
|
48
|
+
container: string;
|
|
49
|
+
}
|
|
50
|
+
export type AdoptedRule = ForbiddenImportRule | PublicApiRule | LayerRule | RoleLayeringRule | SiblingIsolationRule | SingleFamilyRule;
|
|
39
51
|
export declare function forbiddenImportRule(pattern: ScannedPattern, mode: ResolutionMode): AdoptedRule;
|
|
40
52
|
export declare function testIsolationRule(scan: ScanResult): AdoptedRule;
|
|
41
53
|
export declare function consoleIsolationRule(scan: ScanResult): AdoptedRule;
|
|
42
54
|
export declare function importStyleRule(scan: ScanResult): AdoptedRule;
|
|
55
|
+
export declare function phantomDependencyRule(scan: ScanResult): AdoptedRule;
|
|
56
|
+
export declare function serverClientRule(scan: ScanResult): AdoptedRule;
|
|
57
|
+
export declare function dependencyInternalsRule(scan: ScanResult): AdoptedRule;
|
|
58
|
+
export declare function entryPurityRule(scan: ScanResult): AdoptedRule;
|
|
59
|
+
export declare function envAccessRule(scan: ScanResult): AdoptedRule;
|
|
60
|
+
export declare function workspacePackageRule(scan: ScanResult): AdoptedRule;
|
|
61
|
+
export declare function storiesIsolationRule(scan: ScanResult): AdoptedRule;
|
|
62
|
+
export declare function uiDataRule(scan: ScanResult): AdoptedRule;
|
|
63
|
+
export declare function roleLayeringRule(boundary: RoleBoundary): RoleLayeringRule;
|
|
64
|
+
export declare function featureSliceRule(group: FeatureSliceGroup): SiblingIsolationRule;
|
|
65
|
+
export declare function appIsolationRule(group: AppIsolationGroup): SiblingIsolationRule;
|
|
66
|
+
export declare const NO_CYCLES_RULE = "no-cycles";
|
|
67
|
+
/** Whether the code has no cycle and enough files to say so: only then is no-cycles a rule it follows. */
|
|
68
|
+
export declare const isCycleFree: (scan: ScanResult) => boolean;
|
|
69
|
+
/** Adopted only while the code has no cycle: then it is a rule the code already follows. */
|
|
70
|
+
export declare function cycleRule(scan: ScanResult): AdoptedRule;
|
|
43
71
|
export declare function publicApiRules(scan: ScanResult): AdoptedRule[];
|
|
44
72
|
export declare function layerRule(boundary: LayerBoundary): LayerRule;
|
|
45
73
|
export declare const byRuleId: (a: AdoptedRule, b: AdoptedRule) => number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adopted-rules.d.ts","sourceRoot":"","sources":["../../src/cli/adopted-rules.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"adopted-rules.d.ts","sourceRoot":"","sources":["../../src/cli/adopted-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
|
+
import { appIsolationRuleName } from '../generator/app-isolation-emitters.js';
|
|
4
|
+
import { ENV_ACCESS_RULE } from '../generator/env-access-emitters.js';
|
|
5
|
+
import { featureSliceRuleName } from '../generator/feature-slice-emitters.js';
|
|
3
6
|
import { layerRuleName } from '../generator/layer-emitters.js';
|
|
7
|
+
import { DEPENDENCY_INTERNALS_RULE } from '../generator/dependency-internals-emitters.js';
|
|
8
|
+
import { ENTRY_PURITY_RULE } from '../generator/entry-purity-emitters.js';
|
|
9
|
+
import { PHANTOM_DEPENDENCY_RULE } from '../generator/phantom-dependency-emitters.js';
|
|
4
10
|
import { publicApiRuleName } from '../generator/public-api-emitters.js';
|
|
11
|
+
import { roleLayeringRuleName } from '../generator/role-layering-emitters.js';
|
|
12
|
+
import { SERVER_CLIENT_RULE } from '../generator/server-client-emitters.js';
|
|
13
|
+
import { STORIES_ISOLATION_RULE } from '../generator/stories-isolation-emitters.js';
|
|
14
|
+
import { UI_DATA_RULE } from '../generator/ui-data-isolation-emitters.js';
|
|
15
|
+
import { WORKSPACE_PACKAGE_RULE } from '../generator/workspace-package-emitters.js';
|
|
5
16
|
import { configPath, configSection, readConfigSection } from './archprint-config.js';
|
|
6
|
-
import { FAMILY_STATEMENTS } from './rule-statements.js';
|
|
17
|
+
import { appIsolationStatement, boundaryStatement, FAMILY_STATEMENTS, sliceStatement, } from './rule-statements.js';
|
|
7
18
|
/** Where 0.9.0 to 0.11.x kept the adopted rules, before they moved into config.json. */
|
|
8
19
|
export const LEGACY_RULES_FILE = 'rules.json';
|
|
9
20
|
const LEGACY_RULES_FORMAT = 1;
|
|
@@ -54,6 +65,131 @@ export function importStyleRule(scan) {
|
|
|
54
65
|
evidence: evidenceOf(analysis.gate, analysis.relativeImporterCount, analysis.offenderCount),
|
|
55
66
|
};
|
|
56
67
|
}
|
|
68
|
+
export function phantomDependencyRule(scan) {
|
|
69
|
+
const analysis = scan.phantomDependencies;
|
|
70
|
+
return {
|
|
71
|
+
id: PHANTOM_DEPENDENCY_RULE,
|
|
72
|
+
family: 'phantom-deps',
|
|
73
|
+
statement: FAMILY_STATEMENTS['phantom-deps'],
|
|
74
|
+
mode: 'fast',
|
|
75
|
+
evidence: evidenceOf(analysis.gate, analysis.externalImporterCount, analysis.offenderCount),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
export function serverClientRule(scan) {
|
|
79
|
+
const analysis = scan.serverClient;
|
|
80
|
+
return {
|
|
81
|
+
id: SERVER_CLIENT_RULE,
|
|
82
|
+
family: 'server-client',
|
|
83
|
+
statement: FAMILY_STATEMENTS['server-client'],
|
|
84
|
+
mode: 'fast',
|
|
85
|
+
evidence: evidenceOf(analysis.gate, analysis.clientCount, analysis.offenderCount),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export function dependencyInternalsRule(scan) {
|
|
89
|
+
const analysis = scan.dependencyInternals;
|
|
90
|
+
return {
|
|
91
|
+
id: DEPENDENCY_INTERNALS_RULE,
|
|
92
|
+
family: 'dependency-hygiene',
|
|
93
|
+
statement: FAMILY_STATEMENTS['dependency-hygiene'],
|
|
94
|
+
mode: 'fast',
|
|
95
|
+
evidence: evidenceOf(analysis.gate, analysis.externalImporterCount, analysis.offenderCount),
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export function entryPurityRule(scan) {
|
|
99
|
+
const analysis = scan.entryPurity;
|
|
100
|
+
return {
|
|
101
|
+
id: ENTRY_PURITY_RULE,
|
|
102
|
+
family: 'entry-purity',
|
|
103
|
+
statement: FAMILY_STATEMENTS['entry-purity'],
|
|
104
|
+
mode: 'fast',
|
|
105
|
+
evidence: evidenceOf(analysis.gate, analysis.entryCount, analysis.offenderCount),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export function envAccessRule(scan) {
|
|
109
|
+
const analysis = scan.envAccess;
|
|
110
|
+
return {
|
|
111
|
+
id: ENV_ACCESS_RULE,
|
|
112
|
+
family: 'env-access',
|
|
113
|
+
statement: FAMILY_STATEMENTS['env-access'],
|
|
114
|
+
mode: 'fast',
|
|
115
|
+
evidence: evidenceOf(analysis.gate, analysis.subjectFileCount, analysis.offenderCount),
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
export function workspacePackageRule(scan) {
|
|
119
|
+
const analysis = scan.workspacePackageApi;
|
|
120
|
+
return {
|
|
121
|
+
id: WORKSPACE_PACKAGE_RULE,
|
|
122
|
+
family: 'workspace-package-api',
|
|
123
|
+
statement: FAMILY_STATEMENTS['workspace-package-api'],
|
|
124
|
+
mode: 'fast',
|
|
125
|
+
evidence: evidenceOf(analysis.gate, analysis.consumerCount, analysis.offenderCount),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
export function storiesIsolationRule(scan) {
|
|
129
|
+
const analysis = scan.storiesIsolation;
|
|
130
|
+
return {
|
|
131
|
+
id: STORIES_ISOLATION_RULE,
|
|
132
|
+
family: 'stories-isolation',
|
|
133
|
+
statement: FAMILY_STATEMENTS['stories-isolation'],
|
|
134
|
+
mode: 'fast',
|
|
135
|
+
evidence: evidenceOf(analysis.gate, analysis.storyCount, analysis.offenderCount),
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
export function uiDataRule(scan) {
|
|
139
|
+
const analysis = scan.uiDataIsolation;
|
|
140
|
+
return {
|
|
141
|
+
id: UI_DATA_RULE,
|
|
142
|
+
family: 'ui-data',
|
|
143
|
+
statement: FAMILY_STATEMENTS['ui-data'],
|
|
144
|
+
mode: 'fast',
|
|
145
|
+
evidence: evidenceOf(analysis.gate, analysis.componentCount, analysis.offenderCount),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
export function roleLayeringRule(boundary) {
|
|
149
|
+
return {
|
|
150
|
+
id: roleLayeringRuleName(boundary.from, boundary.to),
|
|
151
|
+
family: 'role-layering',
|
|
152
|
+
from: boundary.from,
|
|
153
|
+
to: boundary.to,
|
|
154
|
+
statement: boundaryStatement(boundary.from, boundary.to),
|
|
155
|
+
mode: 'fast',
|
|
156
|
+
evidence: evidenceOf(boundary.gate, boundary.roleFileCount, boundary.violatingFileCount),
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
export function featureSliceRule(group) {
|
|
160
|
+
return {
|
|
161
|
+
id: featureSliceRuleName(group.container),
|
|
162
|
+
family: 'feature-slice',
|
|
163
|
+
container: group.container,
|
|
164
|
+
statement: sliceStatement(group.container),
|
|
165
|
+
mode: 'fast',
|
|
166
|
+
evidence: evidenceOf(group.gate, group.sliceFileCount, group.crossImporterCount),
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
export function appIsolationRule(group) {
|
|
170
|
+
return {
|
|
171
|
+
id: appIsolationRuleName(group.container),
|
|
172
|
+
family: 'app-isolation',
|
|
173
|
+
container: group.container,
|
|
174
|
+
statement: appIsolationStatement(group.container),
|
|
175
|
+
mode: 'fast',
|
|
176
|
+
evidence: evidenceOf(group.gate, group.appFileCount, group.crossImporterCount),
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
export const NO_CYCLES_RULE = 'no-cycles';
|
|
180
|
+
/** Whether the code has no cycle and enough files to say so: only then is no-cycles a rule it follows. */
|
|
181
|
+
export const isCycleFree = (scan) => scan.cycles.cycles.length === 0 && scan.cycles.gate.status === 'AUTO';
|
|
182
|
+
/** Adopted only while the code has no cycle: then it is a rule the code already follows. */
|
|
183
|
+
export function cycleRule(scan) {
|
|
184
|
+
const analysis = scan.cycles;
|
|
185
|
+
return {
|
|
186
|
+
id: NO_CYCLES_RULE,
|
|
187
|
+
family: 'cycles',
|
|
188
|
+
statement: FAMILY_STATEMENTS.cycles,
|
|
189
|
+
mode: 'fast',
|
|
190
|
+
evidence: evidenceOf(analysis.gate, analysis.fileCount, analysis.filesInCycles),
|
|
191
|
+
};
|
|
192
|
+
}
|
|
57
193
|
export function publicApiRules(scan) {
|
|
58
194
|
return scan.publicApi.groups
|
|
59
195
|
.filter((group) => group.gate.status === 'AUTO')
|
|
@@ -84,9 +220,21 @@ const FAMILIES = new Set([
|
|
|
84
220
|
'forbidden-imports',
|
|
85
221
|
'public-api',
|
|
86
222
|
'layer',
|
|
223
|
+
'phantom-deps',
|
|
224
|
+
'server-client',
|
|
225
|
+
'dependency-hygiene',
|
|
226
|
+
'entry-purity',
|
|
227
|
+
'cycles',
|
|
87
228
|
'test-isolation',
|
|
88
229
|
'console-isolation',
|
|
89
230
|
'import-style',
|
|
231
|
+
'env-access',
|
|
232
|
+
'workspace-package-api',
|
|
233
|
+
'stories-isolation',
|
|
234
|
+
'ui-data',
|
|
235
|
+
'role-layering',
|
|
236
|
+
'feature-slice',
|
|
237
|
+
'app-isolation',
|
|
90
238
|
]);
|
|
91
239
|
const MAX_PATTERN_LENGTH = 200;
|
|
92
240
|
const PATTERN_FLAGS = /^[imsu]*$/;
|
|
@@ -127,10 +275,14 @@ function validateRule(rule, file) {
|
|
|
127
275
|
if (candidate.family === 'public-api' && typeof candidate.dir !== 'string') {
|
|
128
276
|
return invalid(`rule ${candidate.id} has no directory`);
|
|
129
277
|
}
|
|
130
|
-
if (candidate.family === 'layer' &&
|
|
278
|
+
if ((candidate.family === 'layer' || candidate.family === 'role-layering') &&
|
|
131
279
|
(typeof candidate.from !== 'string' || typeof candidate.to !== 'string')) {
|
|
132
280
|
return invalid(`rule ${candidate.id} has no layers`);
|
|
133
281
|
}
|
|
282
|
+
if ((candidate.family === 'feature-slice' || candidate.family === 'app-isolation') &&
|
|
283
|
+
typeof candidate.container !== 'string') {
|
|
284
|
+
return invalid(`rule ${candidate.id} has no directory`);
|
|
285
|
+
}
|
|
134
286
|
return rule;
|
|
135
287
|
}
|
|
136
288
|
function parseRuleList(rules, file) {
|
|
@@ -175,7 +327,11 @@ export function ruleDefinitionKey(rule) {
|
|
|
175
327
|
case 'public-api':
|
|
176
328
|
return JSON.stringify([...common, rule.dir]);
|
|
177
329
|
case 'layer':
|
|
330
|
+
case 'role-layering':
|
|
178
331
|
return JSON.stringify([...common, rule.from, rule.to]);
|
|
332
|
+
case 'feature-slice':
|
|
333
|
+
case 'app-isolation':
|
|
334
|
+
return JSON.stringify([...common, rule.container]);
|
|
179
335
|
default:
|
|
180
336
|
return JSON.stringify(common);
|
|
181
337
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adopted-rules.js","sourceRoot":"","sources":["../../src/cli/adopted-rules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adopted-rules.js","sourceRoot":"","sources":["../../src/cli/adopted-rules.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/allow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allow.d.ts","sourceRoot":"","sources":["../../src/cli/allow.ts"],"names":[],"mappings":"AAaA,qBAAa,UAAW,SAAQ,KAAK;CAAG;AAExC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"allow.d.ts","sourceRoot":"","sources":["../../src/cli/allow.ts"],"names":[],"mappings":"AAaA,qBAAa,UAAW,SAAQ,KAAK;CAAG;AAExC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA0BD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAgDtD"}
|
package/dist/cli/allow.js
CHANGED
|
@@ -7,7 +7,24 @@ import { readConfig } from './archprint-config.js';
|
|
|
7
7
|
import { evaluateRules } from './check-evaluate.js';
|
|
8
8
|
export class AllowError extends Error {
|
|
9
9
|
}
|
|
10
|
-
const
|
|
10
|
+
const GENERATED_FOR_EITHER_ENFORCER = new Set([
|
|
11
|
+
'layer',
|
|
12
|
+
'phantom-deps',
|
|
13
|
+
'server-client',
|
|
14
|
+
]);
|
|
15
|
+
/** Families whose generated dependency-cruiser rules do not read the allowed list. */
|
|
16
|
+
const UNEXEMPTED_BY_GENERATE = new Set([
|
|
17
|
+
'public-api',
|
|
18
|
+
'role-layering',
|
|
19
|
+
'feature-slice',
|
|
20
|
+
'app-isolation',
|
|
21
|
+
'stories-isolation',
|
|
22
|
+
'ui-data',
|
|
23
|
+
]);
|
|
24
|
+
/** What to run so the generated rules follow the change; nothing when regenerating would not change them. */
|
|
25
|
+
const regenerateHint = (rule) => rule.family === 'cycles' || UNEXEMPTED_BY_GENERATE.has(rule.family)
|
|
26
|
+
? ''
|
|
27
|
+
: ` Run archprint generate to update the ${GENERATED_FOR_EITHER_ENFORCER.has(rule.family) ? 'generated' : 'ESLint'} rules.`;
|
|
11
28
|
const toPosix = (value) => value.split(path.sep).join('/');
|
|
12
29
|
export function runAllow(options) {
|
|
13
30
|
const outDir = path.resolve(options.cwd, options.out);
|
|
@@ -39,7 +56,7 @@ export function runAllow(options) {
|
|
|
39
56
|
throw new AllowError(`There is no allowed exception for ${rule.id} in ${file}.`);
|
|
40
57
|
}
|
|
41
58
|
writeAllowed(outDir, others);
|
|
42
|
-
return `Removed the exception for ${rule.id} in ${file}
|
|
59
|
+
return `Removed the exception for ${rule.id} in ${file}.${regenerateHint(rule)}`;
|
|
43
60
|
}
|
|
44
61
|
const reason = options.reason?.trim() ?? '';
|
|
45
62
|
if (reason === '') {
|
|
@@ -51,9 +68,9 @@ export function runAllow(options) {
|
|
|
51
68
|
}
|
|
52
69
|
const entry = { rule: rule.id, file, reason };
|
|
53
70
|
writeAllowed(outDir, [...others, entry]);
|
|
54
|
-
const lint = rule.family
|
|
71
|
+
const lint = UNEXEMPTED_BY_GENERATE.has(rule.family)
|
|
55
72
|
? ' dependency-cruiser does not read this list, so add the exception there too if you use it.'
|
|
56
|
-
:
|
|
73
|
+
: regenerateHint(rule);
|
|
57
74
|
return `Allowed ${rule.id} in ${file}. archprint check accepts it now.${lint}`;
|
|
58
75
|
}
|
|
59
76
|
//# sourceMappingURL=allow.js.map
|
package/dist/cli/allow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allow.js","sourceRoot":"","sources":["../../src/cli/allow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAoB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EACL,QAAQ,EACR,WAAW,EACX,YAAY,GAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,OAAO,UAAW,SAAQ,KAAK;CAAG;AAWxC,MAAM,cAAc,GAAG,CAAC,IAAiB,EAAU,EAAE,CACnD,
|
|
1
|
+
{"version":3,"file":"allow.js","sourceRoot":"","sources":["../../src/cli/allow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allowed-evidence.d.ts","sourceRoot":"","sources":["../../src/cli/allowed-evidence.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"allowed-evidence.d.ts","sourceRoot":"","sources":["../../src/cli/allowed-evidence.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,KAAK,aAAa,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;AAoK5D,gHAAgH;AAChH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAU/D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,UAAU,CAuKnF"}
|