@enbox/dwn-server 0.0.2 → 0.0.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/README.md +13 -13
- package/dist/esm/src/config.d.ts +2 -6
- package/dist/esm/src/config.d.ts.map +1 -1
- package/dist/esm/src/config.js +4 -8
- package/dist/esm/src/config.js.map +1 -1
- package/dist/esm/src/connection/connection-manager.d.ts +9 -9
- package/dist/esm/src/connection/connection-manager.d.ts.map +1 -1
- package/dist/esm/src/connection/connection-manager.js +5 -3
- package/dist/esm/src/connection/connection-manager.js.map +1 -1
- package/dist/esm/src/connection/socket-connection.d.ts +18 -17
- package/dist/esm/src/connection/socket-connection.d.ts.map +1 -1
- package/dist/esm/src/connection/socket-connection.js +26 -35
- package/dist/esm/src/connection/socket-connection.js.map +1 -1
- package/dist/esm/src/dwn-error.js.map +1 -1
- package/dist/esm/src/dwn-server.d.ts +5 -6
- package/dist/esm/src/dwn-server.d.ts.map +1 -1
- package/dist/esm/src/dwn-server.js +3 -14
- package/dist/esm/src/dwn-server.js.map +1 -1
- package/dist/esm/src/http-api.d.ts +9 -11
- package/dist/esm/src/http-api.d.ts.map +1 -1
- package/dist/esm/src/http-api.js +450 -375
- package/dist/esm/src/http-api.js.map +1 -1
- package/dist/esm/src/json-rpc-handlers/dwn/process-message.d.ts.map +1 -1
- package/dist/esm/src/json-rpc-handlers/dwn/process-message.js +3 -3
- package/dist/esm/src/json-rpc-handlers/dwn/process-message.js.map +1 -1
- package/dist/esm/src/json-rpc-handlers/subscription/close.d.ts.map +1 -1
- package/dist/esm/src/json-rpc-handlers/subscription/close.js.map +1 -1
- package/dist/esm/src/json-rpc-socket.d.ts +1 -1
- package/dist/esm/src/json-rpc-socket.d.ts.map +1 -1
- package/dist/esm/src/json-rpc-socket.js +1 -1
- package/dist/esm/src/json-rpc-socket.js.map +1 -1
- package/dist/esm/src/lib/json-rpc-router.d.ts +3 -4
- package/dist/esm/src/lib/json-rpc-router.d.ts.map +1 -1
- package/dist/esm/src/lib/json-rpc-router.js.map +1 -1
- package/dist/esm/src/lib/json-rpc.d.ts.map +1 -1
- package/dist/esm/src/lib/json-rpc.js.map +1 -1
- package/dist/esm/src/main.js +0 -0
- package/dist/esm/src/metrics.d.ts +1 -1
- package/dist/esm/src/metrics.js.map +1 -1
- package/dist/esm/src/registration/proof-of-work-manager.d.ts +1 -1
- package/dist/esm/src/registration/proof-of-work-manager.d.ts.map +1 -1
- package/dist/esm/src/registration/proof-of-work-manager.js +3 -3
- package/dist/esm/src/registration/proof-of-work-manager.js.map +1 -1
- package/dist/esm/src/registration/registration-manager.d.ts +3 -3
- package/dist/esm/src/registration/registration-manager.d.ts.map +1 -1
- package/dist/esm/src/registration/registration-manager.js +6 -6
- package/dist/esm/src/registration/registration-manager.js.map +1 -1
- package/dist/esm/src/registration/registration-store.d.ts +1 -1
- package/dist/esm/src/registration/registration-store.d.ts.map +1 -1
- package/dist/esm/src/registration/registration-store.js.map +1 -1
- package/dist/esm/src/storage.d.ts +2 -2
- package/dist/esm/src/storage.d.ts.map +1 -1
- package/dist/esm/src/storage.js +5 -4
- package/dist/esm/src/storage.js.map +1 -1
- package/dist/esm/src/web5-connect/sql-ttl-cache.d.ts.map +1 -1
- package/dist/esm/src/web5-connect/sql-ttl-cache.js +3 -2
- package/dist/esm/src/web5-connect/sql-ttl-cache.js.map +1 -1
- package/dist/esm/src/web5-connect/web5-connect-server.d.ts.map +1 -1
- package/dist/esm/src/web5-connect/web5-connect-server.js +2 -2
- package/dist/esm/src/web5-connect/web5-connect-server.js.map +1 -1
- package/dist/esm/src/ws-api.d.ts +2 -4
- package/dist/esm/src/ws-api.d.ts.map +1 -1
- package/dist/esm/src/ws-api.js +6 -17
- package/dist/esm/src/ws-api.js.map +1 -1
- package/dist/esm/tests/common-scenario-validator.d.ts.map +1 -1
- package/dist/esm/tests/common-scenario-validator.js +2 -3
- package/dist/esm/tests/common-scenario-validator.js.map +1 -1
- package/dist/esm/tests/connection/connection-manager.spec.js +11 -9
- package/dist/esm/tests/connection/connection-manager.spec.js.map +1 -1
- package/dist/esm/tests/connection/socket-connection.spec.js +40 -18
- package/dist/esm/tests/connection/socket-connection.spec.js.map +1 -1
- package/dist/esm/tests/cors/http-api.browser.js +1 -1
- package/dist/esm/tests/cors/http-api.browser.js.map +1 -1
- package/dist/esm/tests/dwn-process-message.spec.js +4 -4
- package/dist/esm/tests/dwn-process-message.spec.js.map +1 -1
- package/dist/esm/tests/dwn-server.spec.js +8 -9
- package/dist/esm/tests/dwn-server.spec.js.map +1 -1
- package/dist/esm/tests/http-api.spec.js +92 -85
- package/dist/esm/tests/http-api.spec.js.map +1 -1
- package/dist/esm/tests/json-rpc-socket.spec.js +11 -9
- package/dist/esm/tests/json-rpc-socket.spec.js.map +1 -1
- package/dist/esm/tests/plugins/data-store-sqlite.d.ts +2 -2
- package/dist/esm/tests/plugins/data-store-sqlite.js +2 -2
- package/dist/esm/tests/plugins/event-log-sqlite.d.ts +2 -2
- package/dist/esm/tests/plugins/event-log-sqlite.js +2 -2
- package/dist/esm/tests/plugins/event-stream-in-memory.d.ts +2 -2
- package/dist/esm/tests/plugins/event-stream-in-memory.d.ts.map +1 -1
- package/dist/esm/tests/plugins/event-stream-in-memory.js +1 -1
- package/dist/esm/tests/plugins/event-stream-in-memory.js.map +1 -1
- package/dist/esm/tests/plugins/message-store-sqlite.d.ts +2 -2
- package/dist/esm/tests/plugins/message-store-sqlite.d.ts.map +1 -1
- package/dist/esm/tests/plugins/message-store-sqlite.js +2 -2
- package/dist/esm/tests/plugins/message-store-sqlite.js.map +1 -1
- package/dist/esm/tests/plugins/resumable-task-store-sqlite.d.ts +2 -2
- package/dist/esm/tests/plugins/resumable-task-store-sqlite.d.ts.map +1 -1
- package/dist/esm/tests/plugins/resumable-task-store-sqlite.js +2 -2
- package/dist/esm/tests/plugins/resumable-task-store-sqlite.js.map +1 -1
- package/dist/esm/tests/process-handler.spec.js +6 -6
- package/dist/esm/tests/process-handler.spec.js.map +1 -1
- package/dist/esm/tests/registration/proof-of-work-manager.spec.js +3 -4
- package/dist/esm/tests/registration/proof-of-work-manager.spec.js.map +1 -1
- package/dist/esm/tests/rpc-subscribe-close.spec.js +1 -1
- package/dist/esm/tests/rpc-subscribe-close.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/dynamic-plugin-loading.spec.js +11 -10
- package/dist/esm/tests/scenarios/dynamic-plugin-loading.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/registration.spec.js +16 -12
- package/dist/esm/tests/scenarios/registration.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/web5-connect.spec.js +12 -8
- package/dist/esm/tests/scenarios/web5-connect.spec.js.map +1 -1
- package/dist/esm/tests/test-dwn.d.ts.map +1 -1
- package/dist/esm/tests/test-dwn.js +9 -15
- package/dist/esm/tests/test-dwn.js.map +1 -1
- package/dist/esm/tests/utils.d.ts +3 -6
- package/dist/esm/tests/utils.d.ts.map +1 -1
- package/dist/esm/tests/utils.js +9 -18
- package/dist/esm/tests/utils.js.map +1 -1
- package/dist/esm/tests/ws-api.spec.js +28 -23
- package/dist/esm/tests/ws-api.spec.js.map +1 -1
- package/package.json +25 -44
- package/src/config.ts +15 -19
- package/src/connection/connection-manager.ts +18 -12
- package/src/connection/socket-connection.ts +52 -57
- package/src/dwn-error.ts +2 -2
- package/src/dwn-server.ts +17 -30
- package/src/http-api.ts +499 -396
- package/src/json-rpc-handlers/dwn/process-message.ts +9 -10
- package/src/json-rpc-handlers/subscription/close.ts +4 -4
- package/src/json-rpc-socket.ts +3 -2
- package/src/lib/json-rpc-router.ts +5 -6
- package/src/lib/json-rpc.ts +6 -6
- package/src/metrics.ts +7 -7
- package/src/process-handlers.ts +5 -5
- package/src/registration/proof-of-work-manager.ts +11 -10
- package/src/registration/registration-manager.ts +23 -21
- package/src/registration/registration-store.ts +8 -7
- package/src/storage.ts +15 -13
- package/src/web5-connect/sql-ttl-cache.ts +5 -4
- package/src/web5-connect/web5-connect-server.ts +9 -8
- package/src/ws-api.ts +11 -26
- package/dist/cjs/index.js +0 -6811
- package/dist/cjs/package.json +0 -1
- package/dist/esm/src/lib/http-server-shutdown-handler.d.ts +0 -10
- package/dist/esm/src/lib/http-server-shutdown-handler.d.ts.map +0 -1
- package/dist/esm/src/lib/http-server-shutdown-handler.js +0 -65
- package/dist/esm/src/lib/http-server-shutdown-handler.js.map +0 -1
- package/src/lib/http-server-shutdown-handler.ts +0 -79
package/dist/cjs/package.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"type": "commonjs"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Server } from 'http';
|
|
2
|
-
export declare class HttpServerShutdownHandler {
|
|
3
|
-
private tcpSockets;
|
|
4
|
-
private tcpSocketId;
|
|
5
|
-
private server;
|
|
6
|
-
private stopping;
|
|
7
|
-
constructor(server: Server);
|
|
8
|
-
stop(callback: any): void;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=http-server-shutdown-handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-server-shutdown-handler.d.ts","sourceRoot":"","sources":["../../../../src/lib/http-server-shutdown-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAKnC,qBAAa,yBAAyB;IACpC,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAU;gBAEd,MAAM,EAAE,MAAM;IA4C1B,IAAI,CAAC,QAAQ,KAAA,GAAG,IAAI;CAuBrB"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
const SOCKET_IDLE_SYMBOL = Symbol('idle');
|
|
2
|
-
export class HttpServerShutdownHandler {
|
|
3
|
-
tcpSockets;
|
|
4
|
-
tcpSocketId;
|
|
5
|
-
server;
|
|
6
|
-
stopping;
|
|
7
|
-
constructor(server) {
|
|
8
|
-
this.tcpSockets = {};
|
|
9
|
-
this.tcpSocketId = 1;
|
|
10
|
-
this.server = server;
|
|
11
|
-
this.stopping = false;
|
|
12
|
-
// This event is emitted when a new TCP stream is established
|
|
13
|
-
this.server.on('connection', (socket) => {
|
|
14
|
-
// set socket to idle. this same socket will be accessible within the `http.on('request', (req, res))` event listener
|
|
15
|
-
// as `request.connection`
|
|
16
|
-
socket[SOCKET_IDLE_SYMBOL] = true;
|
|
17
|
-
const tcpSocketId = this.tcpSocketId++;
|
|
18
|
-
this.tcpSockets[tcpSocketId] = socket;
|
|
19
|
-
// This event is emitted when a tcp stream is `destroy`ed
|
|
20
|
-
socket.on('close', () => {
|
|
21
|
-
delete this.tcpSockets[tcpSocketId];
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
// Emitted each time there is a request. There may be multiple requests
|
|
25
|
-
// per connection (in the case of HTTP Keep-Alive connections).
|
|
26
|
-
this.server.on('request', (request, response) => {
|
|
27
|
-
const { socket } = request;
|
|
28
|
-
// set __idle to false because this socket is being used for an incoming request
|
|
29
|
-
socket[SOCKET_IDLE_SYMBOL] = false;
|
|
30
|
-
// Emitted when the response has been sent. More specifically, this event is emitted
|
|
31
|
-
// when the last segment of the response headers and body have been handed off to the
|
|
32
|
-
// operating system for transmission over the network.
|
|
33
|
-
// It does not imply that the client has received anything yet.
|
|
34
|
-
response.on('finish', () => {
|
|
35
|
-
// set __idle back to true because the socket has finished facilitating a request. This socket may be used again without being
|
|
36
|
-
// destroyed if keep-alive is being leveraged
|
|
37
|
-
socket[SOCKET_IDLE_SYMBOL] = true;
|
|
38
|
-
if (this.stopping) {
|
|
39
|
-
socket.destroy();
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
stop(callback) {
|
|
45
|
-
this.stopping = true;
|
|
46
|
-
// Stops the server from accepting new connections and keeps existing connections. This function is asynchronous,
|
|
47
|
-
// the server is finally closed when all connections are ended and the server emits a 'close' event.
|
|
48
|
-
// The optional callback will be called once the 'close' event occurs.
|
|
49
|
-
// The callback will be called with an Error as its only argument if the server was not open when close is called.
|
|
50
|
-
this.server.close(() => {
|
|
51
|
-
this.tcpSocketId = 0;
|
|
52
|
-
this.stopping = false;
|
|
53
|
-
callback();
|
|
54
|
-
});
|
|
55
|
-
// close all idle sockets. the remaining sockets facilitating active requests
|
|
56
|
-
// will be closed after they've served responses back.
|
|
57
|
-
for (const tcpSocketId in this.tcpSockets) {
|
|
58
|
-
const socket = this.tcpSockets[tcpSocketId];
|
|
59
|
-
if (socket[SOCKET_IDLE_SYMBOL]) {
|
|
60
|
-
socket.destroy();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=http-server-shutdown-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-server-shutdown-handler.js","sourceRoot":"","sources":["../../../../src/lib/http-server-shutdown-handler.ts"],"names":[],"mappings":"AAGA,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAE1C,MAAM,OAAO,yBAAyB;IAC5B,UAAU,CAAiC;IAC3C,WAAW,CAAS;IACpB,MAAM,CAAS;IACf,QAAQ,CAAU;IAE1B,YAAY,MAAc;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,6DAA6D;QAC7D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;YACtC,qHAAqH;YACrH,0BAA0B;YAC1B,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;YAEtC,yDAAyD;YACzD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,uEAAuE;QACvE,+DAA+D;QAC/D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;YAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;YAE3B,gFAAgF;YAChF,MAAM,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC;YAEnC,oFAAoF;YACpF,qFAAqF;YACrF,sDAAsD;YACtD,+DAA+D;YAC/D,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACzB,8HAA8H;gBAC9H,6CAA6C;gBAC7C,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;gBAElC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,QAAQ;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,iHAAiH;QACjH,oGAAoG;QACpG,sEAAsE;QACtE,kHAAkH;QAClH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,6EAA6E;QAC7E,sDAAsD;QACtD,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAE5C,IAAI,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import type { Server } from 'http';
|
|
2
|
-
import type { Socket } from 'net';
|
|
3
|
-
|
|
4
|
-
const SOCKET_IDLE_SYMBOL = Symbol('idle');
|
|
5
|
-
|
|
6
|
-
export class HttpServerShutdownHandler {
|
|
7
|
-
private tcpSockets: { [socketId: number]: Socket };
|
|
8
|
-
private tcpSocketId: number;
|
|
9
|
-
private server: Server;
|
|
10
|
-
private stopping: boolean;
|
|
11
|
-
|
|
12
|
-
constructor(server: Server) {
|
|
13
|
-
this.tcpSockets = {};
|
|
14
|
-
this.tcpSocketId = 1;
|
|
15
|
-
this.server = server;
|
|
16
|
-
this.stopping = false;
|
|
17
|
-
|
|
18
|
-
// This event is emitted when a new TCP stream is established
|
|
19
|
-
this.server.on('connection', (socket) => {
|
|
20
|
-
// set socket to idle. this same socket will be accessible within the `http.on('request', (req, res))` event listener
|
|
21
|
-
// as `request.connection`
|
|
22
|
-
socket[SOCKET_IDLE_SYMBOL] = true;
|
|
23
|
-
const tcpSocketId = this.tcpSocketId++;
|
|
24
|
-
this.tcpSockets[tcpSocketId] = socket;
|
|
25
|
-
|
|
26
|
-
// This event is emitted when a tcp stream is `destroy`ed
|
|
27
|
-
socket.on('close', () => {
|
|
28
|
-
delete this.tcpSockets[tcpSocketId];
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
// Emitted each time there is a request. There may be multiple requests
|
|
33
|
-
// per connection (in the case of HTTP Keep-Alive connections).
|
|
34
|
-
this.server.on('request', (request, response) => {
|
|
35
|
-
const { socket } = request;
|
|
36
|
-
|
|
37
|
-
// set __idle to false because this socket is being used for an incoming request
|
|
38
|
-
socket[SOCKET_IDLE_SYMBOL] = false;
|
|
39
|
-
|
|
40
|
-
// Emitted when the response has been sent. More specifically, this event is emitted
|
|
41
|
-
// when the last segment of the response headers and body have been handed off to the
|
|
42
|
-
// operating system for transmission over the network.
|
|
43
|
-
// It does not imply that the client has received anything yet.
|
|
44
|
-
response.on('finish', () => {
|
|
45
|
-
// set __idle back to true because the socket has finished facilitating a request. This socket may be used again without being
|
|
46
|
-
// destroyed if keep-alive is being leveraged
|
|
47
|
-
socket[SOCKET_IDLE_SYMBOL] = true;
|
|
48
|
-
|
|
49
|
-
if (this.stopping) {
|
|
50
|
-
socket.destroy();
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
stop(callback): void {
|
|
57
|
-
this.stopping = true;
|
|
58
|
-
|
|
59
|
-
// Stops the server from accepting new connections and keeps existing connections. This function is asynchronous,
|
|
60
|
-
// the server is finally closed when all connections are ended and the server emits a 'close' event.
|
|
61
|
-
// The optional callback will be called once the 'close' event occurs.
|
|
62
|
-
// The callback will be called with an Error as its only argument if the server was not open when close is called.
|
|
63
|
-
this.server.close(() => {
|
|
64
|
-
this.tcpSocketId = 0;
|
|
65
|
-
this.stopping = false;
|
|
66
|
-
callback();
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
// close all idle sockets. the remaining sockets facilitating active requests
|
|
70
|
-
// will be closed after they've served responses back.
|
|
71
|
-
for (const tcpSocketId in this.tcpSockets) {
|
|
72
|
-
const socket = this.tcpSockets[tcpSocketId];
|
|
73
|
-
|
|
74
|
-
if (socket[SOCKET_IDLE_SYMBOL]) {
|
|
75
|
-
socket.destroy();
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|