@welshman/net 0.0.43 → 0.0.45
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/build/src/Connection.d.ts +8 -8
- package/build/src/Connection.js +58 -0
- package/build/src/Connection.js.map +1 -0
- package/build/src/ConnectionAuth.d.ts +1 -1
- package/build/src/ConnectionAuth.js +99 -0
- package/build/src/ConnectionAuth.js.map +1 -0
- package/build/src/{ConnectionEvent.mjs → ConnectionEvent.js} +1 -1
- package/build/src/ConnectionEvent.js.map +1 -0
- package/build/src/ConnectionSender.d.ts +3 -3
- package/build/src/{ConnectionSender.mjs → ConnectionSender.js} +16 -14
- package/build/src/ConnectionSender.js.map +1 -0
- package/build/src/ConnectionState.d.ts +2 -2
- package/build/src/{ConnectionState.mjs → ConnectionState.js} +21 -21
- package/build/src/ConnectionState.js.map +1 -0
- package/build/src/ConnectionStats.d.ts +1 -1
- package/build/src/{ConnectionStats.mjs → ConnectionStats.js} +31 -30
- package/build/src/ConnectionStats.js.map +1 -0
- package/build/src/Context.d.ts +7 -7
- package/build/src/{Context.mjs → Context.js} +8 -9
- package/build/src/Context.js.map +1 -0
- package/build/src/Executor.d.ts +7 -6
- package/build/src/{Executor.mjs → Executor.js} +31 -30
- package/build/src/Executor.js.map +1 -0
- package/build/src/{Negentropy.mjs → Negentropy.js} +1 -1
- package/build/src/Negentropy.js.map +1 -0
- package/build/src/Pool.d.ts +2 -2
- package/build/src/{Pool.mjs → Pool.js} +5 -4
- package/build/src/Pool.js.map +1 -0
- package/build/src/Publish.d.ts +3 -3
- package/build/src/{Publish.mjs → Publish.js} +5 -6
- package/build/src/Publish.js.map +1 -0
- package/build/src/Socket.d.ts +2 -2
- package/build/src/Socket.js +110 -0
- package/build/src/Socket.js.map +1 -0
- package/build/src/Subscribe.d.ts +4 -4
- package/build/src/{Subscribe.mjs → Subscribe.js} +14 -16
- package/build/src/Subscribe.js.map +1 -0
- package/build/src/Sync.d.ts +2 -2
- package/build/src/{Sync.mjs → Sync.js} +11 -12
- package/build/src/Sync.js.map +1 -0
- package/build/src/Tracker.d.ts +2 -2
- package/build/src/Tracker.js +63 -0
- package/build/src/Tracker.js.map +1 -0
- package/build/src/index.d.ts +25 -19
- package/build/src/index.js +20 -0
- package/build/src/index.js.map +1 -0
- package/build/src/target/Echo.d.ts +2 -2
- package/build/src/target/Echo.js +13 -0
- package/build/src/target/Echo.js.map +1 -0
- package/build/src/target/Local.d.ts +4 -4
- package/build/src/target/Local.js +25 -0
- package/build/src/target/Local.js.map +1 -0
- package/build/src/target/Multi.d.ts +4 -4
- package/build/src/target/{Multi.mjs → Multi.js} +8 -7
- package/build/src/target/Multi.js.map +1 -0
- package/build/src/target/Relay.d.ts +3 -3
- package/build/src/target/Relay.js +24 -0
- package/build/src/target/Relay.js.map +1 -0
- package/build/src/target/Relays.d.ts +3 -3
- package/build/src/target/Relays.js +25 -0
- package/build/src/target/Relays.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/package.json +7 -10
- package/build/src/Connection.cjs +0 -55
- package/build/src/Connection.cjs.map +0 -1
- package/build/src/Connection.mjs +0 -51
- package/build/src/Connection.mjs.map +0 -1
- package/build/src/ConnectionAuth.cjs +0 -109
- package/build/src/ConnectionAuth.cjs.map +0 -1
- package/build/src/ConnectionAuth.mjs +0 -105
- package/build/src/ConnectionAuth.mjs.map +0 -1
- package/build/src/ConnectionEvent.cjs +0 -16
- package/build/src/ConnectionEvent.cjs.map +0 -1
- package/build/src/ConnectionEvent.mjs.map +0 -1
- package/build/src/ConnectionSender.cjs +0 -50
- package/build/src/ConnectionSender.cjs.map +0 -1
- package/build/src/ConnectionSender.mjs.map +0 -1
- package/build/src/ConnectionState.cjs +0 -84
- package/build/src/ConnectionState.cjs.map +0 -1
- package/build/src/ConnectionState.mjs.map +0 -1
- package/build/src/ConnectionStats.cjs +0 -86
- package/build/src/ConnectionStats.cjs.map +0 -1
- package/build/src/ConnectionStats.mjs.map +0 -1
- package/build/src/Context.cjs +0 -47
- package/build/src/Context.cjs.map +0 -1
- package/build/src/Context.mjs.map +0 -1
- package/build/src/Executor.cjs +0 -109
- package/build/src/Executor.cjs.map +0 -1
- package/build/src/Executor.mjs.map +0 -1
- package/build/src/Negentropy.cjs +0 -516
- package/build/src/Negentropy.cjs.map +0 -1
- package/build/src/Negentropy.mjs.map +0 -1
- package/build/src/Pool.cjs +0 -38
- package/build/src/Pool.cjs.map +0 -1
- package/build/src/Pool.mjs.map +0 -1
- package/build/src/Publish.cjs +0 -74
- package/build/src/Publish.cjs.map +0 -1
- package/build/src/Publish.mjs.map +0 -1
- package/build/src/Socket.cjs +0 -120
- package/build/src/Socket.cjs.map +0 -1
- package/build/src/Socket.mjs +0 -113
- package/build/src/Socket.mjs.map +0 -1
- package/build/src/Subscribe.cjs +0 -294
- package/build/src/Subscribe.cjs.map +0 -1
- package/build/src/Subscribe.mjs.map +0 -1
- package/build/src/Sync.cjs +0 -136
- package/build/src/Sync.cjs.map +0 -1
- package/build/src/Sync.mjs.map +0 -1
- package/build/src/Tracker.cjs +0 -68
- package/build/src/Tracker.cjs.map +0 -1
- package/build/src/Tracker.mjs +0 -64
- package/build/src/Tracker.mjs.map +0 -1
- package/build/src/index.cjs +0 -36
- package/build/src/index.cjs.map +0 -1
- package/build/src/index.mjs +0 -20
- package/build/src/index.mjs.map +0 -1
- package/build/src/target/Echo.cjs +0 -20
- package/build/src/target/Echo.cjs.map +0 -1
- package/build/src/target/Echo.mjs +0 -16
- package/build/src/target/Echo.mjs.map +0 -1
- package/build/src/target/Local.cjs +0 -28
- package/build/src/target/Local.cjs.map +0 -1
- package/build/src/target/Local.mjs +0 -24
- package/build/src/target/Local.mjs.map +0 -1
- package/build/src/target/Multi.cjs +0 -25
- package/build/src/target/Multi.cjs.map +0 -1
- package/build/src/target/Multi.mjs.map +0 -1
- package/build/src/target/Relay.cjs +0 -27
- package/build/src/target/Relay.cjs.map +0 -1
- package/build/src/target/Relay.mjs +0 -23
- package/build/src/target/Relay.mjs.map +0 -1
- package/build/src/target/Relays.cjs +0 -28
- package/build/src/target/Relays.cjs.map +0 -1
- package/build/src/target/Relays.mjs +0 -24
- package/build/src/target/Relays.mjs.map +0 -1
package/build/src/Connection.cjs
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Connection = exports.ConnectionStatus = void 0;
|
|
4
|
-
const lib_1 = require("@welshman/lib");
|
|
5
|
-
const util_1 = require("@welshman/util");
|
|
6
|
-
const Socket_1 = require("./Socket.cjs");
|
|
7
|
-
const ConnectionState_1 = require("./ConnectionState.cjs");
|
|
8
|
-
const ConnectionStats_1 = require("./ConnectionStats.cjs");
|
|
9
|
-
const ConnectionAuth_1 = require("./ConnectionAuth.cjs");
|
|
10
|
-
const ConnectionSender_1 = require("./ConnectionSender.cjs");
|
|
11
|
-
var ConnectionStatus;
|
|
12
|
-
(function (ConnectionStatus) {
|
|
13
|
-
ConnectionStatus["Open"] = "open";
|
|
14
|
-
ConnectionStatus["Closed"] = "Closed";
|
|
15
|
-
})(ConnectionStatus || (exports.ConnectionStatus = ConnectionStatus = {}));
|
|
16
|
-
const { Open, Closed } = ConnectionStatus;
|
|
17
|
-
class Connection extends lib_1.Emitter {
|
|
18
|
-
constructor(url) {
|
|
19
|
-
super();
|
|
20
|
-
this.status = Open;
|
|
21
|
-
this.emit = (type, ...args) => super.emit(type, this, ...args);
|
|
22
|
-
this.send = async (message) => {
|
|
23
|
-
if (this.status !== Open) {
|
|
24
|
-
throw new Error(`Attempted to send message on ${this.status} connection`);
|
|
25
|
-
}
|
|
26
|
-
this.sender.push(message);
|
|
27
|
-
};
|
|
28
|
-
this.open = () => {
|
|
29
|
-
this.status = Open;
|
|
30
|
-
this.socket.open();
|
|
31
|
-
this.sender.worker.resume();
|
|
32
|
-
};
|
|
33
|
-
this.close = () => {
|
|
34
|
-
this.status = Closed;
|
|
35
|
-
this.socket.close();
|
|
36
|
-
this.sender.worker.pause();
|
|
37
|
-
};
|
|
38
|
-
this.cleanup = () => {
|
|
39
|
-
this.close();
|
|
40
|
-
this.removeAllListeners();
|
|
41
|
-
};
|
|
42
|
-
if (url !== (0, util_1.normalizeRelayUrl)(url)) {
|
|
43
|
-
console.warn(`Attempted to open connection to non-normalized url ${url}`);
|
|
44
|
-
}
|
|
45
|
-
this.url = url;
|
|
46
|
-
this.socket = new Socket_1.Socket(this);
|
|
47
|
-
this.sender = new ConnectionSender_1.ConnectionSender(this);
|
|
48
|
-
this.state = new ConnectionState_1.ConnectionState(this);
|
|
49
|
-
this.stats = new ConnectionStats_1.ConnectionStats(this);
|
|
50
|
-
this.auth = new ConnectionAuth_1.ConnectionAuth(this);
|
|
51
|
-
this.setMaxListeners(100);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
exports.Connection = Connection;
|
|
55
|
-
//# sourceMappingURL=Connection.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Connection.cjs","sourceRoot":"","sources":["../../src/Connection.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AACrC,yCAAgD;AAChD,yCAA+B;AAG/B,2DAAiD;AACjD,2DAAiD;AACjD,yDAA+C;AAC/C,6DAAmD;AAEnD,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,iCAAa,CAAA;IACb,qCAAiB,CAAA;AACnB,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAED,MAAM,EAAC,IAAI,EAAE,MAAM,EAAC,GAAG,gBAAgB,CAAA;AAEvC,MAAa,UAAW,SAAQ,aAAO;IASrC,YAAY,GAAW;QACrB,KAAK,EAAE,CAAA;QAHT,WAAM,GAAG,IAAI,CAAA;QAkBb,SAAI,GAAG,CAAC,IAAqB,EAAE,GAAG,IAAW,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAA;QAEjF,SAAI,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;gBACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,MAAM,aAAa,CAAC,CAAA;aAC1E;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3B,CAAC,CAAA;QAED,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;YAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;QAC7B,CAAC,CAAA;QAED,UAAK,GAAG,GAAG,EAAE;YACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;YACnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QAC5B,CAAC,CAAA;QAED,YAAO,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,KAAK,EAAE,CAAA;YACZ,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAC3B,CAAC,CAAA;QAtCC,IAAI,GAAG,KAAK,IAAA,wBAAiB,EAAC,GAAG,CAAC,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,sDAAsD,GAAG,EAAE,CAAC,CAAA;SAC1E;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,mCAAgB,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,iCAAe,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,iCAAe,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;CA4BF;AAnDD,gCAmDC"}
|
package/build/src/Connection.mjs
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Emitter } from '@welshman/lib';
|
|
2
|
-
import { normalizeRelayUrl } from '@welshman/util';
|
|
3
|
-
import { Socket } from "./Socket.mjs";
|
|
4
|
-
import { ConnectionState } from "./ConnectionState.mjs";
|
|
5
|
-
import { ConnectionStats } from "./ConnectionStats.mjs";
|
|
6
|
-
import { ConnectionAuth } from "./ConnectionAuth.mjs";
|
|
7
|
-
import { ConnectionSender } from "./ConnectionSender.mjs";
|
|
8
|
-
export var ConnectionStatus;
|
|
9
|
-
(function (ConnectionStatus) {
|
|
10
|
-
ConnectionStatus["Open"] = "open";
|
|
11
|
-
ConnectionStatus["Closed"] = "Closed";
|
|
12
|
-
})(ConnectionStatus || (ConnectionStatus = {}));
|
|
13
|
-
const { Open, Closed } = ConnectionStatus;
|
|
14
|
-
export class Connection extends Emitter {
|
|
15
|
-
constructor(url) {
|
|
16
|
-
super();
|
|
17
|
-
this.status = Open;
|
|
18
|
-
this.emit = (type, ...args) => super.emit(type, this, ...args);
|
|
19
|
-
this.send = async (message) => {
|
|
20
|
-
if (this.status !== Open) {
|
|
21
|
-
throw new Error(`Attempted to send message on ${this.status} connection`);
|
|
22
|
-
}
|
|
23
|
-
this.sender.push(message);
|
|
24
|
-
};
|
|
25
|
-
this.open = () => {
|
|
26
|
-
this.status = Open;
|
|
27
|
-
this.socket.open();
|
|
28
|
-
this.sender.worker.resume();
|
|
29
|
-
};
|
|
30
|
-
this.close = () => {
|
|
31
|
-
this.status = Closed;
|
|
32
|
-
this.socket.close();
|
|
33
|
-
this.sender.worker.pause();
|
|
34
|
-
};
|
|
35
|
-
this.cleanup = () => {
|
|
36
|
-
this.close();
|
|
37
|
-
this.removeAllListeners();
|
|
38
|
-
};
|
|
39
|
-
if (url !== normalizeRelayUrl(url)) {
|
|
40
|
-
console.warn(`Attempted to open connection to non-normalized url ${url}`);
|
|
41
|
-
}
|
|
42
|
-
this.url = url;
|
|
43
|
-
this.socket = new Socket(this);
|
|
44
|
-
this.sender = new ConnectionSender(this);
|
|
45
|
-
this.state = new ConnectionState(this);
|
|
46
|
-
this.stats = new ConnectionStats(this);
|
|
47
|
-
this.auth = new ConnectionAuth(this);
|
|
48
|
-
this.setMaxListeners(100);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=Connection.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Connection.mjs","sourceRoot":"","sources":["../../src/Connection.ts"],"names":[],"mappings":"OAAO,EAAC,OAAO,EAAC,MAAM,eAAe;OAC9B,EAAC,iBAAiB,EAAC,MAAM,gBAAgB;OACzC,EAAC,MAAM,EAAC;OAGR,EAAC,eAAe,EAAC;OACjB,EAAC,eAAe,EAAC;OACjB,EAAC,cAAc,EAAC;OAChB,EAAC,gBAAgB,EAAC;AAEzB,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,iCAAa,CAAA;IACb,qCAAiB,CAAA;AACnB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAED,MAAM,EAAC,IAAI,EAAE,MAAM,EAAC,GAAG,gBAAgB,CAAA;AAEvC,MAAM,OAAO,UAAW,SAAQ,OAAO;IASrC,YAAY,GAAW;QACrB,KAAK,EAAE,CAAA;QAHT,WAAM,GAAG,IAAI,CAAA;QAkBb,SAAI,GAAG,CAAC,IAAqB,EAAE,GAAG,IAAW,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAA;QAEjF,SAAI,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;gBACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,MAAM,aAAa,CAAC,CAAA;aAC1E;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3B,CAAC,CAAA;QAED,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;YAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;QAC7B,CAAC,CAAA;QAED,UAAK,GAAG,GAAG,EAAE;YACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;YACnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QAC5B,CAAC,CAAA;QAED,YAAO,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,KAAK,EAAE,CAAA;YACZ,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAC3B,CAAC,CAAA;QAtCC,IAAI,GAAG,KAAK,iBAAiB,CAAC,GAAG,CAAC,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,sDAAsD,GAAG,EAAE,CAAC,CAAA;SAC1E;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;CA4BF"}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var _ConnectionAuth_onReceive, _ConnectionAuth_onClose;
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.ConnectionAuth = exports.AuthStatus = exports.AuthMode = void 0;
|
|
10
|
-
const lib_1 = require("@welshman/lib");
|
|
11
|
-
const util_1 = require("@welshman/util");
|
|
12
|
-
const ConnectionEvent_1 = require("./ConnectionEvent.cjs");
|
|
13
|
-
var AuthMode;
|
|
14
|
-
(function (AuthMode) {
|
|
15
|
-
AuthMode["Implicit"] = "implicit";
|
|
16
|
-
AuthMode["Explicit"] = "explicit";
|
|
17
|
-
})(AuthMode || (exports.AuthMode = AuthMode = {}));
|
|
18
|
-
var AuthStatus;
|
|
19
|
-
(function (AuthStatus) {
|
|
20
|
-
AuthStatus["None"] = "none";
|
|
21
|
-
AuthStatus["Requested"] = "requested";
|
|
22
|
-
AuthStatus["PendingSignature"] = "pending_signature";
|
|
23
|
-
AuthStatus["DeniedSignature"] = "denied_signature";
|
|
24
|
-
AuthStatus["PendingResponse"] = "pending_response";
|
|
25
|
-
AuthStatus["Forbidden"] = "forbidden";
|
|
26
|
-
AuthStatus["Ok"] = "ok";
|
|
27
|
-
})(AuthStatus || (exports.AuthStatus = AuthStatus = {}));
|
|
28
|
-
const { None, Requested, PendingSignature, DeniedSignature, PendingResponse, Forbidden, Ok, } = AuthStatus;
|
|
29
|
-
class ConnectionAuth {
|
|
30
|
-
constructor(cxn) {
|
|
31
|
-
this.cxn = cxn;
|
|
32
|
-
this.status = None;
|
|
33
|
-
_ConnectionAuth_onReceive.set(this, (cxn, [verb, ...extra]) => {
|
|
34
|
-
if (verb === 'OK') {
|
|
35
|
-
const [id, ok, message] = extra;
|
|
36
|
-
if (id === this.request) {
|
|
37
|
-
this.message = message;
|
|
38
|
-
this.status = ok ? Ok : Forbidden;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
if (verb === 'AUTH' && extra[0] !== this.challenge) {
|
|
42
|
-
this.challenge = extra[0];
|
|
43
|
-
this.request = undefined;
|
|
44
|
-
this.message = undefined;
|
|
45
|
-
this.status = Requested;
|
|
46
|
-
if (lib_1.ctx.net.authMode === AuthMode.Implicit) {
|
|
47
|
-
this.respond();
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
_ConnectionAuth_onClose.set(this, (cxn) => {
|
|
52
|
-
this.challenge = undefined;
|
|
53
|
-
this.request = undefined;
|
|
54
|
-
this.message = undefined;
|
|
55
|
-
this.status = None;
|
|
56
|
-
});
|
|
57
|
-
this.waitFor = async (condition, timeout = 300) => {
|
|
58
|
-
const start = Date.now();
|
|
59
|
-
while (Date.now() - timeout <= start) {
|
|
60
|
-
await (0, lib_1.sleep)(100);
|
|
61
|
-
if (condition()) {
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
this.waitForChallenge = async (timeout = 300) => this.waitFor(() => Boolean(this.challenge), timeout);
|
|
67
|
-
this.waitForResolution = async (timeout = 300) => this.waitFor(() => [None, DeniedSignature, Forbidden, Ok].includes(this.status), timeout);
|
|
68
|
-
this.respond = async () => {
|
|
69
|
-
if (!this.challenge) {
|
|
70
|
-
throw new Error("Attempted to authenticate with no challenge");
|
|
71
|
-
}
|
|
72
|
-
if (this.status !== Requested) {
|
|
73
|
-
throw new Error(`Attempted to authenticate when auth is already ${this.status}`);
|
|
74
|
-
}
|
|
75
|
-
this.status = PendingSignature;
|
|
76
|
-
const template = (0, util_1.createEvent)(util_1.CLIENT_AUTH, {
|
|
77
|
-
tags: [
|
|
78
|
-
["relay", this.cxn.url],
|
|
79
|
-
["challenge", this.challenge],
|
|
80
|
-
],
|
|
81
|
-
});
|
|
82
|
-
const [event] = await Promise.all([
|
|
83
|
-
lib_1.ctx.net.signEvent(template),
|
|
84
|
-
this.cxn.socket.open(),
|
|
85
|
-
]);
|
|
86
|
-
if (event) {
|
|
87
|
-
this.request = event.id;
|
|
88
|
-
this.cxn.send(['AUTH', event]);
|
|
89
|
-
this.status = PendingResponse;
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
this.status = DeniedSignature;
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
this.attempt = async (timeout = 300) => {
|
|
96
|
-
await this.cxn.socket.open();
|
|
97
|
-
await this.waitForChallenge(timeout);
|
|
98
|
-
if (this.status === Requested) {
|
|
99
|
-
await this.respond();
|
|
100
|
-
}
|
|
101
|
-
await this.waitForResolution(timeout);
|
|
102
|
-
};
|
|
103
|
-
this.cxn.on(ConnectionEvent_1.ConnectionEvent.Close, __classPrivateFieldGet(this, _ConnectionAuth_onClose, "f"));
|
|
104
|
-
this.cxn.on(ConnectionEvent_1.ConnectionEvent.Receive, __classPrivateFieldGet(this, _ConnectionAuth_onReceive, "f"));
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
exports.ConnectionAuth = ConnectionAuth;
|
|
108
|
-
_ConnectionAuth_onReceive = new WeakMap(), _ConnectionAuth_onClose = new WeakMap();
|
|
109
|
-
//# sourceMappingURL=ConnectionAuth.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionAuth.cjs","sourceRoot":"","sources":["../../src/ConnectionAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
-
};
|
|
6
|
-
var _ConnectionAuth_onReceive, _ConnectionAuth_onClose;
|
|
7
|
-
import { ctx, sleep } from '@welshman/lib';
|
|
8
|
-
import { CLIENT_AUTH, createEvent } from '@welshman/util';
|
|
9
|
-
import { ConnectionEvent } from "./ConnectionEvent.mjs";
|
|
10
|
-
export var AuthMode;
|
|
11
|
-
(function (AuthMode) {
|
|
12
|
-
AuthMode["Implicit"] = "implicit";
|
|
13
|
-
AuthMode["Explicit"] = "explicit";
|
|
14
|
-
})(AuthMode || (AuthMode = {}));
|
|
15
|
-
export var AuthStatus;
|
|
16
|
-
(function (AuthStatus) {
|
|
17
|
-
AuthStatus["None"] = "none";
|
|
18
|
-
AuthStatus["Requested"] = "requested";
|
|
19
|
-
AuthStatus["PendingSignature"] = "pending_signature";
|
|
20
|
-
AuthStatus["DeniedSignature"] = "denied_signature";
|
|
21
|
-
AuthStatus["PendingResponse"] = "pending_response";
|
|
22
|
-
AuthStatus["Forbidden"] = "forbidden";
|
|
23
|
-
AuthStatus["Ok"] = "ok";
|
|
24
|
-
})(AuthStatus || (AuthStatus = {}));
|
|
25
|
-
const { None, Requested, PendingSignature, DeniedSignature, PendingResponse, Forbidden, Ok, } = AuthStatus;
|
|
26
|
-
export class ConnectionAuth {
|
|
27
|
-
constructor(cxn) {
|
|
28
|
-
this.cxn = cxn;
|
|
29
|
-
this.status = None;
|
|
30
|
-
_ConnectionAuth_onReceive.set(this, (cxn, [verb, ...extra]) => {
|
|
31
|
-
if (verb === 'OK') {
|
|
32
|
-
const [id, ok, message] = extra;
|
|
33
|
-
if (id === this.request) {
|
|
34
|
-
this.message = message;
|
|
35
|
-
this.status = ok ? Ok : Forbidden;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
if (verb === 'AUTH' && extra[0] !== this.challenge) {
|
|
39
|
-
this.challenge = extra[0];
|
|
40
|
-
this.request = undefined;
|
|
41
|
-
this.message = undefined;
|
|
42
|
-
this.status = Requested;
|
|
43
|
-
if (ctx.net.authMode === AuthMode.Implicit) {
|
|
44
|
-
this.respond();
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
_ConnectionAuth_onClose.set(this, (cxn) => {
|
|
49
|
-
this.challenge = undefined;
|
|
50
|
-
this.request = undefined;
|
|
51
|
-
this.message = undefined;
|
|
52
|
-
this.status = None;
|
|
53
|
-
});
|
|
54
|
-
this.waitFor = async (condition, timeout = 300) => {
|
|
55
|
-
const start = Date.now();
|
|
56
|
-
while (Date.now() - timeout <= start) {
|
|
57
|
-
await sleep(100);
|
|
58
|
-
if (condition()) {
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
this.waitForChallenge = async (timeout = 300) => this.waitFor(() => Boolean(this.challenge), timeout);
|
|
64
|
-
this.waitForResolution = async (timeout = 300) => this.waitFor(() => [None, DeniedSignature, Forbidden, Ok].includes(this.status), timeout);
|
|
65
|
-
this.respond = async () => {
|
|
66
|
-
if (!this.challenge) {
|
|
67
|
-
throw new Error("Attempted to authenticate with no challenge");
|
|
68
|
-
}
|
|
69
|
-
if (this.status !== Requested) {
|
|
70
|
-
throw new Error(`Attempted to authenticate when auth is already ${this.status}`);
|
|
71
|
-
}
|
|
72
|
-
this.status = PendingSignature;
|
|
73
|
-
const template = createEvent(CLIENT_AUTH, {
|
|
74
|
-
tags: [
|
|
75
|
-
["relay", this.cxn.url],
|
|
76
|
-
["challenge", this.challenge],
|
|
77
|
-
],
|
|
78
|
-
});
|
|
79
|
-
const [event] = await Promise.all([
|
|
80
|
-
ctx.net.signEvent(template),
|
|
81
|
-
this.cxn.socket.open(),
|
|
82
|
-
]);
|
|
83
|
-
if (event) {
|
|
84
|
-
this.request = event.id;
|
|
85
|
-
this.cxn.send(['AUTH', event]);
|
|
86
|
-
this.status = PendingResponse;
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
this.status = DeniedSignature;
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
this.attempt = async (timeout = 300) => {
|
|
93
|
-
await this.cxn.socket.open();
|
|
94
|
-
await this.waitForChallenge(timeout);
|
|
95
|
-
if (this.status === Requested) {
|
|
96
|
-
await this.respond();
|
|
97
|
-
}
|
|
98
|
-
await this.waitForResolution(timeout);
|
|
99
|
-
};
|
|
100
|
-
this.cxn.on(ConnectionEvent.Close, __classPrivateFieldGet(this, _ConnectionAuth_onClose, "f"));
|
|
101
|
-
this.cxn.on(ConnectionEvent.Receive, __classPrivateFieldGet(this, _ConnectionAuth_onReceive, "f"));
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
_ConnectionAuth_onReceive = new WeakMap(), _ConnectionAuth_onClose = new WeakMap();
|
|
105
|
-
//# sourceMappingURL=ConnectionAuth.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionAuth.mjs","sourceRoot":"","sources":["../../src/ConnectionAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ConnectionEvent = void 0;
|
|
4
|
-
var ConnectionEvent;
|
|
5
|
-
(function (ConnectionEvent) {
|
|
6
|
-
ConnectionEvent["InvalidUrl"] = "invalid:url";
|
|
7
|
-
ConnectionEvent["InvalidMessage"] = "invalid:message:receive";
|
|
8
|
-
ConnectionEvent["Open"] = "socket:open";
|
|
9
|
-
ConnectionEvent["Reset"] = "socket:reset";
|
|
10
|
-
ConnectionEvent["Close"] = "socket:close";
|
|
11
|
-
ConnectionEvent["Error"] = "socket:error";
|
|
12
|
-
ConnectionEvent["Receive"] = "receive:message";
|
|
13
|
-
ConnectionEvent["Notice"] = "receive:notice";
|
|
14
|
-
ConnectionEvent["Send"] = "send:message";
|
|
15
|
-
})(ConnectionEvent || (exports.ConnectionEvent = ConnectionEvent = {}));
|
|
16
|
-
//# sourceMappingURL=ConnectionEvent.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionEvent.cjs","sourceRoot":"","sources":["../../src/ConnectionEvent.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,6CAA0B,CAAA;IAC1B,6DAA0C,CAAA;IAC1C,uCAAoB,CAAA;IACpB,yCAAsB,CAAA;IACtB,yCAAsB,CAAA;IACtB,yCAAsB,CAAA;IACtB,8CAA2B,CAAA;IAC3B,4CAAyB,CAAA;IACzB,wCAAqB,CAAA;AACvB,CAAC,EAVW,eAAe,+BAAf,eAAe,QAU1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionEvent.mjs","sourceRoot":"","sources":["../../src/ConnectionEvent.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,6CAA0B,CAAA;IAC1B,6DAA0C,CAAA;IAC1C,uCAAoB,CAAA;IACpB,yCAAsB,CAAA;IACtB,yCAAsB,CAAA;IACtB,yCAAsB,CAAA;IACtB,8CAA2B,CAAA;IAC3B,4CAAyB,CAAA;IACzB,wCAAqB,CAAA;AACvB,CAAC,EAVW,eAAe,KAAf,eAAe,QAU1B"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ConnectionSender = void 0;
|
|
4
|
-
const lib_1 = require("@welshman/lib");
|
|
5
|
-
const util_1 = require("@welshman/util");
|
|
6
|
-
const Socket_1 = require("./Socket.cjs");
|
|
7
|
-
const ConnectionAuth_1 = require("./ConnectionAuth.cjs");
|
|
8
|
-
class ConnectionSender {
|
|
9
|
-
constructor(cxn) {
|
|
10
|
-
this.cxn = cxn;
|
|
11
|
-
this.push = (message) => {
|
|
12
|
-
this.worker.push(message);
|
|
13
|
-
};
|
|
14
|
-
this.worker = new lib_1.Worker({
|
|
15
|
-
shouldDefer: ([verb, ...extra]) => {
|
|
16
|
-
// Always send CLOSE to clean up pending requests, even if the connection is closed
|
|
17
|
-
if (verb === 'CLOSE')
|
|
18
|
-
return false;
|
|
19
|
-
// If we're not connected, nothing we can do
|
|
20
|
-
if (cxn.socket.status !== Socket_1.SocketStatus.Open)
|
|
21
|
-
return true;
|
|
22
|
-
// Always allow sending AUTH
|
|
23
|
-
if (verb === 'AUTH')
|
|
24
|
-
return false;
|
|
25
|
-
// Always allow sending join requests
|
|
26
|
-
if (verb === 'EVENT' && extra[0].kind === util_1.AUTH_JOIN)
|
|
27
|
-
return false;
|
|
28
|
-
// Wait for auth
|
|
29
|
-
if (![ConnectionAuth_1.AuthStatus.None, ConnectionAuth_1.AuthStatus.Ok].includes(cxn.auth.status))
|
|
30
|
-
return true;
|
|
31
|
-
// Limit concurrent requests
|
|
32
|
-
if (verb === 'REQ')
|
|
33
|
-
return cxn.state.pendingRequests.size >= 8;
|
|
34
|
-
return false;
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
this.worker.addGlobalHandler(([verb, ...extra]) => {
|
|
38
|
-
// If we ended up handling a CLOSE before we handled the REQ, don't send the REQ
|
|
39
|
-
if (verb === 'CLOSE') {
|
|
40
|
-
this.worker.buffer = this.worker.buffer.filter(m => !(m[0] === 'REQ' && m[1] === extra[0]));
|
|
41
|
-
}
|
|
42
|
-
// Re-check socket status since we let CLOSE through
|
|
43
|
-
if (cxn.socket.status === Socket_1.SocketStatus.Open) {
|
|
44
|
-
cxn.socket.send([verb, ...extra]);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
exports.ConnectionSender = ConnectionSender;
|
|
50
|
-
//# sourceMappingURL=ConnectionSender.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionSender.cjs","sourceRoot":"","sources":["../../src/ConnectionSender.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AACpC,yCAAwC;AACxC,yCAAqC;AAGrC,yDAA2C;AAE3C,MAAa,gBAAgB;IAG3B,YAAqB,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;QAsCpC,SAAI,GAAG,CAAC,OAAgB,EAAE,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3B,CAAC,CAAA;QAvCC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAM,CAAC;YACvB,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAU,EAAE,EAAE;gBACzC,mFAAmF;gBACnF,IAAI,IAAI,KAAK,OAAO;oBAAE,OAAO,KAAK,CAAA;gBAElC,4CAA4C;gBAC5C,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,qBAAY,CAAC,IAAI;oBAAE,OAAO,IAAI,CAAA;gBAExD,4BAA4B;gBAC5B,IAAI,IAAI,KAAK,MAAM;oBAAE,OAAO,KAAK,CAAA;gBAEjC,qCAAqC;gBACrC,IAAI,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAS;oBAAE,OAAO,KAAK,CAAA;gBAEjE,gBAAgB;gBAChB,IAAI,CAAC,CAAC,2BAAU,CAAC,IAAI,EAAE,2BAAU,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;oBAAE,OAAO,IAAI,CAAA;gBAE5E,4BAA4B;gBAC5B,IAAI,IAAI,KAAK,KAAK;oBAAE,OAAO,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAA;gBAE9D,OAAO,KAAK,CAAA;YACd,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAU,EAAE,EAAE;YACzD,gFAAgF;YAChF,IAAI,IAAI,KAAK,OAAO,EAAE;gBACpB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;aAC5F;YAED,oDAAoD;YACpD,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,qBAAY,CAAC,IAAI,EAAE;gBAC3C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;aAClC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CAKF;AA5CD,4CA4CC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionSender.mjs","sourceRoot":"","sources":["../../src/ConnectionSender.ts"],"names":[],"mappings":"OAAO,EAAC,MAAM,EAAC,MAAM,eAAe;OAC7B,EAAC,SAAS,EAAC,MAAM,gBAAgB;OACjC,EAAC,YAAY,EAAC;OAGd,EAAC,UAAU,EAAC;AAEnB,MAAM,OAAO,gBAAgB;IAG3B,YAAqB,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;QAsCpC,SAAI,GAAG,CAAC,OAAgB,EAAE,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3B,CAAC,CAAA;QAvCC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAU,EAAE,EAAE;gBACzC,mFAAmF;gBACnF,IAAI,IAAI,KAAK,OAAO;oBAAE,OAAO,KAAK,CAAA;gBAElC,4CAA4C;gBAC5C,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC,IAAI;oBAAE,OAAO,IAAI,CAAA;gBAExD,4BAA4B;gBAC5B,IAAI,IAAI,KAAK,MAAM;oBAAE,OAAO,KAAK,CAAA;gBAEjC,qCAAqC;gBACrC,IAAI,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;oBAAE,OAAO,KAAK,CAAA;gBAEjE,gBAAgB;gBAChB,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;oBAAE,OAAO,IAAI,CAAA;gBAE5E,4BAA4B;gBAC5B,IAAI,IAAI,KAAK,KAAK;oBAAE,OAAO,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAA;gBAE9D,OAAO,KAAK,CAAA;YACd,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAU,EAAE,EAAE;YACzD,gFAAgF;YAChF,IAAI,IAAI,KAAK,OAAO,EAAE;gBACpB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;aAC5F;YAED,oDAAoD;YACpD,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC,IAAI,EAAE;gBAC3C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;aAClC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CAKF"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ConnectionState = void 0;
|
|
4
|
-
const lib_1 = require("@welshman/lib");
|
|
5
|
-
const util_1 = require("@welshman/util");
|
|
6
|
-
const ConnectionEvent_1 = require("./ConnectionEvent.cjs");
|
|
7
|
-
class ConnectionState {
|
|
8
|
-
constructor(cxn) {
|
|
9
|
-
this.cxn = cxn;
|
|
10
|
-
this.pendingPublishes = new Map();
|
|
11
|
-
this.pendingRequests = new Map();
|
|
12
|
-
cxn.sender.worker.addGlobalHandler(([verb, ...extra]) => {
|
|
13
|
-
if (verb === 'REQ') {
|
|
14
|
-
const [reqId, ...filters] = extra;
|
|
15
|
-
this.pendingRequests.set(reqId, { filters, sent: Date.now() });
|
|
16
|
-
}
|
|
17
|
-
if (verb === 'CLOSE') {
|
|
18
|
-
const [reqId] = extra;
|
|
19
|
-
this.pendingRequests.delete(reqId);
|
|
20
|
-
}
|
|
21
|
-
if (verb === 'EVENT') {
|
|
22
|
-
const [event] = extra;
|
|
23
|
-
this.pendingPublishes.set(event.id, { sent: Date.now(), event });
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
cxn.socket.worker.addGlobalHandler(([verb, ...extra]) => {
|
|
27
|
-
var _a;
|
|
28
|
-
if (verb === 'OK') {
|
|
29
|
-
const [eventId, _ok, notice] = extra;
|
|
30
|
-
const pub = this.pendingPublishes.get(eventId);
|
|
31
|
-
if (!pub)
|
|
32
|
-
return;
|
|
33
|
-
// Re-enqueue pending events when auth challenge is received
|
|
34
|
-
if ((notice === null || notice === void 0 ? void 0 : notice.startsWith('auth-required:')) && pub.event.kind !== util_1.AUTH_JOIN) {
|
|
35
|
-
this.cxn.send(['EVENT', pub.event]);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
this.pendingPublishes.delete(eventId);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
if (verb === 'EOSE') {
|
|
42
|
-
const [reqId] = extra;
|
|
43
|
-
const req = this.pendingRequests.get(reqId);
|
|
44
|
-
if (req) {
|
|
45
|
-
req.eose = true;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (verb === 'CLOSED') {
|
|
49
|
-
const [reqId] = extra;
|
|
50
|
-
// Re-enqueue pending reqs when auth challenge is received
|
|
51
|
-
if ((_a = extra[1]) === null || _a === void 0 ? void 0 : _a.startsWith('auth-required:')) {
|
|
52
|
-
const req = this.pendingRequests.get(reqId);
|
|
53
|
-
if (req) {
|
|
54
|
-
this.cxn.send(['REQ', reqId, ...req.filters]);
|
|
55
|
-
}
|
|
56
|
-
if (extra[1]) {
|
|
57
|
-
this.cxn.emit(ConnectionEvent_1.ConnectionEvent.Notice, extra[1]);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
this.pendingRequests.delete(reqId);
|
|
61
|
-
}
|
|
62
|
-
if (verb === 'NOTICE') {
|
|
63
|
-
const [notice] = extra;
|
|
64
|
-
this.cxn.emit(ConnectionEvent_1.ConnectionEvent.Notice, notice);
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
// Whenever we reconnect, re-enqueue pending stuff. Delay this so that if a connection
|
|
68
|
-
// is flapping we're not sending too much noise.
|
|
69
|
-
cxn.on(ConnectionEvent_1.ConnectionEvent.Close, async (cxn) => {
|
|
70
|
-
await (0, lib_1.sleep)(10000);
|
|
71
|
-
if (this.pendingRequests.size > 0 || this.pendingPublishes.size > 0) {
|
|
72
|
-
this.cxn.open();
|
|
73
|
-
}
|
|
74
|
-
for (const [reqId, req] of this.pendingRequests.entries()) {
|
|
75
|
-
this.cxn.send(['REQ', reqId, ...req.filters]);
|
|
76
|
-
}
|
|
77
|
-
for (const [_, pub] of this.pendingPublishes.entries()) {
|
|
78
|
-
this.cxn.send(['EVENT', pub.event]);
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
exports.ConnectionState = ConnectionState;
|
|
84
|
-
//# sourceMappingURL=ConnectionState.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionState.cjs","sourceRoot":"","sources":["../../src/ConnectionState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionState.mjs","sourceRoot":"","sources":["../../src/ConnectionState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ConnectionStats = void 0;
|
|
4
|
-
const ConnectionEvent_1 = require("./ConnectionEvent.cjs");
|
|
5
|
-
class ConnectionStats {
|
|
6
|
-
constructor(cxn) {
|
|
7
|
-
this.cxn = cxn;
|
|
8
|
-
this.openCount = 0;
|
|
9
|
-
this.closeCount = 0;
|
|
10
|
-
this.errorCount = 0;
|
|
11
|
-
this.publishCount = 0;
|
|
12
|
-
this.requestCount = 0;
|
|
13
|
-
this.eventCount = 0;
|
|
14
|
-
this.lastOpen = 0;
|
|
15
|
-
this.lastClose = 0;
|
|
16
|
-
this.lastError = 0;
|
|
17
|
-
this.lastPublish = 0;
|
|
18
|
-
this.lastRequest = 0;
|
|
19
|
-
this.lastEvent = 0;
|
|
20
|
-
this.lastAuth = 0;
|
|
21
|
-
this.publishTimer = 0;
|
|
22
|
-
this.publishSuccessCount = 0;
|
|
23
|
-
this.publishFailureCount = 0;
|
|
24
|
-
this.eoseCount = 0;
|
|
25
|
-
this.eoseTimer = 0;
|
|
26
|
-
this.noticeCount = 0;
|
|
27
|
-
this.getRequestSpeed = () => this.eoseCount ? this.eoseTimer / this.eoseCount : 0;
|
|
28
|
-
this.getPublishSpeed = () => this.publishSuccessCount ? this.publishTimer / this.publishSuccessCount : 0;
|
|
29
|
-
cxn.on(ConnectionEvent_1.ConnectionEvent.Open, (cxn) => {
|
|
30
|
-
this.openCount++;
|
|
31
|
-
this.lastOpen = Date.now();
|
|
32
|
-
});
|
|
33
|
-
cxn.on(ConnectionEvent_1.ConnectionEvent.Close, (cxn) => {
|
|
34
|
-
this.closeCount++;
|
|
35
|
-
this.lastClose = Date.now();
|
|
36
|
-
});
|
|
37
|
-
cxn.on(ConnectionEvent_1.ConnectionEvent.Error, (cxn) => {
|
|
38
|
-
this.errorCount++;
|
|
39
|
-
this.lastError = Date.now();
|
|
40
|
-
});
|
|
41
|
-
cxn.on(ConnectionEvent_1.ConnectionEvent.Send, (cxn, [verb]) => {
|
|
42
|
-
if (verb === 'REQ') {
|
|
43
|
-
this.requestCount++;
|
|
44
|
-
this.lastRequest = Date.now();
|
|
45
|
-
}
|
|
46
|
-
if (verb === 'EVENT') {
|
|
47
|
-
this.publishCount++;
|
|
48
|
-
this.lastPublish = Date.now();
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
cxn.on(ConnectionEvent_1.ConnectionEvent.Receive, (cxn, [verb, ...extra]) => {
|
|
52
|
-
if (verb === 'OK') {
|
|
53
|
-
const pub = this.cxn.state.pendingPublishes.get(extra[0]);
|
|
54
|
-
if (pub) {
|
|
55
|
-
this.publishTimer += Date.now() - pub.sent;
|
|
56
|
-
}
|
|
57
|
-
if (extra[1]) {
|
|
58
|
-
this.publishSuccessCount++;
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
this.publishFailureCount++;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (verb === 'AUTH') {
|
|
65
|
-
this.lastAuth = Date.now();
|
|
66
|
-
}
|
|
67
|
-
if (verb === 'EVENT') {
|
|
68
|
-
this.eventCount++;
|
|
69
|
-
this.lastEvent = Date.now();
|
|
70
|
-
}
|
|
71
|
-
if (verb === 'EOSE') {
|
|
72
|
-
const request = this.cxn.state.pendingRequests.get(extra[0]);
|
|
73
|
-
// Only count the first eose
|
|
74
|
-
if (request && !request.eose) {
|
|
75
|
-
this.eoseCount++;
|
|
76
|
-
this.eoseTimer += Date.now() - request.sent;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
if (verb === 'NOTICE') {
|
|
80
|
-
this.noticeCount++;
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
exports.ConnectionStats = ConnectionStats;
|
|
86
|
-
//# sourceMappingURL=ConnectionStats.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionStats.cjs","sourceRoot":"","sources":["../../src/ConnectionStats.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionStats.mjs","sourceRoot":"","sources":["../../src/ConnectionStats.ts"],"names":[],"mappings":"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"}
|