| ci(deps): bump the all-versions-of-actions group with 4 updates (#1094) | 15 天前 |
| chore(ci): makes husky config husky@9.x compliant | 2 年前 |
| feat(baseline): renames baseline-mode 'view' to 'format' & sorts the baseline on write - it's more correct while still useful. "view" will be added to the regular output & reporters - consistenlty sorting makes comparing & diffs easier to do (+ it will sort stuff manually added to the baseline) | 12 天前 |
| chore: replaces eslint with oxlint (#1074) ## Description - replaces eslint with oxlint - fixes some (now) low-hanging fruit ## Motivation and Context Simplify my life. ## How Has This Been Tested? - [x] green ci ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] Documentation only change - [ ] Refactor (non-breaking change which fixes an issue without changing functionality) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Chore (thing that needs doing for hygiene purposes) | 1 个月前 |
| 18.5.0 | 10 小时前 |
| 18.5.0 | 10 小时前 |
| 18.5.0 | 10 小时前 |
| feat(extract/tsc): adds support for imports inside module and namespace blocks (#1095) # Detect imports in ambient TypeScript declarations ## Description - Adds opt-in `detectImportsInAmbientModules` to detect imports, re-exports, c.s. inside ambient modules and namespaces, including nested and qualified namespaces. - Keeps the option disabled by default; enabling it selects the TypeScript parser. - Wires the option through config normalization, schemas, types, generated configs, initialization prompts, summarization and cache compatibility. - Bumps cache format version to prevent stale caches from hiding the option’s effect. - :tent: side-catch: Handle TypeScript ASTs with missing statements and - :tent: side-catch: use the built-in `dot-webpage` reporter in generated graph scripts. - :tent: side-catch: exclude some hard-to cover branches that only exist for robustness (e.g. `doThing (someUsuallyExistingArray ||[])` in a helper) from coverage ## Motivation and Context Imports inside ambient declarations were not included in dependency analysis. This adds a configurable way to detect them while preserving existing behavior by default. TypeScript must be installed to enable detection. ## How Has This Been Tested? - [x] Green CI - [x] Additional automated non-regression tests - [x] Adapted existing test fixtures ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] Documentation only change - [ ] Refactor (non-breaking change which fixes an issue without changing functionality) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) | 10 小时前 |
| 18.5.0 | 10 小时前 |
| 18.5.0 | 10 小时前 |
| feat: adds option to make stale entries in the baseline a non-zero-exit-code type of offence (#1100) ## Description - adds option to make stale entries in the baseline a non-zero-exit-code type of offence - to that end: - adds a `staleEntriesSeverity` configuration attribute to the `baseline` configuration that, when set to `error` will take stale entries in the baseline into account for determining the exit code. - adds an `advisedExitCode` attribute to the summary model that combines the number of regular violations of severity `error` as well as the number of stale entries in the baseline into account. - makes all reporters that emit non-zero exit codes based on error code listen to the `advisedExitCode` (these reporters are `err`, `err-long`, `null`, `azure-devops` and `teamcity`). ## Motivation and Context #1080, #1078 ## How Has This Been Tested? - [x] green ci - [x] updated as well as new automated non-regression tests ## Screenshots With this in the config (`.dependency-cruiser.mjs` in my case) ... ```javascript // ... options: { // ... baseline: { staleEntriesSeverity: "error" } } // ... ``` ... running the cruise with --ignore-known will - print an error message (it'll be a warning message in other cases) - exit with a non-zero exit code ```text $ dependency-cruiser.mjs src bin test configs types tools --ignore-known ✔ no dependency violations found (573 modules, 1614 dependencies cruised) ‼ 26 known violations ignored. Run with --no-ignore-known to see them. x 2 stale known violations in the baseline. Run with '--baseline --baseline-mode shrink-only' to remove them. $ echo $? 2 ``` ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] Documentation only change - [ ] Refactor (non-breaking change which fixes an issue without changing functionality) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) | 11 天前 |
| feat(cli): adds --baseline option (with same functionality as depcruise-baseline command) (#1084) ## Description - adds --baseline option (with same functionality as depcruise-baseline command) - simplifies the depcruise-baseline command code to call dependency-cruiser --baseline - updates documentation accordingly ## Motivation and Context Making it an option of the main command seems to prudent way to do it. ## How Has This Been Tested? - [x] green ci - [x] additional automated non-regression tests | 24 天前 |
| feat(extract/tsc): adds support for imports inside module and namespace blocks (#1095) # Detect imports in ambient TypeScript declarations ## Description - Adds opt-in `detectImportsInAmbientModules` to detect imports, re-exports, c.s. inside ambient modules and namespaces, including nested and qualified namespaces. - Keeps the option disabled by default; enabling it selects the TypeScript parser. - Wires the option through config normalization, schemas, types, generated configs, initialization prompts, summarization and cache compatibility. - Bumps cache format version to prevent stale caches from hiding the option’s effect. - :tent: side-catch: Handle TypeScript ASTs with missing statements and - :tent: side-catch: use the built-in `dot-webpage` reporter in generated graph scripts. - :tent: side-catch: exclude some hard-to cover branches that only exist for robustness (e.g. `doThing (someUsuallyExistingArray ||[])` in a helper) from coverage ## Motivation and Context Imports inside ambient declarations were not included in dependency analysis. This adds a configurable way to detect them while preserving existing behavior by default. TypeScript must be installed to enable detection. ## How Has This Been Tested? - [x] Green CI - [x] Additional automated non-regression tests - [x] Adapted existing test fixtures ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] Documentation only change - [ ] Refactor (non-breaking change which fixes an issue without changing functionality) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) | 10 小时前 |
| chore: tree-shakes and minifies the generated ajv validators also removes the src/schema/*.schema.mjs as they're not used for anything anymore | 9 个月前 |
| chore: updates copilot instructions | 3 个月前 |
| build(npm): updates external dependencies Up'em just updated these outdated dependencies in package.json: @swc/core 1.15.43 -> 1.15.46 devDependencies (policy: latest) @types/node 26.1.1 -> 26.1.2 devDependencies (policy: latest) @typescript-eslint/eslint-plugin 8.63.0 -> 8.65.0 devDependencies (policy: latest) @typescript-eslint/parser 8.63.0 -> 8.65.0 devDependencies (policy: latest) @vue/compiler-sfc 3.5.39 -> 3.5.40 devDependencies (policy: latest) acorn 8.17.0 -> 8.18.0 dependencies (policy: latest) c8 11.0.0 -> 12.0.0 devDependencies (policy: latest) enhanced-resolve 5.24.2 -> 5.24.4 dependencies (policy: latest) globals 17.7.0 -> 17.8.0 devDependencies (policy: latest) lint-staged 17.0.8 -> 17.2.0 devDependencies (policy: latest) npm-run-all2 9.0.2 -> 9.0.3 devDependencies (policy: latest) prettier 3.9.5 -> 3.9.6 devDependencies (policy: latest) svelte 5.56.4 -> 5.56.8 devDependencies (policy: latest) upem 11.0.0 -> 11.0.1 devDependencies (policy: latest) Up'em found these packages were outdated, but did not update them because of policies: @babel/core 7.29.7 devDependencies (policy: wanted) @babel/plugin-transform-modules-commonjs 7.29.7 devDependencies (policy: wanted) @babel/preset-typescript 7.29.7 devDependencies (policy: wanted) @eslint/js 9.39.5 devDependencies (policy: wanted) eslint 9.39.5 devDependencies (policy: wanted) eslint-plugin-budapestian 6.0.0 devDependencies (policy: wanted) eslint-plugin-mocha 10.5.0 devDependencies (policy: wanted) eslint-plugin-n 17.24.0 devDependencies (policy: wanted) eslint-plugin-unicorn 56.0.1 devDependencies (policy: wanted) symlink-dir 7.1.0 devDependencies (policy: wanted) typescript 6.0.3 devDependencies (policy: wanted) | 2 个月前 |
| chore: replaces eslint with oxlint (#1074) ## Description - replaces eslint with oxlint - fixes some (now) low-hanging fruit ## Motivation and Context Simplify my life. ## How Has This Been Tested? - [x] green ci ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] Documentation only change - [ ] Refactor (non-breaking change which fixes an issue without changing functionality) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Chore (thing that needs doing for hygiene purposes) | 1 个月前 |
| chore: adds .mailmap | 4 年前 |
| feat: adds environment inconsistency checks (starting with typescript and babel) (#1070) ## Description - adds environment inconsistency checks (e.g. there's a tsconfig, but there's no typescript transpiler installed we can use to handle it) and emit warnings when they're hit. Warnings shipping with this PR regard inconsistencies with - typescript - babel - swc - available in the _error_ reporter (which is the default and hence likely the most often used one) and the _json_ reporter. Other reporters will probably follow in later PR's. ## Motivation and Context See #1048, #1069 - There's a trend to run a type-skipping transpilers on typescript code (e.g. esbuild or maybe node.js rudimentary typescript support), without a type-checking transpiler (microsoft's typescript) installed. Currently dependency-cruiser is silent about it, which leads to confusion, - TypeScript 7.0 just shipped _without_ an API, so we cannot support that yet - the first issue on it is already in, and I expect more. If dependency-cruiser already tells what the issue is, that should limit the confusion (and save users having to raise an issue, and me answering them). ## How Has This Been Tested? - [x] green ci - [x] additional non-regression tests ## Screenshots <img width="929" height="326" alt="image" src="https://github.com/user-attachments/assets/79ab00a5-ee03-4c03-b07b-d4e15ae737bb" /> ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] Documentation only change - [ ] Refactor (non-breaking change which fixes an issue without changing functionality) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] AI was used to write some of the code ## Checklist - [x] :book: - My change doesn't require a documentation update, or ... - it _does_ and I have updated it - [x] :balance_scale: - The contribution will be subject to [The MIT license](https://github.com/sverweij/dependency-cruiser/blob/main/LICENSE), and I'm OK with that. - The contribution is my own original work. - I am ok with the stuff in [**CONTRIBUTING.md**](https://github.com/sverweij/dependency-cruiser/blob/main/.github/CONTRIBUTING.md). | 2 个月前 |
| chore(npm): sets ignore-scripts on ci but remove it from npmrc because otherwise the 'version' script doesn't work anymore ¯\_(ツ)_/¯ | 4 个月前 |
| build(npm): updates external dependencies Up'em just updated these outdated dependencies in package.json: @swc/core 1.15.47 -> 1.16.2 devDependencies (policy: latest) @types/node 26.2.0 -> 26.4.1 devDependencies (policy: latest) @vue/compiler-sfc 3.5.41 -> 3.5.42 devDependencies (policy: latest) ignore 7.0.6 -> 7.0.8 dependencies (policy: latest) lint-staged 17.3.0 -> 17.4.1 devDependencies (policy: latest) mocha 11.8.0 -> 12.0.0 devDependencies (policy: latest) oxlint 1.78.0 -> 1.81.0 devDependencies (policy: latest) picomatch 4.0.5 -> 4.0.7 dependencies (policy: latest) svelte 5.56.8 -> 5.57.0 devDependencies (policy: latest) svgo 4.0.2 -> 4.1.0 devDependencies (policy: latest) Up'em found these packages were outdated, but did not update them because of policies: @babel/core 7.29.7 devDependencies (policy: wanted) @babel/plugin-transform-modules-commonjs 7.29.7 devDependencies (policy: wanted) @babel/preset-typescript 7.29.7 devDependencies (policy: wanted) symlink-dir 7.1.0 devDependencies (policy: wanted) typescript 6.0.3 devDependencies (policy: wanted) | 26 天前 |
| perf(main|schema|tools): pre-compiles json schemas at build time - removes ajv as a runtime dependency (#1029) ## Description - pre-compiles json schemas at build time - removes ajv as a runtime dependency ## Motivation and Context - Pre-compiling at build time makes validating against the schema ~10x faster going from 60ms to 6ms on dc's self-run - It also does away with the need for ajv as a run-time dependency, saving >~1Mb of dependency-cruiser's installed weight. Granted; it adds a total of 560k in validation functions, but that's _still_ smaller than the ajv dependencies and its transitives. ## How Has This Been Tested? - [x] green ci ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] Documentation only change - [x] Refactor (non-breaking change which fixes an issue without changing functionality) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) | 9 个月前 |
| chore: makes yarn --silent by default | 3 年前 |
| doc(changelog): adds a CHANGELOG.md file (#350) for now just points at the existing changelog on GitHub to improve discoverability of the actual changelog | 6 年前 |
| chore: change e-mail address away from yandex preventative measure: https://edition.cnn.com/2022/03/04/tech/yandex-russia-internet-warning/index.html | 4 年前 |
| chore(LICENSE): 2026 | 8 个月前 |
| chore(tools): uses node permission model prevents tool calls from writing stuff in unexpected places - which some sast scanners can flag, while there isn't any harm. trying the node permssion model was a good learning experience, though | 1 个月前 |
| feat(report/err-html): adds baseline stale count and table (#1099) ## Description - adds baseline stale count and table to the `err-html` reporter - 🏕️ side-catch: updates type annotations in the err-html reporter code - 🏕️ side-catch: fixes a spelling error in the root README ## Motivation and Context See #1080 ## How Has This Been Tested? - [x] green ci - [x] additional automated non-regression test | 11 天前 |
| doc: corrects typos | 4 个月前 |
| 18.5.0 | 10 小时前 |
| 18.5.0 | 10 小时前 |