@automerge/automerge-repo 1.0.6 → 1.0.7

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.
Files changed (63) hide show
  1. package/.eslintrc +1 -1
  2. package/dist/DocHandle.d.ts +7 -7
  3. package/dist/DocHandle.d.ts.map +1 -1
  4. package/dist/DocHandle.js +3 -7
  5. package/dist/EphemeralData.d.ts +2 -2
  6. package/dist/EphemeralData.d.ts.map +1 -1
  7. package/dist/Repo.d.ts.map +1 -1
  8. package/dist/Repo.js +7 -11
  9. package/dist/helpers/cbor.d.ts +2 -2
  10. package/dist/helpers/cbor.d.ts.map +1 -1
  11. package/dist/helpers/cbor.js +1 -1
  12. package/dist/helpers/pause.d.ts.map +1 -1
  13. package/dist/helpers/pause.js +3 -1
  14. package/dist/helpers/tests/network-adapter-tests.d.ts.map +1 -1
  15. package/dist/helpers/tests/network-adapter-tests.js +2 -2
  16. package/dist/index.d.ts +11 -9
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +4 -4
  19. package/dist/network/NetworkAdapter.d.ts +3 -3
  20. package/dist/network/NetworkAdapter.d.ts.map +1 -1
  21. package/dist/network/NetworkSubsystem.d.ts +2 -2
  22. package/dist/network/NetworkSubsystem.d.ts.map +1 -1
  23. package/dist/network/NetworkSubsystem.js +30 -18
  24. package/dist/network/messages.d.ts +38 -68
  25. package/dist/network/messages.d.ts.map +1 -1
  26. package/dist/network/messages.js +13 -21
  27. package/dist/storage/StorageSubsystem.js +7 -7
  28. package/dist/synchronizer/CollectionSynchronizer.d.ts +3 -3
  29. package/dist/synchronizer/CollectionSynchronizer.d.ts.map +1 -1
  30. package/dist/synchronizer/CollectionSynchronizer.js +2 -2
  31. package/dist/synchronizer/DocSynchronizer.d.ts +3 -3
  32. package/dist/synchronizer/DocSynchronizer.d.ts.map +1 -1
  33. package/dist/synchronizer/DocSynchronizer.js +22 -29
  34. package/dist/synchronizer/Synchronizer.d.ts +2 -2
  35. package/dist/synchronizer/Synchronizer.d.ts.map +1 -1
  36. package/dist/types.d.ts +5 -1
  37. package/dist/types.d.ts.map +1 -1
  38. package/package.json +5 -13
  39. package/src/DocHandle.ts +9 -11
  40. package/src/EphemeralData.ts +2 -2
  41. package/src/Repo.ts +10 -14
  42. package/src/helpers/cbor.ts +4 -4
  43. package/src/helpers/pause.ts +7 -2
  44. package/src/helpers/tests/network-adapter-tests.ts +3 -3
  45. package/src/helpers/withTimeout.ts +2 -2
  46. package/src/index.ts +36 -29
  47. package/src/network/NetworkAdapter.ts +7 -3
  48. package/src/network/NetworkSubsystem.ts +31 -23
  49. package/src/network/messages.ts +88 -151
  50. package/src/storage/StorageSubsystem.ts +8 -8
  51. package/src/synchronizer/CollectionSynchronizer.ts +6 -15
  52. package/src/synchronizer/DocSynchronizer.ts +34 -48
  53. package/src/synchronizer/Synchronizer.ts +2 -2
  54. package/src/types.ts +8 -3
  55. package/test/CollectionSynchronizer.test.ts +58 -53
  56. package/test/DocHandle.test.ts +35 -36
  57. package/test/DocSynchronizer.test.ts +9 -8
  58. package/test/Network.test.ts +1 -0
  59. package/test/Repo.test.ts +177 -97
  60. package/test/StorageSubsystem.test.ts +6 -9
  61. package/test/tsconfig.json +8 -0
  62. package/typedoc.json +3 -3
  63. package/.mocharc.json +0 -5
package/.eslintrc CHANGED
@@ -10,7 +10,7 @@
10
10
  ],
11
11
  "ignorePatterns": ["dist/**", "test/**", "node_modules/**"],
12
12
  "parser": "@typescript-eslint/parser",
13
- "plugins": ["@typescript-eslint", "mocha"],
13
+ "plugins": ["@typescript-eslint"],
14
14
  "parserOptions": {
15
15
  "project": "./tsconfig.json",
16
16
  "ecmaVersion": "latest",
@@ -110,7 +110,7 @@ export declare class DocHandle<T>//
110
110
  * a user could have multiple tabs open and would appear as multiple PeerIds.
111
111
  * every message source must have a unique PeerId.
112
112
  */
113
- broadcast(message: any): void;
113
+ broadcast(message: unknown): void;
114
114
  }
115
115
  /** @hidden */
116
116
  export interface DocHandleOptions {
@@ -140,13 +140,13 @@ export interface DocHandleChangePayload<T> {
140
140
  /** Information about the change */
141
141
  patchInfo: A.PatchInfo<T>;
142
142
  }
143
- export interface DocHandleEphemeralMessagePayload {
144
- handle: DocHandle<any>;
143
+ export interface DocHandleEphemeralMessagePayload<T> {
144
+ handle: DocHandle<T>;
145
145
  senderId: PeerId;
146
146
  message: unknown;
147
147
  }
148
- export interface DocHandleOutboundEphemeralMessagePayload {
149
- handle: DocHandle<any>;
148
+ export interface DocHandleOutboundEphemeralMessagePayload<T> {
149
+ handle: DocHandle<T>;
150
150
  data: Uint8Array;
151
151
  }
152
152
  export interface DocHandleEvents<T> {
@@ -154,8 +154,8 @@ export interface DocHandleEvents<T> {
154
154
  change: (payload: DocHandleChangePayload<T>) => void;
155
155
  delete: (payload: DocHandleDeletePayload<T>) => void;
156
156
  unavailable: (payload: DocHandleDeletePayload<T>) => void;
157
- "ephemeral-message": (payload: DocHandleEphemeralMessagePayload) => void;
158
- "ephemeral-message-outbound": (payload: DocHandleOutboundEphemeralMessagePayload) => void;
157
+ "ephemeral-message": (payload: DocHandleEphemeralMessagePayload<T>) => void;
158
+ "ephemeral-message-outbound": (payload: DocHandleOutboundEphemeralMessagePayload<T>) => void;
159
159
  }
160
160
  /**
161
161
  * The state of a document handle
@@ -1 +1 @@
1
- {"version":3,"file":"DocHandle.d.ts","sourceRoot":"","sources":["../src/DocHandle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocHandle.d.ts","sourceRoot":"","sources":["../src/DocHandle.ts"],"names":[],"mappings":"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"}
package/dist/DocHandle.js CHANGED
@@ -4,8 +4,7 @@ import { EventEmitter } from "eventemitter3";
4
4
  import { assign, createMachine, interpret, } from "xstate";
5
5
  import { waitFor } from "xstate/lib/waitFor.js";
6
6
  import { headsAreSame } from "./helpers/headsAreSame.js";
7
- import { pause } from "./helpers/pause.js";
8
- import { TimeoutError, withTimeout } from "./helpers/withTimeout.js";
7
+ import { withTimeout } from "./helpers/withTimeout.js";
9
8
  import { stringifyAutomergeUrl } from "./DocUrl.js";
10
9
  import { encode } from "./helpers/cbor.js";
11
10
  /** DocHandle is a wrapper around a single Automerge document that lets us
@@ -238,16 +237,13 @@ export class DocHandle//
238
237
  * @param {awaitStates=[READY]} optional states to wait for, such as "LOADING". mostly for internal use.
239
238
  */
240
239
  async doc(awaitStates = [READY, UNAVAILABLE]) {
241
- await pause(); // yield one tick because reasons
242
240
  try {
243
241
  // wait for the document to enter one of the desired states
244
242
  await this.#statePromise(awaitStates);
245
243
  }
246
244
  catch (error) {
247
- if (error instanceof TimeoutError)
248
- throw new Error(`DocHandle: timed out loading ${this.documentId}`);
249
- else
250
- throw error;
245
+ // if we timed out (or the load has already failed), return undefined
246
+ return undefined;
251
247
  }
252
248
  // Return the document
253
249
  return !this.isUnavailable() ? this.#doc : undefined;
@@ -1,5 +1,5 @@
1
1
  import { DocumentId, PeerId } from "./index.js";
2
- import { EphemeralMessageContents } from "./network/messages.js";
2
+ import { EphemeralMessage, MessageContents } from "./network/messages.js";
3
3
  /** A randomly generated string created when the {@link Repo} starts up */
4
4
  export type SessionId = string & {
5
5
  __SessionId: false;
@@ -14,7 +14,7 @@ export interface EphemeralDataPayload {
14
14
  };
15
15
  }
16
16
  export type EphemeralDataMessageEvents = {
17
- message: (event: EphemeralMessageContents) => void;
17
+ message: (event: MessageContents<EphemeralMessage>) => void;
18
18
  data: (event: EphemeralDataPayload) => void;
19
19
  };
20
20
  //# sourceMappingURL=EphemeralData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EphemeralData.d.ts","sourceRoot":"","sources":["../src/EphemeralData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAGhE,0EAA0E;AAC1E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,WAAW,EAAE,KAAK,CAAA;CAAE,CAAA;AAEvD,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAA;CAChE;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAA;IAClD,IAAI,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAA;CAC5C,CAAA"}
1
+ {"version":3,"file":"EphemeralData.d.ts","sourceRoot":"","sources":["../src/EphemeralData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGzE,0EAA0E;AAC1E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,WAAW,EAAE,KAAK,CAAA;CAAE,CAAA;AAEvD,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAA;CAChE;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAA;IAC3D,IAAI,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAA;CAC5C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Repo.d.ts","sourceRoot":"","sources":["../src/Repo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAEhE,OAAO,EAAE,KAAK,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AASlE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAG5C,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;IAGnC,sDAAsD;IACtD,cAAc;IACd,WAAW,EAAE,WAAW,CAAmB;gBAE/B,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,UAAU;IAuHjE,8CAA8C;IAC9C,IAAI,OAAO,uCAEV;IAED;;;;OAIG;IACH,MAAM,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;IA0BzB;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;IAuBnC;;;OAGG;IACH,IAAI,CAAC,CAAC;IACJ,+CAA+C;IAC/C,YAAY,EAAE,YAAY,GACzB,SAAS,CAAC,CAAC,CAAC;IAgCf,MAAM;IACJ,6CAA6C;IAC7C,EAAE,EAAE,UAAU,GAAG,YAAY;CAchC;AAED,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,gDAAgD;IAChD,OAAO,CAAC,EAAE,cAAc,CAAA;IAExB,oDAAoD;IACpD,OAAO,EAAE,cAAc,EAAE,CAAA;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED;;;;;;;KAOK;AACL,MAAM,MAAM,WAAW,GAAG,CACxB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,UAAU,KACpB,OAAO,CAAC,OAAO,CAAC,CAAA;AAGrB,MAAM,WAAW,UAAU;IACzB,+CAA+C;IAC/C,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAA;IACxC,6BAA6B;IAC7B,iBAAiB,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACvD,4FAA4F;IAC5F,sBAAsB,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,IAAI,CAAA;CAC7D;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IACtB,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,UAAU,CAAA;CACvB"}
1
+ {"version":3,"file":"Repo.d.ts","sourceRoot":"","sources":["../src/Repo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAEhE,OAAO,EAAE,KAAK,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AASlE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAG5C,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;IAGnC,sDAAsD;IACtD,cAAc;IACd,WAAW,EAAE,WAAW,CAAmB;gBAE/B,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,UAAU;IAuHjE,8CAA8C;IAC9C,IAAI,OAAO,uCAEV;IAED;;;;OAIG;IACH,MAAM,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;IA0BzB;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;IAuBnC;;;OAGG;IACH,IAAI,CAAC,CAAC;IACJ,+CAA+C;IAC/C,YAAY,EAAE,YAAY,GACzB,SAAS,CAAC,CAAC,CAAC;IAgCf,MAAM;IACJ,6CAA6C;IAC7C,EAAE,EAAE,UAAU,GAAG,YAAY;CAUhC;AAED,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,gDAAgD;IAChD,OAAO,CAAC,EAAE,cAAc,CAAA;IAExB,oDAAoD;IACpD,OAAO,EAAE,cAAc,EAAE,CAAA;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED;;;;;;;KAOK;AACL,MAAM,MAAM,WAAW,GAAG,CACxB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,UAAU,KACpB,OAAO,CAAC,OAAO,CAAC,CAAA;AAGrB,MAAM,WAAW,UAAU;IACzB,+CAA+C;IAC/C,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAA;IACxC,6BAA6B;IAC7B,iBAAiB,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACvD,4FAA4F;IAC5F,sBAAsB,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,IAAI,CAAA;CAC7D;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IACtB,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,UAAU,CAAA;CACvB"}
package/dist/Repo.js CHANGED
@@ -84,9 +84,9 @@ export class Repo extends EventEmitter {
84
84
  // SYNCHRONIZER
85
85
  // The synchronizer uses the network subsystem to keep documents in sync with peers.
86
86
  const synchronizer = new CollectionSynchronizer(this);
87
- // When the synchronizer emits sync messages, send them to peers
87
+ // When the synchronizer emits messages, send them to peers
88
88
  synchronizer.on("message", message => {
89
- this.#log(`sending sync message to ${message.targetId}`);
89
+ this.#log(`sending ${message.type} message to ${message.targetId}`);
90
90
  networkSubsystem.send(message);
91
91
  });
92
92
  // STORAGE
@@ -182,7 +182,7 @@ export class Repo extends EventEmitter {
182
182
  throw new Error("Cloned handle doesn't have a document.");
183
183
  }
184
184
  const handle = this.create();
185
- handle.update((doc) => {
185
+ handle.update(() => {
186
186
  // we replace the document with the new cloned one
187
187
  return Automerge.clone(sourceDoc);
188
188
  });
@@ -196,7 +196,7 @@ export class Repo extends EventEmitter {
196
196
  /** The documentId of the handle to retrieve */
197
197
  automergeUrl) {
198
198
  if (!isValidAutomergeUrl(automergeUrl)) {
199
- let maybeAutomergeUrl = parseLegacyUUID(automergeUrl);
199
+ const maybeAutomergeUrl = parseLegacyUUID(automergeUrl);
200
200
  if (maybeAutomergeUrl) {
201
201
  console.warn("Legacy UUID document ID detected, converting to AutomergeUrl. This will be removed in a future version.");
202
202
  automergeUrl = maybeAutomergeUrl;
@@ -225,15 +225,11 @@ export class Repo extends EventEmitter {
225
225
  delete(
226
226
  /** The documentId of the handle to delete */
227
227
  id) {
228
- if (isValidAutomergeUrl(id)) {
229
- ;
230
- ({ documentId: id } = parseAutomergeUrl(id));
231
- }
228
+ if (isValidAutomergeUrl(id))
229
+ id = parseAutomergeUrl(id).documentId;
232
230
  const handle = this.#getHandle(id, false);
233
231
  handle.delete();
234
232
  delete this.#handleCache[id];
235
- this.emit("delete-document", {
236
- documentId: id,
237
- });
233
+ this.emit("delete-document", { documentId: id });
238
234
  }
239
235
  }
@@ -1,4 +1,4 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- export declare function encode(obj: any): Buffer;
3
- export declare function decode(buf: Buffer | Uint8Array): any;
2
+ export declare function encode(obj: unknown): Buffer;
3
+ export declare function decode<T = unknown>(buf: Buffer | Uint8Array): T;
4
4
  //# sourceMappingURL=cbor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cbor.d.ts","sourceRoot":"","sources":["../../src/helpers/cbor.ts"],"names":[],"mappings":";AAEA,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAGvC;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,GAAG,CAEpD"}
1
+ {"version":3,"file":"cbor.d.ts","sourceRoot":"","sources":["../../src/helpers/cbor.ts"],"names":[],"mappings":";AAEA,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAG3C;AAED,wBAAgB,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,CAAC,CAE/D"}
@@ -1,6 +1,6 @@
1
1
  import { Encoder, decode as cborXdecode } from "cbor-x";
2
2
  export function encode(obj) {
3
- let encoder = new Encoder({ tagUint8Array: false });
3
+ const encoder = new Encoder({ tagUint8Array: false });
4
4
  return encoder.encode(obj);
5
5
  }
6
6
  export function decode(buf) {
@@ -1 +1 @@
1
- {"version":3,"file":"pause.d.ts","sourceRoot":"","sources":["../../src/helpers/pause.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,+BAC4C,CAAA;AAE9D,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAKlF"}
1
+ {"version":3,"file":"pause.d.ts","sourceRoot":"","sources":["../../src/helpers/pause.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,+BAC4C,CAAA;AAE9D,wBAAgB,eAAe,CAAC,CAAC,EAC/B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,CAAC,CAOZ"}
@@ -2,6 +2,8 @@ export const pause = (t = 0) => new Promise(resolve => setTimeout(() => resolve(
2
2
  export function rejectOnTimeout(promise, millis) {
3
3
  return Promise.race([
4
4
  promise,
5
- pause(millis).then(() => { throw new Error("timeout exceeded"); }),
5
+ pause(millis).then(() => {
6
+ throw new Error("timeout exceeded");
7
+ }),
6
8
  ]);
7
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"network-adapter-tests.d.ts","sourceRoot":"","sources":["../../../src/helpers/tests/network-adapter-tests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,cAAc,EAAc,MAAM,gBAAgB,CAAA;AAM9E;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CA8HrE;AAID,KAAK,OAAO,GAAG,cAAc,GAAG,cAAc,EAAE,CAAA;AAEhD,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC;IAClC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACrC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB,CAAC,CAAA"}
1
+ {"version":3,"file":"network-adapter-tests.d.ts","sourceRoot":"","sources":["../../../src/helpers/tests/network-adapter-tests.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIlE;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CA8HrE;AAID,KAAK,OAAO,GAAG,cAAc,GAAG,cAAc,EAAE,CAAA;AAEhD,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC;IAClC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACrC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
+ import assert from "assert";
2
+ import { describe, it } from "vitest";
1
3
  import { Repo } from "../../index.js";
2
4
  import { eventPromise, eventPromises } from "../eventPromise.js";
3
- import { assert } from "chai";
4
- import { describe, it } from "mocha";
5
5
  import { pause } from "../pause.js";
6
6
  /**
7
7
  * Runs a series of tests against a set of three peers, each represented by one or more instantiated
package/dist/index.d.ts CHANGED
@@ -25,16 +25,18 @@
25
25
  * const handle = repo.create
26
26
  * ```
27
27
  */
28
- export { DocHandle, type HandleState, type DocHandleOptions, type DocHandleEvents } from "./DocHandle.js";
29
- export type { DocHandleChangePayload, DocHandleDeletePayload, DocHandleEphemeralMessagePayload, DocHandleOutboundEphemeralMessagePayload, DocHandleEncodedChangePayload, } from "./DocHandle.js";
28
+ export { Repo } from "./Repo.js";
29
+ export { DocHandle } from "./DocHandle.js";
30
30
  export { NetworkAdapter } from "./network/NetworkAdapter.js";
31
- export type { OpenPayload, PeerCandidatePayload, PeerDisconnectedPayload, NetworkAdapterEvents, } from "./network/NetworkAdapter.js";
32
- export type { Message, ArriveMessage, WelcomeMessage, NetworkAdapterMessage, EphemeralMessage, RequestMessage, DocumentUnavailableMessage, SyncMessage, SessionId, } from "./network/messages.js";
33
- export { isValidMessage } from "./network/messages.js";
34
- export { Repo, type SharePolicy, type RepoConfig, type RepoEvents, type DeleteDocumentPayload, type DocumentPayload } from "./Repo.js";
35
- export { StorageAdapter, type StorageKey } from "./storage/StorageAdapter.js";
36
- export { parseAutomergeUrl, isValidAutomergeUrl, stringifyAutomergeUrl as generateAutomergeUrl, } from "./DocUrl.js";
37
- export * from "./types.js";
31
+ export { StorageAdapter } from "./storage/StorageAdapter.js";
32
+ export { isValidAutomergeUrl, parseAutomergeUrl, stringifyAutomergeUrl, } from "./DocUrl.js";
33
+ export { isValidRepoMessage } from "./network/messages.js";
38
34
  /** @hidden **/
39
35
  export * as cbor from "./helpers/cbor.js";
36
+ export type { DocHandleChangePayload, DocHandleDeletePayload, DocHandleEncodedChangePayload, DocHandleEphemeralMessagePayload, DocHandleEvents, DocHandleOptions, DocHandleOutboundEphemeralMessagePayload, HandleState, } from "./DocHandle.js";
37
+ export type { DeleteDocumentPayload, DocumentPayload, RepoConfig, RepoEvents, SharePolicy, } from "./Repo.js";
38
+ export type { NetworkAdapterEvents, OpenPayload, PeerCandidatePayload, PeerDisconnectedPayload, } from "./network/NetworkAdapter.js";
39
+ export type { ArriveMessage, DocumentUnavailableMessage, EphemeralMessage, Message, RepoMessage, RequestMessage, SyncMessage, WelcomeMessage, } from "./network/messages.js";
40
+ export type { StorageKey } from "./storage/StorageAdapter.js";
41
+ export * from "./types.js";
40
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACzG,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,gCAAgC,EAChC,wCAAwC,EACxC,6BAA6B,GAC9B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,6BAA6B,CAAA;AAMpC,YAAY,EACV,OAAO,EACP,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,WAAW,EACX,SAAS,GACV,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAA;AACtI,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,IAAI,oBAAoB,GAC9C,MAAM,aAAa,CAAA;AACpB,cAAc,YAAY,CAAA;AAE1B,eAAe;AACf,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,eAAe;AACf,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAA;AAIzC,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,gCAAgC,EAChC,eAAe,EACf,gBAAgB,EAChB,wCAAwC,EACxC,WAAW,GACZ,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,WAAW,CAAA;AAClB,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,6BAA6B,CAAA;AACpC,YAAY,EACV,aAAa,EACb,0BAA0B,EAC1B,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,cAAc,EACd,WAAW,EACX,cAAc,GACf,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,cAAc,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -25,12 +25,12 @@
25
25
  * const handle = repo.create
26
26
  * ```
27
27
  */
28
+ export { Repo } from "./Repo.js";
28
29
  export { DocHandle } from "./DocHandle.js";
29
30
  export { NetworkAdapter } from "./network/NetworkAdapter.js";
30
- export { isValidMessage } from "./network/messages.js";
31
- export { Repo } from "./Repo.js";
32
31
  export { StorageAdapter } from "./storage/StorageAdapter.js";
33
- export { parseAutomergeUrl, isValidAutomergeUrl, stringifyAutomergeUrl as generateAutomergeUrl, } from "./DocUrl.js";
34
- export * from "./types.js";
32
+ export { isValidAutomergeUrl, parseAutomergeUrl, stringifyAutomergeUrl, } from "./DocUrl.js";
33
+ export { isValidRepoMessage } from "./network/messages.js";
35
34
  /** @hidden **/
36
35
  export * as cbor from "./helpers/cbor.js";
36
+ export * from "./types.js";
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from "eventemitter3";
2
2
  import { PeerId } from "../types.js";
3
- import { Message } from "./messages.js";
3
+ import { RepoMessage } from "./messages.js";
4
4
  /** An interface representing some way to connect to other peers
5
5
  *
6
6
  * @remarks
@@ -19,7 +19,7 @@ export declare abstract class NetworkAdapter extends EventEmitter<NetworkAdapter
19
19
  *
20
20
  * @argument message - the message to send
21
21
  */
22
- abstract send(message: Message): void;
22
+ abstract send(message: RepoMessage): void;
23
23
  /** Called by the {@link Repo} to disconnect from the network */
24
24
  abstract disconnect(): void;
25
25
  }
@@ -33,7 +33,7 @@ export interface NetworkAdapterEvents {
33
33
  /** Emitted when the network adapter learns that a peer has disconnected */
34
34
  "peer-disconnected": (payload: PeerDisconnectedPayload) => void;
35
35
  /** Emitted when the network adapter receives a message from a peer */
36
- message: (payload: Message) => void;
36
+ message: (payload: RepoMessage) => void;
37
37
  }
38
38
  export interface OpenPayload {
39
39
  network: NetworkAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkAdapter.d.ts","sourceRoot":"","sources":["../../src/network/NetworkAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC;;;;;;GAMG;AACH,8BAAsB,cAAe,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAEtC;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAErC,gEAAgE;IAChE,QAAQ,CAAC,UAAU,IAAI,IAAI;CAC5B;AAID,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACrC,yCAAyC;IACzC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,+DAA+D;IAC/D,gBAAgB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAA;IACzD,2EAA2E;IAC3E,mBAAmB,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC/D,sEAAsE;IACtE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAA;CACf"}
1
+ {"version":3,"file":"NetworkAdapter.d.ts","sourceRoot":"","sources":["../../src/network/NetworkAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;;;;;GAMG;AACH,8BAAsB,cAAe,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAEtC;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAEzC,gEAAgE;IAChE,QAAQ,CAAC,UAAU,IAAI,IAAI;CAC5B;AAID,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IAErC,yCAAyC;IACzC,KAAK,EAAE,MAAM,IAAI,CAAA;IAEjB,+DAA+D;IAC/D,gBAAgB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAEzD,2EAA2E;IAC3E,mBAAmB,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAE/D,sEAAsE;IACtE,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;CACxC;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAA;CACf"}
@@ -1,7 +1,7 @@
1
1
  import { EventEmitter } from "eventemitter3";
2
2
  import { PeerId } from "../types.js";
3
3
  import { NetworkAdapter, PeerDisconnectedPayload } from "./NetworkAdapter.js";
4
- import { Message, MessageContents } from "./messages.js";
4
+ import { RepoMessage, MessageContents } from "./messages.js";
5
5
  export declare class NetworkSubsystem extends EventEmitter<NetworkSubsystemEvents> {
6
6
  #private;
7
7
  peerId: PeerId;
@@ -14,7 +14,7 @@ export declare class NetworkSubsystem extends EventEmitter<NetworkSubsystemEvent
14
14
  export interface NetworkSubsystemEvents {
15
15
  peer: (payload: PeerPayload) => void;
16
16
  "peer-disconnected": (payload: PeerDisconnectedPayload) => void;
17
- message: (payload: Message) => void;
17
+ message: (payload: RepoMessage) => void;
18
18
  ready: () => void;
19
19
  }
20
20
  export interface PeerPayload {
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkSubsystem.d.ts","sourceRoot":"","sources":["../../src/network/NetworkSubsystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAE7E,OAAO,EAIL,OAAO,EACP,eAAe,EAChB,MAAM,eAAe,CAAA;AAUtB,qBAAa,gBAAiB,SAAQ,YAAY,CAAC,sBAAsB,CAAC;;IAUzB,MAAM;gBAAzC,QAAQ,EAAE,cAAc,EAAE,EAAS,MAAM,SAAiB;IAMtE,iBAAiB,CAAC,cAAc,EAAE,cAAc;IAsEhD,IAAI,CAAC,OAAO,EAAE,eAAe;IA2B7B,OAAO,gBAEN;IAED,SAAS,sBAUR;CACF;AAQD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACpC,mBAAmB,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC/D,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACnC,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;CACf"}
1
+ {"version":3,"file":"NetworkSubsystem.d.ts","sourceRoot":"","sources":["../../src/network/NetworkSubsystem.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAa,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EAEL,WAAW,EACX,eAAe,EAGhB,MAAM,eAAe,CAAA;AAOtB,qBAAa,gBAAiB,SAAQ,YAAY,CAAC,sBAAsB,CAAC;;IAUzB,MAAM;gBAAzC,QAAQ,EAAE,cAAc,EAAE,EAAS,MAAM,SAAiB;IAMtE,iBAAiB,CAAC,cAAc,EAAE,cAAc;IAsEhD,IAAI,CAAC,OAAO,EAAE,eAAe;IAsC7B,OAAO,gBAEN;IAED,SAAS,sBAUR;CACF;AAQD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACpC,mBAAmB,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC/D,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACvC,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;CACf"}
@@ -1,6 +1,6 @@
1
- import { EventEmitter } from "eventemitter3";
2
- import { isEphemeralMessage, isValidMessage, } from "./messages.js";
3
1
  import debug from "debug";
2
+ import { EventEmitter } from "eventemitter3";
3
+ import { isEphemeralMessage, isValidRepoMessage, } from "./messages.js";
4
4
  const getEphemeralMessageSource = (message) => `${message.senderId}:${message.sessionId}`;
5
5
  export class NetworkSubsystem extends EventEmitter {
6
6
  peerId;
@@ -41,7 +41,7 @@ export class NetworkSubsystem extends EventEmitter {
41
41
  this.emit("peer-disconnected", { peerId });
42
42
  });
43
43
  networkAdapter.on("message", msg => {
44
- if (!isValidMessage(msg)) {
44
+ if (!isValidRepoMessage(msg)) {
45
45
  this.#log(`invalid message: ${JSON.stringify(msg)}`);
46
46
  return;
47
47
  }
@@ -73,24 +73,36 @@ export class NetworkSubsystem extends EventEmitter {
73
73
  this.#log(`Tried to send message but peer not found: ${message.targetId}`);
74
74
  return;
75
75
  }
76
- this.#log(`Sending message to ${message.targetId}`);
77
- if (isEphemeralMessage(message)) {
78
- const outbound = "count" in message
79
- ? message
80
- : {
76
+ /** Messages come in without a senderId and other required information; this is where we make
77
+ * sure they have everything they need.
78
+ */
79
+ const prepareMessage = (message) => {
80
+ if (message.type === "ephemeral") {
81
+ if ("count" in message) {
82
+ // existing ephemeral message from another peer; pass on without changes
83
+ return message;
84
+ }
85
+ else {
86
+ // new ephemeral message from us; add our senderId as well as a counter and session id
87
+ return {
88
+ ...message,
89
+ count: ++this.#count,
90
+ sessionId: this.#sessionId,
91
+ senderId: this.peerId,
92
+ };
93
+ }
94
+ }
95
+ else {
96
+ // other message type; just add our senderId
97
+ return {
81
98
  ...message,
82
- count: ++this.#count,
83
- sessionId: this.#sessionId,
84
99
  senderId: this.peerId,
85
100
  };
86
- this.#log("Ephemeral message", outbound);
87
- peer.send(outbound);
88
- }
89
- else {
90
- const outbound = { ...message, senderId: this.peerId };
91
- this.#log("Sync message", outbound);
92
- peer.send(outbound);
93
- }
101
+ }
102
+ };
103
+ const outbound = prepareMessage(message);
104
+ this.#log("sending message", outbound);
105
+ peer.send(outbound);
94
106
  }
95
107
  isReady = () => {
96
108
  return this.#readyAdapterCount === this.#adapters.length;
@@ -1,45 +1,18 @@
1
- import { SessionId } from "../EphemeralData.js";
2
- export { type SessionId } from "../EphemeralData.js";
3
- import { DocumentId, PeerId } from "../types.js";
4
- export declare function isValidMessage(message: NetworkAdapterMessage): message is SyncMessage | EphemeralMessage | RequestMessage | DocumentUnavailableMessage;
5
- export declare function isDocumentUnavailableMessage(message: NetworkAdapterMessage): message is DocumentUnavailableMessage;
6
- export declare function isRequestMessage(message: NetworkAdapterMessage): message is RequestMessage;
7
- export declare function isSyncMessage(message: NetworkAdapterMessage): message is SyncMessage;
8
- export declare function isEphemeralMessage(message: NetworkAdapterMessage | MessageContents): message is EphemeralMessage | EphemeralMessageContents;
9
- export interface SyncMessageEnvelope {
10
- senderId: PeerId;
11
- }
12
- export interface SyncMessageContents {
13
- type: "sync";
14
- data: Uint8Array;
15
- targetId: PeerId;
16
- documentId: DocumentId;
17
- }
1
+ import { DocumentId, PeerId, SessionId } from "../types.js";
18
2
  /**
19
3
  * A sync message for a particular document
20
4
  */
21
5
  export type SyncMessage = {
6
+ type: "sync";
22
7
  /** The peer ID of the sender of this message */
23
8
  senderId: PeerId;
24
- type: "sync";
25
- /** The automerge sync message */
26
- data: Uint8Array;
27
9
  /** The peer ID of the recipient of this message */
28
10
  targetId: PeerId;
11
+ /** The automerge sync message */
12
+ data: Uint8Array;
29
13
  /** The document ID of the document this message is for */
30
14
  documentId: DocumentId;
31
15
  };
32
- export interface EphemeralMessageEnvelope {
33
- senderId: PeerId;
34
- count: number;
35
- sessionId: SessionId;
36
- }
37
- export interface EphemeralMessageContents {
38
- type: "ephemeral";
39
- targetId: PeerId;
40
- documentId: DocumentId;
41
- data: Uint8Array;
42
- }
43
16
  /** An ephemeral message
44
17
  *
45
18
  * @remarks
@@ -51,41 +24,30 @@ export interface EphemeralMessageContents {
51
24
  * we have already seen.
52
25
  * */
53
26
  export type EphemeralMessage = {
54
- /** The ID of the peer who sent this message */
27
+ type: "ephemeral";
28
+ /** The peer ID of the sender of this message */
55
29
  senderId: PeerId;
30
+ /** The peer ID of the recipient of this message */
31
+ targetId: PeerId;
56
32
  /** A sequence number which must be incremented for each message sent by this peer */
57
33
  count: number;
58
34
  /** The ID of the session this message is part of. The sequence number for a given session always increases */
59
35
  sessionId: SessionId;
60
- type: "ephemeral";
61
- /** The peer this message is for */
62
- targetId: PeerId;
63
36
  /** The document ID this message pertains to */
64
37
  documentId: DocumentId;
65
38
  /** The actual data of the message */
66
39
  data: Uint8Array;
67
40
  };
68
- export interface DocumentUnavailableMessageContents {
69
- type: "doc-unavailable";
70
- documentId: DocumentId;
71
- targetId: PeerId;
72
- }
73
41
  /** Sent by a {@link Repo} to indicate that it does not have the document and none of it's connected peers do either */
74
42
  export type DocumentUnavailableMessage = {
75
- /** The peer who sent this message */
76
- senderId: PeerId;
77
43
  type: "doc-unavailable";
44
+ /** The peer ID of the sender of this message */
45
+ senderId: PeerId;
46
+ /** The peer ID of the recipient of this message */
47
+ targetId: PeerId;
78
48
  /** The document which the peer claims it doesn't have */
79
49
  documentId: DocumentId;
80
- /** The peer this message is for */
81
- targetId: PeerId;
82
50
  };
83
- export interface RequestMessageContents {
84
- type: "request";
85
- data: Uint8Array;
86
- targetId: PeerId;
87
- documentId: DocumentId;
88
- }
89
51
  /** Sent by a {@link Repo} to request a document from a peer
90
52
  *
91
53
  * @remarks
@@ -93,40 +55,48 @@ export interface RequestMessageContents {
93
55
  * as the initial sync message when asking the other peer if it has the document.
94
56
  * */
95
57
  export type RequestMessage = {
96
- /** The peer who sent this message */
97
- senderId: PeerId;
98
58
  type: "request";
59
+ /** The peer ID of the sender of this message */
60
+ senderId: PeerId;
61
+ /** The peer ID of the recipient of this message */
62
+ targetId: PeerId;
99
63
  /** The initial automerge sync message */
100
64
  data: Uint8Array;
101
- /** The peer this message is for */
102
- targetId: PeerId;
103
65
  /** The document ID this message requests */
104
66
  documentId: DocumentId;
105
67
  };
106
- export type MessageContents = SyncMessageContents | EphemeralMessageContents | RequestMessageContents | DocumentUnavailableMessageContents;
107
- /** The type of messages that {@link Repo} sends and receive to {@link NetworkAdapter}s */
108
- export type Message = SyncMessage | EphemeralMessage | RequestMessage | DocumentUnavailableMessage;
109
- export type SynchronizerMessage = SyncMessage | RequestMessage | DocumentUnavailableMessage | EphemeralMessage;
110
68
  /** Notify the network that we have arrived so everyone knows our peer ID */
111
69
  export type ArriveMessage = {
112
- /** Our peer ID */
113
- senderId: PeerId;
114
70
  type: "arrive";
71
+ /** The peer ID of the sender of this message */
72
+ senderId: PeerId;
73
+ /** Arrive messages don't have a targetId */
74
+ targetId: never;
115
75
  };
116
76
  /** Respond to an arriving peer with our peer ID */
117
77
  export type WelcomeMessage = {
118
- /** Our peer ID */
78
+ type: "welcome";
79
+ /** The peer ID of the recipient sender this message */
119
80
  senderId: PeerId;
120
- /** The ID of the peer who sent the {@link ArriveMessage} we are responding to */
81
+ /** The peer ID of the recipient of this message */
121
82
  targetId: PeerId;
122
- type: "welcome";
123
83
  };
124
- /** The type of messages that {@link NetworkAdapter}s send and receive to each other
84
+ /** These are message types that a {@link NetworkAdapter} surfaces to a {@link Repo}. */
85
+ export type RepoMessage = SyncMessage | EphemeralMessage | RequestMessage | DocumentUnavailableMessage;
86
+ /** These are all the message types that a {@link NetworkAdapter} might see.
125
87
  *
126
88
  * @remarks
127
- * It is not _required_ that a {@link NetworkAdapter} use this message type.
128
- * NetworkAdapters are free to use whatever message type makes sense for their
129
- * transport. However, this type is a useful default.
89
+ * It is not _required_ that a {@link NetworkAdapter} use these types: They are free to use
90
+ * whatever message type makes sense for their transport. However, this type is a useful default.
130
91
  * */
131
- export type NetworkAdapterMessage = ArriveMessage | WelcomeMessage | Message;
92
+ export type Message = RepoMessage | ArriveMessage | WelcomeMessage;
93
+ /**
94
+ * The contents of a message, without the sender ID or other properties added by the {@link NetworkSubsystem})
95
+ */
96
+ export type MessageContents<T extends Message = Message> = T extends EphemeralMessage ? Omit<T, "senderId" | "count" | "sessionId"> : Omit<T, "senderId">;
97
+ export declare const isValidRepoMessage: (message: Message) => message is RepoMessage;
98
+ export declare const isDocumentUnavailableMessage: (msg: Message) => msg is DocumentUnavailableMessage;
99
+ export declare const isRequestMessage: (msg: Message) => msg is RequestMessage;
100
+ export declare const isSyncMessage: (msg: Message) => msg is SyncMessage;
101
+ export declare const isEphemeralMessage: (msg: Message) => msg is EphemeralMessage;
132
102
  //# sourceMappingURL=messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/network/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/network/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE3D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IAEZ,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAA;IAEhB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAA;IAEhB,iCAAiC;IACjC,IAAI,EAAE,UAAU,CAAA;IAEhB,0DAA0D;IAC1D,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED;;;;;;;;;KASK;AACL,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,WAAW,CAAA;IAEjB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAA;IAEhB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAA;IAEhB,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAA;IAEb,8GAA8G;IAC9G,SAAS,EAAE,SAAS,CAAA;IAEpB,+CAA+C;IAC/C,UAAU,EAAE,UAAU,CAAA;IAEtB,qCAAqC;IACrC,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,uHAAuH;AACvH,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,iBAAiB,CAAA;IAEvB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAA;IAEhB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAA;IAEhB,yDAAyD;IACzD,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED;;;;;KAKK;AACL,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,SAAS,CAAA;IAEf,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAA;IAEhB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAA;IAEhB,yCAAyC;IACzC,IAAI,EAAE,UAAU,CAAA;IAEhB,4CAA4C;IAC5C,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,4EAA4E;AAC5E,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,QAAQ,CAAA;IAEd,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAA;IAEhB,4CAA4C;IAC5C,QAAQ,EAAE,KAAK,CAAA;CAChB,CAAA;AAED,mDAAmD;AACnD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,SAAS,CAAA;IAEf,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAA;IAEhB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,wFAAwF;AACxF,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,gBAAgB,GAChB,cAAc,GACd,0BAA0B,CAAA;AAE9B;;;;;KAKK;AACL,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAA;AAElE;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IACrD,CAAC,SAAS,gBAAgB,GACtB,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC,GAC3C,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;AAIzB,eAAO,MAAM,kBAAkB,YAAa,OAAO,2BAOT,CAAA;AAG1C,eAAO,MAAM,4BAA4B,QAAS,OAAO,sCACzB,CAAA;AAEhC,eAAO,MAAM,gBAAgB,QAAS,OAAO,0BACrB,CAAA;AAExB,eAAO,MAAM,aAAa,QAAS,OAAO,uBACrB,CAAA;AAErB,eAAO,MAAM,kBAAkB,QAAS,OAAO,4BACrB,CAAA"}