@norskvideo/moq-net 0.1.2 → 0.1.4

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 (310) hide show
  1. package/README.md +1 -0
  2. package/announced.d.ts +111 -21
  3. package/announced.d.ts.map +1 -1
  4. package/announced.js +213 -40
  5. package/announced.js.map +1 -1
  6. package/broadcast.d.ts +80 -25
  7. package/broadcast.d.ts.map +1 -1
  8. package/broadcast.js +270 -49
  9. package/broadcast.js.map +1 -1
  10. package/connection/accept.d.ts +6 -0
  11. package/connection/accept.d.ts.map +1 -1
  12. package/connection/accept.js +42 -13
  13. package/connection/accept.js.map +1 -1
  14. package/connection/browser.d.ts +5 -0
  15. package/connection/browser.d.ts.map +1 -0
  16. package/connection/browser.js +31 -0
  17. package/connection/browser.js.map +1 -0
  18. package/connection/connect.d.ts +43 -1
  19. package/connection/connect.d.ts.map +1 -1
  20. package/connection/connect.js +118 -123
  21. package/connection/connect.js.map +1 -1
  22. package/connection/established.d.ts +43 -16
  23. package/connection/established.d.ts.map +1 -1
  24. package/connection/established.js.map +1 -1
  25. package/connection/handshake.d.ts +12 -1
  26. package/connection/handshake.d.ts.map +1 -1
  27. package/connection/handshake.js +30 -14
  28. package/connection/handshake.js.map +1 -1
  29. package/connection/index.d.ts +8 -0
  30. package/connection/index.d.ts.map +1 -1
  31. package/connection/index.js +6 -0
  32. package/connection/index.js.map +1 -1
  33. package/connection/reload.d.ts +66 -9
  34. package/connection/reload.d.ts.map +1 -1
  35. package/connection/reload.js +192 -66
  36. package/connection/reload.js.map +1 -1
  37. package/connection/stats.d.ts +92 -0
  38. package/connection/stats.d.ts.map +1 -0
  39. package/connection/stats.js +35 -0
  40. package/connection/stats.js.map +1 -0
  41. package/connection/transport.d.ts +10 -0
  42. package/connection/transport.d.ts.map +1 -0
  43. package/connection/transport.js +12 -0
  44. package/connection/transport.js.map +1 -0
  45. package/consume.d.ts +44 -0
  46. package/consume.d.ts.map +1 -0
  47. package/consume.js +60 -0
  48. package/consume.js.map +1 -0
  49. package/datagram.d.ts +23 -0
  50. package/datagram.d.ts.map +1 -0
  51. package/datagram.js +3 -0
  52. package/datagram.js.map +1 -0
  53. package/error.d.ts +76 -0
  54. package/error.d.ts.map +1 -0
  55. package/error.js +107 -0
  56. package/error.js.map +1 -0
  57. package/group.d.ts +143 -38
  58. package/group.d.ts.map +1 -1
  59. package/group.js +270 -68
  60. package/group.js.map +1 -1
  61. package/ietf/adapter.d.ts +2 -2
  62. package/ietf/adapter.d.ts.map +1 -1
  63. package/ietf/adapter.js +20 -10
  64. package/ietf/adapter.js.map +1 -1
  65. package/ietf/aliases.d.ts +73 -5
  66. package/ietf/aliases.d.ts.map +1 -1
  67. package/ietf/aliases.js +121 -14
  68. package/ietf/aliases.js.map +1 -1
  69. package/ietf/cluster.d.ts +141 -0
  70. package/ietf/cluster.d.ts.map +1 -0
  71. package/ietf/cluster.js +204 -0
  72. package/ietf/cluster.js.map +1 -0
  73. package/ietf/connection.d.ts +39 -6
  74. package/ietf/connection.d.ts.map +1 -1
  75. package/ietf/connection.js +73 -12
  76. package/ietf/connection.js.map +1 -1
  77. package/ietf/fetch.d.ts +17 -0
  78. package/ietf/fetch.d.ts.map +1 -1
  79. package/ietf/fetch.js +21 -0
  80. package/ietf/fetch.js.map +1 -1
  81. package/ietf/filter.d.ts +87 -0
  82. package/ietf/filter.d.ts.map +1 -0
  83. package/ietf/filter.js +292 -0
  84. package/ietf/filter.js.map +1 -0
  85. package/ietf/index.d.ts +2 -0
  86. package/ietf/index.d.ts.map +1 -1
  87. package/ietf/index.js +3 -0
  88. package/ietf/index.js.map +1 -1
  89. package/ietf/namespace.d.ts +6 -0
  90. package/ietf/namespace.d.ts.map +1 -1
  91. package/ietf/namespace.js +27 -2
  92. package/ietf/namespace.js.map +1 -1
  93. package/ietf/object.d.ts +54 -6
  94. package/ietf/object.d.ts.map +1 -1
  95. package/ietf/object.js +178 -25
  96. package/ietf/object.js.map +1 -1
  97. package/ietf/parameters.d.ts +35 -10
  98. package/ietf/parameters.d.ts.map +1 -1
  99. package/ietf/parameters.js +236 -45
  100. package/ietf/parameters.js.map +1 -1
  101. package/ietf/priority.d.ts +5 -0
  102. package/ietf/priority.d.ts.map +1 -0
  103. package/ietf/priority.js +10 -0
  104. package/ietf/priority.js.map +1 -0
  105. package/ietf/properties.d.ts +13 -2
  106. package/ietf/properties.d.ts.map +1 -1
  107. package/ietf/properties.js +65 -8
  108. package/ietf/properties.js.map +1 -1
  109. package/ietf/publish.d.ts.map +1 -1
  110. package/ietf/publish.js +13 -3
  111. package/ietf/publish.js.map +1 -1
  112. package/ietf/publish_namespace.d.ts +16 -2
  113. package/ietf/publish_namespace.d.ts.map +1 -1
  114. package/ietf/publish_namespace.js +25 -6
  115. package/ietf/publish_namespace.js.map +1 -1
  116. package/ietf/publisher.d.ts +40 -7
  117. package/ietf/publisher.d.ts.map +1 -1
  118. package/ietf/publisher.js +751 -134
  119. package/ietf/publisher.js.map +1 -1
  120. package/ietf/request.js +1 -1
  121. package/ietf/request.js.map +1 -1
  122. package/ietf/solicit.d.ts +41 -0
  123. package/ietf/solicit.d.ts.map +1 -0
  124. package/ietf/solicit.js +47 -0
  125. package/ietf/solicit.js.map +1 -0
  126. package/ietf/subscribe.d.ts +41 -2
  127. package/ietf/subscribe.d.ts.map +1 -1
  128. package/ietf/subscribe.js +103 -22
  129. package/ietf/subscribe.js.map +1 -1
  130. package/ietf/subscribe_namespace.d.ts +21 -7
  131. package/ietf/subscribe_namespace.d.ts.map +1 -1
  132. package/ietf/subscribe_namespace.js +31 -14
  133. package/ietf/subscribe_namespace.js.map +1 -1
  134. package/ietf/subscriber.d.ts +20 -7
  135. package/ietf/subscriber.d.ts.map +1 -1
  136. package/ietf/subscriber.js +512 -142
  137. package/ietf/subscriber.js.map +1 -1
  138. package/ietf/version.d.ts +7 -1
  139. package/ietf/version.d.ts.map +1 -1
  140. package/ietf/version.js +7 -0
  141. package/ietf/version.js.map +1 -1
  142. package/index.d.ts +10 -5
  143. package/index.d.ts.map +1 -1
  144. package/index.js +10 -5
  145. package/index.js.map +1 -1
  146. package/internal.d.ts +29 -0
  147. package/internal.d.ts.map +1 -0
  148. package/internal.js +8 -0
  149. package/internal.js.map +1 -0
  150. package/lite/announce.d.ts +62 -15
  151. package/lite/announce.d.ts.map +1 -1
  152. package/lite/announce.js +230 -94
  153. package/lite/announce.js.map +1 -1
  154. package/lite/connection.d.ts +69 -20
  155. package/lite/connection.d.ts.map +1 -1
  156. package/lite/connection.js +128 -81
  157. package/lite/connection.js.map +1 -1
  158. package/lite/datagram.d.ts +23 -0
  159. package/lite/datagram.d.ts.map +1 -0
  160. package/lite/datagram.js +57 -0
  161. package/lite/datagram.js.map +1 -0
  162. package/lite/datagram_stream.d.ts +8 -0
  163. package/lite/datagram_stream.d.ts.map +1 -0
  164. package/lite/datagram_stream.js +44 -0
  165. package/lite/datagram_stream.js.map +1 -0
  166. package/lite/fetch.d.ts.map +1 -1
  167. package/lite/fetch.js +2 -2
  168. package/lite/fetch.js.map +1 -1
  169. package/lite/index.d.ts +3 -0
  170. package/lite/index.d.ts.map +1 -1
  171. package/lite/index.js +3 -0
  172. package/lite/index.js.map +1 -1
  173. package/lite/priority.d.ts +67 -0
  174. package/lite/priority.d.ts.map +1 -0
  175. package/lite/priority.js +114 -0
  176. package/lite/priority.js.map +1 -0
  177. package/lite/probe.d.ts +18 -2
  178. package/lite/probe.d.ts.map +1 -1
  179. package/lite/probe.js +24 -22
  180. package/lite/probe.js.map +1 -1
  181. package/lite/publisher.d.ts +14 -7
  182. package/lite/publisher.d.ts.map +1 -1
  183. package/lite/publisher.js +406 -84
  184. package/lite/publisher.js.map +1 -1
  185. package/lite/setup.d.ts +83 -6
  186. package/lite/setup.d.ts.map +1 -1
  187. package/lite/setup.js +203 -31
  188. package/lite/setup.js.map +1 -1
  189. package/lite/stream.d.ts +12 -3
  190. package/lite/stream.d.ts.map +1 -1
  191. package/lite/stream.js +7 -4
  192. package/lite/stream.js.map +1 -1
  193. package/lite/subscribe.d.ts +37 -23
  194. package/lite/subscribe.d.ts.map +1 -1
  195. package/lite/subscribe.js +70 -55
  196. package/lite/subscribe.js.map +1 -1
  197. package/lite/subscriber.d.ts +29 -23
  198. package/lite/subscriber.d.ts.map +1 -1
  199. package/lite/subscriber.js +689 -112
  200. package/lite/subscriber.js.map +1 -1
  201. package/lite/track.d.ts +25 -13
  202. package/lite/track.d.ts.map +1 -1
  203. package/lite/track.js +60 -35
  204. package/lite/track.js.map +1 -1
  205. package/lite/version.d.ts +39 -4
  206. package/lite/version.d.ts.map +1 -1
  207. package/lite/version.js +139 -17
  208. package/lite/version.js.map +1 -1
  209. package/mock.d.ts +53 -3
  210. package/mock.d.ts.map +1 -1
  211. package/mock.js +110 -21
  212. package/mock.js.map +1 -1
  213. package/{lite/origin.d.ts → origin.d.ts} +25 -1
  214. package/origin.d.ts.map +1 -0
  215. package/{lite/origin.js → origin.js} +25 -1
  216. package/origin.js.map +1 -0
  217. package/package.json +6 -4
  218. package/path.d.ts +67 -0
  219. package/path.d.ts.map +1 -1
  220. package/path.js +128 -0
  221. package/path.js.map +1 -1
  222. package/stream.d.ts +94 -4
  223. package/stream.d.ts.map +1 -1
  224. package/stream.js +128 -17
  225. package/stream.js.map +1 -1
  226. package/time.d.ts +109 -86
  227. package/time.d.ts.map +1 -1
  228. package/time.js +80 -30
  229. package/time.js.map +1 -1
  230. package/track.d.ts +298 -47
  231. package/track.d.ts.map +1 -1
  232. package/track.js +721 -109
  233. package/track.js.map +1 -1
  234. package/util/timeout.d.ts +5 -0
  235. package/util/timeout.d.ts.map +1 -0
  236. package/util/timeout.js +18 -0
  237. package/util/timeout.js.map +1 -0
  238. package/util/utf8.d.ts +3 -0
  239. package/util/utf8.d.ts.map +1 -0
  240. package/util/utf8.js +7 -0
  241. package/util/utf8.js.map +1 -0
  242. package/varint.d.ts +14 -3
  243. package/varint.d.ts.map +1 -1
  244. package/varint.js +23 -12
  245. package/varint.js.map +1 -1
  246. package/zod.d.ts +5 -5
  247. package/zod.d.ts.map +1 -1
  248. package/zod.js.map +1 -1
  249. package/bandwidth.d.ts +0 -11
  250. package/bandwidth.d.ts.map +0 -1
  251. package/bandwidth.js +0 -7
  252. package/bandwidth.js.map +0 -1
  253. package/connection/cert.test.d.ts +0 -2
  254. package/connection/cert.test.d.ts.map +0 -1
  255. package/connection/cert.test.js +0 -26
  256. package/connection/cert.test.js.map +0 -1
  257. package/connection/reload.test.d.ts +0 -2
  258. package/connection/reload.test.d.ts.map +0 -1
  259. package/connection/reload.test.js +0 -39
  260. package/connection/reload.test.js.map +0 -1
  261. package/group.test.d.ts +0 -2
  262. package/group.test.d.ts.map +0 -1
  263. package/group.test.js +0 -66
  264. package/group.test.js.map +0 -1
  265. package/ietf/aliases.test.d.ts +0 -2
  266. package/ietf/aliases.test.d.ts.map +0 -1
  267. package/ietf/aliases.test.js +0 -30
  268. package/ietf/aliases.test.js.map +0 -1
  269. package/ietf/ietf.test.d.ts +0 -2
  270. package/ietf/ietf.test.d.ts.map +0 -1
  271. package/ietf/ietf.test.js +0 -873
  272. package/ietf/ietf.test.js.map +0 -1
  273. package/integration.test.d.ts +0 -2
  274. package/integration.test.d.ts.map +0 -1
  275. package/integration.test.js +0 -90
  276. package/integration.test.js.map +0 -1
  277. package/lite/origin.d.ts.map +0 -1
  278. package/lite/origin.js.map +0 -1
  279. package/lite/subscriber.test.d.ts +0 -2
  280. package/lite/subscriber.test.d.ts.map +0 -1
  281. package/lite/subscriber.test.js +0 -30
  282. package/lite/subscriber.test.js.map +0 -1
  283. package/lite/track.test.d.ts +0 -2
  284. package/lite/track.test.d.ts.map +0 -1
  285. package/lite/track.test.js +0 -53
  286. package/lite/track.test.js.map +0 -1
  287. package/path.test.d.ts +0 -2
  288. package/path.test.d.ts.map +0 -1
  289. package/path.test.js +0 -169
  290. package/path.test.js.map +0 -1
  291. package/stream.test.d.ts +0 -2
  292. package/stream.test.d.ts.map +0 -1
  293. package/stream.test.js +0 -210
  294. package/stream.test.js.map +0 -1
  295. package/track.test.d.ts +0 -2
  296. package/track.test.d.ts.map +0 -1
  297. package/track.test.js +0 -56
  298. package/track.test.js.map +0 -1
  299. package/util/error.d.ts +0 -3
  300. package/util/error.d.ts.map +0 -1
  301. package/util/error.js +0 -9
  302. package/util/error.js.map +0 -1
  303. package/util/index.d.ts +0 -2
  304. package/util/index.d.ts.map +0 -1
  305. package/util/index.js +0 -3
  306. package/util/index.js.map +0 -1
  307. package/varint.test.d.ts +0 -2
  308. package/varint.test.d.ts.map +0 -1
  309. package/varint.test.js +0 -106
  310. package/varint.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/lite/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAAC;AAC7E,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC;AAE9B,eAAO,MAAM,QAAQ;aACpB,OAAO,EAAE,CAAC;aACV,QAAQ,EAAE,CAAC;aACX,SAAS,EAAE,CAAC;aACZ,KAAK,EAAE,CAAC;aACR,KAAK,EAAE,CAAC;aACR,MAAM,EAAE,CAAC;aAET,KAAK,EAAE,CAAC;aACR,YAAY,EAAE,EAAI;aAClB,YAAY,EAAE,EAAI;CACT,CAAC;AAGX,eAAO,MAAM,MAAM;aAClB,KAAK,EAAE,CAAC;aAER,KAAK,EAAE,CAAC;CACC,CAAC"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/lite/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,eAAe,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AACpF,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC;AAE9B,eAAO,MAAM,QAAQ;aACpB,OAAO,EAAE,CAAC;aACV,QAAQ,EAAE,CAAC;aACX,SAAS,EAAE,CAAC;aACZ,KAAK,EAAE,CAAC;aACR,KAAK,EAAE,CAAC;aACR,MAAM,EAAE,CAAC;aACT,KAAK,EAAE,CAAC;aACR,YAAY,EAAE,EAAI;aAClB,YAAY,EAAE,EAAI;CACT,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;aACpB,KAAK,EAAE,CAAC;aACR,KAAK,EAAE,CAAC;CACC,CAAC;AAEX,+DAA+D;AAC/D,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC"}
package/lite/stream.js CHANGED
@@ -6,15 +6,18 @@ export const StreamId = {
6
6
  Fetch: 3,
7
7
  Probe: 4,
8
8
  Goaway: 5,
9
- /// Queries a track's immutable publisher properties via TRACK/TRACK_INFO (moq-lite-05+).
10
9
  Track: 6,
11
10
  ClientCompat: 0x20,
12
11
  ServerCompat: 0x21,
13
12
  };
14
- /// Unidirectional (data) stream types.
15
- export const DataId = {
13
+ /**
14
+ * The varint type prefix on a unidirectional data stream.
15
+ *
16
+ * `Group` is the per-group frame stream. `Setup` (lite-05+) carries the single SETUP
17
+ * message advertising this endpoint's capabilities.
18
+ */
19
+ export const DataType = {
16
20
  Group: 0,
17
- /// Carries a single SETUP message (moq-lite-05+).
18
21
  Setup: 1,
19
22
  };
20
23
  //# sourceMappingURL=stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/lite/stream.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACvB,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,yFAAyF;IACzF,KAAK,EAAE,CAAC;IACR,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;CACT,CAAC;AAEX,uCAAuC;AACvC,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,KAAK,EAAE,CAAC;IACR,kDAAkD;IAClD,KAAK,EAAE,CAAC;CACC,CAAC","sourcesContent":["import type { AnnounceInterest } from \"./announce.ts\";\nimport type { Goaway } from \"./goaway.ts\";\nimport type { Group } from \"./group.ts\";\nimport type { SessionClient } from \"./session.ts\";\nimport type { Subscribe } from \"./subscribe.ts\";\n\nexport type StreamBi = SessionClient | AnnounceInterest | Subscribe | Goaway;\nexport type StreamUni = Group;\n\nexport const StreamId = {\n\tSession: 0,\n\tAnnounce: 1,\n\tSubscribe: 2,\n\tFetch: 3,\n\tProbe: 4,\n\tGoaway: 5,\n\t/// Queries a track's immutable publisher properties via TRACK/TRACK_INFO (moq-lite-05+).\n\tTrack: 6,\n\tClientCompat: 0x20,\n\tServerCompat: 0x21,\n} as const;\n\n/// Unidirectional (data) stream types.\nexport const DataId = {\n\tGroup: 0,\n\t/// Carries a single SETUP message (moq-lite-05+).\n\tSetup: 1,\n} as const;\n"]}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/lite/stream.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACvB,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;CACT,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACvB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACC,CAAC","sourcesContent":["import type { AnnounceRequest } from \"./announce.ts\";\nimport type { Goaway } from \"./goaway.ts\";\nimport type { Group } from \"./group.ts\";\nimport type { SessionClient } from \"./session.ts\";\nimport type { Subscribe } from \"./subscribe.ts\";\nimport type { Track } from \"./track.ts\";\n\nexport type StreamBi = SessionClient | AnnounceRequest | Subscribe | Track | Goaway;\nexport type StreamUni = Group;\n\nexport const StreamId = {\n\tSession: 0,\n\tAnnounce: 1,\n\tSubscribe: 2,\n\tFetch: 3,\n\tProbe: 4,\n\tGoaway: 5,\n\tTrack: 6,\n\tClientCompat: 0x20,\n\tServerCompat: 0x21,\n} as const;\n\n/**\n * The varint type prefix on a unidirectional data stream.\n *\n * `Group` is the per-group frame stream. `Setup` (lite-05+) carries the single SETUP\n * message advertising this endpoint's capabilities.\n */\nexport const DataType = {\n\tGroup: 0,\n\tSetup: 1,\n} as const;\n\n/** A unidirectional data-stream type. See {@link DataType}. */\nexport type DataType = (typeof DataType)[keyof typeof DataType];\n"]}
@@ -42,6 +42,12 @@ export declare class Subscribe {
42
42
  encode(w: Writer, version: Version): Promise<void>;
43
43
  static decode(r: Reader, version: Version): Promise<Subscribe>;
44
44
  }
45
+ /**
46
+ * Publisher's acknowledgement on the Subscribe Stream for drafts 01-04.
47
+ *
48
+ * Draft-05+ replaced this with implicit acceptance plus {@link SubscribeStart} /
49
+ * {@link SubscribeEnd}; the immutable codec/timescale/cache moved to TRACK_INFO.
50
+ */
45
51
  export declare class SubscribeOk {
46
52
  #private;
47
53
  priority: number;
@@ -59,6 +65,28 @@ export declare class SubscribeOk {
59
65
  encode(w: Writer, version: Version): Promise<void>;
60
66
  static decode(r: Reader, version: Version): Promise<SubscribeOk>;
61
67
  }
68
+ /**
69
+ * Resolves the absolute start group of a Draft-05+ subscription. The first message
70
+ * the publisher sends, once the start group is known. A value greater than the
71
+ * requested start implicitly drops the leading range.
72
+ */
73
+ export declare class SubscribeStart {
74
+ group: number;
75
+ constructor(group: number);
76
+ encode(w: Writer): Promise<void>;
77
+ static decode(r: Reader): Promise<SubscribeStart>;
78
+ }
79
+ /**
80
+ * Signals that no group at or after `group` (exclusive upper bound) will be produced
81
+ * on a Draft-05+ subscription. `0` means the track ended before producing any groups.
82
+ */
83
+ export declare class SubscribeEnd {
84
+ /** The exclusive final group sequence: the first sequence that will never be produced. */
85
+ group: number;
86
+ constructor(group: number);
87
+ encode(w: Writer): Promise<void>;
88
+ static decode(r: Reader): Promise<SubscribeEnd>;
89
+ }
62
90
  export declare class SubscribeDrop {
63
91
  #private;
64
92
  start: number;
@@ -73,39 +101,25 @@ export declare class SubscribeDrop {
73
101
  static decode(r: Reader): Promise<SubscribeDrop>;
74
102
  }
75
103
  /**
76
- * Signals that no group after a given sequence will be produced.
77
- *
78
- * moq-lite-05+ only.
79
- */
80
- export declare class SubscribeEnd {
81
- #private;
82
- group: number;
83
- constructor(props: {
84
- group: number;
85
- });
86
- encode(w: Writer): Promise<void>;
87
- static decode(r: Reader): Promise<SubscribeEnd>;
88
- }
89
- /**
90
- * A response message on the subscribe stream.
91
- *
92
- * In Draft03/04 each response is prefixed with a type discriminator: 0x0 SUBSCRIBE_OK,
93
- * 0x1 SUBSCRIBE_DROP. In Draft05 end-of-subscription splits out, so the discriminators
94
- * become 0x0 SUBSCRIBE_OK, 0x1 SUBSCRIBE_END, 0x2 SUBSCRIBE_DROP.
104
+ * A response message on the subscribe stream, prefixed with a type discriminator
105
+ * on Draft-03+.
95
106
  *
96
- * SUBSCRIBE_OK is normally the first message on the response stream.
107
+ * The discriminator is version-dependent:
108
+ * - Draft-03/04: `0x0` SUBSCRIBE_OK, `0x1` SUBSCRIBE_DROP.
109
+ * - Draft-05+: `0x0` SUBSCRIBE_START, `0x1` SUBSCRIBE_END, `0x2` SUBSCRIBE_DROP
110
+ * (SUBSCRIBE_OK was removed; acceptance is implicit).
97
111
  */
98
112
  export type SubscribeResponse = {
99
113
  ok: SubscribeOk;
114
+ } | {
115
+ start: SubscribeStart;
100
116
  } | {
101
117
  end: SubscribeEnd;
102
118
  } | {
103
119
  drop: SubscribeDrop;
104
120
  };
105
- /** Encode a subscribe-stream response (OK / END / DROP) for the negotiated moq-lite version. */
106
121
  export declare function encodeSubscribeResponse(w: Writer, resp: SubscribeResponse, version: Version): Promise<void>;
107
- /** Decode the next subscribe-stream response for the negotiated moq-lite version. */
108
122
  export declare function decodeSubscribeResponse(r: Reader, version: Version): Promise<SubscribeResponse>;
109
- /** Like {@link decodeSubscribeResponse} but returns `undefined` at a clean stream end (FIN). */
123
+ /** Like {@link decodeSubscribeResponse} but resolves `undefined` on a clean FIN. */
110
124
  export declare function decodeSubscribeResponseMaybe(r: Reader, version: Version): Promise<SubscribeResponse | undefined>;
111
125
  //# sourceMappingURL=subscribe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../src/lite/subscribe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../src/lite/subscribe.ts"],"names":[],"mappings":"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"}
package/lite/subscribe.js CHANGED
@@ -10,7 +10,7 @@ export class SubscribeUpdate {
10
10
  endGroup;
11
11
  constructor(props) {
12
12
  this.priority = props.priority;
13
- this.ordered = props.ordered ?? true;
13
+ this.ordered = props.ordered ?? false;
14
14
  this.maxLatency = props.maxLatency ?? 0;
15
15
  this.startGroup = props.startGroup;
16
16
  this.endGroup = props.endGroup;
@@ -131,13 +131,19 @@ export class Subscribe {
131
131
  return Message.decode(r, (r) => Subscribe.#decode(r, version));
132
132
  }
133
133
  }
134
+ /**
135
+ * Publisher's acknowledgement on the Subscribe Stream for drafts 01-04.
136
+ *
137
+ * Draft-05+ replaced this with implicit acceptance plus {@link SubscribeStart} /
138
+ * {@link SubscribeEnd}; the immutable codec/timescale/cache moved to TRACK_INFO.
139
+ */
134
140
  export class SubscribeOk {
135
141
  priority;
136
142
  ordered;
137
143
  maxLatency;
138
144
  startGroup;
139
145
  endGroup;
140
- constructor({ priority = 0, ordered = true, maxLatency = 0, startGroup = undefined, endGroup = undefined, }) {
146
+ constructor({ priority = 0, ordered = false, maxLatency = 0, startGroup = undefined, endGroup = undefined, }) {
141
147
  this.priority = priority;
142
148
  this.ordered = ordered;
143
149
  this.maxLatency = maxLatency;
@@ -152,10 +158,8 @@ export class SubscribeOk {
152
158
  case Version.DRAFT_01:
153
159
  await w.u8(this.priority ?? 0);
154
160
  break;
155
- case Version.DRAFT_05_WIP:
156
- // moq-lite-05+: just the resolved absolute start group (raw, 0 is valid).
157
- await w.u53(this.startGroup ?? 0);
158
- break;
161
+ // Draft-05+ never sends SUBSCRIBE_OK, but keep the field layout matching
162
+ // Draft-03/04 so a stray future use stays well-formed.
159
163
  default:
160
164
  await w.u8(this.priority);
161
165
  await w.bool(this.ordered);
@@ -178,9 +182,6 @@ export class SubscribeOk {
178
182
  case Version.DRAFT_01:
179
183
  priority = await r.u8();
180
184
  break;
181
- case Version.DRAFT_05_WIP:
182
- // moq-lite-05+: just the resolved absolute start group (raw).
183
- return new SubscribeOk({ startGroup: await r.u53() });
184
185
  default:
185
186
  priority = await r.u8();
186
187
  ordered = await r.bool();
@@ -204,6 +205,44 @@ export class SubscribeOk {
204
205
  return Message.decode(r, SubscribeOk.#decode.bind(SubscribeOk, version));
205
206
  }
206
207
  }
208
+ /**
209
+ * Resolves the absolute start group of a Draft-05+ subscription. The first message
210
+ * the publisher sends, once the start group is known. A value greater than the
211
+ * requested start implicitly drops the leading range.
212
+ */
213
+ export class SubscribeStart {
214
+ group;
215
+ constructor(group) {
216
+ this.group = group;
217
+ }
218
+ async encode(w) {
219
+ return Message.encode(w, async (w) => {
220
+ await w.u53(this.group);
221
+ });
222
+ }
223
+ static async decode(r) {
224
+ return Message.decode(r, async (r) => new SubscribeStart(await r.u53()));
225
+ }
226
+ }
227
+ /**
228
+ * Signals that no group at or after `group` (exclusive upper bound) will be produced
229
+ * on a Draft-05+ subscription. `0` means the track ended before producing any groups.
230
+ */
231
+ export class SubscribeEnd {
232
+ /** The exclusive final group sequence: the first sequence that will never be produced. */
233
+ group;
234
+ constructor(group) {
235
+ this.group = group;
236
+ }
237
+ async encode(w) {
238
+ return Message.encode(w, async (w) => {
239
+ await w.u53(this.group);
240
+ });
241
+ }
242
+ static async decode(r) {
243
+ return Message.decode(r, async (r) => new SubscribeEnd(await r.u53()));
244
+ }
245
+ }
207
246
  /// Indicates that one or more groups have been dropped.
208
247
  ///
209
248
  /// Draft03+ only.
@@ -231,30 +270,6 @@ export class SubscribeDrop {
231
270
  return Message.decode(r, SubscribeDrop.#decode);
232
271
  }
233
272
  }
234
- /**
235
- * Signals that no group after a given sequence will be produced.
236
- *
237
- * moq-lite-05+ only.
238
- */
239
- export class SubscribeEnd {
240
- group;
241
- constructor(props) {
242
- this.group = props.group;
243
- }
244
- async #encode(w) {
245
- await w.u53(this.group);
246
- }
247
- static async #decode(r) {
248
- return new SubscribeEnd({ group: await r.u53() });
249
- }
250
- async encode(w) {
251
- return Message.encode(w, this.#encode.bind(this));
252
- }
253
- static async decode(r) {
254
- return Message.decode(r, SubscribeEnd.#decode);
255
- }
256
- }
257
- /** Encode a subscribe-stream response (OK / END / DROP) for the negotiated moq-lite version. */
258
273
  export async function encodeSubscribeResponse(w, resp, version) {
259
274
  switch (version) {
260
275
  case Version.DRAFT_01:
@@ -266,50 +281,52 @@ export async function encodeSubscribeResponse(w, resp, version) {
266
281
  throw new Error("only SUBSCRIBE_OK is supported for this version");
267
282
  }
268
283
  break;
269
- case Version.DRAFT_05_WIP:
270
- // moq-lite-05+: 0x0 OK, 0x1 END, 0x2 DROP.
284
+ case Version.DRAFT_03:
285
+ case Version.DRAFT_04:
271
286
  if ("ok" in resp) {
272
287
  await w.u53(0x0);
273
288
  await resp.ok.encode(w, version);
274
289
  }
275
- else if ("end" in resp) {
290
+ else if ("drop" in resp) {
276
291
  await w.u53(0x1);
277
- await resp.end.encode(w);
292
+ await resp.drop.encode(w);
278
293
  }
279
294
  else {
280
- await w.u53(0x2);
281
- await resp.drop.encode(w);
295
+ throw new Error("SUBSCRIBE_START/END not supported for this version");
282
296
  }
283
297
  break;
284
298
  default:
285
- // Draft03/04: 0x0 OK, 0x1 DROP; no SUBSCRIBE_END.
286
- if ("ok" in resp) {
299
+ // Draft-05+: SUBSCRIBE_OK is gone; START/END/DROP carry the resolved range.
300
+ if ("start" in resp) {
287
301
  await w.u53(0x0);
288
- await resp.ok.encode(w, version);
302
+ await resp.start.encode(w);
289
303
  }
290
- else if ("drop" in resp) {
304
+ else if ("end" in resp) {
291
305
  await w.u53(0x1);
306
+ await resp.end.encode(w);
307
+ }
308
+ else if ("drop" in resp) {
309
+ await w.u53(0x2);
292
310
  await resp.drop.encode(w);
293
311
  }
294
312
  else {
295
- throw new Error("SUBSCRIBE_END is not supported for this version");
313
+ throw new Error("SUBSCRIBE_OK not supported for this version");
296
314
  }
297
315
  break;
298
316
  }
299
317
  }
300
- async function decodeResponse(r, version) {
318
+ export async function decodeSubscribeResponse(r, version) {
301
319
  switch (version) {
302
320
  case Version.DRAFT_01:
303
321
  case Version.DRAFT_02:
304
322
  return { ok: await SubscribeOk.decode(r, version) };
305
- case Version.DRAFT_05_WIP: {
323
+ case Version.DRAFT_03:
324
+ case Version.DRAFT_04: {
306
325
  const typ = await r.u53();
307
326
  switch (typ) {
308
327
  case 0x0:
309
328
  return { ok: await SubscribeOk.decode(r, version) };
310
329
  case 0x1:
311
- return { end: await SubscribeEnd.decode(r) };
312
- case 0x2:
313
330
  return { drop: await SubscribeDrop.decode(r) };
314
331
  default:
315
332
  throw new Error(`unknown subscribe response type: ${typ}`);
@@ -319,8 +336,10 @@ async function decodeResponse(r, version) {
319
336
  const typ = await r.u53();
320
337
  switch (typ) {
321
338
  case 0x0:
322
- return { ok: await SubscribeOk.decode(r, version) };
339
+ return { start: await SubscribeStart.decode(r) };
323
340
  case 0x1:
341
+ return { end: await SubscribeEnd.decode(r) };
342
+ case 0x2:
324
343
  return { drop: await SubscribeDrop.decode(r) };
325
344
  default:
326
345
  throw new Error(`unknown subscribe response type: ${typ}`);
@@ -328,14 +347,10 @@ async function decodeResponse(r, version) {
328
347
  }
329
348
  }
330
349
  }
331
- /** Decode the next subscribe-stream response for the negotiated moq-lite version. */
332
- export async function decodeSubscribeResponse(r, version) {
333
- return decodeResponse(r, version);
334
- }
335
- /** Like {@link decodeSubscribeResponse} but returns `undefined` at a clean stream end (FIN). */
350
+ /** Like {@link decodeSubscribeResponse} but resolves `undefined` on a clean FIN. */
336
351
  export async function decodeSubscribeResponseMaybe(r, version) {
337
352
  if (await r.done())
338
353
  return undefined;
339
- return decodeResponse(r, version);
354
+ return decodeSubscribeResponse(r, version);
340
355
  }
341
356
  //# sourceMappingURL=subscribe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/lite/subscribe.ts"],"names":[],"mappings":"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","sourcesContent":["import * as Path from \"../path.ts\";\nimport type { Reader, Writer } from \"../stream.ts\";\nimport * as Message from \"./message.ts\";\nimport { Version } from \"./version.ts\";\n\nexport class SubscribeUpdate {\n\tpriority: number;\n\tordered: boolean;\n\tmaxLatency: number;\n\tstartGroup?: number;\n\tendGroup?: number;\n\n\tconstructor(props: {\n\t\tpriority: number;\n\t\tordered?: boolean;\n\t\tmaxLatency?: number;\n\t\tstartGroup?: number;\n\t\tendGroup?: number;\n\t}) {\n\t\tthis.priority = props.priority;\n\t\tthis.ordered = props.ordered ?? true;\n\t\tthis.maxLatency = props.maxLatency ?? 0;\n\t\tthis.startGroup = props.startGroup;\n\t\tthis.endGroup = props.endGroup;\n\t}\n\n\tasync #encode(w: Writer, version: Version) {\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\tawait w.u8(this.priority);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tawait w.u8(this.priority);\n\t\t\t\tawait w.bool(this.ordered);\n\t\t\t\tawait w.u53(this.maxLatency);\n\t\t\t\tawait w.u53(this.startGroup !== undefined ? this.startGroup + 1 : 0);\n\t\t\t\tawait w.u53(this.endGroup !== undefined ? this.endGroup + 1 : 0);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstatic async #decode(r: Reader, version: Version): Promise<SubscribeUpdate> {\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\treturn new SubscribeUpdate({ priority: await r.u8() });\n\t\t\tdefault: {\n\t\t\t\tconst priority = await r.u8();\n\t\t\t\tconst ordered = await r.bool();\n\t\t\t\tconst maxLatency = await r.u53();\n\t\t\t\tconst startGroup = await r.u53();\n\t\t\t\tconst endGroup = await r.u53();\n\t\t\t\treturn new SubscribeUpdate({\n\t\t\t\t\tpriority,\n\t\t\t\t\tordered,\n\t\t\t\t\tmaxLatency,\n\t\t\t\t\tstartGroup: startGroup > 0 ? startGroup - 1 : undefined,\n\t\t\t\t\tendGroup: endGroup > 0 ? endGroup - 1 : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tasync encode(w: Writer, version: Version): Promise<void> {\n\t\treturn Message.encode(w, (w) => this.#encode(w, version));\n\t}\n\n\tstatic async decode(r: Reader, version: Version): Promise<SubscribeUpdate> {\n\t\treturn Message.decode(r, (r) => SubscribeUpdate.#decode(r, version));\n\t}\n\n\tstatic async decodeMaybe(r: Reader, version: Version): Promise<SubscribeUpdate | undefined> {\n\t\treturn Message.decodeMaybe(r, (r) => SubscribeUpdate.#decode(r, version));\n\t}\n}\n\nexport class Subscribe {\n\tid: bigint;\n\tbroadcast: Path.Valid;\n\ttrack: string;\n\tpriority: number;\n\tordered: boolean;\n\tmaxLatency: number;\n\n\tstartGroup?: number;\n\tendGroup?: number;\n\n\tconstructor(props: {\n\t\tid: bigint;\n\t\tbroadcast: Path.Valid;\n\t\ttrack: string;\n\t\tpriority: number;\n\t\tordered?: boolean;\n\t\tmaxLatency?: number;\n\t\tstartGroup?: number;\n\t\tendGroup?: number;\n\t}) {\n\t\tthis.id = props.id;\n\t\tthis.broadcast = props.broadcast;\n\t\tthis.track = props.track;\n\t\tthis.priority = props.priority;\n\t\tthis.ordered = props.ordered ?? false;\n\t\tthis.maxLatency = props.maxLatency ?? 0;\n\t\tthis.startGroup = props.startGroup;\n\t\tthis.endGroup = props.endGroup;\n\t}\n\n\tasync #encode(w: Writer, version: Version) {\n\t\tawait w.u62(this.id);\n\t\tawait w.string(Path.encode(this.broadcast));\n\t\tawait w.string(this.track);\n\t\tawait w.u8(this.priority);\n\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tawait w.bool(this.ordered);\n\t\t\t\tawait w.u53(this.maxLatency);\n\t\t\t\tawait w.u53(this.startGroup !== undefined ? this.startGroup + 1 : 0);\n\t\t\t\tawait w.u53(this.endGroup !== undefined ? this.endGroup + 1 : 0);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstatic async #decode(r: Reader, version: Version): Promise<Subscribe> {\n\t\tconst id = await r.u62();\n\t\tconst broadcast = Path.decode(await r.string());\n\t\tconst track = await r.string();\n\t\tconst priority = await r.u8();\n\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\treturn new Subscribe({ id, broadcast, track, priority });\n\t\t\tdefault: {\n\t\t\t\tconst ordered = await r.bool();\n\t\t\t\tconst maxLatency = await r.u53();\n\t\t\t\tconst startGroup = await r.u53();\n\t\t\t\tconst endGroup = await r.u53();\n\t\t\t\treturn new Subscribe({\n\t\t\t\t\tid,\n\t\t\t\t\tbroadcast,\n\t\t\t\t\ttrack,\n\t\t\t\t\tpriority,\n\t\t\t\t\tordered,\n\t\t\t\t\tmaxLatency,\n\t\t\t\t\tstartGroup: startGroup > 0 ? startGroup - 1 : undefined,\n\t\t\t\t\tendGroup: endGroup > 0 ? endGroup - 1 : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tasync encode(w: Writer, version: Version): Promise<void> {\n\t\treturn Message.encode(w, (w) => this.#encode(w, version));\n\t}\n\n\tstatic async decode(r: Reader, version: Version): Promise<Subscribe> {\n\t\treturn Message.decode(r, (r) => Subscribe.#decode(r, version));\n\t}\n}\n\nexport class SubscribeOk {\n\tpriority: number;\n\tordered: boolean;\n\tmaxLatency: number;\n\tstartGroup?: number;\n\tendGroup?: number;\n\n\tconstructor({\n\t\tpriority = 0,\n\t\tordered = true,\n\t\tmaxLatency = 0,\n\t\tstartGroup = undefined,\n\t\tendGroup = undefined,\n\t}: {\n\t\tpriority?: number;\n\t\tordered?: boolean;\n\t\tmaxLatency?: number;\n\t\tstartGroup?: number;\n\t\tendGroup?: number;\n\t}) {\n\t\tthis.priority = priority;\n\t\tthis.ordered = ordered;\n\t\tthis.maxLatency = maxLatency;\n\t\tthis.startGroup = startGroup;\n\t\tthis.endGroup = endGroup;\n\t}\n\n\tasync #encode(w: Writer, version: Version) {\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\t// noop\n\t\t\t\tbreak;\n\t\t\tcase Version.DRAFT_01:\n\t\t\t\tawait w.u8(this.priority ?? 0);\n\t\t\t\tbreak;\n\t\t\tcase Version.DRAFT_05_WIP:\n\t\t\t\t// moq-lite-05+: just the resolved absolute start group (raw, 0 is valid).\n\t\t\t\tawait w.u53(this.startGroup ?? 0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tawait w.u8(this.priority);\n\t\t\t\tawait w.bool(this.ordered);\n\t\t\t\tawait w.u53(this.maxLatency);\n\t\t\t\tawait w.u53(this.startGroup !== undefined ? this.startGroup + 1 : 0);\n\t\t\t\tawait w.u53(this.endGroup !== undefined ? this.endGroup + 1 : 0);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstatic async #decode(version: Version, r: Reader): Promise<SubscribeOk> {\n\t\tlet priority: number | undefined;\n\t\tlet ordered: boolean | undefined;\n\t\tlet maxLatency: number | undefined;\n\t\tlet startGroup: number | undefined;\n\t\tlet endGroup: number | undefined;\n\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\t// noop\n\t\t\t\tbreak;\n\t\t\tcase Version.DRAFT_01:\n\t\t\t\tpriority = await r.u8();\n\t\t\t\tbreak;\n\t\t\tcase Version.DRAFT_05_WIP:\n\t\t\t\t// moq-lite-05+: just the resolved absolute start group (raw).\n\t\t\t\treturn new SubscribeOk({ startGroup: await r.u53() });\n\t\t\tdefault:\n\t\t\t\tpriority = await r.u8();\n\t\t\t\tordered = await r.bool();\n\t\t\t\tmaxLatency = await r.u53();\n\t\t\t\tstartGroup = await r.u53();\n\t\t\t\tendGroup = await r.u53();\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn new SubscribeOk({\n\t\t\tpriority,\n\t\t\tordered,\n\t\t\tmaxLatency,\n\t\t\tstartGroup: startGroup !== undefined && startGroup > 0 ? startGroup - 1 : undefined,\n\t\t\tendGroup: endGroup !== undefined && endGroup > 0 ? endGroup - 1 : undefined,\n\t\t});\n\t}\n\n\tasync encode(w: Writer, version: Version): Promise<void> {\n\t\treturn Message.encode(w, (w) => this.#encode(w, version));\n\t}\n\n\tstatic async decode(r: Reader, version: Version): Promise<SubscribeOk> {\n\t\treturn Message.decode(r, SubscribeOk.#decode.bind(SubscribeOk, version));\n\t}\n}\n\n/// Indicates that one or more groups have been dropped.\n///\n/// Draft03+ only.\nexport class SubscribeDrop {\n\tstart: number;\n\tend: number;\n\terror: number;\n\n\tconstructor(props: { start: number; end: number; error: number }) {\n\t\tthis.start = props.start;\n\t\tthis.end = props.end;\n\t\tthis.error = props.error;\n\t}\n\n\tasync #encode(w: Writer) {\n\t\tawait w.u53(this.start);\n\t\tawait w.u53(this.end);\n\t\tawait w.u53(this.error);\n\t}\n\n\tstatic async #decode(r: Reader): Promise<SubscribeDrop> {\n\t\treturn new SubscribeDrop({ start: await r.u53(), end: await r.u53(), error: await r.u53() });\n\t}\n\n\tasync encode(w: Writer): Promise<void> {\n\t\treturn Message.encode(w, this.#encode.bind(this));\n\t}\n\n\tstatic async decode(r: Reader): Promise<SubscribeDrop> {\n\t\treturn Message.decode(r, SubscribeDrop.#decode);\n\t}\n}\n\n/**\n * Signals that no group after a given sequence will be produced.\n *\n * moq-lite-05+ only.\n */\nexport class SubscribeEnd {\n\tgroup: number;\n\n\tconstructor(props: { group: number }) {\n\t\tthis.group = props.group;\n\t}\n\n\tasync #encode(w: Writer) {\n\t\tawait w.u53(this.group);\n\t}\n\n\tstatic async #decode(r: Reader): Promise<SubscribeEnd> {\n\t\treturn new SubscribeEnd({ group: await r.u53() });\n\t}\n\n\tasync encode(w: Writer): Promise<void> {\n\t\treturn Message.encode(w, this.#encode.bind(this));\n\t}\n\n\tstatic async decode(r: Reader): Promise<SubscribeEnd> {\n\t\treturn Message.decode(r, SubscribeEnd.#decode);\n\t}\n}\n\n/**\n * A response message on the subscribe stream.\n *\n * In Draft03/04 each response is prefixed with a type discriminator: 0x0 SUBSCRIBE_OK,\n * 0x1 SUBSCRIBE_DROP. In Draft05 end-of-subscription splits out, so the discriminators\n * become 0x0 SUBSCRIBE_OK, 0x1 SUBSCRIBE_END, 0x2 SUBSCRIBE_DROP.\n *\n * SUBSCRIBE_OK is normally the first message on the response stream.\n */\nexport type SubscribeResponse = { ok: SubscribeOk } | { end: SubscribeEnd } | { drop: SubscribeDrop };\n\n/** Encode a subscribe-stream response (OK / END / DROP) for the negotiated moq-lite version. */\nexport async function encodeSubscribeResponse(w: Writer, resp: SubscribeResponse, version: Version): Promise<void> {\n\tswitch (version) {\n\t\tcase Version.DRAFT_01:\n\t\tcase Version.DRAFT_02:\n\t\t\tif (\"ok\" in resp) {\n\t\t\t\tawait resp.ok.encode(w, version);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"only SUBSCRIBE_OK is supported for this version\");\n\t\t\t}\n\t\t\tbreak;\n\t\tcase Version.DRAFT_05_WIP:\n\t\t\t// moq-lite-05+: 0x0 OK, 0x1 END, 0x2 DROP.\n\t\t\tif (\"ok\" in resp) {\n\t\t\t\tawait w.u53(0x0);\n\t\t\t\tawait resp.ok.encode(w, version);\n\t\t\t} else if (\"end\" in resp) {\n\t\t\t\tawait w.u53(0x1);\n\t\t\t\tawait resp.end.encode(w);\n\t\t\t} else {\n\t\t\t\tawait w.u53(0x2);\n\t\t\t\tawait resp.drop.encode(w);\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t// Draft03/04: 0x0 OK, 0x1 DROP; no SUBSCRIBE_END.\n\t\t\tif (\"ok\" in resp) {\n\t\t\t\tawait w.u53(0x0);\n\t\t\t\tawait resp.ok.encode(w, version);\n\t\t\t} else if (\"drop\" in resp) {\n\t\t\t\tawait w.u53(0x1);\n\t\t\t\tawait resp.drop.encode(w);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"SUBSCRIBE_END is not supported for this version\");\n\t\t\t}\n\t\t\tbreak;\n\t}\n}\n\nasync function decodeResponse(r: Reader, version: Version): Promise<SubscribeResponse> {\n\tswitch (version) {\n\t\tcase Version.DRAFT_01:\n\t\tcase Version.DRAFT_02:\n\t\t\treturn { ok: await SubscribeOk.decode(r, version) };\n\t\tcase Version.DRAFT_05_WIP: {\n\t\t\tconst typ = await r.u53();\n\t\t\tswitch (typ) {\n\t\t\t\tcase 0x0:\n\t\t\t\t\treturn { ok: await SubscribeOk.decode(r, version) };\n\t\t\t\tcase 0x1:\n\t\t\t\t\treturn { end: await SubscribeEnd.decode(r) };\n\t\t\t\tcase 0x2:\n\t\t\t\t\treturn { drop: await SubscribeDrop.decode(r) };\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`unknown subscribe response type: ${typ}`);\n\t\t\t}\n\t\t}\n\t\tdefault: {\n\t\t\tconst typ = await r.u53();\n\t\t\tswitch (typ) {\n\t\t\t\tcase 0x0:\n\t\t\t\t\treturn { ok: await SubscribeOk.decode(r, version) };\n\t\t\t\tcase 0x1:\n\t\t\t\t\treturn { drop: await SubscribeDrop.decode(r) };\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`unknown subscribe response type: ${typ}`);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/** Decode the next subscribe-stream response for the negotiated moq-lite version. */\nexport async function decodeSubscribeResponse(r: Reader, version: Version): Promise<SubscribeResponse> {\n\treturn decodeResponse(r, version);\n}\n\n/** Like {@link decodeSubscribeResponse} but returns `undefined` at a clean stream end (FIN). */\nexport async function decodeSubscribeResponseMaybe(\n\tr: Reader,\n\tversion: Version,\n): Promise<SubscribeResponse | undefined> {\n\tif (await r.done()) return undefined;\n\treturn decodeResponse(r, version);\n}\n"]}
1
+ {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/lite/subscribe.ts"],"names":[],"mappings":"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","sourcesContent":["import * as Path from \"../path.ts\";\nimport type { Reader, Writer } from \"../stream.ts\";\nimport * as Message from \"./message.ts\";\nimport { Version } from \"./version.ts\";\n\nexport class SubscribeUpdate {\n\tpriority: number;\n\tordered: boolean;\n\tmaxLatency: number;\n\tstartGroup?: number;\n\tendGroup?: number;\n\n\tconstructor(props: {\n\t\tpriority: number;\n\t\tordered?: boolean;\n\t\tmaxLatency?: number;\n\t\tstartGroup?: number;\n\t\tendGroup?: number;\n\t}) {\n\t\tthis.priority = props.priority;\n\t\tthis.ordered = props.ordered ?? false;\n\t\tthis.maxLatency = props.maxLatency ?? 0;\n\t\tthis.startGroup = props.startGroup;\n\t\tthis.endGroup = props.endGroup;\n\t}\n\n\tasync #encode(w: Writer, version: Version) {\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\tawait w.u8(this.priority);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tawait w.u8(this.priority);\n\t\t\t\tawait w.bool(this.ordered);\n\t\t\t\tawait w.u53(this.maxLatency);\n\t\t\t\tawait w.u53(this.startGroup !== undefined ? this.startGroup + 1 : 0);\n\t\t\t\tawait w.u53(this.endGroup !== undefined ? this.endGroup + 1 : 0);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstatic async #decode(r: Reader, version: Version): Promise<SubscribeUpdate> {\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\treturn new SubscribeUpdate({ priority: await r.u8() });\n\t\t\tdefault: {\n\t\t\t\tconst priority = await r.u8();\n\t\t\t\tconst ordered = await r.bool();\n\t\t\t\tconst maxLatency = await r.u53();\n\t\t\t\tconst startGroup = await r.u53();\n\t\t\t\tconst endGroup = await r.u53();\n\t\t\t\treturn new SubscribeUpdate({\n\t\t\t\t\tpriority,\n\t\t\t\t\tordered,\n\t\t\t\t\tmaxLatency,\n\t\t\t\t\tstartGroup: startGroup > 0 ? startGroup - 1 : undefined,\n\t\t\t\t\tendGroup: endGroup > 0 ? endGroup - 1 : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tasync encode(w: Writer, version: Version): Promise<void> {\n\t\treturn Message.encode(w, (w) => this.#encode(w, version));\n\t}\n\n\tstatic async decode(r: Reader, version: Version): Promise<SubscribeUpdate> {\n\t\treturn Message.decode(r, (r) => SubscribeUpdate.#decode(r, version));\n\t}\n\n\tstatic async decodeMaybe(r: Reader, version: Version): Promise<SubscribeUpdate | undefined> {\n\t\treturn Message.decodeMaybe(r, (r) => SubscribeUpdate.#decode(r, version));\n\t}\n}\n\nexport class Subscribe {\n\tid: bigint;\n\tbroadcast: Path.Valid;\n\ttrack: string;\n\tpriority: number;\n\tordered: boolean;\n\tmaxLatency: number;\n\n\tstartGroup?: number;\n\tendGroup?: number;\n\n\tconstructor(props: {\n\t\tid: bigint;\n\t\tbroadcast: Path.Valid;\n\t\ttrack: string;\n\t\tpriority: number;\n\t\tordered?: boolean;\n\t\tmaxLatency?: number;\n\t\tstartGroup?: number;\n\t\tendGroup?: number;\n\t}) {\n\t\tthis.id = props.id;\n\t\tthis.broadcast = props.broadcast;\n\t\tthis.track = props.track;\n\t\tthis.priority = props.priority;\n\t\tthis.ordered = props.ordered ?? false;\n\t\tthis.maxLatency = props.maxLatency ?? 0;\n\t\tthis.startGroup = props.startGroup;\n\t\tthis.endGroup = props.endGroup;\n\t}\n\n\tasync #encode(w: Writer, version: Version) {\n\t\tawait w.u62(this.id);\n\t\tawait w.string(Path.encode(this.broadcast));\n\t\tawait w.string(this.track);\n\t\tawait w.u8(this.priority);\n\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tawait w.bool(this.ordered);\n\t\t\t\tawait w.u53(this.maxLatency);\n\t\t\t\tawait w.u53(this.startGroup !== undefined ? this.startGroup + 1 : 0);\n\t\t\t\tawait w.u53(this.endGroup !== undefined ? this.endGroup + 1 : 0);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstatic async #decode(r: Reader, version: Version): Promise<Subscribe> {\n\t\tconst id = await r.u62();\n\t\tconst broadcast = Path.decode(await r.string());\n\t\tconst track = await r.string();\n\t\tconst priority = await r.u8();\n\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\treturn new Subscribe({ id, broadcast, track, priority });\n\t\t\tdefault: {\n\t\t\t\tconst ordered = await r.bool();\n\t\t\t\tconst maxLatency = await r.u53();\n\t\t\t\tconst startGroup = await r.u53();\n\t\t\t\tconst endGroup = await r.u53();\n\t\t\t\treturn new Subscribe({\n\t\t\t\t\tid,\n\t\t\t\t\tbroadcast,\n\t\t\t\t\ttrack,\n\t\t\t\t\tpriority,\n\t\t\t\t\tordered,\n\t\t\t\t\tmaxLatency,\n\t\t\t\t\tstartGroup: startGroup > 0 ? startGroup - 1 : undefined,\n\t\t\t\t\tendGroup: endGroup > 0 ? endGroup - 1 : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tasync encode(w: Writer, version: Version): Promise<void> {\n\t\treturn Message.encode(w, (w) => this.#encode(w, version));\n\t}\n\n\tstatic async decode(r: Reader, version: Version): Promise<Subscribe> {\n\t\treturn Message.decode(r, (r) => Subscribe.#decode(r, version));\n\t}\n}\n\n/**\n * Publisher's acknowledgement on the Subscribe Stream for drafts 01-04.\n *\n * Draft-05+ replaced this with implicit acceptance plus {@link SubscribeStart} /\n * {@link SubscribeEnd}; the immutable codec/timescale/cache moved to TRACK_INFO.\n */\nexport class SubscribeOk {\n\tpriority: number;\n\tordered: boolean;\n\tmaxLatency: number;\n\tstartGroup?: number;\n\tendGroup?: number;\n\n\tconstructor({\n\t\tpriority = 0,\n\t\tordered = false,\n\t\tmaxLatency = 0,\n\t\tstartGroup = undefined,\n\t\tendGroup = undefined,\n\t}: {\n\t\tpriority?: number;\n\t\tordered?: boolean;\n\t\tmaxLatency?: number;\n\t\tstartGroup?: number;\n\t\tendGroup?: number;\n\t}) {\n\t\tthis.priority = priority;\n\t\tthis.ordered = ordered;\n\t\tthis.maxLatency = maxLatency;\n\t\tthis.startGroup = startGroup;\n\t\tthis.endGroup = endGroup;\n\t}\n\n\tasync #encode(w: Writer, version: Version) {\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\t// noop\n\t\t\t\tbreak;\n\t\t\tcase Version.DRAFT_01:\n\t\t\t\tawait w.u8(this.priority ?? 0);\n\t\t\t\tbreak;\n\t\t\t// Draft-05+ never sends SUBSCRIBE_OK, but keep the field layout matching\n\t\t\t// Draft-03/04 so a stray future use stays well-formed.\n\t\t\tdefault:\n\t\t\t\tawait w.u8(this.priority);\n\t\t\t\tawait w.bool(this.ordered);\n\t\t\t\tawait w.u53(this.maxLatency);\n\t\t\t\tawait w.u53(this.startGroup !== undefined ? this.startGroup + 1 : 0);\n\t\t\t\tawait w.u53(this.endGroup !== undefined ? this.endGroup + 1 : 0);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstatic async #decode(version: Version, r: Reader): Promise<SubscribeOk> {\n\t\tlet priority: number | undefined;\n\t\tlet ordered: boolean | undefined;\n\t\tlet maxLatency: number | undefined;\n\t\tlet startGroup: number | undefined;\n\t\tlet endGroup: number | undefined;\n\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\t// noop\n\t\t\t\tbreak;\n\t\t\tcase Version.DRAFT_01:\n\t\t\t\tpriority = await r.u8();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tpriority = await r.u8();\n\t\t\t\tordered = await r.bool();\n\t\t\t\tmaxLatency = await r.u53();\n\t\t\t\tstartGroup = await r.u53();\n\t\t\t\tendGroup = await r.u53();\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn new SubscribeOk({\n\t\t\tpriority,\n\t\t\tordered,\n\t\t\tmaxLatency,\n\t\t\tstartGroup: startGroup !== undefined && startGroup > 0 ? startGroup - 1 : undefined,\n\t\t\tendGroup: endGroup !== undefined && endGroup > 0 ? endGroup - 1 : undefined,\n\t\t});\n\t}\n\n\tasync encode(w: Writer, version: Version): Promise<void> {\n\t\treturn Message.encode(w, (w) => this.#encode(w, version));\n\t}\n\n\tstatic async decode(r: Reader, version: Version): Promise<SubscribeOk> {\n\t\treturn Message.decode(r, SubscribeOk.#decode.bind(SubscribeOk, version));\n\t}\n}\n\n/**\n * Resolves the absolute start group of a Draft-05+ subscription. The first message\n * the publisher sends, once the start group is known. A value greater than the\n * requested start implicitly drops the leading range.\n */\nexport class SubscribeStart {\n\tgroup: number;\n\n\tconstructor(group: number) {\n\t\tthis.group = group;\n\t}\n\n\tasync encode(w: Writer): Promise<void> {\n\t\treturn Message.encode(w, async (w) => {\n\t\t\tawait w.u53(this.group);\n\t\t});\n\t}\n\n\tstatic async decode(r: Reader): Promise<SubscribeStart> {\n\t\treturn Message.decode(r, async (r) => new SubscribeStart(await r.u53()));\n\t}\n}\n\n/**\n * Signals that no group at or after `group` (exclusive upper bound) will be produced\n * on a Draft-05+ subscription. `0` means the track ended before producing any groups.\n */\nexport class SubscribeEnd {\n\t/** The exclusive final group sequence: the first sequence that will never be produced. */\n\tgroup: number;\n\n\tconstructor(group: number) {\n\t\tthis.group = group;\n\t}\n\n\tasync encode(w: Writer): Promise<void> {\n\t\treturn Message.encode(w, async (w) => {\n\t\t\tawait w.u53(this.group);\n\t\t});\n\t}\n\n\tstatic async decode(r: Reader): Promise<SubscribeEnd> {\n\t\treturn Message.decode(r, async (r) => new SubscribeEnd(await r.u53()));\n\t}\n}\n\n/// Indicates that one or more groups have been dropped.\n///\n/// Draft03+ only.\nexport class SubscribeDrop {\n\tstart: number;\n\tend: number;\n\terror: number;\n\n\tconstructor(props: { start: number; end: number; error: number }) {\n\t\tthis.start = props.start;\n\t\tthis.end = props.end;\n\t\tthis.error = props.error;\n\t}\n\n\tasync #encode(w: Writer) {\n\t\tawait w.u53(this.start);\n\t\tawait w.u53(this.end);\n\t\tawait w.u53(this.error);\n\t}\n\n\tstatic async #decode(r: Reader): Promise<SubscribeDrop> {\n\t\treturn new SubscribeDrop({ start: await r.u53(), end: await r.u53(), error: await r.u53() });\n\t}\n\n\tasync encode(w: Writer): Promise<void> {\n\t\treturn Message.encode(w, this.#encode.bind(this));\n\t}\n\n\tstatic async decode(r: Reader): Promise<SubscribeDrop> {\n\t\treturn Message.decode(r, SubscribeDrop.#decode);\n\t}\n}\n\n/**\n * A response message on the subscribe stream, prefixed with a type discriminator\n * on Draft-03+.\n *\n * The discriminator is version-dependent:\n * - Draft-03/04: `0x0` SUBSCRIBE_OK, `0x1` SUBSCRIBE_DROP.\n * - Draft-05+: `0x0` SUBSCRIBE_START, `0x1` SUBSCRIBE_END, `0x2` SUBSCRIBE_DROP\n * (SUBSCRIBE_OK was removed; acceptance is implicit).\n */\nexport type SubscribeResponse =\n\t| { ok: SubscribeOk }\n\t| { start: SubscribeStart }\n\t| { end: SubscribeEnd }\n\t| { drop: SubscribeDrop };\n\nexport async function encodeSubscribeResponse(w: Writer, resp: SubscribeResponse, version: Version): Promise<void> {\n\tswitch (version) {\n\t\tcase Version.DRAFT_01:\n\t\tcase Version.DRAFT_02:\n\t\t\tif (\"ok\" in resp) {\n\t\t\t\tawait resp.ok.encode(w, version);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"only SUBSCRIBE_OK is supported for this version\");\n\t\t\t}\n\t\t\tbreak;\n\t\tcase Version.DRAFT_03:\n\t\tcase Version.DRAFT_04:\n\t\t\tif (\"ok\" in resp) {\n\t\t\t\tawait w.u53(0x0);\n\t\t\t\tawait resp.ok.encode(w, version);\n\t\t\t} else if (\"drop\" in resp) {\n\t\t\t\tawait w.u53(0x1);\n\t\t\t\tawait resp.drop.encode(w);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"SUBSCRIBE_START/END not supported for this version\");\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t// Draft-05+: SUBSCRIBE_OK is gone; START/END/DROP carry the resolved range.\n\t\t\tif (\"start\" in resp) {\n\t\t\t\tawait w.u53(0x0);\n\t\t\t\tawait resp.start.encode(w);\n\t\t\t} else if (\"end\" in resp) {\n\t\t\t\tawait w.u53(0x1);\n\t\t\t\tawait resp.end.encode(w);\n\t\t\t} else if (\"drop\" in resp) {\n\t\t\t\tawait w.u53(0x2);\n\t\t\t\tawait resp.drop.encode(w);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"SUBSCRIBE_OK not supported for this version\");\n\t\t\t}\n\t\t\tbreak;\n\t}\n}\n\nexport async function decodeSubscribeResponse(r: Reader, version: Version): Promise<SubscribeResponse> {\n\tswitch (version) {\n\t\tcase Version.DRAFT_01:\n\t\tcase Version.DRAFT_02:\n\t\t\treturn { ok: await SubscribeOk.decode(r, version) };\n\t\tcase Version.DRAFT_03:\n\t\tcase Version.DRAFT_04: {\n\t\t\tconst typ = await r.u53();\n\t\t\tswitch (typ) {\n\t\t\t\tcase 0x0:\n\t\t\t\t\treturn { ok: await SubscribeOk.decode(r, version) };\n\t\t\t\tcase 0x1:\n\t\t\t\t\treturn { drop: await SubscribeDrop.decode(r) };\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`unknown subscribe response type: ${typ}`);\n\t\t\t}\n\t\t}\n\t\tdefault: {\n\t\t\tconst typ = await r.u53();\n\t\t\tswitch (typ) {\n\t\t\t\tcase 0x0:\n\t\t\t\t\treturn { start: await SubscribeStart.decode(r) };\n\t\t\t\tcase 0x1:\n\t\t\t\t\treturn { end: await SubscribeEnd.decode(r) };\n\t\t\t\tcase 0x2:\n\t\t\t\t\treturn { drop: await SubscribeDrop.decode(r) };\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`unknown subscribe response type: ${typ}`);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/** Like {@link decodeSubscribeResponse} but resolves `undefined` on a clean FIN. */\nexport async function decodeSubscribeResponseMaybe(\n\tr: Reader,\n\tversion: Version,\n): Promise<SubscribeResponse | undefined> {\n\tif (await r.done()) return undefined;\n\treturn decodeSubscribeResponse(r, version);\n}\n"]}
@@ -1,12 +1,14 @@
1
- import type { Signal } from "@norskvideo/moq-signals";
2
- import { Announced } from "../announced";
3
- import type { Bandwidth } from "../bandwidth";
4
- import { Broadcast } from "../broadcast";
1
+ import { Signal } from "@norskvideo/moq-signals";
2
+ import * as announce from "../announced";
3
+ import * as broadcast from "../broadcast";
4
+ import type { Probe as ProbeStats } from "../connection/stats";
5
+ import * as netGroup from "../group";
6
+ import { type Origin } from "../origin";
5
7
  import * as Path from "../path";
6
8
  import { type Reader } from "../stream";
7
- import type * as Time from "../time";
9
+ import type * as track from "../track";
8
10
  import type { Group as GroupMessage } from "./group";
9
- import type { Origin } from "./origin";
11
+ import { type Setup } from "./setup";
10
12
  import { Version } from "./version";
11
13
  /**
12
14
  * Options accepted by {@link Subscriber.announced}.
@@ -14,18 +16,17 @@ import { Version } from "./version";
14
16
  export interface AnnouncedOptions {
15
17
  /**
16
18
  * If true, skip announcements whose hop chain contains this connection's
17
- * own origin id useful for meshes that reflect announces back. Defaults
19
+ * own origin id. Useful for meshes that reflect announces back. Defaults
18
20
  * to false for backwards compatibility: existing code (notably hang.live)
19
21
  * relies on seeing its own publishes as the signal that a namespace
20
22
  * published successfully.
23
+ *
24
+ * Only meaningful on lite-04/05, where the peer filters reflected announces
25
+ * on request (ANNOUNCE_REQUEST's `Exclude Hop`). Later versions dropped that
26
+ * field, so reflected announces are always skipped.
21
27
  */
22
28
  ignoreSelf?: boolean;
23
29
  }
24
- /**
25
- * Handles subscribing to broadcasts and managing their lifecycle.
26
- *
27
- * @internal
28
- */
29
30
  export declare class Subscriber {
30
31
  #private;
31
32
  readonly version: Version;
@@ -35,26 +36,32 @@ export declare class Subscriber {
35
36
  * @param quic - The WebTransport session to use
36
37
  * @param version - The protocol version
37
38
  * @param origin - Origin id shared with the Publisher
38
- * @param recvBandwidth - Optional bandwidth producer for PROBE
39
- * @param rtt - Optional RTT signal for PROBE
39
+ * @param probe - Optional sink for the peer's PROBE estimates
40
+ * @param peerSetup - Optional peer SETUP slot for capability gating (lite-05+)
40
41
  *
41
42
  * @internal
42
43
  */
43
- constructor(quic: WebTransport, version: Version, origin: Origin, recvBandwidth?: Bandwidth, rtt?: Signal<Time.Milli | undefined>);
44
+ constructor(quic: WebTransport, version: Version, origin: Origin, probe?: Signal<ProbeStats>, peerSetup?: Signal<Setup | undefined>);
44
45
  /**
45
46
  * Subscribe to broadcast announcements under `prefix`.
46
47
  *
47
48
  * Pass `{ ignoreSelf: true }` to skip announces that have already traversed
48
49
  * this connection's {@link origin}.
49
50
  */
50
- announced(prefix?: Path.Valid, options?: AnnouncedOptions): Announced;
51
+ announced(prefix?: Path.Valid, options?: AnnouncedOptions): announce.Consumer;
51
52
  /**
52
53
  * Consumes a broadcast from the connection.
53
54
  *
55
+ * Deduplicated per path: repeat calls for the same still-live path share one reference-counted
56
+ * broadcast (and one upstream subscription). The shared broadcast closes once every caller has
57
+ * closed its handle, so callers close normally.
58
+ *
54
59
  * @param name - The name of the broadcast to consume
55
60
  * @returns A Broadcast instance
56
61
  */
57
- consume(path: Path.Valid): Broadcast;
62
+ consume(path: Path.Valid): broadcast.Consumer;
63
+ resolveTrackInfo(broadcast: Path.Valid, track: string): Promise<track.Info>;
64
+ fetchGroup(broadcast: Path.Valid, track: string, sequence: number, options?: track.FetchGroupOptions): Promise<netGroup.Consumer>;
58
65
  /**
59
66
  * Handles a group message.
60
67
  * @param group - The group message
@@ -64,16 +71,15 @@ export declare class Subscriber {
64
71
  */
65
72
  runGroup(group: GroupMessage, stream: Reader): Promise<void>;
66
73
  /**
67
- * Opens a PROBE bidi stream to receive bandwidth estimates from the publisher.
68
- * Returns immediately if recv bandwidth is not supported.
74
+ * Receives QUIC datagrams and routes each to its subscription's track producer (lite-05 §6.4).
69
75
  *
70
- * Probe is best-effort telemetry: a stream-level failure (peer reset, FIN,
71
- * missing peer support, transport hiccup) is caught and logged, never
72
- * propagated to the connection. On exit the bandwidth/RTT signals are
73
- * cleared so consumers see them as stale.
76
+ * Returns immediately on a non-datagram transport or pre-lite-05 version. A decode error or an
77
+ * unknown subscribe id drops that datagram without tearing down the session (best-effort); the
78
+ * loop ends only when the datagram stream closes.
74
79
  *
75
80
  * @internal
76
81
  */
82
+ runDatagrams(): Promise<void>;
77
83
  runProbe(): Promise<void>;
78
84
  close(): void;
79
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"subscriber.d.ts","sourceRoot":"","sources":["../../src/lite/subscriber.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAqB,MAAM,iBAAiB,CAAC;AAE/D,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,MAAM,EAAU,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,KAAK,IAAI,MAAM,YAAY,CAAC;AAIxC,OAAO,KAAK,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,OAAO,EAAkB,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,UAAU;;IAItB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAI1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAexB;;;;;;;;;OASG;IACH,YACC,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,SAAS,EACzB,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,EAOpC;IAED;;;;;OAKG;IACH,SAAS,CAAC,MAAM,aAAe,EAAE,OAAO,GAAE,gBAAqB,GAAG,SAAS,CAI1E;IA6DD;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS,CAYnC;IAmHD;;;;;;OAMG;IACG,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAsCjD;IAED;;;;;;;;;;OAUG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CA2B9B;IAED,KAAK,SAQJ;CACD"}
1
+ {"version":3,"file":"subscriber.d.ts","sourceRoot":"","sources":["../../src/lite/subscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,MAAM,EAAU,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAC;AAM1C,OAAO,KAAK,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EAAc,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAIpD,OAAO,EAON,OAAO,EACP,MAAM,cAAc,CAAC;AA0BtB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAwCD,qBAAa,UAAU;;IAItB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAI1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAyBxB;;;;;;;;;OASG;IACH,YACC,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,EAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,EAOrC;IAED;;;;;OAKG;IACH,SAAS,CAAC,MAAM,aAAe,EAAE,OAAO,GAAE,gBAAqB,GAAG,QAAQ,CAAC,QAAQ,CAIlF;IAsPD;;;;;;;;;OASG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAE5C;IAgMK,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAKhF;IAID,UAAU,CACT,SAAS,EAAE,IAAI,CAAC,KAAK,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,KAAK,CAAC,iBAAsB,GACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAgB5B;IA2JD;;;;;;OAMG;IACG,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBA4DjD;IAED;;;;;;;;OAQG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAkClC;IAwCK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CA0C9B;IAED,KAAK,SAQJ;CACD"}