n8n/packages/frontend/@n8n/frontend-module-sdk
Alex Grozav 8b22cca3a0
Some checks are pending
Build: Benchmark Image / build (push) Waiting to run
CI: Master (Build, Test, Lint) / Build for Github Cache (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (22.23.2) (push) Waiting to run
CI: Master (Build, Test, Lint) / Unit tests (24.18.1) (push) Waiting to run
CI: Master (Build, Test, Lint) / Lint (push) Waiting to run
CI: Master (Build, Test, Lint) / Performance (push) Waiting to run
CI: Master (Build, Test, Lint) / Notify Slack on failure (push) Blocked by required conditions
Util: Publish API Schema / Cloudflare Pages (push) Waiting to run
refactor(editor): Derive modal state from the registry instead of mirroring it (no-changelog) (#35859)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-11 07:54:50 +00:00
..
src refactor(editor): Derive modal state from the registry instead of mirroring it (no-changelog) (#35859) 2026-08-11 07:54:50 +00:00
.gitignore
biome.jsonc
eslint.config.mjs
package.json 🚀 Release 2.35.0 (#36006) 2026-08-11 07:16:06 +00:00
README.md
tsconfig.json
vite.config.ts

@n8n/frontend-module-sdk

The frontend module contract and registries for n8n editor modules.

This package owns the FrontendModuleDescription descriptor type plus the modal and resource registries that features register against. The editor shell keeps the wiring (moduleInitializer) that drives the two-phase lifecycle; this package only defines the contract and the registry state.

It is a source-only package (no build step): consumers resolve it from src via the editor-ui Vite alias and tsconfig paths, and src/index.ts is the only public entry point.

import { modalRegistry, registerResource, type FrontendModuleDescription } from '@n8n/frontend-module-sdk';