@m3r/sdk 0.5.0

SDK de extensões

A extensão declara comportamento. O Core persiste. O ERP pinta com os componentes padrão.

Uma extensão M3R é um processo TypeScript isolado. Ela não desenha React no ERP, não executa SQL e não importa o backend.

O contrato é um único objeto: ctx. Quatro canais, sem string solta para o que a plataforma já fechou.

CanalPapel
ctx.m3rA extensão chama o Core (hoje: vendas).
ctx.eventsO Core avisa depois do commit. Não aborta.
ctx.entryPointsO Core consulta a extensão no meio da tela ou do save. Pode negar.
ctx.extTabela, tela, menu e relatório declarativos. O ERP renderiza.

ctx.capabilities é o mesmo catálogo que o compilador, o m3r validate e esta documentação usam. Se o conjunto é fechado — módulo, IP, evento, scope, tipo de coluna, menuKey — ele é const + tipo. Typo não passa.

SDK M3R no VS Code
src/index.ts
import { defineExtension } from "@m3r/sdk";
import { registerVendas } from "./vendas/register";

export default defineExtension({
  async activate(ctx) {
    await registerVendas(ctx);
  }
});

O index só orquestra. Tabela, tela, nav, IP e evento ficam na pasta do domínio. Padrões.