n8n/packages/frontend/@n8n/frontend-module-sdk
2026-07-14 09:20:00 +00:00
..
src refactor(editor): Extract module contract and registries into @n8n/frontend-module-sdk (no-changelog) (#34080) 2026-07-14 09:20:00 +00:00
.gitignore refactor(editor): Extract module contract and registries into @n8n/frontend-module-sdk (no-changelog) (#34080) 2026-07-14 09:20:00 +00:00
biome.jsonc refactor(editor): Extract module contract and registries into @n8n/frontend-module-sdk (no-changelog) (#34080) 2026-07-14 09:20:00 +00:00
eslint.config.mjs refactor(editor): Extract module contract and registries into @n8n/frontend-module-sdk (no-changelog) (#34080) 2026-07-14 09:20:00 +00:00
package.json refactor(editor): Extract module contract and registries into @n8n/frontend-module-sdk (no-changelog) (#34080) 2026-07-14 09:20:00 +00:00
README.md refactor(editor): Extract module contract and registries into @n8n/frontend-module-sdk (no-changelog) (#34080) 2026-07-14 09:20:00 +00:00
tsconfig.json refactor(editor): Extract module contract and registries into @n8n/frontend-module-sdk (no-changelog) (#34080) 2026-07-14 09:20:00 +00:00
vite.config.ts refactor(editor): Extract module contract and registries into @n8n/frontend-module-sdk (no-changelog) (#34080) 2026-07-14 09:20:00 +00:00

@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';