@mrbelloc/encrypted-store 0.2.2 → 0.3.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/README.md CHANGED
@@ -41,6 +41,12 @@ const store = new EncryptedStore(db, "my-password", {
41
41
  console.log(`Deleted ${table}:`, docs);
42
42
  });
43
43
  },
44
+ decryptionError: (events) => {
45
+ events.forEach(({ docId, error, doc }) => {
46
+ console.error(`Failed to decrypt ${docId}:`, error.message);
47
+ console.log("Raw encrypted document:", doc);
48
+ });
49
+ },
44
50
  });
45
51
 
46
52
  // Load existing data
@@ -64,16 +70,23 @@ Creates an encrypted store.
64
70
 
65
71
  - `db`: Fireproof database instance
66
72
  - `password`: Encryption password (string)
67
- - `listener`: Object with three callbacks:
73
+ - `listener`: Object with callbacks:
68
74
  - `docsAdded(events: TableEvent[])`: Fired when new documents are added
69
75
  - `docsChanged(events: TableEvent[])`: Fired when documents are updated
70
76
  - `docsDeleted(events: TableEvent[])`: Fired when documents are deleted
77
+ - `decryptionError?(events: DecryptionErrorEvent[])`: Optional. Fired when documents fail to decrypt
71
78
 
72
79
  Each `TableEvent` has:
73
80
 
74
81
  - `table`: Document type (e.g., "users", "transactions")
75
82
  - `docs`: Array of documents with that type
76
83
 
84
+ Each `DecryptionErrorEvent` has:
85
+
86
+ - `docId`: Full document ID that failed to decrypt (e.g., "users_alice")
87
+ - `error`: Error object with details about why decryption failed
88
+ - `doc`: The raw encrypted document from Fireproof (includes `_id` and `d` fields)
89
+
77
90
  ### `await store.loadAll()`
78
91
 
79
92
  Loads all existing documents and sets up change detection. Call this once after creating the store.
@@ -123,6 +136,58 @@ store.disconnectRemote();
123
136
 
124
137
  **Note:** Remote servers only see encrypted blobs - they cannot read your data.
125
138
 
139
+ ### Testing Remote Sync
140
+
141
+ To test that remote sync is working:
142
+
143
+ 1. **Connect to a remote server** using one of the Fireproof connectors (PartyKit, Netlify, etc.)
144
+ 2. **Monitor decryption errors** - If data arrives from another client encrypted with a different password or corrupted, you'll receive `decryptionError` events
145
+ 3. **Use the decryptionError callback** to verify connectivity and detect synchronization issues
146
+
147
+ ```typescript
148
+ const store = new EncryptedStore(db, "my-password", {
149
+ docsAdded: (events) => {
150
+ console.log("✓ Received new documents from remote");
151
+ },
152
+ docsChanged: (events) => {
153
+ console.log("✓ Received document updates from remote");
154
+ },
155
+ docsDeleted: (events) => {
156
+ console.log("✓ Received document deletions from remote");
157
+ },
158
+ decryptionError: (events) => {
159
+ // This fires when remote data can't be decrypted
160
+ // Useful for detecting sync issues or password mismatches
161
+ events.forEach(({ docId, error, doc }) => {
162
+ console.warn(`⚠ Failed to decrypt ${docId}:`, error.message);
163
+ console.log("Raw encrypted document available for debugging:", doc);
164
+ });
165
+ },
166
+ });
167
+
168
+ await store.connectRemote(connect, {
169
+ namespace: "my-app",
170
+ host: "http://localhost:1999",
171
+ });
172
+ ```
173
+
174
+ **Important:** Unlike traditional databases like CouchDB/PouchDB, Fireproof connectors don't provide connection status events. The subscription mechanism handles both local and remote changes automatically. Monitor the event callbacks to verify sync is working.
175
+
176
+ ## Decryption Error Handling
177
+
178
+ The store automatically handles documents that fail to decrypt:
179
+
180
+ - **Wrong password**: Documents encrypted with a different password will trigger `decryptionError` events
181
+ - **Corrupted data**: Malformed or corrupted encrypted data is caught and reported
182
+ - **Graceful degradation**: Successfully decrypted documents are still processed; failures don't stop the store
183
+ - **Remote sync issues**: Detect when remote clients are using different passwords or sending corrupted data
184
+
185
+ This is especially useful when:
186
+ - Testing remote sync connectivity
187
+ - Debugging encryption/decryption issues
188
+ - Detecting data corruption
189
+ - Monitoring multi-client scenarios with different encryption keys
190
+
126
191
  ## How It Works
127
192
 
128
193
  1. **Encryption**: Documents are encrypted with AES-256-GCM before storage
@@ -130,6 +195,7 @@ store.disconnectRemote();
130
195
  3. **Change Detection**: Fireproof's subscribe notifies us of changes
131
196
  4. **Diff Computation**: We track IDs and decrypt only changed documents
132
197
  5. **Events**: Your app gets organized events by table (added/changed/deleted)
198
+ 6. **Error Handling**: Failed decryptions are reported via optional callback
133
199
 
134
200
  ## Example: React Integration
135
201
 
@@ -177,6 +243,13 @@ function useEncryptedStore(dbName: string, password: string) {
177
243
  }
178
244
  });
179
245
  },
246
+ decryptionError: (events) => {
247
+ // Handle decryption errors (optional)
248
+ events.forEach(({ docId, error, doc }) => {
249
+ console.error(`Failed to decrypt ${docId}:`, error.message);
250
+ // Raw encrypted document is available in doc.d if needed
251
+ });
252
+ },
180
253
  });
181
254
 
182
255
  encryptedStore.loadAll();
@@ -195,10 +268,17 @@ interface TableEvent {
195
268
  docs: Doc[];
196
269
  }
197
270
 
271
+ interface DecryptionErrorEvent {
272
+ docId: string;
273
+ error: Error;
274
+ doc: any; // The raw encrypted document from Fireproof
275
+ }
276
+
198
277
  interface StoreListener {
199
278
  docsAdded: (events: TableEvent[]) => void;
200
279
  docsChanged: (events: TableEvent[]) => void;
201
280
  docsDeleted: (events: TableEvent[]) => void;
281
+ decryptionError?: (events: DecryptionErrorEvent[]) => void;
202
282
  }
203
283
 
204
284
  interface Doc {
@@ -41,8 +41,12 @@ export interface FireproofDb {
41
41
  value?: any;
42
42
  }>;
43
43
  }>;
44
- subscribe(callback: (changes: any[]) => void, remote?: boolean): void;
44
+ subscribe(callback: (changes: any[]) => void, remote?: boolean): () => void;
45
45
  del(id: string, rev?: string): Promise<any>;
46
+ changes(clock?: any): Promise<{
47
+ rows: any[];
48
+ clock: any;
49
+ }>;
46
50
  }
47
51
  /**
48
52
  * EncryptedStore class
@@ -56,7 +60,9 @@ export declare class EncryptedStore {
56
60
  private knownIds;
57
61
  private fullIdMap;
58
62
  private isSubscribed;
63
+ private unsubscribe;
59
64
  private connection;
65
+ private clock;
60
66
  constructor(db: FireproofDb, password: string, listener: StoreListener);
61
67
  /** Load all documents and set up change detection (call once after creating store) */
62
68
  loadAll(): Promise<void>;
@@ -70,11 +76,13 @@ export declare class EncryptedStore {
70
76
  connectRemote(connector: ConnectorFunction, options: RemoteConnectOptions): Promise<void>;
71
77
  /** Disconnect from remote sync */
72
78
  disconnectRemote(): void;
79
+ /** Reconnect subscription to ensure remote changes are received */
80
+ reconnect(): void;
73
81
  /** Read all encrypted documents (without decrypting) */
74
82
  private readAllEncrypted;
75
83
  /**
76
- * Process Fireproof changes: { _id, d? }
77
- * With d = create/update, without d = deletion
84
+ * Query db.changes() and process any new changes (external indexer pattern)
85
+ * This is called whenever the subscription fires
78
86
  */
79
87
  private handleChange;
80
88
  private decryptFromEncryptedData;
@@ -1 +1 @@
1
- {"version":3,"file":"encryptedStore.d.ts","sourceRoot":"","sources":["../src/encryptedStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encryptedStore.d.ts","sourceRoot":"","sources":["../src/encryptedStore.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,9 @@ export class EncryptedStore {
15
15
  knownIds = new Set(); // Set of known document IDs (stripped, e.g., "alice")
16
16
  fullIdMap = new Map(); // stripped id -> full id with table
17
17
  isSubscribed = false;
18
+ unsubscribe = null; // Callback to unsubscribe from changes
18
19
  connection = null;
20
+ clock = null; // High water mark for changes() API
19
21
  constructor(db, password, listener) {
20
22
  this.db = db;
21
23
  this.encryptionHelper = new EncryptionHelper(password);
@@ -23,6 +25,8 @@ export class EncryptedStore {
23
25
  }
24
26
  /** Load all documents and set up change detection (call once after creating store) */
25
27
  async loadAll() {
28
+ // Reconnect subscription to ensure we receive all changes
29
+ this.reconnect();
26
30
  const { encryptedMap, fullIdMap } = await this.readAllEncrypted();
27
31
  this.fullIdMap = fullIdMap;
28
32
  // Build initial set of known IDs
@@ -38,20 +42,20 @@ export class EncryptedStore {
38
42
  // Skip documents we can't decrypt
39
43
  }
40
44
  }
45
+ // Initialize clock for changes() API
46
+ try {
47
+ const result = await this.db.changes();
48
+ this.clock = result.clock;
49
+ console.log("[EncryptedStore] Initialized changes clock");
50
+ }
51
+ catch (error) {
52
+ console.warn("[EncryptedStore] db.changes() not available, falling back to subscription only");
53
+ }
41
54
  // Fire initial docsAdded for everything, grouped by table
42
55
  if (docs.length > 0) {
43
56
  const events = this.groupByTable(docs, fullIdMap);
44
57
  this.listener.docsAdded(events);
45
58
  }
46
- // Set up subscribe (only once)
47
- if (!this.isSubscribed) {
48
- this.db.subscribe((changes) => {
49
- this.handleChange(changes).catch((err) => {
50
- console.error("EncryptedStore: Error handling change:", err);
51
- });
52
- }, true); // Include remote changes
53
- this.isSubscribed = true;
54
- }
55
59
  }
56
60
  /** Create or update a document */
57
61
  async put(type, doc) {
@@ -120,6 +124,27 @@ export class EncryptedStore {
120
124
  }
121
125
  this.connection = null;
122
126
  }
127
+ /** Reconnect subscription to ensure remote changes are received */
128
+ reconnect() {
129
+ // Cancel existing subscription if any
130
+ if (this.unsubscribe) {
131
+ console.log("[EncryptedStore] Canceling existing subscription");
132
+ this.unsubscribe();
133
+ this.unsubscribe = null;
134
+ this.isSubscribed = false;
135
+ }
136
+ // Re-subscribe to database changes
137
+ // We treat subscription as a "something changed" notification
138
+ // and always query db.changes() to get actual changes (external indexer pattern)
139
+ console.log("[EncryptedStore] Reconnecting subscription (remote=true)");
140
+ this.unsubscribe = this.db.subscribe(() => {
141
+ console.log("[EncryptedStore] Subscription notified - querying db.changes()");
142
+ this.handleChange().catch((err) => {
143
+ console.error("EncryptedStore: Error handling change:", err);
144
+ });
145
+ }, true); // Include remote changes
146
+ this.isSubscribed = true;
147
+ }
123
148
  /** Read all encrypted documents (without decrypting) */
124
149
  async readAllEncrypted() {
125
150
  const result = await this.db.query("_id", { descending: false });
@@ -140,65 +165,82 @@ export class EncryptedStore {
140
165
  return { encryptedMap, fullIdMap };
141
166
  }
142
167
  /**
143
- * Process Fireproof changes: { _id, d? }
144
- * With d = create/update, without d = deletion
168
+ * Query db.changes() and process any new changes (external indexer pattern)
169
+ * This is called whenever the subscription fires
145
170
  */
146
- async handleChange(changes) {
147
- const newDocs = [];
148
- const changedDocs = [];
149
- const deletedDocs = [];
150
- for (const change of changes) {
151
- if (change.d) {
152
- // Has encrypted data - it's a create or update
153
- try {
154
- const { type, id } = this.parseFullId(change._id);
155
- // Decrypt the document
156
- const decrypted = await this.decryptFromEncryptedData(change.d, id);
157
- // Check if it's new or changed
158
- if (this.knownIds.has(id)) {
159
- changedDocs.push(decrypted);
171
+ async handleChange() {
172
+ try {
173
+ // Query changes since last clock
174
+ const result = await this.db.changes(this.clock);
175
+ console.log(`[EncryptedStore] db.changes() returned ${result.rows.length} changes`);
176
+ if (result.rows.length === 0) {
177
+ return;
178
+ }
179
+ // Update clock first
180
+ this.clock = result.clock;
181
+ // Transform db.changes() format to processable format
182
+ // db.changes() returns { key, value: { _id, d }, clock }
183
+ const changes = result.rows.map((row) => row.value);
184
+ const newDocs = [];
185
+ const changedDocs = [];
186
+ const deletedDocs = [];
187
+ for (const change of changes) {
188
+ if (change.d) {
189
+ // Has encrypted data - it's a create or update
190
+ try {
191
+ const { type, id } = this.parseFullId(change._id);
192
+ // Decrypt the document
193
+ const decrypted = await this.decryptFromEncryptedData(change.d, id);
194
+ // Check if it's new or changed
195
+ if (this.knownIds.has(id)) {
196
+ changedDocs.push(decrypted);
197
+ }
198
+ else {
199
+ newDocs.push(decrypted);
200
+ this.knownIds.add(id);
201
+ this.fullIdMap.set(id, change._id); // Update fullIdMap for new docs
202
+ }
160
203
  }
161
- else {
162
- newDocs.push(decrypted);
163
- this.knownIds.add(id);
164
- this.fullIdMap.set(id, change._id); // Update fullIdMap for new docs
204
+ catch (error) {
205
+ // Skip documents we can't decrypt or parse
165
206
  }
166
207
  }
167
- catch (error) {
168
- // Skip documents we can't decrypt or parse
169
- }
170
- }
171
- else {
172
- // No encrypted data - it's a deletion
173
- try {
174
- const { type, id } = this.parseFullId(change._id);
175
- if (this.knownIds.has(id)) {
176
- deletedDocs.push({ _id: id });
177
- this.knownIds.delete(id);
178
- // Keep fullIdMap entry for the deletion event, remove after
208
+ else {
209
+ // No encrypted data - it's a deletion
210
+ try {
211
+ const { type, id } = this.parseFullId(change._id);
212
+ if (this.knownIds.has(id)) {
213
+ deletedDocs.push({ _id: id });
214
+ this.knownIds.delete(id);
215
+ // Keep fullIdMap entry for the deletion event, remove after
216
+ }
217
+ }
218
+ catch (error) {
219
+ // Skip invalid IDs
179
220
  }
180
221
  }
181
- catch (error) {
182
- // Skip invalid IDs
222
+ }
223
+ // Fire events grouped by table
224
+ console.log(`[EncryptedStore] Firing events: ${newDocs.length} new, ${changedDocs.length} changed, ${deletedDocs.length} deleted`);
225
+ if (newDocs.length > 0) {
226
+ const events = this.groupByTable(newDocs, this.fullIdMap);
227
+ this.listener.docsAdded(events);
228
+ }
229
+ if (changedDocs.length > 0) {
230
+ const events = this.groupByTable(changedDocs, this.fullIdMap);
231
+ this.listener.docsChanged(events);
232
+ }
233
+ if (deletedDocs.length > 0) {
234
+ const events = this.groupDeletedByTable(deletedDocs);
235
+ this.listener.docsDeleted(events);
236
+ // Clean up fullIdMap entries for deleted docs
237
+ for (const doc of deletedDocs) {
238
+ this.fullIdMap.delete(doc._id);
183
239
  }
184
240
  }
185
241
  }
186
- // Fire events grouped by table
187
- if (newDocs.length > 0) {
188
- const events = this.groupByTable(newDocs, this.fullIdMap);
189
- this.listener.docsAdded(events);
190
- }
191
- if (changedDocs.length > 0) {
192
- const events = this.groupByTable(changedDocs, this.fullIdMap);
193
- this.listener.docsChanged(events);
194
- }
195
- if (deletedDocs.length > 0) {
196
- const events = this.groupDeletedByTable(deletedDocs);
197
- this.listener.docsDeleted(events);
198
- // Clean up fullIdMap entries for deleted docs
199
- for (const doc of deletedDocs) {
200
- this.fullIdMap.delete(doc._id);
201
- }
242
+ catch (error) {
243
+ console.error("[EncryptedStore] db.changes() failed:", error);
202
244
  }
203
245
  }
204
246
  async decryptFromEncryptedData(encryptedData, id) {
@@ -1 +1 @@
1
- {"version":3,"file":"encryptedStore.js","sourceRoot":"","sources":["../src/encryptedStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encryptedStore.js","sourceRoot":"","sources":["../src/encryptedStore.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrbelloc/encrypted-store",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "description": "Client-side encrypted storage with change detection for small datasets in PWAs",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",