@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.
- package/PROTOCOL.md +30 -7
- package/README.md +82 -40
- package/dist/anodb.d.ts +1 -27
- package/dist/anodb.js +2 -151
- package/dist/anodb.js.map +1 -1
- package/dist/blob.d.ts +3 -3
- package/dist/blob.js +1 -1
- package/dist/blob.js.map +1 -1
- package/dist/cli/init.js +5 -2
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/main.js +0 -0
- package/dist/crypto.d.ts +2 -2
- package/dist/crypto.js +2 -2
- package/dist/crypto.js.map +1 -1
- package/dist/db.d.ts +9 -10
- package/dist/db.js +28 -33
- package/dist/db.js.map +1 -1
- package/dist/defaults.d.ts +3 -2
- package/dist/defaults.js +7 -5
- package/dist/defaults.js.map +1 -1
- package/dist/drivers/browser.d.ts +2 -1
- package/dist/drivers/browser.js +4 -1
- package/dist/drivers/browser.js.map +1 -1
- package/dist/index.d.ts +4 -7
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/kysely.d.ts +10 -5
- package/dist/kysely.js +3 -2
- package/dist/kysely.js.map +1 -1
- package/dist/links.d.ts +8 -0
- package/dist/links.js +16 -0
- package/dist/links.js.map +1 -0
- package/dist/policy.d.ts +16 -0
- package/dist/policy.js +29 -0
- package/dist/policy.js.map +1 -0
- package/dist/react.d.ts +3 -2
- package/dist/react.js +3 -1
- package/dist/react.js.map +1 -1
- package/dist/result-types.d.ts +13 -0
- package/dist/result-types.js +157 -0
- package/dist/result-types.js.map +1 -0
- package/dist/schema.d.ts +19 -2
- package/dist/schema.js +36 -5
- package/dist/schema.js.map +1 -1
- package/dist/sharing.d.ts +18 -23
- package/dist/sharing.js +56 -99
- package/dist/sharing.js.map +1 -1
- package/dist/store.d.ts +8 -30
- package/dist/store.js +35 -86
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/ui.d.ts +131 -0
- package/dist/ui.js +361 -0
- package/dist/ui.js.map +1 -0
- package/docs/DECISIONS.md +5 -0
- package/docs/DESIGN.md +4 -18
- package/package.json +3 -2
package/PROTOCOL.md
CHANGED
|
@@ -37,7 +37,7 @@ on their own; they travel inside encrypted messages (and in key packages, §6).
|
|
|
37
37
|
|---|---|---|
|
|
38
38
|
| space stream | `hex(sha256("anodb/v2/space/" + hex(epochKey)))[0:32]` | the epoch key itself |
|
|
39
39
|
| device inbox | `hex(sha256("anodb/v2/inbox/" + devicePubkey))[0:32]` | ECDH(envelope key, device key) |
|
|
40
|
-
|
|
|
40
|
+
| pairing secret | `hex(sha256("anodb/v2/secret-tag/" + secret))[0:32]` | `sha256("anodb/v2/secret-key/" + secret)` |
|
|
41
41
|
|
|
42
42
|
`keyId(epochKey) = hex(sha256("anodb/v2/key-id/" + hex(epochKey)))[0:16]`.
|
|
43
43
|
|
|
@@ -69,6 +69,24 @@ System columns: `$deleted` (`true` = tombstone), `$createdAt` (ms). Changes are
|
|
|
69
69
|
signing identity is authorized (§5) for that device and sequence number; unauthorized messages are
|
|
70
70
|
kept and re-evaluated whenever membership changes.
|
|
71
71
|
|
|
72
|
+
### 4.1 Row creators and owned tables
|
|
73
|
+
|
|
74
|
+
A row id of the form `<identity hex>` or `<identity hex>-<1–63 of [A-Za-z0-9_]>` names its
|
|
75
|
+
**creator**. Every device applies this rule to each change, using the identity that signed it:
|
|
76
|
+
|
|
77
|
+
| change by | creator = signer | creator = someone else, plain table | … `owned` table | no creator in id |
|
|
78
|
+
|---|---|---|---|---|
|
|
79
|
+
| `$createdAt` | ✓ | ✗ | ✗ | ✓ |
|
|
80
|
+
| data cell | ✓ | ✓ | ✗ | ✓ |
|
|
81
|
+
| `$deleted` | ✓ | ✓ | owner / admin only | ✓ |
|
|
82
|
+
|
|
83
|
+
Tables are plain by default (any writer may change any row, like SQL without row-level security);
|
|
84
|
+
the app marks tables `owned`. A row whose id names a creator is visible only once its `$createdAt`
|
|
85
|
+
cell exists, so nobody can make a row appear in someone else's name. Refused changes are ignored,
|
|
86
|
+
not stored as state. Implementations create ids as `<own identity>-<16 hex random>` by default,
|
|
87
|
+
expose the creator as `createdBy` and the signer of the newest cell as `updatedBy`. Tables unknown to
|
|
88
|
+
an implementation follow the owned rule.
|
|
89
|
+
|
|
72
90
|
## 5. Spaces and membership
|
|
73
91
|
|
|
74
92
|
Every row belongs to a space; a user's personal data is a space whose only member is the user.
|
|
@@ -115,21 +133,26 @@ epoch.
|
|
|
115
133
|
| `t` | fields | accepted when |
|
|
116
134
|
|---|---|---|
|
|
117
135
|
| `key` | `sp, name, personal, num, key, ops[]` | sender is admin+ of `sp` (or the same identity) under the carried + known ops, and the receiver is a member |
|
|
118
|
-
| `invite` | as `key` + `role
|
|
136
|
+
| `invite` | as `key` + `role` | as above; stored until the user accepts |
|
|
119
137
|
|
|
120
138
|
`ops` are complete signed inner op events, verifiable without the old epoch keys.
|
|
121
139
|
|
|
122
140
|
### 5.4 Snapshots (`t: "snap"`)
|
|
123
141
|
|
|
124
142
|
Parts `i/n` with `body: { ops?: [inner…], cells?: [change…] }`. Rows that are deleted carry only their
|
|
125
|
-
`$deleted` cell. A
|
|
143
|
+
`$deleted` cell. A cell may carry the identity that signed it as a 6th element. A snapshot restates
|
|
144
|
+
other members' rows, so a complete snapshot is merged only if its author is the **owner or an
|
|
145
|
+
admin** of the space (or the receiving identity itself, for its own new devices); cells that name a
|
|
146
|
+
signer must still pass §4.1 for that signer.
|
|
126
147
|
New members and newly paired devices receive keys for the **new** epoch only and catch up from
|
|
127
148
|
snapshots.
|
|
128
149
|
|
|
129
|
-
### 5.5
|
|
150
|
+
### 5.5 Pairing (secret routing)
|
|
151
|
+
|
|
152
|
+
Membership is by identity only: an admin adds an identity with an `add` op and delivers keys to the
|
|
153
|
+
devices its delegations name. How the admin learns the identity (links, approval, external sign-in)
|
|
154
|
+
is outside this protocol.
|
|
130
155
|
|
|
131
|
-
- Invite link: `anodb://join?app=<appId>&s=<secret>`. The requester sends `{ t: "joinreq", devices: [delegations], name }`
|
|
132
|
-
to the secret tag. An admin must approve; the link is single-use and expires.
|
|
133
156
|
- Pairing: `anodb://pair?app=<appId>&d=<new device pubkey>&s=<secret>`; both devices display
|
|
134
157
|
`sha256("anodb/v2/pair-code/" + d + "/" + s)` as a 6-digit code. The approving device sends
|
|
135
158
|
`{ t: "pair", delegation, spaces: [grant…] }` to the secret tag. The identity key is never sent.
|
|
@@ -137,7 +160,7 @@ snapshots.
|
|
|
137
160
|
### 5.6 Key package (kind 10304, public, replaceable)
|
|
138
161
|
|
|
139
162
|
`content = {"v":2,"delegations":[…]}` signed by the identity, listing current device delegations so
|
|
140
|
-
others can
|
|
163
|
+
others can add it by npub.
|
|
141
164
|
|
|
142
165
|
## 6. Sync (informative)
|
|
143
166
|
|
package/README.md
CHANGED
|
@@ -14,22 +14,23 @@
|
|
|
14
14
|
|
|
15
15
|
anoDB is a decentralized, local-first database SDK that treats on-device SQLite as the source of truth and distributes changes as **end-to-end encrypted Nostr events** through existing public relays.
|
|
16
16
|
|
|
17
|
-
True to its name, it requires **absolutely no developer-operated server**: no API server, no database server, and no project setup. Offline reads and writes, multi-device sync
|
|
17
|
+
True to its name, it requires **absolutely no developer-operated server**: no API server, no database server, and no project setup. Offline reads and writes, multi-device sync and sharing with other people are available through a single type-safe, SQL-like API.
|
|
18
18
|
|
|
19
|
-
> **Status: v0.
|
|
19
|
+
> **Status: v0.10 / experimental.** The protocol ([PROTOCOL.md](PROTOCOL.md), v2) may change incompatibly. See [docs/DESIGN.md](docs/DESIGN.md) for design details and limitations, and [docs/DECISIONS.md](docs/DECISIONS.md) for the decision log.
|
|
20
20
|
|
|
21
21
|
## Features
|
|
22
22
|
|
|
23
23
|
- 📴 **Offline-first** — Writes commit immediately to local SQLite. The network catches up later.
|
|
24
24
|
- 🧾 **Type-safe SQL** — A [Kysely](https://kysely.dev) query builder with JOINs, plus raw SQL writes (`UPDATE … LIKE`, `INSERT … SELECT`, upserts) that are captured and synced.
|
|
25
|
-
-
|
|
26
|
-
-
|
|
25
|
+
- 🗃️ **A plain database by default** — your data, on all your devices, with no invites and no rules to set up.
|
|
26
|
+
- 👥 **Sharing when you want it** — spaces with owner / admin / writer / reader roles, members added by public key, removal with cut-offs, key rotation. *How* people get invited (links, approval, sign-in with Google or your company's SSO) is left to your app or [anoAuth](#who-may-join-is-up-to-you).
|
|
27
|
+
- 🔐 **Signed and encrypted** — Writes are signed by per-device keys, keys are stored encrypted, relays see only throwaway pubkeys and rotating tags, and new members of a space never see deleted history.
|
|
27
28
|
- 🔀 **Deterministic merging** — Cell-level Last-Writer-Wins with Hybrid Logical Clocks; tolerant of out-of-order delivery, duplicates and retries.
|
|
28
29
|
- ⚡ **Direct device-to-device sync** — Your devices connect over WebRTC ([nostr-p2p](https://github.com/sho-ritz/nostr-p2p)) and exchange changes in tens of milliseconds; relays remain the store for offline devices.
|
|
29
30
|
- 🔁 **4-layer sync** — NIP-77 Negentropy, time-based fallback, sequence-gap detection, snapshots. A durable outbox retries until `minAcks` relays acknowledge.
|
|
30
|
-
- 🌐 **Nostr tables** — Profiles, notes, follows, reactions and long-form articles as SQL tables, readable and writable by any Nostr client.
|
|
31
31
|
- 📎 **Encrypted files** — Large files go to [Blossom](https://github.com/hzrd149/blossom) servers, encrypted on the device; only a reference is stored in the database.
|
|
32
|
-
-
|
|
32
|
+
- 🔏 **Opt-in row rules** — `createdBy` / `updatedBy` come from signatures and can’t be forged; mark a table `owned()` so only a row’s creator can edit it (checked on every device).
|
|
33
|
+
- ⚛️ **React** — `useQuery`, `useSyncStatus`, and ready-made `<PairDevice />`, `<AddMember />`, `<Invitations />`, `<Members />` components.
|
|
33
34
|
|
|
34
35
|
## Get started
|
|
35
36
|
|
|
@@ -118,8 +119,8 @@ await db.transaction().execute(async (tx) => {
|
|
|
118
119
|
const stop = db.subscribe(db.selectFrom('todo').selectAll(), (rows) => render(rows))
|
|
119
120
|
```
|
|
120
121
|
|
|
121
|
-
- Every table gets `id`, `space`, `createdAt` and `
|
|
122
|
-
-
|
|
122
|
+
- Every table gets `id`, `space`, `createdAt`, `updatedAt`, `createdBy` and `updatedBy` (`space` defaults to your personal space, see below).
|
|
123
|
+
- `boolean` columns read as `true / false` and `json` columns as parsed values (also through JOINs, aliases and live queries). Raw SQL strings (`db.execute`) return plain SQLite values.
|
|
123
124
|
|
|
124
125
|
### Keys (most secure defaults)
|
|
125
126
|
|
|
@@ -134,21 +135,50 @@ const stop = db.subscribe(db.selectFrom('todo').selectAll(), (rows) => render(ro
|
|
|
134
135
|
- External signers: `signer: nip07Signer() | nip46Signer(uri) | nip55Signer(bridge)`.
|
|
135
136
|
- Relays see only throwaway pubkeys, per-epoch tags, times and sizes (`metadataProtection: 'none'` turns this off for allow-listed relays).
|
|
136
137
|
|
|
138
|
+
## Where data lives
|
|
139
|
+
|
|
140
|
+
| Space | Who can read and write | Use it for |
|
|
141
|
+
|---|---|---|
|
|
142
|
+
| **Personal space** (default, `db.personalSpace`) | your own devices | everything that is yours: no invites, no rules — just a database that follows you across devices |
|
|
143
|
+
| **Shared spaces** (`db.createSpace`) | the members you add (owner / admin / writer / reader) | a family list, a team, a chat room |
|
|
144
|
+
|
|
145
|
+
Everything is end-to-end encrypted. Without a server, *who can read* means *who holds the key*, so
|
|
146
|
+
sharing always means handing the key to someone — that is what an invitation does.
|
|
147
|
+
|
|
148
|
+
### Owned tables (opt-in row rule)
|
|
149
|
+
|
|
150
|
+
In a shared space, by default any writer may change or delete any row (like a table without row-level security). In an `owned(...)` table only the member who
|
|
151
|
+
created a row can change it; deleting is also allowed for admins and the owner of a shared space
|
|
152
|
+
(moderation), but they can't edit it. Every device enforces this when it applies a change, so a
|
|
153
|
+
modified client gets nowhere.
|
|
154
|
+
|
|
155
|
+
```ts
|
|
156
|
+
import { defineSchema, owned } from '@anodb/core'
|
|
157
|
+
defineSchema({
|
|
158
|
+
todo: { title: 'text', done: 'boolean' }, // anyone can tick items
|
|
159
|
+
messages: owned({ text: 'text' }), // only the author can edit / delete
|
|
160
|
+
profiles: owned({ name: 'text' }),
|
|
161
|
+
})
|
|
162
|
+
// "one row per member": use your identity as the id — in an owned table only you can write it
|
|
163
|
+
await db.insertInto('profiles').values({ id: db.pubkey, name: 'Taro' }).execute()
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
In every table, `createdBy` / `updatedBy` are taken from signatures (read-only), and nobody can
|
|
167
|
+
create a row whose id names someone else.
|
|
168
|
+
|
|
137
169
|
## Sharing (spaces)
|
|
138
170
|
|
|
139
171
|
```ts
|
|
140
172
|
const family = await db.createSpace('Family')
|
|
141
173
|
await db.insertInto('todo').values({ title: 'Milk', space: family }).execute()
|
|
142
174
|
|
|
143
|
-
//
|
|
144
|
-
|
|
145
|
-
//
|
|
175
|
+
// Add by public key (owners / admins): the space key is delivered to their devices.
|
|
176
|
+
// Their devices come from the key package they published (alice.publishKeyPackage()),
|
|
177
|
+
// or are handed over directly: { devices: alice.deviceDelegations() }
|
|
178
|
+
await db.addMember(family, 'npub1alice…', 'writer') // admin / writer / reader
|
|
179
|
+
// The new member: nothing syncs until they accept
|
|
146
180
|
alice.onInvitation((i) => …); await alice.acceptInvitation(i.space)
|
|
147
181
|
|
|
148
|
-
// One-time, expiring invite link; an admin must approve each request
|
|
149
|
-
const link = await db.createInviteLink(family, { role: 'reader', expiresInMs: 86_400_000 })
|
|
150
|
-
db.onJoinRequest((req) => db.approveJoinRequest(req.id))
|
|
151
|
-
|
|
152
182
|
await db.setRole(family, who, 'reader')
|
|
153
183
|
await db.removeMember(family, who)
|
|
154
184
|
```
|
|
@@ -157,6 +187,13 @@ await db.removeMember(family, who)
|
|
|
157
187
|
- Group keys rotate on member removal, device revocation, member addition and every 30 days.
|
|
158
188
|
- After removal, writes beyond each device's sequence-number cut-off are rejected (backdating does not help).
|
|
159
189
|
|
|
190
|
+
### Who may join is up to you
|
|
191
|
+
|
|
192
|
+
anoDB only knows public keys: it adds and removes members and delivers keys to them. Deciding
|
|
193
|
+
*who* may join — invite links, approval by an admin, "anyone who signs in with Google as
|
|
194
|
+
@company.com", a company SSO — is a separate concern, planned as **anoAuth**, which runs on an
|
|
195
|
+
admin's device and calls `addMember` when someone qualifies.
|
|
196
|
+
|
|
160
197
|
### Adding and revoking devices
|
|
161
198
|
|
|
162
199
|
```ts
|
|
@@ -171,28 +208,6 @@ await db.revokeDevice(lostDevicePubkey) // lost or stolen device
|
|
|
171
208
|
|
|
172
209
|
> ⚠ Group keys are delivered to device keys only. **If you lose every device, your personal space cannot be recovered** (shared spaces can be restored by other members). Register at least two devices.
|
|
173
210
|
|
|
174
|
-
## Public Nostr data (tables)
|
|
175
|
-
|
|
176
|
-
```ts
|
|
177
|
-
import { defineSchema, publicTable } from '@anodb/core'
|
|
178
|
-
|
|
179
|
-
const schema = defineSchema({
|
|
180
|
-
todo: { title: 'text' }, // private (encrypted in a space)
|
|
181
|
-
posts: publicTable('note'), // kind 1
|
|
182
|
-
profiles: publicTable('profile'), // kind 0
|
|
183
|
-
follows: publicTable('follows'), // kind 3
|
|
184
|
-
reactions: publicTable('reaction'), // kind 7
|
|
185
|
-
articles: publicTable('longForm'), // kind 30023
|
|
186
|
-
})
|
|
187
|
-
|
|
188
|
-
await db.insertInto('posts').values({ content: 'hello nostr', tags: [['t', 'anodb']] }).execute() // signed & published
|
|
189
|
-
await db.syncPublic('posts', { authors: [alice] }, { live: true }) // fetch & follow
|
|
190
|
-
await db.selectFrom('posts').innerJoin('profiles', 'profiles.author', 'posts.author')
|
|
191
|
-
.select(['posts.content', 'profiles.name']).execute() // JOIN
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
Public tables are **not encrypted**. Notes and reactions cannot be edited (deleting publishes a NIP-09 request); profiles, follow lists and articles are replaceable.
|
|
195
|
-
|
|
196
211
|
## Direct sync over WebRTC
|
|
197
212
|
|
|
198
213
|
Where WebRTC is available (browsers, or Node with `node-datachannel`), **your own devices connect
|
|
@@ -251,10 +266,31 @@ On NIP-77 relays, reconciliation is exact and lost envelopes are re-uploaded aut
|
|
|
251
266
|
import { AnoDBProvider, useQuery, useSyncStatus } from '@anodb/core/react'
|
|
252
267
|
|
|
253
268
|
<AnoDBProvider db={db}><App /></AnoDBProvider>
|
|
254
|
-
const todos = useQuery((db) => db.selectFrom('todo').selectAll().where('done', '=',
|
|
269
|
+
const todos = useQuery((db) => db.selectFrom('todo').selectAll().where('done', '=', false), [])
|
|
255
270
|
const status = useSyncStatus()
|
|
256
271
|
```
|
|
257
272
|
|
|
273
|
+
### Ready-made components
|
|
274
|
+
|
|
275
|
+
Sharing and multi-device are anoDB's core features, so their UI ships with it:
|
|
276
|
+
|
|
277
|
+
```tsx
|
|
278
|
+
import { AddMember, DeviceList, Invitations, Members, PairDevice } from '@anodb/core/react'
|
|
279
|
+
|
|
280
|
+
<PairDevice /> {/* add a device: QR code + a code to compare on both devices */}
|
|
281
|
+
<DeviceList /> {/* your devices, revoke with a confirming second click */}
|
|
282
|
+
<AddMember space={id} /> {/* add someone by npub (owners / admins) */}
|
|
283
|
+
<Invitations onJoined={setSpace} /> {/* spaces you were added to: accept / decline */}
|
|
284
|
+
<Members space={id} /> {/* roles and removal for owners / admins */}
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
- Plain HTML with `anodb-*` class names and only layout styles — style them like the rest of your app.
|
|
288
|
+
- English and Japanese built in (`lang="ja"`, default: the browser's language); override any text with `labels`.
|
|
289
|
+
- Pairing links and QR codes are ordinary `https://your-app/#anodb=…` URLs. Scanning one with a phone
|
|
290
|
+
camera opens your app with the request filled in — nothing is approved without a click, and pairing
|
|
291
|
+
always shows a code to compare.
|
|
292
|
+
- Building your own? `useLive((db) => db.members(id))`, `toAppLink()`, `parseAppLink()` and `<QRCode />` are exported too.
|
|
293
|
+
|
|
258
294
|
## Column types
|
|
259
295
|
|
|
260
296
|
| Type | Write (TS) | Read (TS) | SQLite |
|
|
@@ -262,8 +298,14 @@ const status = useSyncStatus()
|
|
|
262
298
|
| `text` | `string` | `string` | TEXT |
|
|
263
299
|
| `integer` | `number` (safe integer) | `number` | INTEGER |
|
|
264
300
|
| `real` | `number` | `number` | REAL |
|
|
265
|
-
| `boolean` | `boolean
|
|
266
|
-
| `json` | any JSON value | `
|
|
301
|
+
| `boolean` | `boolean` | `boolean` | INTEGER (0 / 1) |
|
|
302
|
+
| `json` | any JSON value | `unknown` | TEXT |
|
|
303
|
+
| `json<T>()` | `T` | `T` | TEXT |
|
|
304
|
+
|
|
305
|
+
```ts
|
|
306
|
+
import { defineSchema, json } from '@anodb/core'
|
|
307
|
+
const schema = defineSchema({ note: { title: 'text', meta: json<{ tags: string[] }>() } })
|
|
308
|
+
```
|
|
267
309
|
|
|
268
310
|
All columns are nullable.
|
|
269
311
|
|
package/dist/anodb.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { CapturedCell } from './capture.js';
|
|
2
1
|
import { type AnoDBOptions } from './db.js';
|
|
3
2
|
import { type P2PMode, type PeerInfo, P2PSync } from './p2p.js';
|
|
4
3
|
import { AnoDBSharing } from './sharing.js';
|
|
@@ -9,16 +8,7 @@ export interface SyncGap {
|
|
|
9
8
|
/** Missing sequence numbers (at most 100 listed). */
|
|
10
9
|
missing: number[];
|
|
11
10
|
}
|
|
12
|
-
|
|
13
|
-
authors?: string[];
|
|
14
|
-
ids?: string[];
|
|
15
|
-
since?: number;
|
|
16
|
-
until?: number;
|
|
17
|
-
limit?: number;
|
|
18
|
-
/** Tag filters without the `#`, e.g. `{ t: ['anodb'] }`. */
|
|
19
|
-
tags?: Record<string, string[]>;
|
|
20
|
-
}
|
|
21
|
-
/** anoDB database handle: SQL-like API, spaces & sharing, NIP-77 sync, public Nostr tables. */
|
|
11
|
+
/** anoDB database handle: SQL-like API, spaces & sharing, NIP-77 sync. */
|
|
22
12
|
export declare class AnoDB<S extends SchemaDefinition> extends AnoDBSharing<S> {
|
|
23
13
|
#private;
|
|
24
14
|
protected afterInit(): Promise<void>;
|
|
@@ -48,22 +38,6 @@ export declare class AnoDB<S extends SchemaDefinition> extends AnoDBSharing<S> {
|
|
|
48
38
|
protected wrap(innerJson: string, tag: string, convKey: Uint8Array, signerSk?: Uint8Array): NostrEvent;
|
|
49
39
|
protected resignEnvelope(e: NostrEvent): NostrEvent;
|
|
50
40
|
protected afterSnapshot(space: string, before: number): void;
|
|
51
|
-
/** Insert/update/delete on a public table → signed standard Nostr events (identity key). */
|
|
52
|
-
protected commitPublic(cells: CapturedCell[]): Promise<void>;
|
|
53
|
-
/** Project a verified event into a public table (replaceable semantics per preset). */
|
|
54
|
-
protected applyPublicEvent(table: string, e: NostrEvent): boolean;
|
|
55
|
-
/**
|
|
56
|
-
* Fetch standard events into a public table (verified, cached for offline use). With `live`,
|
|
57
|
-
* keeps a subscription open; call the returned `stop()` to end it.
|
|
58
|
-
*/
|
|
59
|
-
syncPublic<T extends Extract<keyof S, string>>(table: T, filter?: PublicSyncFilter, opts?: {
|
|
60
|
-
live?: boolean;
|
|
61
|
-
relays?: readonly string[];
|
|
62
|
-
timeoutMs?: number;
|
|
63
|
-
}): Promise<{
|
|
64
|
-
received: number;
|
|
65
|
-
stop: () => void;
|
|
66
|
-
}>;
|
|
67
41
|
close(): Promise<void>;
|
|
68
42
|
}
|
|
69
43
|
export declare function createAnoDB<const S extends SchemaDefinition>(opts: AnoDBOptions<S>): Promise<AnoDB<S>>;
|
package/dist/anodb.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { bytesToHex, hexToBytes, randomHex, sha256Hex, signWith, verifySignedEvent } from './crypto.js';
|
|
1
|
+
import { bytesToHex, hexToBytes, randomHex, sha256Hex, signWith } from './crypto.js';
|
|
3
2
|
import { prepare } from './db.js';
|
|
4
3
|
import { TAG, WRAP_KIND } from './protocol.js';
|
|
5
4
|
import { P2PSync } from './p2p.js';
|
|
6
|
-
import { presetOf } from './public-tables.js';
|
|
7
5
|
import { AnoDBSharing } from './sharing.js';
|
|
8
6
|
const BACKFILL_PAGE = 500;
|
|
9
|
-
/** anoDB database handle: SQL-like API, spaces & sharing, NIP-77 sync
|
|
7
|
+
/** anoDB database handle: SQL-like API, spaces & sharing, NIP-77 sync. */
|
|
10
8
|
export class AnoDB extends AnoDBSharing {
|
|
11
9
|
#negUnsupported = new Set();
|
|
12
10
|
#reconcileTimer = null;
|
|
@@ -231,153 +229,6 @@ export class AnoDB extends AnoDBSharing {
|
|
|
231
229
|
void this.sync.flush();
|
|
232
230
|
}
|
|
233
231
|
// ---- public tables ----------------------------------------------------------------------
|
|
234
|
-
/** Insert/update/delete on a public table → signed standard Nostr events (identity key). */
|
|
235
|
-
async commitPublic(cells) {
|
|
236
|
-
const signer = this.requireIdentitySigner();
|
|
237
|
-
const groups = new Map();
|
|
238
|
-
for (const c of cells) {
|
|
239
|
-
const k = `${c.table}\u0000${c.rowId}`;
|
|
240
|
-
groups.set(k, [...(groups.get(k) ?? []), c]);
|
|
241
|
-
}
|
|
242
|
-
const touched = new Set();
|
|
243
|
-
for (const group of groups.values()) {
|
|
244
|
-
const table = group[0].table;
|
|
245
|
-
const def = this.schema[table];
|
|
246
|
-
const preset = presetOf(def);
|
|
247
|
-
const inserted = group.some((c) => c.op === 'i');
|
|
248
|
-
const deleted = group.some((c) => c.op === 'd');
|
|
249
|
-
if (inserted && deleted)
|
|
250
|
-
continue;
|
|
251
|
-
let current = inserted ? undefined : this.store.publicRows(table, 'id = ?', [group[0].rowId])[0];
|
|
252
|
-
if (!inserted && !current)
|
|
253
|
-
continue;
|
|
254
|
-
if (current && current.author !== this.pubkey)
|
|
255
|
-
throw new Error("anoDB: you can only change your own public events");
|
|
256
|
-
if (!inserted && !deleted && preset.replace === 'none')
|
|
257
|
-
throw new Error(`anoDB: kind ${preset.kind} events cannot be edited; delete and insert instead`);
|
|
258
|
-
if (inserted && preset.replace === 'author' && preset.kind === 0)
|
|
259
|
-
current = this.store.publicRows(table, 'id = ?', [this.pubkey])[0];
|
|
260
|
-
const row = { ...(current ?? {}) };
|
|
261
|
-
for (const c of group) {
|
|
262
|
-
if (c.column.startsWith('$') || c.column === 'author')
|
|
263
|
-
continue;
|
|
264
|
-
fromCaptured(table, c.column, def[c.column], c.value); // type check
|
|
265
|
-
row[c.column] = c.value;
|
|
266
|
-
}
|
|
267
|
-
row.author = this.pubkey;
|
|
268
|
-
if (preset.kind === 3 && typeof row.target === 'string')
|
|
269
|
-
row.id = `${this.pubkey}:${row.target}`;
|
|
270
|
-
else if (preset.replace === 'address')
|
|
271
|
-
row.id = `${this.pubkey}:${row.d ?? ''}`;
|
|
272
|
-
else if (current)
|
|
273
|
-
row.id = current.id;
|
|
274
|
-
const mine = this.store.publicRows(table, 'author = ?', [this.pubkey]).filter((r) => r.id !== row.id);
|
|
275
|
-
if (!deleted)
|
|
276
|
-
mine.push(row);
|
|
277
|
-
const templates = preset.build(row, mine, deleted);
|
|
278
|
-
for (const t of templates) {
|
|
279
|
-
// Replaceable versions must be strictly newer than what we have (relays keep the newest;
|
|
280
|
-
// equal timestamps fall back to "lowest id wins").
|
|
281
|
-
if (preset.replace !== 'none' && t.kind !== 5) {
|
|
282
|
-
const prev = this.store.publicRows(table, preset.replace === 'author' ? 'author = ?' : 'id = ?', [preset.replace === 'author' ? this.pubkey : String(row.id)]);
|
|
283
|
-
const last = Math.max(0, ...prev.map((p) => (typeof p.createdAt === 'number' ? Math.floor(p.createdAt / 1000) : 0)));
|
|
284
|
-
if (t.created_at <= last)
|
|
285
|
-
t.created_at = last + 1;
|
|
286
|
-
}
|
|
287
|
-
const ev = await signer.signEvent(t);
|
|
288
|
-
await this.gate.idle();
|
|
289
|
-
if (ev.kind === 5)
|
|
290
|
-
this.store.deletePublicRows(table, 'id = ?', [String(row.id)]);
|
|
291
|
-
else
|
|
292
|
-
this.applyPublicEvent(table, ev);
|
|
293
|
-
this.enqueuePlain(ev);
|
|
294
|
-
}
|
|
295
|
-
if (deleted && preset.kind === 3)
|
|
296
|
-
this.store.deletePublicRows(table, 'id = ?', [String(row.id)]);
|
|
297
|
-
touched.add(table);
|
|
298
|
-
}
|
|
299
|
-
this.notify(touched, 'local');
|
|
300
|
-
}
|
|
301
|
-
/** Project a verified event into a public table (replaceable semantics per preset). */
|
|
302
|
-
applyPublicEvent(table, e) {
|
|
303
|
-
const preset = presetOf(this.schema[table]);
|
|
304
|
-
if (!preset || e.kind !== preset.kind)
|
|
305
|
-
return false;
|
|
306
|
-
const ms = e.created_at * 1000;
|
|
307
|
-
const rows = preset.rows(e);
|
|
308
|
-
if (preset.replace === 'author') {
|
|
309
|
-
const existing = this.store.publicRows(table, 'author = ?', [e.pubkey]);
|
|
310
|
-
if (existing.some((r) => typeof r.createdAt === 'number' && r.createdAt > ms))
|
|
311
|
-
return false;
|
|
312
|
-
this.store.deletePublicRows(table, 'author = ?', [e.pubkey]);
|
|
313
|
-
}
|
|
314
|
-
else {
|
|
315
|
-
for (const r of rows) {
|
|
316
|
-
const old = this.store.publicRows(table, 'id = ?', [r.id])[0];
|
|
317
|
-
if (old && typeof old.createdAt === 'number' && old.createdAt >= ms && preset.replace === 'address')
|
|
318
|
-
return false;
|
|
319
|
-
if (old && preset.replace === 'none')
|
|
320
|
-
return false;
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
for (const r of rows)
|
|
324
|
-
this.store.putPublicRow(table, { ...r, createdAt: ms, updatedAt: ms });
|
|
325
|
-
return true;
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* Fetch standard events into a public table (verified, cached for offline use). With `live`,
|
|
329
|
-
* keeps a subscription open; call the returned `stop()` to end it.
|
|
330
|
-
*/
|
|
331
|
-
async syncPublic(table, filter = {}, opts = {}) {
|
|
332
|
-
const preset = presetOf(this.schema[table]);
|
|
333
|
-
if (!preset)
|
|
334
|
-
throw new Error(`anoDB: ${table} is not a public table`);
|
|
335
|
-
const f = { kinds: [preset.kind] };
|
|
336
|
-
if (filter.authors)
|
|
337
|
-
f.authors = filter.authors;
|
|
338
|
-
if (filter.ids)
|
|
339
|
-
f.ids = filter.ids;
|
|
340
|
-
if (filter.since !== undefined)
|
|
341
|
-
f.since = filter.since;
|
|
342
|
-
if (filter.until !== undefined)
|
|
343
|
-
f.until = filter.until;
|
|
344
|
-
if (filter.limit !== undefined)
|
|
345
|
-
f.limit = filter.limit;
|
|
346
|
-
for (const [k, v] of Object.entries(filter.tags ?? {}))
|
|
347
|
-
f[`#${k}`] = v;
|
|
348
|
-
let relays = [...(opts.relays ?? [])];
|
|
349
|
-
if (filter.authors && filter.authors.length <= 20) {
|
|
350
|
-
for (const a of filter.authors) {
|
|
351
|
-
const list = await this.nostr.getRelayList(a, opts.timeoutMs !== undefined ? { timeoutMs: opts.timeoutMs } : {});
|
|
352
|
-
relays.push(...(list.value?.write ?? []));
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
relays = [...new Set([...(this.sync?.pool.relays ?? []), ...(this.opts.discoveryRelays ?? []), ...relays])];
|
|
356
|
-
const events = await this.nostr.fetch([f], { relays, timeoutMs: opts.timeoutMs });
|
|
357
|
-
let received = 0;
|
|
358
|
-
await this.gate.idle();
|
|
359
|
-
this.store.transaction(() => {
|
|
360
|
-
for (const e of events)
|
|
361
|
-
if (this.applyPublicEvent(table, e))
|
|
362
|
-
received++;
|
|
363
|
-
});
|
|
364
|
-
if (received)
|
|
365
|
-
this.notify(new Set([table]), 'remote');
|
|
366
|
-
let stop = () => { };
|
|
367
|
-
if (opts.live && this.sync) {
|
|
368
|
-
const live = { ...f, since: Math.floor(this.now() / 1000) };
|
|
369
|
-
delete live.limit;
|
|
370
|
-
stop = this.sync.pool.subscribe(() => [live], {
|
|
371
|
-
onEvent: (_r, e) => {
|
|
372
|
-
if (!verifySignedEvent(e) || this.gate.busy || this.closed)
|
|
373
|
-
return;
|
|
374
|
-
if (this.store.transaction(() => this.applyPublicEvent(table, e)))
|
|
375
|
-
this.notify(new Set([table]), 'remote');
|
|
376
|
-
},
|
|
377
|
-
});
|
|
378
|
-
}
|
|
379
|
-
return { received, stop };
|
|
380
|
-
}
|
|
381
232
|
async close() {
|
|
382
233
|
if (this.#reconcileTimer)
|
|
383
234
|
clearInterval(this.#reconcileTimer);
|
package/dist/anodb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anodb.js","sourceRoot":"","sources":["../src/anodb.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anodb.js","sourceRoot":"","sources":["../src/anodb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACpF,OAAO,EAAqB,OAAO,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAA+B,OAAO,EAAE,MAAM,UAAU,CAAA;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3C,MAAM,aAAa,GAAG,GAAG,CAAA;AASzB,0EAA0E;AAC1E,MAAM,OAAO,KAAkC,SAAQ,YAAe;IAC3D,eAAe,GAAG,IAAI,GAAG,EAAU,CAAA;IAC5C,eAAe,GAA0C,IAAI,CAAA;IAC7D,WAAW,GAAG,CAAC,CAAA;IACf,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IAChC,IAAI,GAAmB,IAAI,CAAA;IAER,KAAK,CAAC,SAAS;QAChC,MAAM,KAAK,CAAC,SAAS,EAAE,CAAA;QACvB,IAAI,CAAC,SAAS,EAAE,CAAA;QAChB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;gBACtC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE;oBAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YAC3E,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,GAAG,MAAM,CAAC,CAC/C;YAAC,IAAI,CAAC,eAA0C,CAAC,KAAK,EAAE,EAAE,CAAA;QAC7D,CAAC;IACH,CAAC;IAED,0FAA0F;IAE1F,sEAAsE;IACtE,IAAI,OAAO;QACT,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QACvB,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,IAAK,UAA8C,CAAC,iBAAiB,CAAA;QACvF,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAA;QACpC,OAAO,CAAC,EAAE,IAAI,IAAI,aAAa,CAAA;IACjC,CAAC;IAED,SAAS;QACP,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAA;QACzB,IAAI,IAAI,KAAK,KAAK;YAAE,OAAM;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CACrB;YACE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;YAC1C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,CAAC,KAAK;iBACP,MAAM,EAAE;iBACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;iBAC1E,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACb,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBACzC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC/D,CAAC,CAAC;YACN,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxB,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;gBAChC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;gBAC7B,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBACjC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;wBAAE,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;4BAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;gBACpH,CAAC;gBACD,OAAO,GAAG,CAAA;YACZ,CAAC;YACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,SAAS;YACvD,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBAC3B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;gBAChC,IAAI,CAAC,UAAU,EAAE,CAAA;YACnB,CAAC;YACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;gBACnB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;gBACjC,KAAK,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;YACzB,CAAC;SACF,EACD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CACpB,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;IACnB,CAAC;IAEkB,YAAY,CAAC,KAAa;QAC3C,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAEkB,aAAa,CAAC,KAAa,EAAE,KAAiB,EAAE,IAAa;QAC9E,IAAI,IAAI,CAAC,IAAI;YAAE,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED,4CAA4C;IAC5C,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;IACvC,CAAC;IAED,6DAA6D;IAC7D,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IACjC,CAAC;IAED,wFAAwF;IAErE,KAAK,CAAC,YAAY,CAAC,KAAa;QACjD,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAA;QAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QACtE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,CAAC;YACH,IAAI,SAAS,GAAG,KAAK,CAAA;YACrB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;gBACpC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBACnI,IAAI,CAAC,GAAG;oBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;qBACpC,CAAC;oBACJ,SAAS,GAAG,IAAI,CAAA;oBAChB,yFAAyF;oBACzF,IAAI,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBACjC,OAAO,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;wBAC1B,MAAM,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;wBACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;wBAC/D,IAAI,QAAQ,GAAG,KAAK,CAAA;wBACpB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;4BACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gCAAE,SAAQ;4BACrC,QAAQ,GAAG,IAAI,CAAA;4BACf,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;wBAC5B,CAAC;wBACD,IAAI,CAAC,QAAQ;4BAAE,MAAK;oBACtB,CAAC;oBACD,SAAS,GAAG,IAAI,GAAG,EAAE,CAAA;oBACrB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA;oBAC3G,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACjE,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,MAAM;gBAAE,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;YACzG,OAAO,SAAS,CAAA;QAClB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAED,0FAA0F;IAC1F,UAAU;QACR,MAAM,IAAI,GAAc,EAAE,CAAA;QAC1B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ;gBAAE,SAAQ;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACzC,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC3E,IAAI,MAAM,KAAK,IAAI,CAAC,YAAY;oBAAE,SAAQ;gBAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAkB,+DAA+D,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAC1I,CAAA;gBACD,MAAM,OAAO,GAAa,EAAE,CAAA;gBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE;oBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;wBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACnH,IAAI,OAAO,CAAC,MAAM;oBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;YACjE,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9G,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACxB,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAA;QAC5B,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAC7B,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACnC,IAAI,KAAyB,CAAA;YAC7B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;gBACvC,MAAM,CAAC,GAAW,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;gBACjF,IAAI,KAAK,KAAK,SAAS;oBAAE,CAAC,CAAC,KAAK,GAAG,KAAK,CAAA;gBACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBACzD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAK;gBAC9B,IAAI,KAAK,GAAG,CAAC,CAAA;gBACb,KAAK,MAAM,CAAC,IAAI,MAAM;oBAAE,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK;wBAAE,KAAK,EAAE,CAAA;gBACzE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;gBAC3D,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,IAAI,KAAK;oBAAE,KAAK,IAAI,CAAC,CAAA;;oBAChE,KAAK,GAAG,MAAM,CAAA;gBACnB,IAAI,KAAK,IAAI,CAAC;oBAAE,MAAK;YACvB,CAAC;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC;IAED,yFAAyF;IAEzF,sGAAsG;IACnF,IAAI,CAAC,SAAiB,EAAE,GAAW,EAAE,OAAmB,EAAE,QAAqB;QAChG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC1I,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAA;QAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACpE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,CAAA;QACvD,OAAO,EAAE,CAAA;IACX,CAAC;IAEkB,cAAc,CAAC,CAAa;QAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;QACxG,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACvD,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAA;QAC1B,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;QACxI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,CAAA;QACvD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,UAAU,CAAC,SAAS,CAAC,kBAAkB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;IACrF,CAAC;IAEkB,aAAa,CAAC,KAAa,EAAE,MAAc;QAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAM;QACnD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAClE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC3C,IAAI,EAAE,CAAC;gBACP,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;gBACzC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;gBAClD,OAAO,EAAE,EAAE;aACZ,CAAC,CAAA;YACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAC9B,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACtC,CAAC;QACD,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;IAED,4FAA4F;IAEnF,KAAK,CAAC,KAAK;QAClB,IAAI,IAAI,CAAC,eAAe;YAAE,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAC7D,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;QACxB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAmC,IAAqB;IACvF,MAAM,EAAE,GAAG,IAAI,KAAK,CAAI,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5C,MAAM,EAAE,CAAC,KAAK,EAAE,CAAA;IAChB,OAAO,EAAE,CAAA;AACX,CAAC"}
|
package/dist/blob.d.ts
CHANGED
|
@@ -62,15 +62,15 @@ export declare class BlobStore {
|
|
|
62
62
|
/** Encrypt and upload. Returns a reference to store in a `json` column. */
|
|
63
63
|
put(data: Uint8Array | ArrayBuffer | Blob | string, opts?: BlobPutOptions): Promise<BlobRef>;
|
|
64
64
|
/** Download, verify the hash and decrypt. Tries the reference's servers, then the configured ones. */
|
|
65
|
-
get(refOrJson:
|
|
65
|
+
get(refOrJson: unknown): Promise<{
|
|
66
66
|
data: Uint8Array;
|
|
67
67
|
type: string;
|
|
68
68
|
name?: string;
|
|
69
69
|
}>;
|
|
70
70
|
/** Download as a browser `Blob` (handy for `URL.createObjectURL`). */
|
|
71
|
-
getBlob(ref:
|
|
71
|
+
getBlob(ref: unknown): Promise<Blob>;
|
|
72
72
|
/** Ask the servers to delete the blob. Only works from the device that uploaded it. */
|
|
73
|
-
delete(refOrJson:
|
|
73
|
+
delete(refOrJson: unknown): Promise<BlobUploadReport[]>;
|
|
74
74
|
}
|
|
75
75
|
export declare function isBlobRef(r: unknown): r is BlobRef;
|
|
76
76
|
export {};
|
package/dist/blob.js
CHANGED
|
@@ -209,7 +209,7 @@ export function isBlobRef(r) {
|
|
|
209
209
|
Array.isArray(o.servers) &&
|
|
210
210
|
o.servers.every((s) => typeof s === 'string'));
|
|
211
211
|
}
|
|
212
|
-
/** Accepts
|
|
212
|
+
/** Accepts a BlobRef, the value read back from a `json` column, or its JSON text. */
|
|
213
213
|
function parseRef(r) {
|
|
214
214
|
let ref = r;
|
|
215
215
|
if (typeof r === 'string') {
|
package/dist/blob.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blob.js","sourceRoot":"","sources":["../src/blob.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"blob.js","sourceRoot":"","sources":["../src/blob.ts"],"names":[],"mappings":"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"}
|