idb.mx raw

   1  package idb
   2  
   3  // IndexedDB jsbridge — purpose-built event and DM storage.
   4  // The JS runtime handles all IndexedDB internals (schema, cursors, indices).
   5  
   6  // Open opens/creates the database. Calls fn when ready.
   7  func Open(fn func()) { panic("jsbridge") }
   8  
   9  // SaveEvent saves a Nostr event (JSON string). Calls fn with true if new.
  10  func SaveEvent(eventJSON string, fn func(bool)) { panic("jsbridge") }
  11  
  12  // QueryEvents queries events matching a filter (JSON string).
  13  // Calls fn with a JSON array of matching events.
  14  func QueryEvents(filterJSON string, fn func(string)) { panic("jsbridge") }
  15  
  16  // SaveDM saves a DM record (JSON string).
  17  // Calls fn with result: "saved", "duplicate", or "upgraded".
  18  func SaveDM(dmJSON string, fn func(string)) { panic("jsbridge") }
  19  
  20  // QueryDMs queries DMs for a peer pubkey.
  21  // until is Unix timestamp or 0 for no upper bound.
  22  // Calls fn with a JSON array of DM records.
  23  func QueryDMs(peer string, limit int, until int64, fn func(string)) { panic("jsbridge") }
  24  
  25  // GetConversationList returns all DM conversations.
  26  // Calls fn with a JSON array of conversation summaries.
  27  func GetConversationList(fn func(string)) { panic("jsbridge") }
  28  
  29  // ClearDMsByPeer deletes all DM records for a given peer pubkey.
  30  // Calls fn when complete.
  31  func ClearDMsByPeer(peer string, fn func()) { panic("jsbridge") }
  32  
  33  // SetVersion sets the expected app version for epoch checks.
  34  // On Open, if stored version != this version, all data stores are flushed.
  35  func SetVersion(v string) { panic("jsbridge") }
  36