ci: Enable the unlisted and catalog-reference knip rules (no-changelog) (#38795)

Co-authored-by: Claude Fable 5.1 <[email protected]>
This commit is contained in:
Charlie Kolb
2026-09-17 17:15:32 +00:00
committed by GitHub
co-authored by Claude Fable 5.1
parent 0a4976e62c
commit 9ae5600999
16 changed files with 84 additions and 52 deletions
-24
View File
@@ -14,12 +14,6 @@
"message": "@mozilla/readability appears in 5 packages with 2 different versions — add to pnpm-workspace.yaml catalog",
"hash": "d2120f012c93"
},
{
"rule": "catalog-violations",
"line": 74,
"message": "jsdom appears in 4 packages with 2 different versions — add to pnpm-workspace.yaml catalog",
"hash": "9c770d66baf2"
},
{
"rule": "catalog-violations",
"line": 80,
@@ -84,12 +78,6 @@
"message": "cheerio appears in 2 packages with 2 different versions — add to pnpm-workspace.yaml catalog",
"hash": "8cd029bb871e"
},
{
"rule": "catalog-violations",
"line": 293,
"message": "jsdom appears in 4 packages with 2 different versions — add to pnpm-workspace.yaml catalog",
"hash": "26f20ebea4b1"
},
{
"rule": "catalog-violations",
"line": 298,
@@ -260,12 +248,6 @@
"message": "eventsource appears in 2 packages with 2 different versions — add to pnpm-workspace.yaml catalog",
"hash": "9795e6c6d9e9"
},
{
"rule": "catalog-violations",
"line": 940,
"message": "jsdom appears in 4 packages with 2 different versions — add to pnpm-workspace.yaml catalog",
"hash": "02341f2b5e3e"
},
{
"rule": "catalog-violations",
"line": 951,
@@ -382,12 +364,6 @@
"message": "@mozilla/readability appears in 5 packages with 2 different versions — add to pnpm-workspace.yaml catalog",
"hash": "0c97891a24f4"
},
{
"rule": "catalog-violations",
"line": 31,
"message": "jsdom appears in 4 packages with 2 different versions — add to pnpm-workspace.yaml catalog",
"hash": "8466b03b1044"
},
{
"rule": "catalog-violations",
"line": 36,
-4
View File
@@ -16,12 +16,8 @@
"dependencies": {
"@actions/github": "9.0.0",
"@cyclonedx/cdxgen": "12.4.0",
"@octokit/core": "7.0.6",
"ajv": "8.20.0",
"conventional-changelog": "7.2.0",
"debug": "4.4.3",
"glob": "13.0.6",
"json-with-bigint": "3.5.11",
"minimatch": "10.2.4",
"semver": "7.7.4",
"tempfile": "6.0.1",
-12
View File
@@ -172,24 +172,12 @@ importers:
'@cyclonedx/cdxgen':
specifier: 12.4.0
version: 12.4.0
'@octokit/core':
specifier: 7.0.6
version: 7.0.6
ajv:
specifier: 8.20.0
version: 8.20.0
conventional-changelog:
specifier: 7.2.0
version: 7.2.0([email protected])
debug:
specifier: 4.4.3
version: 4.4.3
glob:
specifier: 13.0.6
version: 13.0.6
json-with-bigint:
specifier: 3.5.11
version: 3.5.11
minimatch:
specifier: 10.2.4
version: 10.2.4
+44 -3
View File
@@ -15,6 +15,9 @@ const sourceEntry = [
// package override has to restate the shared defaults.
const pkg = (overrides: Workspace = {}): Workspace => ({
entry: sourceEntry,
// Manifest `types` and `exports` fields make a local dist an entry. `ignore` only mutes
// findings in these files; a stale dist reports imports the source no longer has.
ignore: ['dist/**'],
// The default only reads tsconfig.json; build tsconfigs extend shared configs too.
typescript: { config: ['tsconfig.json', 'tsconfig.*.json'] },
// postcss is not a declared dependency, so the plugin needs to be forced on.
@@ -36,15 +39,15 @@ const config: KnipConfig = {
enumMembers: 'off',
namespaceMembers: 'off',
duplicates: 'off',
unlisted: 'off',
unlisted: 'error',
unresolved: 'off',
binaries: 'off',
catalogReferences: 'off',
catalogReferences: 'error',
cycles: 'off',
},
workspaces: {
'.': {
entry: ['scripts/**/*.{mjs,js,ts}', '.github/scripts/**/*.mjs'],
entry: ['scripts/**/*.{mjs,js,ts}'],
ignoreDependencies: [
// Invoked by path in the n8n-module-sdk script.
'@n8n/module-cli',
@@ -53,6 +56,24 @@ const config: KnipConfig = {
'@stryker-mutator/vitest-runner',
// Manual dev tool; CONTRIBUTING.md documents `pnpm exec dotenvx run`.
'@dotenvx/dotenvx',
// scripts/instance-seeding resolves it from packages/cli by path.
'flatted',
// scripts/generate-emoji-data.mjs is a manual generator; install emojibase-data ad hoc.
'emojibase-data',
// Only named in JSDoc type imports; @stryker-mutator/core provides it.
'@stryker-mutator/api',
],
},
// Not a pnpm workspace; the release and CI scripts carry their own manifest and lockfile.
'.github/scripts': {
entry: ['**/*.mjs'],
ignoreDependencies: [
// docker/kafka-native-smoke-check.mjs requires it from the n8n install under test.
'@confluentinc/kafka-javascript',
// The generate-sbom script runs the cdxgen binary; the package is not installed here.
'@cyclonedx/cdxgen',
// conventional-changelog loads the preset by name.
'conventional-changelog-angular',
],
},
'packages/**': pkg(),
@@ -114,6 +135,22 @@ const config: KnipConfig = {
// tsconfig.json reaches into design-system/src through rootDirs and types.
ignoreDependencies: ['@n8n/design-system'],
}),
'packages/workflow': pkg({
// Only named in JSDoc type imports; @stryker-mutator/core provides it.
ignoreDependencies: ['@stryker-mutator/api'],
}),
'packages/@n8n/scheduler': pkg({
// Only named in JSDoc type imports; @stryker-mutator/core provides it.
ignoreDependencies: ['@stryker-mutator/api'],
}),
'packages/@n8n/benchmark': pkg({
// The k6 runtime provides its own modules; only @types/k6 is installed.
ignoreDependencies: ['k6'],
}),
'packages/@n8n/backend-common': pkg({
// module-registry resolves the installed n8n package by path at runtime.
ignoreDependencies: ['n8n'],
}),
'packages/core': pkg({
// bin/generate-node-defs and bin/copy-static-files have no extension, so knip does not parse them.
ignoreDependencies: ['@n8n/workflow-sdk', 'p-limit'],
@@ -134,6 +171,10 @@ const config: KnipConfig = {
'web-tree-sitter',
// Target of the `stream` alias that @n8n/frontend-vite-config declares.
'stream-browserify',
// .oxlintrc.json names these plugins; @n8n/oxlint-config provides them.
'@stylistic/eslint-plugin',
'eslint-plugin-lodash',
'eslint-plugin-unused-imports',
],
}),
'packages/frontend/@n8n/storybook': pkg({
@@ -72,7 +72,7 @@
"@n8n_io/ai-assistant-sdk": "catalog:",
"axios": "catalog:",
"csv-parse": "catalog:",
"jsdom": "23.0.1",
"jsdom": "catalog:",
"langchain": "catalog:",
"langsmith": "^0.4.6",
"lodash": "catalog:",
@@ -45,6 +45,7 @@
"devDependencies": {
"@codemirror/buildhelper": "^0.1.5",
"@lezer/generator": "catalog:",
"@lezer/javascript": "1.5.4",
"typescript": "catalog:typescript",
"@rollup/plugin-node-resolve": "^9.0.0",
"@n8n/vitest-config": "workspace:*",
+1 -1
View File
@@ -28,7 +28,7 @@
"@modelcontextprotocol/sdk": "catalog:",
"@mozilla/readability": "catalog:",
"agent-browser": "catalog:",
"jsdom": "^23.0.1",
"jsdom": "catalog:",
"nanoid": "catalog:",
"picocolors": "catalog:",
"playwright-core": "catalog:",
+1 -1
View File
@@ -301,7 +301,7 @@
"html-to-text": "9.0.5",
"ignore": "^5.2.0",
"js-tiktoken": "catalog:",
"jsdom": "23.0.1",
"jsdom": "catalog:",
"jsonwebtoken": "catalog:",
"langchain": "catalog:",
"lodash": "catalog:",
+1
View File
@@ -45,6 +45,7 @@
"@vitest/coverage-v8": "catalog:",
"fast-check": "catalog:",
"typescript": "catalog:typescript",
"vite": "catalog:",
"vitest": "catalog:",
"vitest-mock-extended": "catalog:"
},
+3
View File
@@ -52,6 +52,7 @@
"@n8n/constants": "workspace:*",
"@n8n/design-system": "workspace:*",
"@n8n/eslint-config": "workspace:*",
"@n8n/expression-runtime": "workspace:*",
"@n8n/frontend-constants": "workspace:*",
"@n8n/frontend-module-insights": "workspace:*",
"@n8n/frontend-module-instance-registry": "workspace:*",
@@ -131,6 +132,7 @@
"flatted": "catalog:",
"highlight.js": "catalog:frontend",
"humanize-duration": "^3.27.2",
"jsdom": "catalog:",
"jsonpath-plus": "^10.3.0",
"katex": "0.18.2",
"lodash": "catalog:",
@@ -155,6 +157,7 @@
"stream-browserify": "^3.0.0",
"stylelint": "catalog:",
"timeago.js": "^4.0.2",
"type-fest": "5.8.0",
"typescript": "catalog:",
"unplugin-icons": "catalog:frontend",
"uuid": "catalog:",
-1
View File
@@ -1,5 +1,4 @@
/// <reference types="vite/client" />
/// <reference types="vite-plugin-comlink/client" />
/// <reference types="wa-sqlite/src/types" />
import 'vue-router';
+1 -1
View File
@@ -978,7 +978,7 @@
"iso-639-1": "2.1.15",
"isolated-vm": "catalog:",
"js-nacl": "1.4.0",
"jsdom": "23.0.1",
"jsdom": "catalog:",
"json-schema": "catalog:",
"jsonwebtoken": "catalog:",
"kafkajs": "catalog:",
+1
View File
@@ -77,6 +77,7 @@
"autocannon": "^8.0.0",
"axe-core": "^4.13.0",
"axe-html-reporter": "^2.2.11",
"debug": "^4.3.4",
"eslint-plugin-playwright": "catalog:e2e",
"flatted": "catalog:",
"generate-schema": "2.6.0",
+1
View File
@@ -61,6 +61,7 @@
"@types/ssh2": "catalog:",
"@types/xml2js": "catalog:",
"fast-check": "catalog:",
"jsdom": "catalog:",
"nock": "catalog:",
"typescript": "catalog:typescript",
"vite": "catalog:",
+28 -4
View File
@@ -602,6 +602,9 @@ catalogs:
js-tiktoken:
specifier: 1.0.21
version: 1.0.21
jsdom:
specifier: 23.0.1
version: 23.0.1
json-schema:
specifier: 0.4.0
version: 0.4.0
@@ -1470,7 +1473,7 @@ importers:
specifier: 'catalog:'
version: 7.0.2
jsdom:
specifier: 23.0.1
specifier: 'catalog:'
version: 23.0.1([email protected])([email protected])([email protected])
langchain:
specifier: 'catalog:'
@@ -2015,6 +2018,9 @@ importers:
'@lezer/generator':
specifier: 'catalog:'
version: 1.8.0
'@lezer/javascript':
specifier: 1.5.4
version: 1.5.4
'@n8n/vitest-config':
specifier: workspace:*
version: link:../vitest-config
@@ -3069,7 +3075,7 @@ importers:
specifier: 'catalog:'
version: 0.26.0
jsdom:
specifier: ^23.0.1
specifier: 'catalog:'
version: 23.0.1([email protected])([email protected])([email protected])
nanoid:
specifier: 'catalog:'
@@ -3503,7 +3509,7 @@ importers:
specifier: 'catalog:'
version: 1.0.21
jsdom:
specifier: 23.0.1
specifier: 'catalog:'
version: 23.0.1([email protected])([email protected])([email protected])
jsonwebtoken:
specifier: 'catalog:'
@@ -3768,6 +3774,9 @@ importers:
typescript:
specifier: catalog:typescript
version: 7.0.2
vite:
specifier: 'catalog:'
version: 8.0.2(@emnapi/[email protected])(@emnapi/[email protected])(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])
vitest:
specifier: 'catalog:'
version: 4.1.9(@opentelemetry/[email protected])(@types/[email protected])(@vitest/[email protected])(@vitest/[email protected])([email protected]([email protected])([email protected])([email protected]))([email protected](@emnapi/[email protected])(@emnapi/[email protected])(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))
@@ -6096,6 +6105,9 @@ importers:
'@n8n/eslint-config':
specifier: workspace:*
version: link:../../@n8n/eslint-config
'@n8n/expression-runtime':
specifier: workspace:*
version: link:../../@n8n/expression-runtime
'@n8n/frontend-constants':
specifier: workspace:*
version: link:../@n8n/frontend-constants
@@ -6333,6 +6345,9 @@ importers:
humanize-duration:
specifier: ^3.27.2
version: 3.27.3
jsdom:
specifier: 'catalog:'
version: 23.0.1([email protected])([email protected])([email protected])
jsonpath-plus:
specifier: ^10.3.0
version: 10.4.0
@@ -6405,6 +6420,9 @@ importers:
timeago.js:
specifier: ^4.0.2
version: 4.0.2
type-fest:
specifier: 5.8.0
version: 5.8.0
typescript:
specifier: 'catalog:'
version: 6.0.2
@@ -7035,7 +7053,7 @@ importers:
specifier: 1.4.0
version: 1.4.0
jsdom:
specifier: 23.0.1
specifier: 'catalog:'
version: 23.0.1([email protected])([email protected])([email protected])
json-schema:
specifier: 'catalog:'
@@ -7497,6 +7515,9 @@ importers:
axe-html-reporter:
specifier: ^2.2.11
version: 2.2.11([email protected])
debug:
specifier: ^4.3.4
version: 4.4.3([email protected])
eslint-plugin-playwright:
specifier: catalog:e2e
version: 2.2.2([email protected]([email protected])([email protected]))
@@ -7725,6 +7746,9 @@ importers:
fast-check:
specifier: 'catalog:'
version: 3.23.2
jsdom:
specifier: 'catalog:'
version: 23.0.1([email protected])([email protected])([email protected])
nock:
specifier: 'catalog:'
version: 14.0.14
+1
View File
@@ -216,6 +216,7 @@ catalog:
isolated-vm: ^7.0.1
js-base64: 3.7.8
js-tiktoken: 1.0.21
jsdom: 23.0.1
json-schema: 0.4.0
jsonrepair: 3.13.2
jsonwebtoken: 9.0.3