@mounaji_npm/module-registry-core
v0.4.1
Published
Production module registry and capability resolution for package-aware Mounaji SaaS builders
Maintainers
Readme
@mounaji_npm/module-registry-core
Core capabilities context and module manifest resolver for module-driven navigation.
Install
npm install @mounaji_npm/module-registry-corereact and react-dom are required peer dependencies.
Quick Start
import {
CapabilitiesProvider,
useResolvedModuleManifests,
mapToNavModules,
} from '@mounaji_npm/module-registry-core';
const manifests = [
{ id: 'dashboard', label: 'Dashboard', path: '/dashboard', order: 1 },
{
id: 'chat',
label: 'Chat',
path: '/chat',
order: 2,
capabilities: { features: ['chat'], permissions: ['chat.read'] },
},
];
function Nav() {
const resolved = useResolvedModuleManifests(manifests);
const navItems = mapToNavModules(resolved);
return (
<ul>
{navItems.map((item) => (
<li key={item.id}>{item.label}</li>
))}
</ul>
);
}
const adapter = {
async getCapabilitiesSnapshot() {
return {
plan: 'pro',
permissions: ['chat.read'],
features: ['chat'],
modules: {
dashboard: { installed: true, enabled: true },
chat: { installed: true, enabled: true },
},
};
},
};
export default function App() {
return (
<CapabilitiesProvider adapter={adapter} params={{ organizationId: 'org_1', userId: 'usr_1' }}>
<Nav />
</CapabilitiesProvider>
);
}Main Exports
CapabilitiesProvideranduseCapabilities.createModuleManifestandvalidateManifest.resolveModuleAccessandresolveModuleManifests.useResolvedModuleManifests.mapToNavModules.
Use these to normalize manifests, apply capability rules, and project them into sidebar-ready items.
