@automerge/automerge-repo-network-messagechannel 1.1.0-alpha.1 → 1.1.0-alpha.3
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/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -11
- package/package.json +3 -3
- package/src/index.ts +14 -31
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
7
|
*/
|
|
8
|
-
import { type RepoMessage, NetworkAdapter, type PeerId,
|
|
8
|
+
import { type RepoMessage, NetworkAdapter, type PeerId, PeerMetadata } from "@automerge/automerge-repo";
|
|
9
9
|
import { MessagePortRef } from "./MessagePortRef.js";
|
|
10
10
|
export declare class MessageChannelNetworkAdapter extends NetworkAdapter {
|
|
11
11
|
#private;
|
|
@@ -13,9 +13,9 @@ export declare class MessageChannelNetworkAdapter extends NetworkAdapter {
|
|
|
13
13
|
/** @hidden */
|
|
14
14
|
messagePortRef: MessagePortRef;
|
|
15
15
|
constructor(messagePort: MessagePort, config?: MessageChannelNetworkAdapterConfig);
|
|
16
|
-
connect(peerId: PeerId,
|
|
16
|
+
connect(peerId: PeerId, peerMetadata: PeerMetadata): void;
|
|
17
17
|
send(message: RepoMessage): void;
|
|
18
|
-
announceConnection(peerId: PeerId,
|
|
18
|
+
announceConnection(peerId: PeerId, peerMetadata: PeerMetadata): void;
|
|
19
19
|
disconnect(): void;
|
|
20
20
|
}
|
|
21
21
|
export interface MessageChannelNetworkAdapterConfig {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,KAAK,WAAW,EAChB,cAAc,EACd,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,KAAK,WAAW,EAChB,cAAc,EACd,KAAK,MAAM,EAGX,YAAY,EACb,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAOpD,qBAAa,4BAA6B,SAAQ,cAAc;;IAC9D,QAAQ,KAAK;IACb,cAAc;IACd,cAAc,EAAE,cAAc,CAAA;gBAI5B,WAAW,EAAE,WAAW,EACxB,MAAM,GAAE,kCAAuC;IAWjD,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;IAwElD,IAAI,CAAC,OAAO,EAAE,WAAW;IAmBzB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;IAQ7D,UAAU;CAIX;AAED,MAAM,WAAW,kCAAkC;IACjD;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB"}
|
package/dist/index.js
CHANGED
|
@@ -22,11 +22,10 @@ export class MessageChannelNetworkAdapter extends NetworkAdapter {
|
|
|
22
22
|
? new WeakMessagePortRef(messagePort)
|
|
23
23
|
: new StrongMessagePortRef(messagePort);
|
|
24
24
|
}
|
|
25
|
-
connect(peerId,
|
|
25
|
+
connect(peerId, peerMetadata) {
|
|
26
26
|
log("messageport connecting");
|
|
27
27
|
this.peerId = peerId;
|
|
28
|
-
this.
|
|
29
|
-
this.isEphemeral = isEphemeral;
|
|
28
|
+
this.peerMetadata = peerMetadata;
|
|
30
29
|
this.messagePortRef.start();
|
|
31
30
|
this.messagePortRef.addListener("message", (e) => {
|
|
32
31
|
log("message port received", e.data);
|
|
@@ -38,21 +37,20 @@ export class MessageChannelNetworkAdapter extends NetworkAdapter {
|
|
|
38
37
|
switch (type) {
|
|
39
38
|
case "arrive":
|
|
40
39
|
{
|
|
41
|
-
const {
|
|
40
|
+
const { peerMetadata } = message;
|
|
42
41
|
this.messagePortRef.postMessage({
|
|
43
42
|
senderId: this.peerId,
|
|
44
|
-
|
|
45
|
-
isEphemeral: this.isEphemeral,
|
|
43
|
+
peerMetadata: this.peerMetadata,
|
|
46
44
|
targetId: senderId,
|
|
47
45
|
type: "welcome",
|
|
48
46
|
});
|
|
49
|
-
this.announceConnection(senderId,
|
|
47
|
+
this.announceConnection(senderId, peerMetadata);
|
|
50
48
|
}
|
|
51
49
|
break;
|
|
52
50
|
case "welcome":
|
|
53
51
|
{
|
|
54
|
-
const {
|
|
55
|
-
this.announceConnection(senderId,
|
|
52
|
+
const { peerMetadata } = message;
|
|
53
|
+
this.announceConnection(senderId, peerMetadata);
|
|
56
54
|
}
|
|
57
55
|
break;
|
|
58
56
|
default:
|
|
@@ -97,12 +95,12 @@ export class MessageChannelNetworkAdapter extends NetworkAdapter {
|
|
|
97
95
|
this.messagePortRef.postMessage(message);
|
|
98
96
|
}
|
|
99
97
|
}
|
|
100
|
-
announceConnection(peerId,
|
|
98
|
+
announceConnection(peerId, peerMetadata) {
|
|
101
99
|
if (!this.#startupComplete) {
|
|
102
100
|
this.#startupComplete = true;
|
|
103
101
|
this.emit("ready", { network: this });
|
|
104
102
|
}
|
|
105
|
-
this.emit("peer-candidate", { peerId,
|
|
103
|
+
this.emit("peer-candidate", { peerId, peerMetadata });
|
|
106
104
|
}
|
|
107
105
|
disconnect() {
|
|
108
106
|
// TODO
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automerge/automerge-repo-network-messagechannel",
|
|
3
|
-
"version": "1.1.0-alpha.
|
|
3
|
+
"version": "1.1.0-alpha.3",
|
|
4
4
|
"description": "MessageChannel network adapter for Automerge Repo",
|
|
5
5
|
"repository": "https://github.com/automerge/automerge-repo/tree/master/packages/automerge-repo-network-messagechannel",
|
|
6
6
|
"author": "Peter van Hardenberg <pvh@pvh.ca>",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"test": "vitest"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@automerge/automerge-repo": "^1.1.0-alpha.
|
|
16
|
+
"@automerge/automerge-repo": "^1.1.0-alpha.3"
|
|
17
17
|
},
|
|
18
18
|
"watch": {
|
|
19
19
|
"build": {
|
|
@@ -26,5 +26,5 @@
|
|
|
26
26
|
"publishConfig": {
|
|
27
27
|
"access": "public"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "0d76620579403005a01d4205ee15fd08a85d445c"
|
|
30
30
|
}
|
package/src/index.ts
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
type PeerId,
|
|
12
12
|
type Message,
|
|
13
13
|
type StorageId,
|
|
14
|
+
PeerMetadata,
|
|
14
15
|
} from "@automerge/automerge-repo"
|
|
15
16
|
import { MessagePortRef } from "./MessagePortRef.js"
|
|
16
17
|
import { StrongMessagePortRef } from "./StrongMessagePortRef.js"
|
|
@@ -38,15 +39,10 @@ export class MessageChannelNetworkAdapter extends NetworkAdapter {
|
|
|
38
39
|
: new StrongMessagePortRef(messagePort)
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
connect(
|
|
42
|
-
peerId: PeerId,
|
|
43
|
-
storageId: StorageId | undefined,
|
|
44
|
-
isEphemeral: boolean
|
|
45
|
-
) {
|
|
42
|
+
connect(peerId: PeerId, peerMetadata: PeerMetadata) {
|
|
46
43
|
log("messageport connecting")
|
|
47
44
|
this.peerId = peerId
|
|
48
|
-
this.
|
|
49
|
-
this.isEphemeral = isEphemeral
|
|
45
|
+
this.peerMetadata = peerMetadata
|
|
50
46
|
this.messagePortRef.start()
|
|
51
47
|
this.messagePortRef.addListener(
|
|
52
48
|
"message",
|
|
@@ -65,21 +61,20 @@ export class MessageChannelNetworkAdapter extends NetworkAdapter {
|
|
|
65
61
|
switch (type) {
|
|
66
62
|
case "arrive":
|
|
67
63
|
{
|
|
68
|
-
const {
|
|
64
|
+
const { peerMetadata } = message
|
|
69
65
|
this.messagePortRef.postMessage({
|
|
70
66
|
senderId: this.peerId,
|
|
71
|
-
|
|
72
|
-
isEphemeral: this.isEphemeral,
|
|
67
|
+
peerMetadata: this.peerMetadata,
|
|
73
68
|
targetId: senderId,
|
|
74
69
|
type: "welcome",
|
|
75
70
|
})
|
|
76
|
-
this.announceConnection(senderId,
|
|
71
|
+
this.announceConnection(senderId, peerMetadata)
|
|
77
72
|
}
|
|
78
73
|
break
|
|
79
74
|
case "welcome":
|
|
80
75
|
{
|
|
81
|
-
const {
|
|
82
|
-
this.announceConnection(senderId,
|
|
76
|
+
const { peerMetadata } = message
|
|
77
|
+
this.announceConnection(senderId, peerMetadata)
|
|
83
78
|
}
|
|
84
79
|
break
|
|
85
80
|
default:
|
|
@@ -135,16 +130,12 @@ export class MessageChannelNetworkAdapter extends NetworkAdapter {
|
|
|
135
130
|
}
|
|
136
131
|
}
|
|
137
132
|
|
|
138
|
-
announceConnection(
|
|
139
|
-
peerId: PeerId,
|
|
140
|
-
storageId: StorageId | undefined,
|
|
141
|
-
isEphemeral: boolean
|
|
142
|
-
) {
|
|
133
|
+
announceConnection(peerId: PeerId, peerMetadata: PeerMetadata) {
|
|
143
134
|
if (!this.#startupComplete) {
|
|
144
135
|
this.#startupComplete = true
|
|
145
136
|
this.emit("ready", { network: this })
|
|
146
137
|
}
|
|
147
|
-
this.emit("peer-candidate", { peerId,
|
|
138
|
+
this.emit("peer-candidate", { peerId, peerMetadata })
|
|
148
139
|
}
|
|
149
140
|
|
|
150
141
|
disconnect() {
|
|
@@ -172,12 +163,8 @@ type ArriveMessage = {
|
|
|
172
163
|
/** The peer ID of the sender of this message */
|
|
173
164
|
senderId: PeerId
|
|
174
165
|
|
|
175
|
-
/**
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
/** Indicates whether other peers should persist the sync state of the sender peer.
|
|
179
|
-
* Sync state is only persisted for non-ephemeral peers */
|
|
180
|
-
isEphemeral: boolean
|
|
166
|
+
/** The peer metadata of the sender of this message */
|
|
167
|
+
peerMetadata: PeerMetadata
|
|
181
168
|
|
|
182
169
|
/** Arrive messages don't have a targetId */
|
|
183
170
|
targetId: never
|
|
@@ -190,12 +177,8 @@ type WelcomeMessage = {
|
|
|
190
177
|
/** The peer ID of the recipient sender this message */
|
|
191
178
|
senderId: PeerId
|
|
192
179
|
|
|
193
|
-
/**
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
/** Indicates whether other peers should persist the sync state of the sender peer.
|
|
197
|
-
* Sync state is only persisted for non-ephemeral peers */
|
|
198
|
-
isEphemeral: boolean
|
|
180
|
+
/** The peer metadata of the sender of this message */
|
|
181
|
+
peerMetadata: PeerMetadata
|
|
199
182
|
|
|
200
183
|
/** The peer ID of the recipient of this message */
|
|
201
184
|
targetId: PeerId
|