Overlay Engine
`@lssm/lib.overlay-engine` keeps OverlaySpecs typed, signed, and auditable across tenants, roles, users, and devices.
Define + Sign
import { defineOverlay } from '@lssm/lib.overlay-engine/spec';
import { signOverlay } from '@lssm/lib.overlay-engine/signer';
const overlay = defineOverlay({
overlayId: 'acme-order-form',
version: '1.0.0',
appliesTo: { capability: 'billing.createOrder', tenantId: 'acme' },
modifications: [{ type: 'hideField', field: 'internalNotes' }],
});
const signed = await signOverlay(overlay, privateKeyPem);Runtime
`OverlayRegistry` stores signed overlays with specificity scoring. `OverlayEngine` merges modifications and emits audit events.
const registry = new OverlayRegistry();
registry.register(signed);
const engine = new OverlayEngine({
registry,
audit: (event) => auditLog.write(event),
});
const result = engine.apply({
target: { fields },
capability: 'billing.createOrder',
tenantId: 'acme',
});React Hooks
Render overlays in React/React Native via `useOverlay`.
import { useOverlay } from '@lssm/lib.overlay-engine/react';
const { target } = useOverlay(engine, {
target: { fields },
capability: 'billing.createOrder',
tenantId: 'acme',
});