@procedures/client 0.3.0 → 0.5.0

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.
Files changed (196) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +62 -7
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/adapters/http/client/transport.d.ts +2 -1
  5. package/dist/adapters/http/client/transport.d.ts.map +1 -1
  6. package/dist/adapters/http/client/transport.js +9 -2
  7. package/dist/adapters/http/client/transport.js.map +1 -1
  8. package/dist/adapters/http/server/transport.d.ts +3 -1
  9. package/dist/adapters/http/server/transport.d.ts.map +1 -1
  10. package/dist/adapters/http/server/transport.js +8 -6
  11. package/dist/adapters/http/server/transport.js.map +1 -1
  12. package/dist/adapters/local/client/transport.d.ts +2 -1
  13. package/dist/adapters/local/client/transport.d.ts.map +1 -1
  14. package/dist/adapters/local/client/transport.js +12 -4
  15. package/dist/adapters/local/client/transport.js.map +1 -1
  16. package/dist/adapters/local/client/types.d.ts +6 -0
  17. package/dist/adapters/local/client/types.d.ts.map +1 -1
  18. package/dist/adapters/local/client/types.js.map +1 -1
  19. package/dist/adapters/sequence.d.ts +36 -0
  20. package/dist/adapters/sequence.d.ts.map +1 -0
  21. package/dist/adapters/sequence.js +55 -0
  22. package/dist/adapters/sequence.js.map +1 -0
  23. package/dist/adapters/websocket/client/node.d.ts +30 -0
  24. package/dist/adapters/websocket/client/node.d.ts.map +1 -0
  25. package/dist/adapters/websocket/client/node.js +32 -0
  26. package/dist/adapters/websocket/client/node.js.map +1 -0
  27. package/dist/adapters/websocket/client/transport.d.ts +39 -1
  28. package/dist/adapters/websocket/client/transport.d.ts.map +1 -1
  29. package/dist/adapters/websocket/client/transport.js +119 -16
  30. package/dist/adapters/websocket/client/transport.js.map +1 -1
  31. package/dist/adapters/websocket/client/types.d.ts +15 -5
  32. package/dist/adapters/websocket/client/types.d.ts.map +1 -1
  33. package/dist/adapters/websocket/client/types.js.map +1 -1
  34. package/dist/adapters/websocket/server/transport.d.ts +22 -1
  35. package/dist/adapters/websocket/server/transport.d.ts.map +1 -1
  36. package/dist/adapters/websocket/server/transport.js +29 -1
  37. package/dist/adapters/websocket/server/transport.js.map +1 -1
  38. package/dist/adapters/websocket/server/types.d.ts +6 -0
  39. package/dist/adapters/websocket/server/types.d.ts.map +1 -1
  40. package/dist/adapters/websocket/shared/rpc.d.ts +4 -3
  41. package/dist/adapters/websocket/shared/rpc.d.ts.map +1 -1
  42. package/dist/adapters/websocket/shared/rpc.js +18 -9
  43. package/dist/adapters/websocket/shared/rpc.js.map +1 -1
  44. package/dist/browser.d.ts +3 -0
  45. package/dist/browser.d.ts.map +1 -1
  46. package/dist/browser.js +4 -0
  47. package/dist/browser.js.map +1 -1
  48. package/dist/client/errors/http-errors.d.ts.map +1 -1
  49. package/dist/client/errors/http-errors.js +6 -0
  50. package/dist/client/errors/http-errors.js.map +1 -1
  51. package/dist/client/errors/index.d.ts +1 -1
  52. package/dist/client/errors/index.js +1 -1
  53. package/dist/client/errors/registry.d.ts +2 -1
  54. package/dist/client/errors/registry.d.ts.map +1 -1
  55. package/dist/client/errors/registry.js +73 -22
  56. package/dist/client/errors/registry.js.map +1 -1
  57. package/dist/client/middleware/rate-limit.d.ts.map +1 -1
  58. package/dist/client/middleware/rate-limit.js +0 -1
  59. package/dist/client/middleware/rate-limit.js.map +1 -1
  60. package/dist/client/middleware/timeout.d.ts.map +1 -1
  61. package/dist/client/middleware/timeout.js +2 -9
  62. package/dist/client/middleware/timeout.js.map +1 -1
  63. package/dist/events/index.d.ts +4 -0
  64. package/dist/events/index.d.ts.map +1 -1
  65. package/dist/events/index.js +3 -0
  66. package/dist/events/index.js.map +1 -1
  67. package/dist/events/publisher.d.ts +95 -0
  68. package/dist/events/publisher.d.ts.map +1 -0
  69. package/dist/events/publisher.js +268 -0
  70. package/dist/events/publisher.js.map +1 -0
  71. package/dist/events/remote.d.ts +164 -0
  72. package/dist/events/remote.d.ts.map +1 -0
  73. package/dist/events/remote.js +250 -0
  74. package/dist/events/remote.js.map +1 -0
  75. package/dist/index.d.ts +4 -0
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +4 -0
  78. package/dist/index.js.map +1 -1
  79. package/dist/node.d.ts +11 -0
  80. package/dist/node.d.ts.map +1 -0
  81. package/dist/node.js +10 -0
  82. package/dist/node.js.map +1 -0
  83. package/dist/procedures/collection/index.d.ts +1 -1
  84. package/dist/procedures/collection/index.d.ts.map +1 -1
  85. package/dist/procedures/collection/index.js.map +1 -1
  86. package/dist/procedures/collection/procedures.d.ts.map +1 -1
  87. package/dist/procedures/collection/procedures.js +6 -1
  88. package/dist/procedures/collection/procedures.js.map +1 -1
  89. package/dist/procedures/collection/schemas.d.ts +16 -1
  90. package/dist/procedures/collection/schemas.d.ts.map +1 -1
  91. package/dist/procedures/collection/schemas.js +13 -2
  92. package/dist/procedures/collection/schemas.js.map +1 -1
  93. package/dist/procedures/collection/storage.d.ts +14 -2
  94. package/dist/procedures/collection/storage.d.ts.map +1 -1
  95. package/dist/procedures/core/array.d.ts +1 -1
  96. package/dist/procedures/core/array.d.ts.map +1 -1
  97. package/dist/procedures/core/array.js +56 -15
  98. package/dist/procedures/core/array.js.map +1 -1
  99. package/dist/procedures/core/index.d.ts.map +1 -1
  100. package/dist/procedures/core/index.js +9 -2
  101. package/dist/procedures/core/index.js.map +1 -1
  102. package/dist/procedures/core/logic.js +1 -1
  103. package/dist/procedures/core/logic.js.map +1 -1
  104. package/dist/procedures/core/math.d.ts.map +1 -1
  105. package/dist/procedures/core/math.js +5 -1
  106. package/dist/procedures/core/math.js.map +1 -1
  107. package/dist/procedures/core/meta.d.ts.map +1 -1
  108. package/dist/procedures/core/meta.js +41 -7
  109. package/dist/procedures/core/meta.js.map +1 -1
  110. package/dist/procedures/core/type.d.ts.map +1 -1
  111. package/dist/procedures/core/type.js +4 -2
  112. package/dist/procedures/core/type.js.map +1 -1
  113. package/dist/procedures/discovery.d.ts +4 -6
  114. package/dist/procedures/discovery.d.ts.map +1 -1
  115. package/dist/procedures/discovery.js +4 -6
  116. package/dist/procedures/discovery.js.map +1 -1
  117. package/dist/procedures/invoke.d.ts +4 -2
  118. package/dist/procedures/invoke.d.ts.map +1 -1
  119. package/dist/procedures/invoke.js +1 -1
  120. package/dist/procedures/invoke.js.map +1 -1
  121. package/dist/procedures/ref.d.ts +4 -2
  122. package/dist/procedures/ref.d.ts.map +1 -1
  123. package/dist/procedures/ref.js +2 -1
  124. package/dist/procedures/ref.js.map +1 -1
  125. package/dist/protocol.d.ts +10 -3
  126. package/dist/protocol.d.ts.map +1 -1
  127. package/dist/protocol.js +13 -2
  128. package/dist/protocol.js.map +1 -1
  129. package/dist/server/host-policy.d.ts +11 -0
  130. package/dist/server/host-policy.d.ts.map +1 -1
  131. package/dist/server/host-policy.js +5 -0
  132. package/dist/server/host-policy.js.map +1 -1
  133. package/dist/server/procedure-server.d.ts +26 -3
  134. package/dist/server/procedure-server.d.ts.map +1 -1
  135. package/dist/server/procedure-server.js +38 -6
  136. package/dist/server/procedure-server.js.map +1 -1
  137. package/package.json +7 -6
  138. package/src/adapters/http/client/transport.ts +9 -2
  139. package/src/adapters/http/server/transport.ts +8 -6
  140. package/src/adapters/local/client/transport.ts +12 -4
  141. package/src/adapters/local/client/types.ts +7 -0
  142. package/src/adapters/sequence.ts +55 -0
  143. package/src/adapters/websocket/client/node.ts +34 -0
  144. package/src/adapters/websocket/client/transport.ts +128 -16
  145. package/src/adapters/websocket/client/types.ts +16 -5
  146. package/src/adapters/websocket/server/transport.ts +43 -1
  147. package/src/adapters/websocket/server/types.ts +7 -0
  148. package/src/adapters/websocket/shared/rpc.ts +19 -9
  149. package/src/browser.ts +15 -0
  150. package/src/client/errors/README.md +2 -0
  151. package/src/client/errors/http-errors.ts +5 -0
  152. package/src/client/errors/index.ts +1 -1
  153. package/src/client/errors/registry.ts +80 -22
  154. package/src/client/middleware/rate-limit.ts +0 -2
  155. package/src/client/middleware/timeout.ts +2 -9
  156. package/src/events/index.ts +16 -0
  157. package/src/events/publisher.ts +314 -0
  158. package/src/events/remote.ts +369 -0
  159. package/src/index.ts +4 -0
  160. package/src/node.ts +11 -0
  161. package/src/procedures/collection/index.ts +1 -0
  162. package/src/procedures/collection/procedures.ts +6 -1
  163. package/src/procedures/collection/schemas.ts +28 -2
  164. package/src/procedures/collection/storage.ts +14 -2
  165. package/src/procedures/core/array.ts +53 -16
  166. package/src/procedures/core/index.ts +9 -2
  167. package/src/procedures/core/logic.ts +1 -1
  168. package/src/procedures/core/math.ts +5 -1
  169. package/src/procedures/core/meta.ts +43 -7
  170. package/src/procedures/core/type.ts +4 -2
  171. package/src/procedures/discovery.ts +4 -6
  172. package/src/procedures/invoke.ts +4 -2
  173. package/src/procedures/ref.ts +4 -2
  174. package/src/protocol.ts +16 -3
  175. package/src/server/host-policy.ts +14 -0
  176. package/src/server/procedure-server.ts +45 -8
  177. package/dist/procedures/cli/announce.d.ts +0 -67
  178. package/dist/procedures/cli/announce.d.ts.map +0 -1
  179. package/dist/procedures/cli/announce.js +0 -392
  180. package/dist/procedures/cli/announce.js.map +0 -1
  181. package/dist/procedures/cli/discover.d.ts +0 -66
  182. package/dist/procedures/cli/discover.d.ts.map +0 -1
  183. package/dist/procedures/cli/discover.js +0 -310
  184. package/dist/procedures/cli/discover.js.map +0 -1
  185. package/dist/procedures/cli/index.d.ts +0 -13
  186. package/dist/procedures/cli/index.d.ts.map +0 -1
  187. package/dist/procedures/cli/index.js +0 -203
  188. package/dist/procedures/cli/index.js.map +0 -1
  189. package/dist/procedures/cli/init.d.ts +0 -17
  190. package/dist/procedures/cli/init.d.ts.map +0 -1
  191. package/dist/procedures/cli/init.js +0 -336
  192. package/dist/procedures/cli/init.js.map +0 -1
  193. package/src/procedures/cli/announce.ts +0 -470
  194. package/src/procedures/cli/discover.ts +0 -390
  195. package/src/procedures/cli/index.ts +0 -231
  196. package/src/procedures/cli/init.ts +0 -370
@@ -7,6 +7,7 @@
7
7
  import type { Transport, Message, ResponseItem } from "../../../client/types.js";
8
8
  import type { WebSocketTransportOptions } from "./types.js";
9
9
  import { WebSocketState } from "./types.js";
10
+ import { type RemoteEvent, type RemoteEventHandler, type RemoteEventsOptions, type SubscribeOptions, type Subscription } from "../../../events/remote.js";
10
11
  /**
11
12
  * The delay before a reconnect try (from 1): an exponential backoff up to `maxDelay`, with a
12
13
  * random part. With `jitter: 1` (full jitter, the default), the delay is a random time from 0 to
@@ -52,6 +53,8 @@ export declare class WebSocketTransport implements Transport {
52
53
  private incoming;
53
54
  /** The time limit of the handshake of the socket that opens now */
54
55
  private handshakeTimer;
56
+ /** The signal of the subscriptions of the transport: `close()` aborts it, so they end (EVENTS.md) */
57
+ private readonly subscriptions;
55
58
  constructor(options: WebSocketTransportOptions);
56
59
  /**
57
60
  * Change the state, and tell the callers that wait for a connection. `on` is the event of
@@ -126,7 +129,42 @@ export declare class WebSocketTransport implements Transport {
126
129
  */
127
130
  private handleServerRequest;
128
131
  /**
129
- * Close WebSocket connection. The requests in progress fail.
132
+ * This function subscribes to topics of the bus of the server (`documentation/EVENTS.md`). The
133
+ * handler gets each event in order. After a drop, the transport sends the subscription again on
134
+ * the new connection. The events between the drop and the new confirmation are lost.
135
+ *
136
+ * @param topics - One topic, or a list of 1 to 64 topics
137
+ * @param handler - The handler of each event. A promise that it gives holds the next event.
138
+ * @param options - `onSubscribed`, `onError`, a signal, the metadata of the call
139
+ * @returns The unsubscribe function, with the `ready` promise of the first confirmation
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * const unsubscribe = transport.subscribe("orders.created", (order) => console.log(order));
144
+ * await unsubscribe.ready;
145
+ * unsubscribe();
146
+ * ```
147
+ */
148
+ subscribe<T = unknown>(topics: string | readonly string[], handler: RemoteEventHandler<T>, options?: SubscribeOptions): Subscription;
149
+ /**
150
+ * This function gives the events of topics of the bus of the server as an async iterator. A
151
+ * `break` or the signal ends the subscription. The transport resubscribes after a drop, as for
152
+ * `subscribe()`. An error that ends the subscription ends the iteration.
153
+ *
154
+ * @param topics - One topic, or a list of 1 to 64 topics
155
+ * @param options - A signal, `onSubscribed`, the metadata of the call
156
+ */
157
+ events<T = unknown>(topics: string | readonly string[], options?: RemoteEventsOptions): AsyncIterable<RemoteEvent<T>>;
158
+ /** The parts of the subscriptions of this transport: its connection, its backoff, its close and `onEvent`. */
159
+ private subscriptionHooks;
160
+ /**
161
+ * This function resolves when the transport is connected, or when the signal aborts. It has no
162
+ * time limit: a subscription waits for each reconnect. It rejects when the transport closed or
163
+ * stopped its reconnects.
164
+ */
165
+ private whenConnected;
166
+ /**
167
+ * Close WebSocket connection. The requests in progress fail, and the subscriptions end.
130
168
  */
131
169
  close(): Promise<void>;
132
170
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EAAE,yBAAyB,EAAwE,MAAM,YAAY,CAAC;AAClI,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA6H5C;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC9F,MAAM,GAAE,MAAM,MAAoB,GACjC,MAAM,CAaR;AAED,qBAAa,kBAAmB,YAAW,SAAS;IAClD,QAAQ,CAAC,IAAI,eAAe;IAE5B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,OAAO,CA0Bb;IACF,2CAA2C;IAC3C,OAAO,CAAC,eAAe,CAA0C;IACjE;;;;OAIG;IACH,OAAO,CAAC,OAAO,CAAK;IACpB,2FAA2F;IAC3F,OAAO,CAAC,cAAc,CAAyB;IAC/C,0FAA0F;IAC1F,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAAiC;IACvD,uGAAuG;IACvG,OAAO,CAAC,SAAS,CAAoC;IACrD,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,iGAAiG;IACjG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwD;IAC1F,+FAA+F;IAC/F,OAAO,CAAC,cAAc,CAAqB;IAC3C,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAA4B;IAC5C,mEAAmE;IACnE,OAAO,CAAC,cAAc,CAAiC;IAEvD,YAAY,OAAO,EAAE,yBAAyB,EAkC7C;IAED;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAShB;;OAEG;IACH,oFAAoF;IACpF,OAAO,CAAC,OAAO;IAwFf;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAqBtB,yEAAyE;IACzE,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAwBnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAsBtB,4CAA4C;IAC5C,OAAO,CAAC,mBAAmB;IAO3B,0EAA0E;IAC1E,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH;;;OAGG;IACH,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,aAAa;IAsIrB;;;;;;;;;;;OAWG;IACI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CA2EjF;IAED,qFAAqF;IACrF,OAAO,CAAC,UAAU;IAOlB,wEAAwE;IACxE,OAAO,CAAC,UAAU;IAOlB;;;;OAIG;YACW,iBAAiB;IA4B/B;;OAEG;YACW,mBAAmB;IA8CjC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA6B3B;IAED;;;OAGG;IACH,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED;;OAEG;IACH,QAAQ,IAAI,cAAc,CAEzB;IAED;;OAEG;IACH,WAAW,IAAI,OAAO,CAErB;CACF"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EAAE,yBAAyB,EAAwE,MAAM,YAAY,CAAC;AAClI,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAc5C,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAElB,MAAM,2BAA2B,CAAC;AAoInC;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC9F,MAAM,GAAE,MAAM,MAAoB,GACjC,MAAM,CAaR;AAED,qBAAa,kBAAmB,YAAW,SAAS;IAClD,QAAQ,CAAC,IAAI,eAAe;IAE5B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,OAAO,CA0Bb;IACF,2CAA2C;IAC3C,OAAO,CAAC,eAAe,CAA0C;IACjE;;;;OAIG;IACH,OAAO,CAAC,OAAO,CAAK;IACpB,2FAA2F;IAC3F,OAAO,CAAC,cAAc,CAAyB;IAC/C,0FAA0F;IAC1F,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAAiC;IACvD,uGAAuG;IACvG,OAAO,CAAC,SAAS,CAAoC;IACrD,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,iGAAiG;IACjG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwD;IAC1F,+FAA+F;IAC/F,OAAO,CAAC,cAAc,CAAqB;IAC3C,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAA4B;IAC5C,mEAAmE;IACnE,OAAO,CAAC,cAAc,CAAiC;IACvD,qGAAqG;IACrG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IAEvD,YAAY,OAAO,EAAE,yBAAyB,EAkC7C;IAED;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAShB;;OAEG;IACH,oFAAoF;IACpF,OAAO,CAAC,OAAO;IAwFf;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAkBtB,yEAAyE;IACzE,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAwBnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAsBtB,4CAA4C;IAC5C,OAAO,CAAC,mBAAmB;IAO3B,0EAA0E;IAC1E,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH;;;OAGG;IACH,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,aAAa;IA2IrB;;;;;;;;;;;OAWG;IACI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CA6EjF;IAED,qFAAqF;IACrF,OAAO,CAAC,UAAU;IAOlB,wEAAwE;IACxE,OAAO,CAAC,UAAU;IAOlB;;;;OAIG;YACW,iBAAiB;IA4B/B;;OAEG;YACW,mBAAmB;IA8CjC;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,gBAAqB,GAAG,YAAY,CAEvI;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,mBAAwB,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAExH;IAED,8GAA8G;IAC9G,OAAO,CAAC,iBAAiB;IAgBzB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAqBrB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA4B3B;IAED;;;OAGG;IACH,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED;;OAEG;IACH,QAAQ,IAAI,cAAc,CAEzB;IAED;;OAEG;IACH,WAAW,IAAI,OAAO,CAErB;CACF"}
@@ -7,6 +7,7 @@
7
7
  import { WebSocketState } from "./types.js";
8
8
  import { withoutInternalKeys } from "../../metadata.js";
9
9
  import { IncomingCalls } from "../shared/rpc.js";
10
+ import { StreamSequence, gapOf, itemMetadata } from "../../sequence.js";
10
11
  import { methodToPath } from "../../../server/method.js";
11
12
  import { optionalMs } from "../../../duration.js";
12
13
  import { PROTOCOL_VERSION, protocolVersionOf } from "../../../protocol.js";
@@ -15,6 +16,7 @@ import { realClock } from "../../../clock.js";
15
16
  import { heartbeat } from "@mark1russell7/service/heartbeat";
16
17
  import { backoffDelay } from "@mark1russell7/service/backoff";
17
18
  import { WEBSOCKET_CONNECTION_MACHINE } from "../../../machines.js";
19
+ import { SubscriptionError, remoteEvents, subscribeRemote, } from "../../../events/remote.js";
18
20
  /**
19
21
  * Pending request waiting for response.
20
22
  */
@@ -77,6 +79,20 @@ class ItemQueue {
77
79
  * const client = new Client({ transport });
78
80
  * ```
79
81
  */
82
+ /** The `readyState` of an open socket. The global `WebSocket` and the `ws` package use the same number. */
83
+ const OPEN = 1;
84
+ /**
85
+ * The error handler of a socket that the transport left. A `WebSocket` of the `ws` package that
86
+ * closes during its handshake emits an error. Without a handler, that error ends the process.
87
+ */
88
+ const ignoreError = () => undefined;
89
+ /** This function removes the handlers of the transport from a socket, and keeps `ignoreError`. */
90
+ function detach(ws) {
91
+ ws.onopen = null;
92
+ ws.onmessage = null;
93
+ ws.onclose = null;
94
+ ws.onerror = ignoreError;
95
+ }
80
96
  function errorItem(id, code, message, retryable) {
81
97
  return { id, status: { type: "error", code, message, retryable }, payload: null, metadata: {} };
82
98
  }
@@ -158,6 +174,8 @@ export class WebSocketTransport {
158
174
  incoming;
159
175
  /** The time limit of the handshake of the socket that opens now */
160
176
  handshakeTimer = undefined;
177
+ /** The signal of the subscriptions of the transport: `close()` aborts it, so they end (EVENTS.md) */
178
+ subscriptions = new AbortController();
161
179
  constructor(options) {
162
180
  this.options = {
163
181
  url: options.url,
@@ -303,10 +321,7 @@ export class WebSocketTransport {
303
321
  const ws = this.ws;
304
322
  this.ws = null;
305
323
  if (ws) {
306
- ws.onopen = null;
307
- ws.onmessage = null;
308
- ws.onclose = null;
309
- ws.onerror = null;
324
+ detach(ws);
310
325
  try {
311
326
  // A socket of the ws package ends at once. close() waits for the answer of a peer that can
312
327
  // be dead (finding of roadmap R36).
@@ -421,7 +436,7 @@ export class WebSocketTransport {
421
436
  return new IncomingCalls({
422
437
  handler,
423
438
  send: (frame) => ws.send(JSON.stringify(frame)),
424
- isOpen: () => this.ws === ws && ws.readyState === WebSocket.OPEN,
439
+ isOpen: () => this.ws === ws && ws.readyState === OPEN,
425
440
  // A call of the server that this client opened: the client trusts it, so it has no
426
441
  // credentials (a ProcedureServer applies no token to it)
427
442
  requestOf: (frame, signal) => ({
@@ -465,7 +480,8 @@ export class WebSocketTransport {
465
480
  this.handleServerRequest(message);
466
481
  return;
467
482
  }
468
- // Handle event (subscription event from server)
483
+ // The frame type `event` is reserved: no side of protocol v1 sends it. A server outside this
484
+ // repository can send it, so the frame still goes to onEvent (EVENTS.md).
469
485
  if (message.type === "event") {
470
486
  if (this.options.onEvent && message.topic && message.subscriptionId) {
471
487
  try {
@@ -480,7 +496,9 @@ export class WebSocketTransport {
480
496
  // Handle response
481
497
  const pending = this.pendingRequests.get(message.id);
482
498
  if (!pending) {
483
- console.warn(`[${this.name}] Received response for unknown request: ${message.id}`);
499
+ // A stream frame that left before the cancel of its call is normal: an unsubscribe, a break
500
+ if (message.type !== "stream")
501
+ console.warn(`[${this.name}] Received response for unknown request: ${message.id}`);
484
502
  return;
485
503
  }
486
504
  // The first frame arrived: the request timeout ends. A stream can stay open longer.
@@ -491,6 +509,10 @@ export class WebSocketTransport {
491
509
  // A stream frame: one item, or the end of the stream (BUGS-2026-07 H5: before, the
492
510
  // transport resolved on the first frame and dropped the others)
493
511
  if (message.type === "stream") {
512
+ // A duplicate or a late frame: its item came before, or the delivery is at most once
513
+ const gap = pending.order.next(message.seq, message.id);
514
+ if (gap < 0)
515
+ return;
494
516
  if (message.stream?.done) {
495
517
  this.pendingRequests.delete(message.id);
496
518
  pending.queue.end();
@@ -500,7 +522,7 @@ export class WebSocketTransport {
500
522
  id: pending.messageId,
501
523
  status: { type: "success", code: 200 },
502
524
  payload: message.payload,
503
- metadata: message.metadata || {},
525
+ metadata: itemMetadata(message.metadata, gap),
504
526
  });
505
527
  return;
506
528
  }
@@ -594,7 +616,7 @@ export class WebSocketTransport {
594
616
  credit: window,
595
617
  };
596
618
  const queue = new ItemQueue();
597
- const pending = { messageId: message.id, queue };
619
+ const pending = { messageId: message.id, queue, order: new StreamSequence() };
598
620
  pending.timeout = this.clock.after(this.options.requestTimeout, () => {
599
621
  if (this.pendingRequests.get(wireId) !== pending)
600
622
  return;
@@ -628,8 +650,10 @@ export class WebSocketTransport {
628
650
  let taken = 0;
629
651
  for await (const item of queue) {
630
652
  yield item;
631
- // The reader took the item: give the server credit, in batches of half the window
632
- if (++taken >= window / 2 && this.pendingRequests.get(wireId) === pending) {
653
+ // The reader took the item: give the server credit, in batches of half the window.
654
+ // The frames of a gap took credit too, and no reader takes them.
655
+ taken += 1 + gapOf(item.metadata);
656
+ if (taken >= window / 2 && this.pendingRequests.get(wireId) === pending) {
633
657
  this.sendCredit(wireId, taken);
634
658
  taken = 0;
635
659
  }
@@ -741,9 +765,91 @@ export class WebSocketTransport {
741
765
  }
742
766
  }
743
767
  /**
744
- * Close WebSocket connection. The requests in progress fail.
768
+ * This function subscribes to topics of the bus of the server (`documentation/EVENTS.md`). The
769
+ * handler gets each event in order. After a drop, the transport sends the subscription again on
770
+ * the new connection. The events between the drop and the new confirmation are lost.
771
+ *
772
+ * @param topics - One topic, or a list of 1 to 64 topics
773
+ * @param handler - The handler of each event. A promise that it gives holds the next event.
774
+ * @param options - `onSubscribed`, `onError`, a signal, the metadata of the call
775
+ * @returns The unsubscribe function, with the `ready` promise of the first confirmation
776
+ *
777
+ * @example
778
+ * ```typescript
779
+ * const unsubscribe = transport.subscribe("orders.created", (order) => console.log(order));
780
+ * await unsubscribe.ready;
781
+ * unsubscribe();
782
+ * ```
783
+ */
784
+ subscribe(topics, handler, options = {}) {
785
+ return subscribeRemote(this, topics, handler, options, this.subscriptionHooks());
786
+ }
787
+ /**
788
+ * This function gives the events of topics of the bus of the server as an async iterator. A
789
+ * `break` or the signal ends the subscription. The transport resubscribes after a drop, as for
790
+ * `subscribe()`. An error that ends the subscription ends the iteration.
791
+ *
792
+ * @param topics - One topic, or a list of 1 to 64 topics
793
+ * @param options - A signal, `onSubscribed`, the metadata of the call
794
+ */
795
+ events(topics, options = {}) {
796
+ return remoteEvents(this, topics, options, this.subscriptionHooks());
797
+ }
798
+ /** The parts of the subscriptions of this transport: its connection, its backoff, its close and `onEvent`. */
799
+ subscriptionHooks() {
800
+ return {
801
+ lifetime: this.subscriptions.signal,
802
+ ready: (signal) => this.whenConnected(signal),
803
+ backoff: (attempt) => reconnectDelay(attempt, this.options.reconnect),
804
+ onEvent: (event) => {
805
+ if (!this.options.onEvent)
806
+ return;
807
+ try {
808
+ this.options.onEvent(event.topic, event.data, event.subscription);
809
+ }
810
+ catch (error) {
811
+ console.error(`[${this.name}] Event handler error:`, error);
812
+ }
813
+ },
814
+ };
815
+ }
816
+ /**
817
+ * This function resolves when the transport is connected, or when the signal aborts. It has no
818
+ * time limit: a subscription waits for each reconnect. It rejects when the transport closed or
819
+ * stopped its reconnects.
820
+ */
821
+ whenConnected(signal) {
822
+ const closed = () => new SubscriptionError("CONNECTION_CLOSED", "The WebSocket transport is closed", false);
823
+ if (this.state === WebSocketState.CONNECTED || signal.aborted)
824
+ return Promise.resolve();
825
+ if (this.state === WebSocketState.DISCONNECTED || this.closing)
826
+ return Promise.reject(closed());
827
+ return new Promise((resolve, reject) => {
828
+ const finish = (error) => {
829
+ this.stateListeners.delete(check);
830
+ signal.removeEventListener("abort", onAbort);
831
+ if (error)
832
+ reject(error);
833
+ else
834
+ resolve();
835
+ };
836
+ const check = () => {
837
+ if (this.state === WebSocketState.CONNECTED)
838
+ finish();
839
+ else if (this.state === WebSocketState.DISCONNECTED)
840
+ finish(closed());
841
+ };
842
+ const onAbort = () => finish();
843
+ this.stateListeners.add(check);
844
+ signal.addEventListener("abort", onAbort, { once: true });
845
+ });
846
+ }
847
+ /**
848
+ * Close WebSocket connection. The requests in progress fail, and the subscriptions end.
745
849
  */
746
850
  async close() {
851
+ // The subscriptions end first: each one sends its cancel while the socket is open
852
+ this.subscriptions.abort();
747
853
  this.closing = true;
748
854
  this.setState(WebSocketState.DISCONNECTING, "close");
749
855
  this.stopHeartbeat();
@@ -758,10 +864,7 @@ export class WebSocketTransport {
758
864
  if (this.ws) {
759
865
  const ws = this.ws;
760
866
  this.ws = null;
761
- ws.onopen = null;
762
- ws.onmessage = null;
763
- ws.onclose = null;
764
- ws.onerror = null;
867
+ detach(ws);
765
868
  ws.close();
766
869
  }
767
870
  this.failPending("WebSocket connection closed");
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/transport.ts"],"names":[],"mappings":"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"}
@@ -129,8 +129,10 @@ export interface WebSocketTransportOptions {
129
129
  */
130
130
  serve?: RequestHandler;
131
131
  /**
132
- * Handler for subscription events.
133
- * Called when the server pushes an event to a subscribed topic.
132
+ * This handler gets each event of each subscription of this transport (`subscribe()` and
133
+ * `events()`), with the id of its subscription (`documentation/EVENTS.md`). It is a wrapper: the
134
+ * handler of a subscription gets the same events. It also gets an `event` frame of a server
135
+ * outside this repository. No side of protocol v1 sends that frame.
134
136
  */
135
137
  onEvent?: EventHandler;
136
138
  /**
@@ -144,8 +146,9 @@ export interface WebSocketTransportOptions {
144
146
  */
145
147
  onTransition?: (transition: MachineTransition) => void;
146
148
  /**
147
- * The class of the sockets. The default is the global `WebSocket`. In Node, give the `WebSocket`
148
- * of the `ws` package: a drop then ends its socket at once with `terminate()`. The global
149
+ * The class of the sockets. The default is the global `WebSocket`. The `WebSocketTransport` of
150
+ * the Node entry `@procedures/client/node` has the `WebSocket` of the `ws` package as its
151
+ * default. With that class, a drop ends its socket at once with `terminate()`. The global
149
152
  * `WebSocket` has only `close()`, which waits for the answer of the peer. With a dead peer, the
150
153
  * socket stays open until the kernel stops it, at most 15 minutes (the harness cells of R36).
151
154
  */
@@ -208,6 +211,12 @@ export interface WebSocketMessage<T = unknown> {
208
211
  * items. A request without credit gets its stream with no limit (the old protocol).
209
212
  */
210
213
  credit?: number;
214
+ /**
215
+ * The number of a `stream` frame in its call: 1 in the first frame, and one more in each next
216
+ * frame. The receiver drops a frame whose `seq` is not above the last one. A frame of an older
217
+ * peer has no `seq`.
218
+ */
219
+ seq?: number;
211
220
  /** Stream indicator (for streaming responses) */
212
221
  stream?: {
213
222
  /** Is this the last message in the stream? */
@@ -235,7 +244,8 @@ export interface ServerRequestMessage {
235
244
  */
236
245
  export type ServerRequestHandler = (path: string[], input: unknown) => Promise<unknown>;
237
246
  /**
238
- * Handler for subscription events.
247
+ * The handler of the `onEvent` option: it gets the topic, the data and the id of the subscription
248
+ * of each event.
239
249
  */
240
250
  export type EventHandler = (topic: string, data: unknown, subscriptionId: string) => void;
241
251
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmLH;;GAEG;AACH,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,iDAA+B,CAAA;IAC/B,+CAA6B,CAAA;IAC7B,+CAA6B,CAAA;AAC/B,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsLH;;GAEG;AACH,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,iDAA+B,CAAA;IAC/B,+CAA6B,CAAA;IAC7B,+CAA6B,CAAA;AAC/B,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB"}
@@ -8,6 +8,7 @@ import type { ServerTransport } from "../../../server/types.js";
8
8
  import type { Message, ResponseItem, Transport } from "../../../client/types.js";
9
9
  import type { RequestHandler } from "../../../server/types.js";
10
10
  import type { WebSocketServerTransportOptions, WebSocketMessage, TrackedConnection, ConnectionEventHandler } from "./types.js";
11
+ import { type RemoteEvent, type RemoteEventHandler, type RemoteEventsOptions, type SubscribeOptions, type Subscription } from "../../../events/remote.js";
11
12
  /**
12
13
  * WebSocket server transport adapter.
13
14
  *
@@ -125,13 +126,33 @@ export declare class WebSocketServerTransport implements ServerTransport {
125
126
  * with each client middleware (retry, timeouts) of the caller (roadmap R24).
126
127
  */
127
128
  transportFor(connectionId: string): Transport;
129
+ /**
130
+ * This function subscribes to topics of the bus of a client (`documentation/EVENTS.md`). The
131
+ * client serves them with its `serve` option: a `ProcedureServer` with the option `events`. The
132
+ * subscription ends with its connection: a reconnect is a new connection, so the server
133
+ * subscribes again in its `onConnect` handler. The `onError` handler gets the end.
134
+ *
135
+ * @param connectionId - The id of the connection of the client
136
+ * @param topics - One topic, or a list of 1 to 64 topics
137
+ * @param handler - The handler of each event, in order
138
+ * @param options - `onSubscribed`, `onError`, a signal, the metadata of the call
139
+ */
140
+ subscribe<T = unknown>(connectionId: string, topics: string | readonly string[], handler: RemoteEventHandler<T>, options?: SubscribeOptions): Subscription;
141
+ /**
142
+ * This function gives the events of topics of the bus of a client as an async iterator. The
143
+ * iteration ends with the connection, with an error.
144
+ *
145
+ * @param connectionId - The id of the connection of the client
146
+ * @param topics - One topic, or a list of 1 to 64 topics
147
+ * @param options - A signal, `onSubscribed`, the metadata of the call
148
+ */
149
+ events<T = unknown>(connectionId: string, topics: string | readonly string[], options?: RemoteEventsOptions): AsyncIterable<RemoteEvent<T>>;
128
150
  /**
129
151
  * Call a procedure on a specific client (server-to-client RPC). It gives the value of the
130
152
  * call, and fails with its error. It is a wrapper of `callConnection` (roadmap R24).
131
153
  */
132
154
  callClient(connectionId: string, path: string[], input: unknown, timeout?: number): Promise<unknown>;
133
155
  /**
134
- * Register a handler for new connections. /**
135
156
  * Register a handler for new connections.
136
157
  * Returns a function to unregister the handler.
137
158
  */
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/websocket/server/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/websocket/server/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EACV,+BAA+B,EAC/B,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAOpB,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,wBAAyB,YAAW,eAAe;IAC9D,QAAQ,CAAC,IAAI,eAAe;IAE5B,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,OAAO,CAKb;IACF,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,WAAW,CAA6B;IAEhD,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAS;IACjD,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmD;IAC7E,OAAO,CAAC,cAAc,CAA6C;IACnE,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAGhE,OAAO,CAAC,kBAAkB,CAAwC;IAClE,OAAO,CAAC,iBAAiB,CAAK;IAE9B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2E;IAEpG,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAG5C,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,kBAAkB,CAAgC;IAE1D,YAAY,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,+BAA+B,EAqB3E;IAED;;;OAGG;IACH,OAAO,CAAC,IAAI;IAkBN,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA6C3B;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAiC1B;IAED,SAAS,IAAI,OAAO,CAEnB;IAED;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8FxB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAoBjB;;;OAGG;YACW,aAAa;IAkD3B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;OAEG;IACH,OAAO,CAAC,SAAS;IAoBjB;;OAEG;IACH,OAAO,CAAC,IAAI;IAMZ;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAIzC;IAED;;OAEG;IACH,kBAAkB,IAAI,MAAM,CAE3B;IAMD;;OAEG;IACH,qBAAqB,IAAI,iBAAiB,EAAE,CAE3C;IAED;;OAEG;IACH,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAExE;IAED;;OAEG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAKtE;IAED;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAa1G;IAED;;;OAGG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAM5C;IAED;;;;;;;;;;OAUG;IACH,SAAS,CAAC,CAAC,GAAG,OAAO,EACnB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAClC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,YAAY,CAEd;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,mBAAwB,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAE9I;IAED;;;OAGG;IACG,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,SAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBxG;IAED;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,IAAI,CAQrD;IAED;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,IAAI,CAQxD;IAED;;OAEG;IACH,wBAAwB,CACtB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CAKN;IAED;;OAEG;IACH,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAKxE;CACF"}
@@ -13,6 +13,7 @@ import { optionalMs } from "../../../duration.js";
13
13
  import { credentialsOf, withoutSecretHeaders } from "../../../server/request-auth.js";
14
14
  import { PROTOCOL_VERSION, protocolVersionOf } from "../../../protocol.js";
15
15
  import { TIMER_DEFAULTS } from "../../../timers.js";
16
+ import { remoteEvents, subscribeRemote, } from "../../../events/remote.js";
16
17
  /**
17
18
  * WebSocket server transport adapter.
18
19
  *
@@ -348,6 +349,9 @@ export class WebSocketServerTransport {
348
349
  // A server-response frame of an older client, for a call that no longer exists
349
350
  if (message.type === "server-response")
350
351
  return;
352
+ // A late answer of a call that the server stopped: a cancel (an unsubscribe), a time limit
353
+ if (message.type === "stream" || message.type === "response" || message.type === "error")
354
+ return;
351
355
  this.sendError(ws, message.id || "unknown", "Invalid message format");
352
356
  }
353
357
  /**
@@ -473,6 +477,31 @@ export class WebSocketServerTransport {
473
477
  close: async () => undefined,
474
478
  };
475
479
  }
480
+ /**
481
+ * This function subscribes to topics of the bus of a client (`documentation/EVENTS.md`). The
482
+ * client serves them with its `serve` option: a `ProcedureServer` with the option `events`. The
483
+ * subscription ends with its connection: a reconnect is a new connection, so the server
484
+ * subscribes again in its `onConnect` handler. The `onError` handler gets the end.
485
+ *
486
+ * @param connectionId - The id of the connection of the client
487
+ * @param topics - One topic, or a list of 1 to 64 topics
488
+ * @param handler - The handler of each event, in order
489
+ * @param options - `onSubscribed`, `onError`, a signal, the metadata of the call
490
+ */
491
+ subscribe(connectionId, topics, handler, options = {}) {
492
+ return subscribeRemote(this.transportFor(connectionId), topics, handler, options, { resubscribe: false });
493
+ }
494
+ /**
495
+ * This function gives the events of topics of the bus of a client as an async iterator. The
496
+ * iteration ends with the connection, with an error.
497
+ *
498
+ * @param connectionId - The id of the connection of the client
499
+ * @param topics - One topic, or a list of 1 to 64 topics
500
+ * @param options - A signal, `onSubscribed`, the metadata of the call
501
+ */
502
+ events(connectionId, topics, options = {}) {
503
+ return remoteEvents(this.transportFor(connectionId), topics, options, { resubscribe: false });
504
+ }
476
505
  /**
477
506
  * Call a procedure on a specific client (server-to-client RPC). It gives the value of the
478
507
  * call, and fails with its error. It is a wrapper of `callConnection` (roadmap R24).
@@ -500,7 +529,6 @@ export class WebSocketServerTransport {
500
529
  return last?.payload;
501
530
  }
502
531
  /**
503
- * Register a handler for new connections. /**
504
532
  * Register a handler for new connections.
505
533
  * Returns a function to unregister the handler.
506
534
  */