rev-dep 2.8.0 → 2.9.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 (2) hide show
  1. package/Readme.md +30 -8
  2. package/package.json +4 -4
package/Readme.md CHANGED
@@ -78,6 +78,7 @@ Available checks:
78
78
  - `unresolvedImportsDetection` - detect unresolved import requests.
79
79
  - `circularImportsDetection` - detect circular imports.
80
80
  - `devDepsUsageOnProdDetection` - detect dev dependencies used in production code.
81
+ - `restrictedImportsDetection` - block importing denied files/modules from selected entry points.
81
82
 
82
83
  ### Exploratory analysis (CLI-based) 🔍
83
84
 
@@ -168,6 +169,7 @@ Available checks are:
168
169
  - `unresolvedImportsDetection` - detect unresolved import requests.
169
170
  - `circularImportsDetection` - detect circular imports.
170
171
  - `devDepsUsageOnProdDetection` - detect dev dependencies used in production code.
172
+ - `restrictedImportsDetection` - block importing denied files/modules from selected entry points.
171
173
 
172
174
  Checks are grouped in rules. You can have multiple rules, eg. for each monorepo package.
173
175
 
@@ -213,8 +215,8 @@ The configuration file (`rev-dep.config.json(c)` or `.rev-dep.config.json(c)`) a
213
215
 
214
216
  ```jsonc
215
217
  {
216
- "configVersion": "1.4",
217
- "$schema": "https://github.com/jayu/rev-dep/blob/master/config-schema/1.4.schema.json?raw=true",
218
+ "configVersion": "1.5",
219
+ "$schema": "https://github.com/jayu/rev-dep/blob/master/config-schema/1.5.schema.json?raw=true",
218
220
  "rules": [
219
221
  {
220
222
  "path": ".",
@@ -236,7 +238,8 @@ The configuration file (`rev-dep.config.json(c)` or `.rev-dep.config.json(c)`) a
236
238
  },
237
239
  "devDepsUsageOnProdDetection": {
238
240
  "enabled": true,
239
- "prodEntryPoints": ["src/main.tsx", "src/pages/**/*.tsx"]
241
+ "prodEntryPoints": ["src/main.tsx", "src/pages/**/*.tsx"],
242
+ "ignoreTypeImports": true
240
243
  }
241
244
  }
242
245
  ]
@@ -249,8 +252,8 @@ Here's a comprehensive example showing all available properties:
249
252
 
250
253
  ```jsonc
251
254
  {
252
- "configVersion": "1.4",
253
- "$schema": "https://github.com/jayu/rev-dep/blob/master/config-schema/1.4.schema.json?raw=true", // enables json autocompletion
255
+ "configVersion": "1.5",
256
+ "$schema": "https://github.com/jayu/rev-dep/blob/master/config-schema/1.5.schema.json?raw=true", // enables json autocompletion
254
257
  "conditionNames": ["import", "default"],
255
258
  "ignoreFiles": ["**/*.test.*"],
256
259
  "rules": [
@@ -332,7 +335,16 @@ Here's a comprehensive example showing all available properties:
332
335
  },
333
336
  "devDepsUsageOnProdDetection": {
334
337
  "enabled": true,
335
- "prodEntryPoints": ["src/main.tsx", "src/pages/**/*.tsx", "src/server.ts"]
338
+ "prodEntryPoints": ["src/main.tsx", "src/pages/**/*.tsx", "src/server.ts"],
339
+ "ignoreTypeImports": true
340
+ },
341
+ "restrictedImportsDetection": {
342
+ "enabled": true,
343
+ "entryPoints": ["src/server.ts", "src/server/**/*.ts"],
344
+ "denyFiles": ["**/*.tsx"],
345
+ "denyModules": ["react", "react-*"],
346
+ "ignoreMatches": ["src/server/allowed-view.tsx", "react-awsome-lib"],
347
+ "ignoreTypeImports": true
336
348
  }
337
349
  }
338
350
  ]
@@ -361,6 +373,7 @@ Each rule can contain the following properties:
361
373
  - **`unusedExportsDetection`** (optional): Unused exports detection configuration
362
374
  - **`unresolvedImportsDetection`** (optional): Unresolved imports detection configuration
363
375
  - **`devDepsUsageOnProdDetection`** (optional): Restricted dev dependencies usage detection configuration
376
+ - **`restrictedImportsDetection`** (optional): Restrict importing denied files/modules from selected entry points
364
377
  - **`importConventions`** (optional): Array of import convention rules
365
378
 
366
379
  #### Module Boundary Properties
@@ -420,6 +433,15 @@ Each rule can contain the following properties:
420
433
  **DevDepsUsageOnProd:**
421
434
  - **`enabled`** (required): Enable/disable restricted dev dependencies usage detection
422
435
  - **`prodEntryPoints`** (optional): Production entry point patterns to trace dependencies from (eg. ["src/pages/**/*.tsx", "src/main.tsx"])
436
+ - **`ignoreTypeImports`** (optional): Exclude type-only imports from graph traversal and module matching (default: false)
437
+
438
+ **RestrictedImportsDetection:**
439
+ - **`enabled`** (required): Enable/disable restricted imports detection
440
+ - **`entryPoints`** (required when enabled): Entry point patterns used to build reachable dependency graph
441
+ - **`denyFiles`** (optional): Denied file path patterns (eg. ["**/*.tsx"])
442
+ - **`denyModules`** (optional): Denied module patterns (eg. ["react", "react-*"])
443
+ - **`ignoreMatches`** (optional): File/module patterns to suppress from restricted import results
444
+ - **`ignoreTypeImports`** (optional): Exclude type-only imports from traversal (default: false)
423
445
 
424
446
  ### Performance Benefits
425
447
 
@@ -658,7 +680,7 @@ When `devDepsUsageOnProdDetection` is enabled in your config, rev-dep will:
658
680
  ```
659
681
 
660
682
  **Important Notes:**
661
- - Type-only imports (e.g., `import type { ReactNode } from 'react'`) are automatically ignored
683
+ - Type-only imports (e.g., `import type { ReactNode } from 'react'`) are ignored when `ignoreTypeImports` is enabled
662
684
  - Only dependencies from `devDependencies` in package.json are flagged
663
685
  - Production dependencies from `dependencies` are allowed
664
686
  - Helps prevent runtime failures in production builds
@@ -722,7 +744,7 @@ Execute all checks defined in (.)rev-dep.config.json(c)
722
744
 
723
745
  #### Synopsis
724
746
 
725
- Process (.)rev-dep.config.json(c) and execute all enabled checks (circular imports, orphan files, module boundaries, node modules) per rule.
747
+ Process (.)rev-dep.config.json(c) and execute all enabled checks (circular imports, orphan files, module boundaries, import conventions, node modules, unused exports, unresolved imports, restricted imports and restricted dev deps usage) per rule.
726
748
 
727
749
  ```
728
750
  rev-dep config run [flags]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rev-dep",
3
- "version": "2.8.0",
3
+ "version": "2.9.0",
4
4
  "description": "Trace imports, detect unused code, clean dependencies — all with a super-fast CLI",
5
5
  "bin": "bin.js",
6
6
  "files": [
@@ -17,9 +17,9 @@
17
17
  "node": ">=18"
18
18
  },
19
19
  "optionalDependencies": {
20
- "@rev-dep/darwin-arm64": "2.8.0",
21
- "@rev-dep/linux-x64": "2.8.0",
22
- "@rev-dep/win32-x64": "2.8.0"
20
+ "@rev-dep/darwin-arm64": "2.9.0",
21
+ "@rev-dep/linux-x64": "2.9.0",
22
+ "@rev-dep/win32-x64": "2.9.0"
23
23
  },
24
24
  "keywords": [
25
25
  "dependency-analysis",