@1sat/wallet-browser 0.0.19 → 0.0.20

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1sat/wallet-browser",
3
- "version": "0.0.19",
3
+ "version": "0.0.20",
4
4
  "description": "Browser wallet factory for 1Sat Ordinals SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,58 +0,0 @@
1
- /**
2
- * Full wallet synchronization with remote backup server.
3
- *
4
- * Performs a complete resync: push local → reset sync state → full pull from server.
5
- * This is a deliberate user action (not automatic) for recovering from sync issues.
6
- */
7
- import type { WalletStorageManager } from '@bsv/wallet-toolbox/out/src/index.client.js';
8
- import type { sdk as mobileToolboxSdk } from '@bsv/wallet-toolbox/out/src/index.client.js';
9
- type WalletStorageProvider = mobileToolboxSdk.WalletStorageProvider;
10
- export type FullSyncStage = 'pushing' | 'resetting' | 'pulling' | 'complete';
11
- export interface FullSyncOptions {
12
- /** Local storage manager */
13
- storage: WalletStorageManager;
14
- /** Remote backup storage provider (StorageClient) */
15
- remoteStorage: WalletStorageProvider;
16
- /** Identity key for the wallet */
17
- identityKey: string;
18
- /** Optional progress callback */
19
- onProgress?: (stage: FullSyncStage, message: string) => void;
20
- /** Max rough size per chunk in bytes (default: 1MB) */
21
- maxRoughSize?: number;
22
- /** Max items per chunk (default: 100) */
23
- maxItems?: number;
24
- }
25
- export interface FullSyncResult {
26
- pushed: {
27
- inserts: number;
28
- updates: number;
29
- };
30
- pulled: {
31
- inserts: number;
32
- updates: number;
33
- };
34
- }
35
- /**
36
- * Perform a full sync with the remote backup server.
37
- *
38
- * Steps:
39
- * 1. Push all local data to remote backup
40
- * 2. Clear local syncMap / reset sync state
41
- * 3. Pull ALL data from server (not incremental)
42
- * 4. Rebuild complete server→client ID mappings
43
- *
44
- * @example
45
- * ```typescript
46
- * const result = await fullSync({
47
- * storage,
48
- * remoteStorage: remoteClient,
49
- * identityKey: pubKey,
50
- * onProgress: (stage, msg) => console.log(`[${stage}] ${msg}`)
51
- * });
52
- * console.log(`Pushed: ${result.pushed.inserts}/${result.pushed.updates}`);
53
- * console.log(`Pulled: ${result.pulled.inserts}/${result.pulled.updates}`);
54
- * ```
55
- */
56
- export declare function fullSync(options: FullSyncOptions): Promise<FullSyncResult>;
57
- export {};
58
- //# sourceMappingURL=fullSync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fullSync.d.ts","sourceRoot":"","sources":["../src/fullSync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAA;AACvF,OAAO,KAAK,EAAE,GAAG,IAAI,gBAAgB,EAAE,MAAM,6CAA6C,CAAA;AAI1F,KAAK,qBAAqB,GAAG,gBAAgB,CAAC,qBAAqB,CAAA;AAEnE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAA;AAE5E,MAAM,WAAW,eAAe;IAC/B,4BAA4B;IAC5B,OAAO,EAAE,oBAAoB,CAAA;IAC7B,qDAAqD;IACrD,aAAa,EAAE,qBAAqB,CAAA;IACpC,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,iCAAiC;IACjC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5D,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,QAAQ,CAC7B,OAAO,EAAE,eAAe,GACtB,OAAO,CAAC,cAAc,CAAC,CAwGzB"}
package/dist/fullSync.js DELETED
@@ -1,92 +0,0 @@
1
- /**
2
- * Full wallet synchronization with remote backup server.
3
- *
4
- * Performs a complete resync: push local → reset sync state → full pull from server.
5
- * This is a deliberate user action (not automatic) for recovering from sync issues.
6
- */
7
- import { createSyncMap } from '@bsv/wallet-toolbox/out/src/storage/schema/entities/EntityBase.js';
8
- import { EntitySyncState } from '@bsv/wallet-toolbox/out/src/storage/schema/entities/EntitySyncState.js';
9
- /**
10
- * Perform a full sync with the remote backup server.
11
- *
12
- * Steps:
13
- * 1. Push all local data to remote backup
14
- * 2. Clear local syncMap / reset sync state
15
- * 3. Pull ALL data from server (not incremental)
16
- * 4. Rebuild complete server→client ID mappings
17
- *
18
- * @example
19
- * ```typescript
20
- * const result = await fullSync({
21
- * storage,
22
- * remoteStorage: remoteClient,
23
- * identityKey: pubKey,
24
- * onProgress: (stage, msg) => console.log(`[${stage}] ${msg}`)
25
- * });
26
- * console.log(`Pushed: ${result.pushed.inserts}/${result.pushed.updates}`);
27
- * console.log(`Pulled: ${result.pulled.inserts}/${result.pulled.updates}`);
28
- * ```
29
- */
30
- export async function fullSync(options) {
31
- const { storage, remoteStorage, identityKey, onProgress, maxRoughSize = 1000000, // 1 MB default
32
- maxItems = 100, } = options;
33
- // Step 1: Push ALL local data to remote (bypassing timestamp filter)
34
- onProgress?.('pushing', 'Pushing local data to remote...');
35
- const localSettings = storage.getSettings();
36
- const remoteSettings = await remoteStorage.makeAvailable();
37
- let pushInserts = 0;
38
- let pushUpdates = 0;
39
- let chunkCount = 0;
40
- for (;;) {
41
- // Get sync state from remote for proper offsets
42
- const ss = await EntitySyncState.fromStorage(remoteStorage, identityKey, localSettings);
43
- const args = ss.makeRequestSyncChunkArgs(identityKey, remoteSettings.storageIdentityKey, maxRoughSize, maxItems);
44
- // KEY: Override since to undefined - includes ALL data regardless of timestamp
45
- args.since = undefined;
46
- // Get chunk from local storage
47
- const chunk = await storage.runAsSync(async (sync) => sync.getSyncChunk(args));
48
- // Send chunk to remote
49
- const result = await remoteStorage.processSyncChunk(args, chunk);
50
- pushInserts += result.inserts;
51
- pushUpdates += result.updates;
52
- chunkCount++;
53
- onProgress?.('pushing', `Chunk ${chunkCount}: ${result.inserts} inserts, ${result.updates} updates`);
54
- if (result.done)
55
- break;
56
- }
57
- onProgress?.('pushing', `Pushed ${pushInserts} inserts, ${pushUpdates} updates`);
58
- // Step 2: Reset sync state to force full pull
59
- onProgress?.('resetting', 'Resetting sync state...');
60
- const auth = await storage.getAuth();
61
- await storage.runAsStorageProvider(async (active) => {
62
- const syncStates = await active.findSyncStates({
63
- partial: {
64
- userId: auth.userId,
65
- storageIdentityKey: remoteSettings.storageIdentityKey,
66
- },
67
- });
68
- if (syncStates.length > 0) {
69
- const syncState = syncStates[0];
70
- await active.updateSyncState(syncState.syncStateId, {
71
- syncMap: JSON.stringify(createSyncMap()),
72
- when: undefined,
73
- status: 'unknown',
74
- });
75
- onProgress?.('resetting', 'Sync state reset complete');
76
- }
77
- else {
78
- onProgress?.('resetting', 'No existing sync state found');
79
- }
80
- });
81
- // Step 3: Pull from remote (full pull due to reset state)
82
- onProgress?.('pulling', 'Pulling all data from remote...');
83
- const pullResult = await storage.syncFromReader(identityKey, remoteStorage);
84
- onProgress?.('pulling', `Pulled ${pullResult.inserts} inserts, ${pullResult.updates} updates`);
85
- // Step 4: Complete
86
- onProgress?.('complete', 'Full sync complete');
87
- return {
88
- pushed: { inserts: pushInserts, updates: pushUpdates },
89
- pulled: { inserts: pullResult.inserts, updates: pullResult.updates },
90
- };
91
- }
92
- //# sourceMappingURL=fullSync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fullSync.js","sourceRoot":"","sources":["../src/fullSync.ts"],"names":[],"mappings":"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"}