@automerge/automerge-repo-network-websocket 1.0.0-alpha.0 → 1.0.0-alpha.2
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/BrowserWebSocketClientAdapter.d.ts +1 -2
- package/dist/BrowserWebSocketClientAdapter.d.ts.map +1 -1
- package/dist/BrowserWebSocketClientAdapter.js +3 -1
- package/dist/NodeWSServerAdapter.d.ts.map +1 -1
- package/dist/NodeWSServerAdapter.js +5 -2
- package/dist/message.d.ts +1 -1
- package/dist/message.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/BrowserWebSocketClientAdapter.ts +5 -3
- package/src/NodeWSServerAdapter.ts +11 -4
- package/src/message.ts +2 -2
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
/// <reference types="ws" />
|
|
3
2
|
import { ChannelId, NetworkAdapter, PeerId } from "@automerge/automerge-repo";
|
|
4
3
|
import WebSocket from "isomorphic-ws";
|
|
@@ -6,7 +5,7 @@ declare abstract class WebSocketNetworkAdapter extends NetworkAdapter {
|
|
|
6
5
|
socket?: WebSocket;
|
|
7
6
|
}
|
|
8
7
|
export declare class BrowserWebSocketClientAdapter extends WebSocketNetworkAdapter {
|
|
9
|
-
timerId?:
|
|
8
|
+
timerId?: ReturnType<typeof setTimeout>;
|
|
10
9
|
url: string;
|
|
11
10
|
constructor(url: string);
|
|
12
11
|
connect(peerId: PeerId): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserWebSocketClientAdapter.d.ts","sourceRoot":"","sources":["../src/BrowserWebSocketClientAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BrowserWebSocketClientAdapter.d.ts","sourceRoot":"","sources":["../src/BrowserWebSocketClientAdapter.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,SAAS,EAET,cAAc,EACd,MAAM,EACP,MAAM,2BAA2B,CAAA;AAElC,OAAO,SAAS,MAAM,eAAe,CAAA;AAOrC,uBAAe,uBAAwB,SAAQ,cAAc;IAC3D,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB;AAED,qBAAa,6BAA8B,SAAQ,uBAAuB;IAGxE,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;IACvC,GAAG,EAAE,MAAM,CAAA;gBAEC,GAAG,EAAE,MAAM;IAKvB,OAAO,CAAC,MAAM,EAAE,MAAM;IA8BtB,IAAI;IAwBJ,KAAK;IAOL,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,OAAO;IAgCpB,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAUjC,cAAc,CAAC,OAAO,EAAE,UAAU;CAsCnC"}
|
|
@@ -2,12 +2,14 @@ import { NetworkAdapter, } from "@automerge/automerge-repo";
|
|
|
2
2
|
import * as CBOR from "cbor-x";
|
|
3
3
|
import WebSocket from "isomorphic-ws";
|
|
4
4
|
import debug from "debug";
|
|
5
|
-
import { ProtocolV1 } from "./protocolVersion";
|
|
5
|
+
import { ProtocolV1 } from "./protocolVersion.js";
|
|
6
6
|
const log = debug("WebsocketClient");
|
|
7
7
|
class WebSocketNetworkAdapter extends NetworkAdapter {
|
|
8
8
|
socket;
|
|
9
9
|
}
|
|
10
10
|
export class BrowserWebSocketClientAdapter extends WebSocketNetworkAdapter {
|
|
11
|
+
// Type trickery required for platform independence,
|
|
12
|
+
// see https://stackoverflow.com/questions/45802988/typescript-use-correct-version-of-settimeout-node-vs-window
|
|
11
13
|
timerId;
|
|
12
14
|
url;
|
|
13
15
|
constructor(url) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeWSServerAdapter.d.ts","sourceRoot":"","sources":["../src/NodeWSServerAdapter.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAK/D,OAAO,EACL,SAAS,EAET,cAAc,EACd,MAAM,EACP,MAAM,2BAA2B,CAAA;AAIlC,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAK;gBAEjC,MAAM,EAAE,eAAe;IAKnC,OAAO,CAAC,MAAM,EAAE,MAAM;IAmBtB,IAAI;IAIJ,KAAK;IAIL,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,OAAO;IAsCpB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"NodeWSServerAdapter.d.ts","sourceRoot":"","sources":["../src/NodeWSServerAdapter.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAK/D,OAAO,EACL,SAAS,EAET,cAAc,EACd,MAAM,EACP,MAAM,2BAA2B,CAAA;AAIlC,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAK;gBAEjC,MAAM,EAAE,eAAe;IAKnC,OAAO,CAAC,MAAM,EAAE,MAAM;IAmBtB,IAAI;IAIJ,KAAK;IAIL,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,OAAO;IAsCpB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS;CA2EtD"}
|
|
@@ -2,7 +2,7 @@ import * as CBOR from "cbor-x";
|
|
|
2
2
|
import debug from "debug";
|
|
3
3
|
const log = debug("WebsocketServer");
|
|
4
4
|
import { NetworkAdapter, } from "@automerge/automerge-repo";
|
|
5
|
-
import { ProtocolV1 } from "./protocolVersion";
|
|
5
|
+
import { ProtocolV1 } from "./protocolVersion.js";
|
|
6
6
|
export class NodeWSServerAdapter extends NetworkAdapter {
|
|
7
7
|
server;
|
|
8
8
|
sockets = {};
|
|
@@ -75,7 +75,10 @@ export class NodeWSServerAdapter extends NetworkAdapter {
|
|
|
75
75
|
// (and we pretend to be joined to every channel)
|
|
76
76
|
const selectedProtocolVersion = selectProtocol(supportedProtocolVersions);
|
|
77
77
|
if (selectedProtocolVersion === null) {
|
|
78
|
-
socket.send(CBOR.encode({
|
|
78
|
+
socket.send(CBOR.encode({
|
|
79
|
+
type: "error",
|
|
80
|
+
errorMessage: "unsupported protocol version",
|
|
81
|
+
}));
|
|
79
82
|
this.sockets[senderId].close();
|
|
80
83
|
delete this.sockets[senderId];
|
|
81
84
|
}
|
package/dist/message.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type InboundMessagePayload } from "@automerge/automerge-repo";
|
|
2
|
-
import { ProtocolVersion } from "./protocolVersion";
|
|
2
|
+
import { ProtocolVersion } from "./protocolVersion.js";
|
|
3
3
|
export interface InboundWebSocketMessage extends InboundMessagePayload {
|
|
4
4
|
supportedProtocolVersions?: ProtocolVersion[];
|
|
5
5
|
}
|
package/dist/message.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,yBAAyB,CAAC,EAAE,eAAe,EAAE,CAAA;CAC9C;AAED,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB;IACrE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automerge/automerge-repo-network-websocket",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.2",
|
|
4
4
|
"description": "isomorphic node/browser Websocket network adapter for Automerge Repo",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@automerge/automerge": "^2.1.0-alpha.
|
|
6
|
+
"@automerge/automerge": "^2.1.0-alpha.10"
|
|
7
7
|
},
|
|
8
8
|
"repository": "https://github.com/automerge/automerge-repo",
|
|
9
9
|
"author": "Peter van Hardenberg <pvh@pvh.ca>",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"test": "mocha --no-warnings --experimental-specifier-resolution=node --exit"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@automerge/automerge-repo": "^1.0.0-alpha.
|
|
20
|
+
"@automerge/automerge-repo": "^1.0.0-alpha.2",
|
|
21
21
|
"cbor-x": "^1.3.0",
|
|
22
22
|
"eventemitter3": "^4.0.7",
|
|
23
23
|
"isomorphic-ws": "^5.0.0",
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"publishConfig": {
|
|
35
35
|
"access": "public"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "b5830dde8f135b694809698aaad2a9fdc79a9898"
|
|
38
38
|
}
|
|
@@ -8,8 +8,8 @@ import * as CBOR from "cbor-x"
|
|
|
8
8
|
import WebSocket from "isomorphic-ws"
|
|
9
9
|
|
|
10
10
|
import debug from "debug"
|
|
11
|
-
import {ProtocolV1} from "./protocolVersion"
|
|
12
|
-
import {InboundWebSocketMessage, OutboundWebSocketMessage} from "./message"
|
|
11
|
+
import {ProtocolV1} from "./protocolVersion.js"
|
|
12
|
+
import {InboundWebSocketMessage, OutboundWebSocketMessage} from "./message.js"
|
|
13
13
|
const log = debug("WebsocketClient")
|
|
14
14
|
|
|
15
15
|
abstract class WebSocketNetworkAdapter extends NetworkAdapter {
|
|
@@ -17,7 +17,9 @@ abstract class WebSocketNetworkAdapter extends NetworkAdapter {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export class BrowserWebSocketClientAdapter extends WebSocketNetworkAdapter {
|
|
20
|
-
|
|
20
|
+
// Type trickery required for platform independence,
|
|
21
|
+
// see https://stackoverflow.com/questions/45802988/typescript-use-correct-version-of-settimeout-node-vs-window
|
|
22
|
+
timerId?: ReturnType<typeof setTimeout>
|
|
21
23
|
url: string
|
|
22
24
|
|
|
23
25
|
constructor(url: string) {
|
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
NetworkAdapter,
|
|
11
11
|
PeerId,
|
|
12
12
|
} from "@automerge/automerge-repo"
|
|
13
|
-
import {ProtocolV1, ProtocolVersion} from "./protocolVersion"
|
|
14
|
-
import {InboundWebSocketMessage} from "./message"
|
|
13
|
+
import { ProtocolV1, ProtocolVersion } from "./protocolVersion.js"
|
|
14
|
+
import { InboundWebSocketMessage } from "./message.js"
|
|
15
15
|
|
|
16
16
|
export class NodeWSServerAdapter extends NetworkAdapter {
|
|
17
17
|
server: WebSocketServer
|
|
@@ -119,9 +119,16 @@ export class NodeWSServerAdapter extends NetworkAdapter {
|
|
|
119
119
|
|
|
120
120
|
// In this client-server connection, there's only ever one peer: us!
|
|
121
121
|
// (and we pretend to be joined to every channel)
|
|
122
|
-
const selectedProtocolVersion = selectProtocol(
|
|
122
|
+
const selectedProtocolVersion = selectProtocol(
|
|
123
|
+
supportedProtocolVersions
|
|
124
|
+
)
|
|
123
125
|
if (selectedProtocolVersion === null) {
|
|
124
|
-
socket.send(
|
|
126
|
+
socket.send(
|
|
127
|
+
CBOR.encode({
|
|
128
|
+
type: "error",
|
|
129
|
+
errorMessage: "unsupported protocol version",
|
|
130
|
+
})
|
|
131
|
+
)
|
|
125
132
|
this.sockets[senderId].close()
|
|
126
133
|
delete this.sockets[senderId]
|
|
127
134
|
} else {
|
package/src/message.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {type InboundMessagePayload} from "@automerge/automerge-repo"
|
|
2
|
-
import {ProtocolVersion} from "./protocolVersion"
|
|
1
|
+
import { type InboundMessagePayload } from "@automerge/automerge-repo"
|
|
2
|
+
import { ProtocolVersion } from "./protocolVersion.js"
|
|
3
3
|
|
|
4
4
|
export interface InboundWebSocketMessage extends InboundMessagePayload {
|
|
5
5
|
supportedProtocolVersions?: ProtocolVersion[]
|