@automerge/automerge-repo 1.1.5 → 1.1.9
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 +3 -22
- package/dist/DocHandle.d.ts +124 -100
- package/dist/DocHandle.d.ts.map +1 -1
- package/dist/DocHandle.js +235 -229
- package/dist/Repo.d.ts +7 -8
- package/dist/Repo.d.ts.map +1 -1
- package/dist/Repo.js +9 -12
- package/dist/helpers/arraysAreEqual.d.ts.map +1 -1
- package/dist/helpers/debounce.d.ts.map +1 -1
- package/dist/helpers/throttle.d.ts.map +1 -1
- package/dist/helpers/withTimeout.d.ts.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/storage/StorageSubsystem.d.ts +0 -5
- package/dist/storage/StorageSubsystem.d.ts.map +1 -1
- package/dist/storage/StorageSubsystem.js +0 -27
- package/package.json +4 -4
- package/src/DocHandle.ts +320 -372
- package/src/Repo.ts +12 -15
- package/src/index.ts +43 -0
- package/src/storage/StorageSubsystem.ts +0 -32
- package/test/CollectionSynchronizer.test.ts +1 -3
- package/test/DocHandle.test.ts +19 -1
- package/test/DocSynchronizer.test.ts +1 -4
- package/test/Repo.test.ts +82 -71
- package/test/remoteHeads.test.ts +1 -1
- package/tsconfig.json +1 -0
package/dist/Repo.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export declare class Repo extends EventEmitter<RepoEvents> {
|
|
|
29
29
|
/** maps peer id to to persistence information (storageId, isEphemeral), access by collection synchronizer */
|
|
30
30
|
/** @hidden */
|
|
31
31
|
peerMetadataByPeerId: Record<PeerId, PeerMetadata>;
|
|
32
|
-
constructor({ storage, network, peerId, sharePolicy, isEphemeral, enableRemoteHeadsGossiping, }
|
|
32
|
+
constructor({ storage, network, peerId, sharePolicy, isEphemeral, enableRemoteHeadsGossiping, }?: RepoConfig);
|
|
33
33
|
/** Returns all the handles we have cached. */
|
|
34
34
|
get handles(): Record<DocumentId, DocHandle<any>>;
|
|
35
35
|
/** Returns a list of all connected peer ids */
|
|
@@ -83,13 +83,12 @@ export declare class Repo extends EventEmitter<RepoEvents> {
|
|
|
83
83
|
subscribeToRemotes: (remotes: StorageId[]) => void;
|
|
84
84
|
storageId: () => Promise<StorageId | undefined>;
|
|
85
85
|
/**
|
|
86
|
-
*
|
|
87
|
-
* @hidden this API is experimental and may change
|
|
88
|
-
* @param documents - if provided, only
|
|
89
|
-
* @param timeout - if provided, the maximum time to wait in milliseconds (rejects on timeout)
|
|
86
|
+
* Writes Documents to a disk.
|
|
87
|
+
* @hidden this API is experimental and may change.
|
|
88
|
+
* @param documents - if provided, only writes the specified documents.
|
|
90
89
|
* @returns Promise<void>
|
|
91
90
|
*/
|
|
92
|
-
flush(documents?: DocumentId[]
|
|
91
|
+
flush(documents?: DocumentId[]): Promise<void>;
|
|
93
92
|
}
|
|
94
93
|
export interface RepoConfig {
|
|
95
94
|
/** Our unique identifier */
|
|
@@ -99,8 +98,8 @@ export interface RepoConfig {
|
|
|
99
98
|
isEphemeral?: boolean;
|
|
100
99
|
/** A storage adapter can be provided, or not */
|
|
101
100
|
storage?: StorageAdapterInterface;
|
|
102
|
-
/**
|
|
103
|
-
network
|
|
101
|
+
/** A list of network adapters (more can be added at runtime). */
|
|
102
|
+
network?: NetworkAdapterInterface[];
|
|
104
103
|
/**
|
|
105
104
|
* Normal peers typically share generously with everyone (meaning we sync all our documents with
|
|
106
105
|
* all peers). A server only syncs documents that a peer explicitly requests by ID.
|
package/dist/Repo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Repo.d.ts","sourceRoot":"","sources":["../src/Repo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAM5C,OAAO,EAAE,SAAS,EAAiC,MAAM,gBAAgB,CAAA;AAIzE,OAAO,EACL,uBAAuB,EACvB,KAAK,YAAY,EAClB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAEhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAG9C,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnE,8FAA8F;AAC9F;;;;;;GAMG;AACH,qBAAa,IAAK,SAAQ,YAAY,CAAC,UAAU,CAAC;;IAGhD,cAAc;IACd,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,cAAc;IACd,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IAEnC,mDAAmD;IACnD,cAAc;IACd,gBAAgB,SAAM;IAMtB,sDAAsD;IACtD,cAAc;IACd,WAAW,EAAE,WAAW,CAAmB;IAE3C,8GAA8G;IAC9G,cAAc;IACd,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAK;gBAK3C,EACV,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"Repo.d.ts","sourceRoot":"","sources":["../src/Repo.ts"],"names":[],"mappings":"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"}
|
package/dist/Repo.js
CHANGED
|
@@ -36,7 +36,7 @@ export class Repo extends EventEmitter {
|
|
|
36
36
|
peerMetadataByPeerId = {};
|
|
37
37
|
#remoteHeadsSubscriptions = new RemoteHeadsSubscriptions();
|
|
38
38
|
#remoteHeadsGossipingEnabled = false;
|
|
39
|
-
constructor({ storage, network, peerId, sharePolicy, isEphemeral = storage === undefined, enableRemoteHeadsGossiping = false, }) {
|
|
39
|
+
constructor({ storage, network = [], peerId, sharePolicy, isEphemeral = storage === undefined, enableRemoteHeadsGossiping = false, } = {}) {
|
|
40
40
|
super();
|
|
41
41
|
this.#remoteHeadsGossipingEnabled = enableRemoteHeadsGossiping;
|
|
42
42
|
this.#log = debug(`automerge-repo:repo`);
|
|
@@ -384,27 +384,24 @@ export class Repo extends EventEmitter {
|
|
|
384
384
|
}
|
|
385
385
|
};
|
|
386
386
|
/**
|
|
387
|
-
*
|
|
388
|
-
* @hidden this API is experimental and may change
|
|
389
|
-
* @param documents - if provided, only
|
|
390
|
-
* @param timeout - if provided, the maximum time to wait in milliseconds (rejects on timeout)
|
|
387
|
+
* Writes Documents to a disk.
|
|
388
|
+
* @hidden this API is experimental and may change.
|
|
389
|
+
* @param documents - if provided, only writes the specified documents.
|
|
391
390
|
* @returns Promise<void>
|
|
392
391
|
*/
|
|
393
|
-
async flush(documents
|
|
392
|
+
async flush(documents) {
|
|
394
393
|
if (!this.storageSubsystem) {
|
|
395
|
-
return
|
|
394
|
+
return;
|
|
396
395
|
}
|
|
397
396
|
const handles = documents
|
|
398
397
|
? documents.map(id => this.#handleCache[id])
|
|
399
398
|
: Object.values(this.#handleCache);
|
|
400
|
-
|
|
399
|
+
await Promise.all(handles.map(async (handle) => {
|
|
401
400
|
const doc = handle.docSync();
|
|
402
401
|
if (!doc) {
|
|
403
402
|
return;
|
|
404
403
|
}
|
|
405
|
-
return this.storageSubsystem.
|
|
406
|
-
}))
|
|
407
|
-
/* No-op. To return `voi`d and not `void[]` */
|
|
408
|
-
});
|
|
404
|
+
return this.storageSubsystem.saveDoc(handle.documentId, doc);
|
|
405
|
+
}));
|
|
409
406
|
}
|
|
410
407
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arraysAreEqual.d.ts","sourceRoot":"","sources":["../../src/helpers/arraysAreEqual.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"arraysAreEqual.d.ts","sourceRoot":"","sources":["../../src/helpers/arraysAreEqual.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,SAAU,CAAC,EAAE,KAAK,CAAC,EAAE,YAC4B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../src/helpers/debounce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../src/helpers/debounce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,QAAQ,4DACf,CAAC,QACC,MAAM,eAGc,WAAW,CAAC,CAAC,SAMxC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../src/helpers/throttle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../src/helpers/throttle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,eAAO,MAAM,QAAQ,4DACf,CAAC,SACE,MAAM,eAKa,WAAW,CAAC,CAAC,SAQxC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withTimeout.d.ts","sourceRoot":"","sources":["../../src/helpers/withTimeout.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"withTimeout.d.ts","sourceRoot":"","sources":["../../src/helpers/withTimeout.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,eAAO,MAAM,WAAW,eACb,QAAQ,CAAC,CAAC,KAChB,MAAM,KACR,QAAQ,CAAC,CAaX,CAAA;AAED,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -41,4 +41,8 @@ export type { NetworkAdapterEvents, OpenPayload, PeerCandidatePayload, PeerDisco
|
|
|
41
41
|
export type { DocumentUnavailableMessage, EphemeralMessage, Message, RepoMessage, RequestMessage, SyncMessage, } from "./network/messages.js";
|
|
42
42
|
export type { Chunk, ChunkInfo, ChunkType, StorageKey, StorageId, } from "./storage/types.js";
|
|
43
43
|
export * from "./types.js";
|
|
44
|
+
export { Counter, RawString, Cursor } from "@automerge/automerge/next";
|
|
45
|
+
export type { Doc, Heads, Patch, PatchCallback, Prop, ActorId, Change, ChangeFn, Mark, MarkSet, MarkRange, MarkValue, } from "@automerge/automerge/next";
|
|
46
|
+
export { getChanges, getAllChanges, applyChanges, view, getConflicts, } from "@automerge/automerge/next";
|
|
47
|
+
export { getCursor, getCursorPosition, splice, updateText, insertAt, deleteAt, mark, unmark, } from "@automerge/automerge/next";
|
|
44
48
|
//# 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;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AAEnF,eAAe;AACf,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAA;AAIzC,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,gCAAgC,EAChC,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,wCAAwC,EACxC,WAAW,GACZ,MAAM,gBAAgB,CAAA;AAEvB,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,WAAW,CAAA;AAElB,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,uBAAuB,EACvB,YAAY,GACb,MAAM,sCAAsC,CAAA;AAE7C,YAAY,EACV,0BAA0B,EAC1B,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,cAAc,EACd,WAAW,GACZ,MAAM,uBAAuB,CAAA;AAE9B,YAAY,EACV,KAAK,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,GACV,MAAM,oBAAoB,CAAA;AAE3B,cAAc,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AAEnF,eAAe;AACf,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAA;AAIzC,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,gCAAgC,EAChC,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,wCAAwC,EACxC,WAAW,GACZ,MAAM,gBAAgB,CAAA;AAEvB,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,WAAW,CAAA;AAElB,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,uBAAuB,EACvB,YAAY,GACb,MAAM,sCAAsC,CAAA;AAE7C,YAAY,EACV,0BAA0B,EAC1B,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,cAAc,EACd,WAAW,GACZ,MAAM,uBAAuB,CAAA;AAE9B,YAAY,EACV,KAAK,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,GACV,MAAM,oBAAoB,CAAA;AAE3B,cAAc,YAAY,CAAA;AAG1B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAGtE,YAAY,EACV,GAAG,EACH,KAAK,EACL,KAAK,EACL,aAAa,EACb,IAAI,EACJ,OAAO,EACP,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,SAAS,EACT,SAAS,GACV,MAAM,2BAA2B,CAAA;AAIlC,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,IAAI,EACJ,YAAY,GACb,MAAM,2BAA2B,CAAA;AAKlC,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,MAAM,GACP,MAAM,2BAA2B,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -34,3 +34,12 @@ export { StorageAdapter } from "./storage/StorageAdapter.js";
|
|
|
34
34
|
/** @hidden **/
|
|
35
35
|
export * as cbor from "./helpers/cbor.js";
|
|
36
36
|
export * from "./types.js";
|
|
37
|
+
// export commonly used data types
|
|
38
|
+
export { Counter, RawString } from "@automerge/automerge/next";
|
|
39
|
+
// export a few utility functions that aren't in automerge-repo
|
|
40
|
+
// NB that these should probably all just be available via the dochandle
|
|
41
|
+
export { getChanges, getAllChanges, applyChanges, view, getConflicts, } from "@automerge/automerge/next";
|
|
42
|
+
// export type-specific utility functions
|
|
43
|
+
// these mostly can't be on the data-type in question because
|
|
44
|
+
// JS strings can't have methods added to them
|
|
45
|
+
export { getCursor, getCursorPosition, splice, updateText, insertAt, deleteAt, mark, unmark, } from "@automerge/automerge/next";
|
|
@@ -48,10 +48,5 @@ export declare class StorageSubsystem {
|
|
|
48
48
|
removeDoc(documentId: DocumentId): Promise<void>;
|
|
49
49
|
loadSyncState(documentId: DocumentId, storageId: StorageId): Promise<A.SyncState | undefined>;
|
|
50
50
|
saveSyncState(documentId: DocumentId, storageId: StorageId, syncState: A.SyncState): Promise<void>;
|
|
51
|
-
/**
|
|
52
|
-
* Waiting for document state to be written to disk.
|
|
53
|
-
* @deprecated because it will be changed soon.
|
|
54
|
-
*/
|
|
55
|
-
flush(documentId: DocumentId, doc: A.Doc<unknown>, timeout?: number): Promise<void>;
|
|
56
51
|
}
|
|
57
52
|
//# sourceMappingURL=StorageSubsystem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageSubsystem.d.ts","sourceRoot":"","sources":["../../src/storage/StorageSubsystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,2BAA2B,CAAA;AAI9C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAyB,SAAS,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"StorageSubsystem.d.ts","sourceRoot":"","sources":["../../src/storage/StorageSubsystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,2BAA2B,CAAA;AAI9C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAyB,SAAS,EAAE,MAAM,YAAY,CAAA;AAK7D;;;GAGG;AACH,qBAAa,gBAAgB;;gBAef,cAAc,EAAE,uBAAuB;IAI7C,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC;IA2B9B,kCAAkC;IAC5B,IAAI;IACR,iFAAiF;IACjF,SAAS,EAAE,MAAM;IAEjB,yFAAyF;IACzF,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAKlC,gCAAgC;IAC1B,IAAI;IACR,iFAAiF;IACjF,SAAS,EAAE,MAAM;IAEjB,yFAAyF;IACzF,GAAG,EAAE,MAAM;IAEX,sCAAsC;IACtC,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC;IAKhB,oCAAoC;IAC9B,MAAM;IACV,iFAAiF;IACjF,SAAS,EAAE,MAAM;IAEjB,2FAA2F;IAC3F,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC;IAOhB;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAmClE;;;;;;OAMG;IACG,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAazE;;OAEG;IACG,SAAS,CAAC,UAAU,EAAE,UAAU;IAkEhC,aAAa,CACjB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;IAM7B,aAAa,CACjB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,CAAC,CAAC,SAAS,GACrB,OAAO,CAAC,IAAI,CAAC;CA8CjB"}
|
|
@@ -5,7 +5,6 @@ import { mergeArrays } from "../helpers/mergeArrays.js";
|
|
|
5
5
|
import { keyHash, headsHash } from "./keyHash.js";
|
|
6
6
|
import { chunkTypeFromKey } from "./chunkTypeFromKey.js";
|
|
7
7
|
import * as Uuid from "uuid";
|
|
8
|
-
import { EventEmitter } from "eventemitter3";
|
|
9
8
|
/**
|
|
10
9
|
* The storage subsystem is responsible for saving and loading Automerge documents to and from
|
|
11
10
|
* storage adapter. It also provides a generic key/value storage interface for other uses.
|
|
@@ -20,7 +19,6 @@ export class StorageSubsystem {
|
|
|
20
19
|
/** Flag to avoid compacting when a compaction is already underway */
|
|
21
20
|
#compacting = false;
|
|
22
21
|
#log = debug(`automerge-repo:storage-subsystem`);
|
|
23
|
-
#saved = new EventEmitter();
|
|
24
22
|
constructor(storageAdapter) {
|
|
25
23
|
this.#storageAdapter = storageAdapter;
|
|
26
24
|
}
|
|
@@ -126,7 +124,6 @@ export class StorageSubsystem {
|
|
|
126
124
|
await this.#saveIncremental(documentId, doc);
|
|
127
125
|
}
|
|
128
126
|
this.#storedHeads.set(documentId, A.getHeads(doc));
|
|
129
|
-
this.#saved.emit("saved");
|
|
130
127
|
}
|
|
131
128
|
/**
|
|
132
129
|
* Removes the Automerge document with the given ID from storage
|
|
@@ -188,30 +185,6 @@ export class StorageSubsystem {
|
|
|
188
185
|
const key = [documentId, "sync-state", storageId];
|
|
189
186
|
await this.#storageAdapter.save(key, A.encodeSyncState(syncState));
|
|
190
187
|
}
|
|
191
|
-
/**
|
|
192
|
-
* Waiting for document state to be written to disk.
|
|
193
|
-
* @deprecated because it will be changed soon.
|
|
194
|
-
*/
|
|
195
|
-
async flush(documentId, doc, timeout) {
|
|
196
|
-
return new Promise((resolve, reject) => {
|
|
197
|
-
let timeoutId;
|
|
198
|
-
if (timeout) {
|
|
199
|
-
timeoutId = setTimeout(() => {
|
|
200
|
-
this.#saved.off("saved", checkIfSaved);
|
|
201
|
-
reject(new Error("Timed out waiting for save"));
|
|
202
|
-
}, timeout);
|
|
203
|
-
}
|
|
204
|
-
const checkIfSaved = () => {
|
|
205
|
-
if (!this.#shouldSave(documentId, doc)) {
|
|
206
|
-
this.#saved.off("saved", checkIfSaved);
|
|
207
|
-
clearTimeout(timeoutId);
|
|
208
|
-
resolve();
|
|
209
|
-
}
|
|
210
|
-
};
|
|
211
|
-
this.#saved.on("saved", checkIfSaved);
|
|
212
|
-
checkIfSaved();
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
188
|
/**
|
|
216
189
|
* Returns true if the document has changed since the last time it was saved.
|
|
217
190
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automerge/automerge-repo",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.9",
|
|
4
4
|
"description": "A repository object to manage a collection of automerge documents",
|
|
5
5
|
"repository": "https://github.com/automerge/automerge-repo/tree/master/packages/automerge-repo",
|
|
6
6
|
"author": "Peter van Hardenberg <pvh@pvh.ca>",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"vite": "^5.0.8"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@automerge/automerge": "^2.1.
|
|
26
|
+
"@automerge/automerge": "^2.1.13",
|
|
27
27
|
"bs58check": "^3.0.1",
|
|
28
28
|
"cbor-x": "^1.3.0",
|
|
29
29
|
"debug": "^4.3.4",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"tiny-typed-emitter": "^2.1.0",
|
|
33
33
|
"ts-node": "^10.9.1",
|
|
34
34
|
"uuid": "^9.0.0",
|
|
35
|
-
"xstate": "^
|
|
35
|
+
"xstate": "^5.9.1"
|
|
36
36
|
},
|
|
37
37
|
"watch": {
|
|
38
38
|
"build": {
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"publishConfig": {
|
|
56
56
|
"access": "public"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "19fd7ffd69eae2ed8518bde3b3f9f60aa8e4fb9d"
|
|
59
59
|
}
|