New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue: Allowed rule to force use of aliased-tsconfig import #863
Comments
Hi @throrin19 thanks for asking, and sorry for the cryptic error message! It'd been more clear to have it say something like attribute 'severity' doesn't exist in statements within the 'allowed' rule, to specify the severity of the allowed rule, use In general the // ...
{
forbidden: [
{
"name": "imports-from-libs-with-aliases-only",
// (French grammar police will be surrounding my house soon, probably, but ...)
"comment": "importer depuis des /libs ? Utilisez un alias des tsconfig-paths (`@module/`) !",
"severity": "error",
"from": {
},
"to": {
"path": "^lib/",
"dependencyTypesNot": ["aliased-tsconfig"]
}
},
// ... other rules
],
// ...
} To achieve something similar with the 'allowed' rule is more complicated as every statement in that rule should evaluate to true to pass. So this might look like a promising start: {
allowed: [
{
// (French grammar police will be surrounding my house soon, probably, but ...)
"comment": "importer depuis des /libs ? Utilisez un alias des tsconfig-paths (`@module/`) !",
"from": {
},
"to": {
"path": "^lib/",
"dependencyTypes": ["aliased-tsconfig"]
}
},
],
allowedSeverity: "error"
} However this means that the only dependencies that are allowed are those that are aliased, and go to ^libs. This would exclude dependencies to core or npm modules. Or dependencies within the ^apps/ folder , ... So we need to have an extra statement to disclaim that. {
allowed: [
{
"from": {
},
"to": {
"path": "^lib/",
"dependencyTypes": ["aliased-tsconfig"]
}
},
{
"from": {
},
"to": {
"pathNot": "^lib/",
}
}
],
allowedSeverity: "error"
} This can quickly spiral out of control. I.e. now it's not possible to have an import like Anyway: thanks for this question!! It made me realize the documentation needs a clarification section. I hope the explanation above already helps a bit. |
Thank you for your feedback and explanations. I understand better the use of Allowed and indeed I had misunderstood its use. |
Sorry for the reopen. After test of this forbidden rule, I have a problem : All call inside one library are in error because I use relative path instead of alias (It's normal, we are inside the same library). How to avoid this errors ? For example, If I'm in
In documentation I found we can link |
Hi @throrin19 I should've included in my example yesterday. A way I use to solve this is to have two rules:
so, like this: // ...
{
forbidden: [
{
"name": "imports-from-outside-libs-with-aliases-only",
"severity": "error",
"from": {
"pathNot": "^lib/",
},
"to": {
"path": "^lib/",
"dependencyTypesNot": ["aliased-tsconfig"]
}
},
{
"name": "imports-from-other-libs-with-aliases-only",
"severity": "error",
"from": {
"path": "(^lib/[^/]+/)", // if this matches e.g. lib/livres/src/quelquechose.ts ...
},
"to": {
"path": "^lib/",
"pathNot": "$1", // ...then this matches lib/livres, ensuring the rule doesn't apply to lib/livres itself.
"dependencyTypesNot": ["aliased-tsconfig"]
}
},
// ... other rules
],
// ...
}
|
Thanks @sverweij but I have problems for specific checks
|
So |
If we want to call another lib, whether we're in the |
## Description - adds explicit detection of modules aliased via [workspaces](https://docs.npmjs.com/cli/v10/using-npm/workspaces) - introduces the `aliased-workspace` dependency type ## Motivation and Context Imports from workspaces have been well-supported in dependency-cruiser since the stone age. Not by brilliant foresight, but because it plugs into the regular node.js module resolution - workspaces are symlinks in node_modules sorta automatically linked to local folders. Dependency-cruiser didn't explicitly name them as separate dependency-types (instead slotting them into dependency type 'local' or 'npm-no-pkg' (when `npm i` wasn't run on the folder yet)). This PR corrects that oversight. This PR also fixes a bug uncovered by @throrin19: workspace imports were erroneously classified as tsconfig aliases (see #863 for details). ## How Has This Been Tested? - [x] green ci - [x] additional unit tests - [x] additional integration test ## 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)
Hi @throrin19 you found a bug, thanks for letting me know! After some detective work it turned out that workspace paths in quite a few cases were erroneously classified as Let me know if it indeed fixed the issue for you as well!
|
Unfortunately, If I'm with this forbidden rules :
I have exactly same result as before update dependency-cruiser. I try with For Example I have 2 libraries and one stack :
If I wait to use // outside libs/configuration
import { myConfig } from 'libs/configuration'; // BAD
import { myConfig } from '@company/configuration'; // GOOD
// inside libs/configuration/index.ts
export * from './src/config.ts'; // GOOD |
I believe I am running into a problem similar to above but only using the
I would expect that The dependencies are defined in a single package.json across all projects/libs, so only the root Here's an example of the ones that fail:
If I add
To get around this, I need to add Do you have an idea if this is wrong configuration on my side or is it a bug/feature request? |
Hi @throrin19 thanks for the feedback. Clearly there's still something that doesn't work like it should. To determine what exactly I need a minimal reproduction sample. Luckily @stelescuraul provided one (thanks!!!) and that helped to find the root cause. Next step is to write some extra tests & cook a fix.
|
@throrin19 @stelescuraul there's a quick fix (see above) which I've published as $ npx depcruise projects libs
error no-import-module-from-outside: libs/math/index.js → projects/api/models.js
✘ 1 dependency violations (1 errors, 0 warnings). 5 modules, 5 dependencies cruised. or, graphically: I'll make the fix a bit better & add some non-regression guarantees in the code base before publising it as dependency-cruiser@latest - but would love to hear feedback on this version already! |
Hello @sverweij Thanks for all your works. The fix is a bit violent 😄. Now all my imports (with or without the use of tsconfig aliases) are seen in error. A little clarification I hadn't included: I use aliases for the |
Thanks for the update @sverweij. The graph and aliases are now resolved, but I encounter a small issue. With the beta branch you added, everything works fine But I can't forbid imports using the folder paths directly. For example, in
I have tried adding this rule as well but it still fails:
In the 15.3.0 the above is not allowed and it is covered directly by the rule |
Hi @stelescuraul thanks for testing the beta! You found a bug: in the beta |
Hi @throrin19 thanks for testing as well! Could it be the |
Hi @sverweij. Yes normally it's the same workspaces in {
"workspaces": [
"stacks/*",
"libs/*"
]
} tsconfig alias : {
"paths": {
"@company/configuration": [
"libs/configuration/index.ts"
],
"@company/errors": [
"libs/errors/index.ts"
],
"@company/helper-aws": [
"libs/helper-aws/index.ts"
],
}
} |
Hi @throrin19 and @stelescuraul - yesterday I've released @throrin19 if the 'violence' of beta-1 persists in beta-2 I'll have to write some additional detection logic. Tests I've done so far indicate it's not necessary, but I'm a fallible human being so it's not unthinkable I missed a scenario. Let me know if this is indeed the case! |
Hi @sverweij I try to test this as soon as possible :) |
version |
Thanks for the feedback @stelescuraul! @throrin19 - today I got time to write a thorough integration test and I can still reproduce the issue you have, even with the latest betas. So I'm going to try a different approach. |
Back from the tsconfig resolution rabbit-hole - there's a I'm curious to see whether this also holds up in your environment @throrin19 - if you have a bit of time to test it out I'd be grateful to hear your feedback! |
it changes nothing for me. If I import like this :
it return no error :( |
Hi @throrin19 hmmm does your In 16.0.0-beta-2 I've added a sub-distinction for these two tsconfig alias types:
So if you want that specificity you can use it in your rules. Alternatively you could remove the minimal reproduction repoIn case the issue persists: I've set up a minimal reproduction sample in dependency-cruiser-repro-repo/863. It does seem to properly distinguish tsconfig paths from e.g. workspaces aliases, as well as show whether it's a baseUrl or a paths type of tsconfig. The repo is set up to easily include new test cases in this area - so if it doesn't cover your use case (i.e. the baseUrl turns out to be not the culprit) I'd love to see it!
|
…ng (#882) ## Description - adds ability to match arrays for conditional coloring on the dot reporter's theming ## Motivation and Context So it's possible to add formatting based on array like properties (like `dependencyTypes`) and to have a convenient way to match against multiple criteria at the same time. ## How Has This Been Tested? - [x] green ci - [x] additional automated non-regression tests ## Screenshots E.g. to color based on types of aliased dependency types like this: ![colored-by-dependency-types](https://github.com/sverweij/dependency-cruiser/assets/4822597/3a11cb97-341d-41e4-8774-53331102cbf9) (from the reproduction example for #863 on https://github.com/sverweij/dependency-cruiser-repro-repo/tree/main/863) ... you can use this configuration that uses most features enabled by this PR: ```javascript /** @type {import('dependency-cruiser').IConfiguration} */ module.exports = { options: { doNotFollow: { path: "node_modules" }, moduleSystems: ["es6", "cjs"], tsPreCompilationDeps: true, combinedDependencies: true, tsConfig: { fileName: "tsconfig.json" }, reporterOptions: { dot: { theme: { graph: { rankdir: "TD", splines: "ortho", }, dependencies: [ { // if the dependency type is one of the tsconfig type aliases ... criteria: { dependencyTypes: [ "aliased-tsconfig-", "aliased-tsconfig-base-url", ], }, // ... color the line teal attributes: { color: "blue" }, }, { criteria: { dependencyTypes: ["aliased-workspace"] }, attributes: { color: "purple" }, }, { // if you just want one of the dependency types to match, a string suffices criteria: { dependencyTypes: "aliased-subpath-import" }, attributes: { color: "green" }, }, ], }, }, }, }, }; ``` ## 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) ## Checklist - [x] 📖 - My change doesn't require a documentation update, or ... - it _does_ and I have updated it - [x] ⚖️ - 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).
…REAKING (#867) ## Description - takes 'workspaces' field into account when merging package manifests - same for the 'imports' field - when determining what kind of an alias a thing is use the _parsed_ tsconfig to determine it - adds `alias-tsconfig-base-url` and `alias-tsconfig-paths` dependency types to distinguish between the two types of aliases one can use within tsconfigs. B.t.w. for both dependency-cruiser will keep emitting the `alias` and `alias-tsconfig` dependency types as well - both for convenience and backwards compatibility. This PR is theoretically 🚨 BREAKING as rules previously defined on aliases, that didn't fire now _will_ because they're now detected correctly. ## Motivation and Context Now we're doing explicit things with `workspaces` and `imports` fields we need to have them in merged package manifests as well, so in monorepos we still take them into account. The rewrite of the tsconfig alias detection logic is necessary to ensure we detect tsconfig aliases correctly and more precisely. Also see #863. ## How Has This Been Tested? - [x] green ci - [x] additional unit tests - [x] additional integration test(s) ## Types of changes - [x] 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) - [x] Breaking change (fix or feature that would cause existing functionality to change)
Hi @sverweij Yes, I have a baseUrl in my tsconfig. I try with |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [cypress](https://cypress.io) ([source](https://togithub.com/cypress-io/cypress)) | [`12.17.4` -> `13.6.1`](https://renovatebot.com/diffs/npm/cypress/12.17.4/13.6.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/cypress/13.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/cypress/13.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/cypress/12.17.4/13.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cypress/12.17.4/13.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [cypress-wait-until](https://togithub.com/NoriSte/cypress-wait-until) | [`1.7.2` -> `3.0.1`](https://renovatebot.com/diffs/npm/cypress-wait-until/1.7.2/3.0.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/cypress-wait-until/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/cypress-wait-until/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/cypress-wait-until/1.7.2/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cypress-wait-until/1.7.2/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [dependency-cruiser](https://togithub.com/sverweij/dependency-cruiser) | [`13.1.5` -> `15.5.0`](https://renovatebot.com/diffs/npm/dependency-cruiser/13.1.5/15.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/dependency-cruiser/15.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/dependency-cruiser/15.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/dependency-cruiser/13.1.5/15.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/dependency-cruiser/13.1.5/15.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>cypress-io/cypress (cypress)</summary> ### [`v13.6.1`](https://togithub.com/cypress-io/cypress/releases/tag/v13.6.1) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.6.0...v13.6.1) Changelog: https://docs.cypress.io/guides/references/changelog#13-6-1 ### [`v13.6.0`](https://togithub.com/cypress-io/cypress/releases/tag/v13.6.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.5.1...v13.6.0) Changelog: https://docs.cypress.io/guides/references/changelog#13-6-0 ### [`v13.5.1`](https://togithub.com/cypress-io/cypress/releases/tag/v13.5.1) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.5.0...v13.5.1) Changelog: https://docs.cypress.io/guides/references/changelog#13-5-1 ### [`v13.5.0`](https://togithub.com/cypress-io/cypress/releases/tag/v13.5.0): v.13.5.0 [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.4.0...v13.5.0) Changelog: https://docs.cypress.io/guides/references/changelog#13-5-0 ### [`v13.4.0`](https://togithub.com/cypress-io/cypress/releases/tag/v13.4.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.3.3...v13.4.0) Changelog: https://docs.cypress.io/guides/references/changelog#13-4-0 ### [`v13.3.3`](https://togithub.com/cypress-io/cypress/releases/tag/v13.3.3) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.3.2...v13.3.3) Changelog: https://docs.cypress.io/guides/references/changelog#13-3-3 ### [`v13.3.2`](https://togithub.com/cypress-io/cypress/releases/tag/v13.3.2) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.3.1...v13.3.2) Changelog: https://docs.cypress.io/guides/references/changelog#13-3-2 ### [`v13.3.1`](https://togithub.com/cypress-io/cypress/releases/tag/v13.3.1) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.3.0...v13.3.1) Changelog: https://docs.cypress.io/guides/references/changelog#13-3-1 ### [`v13.3.0`](https://togithub.com/cypress-io/cypress/releases/tag/v13.3.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.2.0...v13.3.0) Changelog: https://docs.cypress.io/guides/references/changelog#13-3-0 ### [`v13.2.0`](https://togithub.com/cypress-io/cypress/releases/tag/v13.2.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.1.0...v13.2.0) Changelog: https://docs.cypress.io/guides/references/changelog#13-2-0 ### [`v13.1.0`](https://togithub.com/cypress-io/cypress/releases/tag/v13.1.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.0.0...v13.1.0) Changelog: https://docs.cypress.io/guides/references/changelog#13-1-0 ### [`v13.0.0`](https://togithub.com/cypress-io/cypress/releases/tag/v13.0.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v12.17.4...v13.0.0) Changelog: https://docs.cypress.io/guides/references/changelog#13-0-0 </details> <details> <summary>NoriSte/cypress-wait-until (cypress-wait-until)</summary> ### [`v3.0.1`](https://togithub.com/NoriSte/cypress-wait-until/releases/tag/v3.0.1) [Compare Source](https://togithub.com/NoriSte/cypress-wait-until/compare/v3.0.0...v3.0.1) ##### Bug Fixes - unset the Node.js version ([#​479](https://togithub.com/NoriSte/cypress-wait-until/issues/479)) ([236db14](https://togithub.com/NoriSte/cypress-wait-until/commit/236db146b91480061db4a3feda8d94177acb88c4)), closes [#​472](https://togithub.com/NoriSte/cypress-wait-until/issues/472) ### [`v3.0.0`](https://togithub.com/NoriSte/cypress-wait-until/releases/tag/v3.0.0) [Compare Source](https://togithub.com/NoriSte/cypress-wait-until/compare/v2.0.1...v3.0.0) - Fix typescript signature ([#​478](https://togithub.com/NoriSte/cypress-wait-until/issues/478)) ([8e3ff03](https://togithub.com/NoriSte/cypress-wait-until/commit/8e3ff03d698ff7fc2abdca7a04a9c842ef661f38)), closes [#​478](https://togithub.com/NoriSte/cypress-wait-until/issues/478) [#​477](https://togithub.com/NoriSte/cypress-wait-until/issues/477) ##### BREAKING CHANGES - TypeScript tests could now throw because of operations made on the value returned by `checkFunction` (passed to cy.waitUntil). The type was previously `undefined` while now reflecting the type returned by `checkFunction`. ### [`v2.0.1`](https://togithub.com/NoriSte/cypress-wait-until/releases/tag/v2.0.1) [Compare Source](https://togithub.com/NoriSte/cypress-wait-until/compare/v2.0.0...v2.0.1) ##### Bug Fixes - Unset the Node.js and NPM version ([213b780](https://togithub.com/NoriSte/cypress-wait-until/commit/213b7805d44be534e7904dcacc3e89b5fbe9814e)), closes [#​472](https://togithub.com/NoriSte/cypress-wait-until/issues/472) ### [`v2.0.0`](https://togithub.com/NoriSte/cypress-wait-until/releases/tag/v2.0.0) [Compare Source](https://togithub.com/NoriSte/cypress-wait-until/compare/2070d47147ab711157db744136c4cf26a7c8f91e...v2.0.0) ##### Bug Fixes - update the timeout logic to consider also the checkFunction duration ([146a775](https://togithub.com/NoriSte/cypress-wait-until/commit/146a775d0b39b594e9875384aeca4eff6b97175a)), closes [#​464](https://togithub.com/NoriSte/cypress-wait-until/issues/464) ##### BREAKING CHANGES - The timeout is now respected even if checkFunction takes a long time. As a result, you could face that your checkFunction runs less times. - Drop support for Node.js < 18.16.0 </details> <details> <summary>sverweij/dependency-cruiser (dependency-cruiser)</summary> ### [`v15.5.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v15.5.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v15.4.0...v15.5.0) #### ✨ features - [`8aa2a3d`](https://togithub.com/sverweij/dependency-cruiser/commit/8aa2a3d5) feat(init): adds exception to not-to-dev-dep for type-only dependencies ([#​874](https://togithub.com/sverweij/dependency-cruiser/issues/874)) - thanks to [@​alvaro-cuesta](https://togithub.com/alvaro-cuesta) for the suggestion - [`91f36a5`](https://togithub.com/sverweij/dependency-cruiser/commit/91f36a5c)/ [`38c4a46`](https://togithub.com/sverweij/dependency-cruiser/commit/38c4a460) feat(wrap-stream-in-html): adds a gradient on highlighted edges ([#​878](https://togithub.com/sverweij/dependency-cruiser/issues/878)) #### 📖 documentation - [`9415a84`](https://togithub.com/sverweij/dependency-cruiser/commit/9415a847) fix(doc): re-organizes types folder, improves typing of extract-webpack-resolve-config - [`6d808db`](https://togithub.com/sverweij/dependency-cruiser/commit/6d808db0) fix(doc): improves package type exports ([#​876](https://togithub.com/sverweij/dependency-cruiser/issues/876)) making [are the types wrong](https://arethetypeswrong.github.io/) a little more happy #### 👷 maintenance - [`ae0c3d6`](https://togithub.com/sverweij/dependency-cruiser/commit/ae0c3d60) build(npm): updates external devDependencies - [`c6a33b1`](https://togithub.com/sverweij/dependency-cruiser/commit/c6a33b18) refactor(wrap-stream-in-html): makes the wrapper easier to maintain ([#​877](https://togithub.com/sverweij/dependency-cruiser/issues/877)) ### [`v15.4.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v15.4.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v15.3.0...v15.4.0) ##### ✨ features - [`ba4533f`](https://togithub.com/sverweij/dependency-cruiser/commit/ba4533fe) feat(resolve): enables passing 'aliasFields' to enhanced-resolve ([#​870](https://togithub.com/sverweij/dependency-cruiser/issues/870)) - thanks to [@​JakeSidSmith](https://togithub.com/JakeSidSmith) for not only raising the issue that led to this fix, but also for the detailed & well documented research that made this addition a *very* easy one to implement. - [`dfdb385`](https://togithub.com/sverweij/dependency-cruiser/commit/dfdb385d) feat(reporter/dot): only considers rule severity for coloring invalid modules/ dependencies ([#​869](https://togithub.com/sverweij/dependency-cruiser/issues/869)) ##### 🐛 fixes - [`3445a3b`](https://togithub.com/sverweij/dependency-cruiser/commit/3445a3bb) fix(init): makes initial regular expressions more specific ([#​872](https://togithub.com/sverweij/dependency-cruiser/issues/872))- thanks [@​mx-bernhard](https://togithub.com/mx-bernhard) for raising the issue and suggesting an elegant fix. ##### 📖 documentation - [`aca6489`](https://togithub.com/sverweij/dependency-cruiser/commit/aca64898) doc: modify semicolons to commas ([#​866](https://togithub.com/sverweij/dependency-cruiser/issues/866)) ##### 👷 maintenance - [`a6d562b`](https://togithub.com/sverweij/dependency-cruiser/commit/a6d562b7) build(npm): updates external dependencies ### [`v15.3.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v15.3.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v15.2.0...v15.3.0) #### ✨ features - [`fce008d`](https://togithub.com/sverweij/dependency-cruiser/commit/fce008d5) feat(extract): makes support for workspaces explicit ([#​864](https://togithub.com/sverweij/dependency-cruiser/issues/864)) This should also fix the bug discovered by [@​throrin19](https://togithub.com/throrin19) in [sverweij/dependency-cruiser#863 #### 👷 maintenance - [`6eb9c61`](https://togithub.com/sverweij/dependency-cruiser/commit/6eb9c61f) build(npm): updates external dependencies - [`ae9b688`](https://togithub.com/sverweij/dependency-cruiser/commit/ae9b688e) refactor(resolve): hands over preserveSymlink processing to EHR ([#​865](https://togithub.com/sverweij/dependency-cruiser/issues/865)) - [`41b20c6`](https://togithub.com/sverweij/dependency-cruiser/commit/41b20c67) fix(test): makes c8 stop processing again when coverage is too low - [`6dc0632`](https://togithub.com/sverweij/dependency-cruiser/commit/6dc06324) fix(test): ensures that by default subpath imports are used for local imports ### [`v15.2.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v15.2.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v15.1.1...v15.2.0) #### ✨ features - [`2868e19`](https://togithub.com/sverweij/dependency-cruiser/commit/2868e199) feat(cache): adds option to compress the cache file ([#​860](https://togithub.com/sverweij/dependency-cruiser/issues/860)) #### 👷 maintenance - [`73b8381`](https://togithub.com/sverweij/dependency-cruiser/commit/73b8381e) build(npm): updates external dependencies - [`3fc50a2`](https://togithub.com/sverweij/dependency-cruiser/commit/3fc50a2d) ci(deps): bump actions/setup-node from 3 to 4 ([#​858](https://togithub.com/sverweij/dependency-cruiser/issues/858)) - [`9b52267`](https://togithub.com/sverweij/dependency-cruiser/commit/9b522676) refactor(tools): folds d2 test fixture regeneration into existing report fixture regeneration ### [`v15.1.1`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v15.1.1) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v15.1.0...v15.1.1) #### 🐛 fixes - [`8c06016`](https://togithub.com/sverweij/dependency-cruiser/commit/8c060162) fix: makes globbing work on windos again ### [`v15.1.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v15.1.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v15.0.0...v15.1.0) ##### ✨ features - [`1ac6b2e`](https://togithub.com/sverweij/dependency-cruiser/commit/1ac6b2e9)/ [`bb548c2`](https://togithub.com/sverweij/dependency-cruiser/commit/bb548c2f) feat(report): adds basic d2 (https://d2lang.com/) reporter ([#​857](https://togithub.com/sverweij/dependency-cruiser/issues/857)) ##### 👷 maintenance - [`14691b7`](https://togithub.com/sverweij/dependency-cruiser/commit/14691b70) build(npm): updates external dependencies - [`a442703`](https://togithub.com/sverweij/dependency-cruiser/commit/a4427032) refactor(configs): makes the 2 sample reporter plugins ESM ### [`v15.0.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v15.0.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v14.1.2...v15.0.0) ##### ✨ features (🚨 *with* breaking changes) For the majority of use cases these additions are not breaking. For the few use cases that are: dependency-cruiser has gotten a little more precise only ... - [`a3cfcec`](https://togithub.com/sverweij/dependency-cruiser/commit/a3cfcecf) feat!(extract): makes 'real' depencency type available alongside aliases BREAKING ([#​856](https://togithub.com/sverweij/dependency-cruiser/issues/856)) If you have rules that check for dependencyTypes explicitly the rules will still work as before, but they'll be more effective, potentially uncovering transgressions dependency-cruiser didn't find in earlier versions. - [`36c3dde`](https://togithub.com/sverweij/dependency-cruiser/commit/36c3dde9) feat!(extract): makes support for subpath imports explicit BREAKING ([#​855](https://togithub.com/sverweij/dependency-cruiser/issues/855)) Because dependency-cruiser now labels [subpath imports](https://nodejs.org/api/packages.html#subpath-imports) as `alias` and `alias-subpath-import` instead of `undetermined`: - if you have rules that explicitly check for `alias` dependency-crusier might uncover transgressions it didn't before. - Likewise if you had rules with checks on `undetermined` dependency types to find subpath imports, you might want to update them to `alias-subpath-import` ##### ✨ features - [`08dce74`](https://togithub.com/sverweij/dependency-cruiser/commit/08dce742) feat(report): links to npmjs/ nodejs.org for npm respectively node and core modules ([#​854](https://togithub.com/sverweij/dependency-cruiser/issues/854)) thanks to [@​CaptainQuirk](https://togithub.com/CaptainQuirk) for the question that led to this feature and for the feedback on the first crude prototype. ##### 👷 mainteinance - [`e7ae8ef`](https://togithub.com/sverweij/dependency-cruiser/commit/e7ae8ef2) build(npm): updates external devDependencies - [`c9288e3`](https://togithub.com/sverweij/dependency-cruiser/commit/c9288e37) ci: sets latest used node version to 21 ### [`v14.1.2`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v14.1.2) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v14.1.1...v14.1.2) ##### 👷 maintenance - [`45ada49`](https://togithub.com/sverweij/dependency-cruiser/commit/45ada490) build(npm): updates external dependencies - [`b0171b2`](https://togithub.com/sverweij/dependency-cruiser/commit/b0171b20) chore(tools): replaces a stray use of lodash.cloneXXX with structuredClone - [`27aa37e`](https://togithub.com/sverweij/dependency-cruiser/commit/27aa37e1) refactor: uses one subpath import for most stuff in src - [`d4fb629`](https://togithub.com/sverweij/dependency-cruiser/commit/d4fb6299) chore(test): replaces a stray use of lodash.cloneXXX with structuredClone - [`f249954`](https://togithub.com/sverweij/dependency-cruiser/commit/f2499545) refactor: introduces use of node imports aliasses in package.json ([#​851](https://togithub.com/sverweij/dependency-cruiser/issues/851)) ### [`v14.1.1`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v14.1.1) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v14.1.0...v14.1.1) ##### 👷 maintenance - [`be0ef74`](https://togithub.com/sverweij/dependency-cruiser/commit/be0ef743) build(npm): updates external dependencies - [`c421cd1`](https://togithub.com/sverweij/dependency-cruiser/commit/c421cd18) build(npm): pins transitive devDependency postcss (that's via vue) to ^8.14.31 - [`a1e5610`](https://togithub.com/sverweij/dependency-cruiser/commit/a1e56105) refactor: replaces lodash's clone & cloneDeep with native structuredClone ([#​850](https://togithub.com/sverweij/dependency-cruiser/issues/850)) - [`7651db4`](https://togithub.com/sverweij/dependency-cruiser/commit/7651db45) ci(npm): fixes repository field to match some other kind of format ### [`v14.1.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v14.1.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v14.0.0...v14.1.0) ##### ✨ features - [`32cad15`](https://togithub.com/sverweij/dependency-cruiser/commit/32cad154) feature(init): adds 'module' field to enhancedResolve `mainFields` when current module is type:module ([#​846](https://togithub.com/sverweij/dependency-cruiser/issues/846)) - thanks to [@​JakeSidSmith](https://togithub.com/JakeSidSmith) for asking the question that led to this addition - [`ddd2ee6`](https://togithub.com/sverweij/dependency-cruiser/commit/ddd2ee6f) feature(main|extract): adds `builtInModules` option to tweak what to consider built-in (/ core) modules ([#​847](https://togithub.com/sverweij/dependency-cruiser/issues/847)) - thanks again to [@​JakeSidSmith](https://togithub.com/JakeSidSmith) for providing the context to see why this would be a useful feature ##### 📖 documentation - [`b92b79b`](https://togithub.com/sverweij/dependency-cruiser/commit/b92b79bd) doc(options): elaborates on how to use the `mainFields` attributes in ESM context ##### 👷 maintenance - [`7b28857`](https://togithub.com/sverweij/dependency-cruiser/commit/7b28857e) build(npm): updates external devDependencies - [`c2d731c`](https://togithub.com/sverweij/dependency-cruiser/commit/c2d731c4) refactor: renames functions that assert things so they reflect that ([#​848](https://togithub.com/sverweij/dependency-cruiser/issues/848)) - [`48ce9ab`](https://togithub.com/sverweij/dependency-cruiser/commit/48ce9ab7) refactor(extract): rewrites gatherInitialSources' reduce with flatMap ([#​842](https://togithub.com/sverweij/dependency-cruiser/issues/842)) ### [`v14.0.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v14.0.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v13.1.5...v14.0.0) ##### 🚨 breaking changes - [`3a9d384`](https://togithub.com/sverweij/dependency-cruiser/commit/3a9d3848)/ [`6cb8e8e`](https://togithub.com/sverweij/dependency-cruiser/commit/6cb8e8eb) ci!: drops support for node 16 and 19, sets minimum supported nodejs version to 18.17 BREAKING As we follow the nodejs release cycle and both node 16 and 19 are EOL, we drop support for them. You probably have already upgraded to node 18, but if not, now is the time to do so :-). If you need to support older nodejs versions, you can still use the last release that supports them (v13.1.5) for a while. ##### 📖 documentation - [`c97e81e`](https://togithub.com/sverweij/dependency-cruiser/commit/c97e81e8) bugfix(doc): adds missing ": true," in options-reference.md example ([#​840](https://togithub.com/sverweij/dependency-cruiser/issues/840)) - thanks [@​LarsArtmann](https://togithub.com/LarsArtmann) for this fix ##### 👷 maintenance - [`5b6c48f`](https://togithub.com/sverweij/dependency-cruiser/commit/5b6c48f6) refactor: replaces 'glob' with 'picomatch' ([#​841](https://togithub.com/sverweij/dependency-cruiser/issues/841)) thanks [@​jimmywarting](https://togithub.com/jimmywarting) for triggering the discussion and pointing out `glob` as a candidate for replacement! - [`cc93d9c`](https://togithub.com/sverweij/dependency-cruiser/commit/cc93d9cc)/ [`f586e7d`](https://togithub.com/sverweij/dependency-cruiser/commit/f586e7da) build(npm): updates external dependencies - [`7e68e7a`](https://togithub.com/sverweij/dependency-cruiser/commit/7e68e7ad) refactor(cli): renames assertion function </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/redwoodjs/redwood). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Dominic Saadi <dominiceliassaadi@gmail.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [cypress](https://cypress.io) ([source](https://togithub.com/cypress-io/cypress)) | [`12.17.4` -> `13.6.1`](https://renovatebot.com/diffs/npm/cypress/12.17.4/13.6.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/cypress/13.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/cypress/13.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/cypress/12.17.4/13.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cypress/12.17.4/13.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [cypress-wait-until](https://togithub.com/NoriSte/cypress-wait-until) | [`1.7.2` -> `3.0.1`](https://renovatebot.com/diffs/npm/cypress-wait-until/1.7.2/3.0.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/cypress-wait-until/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/cypress-wait-until/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/cypress-wait-until/1.7.2/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cypress-wait-until/1.7.2/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [dependency-cruiser](https://togithub.com/sverweij/dependency-cruiser) | [`13.1.5` -> `15.5.0`](https://renovatebot.com/diffs/npm/dependency-cruiser/13.1.5/15.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/dependency-cruiser/15.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/dependency-cruiser/15.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/dependency-cruiser/13.1.5/15.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/dependency-cruiser/13.1.5/15.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- <details> <summary>cypress-io/cypress (cypress)</summary> [`v13.6.1`](https://togithub.com/cypress-io/cypress/releases/tag/v13.6.1) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.6.0...v13.6.1) Changelog: https://docs.cypress.io/guides/references/changelog#13-6-1 [`v13.6.0`](https://togithub.com/cypress-io/cypress/releases/tag/v13.6.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.5.1...v13.6.0) Changelog: https://docs.cypress.io/guides/references/changelog#13-6-0 [`v13.5.1`](https://togithub.com/cypress-io/cypress/releases/tag/v13.5.1) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.5.0...v13.5.1) Changelog: https://docs.cypress.io/guides/references/changelog#13-5-1 [`v13.5.0`](https://togithub.com/cypress-io/cypress/releases/tag/v13.5.0): v.13.5.0 [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.4.0...v13.5.0) Changelog: https://docs.cypress.io/guides/references/changelog#13-5-0 [`v13.4.0`](https://togithub.com/cypress-io/cypress/releases/tag/v13.4.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.3.3...v13.4.0) Changelog: https://docs.cypress.io/guides/references/changelog#13-4-0 [`v13.3.3`](https://togithub.com/cypress-io/cypress/releases/tag/v13.3.3) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.3.2...v13.3.3) Changelog: https://docs.cypress.io/guides/references/changelog#13-3-3 [`v13.3.2`](https://togithub.com/cypress-io/cypress/releases/tag/v13.3.2) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.3.1...v13.3.2) Changelog: https://docs.cypress.io/guides/references/changelog#13-3-2 [`v13.3.1`](https://togithub.com/cypress-io/cypress/releases/tag/v13.3.1) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.3.0...v13.3.1) Changelog: https://docs.cypress.io/guides/references/changelog#13-3-1 [`v13.3.0`](https://togithub.com/cypress-io/cypress/releases/tag/v13.3.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.2.0...v13.3.0) Changelog: https://docs.cypress.io/guides/references/changelog#13-3-0 [`v13.2.0`](https://togithub.com/cypress-io/cypress/releases/tag/v13.2.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.1.0...v13.2.0) Changelog: https://docs.cypress.io/guides/references/changelog#13-2-0 [`v13.1.0`](https://togithub.com/cypress-io/cypress/releases/tag/v13.1.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v13.0.0...v13.1.0) Changelog: https://docs.cypress.io/guides/references/changelog#13-1-0 [`v13.0.0`](https://togithub.com/cypress-io/cypress/releases/tag/v13.0.0) [Compare Source](https://togithub.com/cypress-io/cypress/compare/v12.17.4...v13.0.0) Changelog: https://docs.cypress.io/guides/references/changelog#13-0-0 </details> <details> <summary>NoriSte/cypress-wait-until (cypress-wait-until)</summary> [`v3.0.1`](https://togithub.com/NoriSte/cypress-wait-until/releases/tag/v3.0.1) [Compare Source](https://togithub.com/NoriSte/cypress-wait-until/compare/v3.0.0...v3.0.1) - unset the Node.js version ([#​479](https://togithub.com/NoriSte/cypress-wait-until/issues/479)) ([236db14](https://togithub.com/NoriSte/cypress-wait-until/commit/236db146b91480061db4a3feda8d94177acb88c4)), closes [#​472](https://togithub.com/NoriSte/cypress-wait-until/issues/472) [`v3.0.0`](https://togithub.com/NoriSte/cypress-wait-until/releases/tag/v3.0.0) [Compare Source](https://togithub.com/NoriSte/cypress-wait-until/compare/v2.0.1...v3.0.0) - Fix typescript signature ([#​478](https://togithub.com/NoriSte/cypress-wait-until/issues/478)) ([8e3ff03](https://togithub.com/NoriSte/cypress-wait-until/commit/8e3ff03d698ff7fc2abdca7a04a9c842ef661f38)), closes [#​478](https://togithub.com/NoriSte/cypress-wait-until/issues/478) [#​477](https://togithub.com/NoriSte/cypress-wait-until/issues/477) - TypeScript tests could now throw because of operations made on the value returned by `checkFunction` (passed to cy.waitUntil). The type was previously `undefined` while now reflecting the type returned by `checkFunction`. [`v2.0.1`](https://togithub.com/NoriSte/cypress-wait-until/releases/tag/v2.0.1) [Compare Source](https://togithub.com/NoriSte/cypress-wait-until/compare/v2.0.0...v2.0.1) - Unset the Node.js and NPM version ([213b780](https://togithub.com/NoriSte/cypress-wait-until/commit/213b7805d44be534e7904dcacc3e89b5fbe9814e)), closes [#​472](https://togithub.com/NoriSte/cypress-wait-until/issues/472) [`v2.0.0`](https://togithub.com/NoriSte/cypress-wait-until/releases/tag/v2.0.0) [Compare Source](https://togithub.com/NoriSte/cypress-wait-until/compare/2070d47147ab711157db744136c4cf26a7c8f91e...v2.0.0) - update the timeout logic to consider also the checkFunction duration ([146a775](https://togithub.com/NoriSte/cypress-wait-until/commit/146a775d0b39b594e9875384aeca4eff6b97175a)), closes [#​464](https://togithub.com/NoriSte/cypress-wait-until/issues/464) - The timeout is now respected even if checkFunction takes a long time. As a result, you could face that your checkFunction runs less times. - Drop support for Node.js < 18.16.0 </details> <details> <summary>sverweij/dependency-cruiser (dependency-cruiser)</summary> [`v15.5.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v15.5.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v15.4.0...v15.5.0) - [`8aa2a3d`](https://togithub.com/sverweij/dependency-cruiser/commit/8aa2a3d5) feat(init): adds exception to not-to-dev-dep for type-only dependencies ([#​874](https://togithub.com/sverweij/dependency-cruiser/issues/874)) - thanks to [@​alvaro-cuesta](https://togithub.com/alvaro-cuesta) for the suggestion - [`91f36a5`](https://togithub.com/sverweij/dependency-cruiser/commit/91f36a5c)/ [`38c4a46`](https://togithub.com/sverweij/dependency-cruiser/commit/38c4a460) feat(wrap-stream-in-html): adds a gradient on highlighted edges ([#​878](https://togithub.com/sverweij/dependency-cruiser/issues/878)) - [`9415a84`](https://togithub.com/sverweij/dependency-cruiser/commit/9415a847) fix(doc): re-organizes types folder, improves typing of extract-webpack-resolve-config - [`6d808db`](https://togithub.com/sverweij/dependency-cruiser/commit/6d808db0) fix(doc): improves package type exports ([#​876](https://togithub.com/sverweij/dependency-cruiser/issues/876)) making [are the types wrong](https://arethetypeswrong.github.io/) a little more happy - [`ae0c3d6`](https://togithub.com/sverweij/dependency-cruiser/commit/ae0c3d60) build(npm): updates external devDependencies - [`c6a33b1`](https://togithub.com/sverweij/dependency-cruiser/commit/c6a33b18) refactor(wrap-stream-in-html): makes the wrapper easier to maintain ([#​877](https://togithub.com/sverweij/dependency-cruiser/issues/877)) [`v15.4.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v15.4.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v15.3.0...v15.4.0) - [`ba4533f`](https://togithub.com/sverweij/dependency-cruiser/commit/ba4533fe) feat(resolve): enables passing 'aliasFields' to enhanced-resolve ([#​870](https://togithub.com/sverweij/dependency-cruiser/issues/870)) - thanks to [@​JakeSidSmith](https://togithub.com/JakeSidSmith) for not only raising the issue that led to this fix, but also for the detailed & well documented research that made this addition a *very* easy one to implement. - [`dfdb385`](https://togithub.com/sverweij/dependency-cruiser/commit/dfdb385d) feat(reporter/dot): only considers rule severity for coloring invalid modules/ dependencies ([#​869](https://togithub.com/sverweij/dependency-cruiser/issues/869)) - [`3445a3b`](https://togithub.com/sverweij/dependency-cruiser/commit/3445a3bb) fix(init): makes initial regular expressions more specific ([#​872](https://togithub.com/sverweij/dependency-cruiser/issues/872))- thanks [@​mx-bernhard](https://togithub.com/mx-bernhard) for raising the issue and suggesting an elegant fix. - [`aca6489`](https://togithub.com/sverweij/dependency-cruiser/commit/aca64898) doc: modify semicolons to commas ([#​866](https://togithub.com/sverweij/dependency-cruiser/issues/866)) - [`a6d562b`](https://togithub.com/sverweij/dependency-cruiser/commit/a6d562b7) build(npm): updates external dependencies [`v15.3.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v15.3.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v15.2.0...v15.3.0) - [`fce008d`](https://togithub.com/sverweij/dependency-cruiser/commit/fce008d5) feat(extract): makes support for workspaces explicit ([#​864](https://togithub.com/sverweij/dependency-cruiser/issues/864)) This should also fix the bug discovered by [@​throrin19](https://togithub.com/throrin19) in [sverweij/dependency-cruiser#863 - [`6eb9c61`](https://togithub.com/sverweij/dependency-cruiser/commit/6eb9c61f) build(npm): updates external dependencies - [`ae9b688`](https://togithub.com/sverweij/dependency-cruiser/commit/ae9b688e) refactor(resolve): hands over preserveSymlink processing to EHR ([#​865](https://togithub.com/sverweij/dependency-cruiser/issues/865)) - [`41b20c6`](https://togithub.com/sverweij/dependency-cruiser/commit/41b20c67) fix(test): makes c8 stop processing again when coverage is too low - [`6dc0632`](https://togithub.com/sverweij/dependency-cruiser/commit/6dc06324) fix(test): ensures that by default subpath imports are used for local imports [`v15.2.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v15.2.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v15.1.1...v15.2.0) - [`2868e19`](https://togithub.com/sverweij/dependency-cruiser/commit/2868e199) feat(cache): adds option to compress the cache file ([#​860](https://togithub.com/sverweij/dependency-cruiser/issues/860)) - [`73b8381`](https://togithub.com/sverweij/dependency-cruiser/commit/73b8381e) build(npm): updates external dependencies - [`3fc50a2`](https://togithub.com/sverweij/dependency-cruiser/commit/3fc50a2d) ci(deps): bump actions/setup-node from 3 to 4 ([#​858](https://togithub.com/sverweij/dependency-cruiser/issues/858)) - [`9b52267`](https://togithub.com/sverweij/dependency-cruiser/commit/9b522676) refactor(tools): folds d2 test fixture regeneration into existing report fixture regeneration [`v15.1.1`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v15.1.1) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v15.1.0...v15.1.1) - [`8c06016`](https://togithub.com/sverweij/dependency-cruiser/commit/8c060162) fix: makes globbing work on windos again [`v15.1.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v15.1.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v15.0.0...v15.1.0) - [`1ac6b2e`](https://togithub.com/sverweij/dependency-cruiser/commit/1ac6b2e9)/ [`bb548c2`](https://togithub.com/sverweij/dependency-cruiser/commit/bb548c2f) feat(report): adds basic d2 (https://d2lang.com/) reporter ([#​857](https://togithub.com/sverweij/dependency-cruiser/issues/857)) - [`14691b7`](https://togithub.com/sverweij/dependency-cruiser/commit/14691b70) build(npm): updates external dependencies - [`a442703`](https://togithub.com/sverweij/dependency-cruiser/commit/a4427032) refactor(configs): makes the 2 sample reporter plugins ESM [`v15.0.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v15.0.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v14.1.2...v15.0.0) For the majority of use cases these additions are not breaking. For the few use cases that are: dependency-cruiser has gotten a little more precise only ... - [`a3cfcec`](https://togithub.com/sverweij/dependency-cruiser/commit/a3cfcecf) feat!(extract): makes 'real' depencency type available alongside aliases BREAKING ([#​856](https://togithub.com/sverweij/dependency-cruiser/issues/856)) If you have rules that check for dependencyTypes explicitly the rules will still work as before, but they'll be more effective, potentially uncovering transgressions dependency-cruiser didn't find in earlier versions. - [`36c3dde`](https://togithub.com/sverweij/dependency-cruiser/commit/36c3dde9) feat!(extract): makes support for subpath imports explicit BREAKING ([#​855](https://togithub.com/sverweij/dependency-cruiser/issues/855)) Because dependency-cruiser now labels [subpath imports](https://nodejs.org/api/packages.html#subpath-imports) as `alias` and `alias-subpath-import` instead of `undetermined`: - if you have rules that explicitly check for `alias` dependency-crusier might uncover transgressions it didn't before. - Likewise if you had rules with checks on `undetermined` dependency types to find subpath imports, you might want to update them to `alias-subpath-import` - [`08dce74`](https://togithub.com/sverweij/dependency-cruiser/commit/08dce742) feat(report): links to npmjs/ nodejs.org for npm respectively node and core modules ([#​854](https://togithub.com/sverweij/dependency-cruiser/issues/854)) thanks to [@​CaptainQuirk](https://togithub.com/CaptainQuirk) for the question that led to this feature and for the feedback on the first crude prototype. - [`e7ae8ef`](https://togithub.com/sverweij/dependency-cruiser/commit/e7ae8ef2) build(npm): updates external devDependencies - [`c9288e3`](https://togithub.com/sverweij/dependency-cruiser/commit/c9288e37) ci: sets latest used node version to 21 [`v14.1.2`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v14.1.2) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v14.1.1...v14.1.2) - [`45ada49`](https://togithub.com/sverweij/dependency-cruiser/commit/45ada490) build(npm): updates external dependencies - [`b0171b2`](https://togithub.com/sverweij/dependency-cruiser/commit/b0171b20) chore(tools): replaces a stray use of lodash.cloneXXX with structuredClone - [`27aa37e`](https://togithub.com/sverweij/dependency-cruiser/commit/27aa37e1) refactor: uses one subpath import for most stuff in src - [`d4fb629`](https://togithub.com/sverweij/dependency-cruiser/commit/d4fb6299) chore(test): replaces a stray use of lodash.cloneXXX with structuredClone - [`f249954`](https://togithub.com/sverweij/dependency-cruiser/commit/f2499545) refactor: introduces use of node imports aliasses in package.json ([#​851](https://togithub.com/sverweij/dependency-cruiser/issues/851)) [`v14.1.1`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v14.1.1) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v14.1.0...v14.1.1) - [`be0ef74`](https://togithub.com/sverweij/dependency-cruiser/commit/be0ef743) build(npm): updates external dependencies - [`c421cd1`](https://togithub.com/sverweij/dependency-cruiser/commit/c421cd18) build(npm): pins transitive devDependency postcss (that's via vue) to ^8.14.31 - [`a1e5610`](https://togithub.com/sverweij/dependency-cruiser/commit/a1e56105) refactor: replaces lodash's clone & cloneDeep with native structuredClone ([#​850](https://togithub.com/sverweij/dependency-cruiser/issues/850)) - [`7651db4`](https://togithub.com/sverweij/dependency-cruiser/commit/7651db45) ci(npm): fixes repository field to match some other kind of format [`v14.1.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v14.1.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v14.0.0...v14.1.0) - [`32cad15`](https://togithub.com/sverweij/dependency-cruiser/commit/32cad154) feature(init): adds 'module' field to enhancedResolve `mainFields` when current module is type:module ([#​846](https://togithub.com/sverweij/dependency-cruiser/issues/846)) - thanks to [@​JakeSidSmith](https://togithub.com/JakeSidSmith) for asking the question that led to this addition - [`ddd2ee6`](https://togithub.com/sverweij/dependency-cruiser/commit/ddd2ee6f) feature(main|extract): adds `builtInModules` option to tweak what to consider built-in (/ core) modules ([#​847](https://togithub.com/sverweij/dependency-cruiser/issues/847)) - thanks again to [@​JakeSidSmith](https://togithub.com/JakeSidSmith) for providing the context to see why this would be a useful feature - [`b92b79b`](https://togithub.com/sverweij/dependency-cruiser/commit/b92b79bd) doc(options): elaborates on how to use the `mainFields` attributes in ESM context - [`7b28857`](https://togithub.com/sverweij/dependency-cruiser/commit/7b28857e) build(npm): updates external devDependencies - [`c2d731c`](https://togithub.com/sverweij/dependency-cruiser/commit/c2d731c4) refactor: renames functions that assert things so they reflect that ([#​848](https://togithub.com/sverweij/dependency-cruiser/issues/848)) - [`48ce9ab`](https://togithub.com/sverweij/dependency-cruiser/commit/48ce9ab7) refactor(extract): rewrites gatherInitialSources' reduce with flatMap ([#​842](https://togithub.com/sverweij/dependency-cruiser/issues/842)) [`v14.0.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v14.0.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v13.1.5...v14.0.0) - [`3a9d384`](https://togithub.com/sverweij/dependency-cruiser/commit/3a9d3848)/ [`6cb8e8e`](https://togithub.com/sverweij/dependency-cruiser/commit/6cb8e8eb) ci!: drops support for node 16 and 19, sets minimum supported nodejs version to 18.17 BREAKING As we follow the nodejs release cycle and both node 16 and 19 are EOL, we drop support for them. You probably have already upgraded to node 18, but if not, now is the time to do so :-). If you need to support older nodejs versions, you can still use the last release that supports them (v13.1.5) for a while. - [`c97e81e`](https://togithub.com/sverweij/dependency-cruiser/commit/c97e81e8) bugfix(doc): adds missing ": true," in options-reference.md example ([#​840](https://togithub.com/sverweij/dependency-cruiser/issues/840)) - thanks [@​LarsArtmann](https://togithub.com/LarsArtmann) for this fix - [`5b6c48f`](https://togithub.com/sverweij/dependency-cruiser/commit/5b6c48f6) refactor: replaces 'glob' with 'picomatch' ([#​841](https://togithub.com/sverweij/dependency-cruiser/issues/841)) thanks [@​jimmywarting](https://togithub.com/jimmywarting) for triggering the discussion and pointing out `glob` as a candidate for replacement! - [`cc93d9c`](https://togithub.com/sverweij/dependency-cruiser/commit/cc93d9cc)/ [`f586e7d`](https://togithub.com/sverweij/dependency-cruiser/commit/f586e7da) build(npm): updates external dependencies - [`7e68e7a`](https://togithub.com/sverweij/dependency-cruiser/commit/7e68e7ad) refactor(cli): renames assertion function </details> --- 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/redwoodjs/redwood). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Dominic Saadi <dominiceliassaadi@gmail.com>
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
Expected Behavior
I try to create a rule to force the usage of aliased-tsconfig import instead of absolute impore (like use
@company/module
instead oflibs/module
.I add this allowed rule :
Current Behavior
When I launch Depcruise, I have this unclear error :
Possible Solution
Steps to Reproduce (for bugs)
Context
Your Environment
The text was updated successfully, but these errors were encountered: