@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.
@@ -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, ProtocolCaller, ProtocolDef, ProtocolHandlers, ProtocolNotifier, ReconnectOptions, TransportEvent, TransportEventListener, } from '../core/index.js';
9
- export { defineProtocol, method, notification } from '../core/index.js';
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,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,GACtB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA"}
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"}
@@ -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, method, notification } from '../core/index.js';
7
+ export { defineProtocol, notification } from '../core/index.js';
8
8
  //# sourceMappingURL=index.js.map
@@ -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,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA"}
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;IAE5C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAmB3B,eAAe,IAAI,IAAI;IAavB,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"}
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"}
@@ -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
- if (this.sendBuffer.length < this.maxBufferSize) {
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
- if (this.sendBuffer.length < this.maxBufferSize) {
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;IAE5C,IAAI,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,mBAAmB,CAAC,IAAI,EAAE,CAAC;YACjE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC3B,CAAC;YACD,OAAO,KAAK,CAAA;QACb,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,IAAI,CAAC;YACJ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClB,OAAO,IAAI,CAAA;QACZ,CAAC;QAAC,MAAM,CAAC;YACR,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC3B,CAAC;YACD,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,mBAAmB,CAAC,IAAI;gBAAE,MAAK;YACtE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAG,CAAA;YACpC,IAAI,CAAC;gBACJ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAClB,CAAC;YAAC,MAAM,CAAC;gBACR,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAC5B,MAAK;YACN,CAAC;QACF,CAAC;IACF,CAAC;IAED,eAAe;QACd,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI,oBAAoB;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IAC9B,CAAC;IAED,EAAE,CAAC,QAAgC;QAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC;IAKD,+EAA+E;IAC/E,mBAAmB;IACnB,+EAA+E;IAErE,QAAQ,CAAC,QAAyB;QAC3C,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK;YAAE,OAAM;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAA;QACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;QACjD,IAAI,QAAQ,KAAK,WAAW;YAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;aAC/C,IAAI,QAAQ,KAAK,cAAc;YAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;aAC1D,IAAI,QAAQ,KAAK,cAAc;YAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAChE,CAAC;IAED,+EAA+E;IAC/E,kBAAkB;IAClB,+EAA+E;IAErE,cAAc,CAAC,EAAc;QACtC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QACtD,EAAE,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;QAC7F,EAAE,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACjD,EAAE,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACnE,CAAC;IAES,UAAU;QACnB,8CAA8C;QAC9C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC3B,CAAC;IAES,WAAW,CAAC,KAAa,EAAE,OAAe;QACnD,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAES,oBAAoB;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAES,OAAO;QAChB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAA;YACrB,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAA;YACtB,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAA;YACtB,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAA;QACzB,CAAC;IACF,CAAC;IAES,IAAI,CAAC,KAAqB,EAAE,IAAc;QACnD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACJ,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACtB,CAAC;YAAC,MAAM,CAAC;gBACR,yBAAyB;YAC1B,CAAC;QACF,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/core/connection.ts"],"names":[],"mappings":"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"}
@@ -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, method, notification } from './protocol.js';
11
- export type { CallerFor, EndpointDef, EndpointHandler, ExtractProtocolDef, HandlerContext, HandlersFor, InferError, InferInput, InferOutput, IsMethod, IsNotification, MethodCaller, MethodDef, MethodHandler, MethodOptions, NotificationDef, NotificationHandler, NotificationNotifier, NotificationOptions, NotifierFor, Protocol, ProtocolCaller, ProtocolDef, ProtocolHandlers, ProtocolNotifier, } from './protocol.js';
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';
@@ -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,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACpE,YAAY,EACX,SAAS,EACT,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GAChB,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"}
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"}
@@ -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, method, notification } from './protocol.js';
9
+ export { defineProtocol, notification } from './protocol.js';
10
10
  // Message Router
11
11
  export { createRouter, MessageRouter } from './router.js';
12
12
  // Connection Base
@@ -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,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AA6BpE,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGzD,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"}
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"}
@@ -1,20 +1,10 @@
1
1
  /**
2
2
  * Protocol Definition API
3
3
  *
4
- * Provides a type-safe way to define RPC-like protocols for WebSocket communication.
5
- * Inspired by tRPC but designed for bidirectional WebSocket protocols.
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
- * A single endpoint definition (method or notification).
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]: EndpointDef;
19
+ [key: string]: NotificationDef;
34
20
  }
35
21
  /**
36
- * Extract input type from an endpoint definition.
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 IsNotification<T extends EndpointDef> = T extends NotificationDef ? true : false;
24
+ export type InferInput<T extends NotificationDef> = z.infer<T['input']>;
55
25
  /**
56
- * Handler context passed to method/notification handlers.
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]: EndpointHandler<T[K]>;
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
- * Caller object for methods in a protocol.
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 as T[K] extends NotificationDef ? K : never]: T[K] extends NotificationDef ? NotificationNotifier<T[K]> : never;
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 an endpoint */
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 endpoints.
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":"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"}
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"}
@@ -1,20 +1,9 @@
1
1
  /**
2
2
  * Protocol Definition API
3
3
  *
4
- * Provides a type-safe way to define RPC-like protocols for WebSocket communication.
5
- * Inspired by tRPC but designed for bidirectional WebSocket protocols.
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 endpoints.
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).filter((key) => def[key]._type === 'notification');
40
+ return Object.keys(def);
72
41
  },
73
42
  validateInput(name, input) {
74
- const endpoint = def[name];
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;AAgLH;;GAEG;AACH,MAAM,UAAU,MAAM,CAIpB,OAA+C;IAChD,OAAO;QACN,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;KACpB,CAAA;AACF,CAAC;AAUD;;GAEG;AACH,MAAM,UAAU,YAAY,CAC3B,OAAoC;IAEpC,OAAO;QACN,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,OAAO,CAAC,KAAK;KACpB,CAAA;AACF,CAAC;AAmCD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,cAAc,CAAwB,GAAM;IAC3D,OAAO;QACN,IAAI,EAAE,GAAG;QAET,WAAW,CAAoB,IAAO;YACrC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;QAED,QAAQ,CAAC,IAAa;YACrB,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;YAC1B,OAAO,QAAQ,EAAE,KAAK,KAAK,QAAQ,CAAA;QACpC,CAAC;QAED,cAAc,CAAC,IAAa;YAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;YAC1B,OAAO,QAAQ,EAAE,KAAK,KAAK,cAAc,CAAA;QAC1C,CAAC;QAED,cAAc;YACb,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAgB,CAAA;QACpF,CAAC;QAED,oBAAoB;YACnB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,cAAc,CAAgB,CAAA;QAC1F,CAAC;QAED,aAAa,CAAoB,IAAO,EAAE,KAAc;YACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;YAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAC9C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAwB,EAAE,CAAA;YAChE,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAA;QACpE,CAAC;QAED,cAAc,CAAoB,IAAO,EAAE,MAAe;YACzD,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;YAC1B,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;YAC5D,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YAChD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;YAC5C,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAA;QACpE,CAAC;KACD,CAAA;AACF,CAAC"}
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 RPC-like protocol API.
4
+ * Platform-agnostic WebSocket transport infrastructure with a typed notification protocol API.
5
5
  */
6
- export { defineProtocol, method, notification } from './core/protocol.js';
7
- export type { CallerFor, EndpointDef, EndpointHandler, ExtractProtocolDef, HandlerContext, HandlersFor, InferError, InferInput, InferOutput, IsMethod, IsNotification, MethodCaller, MethodDef, MethodHandler, MethodOptions, NotificationDef, NotificationHandler, NotificationNotifier, NotificationOptions, NotifierFor, Protocol, ProtocolCaller, ProtocolDef, ProtocolHandlers, ProtocolNotifier, } from './core/protocol.js';
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';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACzE,YAAY,EACX,SAAS,EACT,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GAChB,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"}
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 RPC-like protocol API.
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, method, notification } from './core/protocol.js';
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,MAAM,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AA6BzE,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"}
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"}
@@ -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, ProtocolCaller, ProtocolDef, ProtocolHandlers, ProtocolNotifier, TransportEvent, TransportEventListener, } from '../core/index.js';
11
- export { defineProtocol, method, notification } from '../core/index.js';
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,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,GACtB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA"}
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"}
@@ -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, method, notification } from '../core/index.js';
8
+ export { defineProtocol, notification } from '../core/index.js';
9
9
  //# sourceMappingURL=index.js.map
@@ -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,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA"}
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.1.36",
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"
@@ -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, method, notification } from '../core/index.js'
24
+ export { defineProtocol, notification } from '../core/index.js'