Documentation
    Preparing search index...

    Module

    @kehto/acl — Pure, WASM-ready ACL module for the napplet protocol.

    Zero dependencies. Zero side effects. All functions are pure: state in, result out. Designed for deterministic access control decisions that could be compiled to WASM without modification.

    import {
    createState, check, grant, revoke, block, unblock,
    CAP_RELAY_READ, CAP_SIGN_EVENT,
    } from '@kehto/acl';

    // Create state with restrictive default (deny unknown identities)
    let state = createState('restrictive');

    const id = { dTag: 'chat', hash: 'ff00...' };

    // Grant relay read access
    state = grant(state, id, CAP_RELAY_READ);
    check(state, id, CAP_RELAY_READ); // true
    check(state, id, CAP_SIGN_EVENT); // false (not granted)

    // Block the identity (overrides all caps)
    state = block(state, id);
    check(state, id, CAP_RELAY_READ); // false (blocked)

    // Unblock restores previous capabilities
    state = unblock(state, id);
    check(state, id, CAP_RELAY_READ); // true (restored)

    Interfaces

    AclEntry
    AclState
    CapabilityResolution
    Identity
    NapMessage

    Variables

    CAP_ALL
    CAP_CACHE_READ
    CAP_CACHE_WRITE
    CAP_HOTKEY_FORWARD
    CAP_NONE
    CAP_RELAY_READ
    CAP_RELAY_WRITE
    CAP_SIGN_EVENT
    CAP_SIGN_NIP04
    CAP_SIGN_NIP44
    CAP_STATE_READ
    CAP_STATE_WRITE
    DEFAULT_QUOTA

    Functions

    block
    check
    createState
    deserialize
    getQuota
    grant
    migrateAclState
    resolveCapabilitiesNap
    revoke
    serialize
    setQuota
    toKey
    unblock

    References

    ALL_CAPABILITIES → ALL_CAPABILITIES
    CAP_CVM_CALL → CAP_CVM_CALL
    CAP_IDENTITY_READ → CAP_IDENTITY_READ
    CAP_KEYS_BIND → CAP_KEYS_BIND
    CAP_KEYS_FORWARD → CAP_KEYS_FORWARD
    CAP_MEDIA_CONTROL → CAP_MEDIA_CONTROL
    CAP_NOTIFY_CHANNEL → CAP_NOTIFY_CHANNEL
    CAP_NOTIFY_SEND → CAP_NOTIFY_SEND
    CAP_THEME_READ → CAP_THEME_READ
    Capability → Capability