@roj-ai/transport 0.1.36 → 0.2.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/client/index.d.ts +2 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/core/connection.d.ts +11 -0
- package/dist/core/connection.d.ts.map +1 -1
- package/dist/core/connection.js +26 -6
- package/dist/core/connection.js.map +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/protocol.d.ts +12 -117
- package/dist/core/protocol.d.ts.map +1 -1
- package/dist/core/protocol.js +13 -60
- package/dist/core/protocol.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/package.json +4 -2
- package/src/client/index.ts +2 -2
- package/src/core/connection.ts +27 -6
- package/src/core/index.ts +2 -16
- package/src/core/protocol.ts +25 -208
- package/src/index.ts +3 -17
- package/src/server/index.ts +2 -2
- package/src/__tests__/integration.test.ts +0 -443
- package/src/client/client-connection.test.ts +0 -146
- package/src/core/protocol.test.ts +0 -235
- package/src/core/router.test.ts +0 -248
package/dist/client/index.d.ts
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { ClientConnection, createClientConnection } from './client-connection.js';
|
|
7
7
|
export type { ClientConnectionConfig } from './client-connection.js';
|
|
8
|
-
export type { ConnectionState, HandlerContext, Protocol,
|
|
9
|
-
export { defineProtocol,
|
|
8
|
+
export type { ConnectionState, HandlerContext, Protocol, ProtocolDef, ProtocolHandlers, ProtocolNotifier, SafeParseResult, ReconnectOptions, TransportEvent, TransportEventListener, } from '../core/index.js';
|
|
9
|
+
export { defineProtocol, notification } from '../core/index.js';
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACjF,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAGpE,YAAY,EACX,eAAe,EACf,cAAc,EACd,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACjF,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAGpE,YAAY,EACX,eAAe,EACf,cAAc,EACd,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,sBAAsB,GACtB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/client/index.js
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* WebSocket client for connecting to server endpoints.
|
|
5
5
|
*/
|
|
6
6
|
export { ClientConnection, createClientConnection } from './client-connection.js';
|
|
7
|
-
export { defineProtocol,
|
|
7
|
+
export { defineProtocol, notification } from '../core/index.js';
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAiBjF,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAiBjF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -41,6 +41,17 @@ export declare abstract class Connection<TReceive extends ProtocolDef, TSend ext
|
|
|
41
41
|
get notify(): ProtocolNotifier<TSend>;
|
|
42
42
|
private sendBuffer;
|
|
43
43
|
private readonly maxBufferSize;
|
|
44
|
+
private droppedSinceLastFlush;
|
|
45
|
+
/**
|
|
46
|
+
* Buffer one message, dropping the OLDEST on overflow.
|
|
47
|
+
*
|
|
48
|
+
* These are ephemeral notifications, so a stale one is worth less than a
|
|
49
|
+
* fresh one — the previous behaviour dropped the newest and kept a queue of
|
|
50
|
+
* 500 obsolete updates. Overflow is logged once per episode rather than per
|
|
51
|
+
* message: silently vanishing notifications leave a "the UI stopped
|
|
52
|
+
* updating" report with no server-side trace at all.
|
|
53
|
+
*/
|
|
54
|
+
private buffer;
|
|
44
55
|
send(data: string): boolean;
|
|
45
56
|
flushSendBuffer(): void;
|
|
46
57
|
clearSendBuffer(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/core/connection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAEzF;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,QAAQ,SAAS,WAAW,EAAE,KAAK,SAAS,WAAW;IACxF,eAAe,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACpC,YAAY,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;CAC9B;AAED;;;GAGG;AACH,8BAAsB,UAAU,CAAC,QAAQ,SAAS,WAAW,EAAE,KAAK,SAAS,WAAW;IACvF,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC5D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAGzD,SAAS,CAAC,KAAK,EAAE,eAAe,CAAiB;IACjD,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI,CAAO;IACtC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAA;IAC9B,SAAS,CAAC,cAAc,8BAAoC;gBAEhD,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAerD,QAAQ,IAAI,eAAe;IAI3B,WAAW,IAAI,OAAO;IAItB,eAAe,IAAI,MAAM;IAIzB,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI;IAIhE;;;OAGG;IACH,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIzD,IAAI,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAUpC;IAMD,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/core/connection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAEzF;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,QAAQ,SAAS,WAAW,EAAE,KAAK,SAAS,WAAW;IACxF,eAAe,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACpC,YAAY,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;CAC9B;AAED;;;GAGG;AACH,8BAAsB,UAAU,CAAC,QAAQ,SAAS,WAAW,EAAE,KAAK,SAAS,WAAW;IACvF,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC5D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAGzD,SAAS,CAAC,KAAK,EAAE,eAAe,CAAiB;IACjD,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI,CAAO;IACtC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAA;IAC9B,SAAS,CAAC,cAAc,8BAAoC;gBAEhD,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAerD,QAAQ,IAAI,eAAe;IAI3B,WAAW,IAAI,OAAO;IAItB,eAAe,IAAI,MAAM;IAIzB,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI;IAIhE;;;OAGG;IACH,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIzD,IAAI,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAUpC;IAMD,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,OAAO,CAAC,qBAAqB,CAAI;IAEjC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM;IAWd,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAe3B,eAAe,IAAI,IAAI;IAiBvB,eAAe,IAAI,IAAI;IAIvB,IAAI,oBAAoB,IAAI,MAAM,CAEjC;IAED,EAAE,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,IAAI;IAKhD,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACjC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMpC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAcnD,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI;IAQ9C,SAAS,CAAC,UAAU,IAAI,IAAI;IAK5B,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAK3D,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAKtC,SAAS,CAAC,OAAO,IAAI,IAAI;IASzB,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;CAS3D"}
|
package/dist/core/connection.js
CHANGED
|
@@ -63,11 +63,29 @@ export class Connection {
|
|
|
63
63
|
// ============================================================================
|
|
64
64
|
sendBuffer = [];
|
|
65
65
|
maxBufferSize = 500;
|
|
66
|
+
droppedSinceLastFlush = 0;
|
|
67
|
+
/**
|
|
68
|
+
* Buffer one message, dropping the OLDEST on overflow.
|
|
69
|
+
*
|
|
70
|
+
* These are ephemeral notifications, so a stale one is worth less than a
|
|
71
|
+
* fresh one — the previous behaviour dropped the newest and kept a queue of
|
|
72
|
+
* 500 obsolete updates. Overflow is logged once per episode rather than per
|
|
73
|
+
* message: silently vanishing notifications leave a "the UI stopped
|
|
74
|
+
* updating" report with no server-side trace at all.
|
|
75
|
+
*/
|
|
76
|
+
buffer(data) {
|
|
77
|
+
if (this.sendBuffer.length >= this.maxBufferSize) {
|
|
78
|
+
this.sendBuffer.shift();
|
|
79
|
+
if (this.droppedSinceLastFlush === 0) {
|
|
80
|
+
console.warn(`[transport] send buffer full (${this.maxBufferSize}), dropping oldest notifications`);
|
|
81
|
+
}
|
|
82
|
+
this.droppedSinceLastFlush++;
|
|
83
|
+
}
|
|
84
|
+
this.sendBuffer.push(data);
|
|
85
|
+
}
|
|
66
86
|
send(data) {
|
|
67
87
|
if (!this.ws || this.ws.readyState !== WebSocketReadyState.OPEN) {
|
|
68
|
-
|
|
69
|
-
this.sendBuffer.push(data);
|
|
70
|
-
}
|
|
88
|
+
this.buffer(data);
|
|
71
89
|
return false;
|
|
72
90
|
}
|
|
73
91
|
this.flushSendBuffer();
|
|
@@ -76,9 +94,7 @@ export class Connection {
|
|
|
76
94
|
return true;
|
|
77
95
|
}
|
|
78
96
|
catch {
|
|
79
|
-
|
|
80
|
-
this.sendBuffer.push(data);
|
|
81
|
-
}
|
|
97
|
+
this.buffer(data);
|
|
82
98
|
return false;
|
|
83
99
|
}
|
|
84
100
|
}
|
|
@@ -95,6 +111,10 @@ export class Connection {
|
|
|
95
111
|
break;
|
|
96
112
|
}
|
|
97
113
|
}
|
|
114
|
+
if (this.sendBuffer.length === 0 && this.droppedSinceLastFlush > 0) {
|
|
115
|
+
console.warn(`[transport] send buffer drained; ${this.droppedSinceLastFlush} notification(s) were dropped`);
|
|
116
|
+
this.droppedSinceLastFlush = 0;
|
|
117
|
+
}
|
|
98
118
|
}
|
|
99
119
|
clearSendBuffer() {
|
|
100
120
|
this.sendBuffer.length = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/core/connection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAY3C;;;GAGG;AACH,MAAM,OAAgB,UAAU;IACZ,MAAM,CAAmC;IACzC,MAAM,CAAgC;IAEzD,QAAQ;IACE,KAAK,GAAoB,cAAc,CAAA;IACvC,EAAE,GAAsB,IAAI,CAAA;IAC5B,YAAY,CAAQ;IACpB,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAA;IAE5D,YAAY,MAAyC;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,YAAY,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;QAElF,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAC9B,MAAM,CAAC,eAAe,IAAI,IAAI,EAC9B,MAAM,CAAC,YAAY,IAAI,IAAI,CAC3B,CAAA;QACD,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAA;IACzE,CAAC;IAED,+EAA+E;IAC/E,aAAa;IACb,+EAA+E;IAE/E,QAAQ;QACP,OAAO,IAAI,CAAC,KAAK,CAAA;IAClB,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,CAAA;IAClC,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,YAAY,CAAA;IACzB,CAAC;IAED,WAAW,CAAC,QAA6C;QACxD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,QAA4B;QACjD,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,MAAM;QACT,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAA;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QACrE,CAAC;QACD,MAAM,QAAQ,GAA4B,EAAE,CAAA;QAC5C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,oBAAoB,EAAE,EAAE,CAAC;YACpD,QAAQ,CAAC,IAAc,CAAC,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAc,CAAC,CAAA;QACxF,CAAC;QACD,OAAO,QAAmC,CAAA;IAC3C,CAAC;IAED,+EAA+E;IAC/E,0CAA0C;IAC1C,+EAA+E;IAEvE,UAAU,GAAa,EAAE,CAAA;IAChB,aAAa,GAAW,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/core/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ export type { ConnectionState, ReconnectOptions, TransportEvent, TransportEventL
|
|
|
7
7
|
export { DEFAULT_RECONNECT_OPTIONS } from './types.js';
|
|
8
8
|
export type { Result } from './result.js';
|
|
9
9
|
export { Err, flatMapResult, isErr, isOk, mapResult, Ok, unwrapOr, unwrapOrThrow } from './result.js';
|
|
10
|
-
export { defineProtocol,
|
|
11
|
-
export type {
|
|
10
|
+
export { defineProtocol, notification } from './protocol.js';
|
|
11
|
+
export type { HandlerContext, InferInput, NotificationDef, NotificationHandler, NotificationNotifier, NotificationOptions, Protocol, ProtocolDef, ProtocolHandlers, ProtocolNotifier, SafeParseResult, } from './protocol.js';
|
|
12
12
|
export { createRouter, MessageRouter } from './router.js';
|
|
13
13
|
export type { MessageSender } from './router.js';
|
|
14
14
|
export { Connection } from './connection.js';
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAGtD,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGrG,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAGtD,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGrG,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5D,YAAY,EACX,cAAc,EACd,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GACf,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/core/index.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
export { DEFAULT_RECONNECT_OPTIONS } from './types.js';
|
|
7
7
|
export { Err, flatMapResult, isErr, isOk, mapResult, Ok, unwrapOr, unwrapOrThrow } from './result.js';
|
|
8
8
|
// Protocol Definition
|
|
9
|
-
export { defineProtocol,
|
|
9
|
+
export { defineProtocol, notification } from './protocol.js';
|
|
10
10
|
// Message Router
|
|
11
11
|
export { createRouter, MessageRouter } from './router.js';
|
|
12
12
|
// Connection Base
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAItD,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAErG,sBAAsB;AACtB,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAItD,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAErG,sBAAsB;AACtB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAe5D,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGzD,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/core/protocol.d.ts
CHANGED
|
@@ -1,20 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Protocol Definition API
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Type-safe definition of the notification protocols carried over the WebSocket
|
|
5
|
+
* link. Fire-and-forget only — request/response lives on HTTP `/rpc`.
|
|
6
6
|
*/
|
|
7
7
|
import { z } from 'zod';
|
|
8
|
-
import type { Result } from './result.js';
|
|
9
|
-
/**
|
|
10
|
-
* Definition for a request-response method.
|
|
11
|
-
*/
|
|
12
|
-
export interface MethodDef<TInput extends z.ZodTypeAny = z.ZodTypeAny, TOutput extends z.ZodTypeAny = z.ZodTypeAny, TError extends z.ZodTypeAny = z.ZodTypeAny> {
|
|
13
|
-
_type: 'method';
|
|
14
|
-
input: TInput;
|
|
15
|
-
output: TOutput;
|
|
16
|
-
error: TError;
|
|
17
|
-
}
|
|
18
8
|
/**
|
|
19
9
|
* Definition for a fire-and-forget notification.
|
|
20
10
|
*/
|
|
@@ -23,37 +13,17 @@ export interface NotificationDef<TInput extends z.ZodTypeAny = z.ZodTypeAny> {
|
|
|
23
13
|
input: TInput;
|
|
24
14
|
}
|
|
25
15
|
/**
|
|
26
|
-
*
|
|
27
|
-
*/
|
|
28
|
-
export type EndpointDef = MethodDef | NotificationDef;
|
|
29
|
-
/**
|
|
30
|
-
* Protocol definition - a collection of named endpoints.
|
|
16
|
+
* Protocol definition - a collection of named notifications.
|
|
31
17
|
*/
|
|
32
18
|
export interface ProtocolDef {
|
|
33
|
-
[key: string]:
|
|
19
|
+
[key: string]: NotificationDef;
|
|
34
20
|
}
|
|
35
21
|
/**
|
|
36
|
-
* Extract input type from
|
|
37
|
-
*/
|
|
38
|
-
export type InferInput<T extends EndpointDef> = T extends MethodDef<infer I, infer _O, infer _E> ? z.infer<I> : T extends NotificationDef<infer I> ? z.infer<I> : never;
|
|
39
|
-
/**
|
|
40
|
-
* Extract output type from a method definition.
|
|
41
|
-
*/
|
|
42
|
-
export type InferOutput<T extends MethodDef> = T extends MethodDef<infer _I, infer O, infer _E> ? z.infer<O> : never;
|
|
43
|
-
/**
|
|
44
|
-
* Extract error type from a method definition.
|
|
45
|
-
*/
|
|
46
|
-
export type InferError<T extends MethodDef> = T extends MethodDef<infer _I, infer _O, infer E> ? z.infer<E> : never;
|
|
47
|
-
/**
|
|
48
|
-
* Check if endpoint is a method.
|
|
49
|
-
*/
|
|
50
|
-
export type IsMethod<T extends EndpointDef> = T extends MethodDef ? true : false;
|
|
51
|
-
/**
|
|
52
|
-
* Check if endpoint is a notification.
|
|
22
|
+
* Extract input type from a notification definition.
|
|
53
23
|
*/
|
|
54
|
-
export type
|
|
24
|
+
export type InferInput<T extends NotificationDef> = z.infer<T['input']>;
|
|
55
25
|
/**
|
|
56
|
-
* Handler context passed to
|
|
26
|
+
* Handler context passed to notification handlers.
|
|
57
27
|
*/
|
|
58
28
|
export interface HandlerContext {
|
|
59
29
|
/** Connection identifier */
|
|
@@ -61,61 +31,26 @@ export interface HandlerContext {
|
|
|
61
31
|
/** Additional context data (platform-specific) */
|
|
62
32
|
[key: string]: unknown;
|
|
63
33
|
}
|
|
64
|
-
/**
|
|
65
|
-
* Handler for a method endpoint.
|
|
66
|
-
*/
|
|
67
|
-
export type MethodHandler<T extends MethodDef> = (input: InferInput<T>, ctx: HandlerContext) => Promise<Result<InferOutput<T>, InferError<T>>>;
|
|
68
34
|
/**
|
|
69
35
|
* Handler for a notification endpoint.
|
|
70
36
|
*/
|
|
71
37
|
export type NotificationHandler<T extends NotificationDef> = (input: InferInput<T>, ctx: HandlerContext) => Promise<void>;
|
|
72
|
-
/**
|
|
73
|
-
* Handler for an endpoint (method or notification).
|
|
74
|
-
*/
|
|
75
|
-
export type EndpointHandler<T extends EndpointDef> = T extends MethodDef ? MethodHandler<T> : T extends NotificationDef ? NotificationHandler<T> : never;
|
|
76
38
|
/**
|
|
77
39
|
* Handlers object for a protocol.
|
|
78
40
|
*/
|
|
79
41
|
export type ProtocolHandlers<T extends ProtocolDef> = {
|
|
80
|
-
[K in keyof T]:
|
|
42
|
+
[K in keyof T]: NotificationHandler<T[K]>;
|
|
81
43
|
};
|
|
82
|
-
/**
|
|
83
|
-
* Caller function for a method endpoint.
|
|
84
|
-
*/
|
|
85
|
-
export type MethodCaller<T extends MethodDef> = (input: InferInput<T>) => Promise<Result<InferOutput<T>, InferError<T>>>;
|
|
86
44
|
/**
|
|
87
45
|
* Notifier function for a notification endpoint.
|
|
88
46
|
*/
|
|
89
47
|
export type NotificationNotifier<T extends NotificationDef> = (input: InferInput<T>) => void;
|
|
90
48
|
/**
|
|
91
|
-
*
|
|
92
|
-
* Only includes method endpoints.
|
|
93
|
-
*/
|
|
94
|
-
export type ProtocolCaller<T extends ProtocolDef> = {
|
|
95
|
-
[K in keyof T as T[K] extends MethodDef ? K : never]: T[K] extends MethodDef ? MethodCaller<T[K]> : never;
|
|
96
|
-
};
|
|
97
|
-
/**
|
|
98
|
-
* Notifier object for notifications in a protocol.
|
|
99
|
-
* Only includes notification endpoints.
|
|
49
|
+
* Notifier object for the notifications in a protocol.
|
|
100
50
|
*/
|
|
101
51
|
export type ProtocolNotifier<T extends ProtocolDef> = {
|
|
102
|
-
[K in keyof T
|
|
52
|
+
[K in keyof T]: NotificationNotifier<T[K]>;
|
|
103
53
|
};
|
|
104
|
-
/**
|
|
105
|
-
* Options for method definition.
|
|
106
|
-
*/
|
|
107
|
-
export interface MethodOptions<TInput extends z.ZodTypeAny, TOutput extends z.ZodTypeAny, TError extends z.ZodTypeAny> {
|
|
108
|
-
/** Input schema (what the caller sends) */
|
|
109
|
-
input: TInput;
|
|
110
|
-
/** Output schema (what the handler returns on success) */
|
|
111
|
-
output: TOutput;
|
|
112
|
-
/** Error schema (what the handler returns on failure) */
|
|
113
|
-
error: TError;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Define a request-response method endpoint.
|
|
117
|
-
*/
|
|
118
|
-
export declare function method<TInput extends z.ZodTypeAny, TOutput extends z.ZodTypeAny, TError extends z.ZodTypeAny>(options: MethodOptions<TInput, TOutput, TError>): MethodDef<TInput, TOutput, TError>;
|
|
119
54
|
/**
|
|
120
55
|
* Options for notification definition.
|
|
121
56
|
*/
|
|
@@ -145,40 +80,16 @@ export type SafeParseResult<T> = {
|
|
|
145
80
|
export interface Protocol<T extends ProtocolDef> {
|
|
146
81
|
/** The protocol definition */
|
|
147
82
|
_def: T;
|
|
148
|
-
/** Get endpoint definition by name */
|
|
149
|
-
getEndpoint<K extends keyof T>(name: K): T[K];
|
|
150
|
-
/** Check if endpoint is a method */
|
|
151
|
-
isMethod(name: keyof T): boolean;
|
|
152
|
-
/** Check if endpoint is a notification */
|
|
153
|
-
isNotification(name: keyof T): boolean;
|
|
154
|
-
/** Get all method names */
|
|
155
|
-
getMethodNames(): (keyof T)[];
|
|
156
83
|
/** Get all notification names */
|
|
157
84
|
getNotificationNames(): (keyof T)[];
|
|
158
|
-
/** Validate input for
|
|
85
|
+
/** Validate input for a notification */
|
|
159
86
|
validateInput<K extends keyof T>(name: K, input: unknown): SafeParseResult<InferInput<T[K]>>;
|
|
160
|
-
/** Validate output for a method endpoint */
|
|
161
|
-
validateOutput<K extends keyof T>(name: K, output: unknown): SafeParseResult<unknown>;
|
|
162
87
|
}
|
|
163
88
|
/**
|
|
164
|
-
* Define a protocol with typed
|
|
89
|
+
* Define a protocol with typed notifications.
|
|
165
90
|
*
|
|
166
91
|
* @example
|
|
167
92
|
* ```typescript
|
|
168
|
-
* const clientProtocol = defineProtocol({
|
|
169
|
-
* subscribe: method({
|
|
170
|
-
* input: z.object({ sessionId: z.string() }),
|
|
171
|
-
* output: z.void(),
|
|
172
|
-
* error: z.object({ code: z.literal('SESSION_NOT_FOUND') }),
|
|
173
|
-
* }),
|
|
174
|
-
*
|
|
175
|
-
* userMessage: method({
|
|
176
|
-
* input: z.object({ sessionId: z.string(), content: z.string() }),
|
|
177
|
-
* output: z.object({ messageId: z.string() }),
|
|
178
|
-
* error: z.object({ code: z.literal('AGENT_BUSY') }),
|
|
179
|
-
* }),
|
|
180
|
-
* });
|
|
181
|
-
*
|
|
182
93
|
* const serverProtocol = defineProtocol({
|
|
183
94
|
* agentMessage: notification({
|
|
184
95
|
* input: z.object({ sessionId: z.string(), content: z.string() }),
|
|
@@ -187,20 +98,4 @@ export interface Protocol<T extends ProtocolDef> {
|
|
|
187
98
|
* ```
|
|
188
99
|
*/
|
|
189
100
|
export declare function defineProtocol<T extends ProtocolDef>(def: T): Protocol<T>;
|
|
190
|
-
/**
|
|
191
|
-
* Extract the protocol definition type from a Protocol.
|
|
192
|
-
*/
|
|
193
|
-
export type ExtractProtocolDef<T> = T extends Protocol<infer P> ? P : never;
|
|
194
|
-
/**
|
|
195
|
-
* Create a typed handlers object type for a protocol.
|
|
196
|
-
*/
|
|
197
|
-
export type HandlersFor<T extends Protocol<ProtocolDef>> = ProtocolHandlers<ExtractProtocolDef<T>>;
|
|
198
|
-
/**
|
|
199
|
-
* Create a typed caller object type for a protocol.
|
|
200
|
-
*/
|
|
201
|
-
export type CallerFor<T extends Protocol<ProtocolDef>> = ProtocolCaller<ExtractProtocolDef<T>>;
|
|
202
|
-
/**
|
|
203
|
-
* Create a typed notifier object type for a protocol.
|
|
204
|
-
*/
|
|
205
|
-
export type NotifierFor<T extends Protocol<ProtocolDef>> = ProtocolNotifier<ExtractProtocolDef<T>>;
|
|
206
101
|
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU;IAC1E,KAAK,EAAE,cAAc,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAC9B;AAMD;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,eAAe,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAMvE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,4BAA4B;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,kDAAkD;IAClD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,eAAe,IAAI,CAC5D,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EACpB,GAAG,EAAE,cAAc,KACf,OAAO,CAAC,IAAI,CAAC,CAAA;AAElB;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,WAAW,IAAI;KACpD,CAAC,IAAI,MAAM,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACzC,CAAA;AAMD;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,eAAe,IAAI,CAC7D,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAChB,IAAI,CAAA;AAET;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,WAAW,IAAI;KACpD,CAAC,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1C,CAAA;AAMD;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU;IAC/D,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU,EACvD,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAClC,eAAe,CAAC,MAAM,CAAC,CAKzB;AAMD;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAC1B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA;AAWjD;;GAEG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,WAAW;IAC9C,8BAA8B;IAC9B,IAAI,EAAE,CAAC,CAAA;IACP,iCAAiC;IACjC,oBAAoB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;IACnC,wCAAwC;IACxC,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAC5F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAYzE"}
|
package/dist/core/protocol.js
CHANGED
|
@@ -1,20 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Protocol Definition API
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Type-safe definition of the notification protocols carried over the WebSocket
|
|
5
|
+
* link. Fire-and-forget only — request/response lives on HTTP `/rpc`.
|
|
6
6
|
*/
|
|
7
|
-
/**
|
|
8
|
-
* Define a request-response method endpoint.
|
|
9
|
-
*/
|
|
10
|
-
export function method(options) {
|
|
11
|
-
return {
|
|
12
|
-
_type: 'method',
|
|
13
|
-
input: options.input,
|
|
14
|
-
output: options.output,
|
|
15
|
-
error: options.error,
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
7
|
/**
|
|
19
8
|
* Define a fire-and-forget notification endpoint.
|
|
20
9
|
*/
|
|
@@ -24,25 +13,19 @@ export function notification(options) {
|
|
|
24
13
|
input: options.input,
|
|
25
14
|
};
|
|
26
15
|
}
|
|
16
|
+
/** Parse through a generic schema type so the result keeps the schema's output type. */
|
|
17
|
+
function safeParseWith(schema, input) {
|
|
18
|
+
const result = schema.safeParse(input);
|
|
19
|
+
if (result.success) {
|
|
20
|
+
return { success: true, data: result.data };
|
|
21
|
+
}
|
|
22
|
+
return { success: false, error: { message: result.error.message } };
|
|
23
|
+
}
|
|
27
24
|
/**
|
|
28
|
-
* Define a protocol with typed
|
|
25
|
+
* Define a protocol with typed notifications.
|
|
29
26
|
*
|
|
30
27
|
* @example
|
|
31
28
|
* ```typescript
|
|
32
|
-
* const clientProtocol = defineProtocol({
|
|
33
|
-
* subscribe: method({
|
|
34
|
-
* input: z.object({ sessionId: z.string() }),
|
|
35
|
-
* output: z.void(),
|
|
36
|
-
* error: z.object({ code: z.literal('SESSION_NOT_FOUND') }),
|
|
37
|
-
* }),
|
|
38
|
-
*
|
|
39
|
-
* userMessage: method({
|
|
40
|
-
* input: z.object({ sessionId: z.string(), content: z.string() }),
|
|
41
|
-
* output: z.object({ messageId: z.string() }),
|
|
42
|
-
* error: z.object({ code: z.literal('AGENT_BUSY') }),
|
|
43
|
-
* }),
|
|
44
|
-
* });
|
|
45
|
-
*
|
|
46
29
|
* const serverProtocol = defineProtocol({
|
|
47
30
|
* agentMessage: notification({
|
|
48
31
|
* input: z.object({ sessionId: z.string(), content: z.string() }),
|
|
@@ -53,41 +36,11 @@ export function notification(options) {
|
|
|
53
36
|
export function defineProtocol(def) {
|
|
54
37
|
return {
|
|
55
38
|
_def: def,
|
|
56
|
-
getEndpoint(name) {
|
|
57
|
-
return def[name];
|
|
58
|
-
},
|
|
59
|
-
isMethod(name) {
|
|
60
|
-
const endpoint = def[name];
|
|
61
|
-
return endpoint?._type === 'method';
|
|
62
|
-
},
|
|
63
|
-
isNotification(name) {
|
|
64
|
-
const endpoint = def[name];
|
|
65
|
-
return endpoint?._type === 'notification';
|
|
66
|
-
},
|
|
67
|
-
getMethodNames() {
|
|
68
|
-
return Object.keys(def).filter((key) => def[key]._type === 'method');
|
|
69
|
-
},
|
|
70
39
|
getNotificationNames() {
|
|
71
|
-
return Object.keys(def)
|
|
40
|
+
return Object.keys(def);
|
|
72
41
|
},
|
|
73
42
|
validateInput(name, input) {
|
|
74
|
-
|
|
75
|
-
const result = endpoint.input.safeParse(input);
|
|
76
|
-
if (result.success) {
|
|
77
|
-
return { success: true, data: result.data };
|
|
78
|
-
}
|
|
79
|
-
return { success: false, error: { message: result.error.message } };
|
|
80
|
-
},
|
|
81
|
-
validateOutput(name, output) {
|
|
82
|
-
const endpoint = def[name];
|
|
83
|
-
if (endpoint._type !== 'method') {
|
|
84
|
-
throw new Error(`Endpoint ${String(name)} is not a method`);
|
|
85
|
-
}
|
|
86
|
-
const result = endpoint.output.safeParse(output);
|
|
87
|
-
if (result.success) {
|
|
88
|
-
return { success: true, data: result.data };
|
|
89
|
-
}
|
|
90
|
-
return { success: false, error: { message: result.error.message } };
|
|
43
|
+
return safeParseWith(def[name].input, input);
|
|
91
44
|
},
|
|
92
45
|
};
|
|
93
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2FH;;GAEG;AACH,MAAM,UAAU,YAAY,CAC3B,OAAoC;IAEpC,OAAO;QACN,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,OAAO,CAAC,KAAK;KACpB,CAAA;AACF,CAAC;AAaD,wFAAwF;AACxF,SAAS,aAAa,CAAyB,MAAS,EAAE,KAAc;IACvE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACtC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;IAC5C,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAA;AACpE,CAAC;AAcD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAAwB,GAAM;IAC3D,OAAO;QACN,IAAI,EAAE,GAAG;QAET,oBAAoB;YACnB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC;QAED,aAAa,CAAoB,IAAO,EAAE,KAAc;YACvD,OAAO,aAAa,CAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC5D,CAAC;KACD,CAAA;AACF,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @roj-ai/transport
|
|
3
3
|
*
|
|
4
|
-
* Platform-agnostic WebSocket transport infrastructure with
|
|
4
|
+
* Platform-agnostic WebSocket transport infrastructure with a typed notification protocol API.
|
|
5
5
|
*/
|
|
6
|
-
export { defineProtocol,
|
|
7
|
-
export type {
|
|
6
|
+
export { defineProtocol, notification } from './core/protocol.js';
|
|
7
|
+
export type { HandlerContext, InferInput, NotificationDef, NotificationHandler, NotificationNotifier, NotificationOptions, Protocol, ProtocolDef, ProtocolHandlers, ProtocolNotifier, SafeParseResult, } from './core/protocol.js';
|
|
8
8
|
export { Err, flatMapResult, isErr, isOk, mapResult, Ok, unwrapOr, unwrapOrThrow } from './core/result.js';
|
|
9
9
|
export type { Result } from './core/result.js';
|
|
10
10
|
export type { ConnectionState, ReconnectOptions, TransportEvent, TransportEventListener, WireMessage } from './core/types.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjE,YAAY,EACX,cAAc,EACd,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GACf,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC1G,YAAY,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAG9C,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7H,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAG3D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC9D,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAE9G,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAM5D,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAMzD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACxF,YAAY,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAM3E,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AACxF,YAAY,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @roj-ai/transport
|
|
3
3
|
*
|
|
4
|
-
* Platform-agnostic WebSocket transport infrastructure with
|
|
4
|
+
* Platform-agnostic WebSocket transport infrastructure with a typed notification protocol API.
|
|
5
5
|
*/
|
|
6
6
|
// ============================================================================
|
|
7
7
|
// Core Exports
|
|
8
8
|
// ============================================================================
|
|
9
9
|
// Protocol Definition API
|
|
10
|
-
export { defineProtocol,
|
|
10
|
+
export { defineProtocol, notification } from './core/protocol.js';
|
|
11
11
|
// Result Type
|
|
12
12
|
export { Err, flatMapResult, isErr, isOk, mapResult, Ok, unwrapOr, unwrapOrThrow } from './core/result.js';
|
|
13
13
|
export { DEFAULT_RECONNECT_OPTIONS } from './core/types.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAejE,cAAc;AACd,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAM1G,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAE3D,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAG9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AASjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAEzD,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAGxF,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAGxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -7,6 +7,6 @@ export { createServerConnection, ServerConnection } from './server-connection.js
|
|
|
7
7
|
export type { ServerConnectionConfig, ServerHandlerContext } from './server-connection.js';
|
|
8
8
|
export { ConnectionManager } from './connection-manager.js';
|
|
9
9
|
export type { ConnectionStats } from './connection-manager.js';
|
|
10
|
-
export type { ConnectionState, HandlerContext, Protocol,
|
|
11
|
-
export { defineProtocol,
|
|
10
|
+
export type { ConnectionState, HandlerContext, Protocol, ProtocolDef, ProtocolHandlers, ProtocolNotifier, SafeParseResult, TransportEvent, TransportEventListener, } from '../core/index.js';
|
|
11
|
+
export { defineProtocol, notification } from '../core/index.js';
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACjF,YAAY,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAG9D,YAAY,EACX,eAAe,EACf,cAAc,EACd,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACjF,YAAY,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAG9D,YAAY,EACX,eAAe,EACf,cAAc,EACd,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,sBAAsB,GACtB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/server/index.js
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { createServerConnection, ServerConnection } from './server-connection.js';
|
|
7
7
|
export { ConnectionManager } from './connection-manager.js';
|
|
8
|
-
export { defineProtocol,
|
|
8
|
+
export { defineProtocol, notification } from '../core/index.js';
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAgB3D,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAgB3D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@roj-ai/transport",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -32,7 +32,9 @@
|
|
|
32
32
|
},
|
|
33
33
|
"files": [
|
|
34
34
|
"src",
|
|
35
|
-
"dist"
|
|
35
|
+
"dist",
|
|
36
|
+
"!src/**/*.test.ts",
|
|
37
|
+
"!src/__tests__"
|
|
36
38
|
],
|
|
37
39
|
"publishConfig": {
|
|
38
40
|
"access": "public"
|
package/src/client/index.ts
CHANGED
|
@@ -12,13 +12,13 @@ export type {
|
|
|
12
12
|
ConnectionState,
|
|
13
13
|
HandlerContext,
|
|
14
14
|
Protocol,
|
|
15
|
-
ProtocolCaller,
|
|
16
15
|
ProtocolDef,
|
|
17
16
|
ProtocolHandlers,
|
|
18
17
|
ProtocolNotifier,
|
|
18
|
+
SafeParseResult,
|
|
19
19
|
ReconnectOptions,
|
|
20
20
|
TransportEvent,
|
|
21
21
|
TransportEventListener,
|
|
22
22
|
} from '../core/index.js'
|
|
23
23
|
|
|
24
|
-
export { defineProtocol,
|
|
24
|
+
export { defineProtocol, notification } from '../core/index.js'
|