Skip to content
TypeWire

@tahanabavi/type-permission

v0.1.0

Framework-less, dependency-free capability permissions: one shared bit map, evaluated identically on client and server, with layered resolution, codecs, a lock file and contract-linkable requirements.

Trust boundary

Client-side checks are UX only — the server recomputes from the session on every request; a bitfield in a cookie is a cache, never an input to a decision. A bit's meaning is permanent (rename freely, never reuse). Capability ≠ ownership: has(MANAGE_MESSAGES) || msg.authorId === me.id — the second half is your app's.