@mrbelloc/encrypted-store 1.3.2 → 2.2.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 +83 -1
- package/dist/encryptedStore.d.ts +39 -1
- package/dist/encryptedStore.d.ts.map +1 -1
- package/dist/encryptedStore.js +115 -2
- package/dist/encryptedStore.js.map +1 -1
- package/dist/encryption.d.ts +3 -1
- package/dist/encryption.d.ts.map +1 -1
- package/dist/encryption.js +30 -5
- package/dist/encryption.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -111,13 +111,25 @@ await store.loadAll();
|
|
|
111
111
|
|
|
112
112
|
## API Reference
|
|
113
113
|
|
|
114
|
-
### `new EncryptedStore(db, password, listener?)`
|
|
114
|
+
### `new EncryptedStore(db, password, listener?, options?)`
|
|
115
115
|
|
|
116
116
|
Creates an encrypted store.
|
|
117
117
|
|
|
118
118
|
- `db`: PouchDB database instance
|
|
119
119
|
- `password`: Encryption password (string)
|
|
120
120
|
- `listener`: Optional object with callbacks
|
|
121
|
+
- `options`: Optional configuration object
|
|
122
|
+
|
|
123
|
+
**Options:**
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
interface EncryptedStoreOptions {
|
|
127
|
+
passphraseMode?: "derive" | "raw"; // default: "derive"
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
- **`passphraseMode: "derive"`** (default): Uses PBKDF2 with 100k iterations for user passphrases. Recommended for production use. Provides strong protection against brute-force and dictionary attacks. First unlock will take ~50-100ms.
|
|
132
|
+
- **`passphraseMode: "raw"`**: Uses SHA-256 only. For pre-derived keys or advanced users who handle key derivation themselves. Allows full control over KDF algorithm, iterations, and progress UI.
|
|
121
133
|
|
|
122
134
|
### Listener Callbacks
|
|
123
135
|
|
|
@@ -158,6 +170,29 @@ Gets a document by table and ID. Returns `null` if not found.
|
|
|
158
170
|
|
|
159
171
|
Deletes a document by table and ID.
|
|
160
172
|
|
|
173
|
+
### `await store.deleteAllLocal()`
|
|
174
|
+
|
|
175
|
+
Deletes all documents locally only. Automatically disconnects sync first to prevent deletions from propagating to remote. Use this when you want to clear local data only.
|
|
176
|
+
|
|
177
|
+
```typescript
|
|
178
|
+
// Clear all local data without affecting remote
|
|
179
|
+
await store.deleteAllLocal();
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### `await store.deleteAllAndSync()`
|
|
183
|
+
|
|
184
|
+
Deletes all documents locally AND propagates deletions to remote. Waits for sync to complete before returning. Throws an error if sync is not connected.
|
|
185
|
+
|
|
186
|
+
```typescript
|
|
187
|
+
// Connect to remote first
|
|
188
|
+
await store.connectRemote({ url: 'http://localhost:5984/mydb' });
|
|
189
|
+
|
|
190
|
+
// Delete everything locally and remotely
|
|
191
|
+
await store.deleteAllAndSync();
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Note:** Call `connectRemote()` first, or use `deleteAllLocal()` instead.
|
|
195
|
+
|
|
161
196
|
### `await store.getAll(table?)`
|
|
162
197
|
|
|
163
198
|
Gets all documents, optionally filtered by table.
|
|
@@ -183,6 +218,39 @@ interface RemoteOptions {
|
|
|
183
218
|
|
|
184
219
|
Disconnects from remote sync.
|
|
185
220
|
|
|
221
|
+
### `await store.syncNow()`
|
|
222
|
+
|
|
223
|
+
Triggers an immediate one-time sync with the remote. Useful for controlling sync timing, especially with rate-limited services like IBM Cloudant's free tier.
|
|
224
|
+
|
|
225
|
+
```typescript
|
|
226
|
+
// Connect with continuous sync disabled
|
|
227
|
+
await store.connectRemote({
|
|
228
|
+
url: 'http://localhost:5984/mydb',
|
|
229
|
+
live: false,
|
|
230
|
+
retry: false
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
// Manually trigger sync when needed
|
|
234
|
+
await store.syncNow();
|
|
235
|
+
|
|
236
|
+
// Example: Batch multiple changes then sync
|
|
237
|
+
await store.put('expenses', { _id: '1', amount: 10 });
|
|
238
|
+
await store.put('expenses', { _id: '2', amount: 20 });
|
|
239
|
+
await store.put('expenses', { _id: '3', amount: 30 });
|
|
240
|
+
await store.syncNow(); // Sync all changes at once
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Throws an error if `connectRemote()` hasn't been called first.
|
|
244
|
+
|
|
245
|
+
### `store.reconnect()`
|
|
246
|
+
|
|
247
|
+
Re-subscribes to changes. Useful after disconnect/reconnect scenarios or if the change feed needs to be restarted.
|
|
248
|
+
|
|
249
|
+
```typescript
|
|
250
|
+
// Restart the change detection feed
|
|
251
|
+
store.reconnect();
|
|
252
|
+
```
|
|
253
|
+
|
|
186
254
|
### `await store.getConflictInfo(table, id)`
|
|
187
255
|
|
|
188
256
|
Check if a document has conflicts without triggering the callback. Returns `ConflictInfo` if conflicts exist, or `null` if none.
|
|
@@ -280,9 +348,19 @@ const store = new EncryptedStore(db, password, {
|
|
|
280
348
|
|
|
281
349
|
1. **IBM Cloudant** - Free tier: 1GB storage, 20 req/sec
|
|
282
350
|
```typescript
|
|
351
|
+
// Option 1: Continuous sync (may hit rate limits on initial sync)
|
|
283
352
|
await store.connectRemote({
|
|
284
353
|
url: 'https://username:password@username.cloudant.com/mydb'
|
|
285
354
|
});
|
|
355
|
+
|
|
356
|
+
// Option 2: Manual sync control (recommended for rate-limited services)
|
|
357
|
+
await store.connectRemote({
|
|
358
|
+
url: 'https://username:password@username.cloudant.com/mydb',
|
|
359
|
+
live: false,
|
|
360
|
+
retry: false
|
|
361
|
+
});
|
|
362
|
+
// Trigger sync manually when needed
|
|
363
|
+
await store.syncNow();
|
|
286
364
|
```
|
|
287
365
|
|
|
288
366
|
2. **Oracle Cloud Free Tier** - Run your own CouchDB
|
|
@@ -433,6 +511,10 @@ interface RemoteOptions {
|
|
|
433
511
|
live?: boolean;
|
|
434
512
|
retry?: boolean;
|
|
435
513
|
}
|
|
514
|
+
|
|
515
|
+
interface EncryptedStoreOptions {
|
|
516
|
+
passphraseMode?: "derive" | "raw";
|
|
517
|
+
}
|
|
436
518
|
```
|
|
437
519
|
|
|
438
520
|
## How It Works
|
package/dist/encryptedStore.d.ts
CHANGED
|
@@ -42,14 +42,34 @@ export interface RemoteOptions {
|
|
|
42
42
|
live?: boolean;
|
|
43
43
|
retry?: boolean;
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Options for configuring the EncryptedStore
|
|
47
|
+
*/
|
|
48
|
+
export interface EncryptedStoreOptions {
|
|
49
|
+
/**
|
|
50
|
+
* Key derivation mode for the passphrase.
|
|
51
|
+
*
|
|
52
|
+
* - `"derive"` (default): Use PBKDF2 with 100k iterations for user passphrases.
|
|
53
|
+
* Recommended for production use. Provides strong protection against brute-force
|
|
54
|
+
* and dictionary attacks. First unlock will take ~50-100ms.
|
|
55
|
+
*
|
|
56
|
+
* - `"raw"`: Use SHA-256 only. For pre-derived keys or advanced users who handle
|
|
57
|
+
* key derivation themselves. Allows full control over KDF algorithm, iterations,
|
|
58
|
+
* and progress UI.
|
|
59
|
+
*
|
|
60
|
+
* @default "derive"
|
|
61
|
+
*/
|
|
62
|
+
passphraseMode?: "derive" | "raw";
|
|
63
|
+
}
|
|
45
64
|
export declare class EncryptedStore {
|
|
46
65
|
private db;
|
|
47
66
|
private encryptionHelper;
|
|
48
67
|
private listener;
|
|
49
68
|
private changesHandler;
|
|
50
69
|
private syncHandler;
|
|
70
|
+
private remoteUrl;
|
|
51
71
|
private processingChain;
|
|
52
|
-
constructor(db: PouchDB.Database, password: string, listener?: StoreListener);
|
|
72
|
+
constructor(db: PouchDB.Database, password: string, listener?: StoreListener, options?: EncryptedStoreOptions);
|
|
53
73
|
/** Load all documents and set up change detection */
|
|
54
74
|
loadAll(): Promise<void>;
|
|
55
75
|
/** Create or update a document */
|
|
@@ -58,12 +78,30 @@ export declare class EncryptedStore {
|
|
|
58
78
|
get(table: string, id: string): Promise<Doc | null>;
|
|
59
79
|
/** Delete a document */
|
|
60
80
|
delete(table: string, id: string): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Delete all documents locally only.
|
|
83
|
+
* Automatically disconnects sync first to prevent deletions from propagating to remote.
|
|
84
|
+
* Use this when you want to clear local data only.
|
|
85
|
+
*/
|
|
86
|
+
deleteAllLocal(): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Delete all documents locally AND propagate deletions to remote.
|
|
89
|
+
* Waits for sync to complete before returning.
|
|
90
|
+
* Throws an error if sync is not connected.
|
|
91
|
+
*/
|
|
92
|
+
deleteAllAndSync(): Promise<void>;
|
|
61
93
|
/** Get all documents (optionally filtered by table) */
|
|
62
94
|
getAll(table?: string): Promise<Doc[]>;
|
|
63
95
|
/** Connect to remote CouchDB for sync */
|
|
64
96
|
connectRemote(options: RemoteOptions): Promise<void>;
|
|
65
97
|
/** Disconnect from remote sync */
|
|
66
98
|
disconnectRemote(): void;
|
|
99
|
+
/**
|
|
100
|
+
* Trigger an immediate one-time sync with the remote.
|
|
101
|
+
* Requires that connectRemote() has been called first.
|
|
102
|
+
* Returns a promise that resolves when the sync completes.
|
|
103
|
+
*/
|
|
104
|
+
syncNow(): Promise<void>;
|
|
67
105
|
/** Resolve a conflict by choosing the winner */
|
|
68
106
|
resolveConflict(table: string, id: string, winningDoc: Doc): Promise<void>;
|
|
69
107
|
/** Check if a document has conflicts without triggering the callback */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryptedStore.d.ts","sourceRoot":"","sources":["../src/encryptedStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,EAAE,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,MAAM,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IACjD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAQD,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,cAAc,CAA0C;IAChE,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,eAAe,CAAoC;gBAGzD,EAAE,EAAE,OAAO,CAAC,QAAQ,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"encryptedStore.d.ts","sourceRoot":"","sources":["../src/encryptedStore.ts"],"names":[],"mappings":"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"}
|
package/dist/encryptedStore.js
CHANGED
|
@@ -9,10 +9,11 @@ export class EncryptedStore {
|
|
|
9
9
|
listener;
|
|
10
10
|
changesHandler = null;
|
|
11
11
|
syncHandler = null;
|
|
12
|
+
remoteUrl = null;
|
|
12
13
|
processingChain = Promise.resolve();
|
|
13
|
-
constructor(db, password, listener) {
|
|
14
|
+
constructor(db, password, listener, options) {
|
|
14
15
|
this.db = db;
|
|
15
|
-
this.encryptionHelper = new EncryptionHelper(password);
|
|
16
|
+
this.encryptionHelper = new EncryptionHelper(password, undefined, options?.passphraseMode || "derive");
|
|
16
17
|
this.listener = listener || { onChange: () => { }, onDelete: () => { } };
|
|
17
18
|
}
|
|
18
19
|
/** Load all documents and set up change detection */
|
|
@@ -115,6 +116,84 @@ export class EncryptedStore {
|
|
|
115
116
|
console.warn(`[EncryptedStore] Could not delete ${fullId}:`, error);
|
|
116
117
|
}
|
|
117
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Delete all documents locally only.
|
|
121
|
+
* Automatically disconnects sync first to prevent deletions from propagating to remote.
|
|
122
|
+
* Use this when you want to clear local data only.
|
|
123
|
+
*/
|
|
124
|
+
async deleteAllLocal() {
|
|
125
|
+
// Disconnect sync to ensure deletions stay local
|
|
126
|
+
this.disconnectRemote();
|
|
127
|
+
const result = await this.db.allDocs({ include_docs: false });
|
|
128
|
+
const docsToDelete = result.rows
|
|
129
|
+
.filter((row) => !row.id.startsWith("_design/"))
|
|
130
|
+
.map((row) => ({
|
|
131
|
+
_id: row.id,
|
|
132
|
+
_rev: row.value.rev,
|
|
133
|
+
_deleted: true,
|
|
134
|
+
}));
|
|
135
|
+
if (docsToDelete.length > 0) {
|
|
136
|
+
await this.db.bulkDocs(docsToDelete);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Delete all documents locally AND propagate deletions to remote.
|
|
141
|
+
* Waits for sync to complete before returning.
|
|
142
|
+
* Throws an error if sync is not connected.
|
|
143
|
+
*/
|
|
144
|
+
async deleteAllAndSync() {
|
|
145
|
+
if (!this.syncHandler) {
|
|
146
|
+
throw new Error("Sync is not connected. Call connectRemote() first or use deleteAllLocal() instead.");
|
|
147
|
+
}
|
|
148
|
+
const result = await this.db.allDocs({ include_docs: false });
|
|
149
|
+
const docsToDelete = result.rows
|
|
150
|
+
.filter((row) => !row.id.startsWith("_design/"))
|
|
151
|
+
.map((row) => ({
|
|
152
|
+
_id: row.id,
|
|
153
|
+
_rev: row.value.rev,
|
|
154
|
+
_deleted: true,
|
|
155
|
+
}));
|
|
156
|
+
if (docsToDelete.length === 0) {
|
|
157
|
+
return; // Nothing to delete
|
|
158
|
+
}
|
|
159
|
+
// Delete all documents
|
|
160
|
+
await this.db.bulkDocs(docsToDelete);
|
|
161
|
+
// Wait for sync to propagate deletions
|
|
162
|
+
return new Promise((resolve, reject) => {
|
|
163
|
+
let changeCount = 0;
|
|
164
|
+
let resolved = false;
|
|
165
|
+
const timeout = setTimeout(() => {
|
|
166
|
+
if (!resolved) {
|
|
167
|
+
resolved = true;
|
|
168
|
+
reject(new Error("Timeout waiting for deletions to sync to remote"));
|
|
169
|
+
}
|
|
170
|
+
}, 30000); // 30 second timeout
|
|
171
|
+
const changeHandler = (info) => {
|
|
172
|
+
if (info.direction === "push") {
|
|
173
|
+
changeCount += info.change.docs_written || 0;
|
|
174
|
+
// Wait until all deletions have been pushed
|
|
175
|
+
if (changeCount >= docsToDelete.length && !resolved) {
|
|
176
|
+
clearTimeout(timeout);
|
|
177
|
+
resolved = true;
|
|
178
|
+
this.syncHandler?.removeListener("change", changeHandler);
|
|
179
|
+
this.syncHandler?.removeListener("error", errorHandler);
|
|
180
|
+
resolve();
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
const errorHandler = (err) => {
|
|
185
|
+
if (!resolved) {
|
|
186
|
+
clearTimeout(timeout);
|
|
187
|
+
resolved = true;
|
|
188
|
+
this.syncHandler?.removeListener("change", changeHandler);
|
|
189
|
+
this.syncHandler?.removeListener("error", errorHandler);
|
|
190
|
+
reject(err);
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
this.syncHandler.on("change", changeHandler);
|
|
194
|
+
this.syncHandler.on("error", errorHandler);
|
|
195
|
+
});
|
|
196
|
+
}
|
|
118
197
|
/** Get all documents (optionally filtered by table) */
|
|
119
198
|
async getAll(table) {
|
|
120
199
|
const result = await this.db.allDocs({
|
|
@@ -151,6 +230,7 @@ export class EncryptedStore {
|
|
|
151
230
|
/** Connect to remote CouchDB for sync */
|
|
152
231
|
async connectRemote(options) {
|
|
153
232
|
this.disconnectRemote();
|
|
233
|
+
this.remoteUrl = options.url;
|
|
154
234
|
const syncOptions = {
|
|
155
235
|
live: options.live ?? true,
|
|
156
236
|
retry: options.retry ?? true,
|
|
@@ -202,6 +282,39 @@ export class EncryptedStore {
|
|
|
202
282
|
this.syncHandler.cancel();
|
|
203
283
|
this.syncHandler = null;
|
|
204
284
|
}
|
|
285
|
+
this.remoteUrl = null;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Trigger an immediate one-time sync with the remote.
|
|
289
|
+
* Requires that connectRemote() has been called first.
|
|
290
|
+
* Returns a promise that resolves when the sync completes.
|
|
291
|
+
*/
|
|
292
|
+
async syncNow() {
|
|
293
|
+
if (!this.remoteUrl) {
|
|
294
|
+
throw new Error("No remote connection configured. Call connectRemote() first.");
|
|
295
|
+
}
|
|
296
|
+
return new Promise((resolve, reject) => {
|
|
297
|
+
const sync = this.db.sync(this.remoteUrl, {
|
|
298
|
+
live: false,
|
|
299
|
+
retry: false,
|
|
300
|
+
});
|
|
301
|
+
sync
|
|
302
|
+
.on("change", (info) => {
|
|
303
|
+
if (this.listener.onSync) {
|
|
304
|
+
this.listener.onSync({
|
|
305
|
+
direction: info.direction,
|
|
306
|
+
change: info.change,
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
})
|
|
310
|
+
.on("complete", () => {
|
|
311
|
+
resolve();
|
|
312
|
+
})
|
|
313
|
+
.on("error", (err) => {
|
|
314
|
+
console.error("[EncryptedStore] syncNow error:", err);
|
|
315
|
+
reject(err);
|
|
316
|
+
});
|
|
317
|
+
});
|
|
205
318
|
}
|
|
206
319
|
/** Resolve a conflict by choosing the winner */
|
|
207
320
|
async resolveConflict(table, id, winningDoc) {
|
|
@@ -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/dist/encryption.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ interface CryptoInterface {
|
|
|
7
7
|
importKey(format: string, keyData: BufferSource, algorithm: string | object, extractable: boolean, keyUsages: string[]): Promise<CryptoKey>;
|
|
8
8
|
encrypt(algorithm: string | object, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
|
|
9
9
|
decrypt(algorithm: string | object, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
|
|
10
|
+
deriveBits(algorithm: object, baseKey: CryptoKey, length: number): Promise<ArrayBuffer>;
|
|
10
11
|
};
|
|
11
12
|
getRandomValues<T extends ArrayBufferView>(array: T): T;
|
|
12
13
|
}
|
|
@@ -17,7 +18,8 @@ declare class EncryptionHelper {
|
|
|
17
18
|
private keyPromise;
|
|
18
19
|
private readonly passphrase;
|
|
19
20
|
private readonly crypto;
|
|
20
|
-
|
|
21
|
+
private readonly passphraseMode;
|
|
22
|
+
constructor(passphrase: string, crypto?: CryptoInterface, passphraseMode?: "derive" | "raw");
|
|
21
23
|
private getKey;
|
|
22
24
|
private static fromHexString;
|
|
23
25
|
private static toHexString;
|
package/dist/encryption.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../src/encryption.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,UAAU,eAAe;IACvB,MAAM,EAAE;QACN,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACpE,SAAS,CACP,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,SAAS,CAAC,CAAC;QACtB,OAAO,CACL,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,WAAW,CAAC,CAAC;QACxB,OAAO,CACL,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,WAAW,CAAC,CAAC;KACzB,CAAC;IACF,eAAe,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;CACzD;AAED,cAAM,eAAgB,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAK5B;AAED,cAAM,gBAAgB;IACpB,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;
|
|
1
|
+
{"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../src/encryption.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,UAAU,eAAe;IACvB,MAAM,EAAE;QACN,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACpE,SAAS,CACP,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,SAAS,CAAC,CAAC;QACtB,OAAO,CACL,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,WAAW,CAAC,CAAC;QACxB,OAAO,CACL,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,WAAW,CAAC,CAAC;QACxB,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAAC;KACzB,CAAC;IACF,eAAe,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;CACzD;AAED,cAAM,eAAgB,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAK5B;AAED,cAAM,gBAAgB;IACpB,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;gBAGhD,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,eAAe,EACxB,cAAc,GAAE,QAAQ,GAAG,KAAgB;YAS/B,MAAM;IAwDpB,OAAO,CAAC,MAAM,CAAC,aAAa;IAM5B,OAAO,CAAC,MAAM,CAAC,WAAW;IAOpB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBtC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAqB7C;AAED,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/encryption.js
CHANGED
|
@@ -12,20 +12,45 @@ class EncryptionHelper {
|
|
|
12
12
|
keyPromise = null;
|
|
13
13
|
passphrase;
|
|
14
14
|
crypto;
|
|
15
|
-
|
|
15
|
+
passphraseMode;
|
|
16
|
+
constructor(passphrase, crypto, passphraseMode = "derive") {
|
|
16
17
|
this.passphrase = passphrase;
|
|
17
18
|
this.crypto =
|
|
18
19
|
crypto ||
|
|
19
20
|
(typeof window !== "undefined" ? window.crypto : global.crypto);
|
|
21
|
+
this.passphraseMode = passphraseMode;
|
|
20
22
|
}
|
|
21
23
|
async getKey() {
|
|
22
24
|
if (this.keyPromise) {
|
|
23
25
|
return this.keyPromise;
|
|
24
26
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
this.keyPromise = (async () => {
|
|
28
|
+
const enc = new TextEncoder();
|
|
29
|
+
const pwUtf8 = enc.encode(this.passphrase);
|
|
30
|
+
let keyMaterial;
|
|
31
|
+
if (this.passphraseMode === "derive") {
|
|
32
|
+
// User passphrase - use PBKDF2 to derive strong key
|
|
33
|
+
// No salt for deterministic behavior (same passphrase = same key everywhere)
|
|
34
|
+
// Use passphrase itself as "salt" for PBKDF2
|
|
35
|
+
const iterations = 100000; // 100k iterations - good security/performance balance
|
|
36
|
+
// Import passphrase as key material for PBKDF2
|
|
37
|
+
const baseKey = await this.crypto.subtle.importKey("raw", pwUtf8, "PBKDF2", false, ["deriveBits"]);
|
|
38
|
+
// Derive 256 bits using PBKDF2
|
|
39
|
+
keyMaterial = await this.crypto.subtle.deriveBits({
|
|
40
|
+
name: "PBKDF2",
|
|
41
|
+
salt: pwUtf8, // Use passphrase as salt for determinism
|
|
42
|
+
iterations: iterations,
|
|
43
|
+
hash: "SHA-256",
|
|
44
|
+
}, baseKey, 256);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// Raw mode - passphrase is already strong (e.g., random bytes)
|
|
48
|
+
// Just hash to normalize to 256 bits
|
|
49
|
+
keyMaterial = await this.crypto.subtle.digest("SHA-256", pwUtf8);
|
|
50
|
+
}
|
|
51
|
+
// Import the derived/hashed material as AES-GCM key
|
|
52
|
+
return await this.crypto.subtle.importKey("raw", keyMaterial, "AES-GCM", true, ["encrypt", "decrypt"]);
|
|
53
|
+
})();
|
|
29
54
|
return this.keyPromise;
|
|
30
55
|
}
|
|
31
56
|
static fromHexString(hexString) {
|
package/dist/encryption.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../src/encryption.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../src/encryption.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* @packageDocumentation
|
|
5
5
|
*/
|
|
6
6
|
export { EncryptedStore } from "./encryptedStore.js";
|
|
7
|
-
export type { Doc, StoreListener, DecryptionErrorEvent, ConflictInfo, SyncInfo, RemoteOptions, } from "./encryptedStore.js";
|
|
7
|
+
export type { Doc, StoreListener, DecryptionErrorEvent, ConflictInfo, SyncInfo, RemoteOptions, EncryptedStoreOptions, } from "./encryptedStore.js";
|
|
8
8
|
export { EncryptionHelper, DecryptionError } from "./encryption.js";
|
|
9
9
|
export type { CryptoInterface } from "./encryption.js";
|
|
10
|
-
export declare const VERSION = "1.
|
|
10
|
+
export declare const VERSION = "2.1.0";
|
|
11
11
|
import PouchDB from "pouchdb-browser";
|
|
12
12
|
export { PouchDB };
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,GAAG,EACH,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,QAAQ,EACR,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,GAAG,EACH,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,eAAO,MAAM,OAAO,UAAU,CAAC;AAI/B,OAAO,OAAO,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { EncryptedStore } from "./encryptedStore.js";
|
|
7
7
|
export { EncryptionHelper, DecryptionError } from "./encryption.js";
|
|
8
|
-
export const VERSION = "1.
|
|
8
|
+
export const VERSION = "2.1.0";
|
|
9
9
|
// Re-export PouchDB for convenience
|
|
10
10
|
// Use pouchdb-browser for Vite/browser compatibility
|
|
11
11
|
import PouchDB from "pouchdb-browser";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAWrD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGpE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,oCAAoC;AACpC,qDAAqD;AACrD,OAAO,OAAO,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,CAAC"}
|