@anodb/core 0.7.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/PROTOCOL.md +30 -7
  2. package/README.md +82 -40
  3. package/dist/anodb.d.ts +1 -27
  4. package/dist/anodb.js +2 -151
  5. package/dist/anodb.js.map +1 -1
  6. package/dist/blob.d.ts +3 -3
  7. package/dist/blob.js +1 -1
  8. package/dist/blob.js.map +1 -1
  9. package/dist/cli/init.js +5 -2
  10. package/dist/cli/init.js.map +1 -1
  11. package/dist/cli/main.js +0 -0
  12. package/dist/crypto.d.ts +2 -2
  13. package/dist/crypto.js +2 -2
  14. package/dist/crypto.js.map +1 -1
  15. package/dist/db.d.ts +9 -10
  16. package/dist/db.js +28 -33
  17. package/dist/db.js.map +1 -1
  18. package/dist/defaults.d.ts +3 -2
  19. package/dist/defaults.js +7 -5
  20. package/dist/defaults.js.map +1 -1
  21. package/dist/drivers/browser.d.ts +2 -1
  22. package/dist/drivers/browser.js +4 -1
  23. package/dist/drivers/browser.js.map +1 -1
  24. package/dist/index.d.ts +4 -7
  25. package/dist/index.js +2 -3
  26. package/dist/index.js.map +1 -1
  27. package/dist/kysely.d.ts +10 -5
  28. package/dist/kysely.js +3 -2
  29. package/dist/kysely.js.map +1 -1
  30. package/dist/links.d.ts +8 -0
  31. package/dist/links.js +16 -0
  32. package/dist/links.js.map +1 -0
  33. package/dist/policy.d.ts +16 -0
  34. package/dist/policy.js +29 -0
  35. package/dist/policy.js.map +1 -0
  36. package/dist/react.d.ts +3 -2
  37. package/dist/react.js +3 -1
  38. package/dist/react.js.map +1 -1
  39. package/dist/result-types.d.ts +13 -0
  40. package/dist/result-types.js +157 -0
  41. package/dist/result-types.js.map +1 -0
  42. package/dist/schema.d.ts +19 -2
  43. package/dist/schema.js +36 -5
  44. package/dist/schema.js.map +1 -1
  45. package/dist/sharing.d.ts +18 -23
  46. package/dist/sharing.js +56 -99
  47. package/dist/sharing.js.map +1 -1
  48. package/dist/store.d.ts +8 -30
  49. package/dist/store.js +35 -86
  50. package/dist/store.js.map +1 -1
  51. package/dist/types.d.ts +6 -0
  52. package/dist/ui.d.ts +131 -0
  53. package/dist/ui.js +361 -0
  54. package/dist/ui.js.map +1 -0
  55. package/docs/DECISIONS.md +5 -0
  56. package/docs/DESIGN.md +4 -18
  57. package/package.json +3 -2
package/dist/sharing.d.ts CHANGED
@@ -18,14 +18,6 @@ export interface Invitation {
18
18
  role: Role;
19
19
  from: string;
20
20
  }
21
- export interface JoinRequest {
22
- id: string;
23
- space: string;
24
- role: Role;
25
- identity: string;
26
- npub: string;
27
- name: string;
28
- }
29
21
  export interface PairingOffer {
30
22
  uri: string;
31
23
  /** Show this; the approving device shows the same code. */
@@ -50,13 +42,22 @@ export declare class AnoDBSharing<S extends SchemaDefinition> extends AnoDBCore<
50
42
  protected membership(space: string): Membership;
51
43
  protected invalidateMembership(space: string): void;
52
44
  protected isAuthorizedWriter(space: string, identity: string, device: string, seq: number): boolean;
45
+ protected roleOf(space: string, identity: string): Role | undefined;
53
46
  protected rebuildSpace(space: string): Set<string>;
54
47
  /** Create a shared space owned by this identity. */
55
48
  createSpace(name: string): Promise<string>;
56
49
  members(space: string): Member[];
57
50
  roleIn(space: string): Role | undefined;
58
- /** Invite by npub / pubkey. The invitee must have published a key package. */
59
- invite(space: string, who: string, role: Exclude<Role, 'owner'>): Promise<void>;
51
+ /**
52
+ * Add a member by npub / pubkey and deliver the space key to their devices (owners / admins).
53
+ * Who may join is decided outside anoDB (e.g. anoAuth): this is the primitive it calls.
54
+ * `devices`: the member's device delegations; when omitted, the devices this database already
55
+ * knows for that identity (e.g. a member of another shared space) or their published key package
56
+ * (`db.publishKeyPackage()`) are used. The new member sees an invitation and must accept it.
57
+ */
58
+ addMember(space: string, who: string, role: Exclude<Role, 'owner'>, opts?: {
59
+ devices?: NostrEvent[];
60
+ }): Promise<void>;
60
61
  setRole(space: string, who: string, role: Exclude<Role, 'owner'>): Promise<void>;
61
62
  removeMember(space: string, who: string): Promise<void>;
62
63
  transferOwnership(space: string, who: string): Promise<void>;
@@ -65,7 +66,7 @@ export declare class AnoDBSharing<S extends SchemaDefinition> extends AnoDBCore<
65
66
  * New epoch key: delivered to every active device of every member (new members get an
66
67
  * invitation instead), then a snapshot of the current state is posted in the new epoch.
67
68
  */
68
- rotateKey(space: string, invitees?: Map<string, string | undefined>): Promise<void>;
69
+ rotateKey(space: string, invitees?: ReadonlySet<string>): Promise<void>;
69
70
  /** Post the current state of a space as a (multi-part) snapshot message. */
70
71
  protected snapshot(space: string): void;
71
72
  /** Hook (v0.4: prune superseded envelopes). */
@@ -82,18 +83,12 @@ export declare class AnoDBSharing<S extends SchemaDefinition> extends AnoDBCore<
82
83
  /** Join a space you were invited to. Nothing is synced for a space until you accept. */
83
84
  acceptInvitation(space: string): Promise<void>;
84
85
  declineInvitation(space: string): void;
85
- /** One-time, expiring link. Whoever opens it can only *ask* to join; an admin must approve. */
86
- createInviteLink(space: string, opts?: {
87
- role?: Exclude<Role, 'owner'>;
88
- expiresInMs?: number;
89
- }): Promise<string>;
90
- /** Invitee: ask to join via a link. The invitation that follows is accepted automatically. */
91
- requestJoin(link: string, name?: string): Promise<void>;
92
- joinRequests(): JoinRequest[];
93
- onJoinRequest(fn: (r: JoinRequest) => void): () => void;
94
- approveJoinRequest(id: string): Promise<void>;
95
- rejectJoinRequest(id: string): void;
96
- /** Publish the list of this identity's devices so others can invite it by npub (needs the identity key). */
86
+ /**
87
+ * This identity's current device delegations (signed by the identity). Hand them to whoever adds
88
+ * you (`addMember(space, npub, role, { devices })`) when you have not published a key package.
89
+ */
90
+ deviceDelegations(): NostrEvent[];
91
+ /** Publish the list of this identity's devices so others can add it by npub (needs the identity key). */
97
92
  publishKeyPackage(): Promise<NostrEvent>;
98
93
  devices(): Device[];
99
94
  /**
package/dist/sharing.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { bytesToHex, conversationKey, decrypt, hexToBytes, inboxTag, keyId, npubEncode, parsePubkey, randomBytes, randomHex, secretKeyFor, secretTag, sha256Hex, signWith, spaceTag, verifySignedEvent, } from './crypto.js';
2
- import { AnoDBCore } from './db.js';
2
+ import { AnoDBCore, AnoDBError } from './db.js';
3
3
  import { KEY_PACKAGE_KIND, createDelegation, createKeyPackage, createRevocation, delegationName, isEvent, parseKeyPackage, verifyDelegation } from './identity.js';
4
4
  import { canWrite, evaluate, mayManage, mayWrite, parseOp, } from './membership.js';
5
5
  import { MAX_BODY_BYTES, MESSAGE_KIND, byteLength, parseInboxPayload, parseStreamPayload } from './protocol.js';
6
+ import { changeAllowed } from './policy.js';
6
7
  import { SYS_DELETED } from './schema.js';
7
8
  /** Keys rotate after this long even without membership changes (Q11). */
8
9
  export const KEY_MAX_AGE_MS = 30 * 24 * 3600_000;
@@ -20,7 +21,6 @@ const pairingCode = (devicePk, secret) => String(parseInt(sha256Hex(`anodb/v2/pa
20
21
  /** Adds multi-user spaces, roles, invitations, key rotation, snapshots and device pairing. */
21
22
  export class AnoDBSharing extends AnoDBCore {
22
23
  #membership = new Map();
23
- #joinListeners = new Set();
24
24
  #inviteListeners = new Set();
25
25
  #pairing = null;
26
26
  async afterInit() {
@@ -54,10 +54,18 @@ export class AnoDBSharing extends AnoDBCore {
54
54
  isAuthorizedWriter(space, identity, device, seq) {
55
55
  return mayWrite(this.membership(space), identity, device, seq);
56
56
  }
57
+ roleOf(space, identity) {
58
+ return this.membership(space).roles.get(identity);
59
+ }
57
60
  rebuildSpace(space) {
58
61
  const touched = super.rebuildSpace(space);
59
62
  for (const snap of this.#completeSnapshots(space)) {
60
- for (const t of this.store.applyChanges(space, snap.cells))
63
+ // Cells that name their signer must still pass the row rule for that signer.
64
+ const cells = snap.cells.filter((c) => {
65
+ const by = c[5];
66
+ return typeof by !== 'string' || changeAllowed(this.schema, c, by, this.roleOf(space, by));
67
+ });
68
+ for (const t of this.store.applyChanges(space, cells))
61
69
  touched.add(t);
62
70
  }
63
71
  return touched;
@@ -74,13 +82,27 @@ export class AnoDBSharing extends AnoDBCore {
74
82
  roleIn(space) {
75
83
  return this.membership(space).roles.get(this.pubkey);
76
84
  }
77
- /** Invite by npub / pubkey. The invitee must have published a key package. */
78
- async invite(space, who, role) {
85
+ /**
86
+ * Add a member by npub / pubkey and deliver the space key to their devices (owners / admins).
87
+ * Who may join is decided outside anoDB (e.g. anoAuth): this is the primitive it calls.
88
+ * `devices`: the member's device delegations; when omitted, the devices this database already
89
+ * knows for that identity (e.g. a member of another shared space) or their published key package
90
+ * (`db.publishKeyPackage()`) are used. The new member sees an invitation and must accept it.
91
+ */
92
+ async addMember(space, who, role, opts = {}) {
79
93
  const identity = parsePubkey(who);
80
- const devices = await this.#fetchKeyPackage(identity);
81
- if (devices.length === 0)
82
- throw new Error(`anoDB: ${npubEncode(identity)} has not published a key package (db.publishKeyPackage())`);
83
- await this.#addMember(space, identity, role, devices.map((d) => d.delegation));
94
+ const known = this.store.devices(identity).filter((d) => !d.revoked).map((d) => JSON.parse(d.delegation));
95
+ const given = opts.devices ?? (known.length > 0 ? known : (await this.#fetchKeyPackage(identity)).map((d) => d.delegation));
96
+ const delegations = given.filter((d) => {
97
+ const device = d.tags.find((t) => t[0] === 'device')?.[1];
98
+ return !!device && verifyDelegation(d, device) === identity;
99
+ });
100
+ if (delegations.length === 0) {
101
+ throw new Error(opts.devices
102
+ ? `anoDB: none of the given devices is delegated by ${npubEncode(identity)}`
103
+ : `anoDB: ${npubEncode(identity)} has not published a key package (db.publishKeyPackage())`);
104
+ }
105
+ await this.#addMember(space, identity, role, delegations);
84
106
  }
85
107
  async setRole(space, who, role) {
86
108
  const identity = parsePubkey(who);
@@ -118,7 +140,7 @@ export class AnoDBSharing extends AnoDBCore {
118
140
  this.notify(changed, 'local');
119
141
  void this.sync?.flush();
120
142
  }
121
- async #addMember(space, identity, role, delegations, req) {
143
+ async #addMember(space, identity, role, delegations) {
122
144
  for (const d of delegations) {
123
145
  const device = d.tags.find((t) => t[0] === 'device')?.[1];
124
146
  if (device && verifyDelegation(d, device) === identity)
@@ -126,14 +148,14 @@ export class AnoDBSharing extends AnoDBCore {
126
148
  }
127
149
  if (!this.membership(space).roles.has(identity))
128
150
  await this.#postOp(space, { type: 'add', identity, role });
129
- await this.rotateKey(space, new Map([[identity, req]]));
151
+ await this.rotateKey(space, new Set([identity]));
130
152
  }
131
153
  // ---- key rotation & snapshots -------------------------------------------------------
132
154
  /**
133
155
  * New epoch key: delivered to every active device of every member (new members get an
134
156
  * invitation instead), then a snapshot of the current state is posted in the new epoch.
135
157
  */
136
- async rotateKey(space, invitees = new Map()) {
158
+ async rotateKey(space, invitees = new Set()) {
137
159
  this.assertOpen();
138
160
  const m = this.membership(space);
139
161
  const s = this.store.spaces().find((x) => x.id === space);
@@ -151,10 +173,7 @@ export class AnoDBSharing extends AnoDBCore {
151
173
  for (const d of this.store.devices(identity)) {
152
174
  if (d.revoked || d.device === this.devicePubkey || m.revokedDevices.has(d.device))
153
175
  continue;
154
- const invite = invitees.has(identity);
155
- const body = invite
156
- ? { ...grant, t: 'invite', role: m.roles.get(identity), ...(invitees.get(identity) ? { req: invitees.get(identity) } : {}) }
157
- : { ...grant, t: 'key' };
176
+ const body = invitees.has(identity) ? { ...grant, t: 'invite', role: m.roles.get(identity) } : { ...grant, t: 'key' };
158
177
  this.#sendInbox(d.device, body);
159
178
  }
160
179
  }
@@ -225,7 +244,14 @@ export class AnoDBSharing extends AnoDBCore {
225
244
  if (parts.length !== n || new Set(parts.map((p) => p.i)).size !== n || parts.some((p) => p.n !== n))
226
245
  continue;
227
246
  const last = Math.max(...parts.map((p) => p.seq));
228
- if (!this.isAuthorizedWriter(space, parts[0].identity, parts[0].device, last))
247
+ const author = parts[0].identity;
248
+ if (!this.isAuthorizedWriter(space, author, parts[0].device, last))
249
+ continue;
250
+ // A snapshot restates every cell, including other members' rows, so it is only trusted from
251
+ // someone who may manage the space (owner / admin) — or from this identity's own devices.
252
+ // A plain writer's snapshot could otherwise rewrite or impersonate anyone's rows.
253
+ const role = this.roleOf(space, author);
254
+ if (author !== this.pubkey && role !== 'owner' && role !== 'admin')
229
255
  continue;
230
256
  const cells = parts.flatMap((p) => (Array.isArray(p.body?.cells) ? p.body.cells : []));
231
257
  const h = parts.find((p) => p.i === 0)?.body;
@@ -235,7 +261,8 @@ export class AnoDBSharing extends AnoDBCore {
235
261
  if (typeof v === 'number' && Number.isSafeInteger(v))
236
262
  heads[d] = v;
237
263
  }
238
- out.push({ cells: cells.filter((c) => Array.isArray(c) && c.length === 5), heads });
264
+ const valid = (c) => Array.isArray(c) && (c.length === 5 || (c.length === 6 && typeof c[5] === 'string' && /^[0-9a-f]{64}$/.test(c[5])));
265
+ out.push({ cells: cells.filter(valid), heads });
239
266
  }
240
267
  return out;
241
268
  }
@@ -247,8 +274,9 @@ export class AnoDBSharing extends AnoDBCore {
247
274
  const since = Number(this.store.getMeta(`snap:${space}`) ?? '0');
248
275
  if (this.store.countMessages(space, 'ch', since) < SNAPSHOT_EVERY)
249
276
  return;
250
- if (!canWrite(this.membership(space).roles.get(this.pubkey)))
251
- return;
277
+ const role = this.membership(space).roles.get(this.pubkey);
278
+ if (role !== 'owner' && role !== 'admin')
279
+ return; // others would not trust it (see #completeSnapshots)
252
280
  this.snapshot(space);
253
281
  }
254
282
  async #rotateStaleKeys() {
@@ -319,9 +347,6 @@ export class AnoDBSharing extends AnoDBCore {
319
347
  subscriptionTags() {
320
348
  const tags = [...super.subscriptionTags(), inboxTag(this.devicePubkey)];
321
349
  const now = this.now();
322
- for (const i of this.store.invitesOut())
323
- if (!i.used && i.expires > now)
324
- tags.push(secretTag(i.secret));
325
350
  if (this.#pairing)
326
351
  tags.push(secretTag(this.#pairing.secret));
327
352
  return tags;
@@ -361,7 +386,7 @@ export class AnoDBSharing extends AnoDBCore {
361
386
  }
362
387
  }
363
388
  else {
364
- secret = this.store.invitesOut().find((i) => secretTag(i.secret) === tag)?.secret ?? (this.#pairing && secretTag(this.#pairing.secret) === tag ? this.#pairing.secret : null);
389
+ secret = this.#pairing && secretTag(this.#pairing.secret) === tag ? this.#pairing.secret : null;
365
390
  if (!secret)
366
391
  return 'invalid';
367
392
  convKey = secretKeyFor(secret);
@@ -389,8 +414,6 @@ export class AnoDBSharing extends AnoDBCore {
389
414
  this.#onInbox(sender, inner.pubkey, p);
390
415
  else if (this.#pairing?.secret === secret && p.t === 'pair')
391
416
  void this.#onPaired(sender, p);
392
- else if (p.t === 'joinreq')
393
- this.#onJoinRequest(secret, sender, inner.pubkey, p);
394
417
  }
395
418
  catch {
396
419
  return 'invalid';
@@ -419,12 +442,7 @@ export class AnoDBSharing extends AnoDBCore {
419
442
  this.store.putDevice(senderDevice, sender, JSON.stringify(p.dlg), delegationName(p.dlg));
420
443
  const known = this.store.spaces().find((s) => s.id === g.sp);
421
444
  if (p.t === 'invite' && known?.status !== 'active') {
422
- const requested = g.req && this.store.getMeta(`joinreq:${g.req}`);
423
445
  this.store.putInviteIn(g.sp, sender, m.roles.get(this.pubkey), String(g.name ?? ''), JSON.stringify(g));
424
- if (requested) {
425
- void this.acceptInvitation(g.sp);
426
- return;
427
- }
428
446
  const inv = { space: g.sp, name: String(g.name ?? ''), role: m.roles.get(this.pubkey), from: sender };
429
447
  for (const fn of this.#inviteListeners)
430
448
  fn(inv);
@@ -479,75 +497,14 @@ export class AnoDBSharing extends AnoDBCore {
479
497
  declineInvitation(space) {
480
498
  this.store.setInviteInStatus(space, 'declined');
481
499
  }
482
- // ---- invite links ---------------------------------------------------------------------------
483
- /** One-time, expiring link. Whoever opens it can only *ask* to join; an admin must approve. */
484
- async createInviteLink(space, opts = {}) {
485
- if (!mayManage(this.membership(space), this.pubkey))
486
- throw new Error('anoDB: only owners and admins can invite');
487
- const secret = randomHex(16);
488
- const role = opts.role ?? 'writer';
489
- this.store.putInviteOut(secret, space, role, this.now() + (opts.expiresInMs ?? 24 * 3600_000));
490
- this.sync?.refresh();
491
- return `anodb://join?app=${encodeURIComponent(this.appId)}&s=${secret}`;
492
- }
493
- /** Invitee: ask to join via a link. The invitation that follows is accepted automatically. */
494
- async requestJoin(link, name = '') {
495
- const u = new URL(link);
496
- const secret = u.searchParams.get('s');
497
- if (u.protocol !== 'anodb:' || !secret || !/^[0-9a-f]{32}$/.test(secret))
498
- throw new Error('anoDB: invalid invite link');
499
- if (u.searchParams.get('app') !== this.appId)
500
- throw new Error('anoDB: invite link is for another app');
501
- this.store.setMeta(`joinreq:${sha256Hex(secret)}`, '1');
502
- const devices = this.store.devices(this.pubkey).filter((d) => !d.revoked).map((d) => JSON.parse(d.delegation));
503
- this.#sendSecret(secret, { t: 'joinreq', devices, name });
504
- }
505
- #onJoinRequest(secret, identity, _device, p) {
506
- const inv = this.store.invitesOut().find((i) => i.secret === secret);
507
- if (!inv || inv.used || inv.expires <= this.now())
508
- return;
509
- const id = sha256Hex(`${secret}/${identity}`).slice(0, 32);
510
- this.store.putJoinRequest(id, secret, identity, JSON.stringify(p));
511
- const req = this.#toJoinRequest({ id, secret, identity, payload: JSON.stringify(p) });
512
- if (req)
513
- for (const fn of this.#joinListeners)
514
- fn(req);
515
- }
516
- #toJoinRequest(r) {
517
- const inv = this.store.invitesOut().find((i) => i.secret === r.secret);
518
- if (!inv)
519
- return null;
520
- const p = JSON.parse(r.payload);
521
- return { id: r.id, space: inv.space, role: inv.role, identity: r.identity, npub: npubEncode(r.identity), name: typeof p.name === 'string' ? p.name.slice(0, 64) : '' };
522
- }
523
- joinRequests() {
524
- return this.store.joinRequests().map((r) => this.#toJoinRequest(r)).filter((r) => r !== null);
525
- }
526
- onJoinRequest(fn) {
527
- this.#joinListeners.add(fn);
528
- return () => this.#joinListeners.delete(fn);
529
- }
530
- async approveJoinRequest(id) {
531
- const r = this.store.joinRequests().find((x) => x.id === id);
532
- if (!r)
533
- throw new Error('anoDB: no such join request');
534
- const inv = this.store.invitesOut().find((i) => i.secret === r.secret);
535
- if (!inv || inv.used || inv.expires <= this.now())
536
- throw new Error('anoDB: invite link expired or already used');
537
- const p = JSON.parse(r.payload);
538
- const delegations = (p.devices ?? []).filter(isEvent);
539
- this.store.transaction(() => {
540
- this.store.markInviteUsed(r.secret);
541
- this.store.setJoinRequestStatus(id, 'approved');
542
- });
543
- await this.#addMember(inv.space, r.identity, inv.role, delegations, sha256Hex(r.secret));
544
- this.sync?.refresh();
545
- }
546
- rejectJoinRequest(id) {
547
- this.store.setJoinRequestStatus(id, 'rejected');
500
+ /**
501
+ * This identity's current device delegations (signed by the identity). Hand them to whoever adds
502
+ * you (`addMember(space, npub, role, { devices })`) when you have not published a key package.
503
+ */
504
+ deviceDelegations() {
505
+ return this.store.devices(this.pubkey).filter((d) => !d.revoked).map((d) => JSON.parse(d.delegation));
548
506
  }
549
- // ---- key packages ----------------------------------------------------------------------------
550
- /** Publish the list of this identity's devices so others can invite it by npub (needs the identity key). */
507
+ /** Publish the list of this identity's devices so others can add it by npub (needs the identity key). */
551
508
  async publishKeyPackage() {
552
509
  const signer = this.requireIdentitySigner();
553
510
  const delegations = this.store.devices(this.pubkey).filter((d) => !d.revoked).map((d) => JSON.parse(d.delegation));
@@ -1 +1 @@
1
- {"version":3,"file":"sharing.js","sourceRoot":"","sources":["../src/sharing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sharing.js","sourceRoot":"","sources":["../src/sharing.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Change } from './protocol.js';
2
- import type { NostrEvent, SchemaDefinition, SqlValue, SqliteDriver } from './types.js';
2
+ import type { NostrEvent, SchemaDefinition, SqliteDriver } from './types.js';
3
3
  export type AckStatus = 'ok' | 'rejected';
4
4
  export interface StoredMessage {
5
5
  space: string;
@@ -26,10 +26,13 @@ export declare class Store {
26
26
  deleteMeta(key: string): void;
27
27
  /** Next own sequence number for a space. */
28
28
  nextSeq(space: string): number;
29
- applySchema(schema: SchemaDefinition, defaultSpace: string): void;
30
- /** LWW merge. Returns tables whose visible state may have changed. Run inside `transaction`. */
31
- applyChanges(space: string, changes: readonly Change[]): Set<string>;
32
- /** All current cells of a space (for snapshots). */
29
+ applySchema(schema: SchemaDefinition, defaultSpace: string, owner?: string): void;
30
+ /**
31
+ * LWW merge. `by` is the identity that signed the changes (a snapshot cell may carry its own as a
32
+ * 6th element). Returns tables whose visible state may have changed. Run inside `transaction`.
33
+ */
34
+ applyChanges(space: string, changes: readonly Change[], by?: string): Set<string>;
35
+ /** All current cells of a space (for snapshots), with the signing identity as a 6th element when known. */
33
36
  cells(space: string): Change[];
34
37
  /** Drop all cells of a space and its projected rows. Run inside `transaction`. */
35
38
  clearSpace(space: string): Set<string>;
@@ -67,9 +70,6 @@ export declare class Store {
67
70
  salt: string;
68
71
  }>;
69
72
  forgetPrunable(eventId: string): void;
70
- publicRows(table: string, where: string, params: readonly SqlValue[]): Array<Record<string, SqlValue>>;
71
- putPublicRow(table: string, row: Record<string, SqlValue>): void;
72
- deletePublicRows(table: string, where: string, params: readonly SqlValue[]): void;
73
73
  putDevice(device: string, identity: string, delegation: string, name: string): void;
74
74
  revokeDevice(device: string): void;
75
75
  devices(identity?: string): Array<{
@@ -79,15 +79,6 @@ export declare class Store {
79
79
  name: string;
80
80
  revoked: boolean;
81
81
  }>;
82
- putInviteOut(secret: string, space: string, role: string, expires: number): void;
83
- invitesOut(): Array<{
84
- secret: string;
85
- space: string;
86
- role: string;
87
- expires: number;
88
- used: boolean;
89
- }>;
90
- markInviteUsed(secret: string): void;
91
82
  putInviteIn(space: string, sender: string, role: string, name: string, payload: string): void;
92
83
  invitesIn(status?: string): Array<{
93
84
  space: string;
@@ -98,14 +89,6 @@ export declare class Store {
98
89
  status: string;
99
90
  }>;
100
91
  setInviteInStatus(space: string, status: string): void;
101
- putJoinRequest(id: string, secret: string, identity: string, payload: string): void;
102
- joinRequests(status?: string): Array<{
103
- id: string;
104
- secret: string;
105
- identity: string;
106
- payload: string;
107
- }>;
108
- setJoinRequestStatus(id: string, status: string): void;
109
92
  /** Forget all spaces and data (device pairing adopts another identity). Keeps node id and clock. */
110
93
  wipe(): void;
111
94
  messages(space: string, type?: string): StoredMessage[];
@@ -142,9 +125,4 @@ export declare class Store {
142
125
  getCursor(relay: string, tag: string): number | undefined;
143
126
  advanceCursor(relay: string, tag: string, createdAt: number): void;
144
127
  resetCursors(): void;
145
- getPublic(pubkey: string, kind: number): {
146
- event: NostrEvent;
147
- fetchedAt: number;
148
- } | undefined;
149
- putPublic(event: NostrEvent | undefined, pubkey: string, kind: number, fetchedAt: number): void;
150
128
  }