Skip to content

chore(n8n): make the validate script run - #158

Merged
Bre77 merged 1 commit into
mainfrom
fm/ts-n8n-verification
Oct 14, 2026
Merged

Bre77 merged 1 commit into
mainfrom
fm/ts-n8n-verification

Conversation

@Bre77

@Bre77 Bre77 commented Oct 13, 2026

Copy link
Copy Markdown
Member

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.

  • Raise @n8n/node-cli from ^0.17.0 to ^0.51.5. n8n's publishing guide requires 0.23.0 or later. Add eslint@9.29.0, 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/typescript6@6.0.2 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.

@coderabbitai

coderabbitai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: Teslemetry/coderabbit/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 8fa0e22f-5193-4529-aff5-e8ee574da073
📥 Commits

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/typescript6@6.0.2 for typescript-eslint and @typescript-eslint/* packages. Other packages and packages without that peer dependency are returned unchanged.
Node package ESLint setup
packages/n8n-nodes-teslemetry/package.json, packages/n8n-nodes-teslemetry/eslint.config.mjs
The package upgrades @n8n/node-cli to ^0.51.5, adds eslint at 9.29.0, and adds an ESLint config that extends @n8n/node-cli/eslint with global ignores.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to 61256

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 · Passed 4 · Failed 1

Failed Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage Warning 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 Passed checks (4 passed)
Check name Status Explanation
Title check Passed The title clearly and concisely describes the main change: making the n8n package's validate script run.
Description check Passed The description is directly related to the changes. It explains the tooling updates, the validation result, and the reported checks.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed 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.

@Bre77
Bre77 merged commit 76f31c2 into main Oct 14, 2026
3 checks passed
@Bre77
Bre77 deleted the fm/ts-n8n-verification branch October 14, 2026 01:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant