Ship an official IndexedDB-backed StorageProvider so browser-based Shade
consumers persist identity, prekeys, sessions, retired identities,
peer-verification state and stream-resume rows across tab refresh and
browser restart. Closes the gap that forced browser apps onto
storage:"memory" (regenerated identity each load, orphaned device
records server-side).
- New package @shade/storage-indexeddb (4.3.0): full StorageProvider
conformance, schema v1, idb-backed; bumpPeerIdentityVersion is wrapped
in a single readwrite IDB transaction (atomic, vs SQLite's
read-then-upsert race).
- @shade/sdk resolveStorage() accepts { type: 'indexeddb', dbName? } via
dynamic import (lazy, optional dep — same pattern as
@shade/storage-postgres). Named StorageSpec type now reused by
ResolvedConfig.
- Tests: 16 new tests in shade-storage-indexeddb (StorageProvider
surface + peer-verifications + full E2EE conversation surviving a
simulated tab reload). Run on fake-indexeddb.
- Lockstep version bump 4.2.1 → 4.3.0 across all 25 packages.
- Publish scripts updated to include the new package.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
33 lines
853 B
JSON
33 lines
853 B
JSON
{
|
|
"name": "@shade/sdk",
|
|
"version": "4.3.0",
|
|
"type": "module",
|
|
"main": "src/index.ts",
|
|
"types": "src/index.ts",
|
|
"dependencies": {
|
|
"@shade/core": "workspace:*",
|
|
"@shade/crypto-web": "workspace:*",
|
|
"@shade/files": "workspace:*",
|
|
"@shade/key-transparency": "workspace:*",
|
|
"@shade/observability": "workspace:*",
|
|
"@shade/observer": "workspace:*",
|
|
"@shade/proto": "workspace:*",
|
|
"@shade/server": "workspace:*",
|
|
"@shade/storage-sqlite": "workspace:*",
|
|
"@shade/streams": "workspace:*",
|
|
"@shade/transfer": "workspace:*",
|
|
"@shade/transport": "workspace:*"
|
|
},
|
|
"peerDependencies": {
|
|
"@shade/transport-webrtc": "workspace:*"
|
|
},
|
|
"peerDependenciesMeta": {
|
|
"@shade/transport-webrtc": {
|
|
"optional": true
|
|
}
|
|
},
|
|
"devDependencies": {
|
|
"@shade/transport-webrtc": "workspace:*"
|
|
}
|
|
}
|