You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
pnpm --filter @teslemetry/n8n-nodes-teslemetry validate (n8n-node lint) failed before it linted anything: Command "eslint" not found. This PR makes it run.
Raise @n8n/node-cli from ^0.17.0 to ^0.51.5. n8n's publishing guide requires 0.23.0 or later. Add [email protected], the version that node-cli pins.
Add packages/n8n-nodes-teslemetry/eslint.config.mjs, which uses node-cli's config. It ignores test/, scripts/ and the tool config files, because files is ["dist"] and they never ship.
Add a root .pnpmfile.cjs. typescript-eslint needs the TypeScript compiler API, which typescript@7 no longer ships. The hook gives typescript-eslint the @typescript/[email protected] build in place of the workspace's TypeScript 7 peer. n8n's scanner pins the same build. Nothing else in the workspace changes.
Only development tooling changes. The published tarball does not change, so this PR has no changeset.
What validate reports now
validate runs, but it fails. It reports 52 errors and 5 warnings in src/: no-case-declarations, no-explicit-any, missing-paired-item, node-connection-type-literal, no-credential-reuse, require-node-description-fields, icon rules and node-usable-as-tool. This PR leaves them unfixed on purpose. They are code changes, and they matter only for n8n Cloud verification. That work is deferred: npx @n8n/scan-community-package also fails 0.5.1 on the bundled SDK's timers, events, globalThis and console, and a later task will decide on verification.
Checks
pnpm install --frozen-lockfile passes with the new lockfile and pnpmfile.
pnpm lint (oxlint) passes.
pnpm --filter @teslemetry/n8n-nodes-teslemetry build and tsc pass.
Reviewing files that changed from the base of the PR and between a5e046d and 6125661.
⛔ Files ignored due to path filters (1)
pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (3)
.pnpmfile.cjs
packages/n8n-nodes-teslemetry/eslint.config.mjs
packages/n8n-nodes-teslemetry/package.json
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.
📝 Walkthrough
The changes add a pnpm hook for TypeScript peer dependencies in selected packages and update the Teslemetry node package’s ESLint configuration and development dependencies.
Changes: TypeScript and ESLint tooling
Layer / File(s)
Summary
TypeScript peer dependency handling .pnpmfile.cjs
The readPackage hook replaces a declared TypeScript peer dependency with npm:@typescript/[email protected] for typescript-eslint and @typescript-eslint/* packages. Other packages and packages without that peer dependency are returned unchanged.
The tooling changes do not leave a checked-in validation or publishing workflow failing. The package lint command remains available as a developer check.
Security architecture risk:🔵 Low · up to 61256
The change is confined to development tooling and dependency resolution. No new runtime attack path was demonstrated, but the compatibility override applies across workspace installations, and its installation-failure recovery behavior was not fully verified.
Retained concerns
No architecture-level concerns identified.
Security review details
Security Blast Radius
observed — The override is selected by package name and the presence of a TypeScript peer, without an importer-specific restriction. Its resolution scope therefore includes every matching package processed by the workspace hook, not only dependencies reached from the n8n package.
Trust Boundaries and Controls
observed — Manifest metadata determines whether the rewrite applies, but the replacement package and version are fixed in repository-controlled code. The callback contains no command execution, credential access or network operation, and nonmatching manifests are returned unchanged.
Resilience and Maintainability Implications
inferred — For ordinary mutable parsed manifests, successful execution preserves object identity and other dependency entries. A repeated call becomes a no-op because the TypeScript peer has already been removed. The callback has no asynchronous suspension point; this does not establish installation-level atomicity or recovery guarantees.
Pre-merge checks · 4 · 1
Failed checks (1 warning)
Check name
Status
Explanation
Resolution
Docstring Coverage
Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 2 files. (1 skipped: 1 …
Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed checks (4 passed)
Check name
Status
Explanation
Title check
The title clearly and concisely describes the main change: making the n8n package's validate script run.
Description check
The description is directly related to the changes. It explains the tooling updates, the validation result, and the reported checks.
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage
Explanation
Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 2 files. (1 skipped: 1 unsupported.)
Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
Commit to this branch
Create a new PR
🧪 Generate unit tests (beta)
Commit to this branch
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
pnpm --filter @teslemetry/n8n-nodes-teslemetry validate(n8n-node lint) failed before it linted anything:Command "eslint" not found. This PR makes it run.@n8n/node-clifrom^0.17.0to^0.51.5. n8n's publishing guide requires 0.23.0 or later. Add[email protected], the version that node-cli pins.packages/n8n-nodes-teslemetry/eslint.config.mjs, which uses node-cli'sconfig. It ignorestest/,scripts/and the tool config files, becausefilesis["dist"]and they never ship..pnpmfile.cjs. typescript-eslint needs the TypeScript compiler API, whichtypescript@7no longer ships. The hook gives typescript-eslint the@typescript/[email protected]build in place of the workspace's TypeScript 7 peer. n8n's scanner pins the same build. Nothing else in the workspace changes.Only development tooling changes. The published tarball does not change, so this PR has no changeset.
What
validatereports nowvalidateruns, but it fails. It reports 52 errors and 5 warnings insrc/:no-case-declarations,no-explicit-any,missing-paired-item,node-connection-type-literal,no-credential-reuse,require-node-description-fields, icon rules andnode-usable-as-tool. This PR leaves them unfixed on purpose. They are code changes, and they matter only for n8n Cloud verification. That work is deferred:npx @n8n/scan-community-packagealso fails 0.5.1 on the bundled SDK's timers,events,globalThisandconsole, and a later task will decide on verification.Checks
pnpm install --frozen-lockfilepasses with the new lockfile and pnpmfile.pnpm lint(oxlint) passes.pnpm --filter @teslemetry/n8n-nodes-teslemetry buildandtscpass.