export interface WireManifest { /** Documentation string */ _doc?: string; /** npm package name (e.g. @mostajs/secu) */ package: string; /** Minimum version */ version: string; /** Module type: business (schemas+repos+perms) or functional (components only) */ type?: 'business' | 'functional'; /** App title (overrides common.json app.name) */ title?: string; /** App slogan (overrides common.json app.description) */ slogan?: string; /** ORM schemas to register */ schemas?: { from: string; exports: string[]; }; /** Repositories to wire into DAL service */ repositories?: RepositoryDef[]; /** Menu contribution for sidebar */ menu?: { name: string; from: string; }; /** RBAC permissions, categories, roles */ permissions?: { from: string; permissionsConst: string; definitionsConst: string; categoriesConst?: string; roles?: RoleDef[]; }; /** Seed factory for setup wizard */ seeds?: { factory: string; from: string; }; /** i18n translation files to copy and register */ i18n?: I18nDef[]; /** API route thin wrappers to generate in the host */ apiRoutes?: ApiRouteDef[]; /** Dashboard pages to generate in the host */ pages?: PageDef[]; } export interface RepositoryDef { /** Repository class name (e.g. ClientRepository) */ class: string; /** DTO type name (e.g. ClientDTO) */ type?: string; /** Factory function name in service.ts (e.g. clientRepo) */ factory: string; /** Import source (e.g. @mostajs/secu) */ from: string; } export interface RoleDef { /** Role name (e.g. agent_accueil) */ name: string; /** Description — required when creating a new role, ignored for addPermissions */ description?: string; /** System role flag — required when creating a new role */ system?: boolean; /** Full permissions list — creates or replaces the role */ permissions?: string[]; /** Permissions to ADD to an existing role (defined by another module) */ addPermissions?: string[]; } export interface ApiRouteDef { /** File path relative to project root (e.g. src/app/api/clients/route.ts) */ path: string; /** Full file content to write */ code: string; } export interface PageDef { /** File path relative to project root (e.g. src/app/dashboard/clients/page.tsx) */ path: string; /** Full file content to write */ code: string; } export interface I18nDef { /** i18n namespace key (e.g. clients) */ namespace: string; /** Source path relative to project root (e.g. node_modules/@mostajs/secu/i18n/fr/clients.json) */ source?: string; } //# sourceMappingURL=manifest.d.ts.map