@procedures/client 0.2.3 → 0.3.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 (299) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +61 -38
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/adapters/http/client/transport.d.ts.map +1 -1
  5. package/dist/adapters/http/client/transport.js +35 -3
  6. package/dist/adapters/http/client/transport.js.map +1 -1
  7. package/dist/adapters/http/client/types.d.ts +3 -2
  8. package/dist/adapters/http/client/types.d.ts.map +1 -1
  9. package/dist/adapters/http/server/transport.d.ts +2 -2
  10. package/dist/adapters/http/server/transport.d.ts.map +1 -1
  11. package/dist/adapters/http/server/transport.js +53 -20
  12. package/dist/adapters/http/server/transport.js.map +1 -1
  13. package/dist/adapters/http/shared/headers.d.ts +1 -1
  14. package/dist/adapters/http/shared/headers.d.ts.map +1 -1
  15. package/dist/adapters/http/shared/headers.js +7 -6
  16. package/dist/adapters/http/shared/headers.js.map +1 -1
  17. package/dist/adapters/local/client/transport.d.ts +3 -0
  18. package/dist/adapters/local/client/transport.d.ts.map +1 -1
  19. package/dist/adapters/local/client/transport.js +63 -4
  20. package/dist/adapters/local/client/transport.js.map +1 -1
  21. package/dist/adapters/local/client/types.d.ts +15 -0
  22. package/dist/adapters/local/client/types.d.ts.map +1 -1
  23. package/dist/adapters/local/client/types.js.map +1 -1
  24. package/dist/adapters/mock/client/transport.d.ts +3 -2
  25. package/dist/adapters/mock/client/transport.d.ts.map +1 -1
  26. package/dist/adapters/mock/client/transport.js +8 -5
  27. package/dist/adapters/mock/client/transport.js.map +1 -1
  28. package/dist/adapters/mock/client/types.d.ts +7 -6
  29. package/dist/adapters/mock/client/types.d.ts.map +1 -1
  30. package/dist/adapters/port/transport.d.ts +62 -0
  31. package/dist/adapters/port/transport.d.ts.map +1 -0
  32. package/dist/adapters/port/transport.js +94 -0
  33. package/dist/adapters/port/transport.js.map +1 -0
  34. package/dist/adapters/websocket/client/index.d.ts +1 -1
  35. package/dist/adapters/websocket/client/index.d.ts.map +1 -1
  36. package/dist/adapters/websocket/client/index.js.map +1 -1
  37. package/dist/adapters/websocket/client/transport.d.ts +47 -7
  38. package/dist/adapters/websocket/client/transport.d.ts.map +1 -1
  39. package/dist/adapters/websocket/client/transport.js +213 -67
  40. package/dist/adapters/websocket/client/transport.js.map +1 -1
  41. package/dist/adapters/websocket/client/types.d.ts +70 -21
  42. package/dist/adapters/websocket/client/types.d.ts.map +1 -1
  43. package/dist/adapters/websocket/client/types.js.map +1 -1
  44. package/dist/adapters/websocket/server/transport.d.ts +65 -24
  45. package/dist/adapters/websocket/server/transport.d.ts.map +1 -1
  46. package/dist/adapters/websocket/server/transport.js +192 -263
  47. package/dist/adapters/websocket/server/transport.js.map +1 -1
  48. package/dist/adapters/websocket/server/types.d.ts +20 -1
  49. package/dist/adapters/websocket/server/types.d.ts.map +1 -1
  50. package/dist/adapters/websocket/shared/rpc.d.ts +129 -0
  51. package/dist/adapters/websocket/shared/rpc.d.ts.map +1 -0
  52. package/dist/adapters/websocket/shared/rpc.js +425 -0
  53. package/dist/adapters/websocket/shared/rpc.js.map +1 -0
  54. package/dist/browser.d.ts +29 -7
  55. package/dist/browser.d.ts.map +1 -1
  56. package/dist/browser.js +26 -3
  57. package/dist/browser.js.map +1 -1
  58. package/dist/client/call-types.d.ts +10 -10
  59. package/dist/client/call-types.d.ts.map +1 -1
  60. package/dist/client/call-types.js +1 -6
  61. package/dist/client/call-types.js.map +1 -1
  62. package/dist/client/client.d.ts +6 -1
  63. package/dist/client/client.d.ts.map +1 -1
  64. package/dist/client/client.js +23 -9
  65. package/dist/client/client.js.map +1 -1
  66. package/dist/client/deadline.d.ts +38 -0
  67. package/dist/client/deadline.d.ts.map +1 -0
  68. package/dist/client/deadline.js +60 -0
  69. package/dist/client/deadline.js.map +1 -0
  70. package/dist/client/errors/factory.d.ts.map +1 -1
  71. package/dist/client/errors/factory.js +11 -7
  72. package/dist/client/errors/factory.js.map +1 -1
  73. package/dist/client/index.d.ts +9 -2
  74. package/dist/client/index.d.ts.map +1 -1
  75. package/dist/client/index.js +8 -2
  76. package/dist/client/index.js.map +1 -1
  77. package/dist/client/middleware/cache.d.ts +19 -5
  78. package/dist/client/middleware/cache.d.ts.map +1 -1
  79. package/dist/client/middleware/cache.js +106 -18
  80. package/dist/client/middleware/cache.js.map +1 -1
  81. package/dist/client/middleware/circuit-breaker.d.ts +28 -10
  82. package/dist/client/middleware/circuit-breaker.d.ts.map +1 -1
  83. package/dist/client/middleware/circuit-breaker.js +35 -24
  84. package/dist/client/middleware/circuit-breaker.js.map +1 -1
  85. package/dist/client/middleware/contexts.d.ts +16 -10
  86. package/dist/client/middleware/contexts.d.ts.map +1 -1
  87. package/dist/client/middleware/contexts.js.map +1 -1
  88. package/dist/client/middleware/items.d.ts +31 -2
  89. package/dist/client/middleware/items.d.ts.map +1 -1
  90. package/dist/client/middleware/items.js +86 -6
  91. package/dist/client/middleware/items.js.map +1 -1
  92. package/dist/client/middleware/lru.d.ts +2 -0
  93. package/dist/client/middleware/lru.d.ts.map +1 -1
  94. package/dist/client/middleware/lru.js +11 -0
  95. package/dist/client/middleware/lru.js.map +1 -1
  96. package/dist/client/middleware/rate-limit.d.ts +7 -6
  97. package/dist/client/middleware/rate-limit.d.ts.map +1 -1
  98. package/dist/client/middleware/rate-limit.js +9 -6
  99. package/dist/client/middleware/rate-limit.js.map +1 -1
  100. package/dist/client/middleware/resilience.d.ts +61 -0
  101. package/dist/client/middleware/resilience.d.ts.map +1 -0
  102. package/dist/client/middleware/resilience.js +59 -0
  103. package/dist/client/middleware/resilience.js.map +1 -0
  104. package/dist/client/middleware/retry.d.ts +45 -11
  105. package/dist/client/middleware/retry.d.ts.map +1 -1
  106. package/dist/client/middleware/retry.js +102 -22
  107. package/dist/client/middleware/retry.js.map +1 -1
  108. package/dist/client/middleware/timeout.d.ts +15 -12
  109. package/dist/client/middleware/timeout.d.ts.map +1 -1
  110. package/dist/client/middleware/timeout.js +46 -37
  111. package/dist/client/middleware/timeout.js.map +1 -1
  112. package/dist/client/middleware/tracing.d.ts.map +1 -1
  113. package/dist/client/middleware/tracing.js +11 -3
  114. package/dist/client/middleware/tracing.js.map +1 -1
  115. package/dist/client/types.d.ts +9 -1
  116. package/dist/client/types.d.ts.map +1 -1
  117. package/dist/client/types.js.map +1 -1
  118. package/dist/clock.d.ts +19 -0
  119. package/dist/clock.d.ts.map +1 -0
  120. package/dist/clock.js +18 -0
  121. package/dist/clock.js.map +1 -0
  122. package/dist/duration.d.ts +37 -0
  123. package/dist/duration.d.ts.map +1 -0
  124. package/dist/duration.js +44 -0
  125. package/dist/duration.js.map +1 -0
  126. package/dist/machines.d.ts +90 -0
  127. package/dist/machines.d.ts.map +1 -0
  128. package/dist/machines.js +127 -0
  129. package/dist/machines.js.map +1 -0
  130. package/dist/procedures/capability.d.ts +3 -6
  131. package/dist/procedures/capability.d.ts.map +1 -1
  132. package/dist/procedures/capability.js +7 -8
  133. package/dist/procedures/capability.js.map +1 -1
  134. package/dist/procedures/collection/index.d.ts +3 -3
  135. package/dist/procedures/collection/index.d.ts.map +1 -1
  136. package/dist/procedures/collection/index.js +1 -1
  137. package/dist/procedures/collection/index.js.map +1 -1
  138. package/dist/procedures/collection/procedures.d.ts.map +1 -1
  139. package/dist/procedures/collection/procedures.js +49 -1
  140. package/dist/procedures/collection/procedures.js.map +1 -1
  141. package/dist/procedures/collection/schemas.d.ts +33 -0
  142. package/dist/procedures/collection/schemas.d.ts.map +1 -1
  143. package/dist/procedures/collection/schemas.js +68 -0
  144. package/dist/procedures/collection/schemas.js.map +1 -1
  145. package/dist/procedures/collection/storage.d.ts +37 -0
  146. package/dist/procedures/collection/storage.d.ts.map +1 -1
  147. package/dist/procedures/core/array.d.ts.map +1 -1
  148. package/dist/procedures/core/array.js +26 -15
  149. package/dist/procedures/core/array.js.map +1 -1
  150. package/dist/procedures/core/index.d.ts.map +1 -1
  151. package/dist/procedures/core/index.js +8 -0
  152. package/dist/procedures/core/index.js.map +1 -1
  153. package/dist/procedures/core/meta.d.ts.map +1 -1
  154. package/dist/procedures/core/meta.js +2 -1
  155. package/dist/procedures/core/meta.js.map +1 -1
  156. package/dist/procedures/core/object.d.ts.map +1 -1
  157. package/dist/procedures/core/object.js +42 -13
  158. package/dist/procedures/core/object.js.map +1 -1
  159. package/dist/procedures/core/operands.d.ts.map +1 -1
  160. package/dist/procedures/core/operands.js +6 -1
  161. package/dist/procedures/core/operands.js.map +1 -1
  162. package/dist/procedures/core/string.d.ts.map +1 -1
  163. package/dist/procedures/core/string.js +4 -2
  164. package/dist/procedures/core/string.js.map +1 -1
  165. package/dist/procedures/define-procedure.d.ts +19 -7
  166. package/dist/procedures/define-procedure.d.ts.map +1 -1
  167. package/dist/procedures/define-procedure.js +57 -17
  168. package/dist/procedures/define-procedure.js.map +1 -1
  169. package/dist/procedures/effects.d.ts +16 -0
  170. package/dist/procedures/effects.d.ts.map +1 -1
  171. package/dist/procedures/effects.js +33 -0
  172. package/dist/procedures/effects.js.map +1 -1
  173. package/dist/procedures/idempotency.d.ts +73 -0
  174. package/dist/procedures/idempotency.d.ts.map +1 -0
  175. package/dist/procedures/idempotency.js +131 -0
  176. package/dist/procedures/idempotency.js.map +1 -0
  177. package/dist/procedures/index.d.ts +7 -3
  178. package/dist/procedures/index.d.ts.map +1 -1
  179. package/dist/procedures/index.js +6 -2
  180. package/dist/procedures/index.js.map +1 -1
  181. package/dist/procedures/interceptors.d.ts +17 -4
  182. package/dist/procedures/interceptors.d.ts.map +1 -1
  183. package/dist/procedures/interceptors.js +18 -7
  184. package/dist/procedures/interceptors.js.map +1 -1
  185. package/dist/procedures/invoke.d.ts +15 -3
  186. package/dist/procedures/invoke.d.ts.map +1 -1
  187. package/dist/procedures/invoke.js +8 -3
  188. package/dist/procedures/invoke.js.map +1 -1
  189. package/dist/procedures/manifest.d.ts +83 -0
  190. package/dist/procedures/manifest.d.ts.map +1 -0
  191. package/dist/procedures/manifest.js +90 -0
  192. package/dist/procedures/manifest.js.map +1 -0
  193. package/dist/procedures/runtime-programs.d.ts +19 -0
  194. package/dist/procedures/runtime-programs.d.ts.map +1 -0
  195. package/dist/procedures/runtime-programs.js +24 -0
  196. package/dist/procedures/runtime-programs.js.map +1 -0
  197. package/dist/procedures/types.d.ts +16 -0
  198. package/dist/procedures/types.d.ts.map +1 -1
  199. package/dist/procedures/types.js.map +1 -1
  200. package/dist/protocol.d.ts +40 -0
  201. package/dist/protocol.d.ts.map +1 -0
  202. package/dist/protocol.js +58 -0
  203. package/dist/protocol.js.map +1 -0
  204. package/dist/server/host-policy.d.ts +4 -3
  205. package/dist/server/host-policy.d.ts.map +1 -1
  206. package/dist/server/host-policy.js +6 -3
  207. package/dist/server/host-policy.js.map +1 -1
  208. package/dist/server/host-procedures.d.ts +31 -0
  209. package/dist/server/host-procedures.d.ts.map +1 -0
  210. package/dist/server/host-procedures.js +75 -0
  211. package/dist/server/host-procedures.js.map +1 -0
  212. package/dist/server/index.d.ts +3 -3
  213. package/dist/server/index.d.ts.map +1 -1
  214. package/dist/server/index.js +1 -1
  215. package/dist/server/index.js.map +1 -1
  216. package/dist/server/procedure-server.d.ts +110 -4
  217. package/dist/server/procedure-server.d.ts.map +1 -1
  218. package/dist/server/procedure-server.js +269 -17
  219. package/dist/server/procedure-server.js.map +1 -1
  220. package/dist/server/request-auth.d.ts +19 -0
  221. package/dist/server/request-auth.d.ts.map +1 -0
  222. package/dist/server/request-auth.js +32 -0
  223. package/dist/server/request-auth.js.map +1 -0
  224. package/dist/server/types.d.ts +32 -0
  225. package/dist/server/types.d.ts.map +1 -1
  226. package/dist/server/types.js.map +1 -1
  227. package/dist/timers.d.ts +60 -0
  228. package/dist/timers.d.ts.map +1 -0
  229. package/dist/timers.js +33 -0
  230. package/dist/timers.js.map +1 -0
  231. package/dist/tracing/traceparent.d.ts +26 -0
  232. package/dist/tracing/traceparent.d.ts.map +1 -0
  233. package/dist/tracing/traceparent.js +53 -0
  234. package/dist/tracing/traceparent.js.map +1 -0
  235. package/package.json +7 -1
  236. package/src/adapters/http/client/transport.ts +31 -3
  237. package/src/adapters/http/client/types.ts +3 -2
  238. package/src/adapters/http/server/transport.ts +60 -24
  239. package/src/adapters/http/shared/headers.ts +7 -6
  240. package/src/adapters/local/client/transport.ts +70 -5
  241. package/src/adapters/local/client/types.ts +18 -0
  242. package/src/adapters/mock/client/transport.ts +9 -6
  243. package/src/adapters/mock/client/types.ts +7 -6
  244. package/src/adapters/port/transport.ts +124 -0
  245. package/src/adapters/websocket/client/index.ts +1 -0
  246. package/src/adapters/websocket/client/transport.ts +232 -73
  247. package/src/adapters/websocket/client/types.ts +80 -21
  248. package/src/adapters/websocket/server/transport.ts +199 -301
  249. package/src/adapters/websocket/server/types.ts +20 -1
  250. package/src/adapters/websocket/shared/rpc.ts +453 -0
  251. package/src/browser.ts +51 -3
  252. package/src/client/call-types.ts +10 -14
  253. package/src/client/client.ts +28 -9
  254. package/src/client/deadline.ts +64 -0
  255. package/src/client/errors/factory.ts +12 -8
  256. package/src/client/index.ts +21 -3
  257. package/src/client/middleware/cache.ts +120 -23
  258. package/src/client/middleware/circuit-breaker.ts +65 -35
  259. package/src/client/middleware/contexts.ts +17 -10
  260. package/src/client/middleware/items.ts +101 -6
  261. package/src/client/middleware/lru.ts +12 -0
  262. package/src/client/middleware/rate-limit.ts +9 -7
  263. package/src/client/middleware/resilience.ts +81 -0
  264. package/src/client/middleware/retry.ts +146 -34
  265. package/src/client/middleware/timeout.ts +55 -46
  266. package/src/client/middleware/tracing.ts +13 -4
  267. package/src/client/types.ts +9 -1
  268. package/src/clock.ts +21 -0
  269. package/src/duration.ts +56 -0
  270. package/src/machines.ts +186 -0
  271. package/src/procedures/capability.ts +7 -8
  272. package/src/procedures/collection/index.ts +9 -1
  273. package/src/procedures/collection/procedures.ts +57 -0
  274. package/src/procedures/collection/schemas.ts +110 -0
  275. package/src/procedures/collection/storage.ts +38 -0
  276. package/src/procedures/core/array.ts +27 -16
  277. package/src/procedures/core/index.ts +8 -0
  278. package/src/procedures/core/meta.ts +2 -1
  279. package/src/procedures/core/object.ts +48 -14
  280. package/src/procedures/core/operands.ts +7 -0
  281. package/src/procedures/core/string.ts +4 -2
  282. package/src/procedures/define-procedure.ts +73 -20
  283. package/src/procedures/effects.ts +35 -0
  284. package/src/procedures/idempotency.ts +152 -0
  285. package/src/procedures/index.ts +18 -2
  286. package/src/procedures/interceptors.ts +28 -11
  287. package/src/procedures/invoke.ts +19 -5
  288. package/src/procedures/manifest.ts +158 -0
  289. package/src/procedures/runtime-programs.ts +27 -0
  290. package/src/procedures/types.ts +16 -0
  291. package/src/protocol.ts +97 -0
  292. package/src/server/host-policy.ts +8 -5
  293. package/src/server/host-procedures.ts +102 -0
  294. package/src/server/index.ts +5 -2
  295. package/src/server/procedure-server.ts +324 -10
  296. package/src/server/request-auth.ts +35 -0
  297. package/src/server/types.ts +37 -0
  298. package/src/timers.ts +82 -0
  299. package/src/tracing/traceparent.ts +61 -0
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/local/client/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/local/client/transport.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@
5
5
  */
6
6
  import type { Message, Method } from "../../../client/types.js";
7
7
  import type { ProcedureRegistry } from "../../../procedures/registry.js";
8
+ import type { Interceptor } from "../../../procedures/invoke.js";
9
+ import type { Capability, ClearanceOrder } from "../../../procedures/types.js";
8
10
  /**
9
11
  * Handler function for a method.
10
12
  */
@@ -35,5 +37,18 @@ export interface LocalTransportOptions {
35
37
  * The procedure runs through `invokeProcedure()`, as on a server.
36
38
  */
37
39
  registry?: ProcedureRegistry;
40
+ /**
41
+ * The interceptors of each procedure that the transport runs, as on a server: policy, tracing,
42
+ * timeouts, metrics (roadmap R14). Before, a local call had none.
43
+ */
44
+ interceptors?: readonly Interceptor[] | undefined;
45
+ /**
46
+ * The capability of each call. The remaining time that a call sends (`procedure-timeout`)
47
+ * makes its deadline earlier, as on a server: a `Client` with a timeout gives a local call a
48
+ * deadline too (roadmap R14).
49
+ */
50
+ capability?: Capability | undefined;
51
+ /** The order of the clearance values of the capability. */
52
+ clearanceOrder?: ClearanceOrder | undefined;
38
53
  }
39
54
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/local/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,IAAI,CACpD,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KACnB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AAEhD;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/local/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,IAAI,CACpD,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KACnB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AAEhD;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAE7B;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,CAAC;IAElD;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAEpC,2DAA2D;IAC3D,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CAC7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/adapters/local/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/adapters/local/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;AAC5D,CAAC"}
@@ -19,8 +19,8 @@ import type { MockResponse, ResponseMatcher, MockTransportOptions, CallHistoryEn
19
19
  * ```typescript
20
20
  * // Create mock transport with latency
21
21
  * const mock = new MockTransport({
22
- * minLatency: 10,
23
- * maxLatency: 50,
22
+ * minLatency: ms(10),
23
+ * maxLatency: ms(50),
24
24
  * });
25
25
  *
26
26
  * // Mock a specific response
@@ -49,6 +49,7 @@ import type { MockResponse, ResponseMatcher, MockTransportOptions, CallHistoryEn
49
49
  */
50
50
  export declare class MockTransport implements Transport {
51
51
  readonly name = "mock";
52
+ /** The options, with the latencies in milliseconds */
52
53
  private options;
53
54
  private responses;
54
55
  private history;
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mock/client/transport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,IAAI,UAAU;IAEvB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,OAAO,CAA0B;IAEzC,YAAY,OAAO,GAAE,oBAAyB,EAS7C;IAED;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,IAAI,GAAG,OAAO,EACzB,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,GAC3B,IAAI,CAEN;IAED;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,GAAG,OAAO,EACxB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,IAAI,EACb,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,IAAI,CAYN;IAED;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIzD;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAAI,GAAG,OAAO,EACvB,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,GAC1B,IAAI,CAEN;IAED;;OAEG;IACH,UAAU,IAAI,IAAI,CAEjB;IAED;;;;OAIG;IACH,QAAQ,IAAI,gBAAgB,EAAE,CAE7B;IAED;;;;;OAKG;IACH,gBAAgB,CACd,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,GAC9C,gBAAgB,EAAE,CAEpB;IAED;;;;OAIG;IACH,WAAW,IAAI,gBAAgB,GAAG,SAAS,CAE1C;IAED;;OAEG;IACH,YAAY,IAAI,IAAI,CAEnB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAGZ;IAED;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,IAAI,EACpB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GACrB,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAgFnC;IAED;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAED;;OAEG;YACW,eAAe;IAY7B;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,UAAU;CAuBnB"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mock/client/transport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAGpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,IAAI,UAAU;IAEvB,sDAAsD;IACtD,OAAO,CAAC,OAAO,CAAiH;IAChI,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,OAAO,CAA0B;IAEzC,YAAY,OAAO,GAAE,oBAAyB,EAS7C;IAED;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,IAAI,GAAG,OAAO,EACzB,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,GAC3B,IAAI,CAEN;IAED;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,GAAG,OAAO,EACxB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,IAAI,EACb,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,IAAI,CAYN;IAED;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIzD;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAAI,GAAG,OAAO,EACvB,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,GAC1B,IAAI,CAEN;IAED;;OAEG;IACH,UAAU,IAAI,IAAI,CAEjB;IAED;;;;OAIG;IACH,QAAQ,IAAI,gBAAgB,EAAE,CAE7B;IAED;;;;;OAKG;IACH,gBAAgB,CACd,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,GAC9C,gBAAgB,EAAE,CAEpB;IAED;;;;OAIG;IACH,WAAW,IAAI,gBAAgB,GAAG,SAAS,CAE1C;IAED;;OAEG;IACH,YAAY,IAAI,IAAI,CAEnB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAGZ;IAED;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,IAAI,EACpB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GACrB,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAiFnC;IAED;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAED;;OAEG;YACW,eAAe;IAY7B;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,UAAU;CAuBnB"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * In-memory transport that simulates network behavior for testing.
5
5
  */
6
+ import { optionalMs } from "../../../duration.js";
6
7
  /**
7
8
  * Mock transport implementation for testing.
8
9
  *
@@ -17,8 +18,8 @@
17
18
  * ```typescript
18
19
  * // Create mock transport with latency
19
20
  * const mock = new MockTransport({
20
- * minLatency: 10,
21
- * maxLatency: 50,
21
+ * minLatency: ms(10),
22
+ * maxLatency: ms(50),
22
23
  * });
23
24
  *
24
25
  * // Mock a specific response
@@ -47,13 +48,14 @@
47
48
  */
48
49
  export class MockTransport {
49
50
  name = "mock";
51
+ /** The options, with the latencies in milliseconds */
50
52
  options;
51
53
  responses = new Map();
52
54
  history = [];
53
55
  constructor(options = {}) {
54
56
  this.options = {
55
- minLatency: options.minLatency ?? 0,
56
- maxLatency: options.maxLatency ?? 0,
57
+ minLatency: optionalMs(options.minLatency, "minLatency") ?? 0,
58
+ maxLatency: optionalMs(options.maxLatency, "maxLatency") ?? 0,
57
59
  failureRate: options.failureRate ?? 0,
58
60
  defaultErrorMessage: options.defaultErrorMessage ?? "Mock transport error",
59
61
  trackHistory: options.trackHistory ?? true,
@@ -202,7 +204,8 @@ export class MockTransport {
202
204
  }
203
205
  // Apply custom delay if specified
204
206
  if (mockResponse.delay !== undefined) {
205
- await new Promise((resolve) => setTimeout(resolve, mockResponse.delay));
207
+ const delay = optionalMs(mockResponse.delay, "delay");
208
+ await new Promise((resolve) => setTimeout(resolve, delay));
206
209
  }
207
210
  // Handle error response
208
211
  if (mockResponse.error) {
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/mock/client/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/mock/client/transport.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * Type definitions for Mock adapter testing utilities.
5
5
  */
6
6
  import type { Message, ResponseItem } from "../../../client/types.js";
7
+ import type { Duration } from "../../../duration.js";
7
8
  /**
8
9
  * Mock response configuration.
9
10
  */
@@ -21,10 +22,10 @@ export interface MockResponse<TRes = unknown> {
21
22
  */
22
23
  error?: Error;
23
24
  /**
24
- * Delay in milliseconds before responding
25
+ * Delay before responding
25
26
  * @default Uses transport's latency config
26
27
  */
27
- delay?: number;
28
+ delay?: Duration;
28
29
  /**
29
30
  * Number of times this response can be used
30
31
  * @default Infinity (reusable)
@@ -40,15 +41,15 @@ export type ResponseMatcher = (method: any, payload: unknown) => boolean;
40
41
  */
41
42
  export interface MockTransportOptions {
42
43
  /**
43
- * Minimum latency in milliseconds
44
+ * Minimum latency
44
45
  * @default 0
45
46
  */
46
- minLatency?: number;
47
+ minLatency?: Duration;
47
48
  /**
48
- * Maximum latency in milliseconds
49
+ * Maximum latency
49
50
  * @default 0
50
51
  */
51
- maxLatency?: number;
52
+ maxLatency?: Duration;
52
53
  /**
53
54
  * Random failure rate (0-1)
54
55
  * @default 0
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mock/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,IAAI,GAAG,OAAO;IAC1C;;OAEG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;IAE7B;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAE1B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,IAAI,GAAG,OAAO;IAC9C,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mock/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,IAAI,GAAG,OAAO;IAC1C;;OAEG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;IAE7B;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAE1B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,QAAQ,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,QAAQ,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,IAAI,GAAG,OAAO;IAC9C,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * The transport over a message port (roadmap R27): a Web Worker, a `MessagePort` of a
3
+ * `MessageChannel`, an iframe, or a `worker_threads` port of Node.
4
+ *
5
+ * The two sides of a port send calls to each other with the frames of the WebSocket transport
6
+ * (`websocket/shared/rpc.ts`): a request, then a response, an error, or a stream with credit, and
7
+ * a cancel. A port sends objects, not text, so a frame needs no JSON. A side serves the calls of
8
+ * the other side with its `serve` handler, for example a `ProcedureServer`. Before, the site had
9
+ * two worker protocols of its own.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * // In the worker: serve the procedures of a registry
14
+ * new PortTransport(self, { serve: new ProcedureServer({ registry, autoRegister: true }) });
15
+ *
16
+ * // On the page: call them
17
+ * const client = new Client(new PortTransport(new Worker(url, { type: "module" })));
18
+ * for await (const item of client.stream({ service: "site", operation: "run" }, input)) { ... }
19
+ * ```
20
+ */
21
+ import type { Message, ResponseItem, Transport } from "../../client/types.js";
22
+ import type { RequestHandler } from "../../server/types.js";
23
+ /**
24
+ * A message port: the object that a worker, a `MessagePort` or a `worker_threads` port gives. It
25
+ * has `postMessage`, and `addEventListener` (the browser form) or `on` (the Node form).
26
+ *
27
+ * The event of a listener has the type `any`: the DOM and Node give it different types, and a
28
+ * port of each must fit without a cast. The transport reads only its `data`.
29
+ */
30
+ export interface PortLike {
31
+ postMessage(message: unknown): void;
32
+ addEventListener?(type: "message", listener: (event: any) => void): void;
33
+ removeEventListener?(type: "message", listener: (event: any) => void): void;
34
+ on?(type: "message", listener: (data: unknown) => void): unknown;
35
+ off?(type: "message", listener: (data: unknown) => void): unknown;
36
+ /** A `MessagePort` delivers its messages to `addEventListener` only after `start()`. */
37
+ start?(): void;
38
+ }
39
+ /** The options of a `PortTransport`. */
40
+ export interface PortTransportOptions {
41
+ /** The handler of the calls of the other side, for example a `ProcedureServer`. */
42
+ serve?: RequestHandler | undefined;
43
+ /** The number of stream items that the reader holds. The default is 64. */
44
+ streamWindow?: number | undefined;
45
+ }
46
+ /** The transport over a message port, in the two directions. */
47
+ export declare class PortTransport implements Transport {
48
+ private readonly port;
49
+ readonly name = "port";
50
+ private readonly outgoing;
51
+ private readonly incoming;
52
+ private open;
53
+ private readonly onBrowserMessage;
54
+ private readonly onNodeMessage;
55
+ constructor(port: PortLike, options?: PortTransportOptions);
56
+ private receive;
57
+ /** This function sends a call to the other side, and gives its response items. */
58
+ send<TReq, TRes>(message: Message<TReq>): AsyncIterable<ResponseItem<TRes>>;
59
+ /** This function stops the calls in the two directions, and stops to listen. It does not close the port. */
60
+ close(): Promise<void>;
61
+ }
62
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/adapters/port/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEpC,gBAAgB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAEzE,mBAAmB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5E,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC;IACjE,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC;IAClE,wFAAwF;IACxF,KAAK,CAAC,IAAI,IAAI,CAAC;CAChB;AAED,wCAAwC;AACxC,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAOD,gEAAgE;AAChE,qBAAa,aAAc,YAAW,SAAS;IAS3C,OAAO,CAAC,QAAQ,CAAC,IAAI;IARvB,QAAQ,CAAC,IAAI,UAAU;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgE;IACjG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+C;IAE7E,YACmB,IAAI,EAAE,QAAQ,EAC/B,OAAO,GAAE,oBAAyB,EA+BnC;IAED,OAAO,CAAC,OAAO;IAMf,kFAAkF;IAClF,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAE1E;IAED,4GAA4G;IACtG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAO3B;CACF"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * The transport over a message port (roadmap R27): a Web Worker, a `MessagePort` of a
3
+ * `MessageChannel`, an iframe, or a `worker_threads` port of Node.
4
+ *
5
+ * The two sides of a port send calls to each other with the frames of the WebSocket transport
6
+ * (`websocket/shared/rpc.ts`): a request, then a response, an error, or a stream with credit, and
7
+ * a cancel. A port sends objects, not text, so a frame needs no JSON. A side serves the calls of
8
+ * the other side with its `serve` handler, for example a `ProcedureServer`. Before, the site had
9
+ * two worker protocols of its own.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * // In the worker: serve the procedures of a registry
14
+ * new PortTransport(self, { serve: new ProcedureServer({ registry, autoRegister: true }) });
15
+ *
16
+ * // On the page: call them
17
+ * const client = new Client(new PortTransport(new Worker(url, { type: "module" })));
18
+ * for await (const item of client.stream({ service: "site", operation: "run" }, input)) { ... }
19
+ * ```
20
+ */
21
+ import { IncomingCalls, OutgoingCalls } from "../websocket/shared/rpc.js";
22
+ import { withoutInternalKeys } from "../metadata.js";
23
+ /** A frame of the protocol: an object with an id and a type. */
24
+ function isFrame(value) {
25
+ return value !== null && typeof value === "object" && typeof value.type === "string";
26
+ }
27
+ /** The transport over a message port, in the two directions. */
28
+ export class PortTransport {
29
+ port;
30
+ name = "port";
31
+ outgoing;
32
+ incoming;
33
+ open = true;
34
+ onBrowserMessage = (event) => this.receive(event.data);
35
+ onNodeMessage = (data) => this.receive(data);
36
+ constructor(port, options = {}) {
37
+ this.port = port;
38
+ const send = (frame) => this.port.postMessage(frame);
39
+ const isOpen = () => this.open;
40
+ this.outgoing = new OutgoingCalls({
41
+ send,
42
+ isOpen,
43
+ // No time limit: a worker can run a long program. The `signal` of a call stops it. This file
44
+ // does not import the Durations (quantity, 6 kB of gzip), so the page of a worker stays small.
45
+ requestTimeoutMs: 0,
46
+ streamWindow: Math.max(2, options.streamWindow ?? 64),
47
+ idPrefix: "",
48
+ });
49
+ if (options.serve) {
50
+ this.incoming = new IncomingCalls({
51
+ handler: options.serve,
52
+ send,
53
+ isOpen,
54
+ // A call over a port comes from a part of this application: it has no credentials
55
+ requestOf: (frame, signal) => ({
56
+ id: frame.id,
57
+ method: frame.method,
58
+ payload: frame.payload === undefined ? {} : frame.payload,
59
+ metadata: withoutInternalKeys(frame.metadata),
60
+ signal,
61
+ }),
62
+ });
63
+ }
64
+ if (port.addEventListener)
65
+ port.addEventListener("message", this.onBrowserMessage);
66
+ else
67
+ port.on?.("message", this.onNodeMessage);
68
+ port.start?.();
69
+ }
70
+ receive(data) {
71
+ if (!this.open || !isFrame(data))
72
+ return;
73
+ if (this.outgoing.receive(data))
74
+ return;
75
+ this.incoming?.receive(data);
76
+ }
77
+ /** This function sends a call to the other side, and gives its response items. */
78
+ send(message) {
79
+ return this.outgoing.call(message);
80
+ }
81
+ /** This function stops the calls in the two directions, and stops to listen. It does not close the port. */
82
+ async close() {
83
+ if (!this.open)
84
+ return;
85
+ this.open = false;
86
+ this.outgoing.failAll("The port transport closed");
87
+ this.incoming?.abortAll();
88
+ if (this.port.removeEventListener)
89
+ this.port.removeEventListener("message", this.onBrowserMessage);
90
+ else
91
+ this.port.off?.("message", this.onNodeMessage);
92
+ }
93
+ }
94
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/adapters/port/transport.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Public API for WebSocket client adapter.
5
5
  */
6
- export type { WebSocketTransportOptions, WebSocketMessage, ServerRequestMessage, ServerRequestHandler, EventHandler, } from "./types.js";
6
+ export type { WebSocketTransportOptions, WebSocketClass, WebSocketMessage, ServerRequestMessage, ServerRequestHandler, EventHandler, } from "./types.js";
7
7
  export { WebSocketState } from "./types.js";
8
8
  export { WebSocketTransport } from "./transport.js";
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,YAAY;AACZ,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,YAAY;AACZ,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -7,6 +7,18 @@
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
+ /**
11
+ * The delay before a reconnect try (from 1): an exponential backoff up to `maxDelay`, with a
12
+ * random part. With `jitter: 1` (full jitter, the default), the delay is a random time from 0 to
13
+ * the backoff, so the clients of a server that restarted do not come back at the same moments
14
+ * (roadmap R3). The backoff is `backoffDelay` of `@mark1russell7/service/backoff` (roadmap R37).
15
+ */
16
+ export declare function reconnectDelay(attempt: number, options: {
17
+ initialDelay: number;
18
+ backoffMultiplier: number;
19
+ maxDelay: number;
20
+ jitter: number;
21
+ }, random?: () => number): number;
10
22
  export declare class WebSocketTransport implements Transport {
11
23
  readonly name = "websocket";
12
24
  private ws;
@@ -26,14 +38,30 @@ export declare class WebSocketTransport implements Transport {
26
38
  private closing;
27
39
  private reconnectAttempts;
28
40
  private reconnectTimer;
29
- private heartbeatTimer;
30
- private heartbeatTimeout;
41
+ /** The heartbeat of the connection: `heartbeat` of `@mark1russell7/service/heartbeat` (roadmap R37) */
42
+ private heartbeat;
43
+ /** The clock of each timer of the transport (roadmap R35) */
44
+ private readonly clock;
45
+ /** The class of the sockets, or undefined for the global `WebSocket` (finding of roadmap R36) */
46
+ private readonly webSocketClass;
47
+ /** The observer of the changes of the state (roadmap R35) */
48
+ private readonly transitionHandler;
49
+ /** The protocol version of the server, from its hello, or undefined (an older server) (R25) */
50
+ private serverProtocol;
51
+ /** The calls that the server sends on the current socket, served by `serve` (roadmap R24) */
52
+ private incoming;
53
+ /** The time limit of the handshake of the socket that opens now */
54
+ private handshakeTimer;
31
55
  constructor(options: WebSocketTransportOptions);
32
- /** Change the state, and tell the callers that wait for a connection. */
56
+ /**
57
+ * Change the state, and tell the callers that wait for a connection. `on` is the event of
58
+ * `WEBSOCKET_CONNECTION_MACHINE`: a change goes to `onTransition` (roadmap R35).
59
+ */
33
60
  private setState;
34
61
  /**
35
62
  * Connect to WebSocket server.
36
63
  */
64
+ /** `on` is the event of the machine: the first connect, or the end of a backoff. */
37
65
  private connect;
38
66
  /**
39
67
  * Leave the current socket without waiting for its close handshake, and handle the close
@@ -52,16 +80,23 @@ export declare class WebSocketTransport implements Transport {
52
80
  */
53
81
  private scheduleReconnect;
54
82
  /**
55
- * Start heartbeat to keep connection alive.
83
+ * Start the heartbeat of the connection: a ping each interval on the clock, one ping at a time.
84
+ * A ping without a pong at its timeout is a miss. The connection drops after `misses` misses in
85
+ * sequence. A ping whose send throws is a miss too.
56
86
  */
57
87
  private startHeartbeat;
58
- /**
59
- * Stop heartbeat.
60
- */
88
+ /** Stop the time limit of the handshake. */
89
+ private clearHandshakeTimer;
90
+ /** Stop the heartbeat: its ticks, its timeout and its count of misses. */
61
91
  private stopHeartbeat;
62
92
  /**
63
93
  * Handle incoming message.
64
94
  */
95
+ /**
96
+ * The calls of the server on a socket, served by the `serve` option (or by `onServerRequest`, or
97
+ * with `NOT_FOUND`), with the same frames as the calls of the client (roadmap R24).
98
+ */
99
+ private servedCallsOf;
65
100
  private handleMessage;
66
101
  /**
67
102
  * Send a request and yield its response items as they arrive: one item for a request/response
@@ -94,6 +129,11 @@ export declare class WebSocketTransport implements Transport {
94
129
  * Close WebSocket connection. The requests in progress fail.
95
130
  */
96
131
  close(): Promise<void>;
132
+ /**
133
+ * The protocol version of the server: from its hello, or undefined before the hello or for a
134
+ * server older than protocol v1 (roadmap R25).
135
+ */
136
+ getServerProtocol(): number | undefined;
97
137
  /**
98
138
  * Get current connection state.
99
139
  */
@@ -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,EAAwD,MAAM,YAAY,CAAC;AAClH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAsF5C,qBAAa,kBAAmB,YAAW,SAAS;IAClD,QAAQ,CAAC,IAAI,eAAe;IAE5B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,OAAO,CAuBb;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,CAAwD;IAC9E,OAAO,CAAC,cAAc,CAAwD;IAC9E,OAAO,CAAC,gBAAgB,CAAwD;IAEhF,YAAY,OAAO,EAAE,yBAAyB,EA4B7C;IAED,yEAAyE;IACzE,OAAO,CAAC,QAAQ;IAKhB;;OAEG;IACH,OAAO,CAAC,OAAO;IAiEf;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAiBtB,yEAAyE;IACzE,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAqBnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAuBtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,aAAa;IA8HrB;;;;;;;;;;;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,CA0B3B;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;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"}