Documentation
    Preparing search index...

    Function createNapEnforceGate

    • Create an enforcement gate for NIP-5D NAP message handlers.

      Unlike createEnforceGate (which resolves identity by pubkey), this factory resolves identity by windowId — necessary for NIP-5D sessions where pubkey is ''.

      Parameters

      Returns (
          windowId: string,
          capability:
              | "relay:read"
              | "relay:write"
              | "cache:read"
              | "cache:write"
              | "hotkey:forward"
              | "state:read"
              | "state:write"
              | "identity:read"
              | "keys:bind"
              | "keys:forward"
              | "media:control"
              | "notify:send"
              | "notify:channel"
              | "theme:read"
              | "config:read"
              | "resource:fetch"
              | "cvm:call"
              | "outbox:read"
              | "outbox:write"
              | "upload:write"
              | "intent:read"
              | "intent:write",
          message?: NapMessage,
      ) => EnforceResult

      An enforceNap function that resolves identity by windowId and delegates to the ACL check.

      const gate = createNapEnforceGate({
      checkAcl: aclStore.check,
      resolveIdentityByWindowId: (wid) => sessionRegistry.getEntryByWindowId(wid),
      onAclCheck: hooks.onAclCheck,
      });
      const result = gate('win-1', 'relay:write', { type: 'relay.publish' });
      // result.allowed === true | false