reactor-effect-client 0.7.0 → 0.8.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 (514) hide show
  1. package/NOTICE +7 -2
  2. package/README.md +103 -141
  3. package/dist/Coordinator.d.ts +382 -0
  4. package/dist/Coordinator.d.ts.map +1 -0
  5. package/dist/Coordinator.js +732 -0
  6. package/dist/Coordinator.js.map +1 -0
  7. package/dist/H3.d.ts +159 -0
  8. package/dist/H3.d.ts.map +1 -0
  9. package/dist/H3.js +21 -0
  10. package/dist/H3.js.map +1 -0
  11. package/dist/H3Source.d.ts +93 -0
  12. package/dist/H3Source.d.ts.map +1 -0
  13. package/dist/H3Source.js +401 -0
  14. package/dist/H3Source.js.map +1 -0
  15. package/dist/LocalSource.d.ts +68 -0
  16. package/dist/LocalSource.d.ts.map +1 -0
  17. package/dist/LocalSource.js +354 -0
  18. package/dist/LocalSource.js.map +1 -0
  19. package/dist/Media.d.ts +106 -0
  20. package/dist/Media.d.ts.map +1 -0
  21. package/dist/Media.js +16 -0
  22. package/dist/Media.js.map +1 -0
  23. package/dist/Peer.d.ts +134 -0
  24. package/dist/Peer.d.ts.map +1 -0
  25. package/dist/Peer.js +57 -0
  26. package/dist/Peer.js.map +1 -0
  27. package/dist/Playout.d.ts +724 -0
  28. package/dist/Playout.d.ts.map +1 -0
  29. package/dist/Playout.js +28 -0
  30. package/dist/Playout.js.map +1 -0
  31. package/dist/Reactor.d.ts +135 -0
  32. package/dist/Reactor.d.ts.map +1 -0
  33. package/dist/Reactor.js +158 -0
  34. package/dist/Reactor.js.map +1 -0
  35. package/dist/ReactorError.d.ts +331 -0
  36. package/dist/ReactorError.d.ts.map +1 -0
  37. package/dist/ReactorError.js +316 -0
  38. package/dist/ReactorError.js.map +1 -0
  39. package/dist/ReactorTest.d.ts +383 -0
  40. package/dist/ReactorTest.d.ts.map +1 -0
  41. package/dist/ReactorTest.js +317 -0
  42. package/dist/ReactorTest.js.map +1 -0
  43. package/dist/Session.d.ts +314 -0
  44. package/dist/Session.d.ts.map +1 -0
  45. package/dist/Session.js +51 -0
  46. package/dist/Session.js.map +1 -0
  47. package/dist/index.d.ts +12 -22
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +12 -11
  50. package/dist/index.js.map +1 -1
  51. package/dist/internal/correlator.d.ts +46 -0
  52. package/dist/internal/correlator.d.ts.map +1 -0
  53. package/dist/internal/correlator.js +150 -0
  54. package/dist/internal/correlator.js.map +1 -0
  55. package/dist/internal/deadline.d.ts +24 -0
  56. package/dist/internal/deadline.d.ts.map +1 -0
  57. package/dist/internal/deadline.js +44 -0
  58. package/dist/internal/deadline.js.map +1 -0
  59. package/dist/{h3/_internal/contracts.d.ts → internal/h3/commands.d.ts} +39 -33
  60. package/dist/internal/h3/commands.d.ts.map +1 -0
  61. package/dist/internal/h3/commands.js +128 -0
  62. package/dist/internal/h3/commands.js.map +1 -0
  63. package/dist/{h3 → internal/h3}/messages.d.ts +16 -11
  64. package/dist/internal/h3/messages.d.ts.map +1 -0
  65. package/dist/{h3 → internal/h3}/messages.js +19 -31
  66. package/dist/internal/h3/messages.js.map +1 -0
  67. package/dist/internal/h3/operations.d.ts +145 -0
  68. package/dist/internal/h3/operations.d.ts.map +1 -0
  69. package/dist/internal/h3/operations.js +284 -0
  70. package/dist/internal/h3/operations.js.map +1 -0
  71. package/dist/{h3 → internal/h3}/profile.d.ts +63 -65
  72. package/dist/internal/h3/profile.d.ts.map +1 -0
  73. package/dist/{h3 → internal/h3}/profile.js +39 -39
  74. package/dist/internal/h3/profile.js.map +1 -0
  75. package/dist/internal/h3/provider.d.ts +14 -0
  76. package/dist/internal/h3/provider.d.ts.map +1 -0
  77. package/dist/internal/h3/provider.js +672 -0
  78. package/dist/internal/h3/provider.js.map +1 -0
  79. package/dist/internal/h3/references.d.ts +68 -0
  80. package/dist/internal/h3/references.d.ts.map +1 -0
  81. package/dist/internal/h3/references.js +339 -0
  82. package/dist/internal/h3/references.js.map +1 -0
  83. package/dist/internal/h3/request.d.ts +56 -0
  84. package/dist/internal/h3/request.d.ts.map +1 -0
  85. package/dist/internal/h3/request.js +70 -0
  86. package/dist/internal/h3/request.js.map +1 -0
  87. package/dist/internal/h3/state.d.ts +120 -0
  88. package/dist/internal/h3/state.d.ts.map +1 -0
  89. package/dist/internal/h3/state.js +270 -0
  90. package/dist/internal/h3/state.js.map +1 -0
  91. package/dist/{Submission.d.ts → internal/h3/submission.d.ts} +1 -3
  92. package/dist/internal/h3/submission.d.ts.map +1 -0
  93. package/dist/{Submission.js → internal/h3/submission.js} +1 -9
  94. package/dist/internal/h3/submission.js.map +1 -0
  95. package/dist/internal/hub.d.ts +32 -0
  96. package/dist/internal/hub.d.ts.map +1 -0
  97. package/dist/internal/hub.js +92 -0
  98. package/dist/internal/hub.js.map +1 -0
  99. package/dist/internal/playout/errors.d.ts +51 -0
  100. package/dist/internal/playout/errors.d.ts.map +1 -0
  101. package/dist/internal/playout/errors.js +40 -0
  102. package/dist/internal/playout/errors.js.map +1 -0
  103. package/dist/internal/playout/policy.d.ts +559 -0
  104. package/dist/internal/playout/policy.d.ts.map +1 -0
  105. package/dist/internal/playout/policy.js +2338 -0
  106. package/dist/internal/playout/policy.js.map +1 -0
  107. package/dist/internal/playout/runtime.d.ts +28 -0
  108. package/dist/internal/playout/runtime.d.ts.map +1 -0
  109. package/dist/internal/playout/runtime.js +766 -0
  110. package/dist/internal/playout/runtime.js.map +1 -0
  111. package/dist/internal/playout/tag.d.ts +14 -0
  112. package/dist/internal/playout/tag.d.ts.map +1 -0
  113. package/dist/internal/playout/tag.js +43 -0
  114. package/dist/internal/playout/tag.js.map +1 -0
  115. package/dist/internal/proto/reactor_wire/v1/common_pb.d.ts +55 -0
  116. package/dist/internal/proto/reactor_wire/v1/common_pb.d.ts.map +1 -0
  117. package/dist/internal/proto/reactor_wire/v1/common_pb.js +42 -0
  118. package/dist/internal/proto/reactor_wire/v1/common_pb.js.map +1 -0
  119. package/dist/internal/proto/reactor_wire/v1/control_pb.d.ts +160 -0
  120. package/dist/internal/proto/reactor_wire/v1/control_pb.d.ts.map +1 -0
  121. package/dist/internal/proto/reactor_wire/v1/control_pb.js +21 -0
  122. package/dist/internal/proto/reactor_wire/v1/control_pb.js.map +1 -0
  123. package/dist/internal/proto/reactor_wire/v1/data_pb.d.ts +89 -0
  124. package/dist/internal/proto/reactor_wire/v1/data_pb.d.ts.map +1 -0
  125. package/dist/internal/proto/reactor_wire/v1/data_pb.js +20 -0
  126. package/dist/internal/proto/reactor_wire/v1/data_pb.js.map +1 -0
  127. package/dist/internal/proto/reactor_wire/v1/model_pb.d.ts +85 -0
  128. package/dist/internal/proto/reactor_wire/v1/model_pb.d.ts.map +1 -0
  129. package/dist/internal/proto/reactor_wire/v1/model_pb.js +24 -0
  130. package/dist/internal/proto/reactor_wire/v1/model_pb.js.map +1 -0
  131. package/dist/internal/proto/reactor_wire/v1/platform_pb.d.ts +190 -0
  132. package/dist/internal/proto/reactor_wire/v1/platform_pb.d.ts.map +1 -0
  133. package/dist/internal/proto/reactor_wire/v1/platform_pb.js +54 -0
  134. package/dist/internal/proto/reactor_wire/v1/platform_pb.js.map +1 -0
  135. package/dist/internal/proto/reactor_wire/v1/track_pb.d.ts +88 -0
  136. package/dist/internal/proto/reactor_wire/v1/track_pb.d.ts.map +1 -0
  137. package/dist/internal/proto/reactor_wire/v1/track_pb.js +33 -0
  138. package/dist/internal/proto/reactor_wire/v1/track_pb.js.map +1 -0
  139. package/dist/internal/queue.d.ts +4 -0
  140. package/dist/internal/queue.d.ts.map +1 -0
  141. package/dist/{_internal → internal}/queue.js +0 -9
  142. package/dist/internal/queue.js.map +1 -0
  143. package/dist/internal/reactorTest/coordinator.d.ts +5 -0
  144. package/dist/internal/reactorTest/coordinator.d.ts.map +1 -0
  145. package/dist/internal/reactorTest/coordinator.js +178 -0
  146. package/dist/internal/reactorTest/coordinator.js.map +1 -0
  147. package/dist/internal/reactorTest/faults.d.ts +172 -0
  148. package/dist/internal/reactorTest/faults.d.ts.map +1 -0
  149. package/dist/internal/reactorTest/faults.js +23 -0
  150. package/dist/internal/reactorTest/faults.js.map +1 -0
  151. package/dist/internal/reactorTest/h3.d.ts +431 -0
  152. package/dist/internal/reactorTest/h3.d.ts.map +1 -0
  153. package/dist/internal/reactorTest/h3.js +625 -0
  154. package/dist/internal/reactorTest/h3.js.map +1 -0
  155. package/dist/internal/reactorTest/media.d.ts +22 -0
  156. package/dist/internal/reactorTest/media.d.ts.map +1 -0
  157. package/dist/internal/reactorTest/media.js +34 -0
  158. package/dist/internal/reactorTest/media.js.map +1 -0
  159. package/dist/internal/reactorTest/peer.d.ts +318 -0
  160. package/dist/internal/reactorTest/peer.d.ts.map +1 -0
  161. package/dist/internal/reactorTest/peer.js +206 -0
  162. package/dist/internal/reactorTest/peer.js.map +1 -0
  163. package/dist/internal/reactorTest/playout.d.ts +34 -0
  164. package/dist/internal/reactorTest/playout.d.ts.map +1 -0
  165. package/dist/internal/reactorTest/playout.js +340 -0
  166. package/dist/internal/reactorTest/playout.js.map +1 -0
  167. package/dist/internal/reactorTest/references.d.ts +25 -0
  168. package/dist/internal/reactorTest/references.d.ts.map +1 -0
  169. package/dist/{testing/Png.js → internal/reactorTest/references.js} +50 -12
  170. package/dist/internal/reactorTest/references.js.map +1 -0
  171. package/dist/internal/reactorTest/sessions.d.ts +364 -0
  172. package/dist/internal/reactorTest/sessions.d.ts.map +1 -0
  173. package/dist/internal/reactorTest/sessions.js +592 -0
  174. package/dist/internal/reactorTest/sessions.js.map +1 -0
  175. package/dist/internal/reactorTest/timing.d.ts +13 -0
  176. package/dist/internal/reactorTest/timing.d.ts.map +1 -0
  177. package/dist/internal/reactorTest/timing.js +20 -0
  178. package/dist/internal/reactorTest/timing.js.map +1 -0
  179. package/dist/internal/recording.d.ts +52 -0
  180. package/dist/internal/recording.d.ts.map +1 -0
  181. package/dist/internal/recording.js +141 -0
  182. package/dist/internal/recording.js.map +1 -0
  183. package/dist/internal/session/connect.d.ts +34 -0
  184. package/dist/internal/session/connect.d.ts.map +1 -0
  185. package/dist/internal/session/connect.js +502 -0
  186. package/dist/internal/session/connect.js.map +1 -0
  187. package/dist/internal/session/generation.d.ts +35 -0
  188. package/dist/internal/session/generation.d.ts.map +1 -0
  189. package/dist/internal/session/generation.js +185 -0
  190. package/dist/internal/session/generation.js.map +1 -0
  191. package/dist/internal/session/ice.d.ts +23 -0
  192. package/dist/internal/session/ice.d.ts.map +1 -0
  193. package/dist/internal/session/ice.js +57 -0
  194. package/dist/internal/session/ice.js.map +1 -0
  195. package/dist/internal/session/inbound.d.ts +50 -0
  196. package/dist/internal/session/inbound.d.ts.map +1 -0
  197. package/dist/internal/session/inbound.js +202 -0
  198. package/dist/internal/session/inbound.js.map +1 -0
  199. package/dist/internal/session/model.d.ts +163 -0
  200. package/dist/internal/session/model.d.ts.map +1 -0
  201. package/dist/internal/session/model.js +78 -0
  202. package/dist/internal/session/model.js.map +1 -0
  203. package/dist/internal/session/requests.d.ts +71 -0
  204. package/dist/internal/session/requests.d.ts.map +1 -0
  205. package/dist/internal/session/requests.js +240 -0
  206. package/dist/internal/session/requests.js.map +1 -0
  207. package/dist/internal/session/tracks.d.ts +21 -0
  208. package/dist/internal/session/tracks.d.ts.map +1 -0
  209. package/dist/internal/session/tracks.js +166 -0
  210. package/dist/internal/session/tracks.js.map +1 -0
  211. package/dist/internal/session/upload.d.ts +21 -0
  212. package/dist/internal/session/upload.d.ts.map +1 -0
  213. package/dist/internal/session/upload.js +68 -0
  214. package/dist/internal/session/upload.js.map +1 -0
  215. package/dist/internal/session.d.ts +66 -0
  216. package/dist/internal/session.d.ts.map +1 -0
  217. package/dist/internal/session.js +280 -0
  218. package/dist/internal/session.js.map +1 -0
  219. package/dist/{stats.d.ts → internal/stats.d.ts} +30 -16
  220. package/dist/internal/stats.d.ts.map +1 -0
  221. package/dist/internal/stats.js +201 -0
  222. package/dist/internal/stats.js.map +1 -0
  223. package/dist/internal/token.d.ts +22 -0
  224. package/dist/internal/token.d.ts.map +1 -0
  225. package/dist/internal/token.js +65 -0
  226. package/dist/internal/token.js.map +1 -0
  227. package/dist/internal/wire.d.ts +37 -0
  228. package/dist/internal/wire.d.ts.map +1 -0
  229. package/dist/internal/wire.js +49 -0
  230. package/dist/internal/wire.js.map +1 -0
  231. package/notices/bufbuild-protobuf-LICENSE +201 -0
  232. package/package.json +17 -38
  233. package/dist/FetchHttp.d.ts +0 -9
  234. package/dist/FetchHttp.d.ts.map +0 -1
  235. package/dist/FetchHttp.js +0 -63
  236. package/dist/FetchHttp.js.map +0 -1
  237. package/dist/PeerFactory.d.ts +0 -26
  238. package/dist/PeerFactory.d.ts.map +0 -1
  239. package/dist/PeerFactory.js +0 -4
  240. package/dist/PeerFactory.js.map +0 -1
  241. package/dist/PeerTypes.d.ts +0 -64
  242. package/dist/PeerTypes.d.ts.map +0 -1
  243. package/dist/PeerTypes.js +0 -2
  244. package/dist/PeerTypes.js.map +0 -1
  245. package/dist/Sequence.d.ts +0 -85
  246. package/dist/Sequence.d.ts.map +0 -1
  247. package/dist/Sequence.js +0 -210
  248. package/dist/Sequence.js.map +0 -1
  249. package/dist/SessionTypes.d.ts +0 -312
  250. package/dist/SessionTypes.d.ts.map +0 -1
  251. package/dist/SessionTypes.js +0 -19
  252. package/dist/SessionTypes.js.map +0 -1
  253. package/dist/Submission.d.ts.map +0 -1
  254. package/dist/Submission.js.map +0 -1
  255. package/dist/_internal/queue.d.ts +0 -6
  256. package/dist/_internal/queue.d.ts.map +0 -1
  257. package/dist/_internal/queue.js.map +0 -1
  258. package/dist/bytes.d.ts +0 -6
  259. package/dist/bytes.d.ts.map +0 -1
  260. package/dist/bytes.js +0 -32
  261. package/dist/bytes.js.map +0 -1
  262. package/dist/contract.d.ts +0 -149
  263. package/dist/contract.d.ts.map +0 -1
  264. package/dist/contract.js +0 -119
  265. package/dist/contract.js.map +0 -1
  266. package/dist/coordinator/_internal/client.d.ts +0 -215
  267. package/dist/coordinator/_internal/client.d.ts.map +0 -1
  268. package/dist/coordinator/_internal/client.js +0 -563
  269. package/dist/coordinator/_internal/client.js.map +0 -1
  270. package/dist/coordinator/_internal/recording.d.ts +0 -31
  271. package/dist/coordinator/_internal/recording.d.ts.map +0 -1
  272. package/dist/coordinator/_internal/recording.js +0 -123
  273. package/dist/coordinator/_internal/recording.js.map +0 -1
  274. package/dist/coordinator/_internal/response.d.ts +0 -15
  275. package/dist/coordinator/_internal/response.d.ts.map +0 -1
  276. package/dist/coordinator/_internal/response.js +0 -55
  277. package/dist/coordinator/_internal/response.js.map +0 -1
  278. package/dist/coordinator/_internal/schemas.d.ts +0 -73
  279. package/dist/coordinator/_internal/schemas.d.ts.map +0 -1
  280. package/dist/coordinator/_internal/schemas.js +0 -200
  281. package/dist/coordinator/_internal/schemas.js.map +0 -1
  282. package/dist/coordinator/index.d.ts +0 -40
  283. package/dist/coordinator/index.d.ts.map +0 -1
  284. package/dist/coordinator/index.js +0 -21
  285. package/dist/coordinator/index.js.map +0 -1
  286. package/dist/correlation.d.ts +0 -47
  287. package/dist/correlation.d.ts.map +0 -1
  288. package/dist/correlation.js +0 -131
  289. package/dist/correlation.js.map +0 -1
  290. package/dist/duration.d.ts +0 -27
  291. package/dist/duration.d.ts.map +0 -1
  292. package/dist/duration.js +0 -47
  293. package/dist/duration.js.map +0 -1
  294. package/dist/errors.d.ts +0 -1303
  295. package/dist/errors.d.ts.map +0 -1
  296. package/dist/errors.js +0 -745
  297. package/dist/errors.js.map +0 -1
  298. package/dist/h3/_internal/client.d.ts +0 -9
  299. package/dist/h3/_internal/client.d.ts.map +0 -1
  300. package/dist/h3/_internal/client.js +0 -652
  301. package/dist/h3/_internal/client.js.map +0 -1
  302. package/dist/h3/_internal/contracts.d.ts.map +0 -1
  303. package/dist/h3/_internal/contracts.js +0 -123
  304. package/dist/h3/_internal/contracts.js.map +0 -1
  305. package/dist/h3/_internal/deployment.d.ts +0 -8
  306. package/dist/h3/_internal/deployment.d.ts.map +0 -1
  307. package/dist/h3/_internal/deployment.js +0 -149
  308. package/dist/h3/_internal/deployment.js.map +0 -1
  309. package/dist/h3/_internal/evidence.d.ts +0 -17
  310. package/dist/h3/_internal/evidence.d.ts.map +0 -1
  311. package/dist/h3/_internal/evidence.js +0 -48
  312. package/dist/h3/_internal/evidence.js.map +0 -1
  313. package/dist/h3/_internal/operations.d.ts +0 -58
  314. package/dist/h3/_internal/operations.d.ts.map +0 -1
  315. package/dist/h3/_internal/operations.js +0 -268
  316. package/dist/h3/_internal/operations.js.map +0 -1
  317. package/dist/h3/_internal/references.d.ts +0 -24
  318. package/dist/h3/_internal/references.d.ts.map +0 -1
  319. package/dist/h3/_internal/references.js +0 -309
  320. package/dist/h3/_internal/references.js.map +0 -1
  321. package/dist/h3/_internal/request.d.ts +0 -21
  322. package/dist/h3/_internal/request.d.ts.map +0 -1
  323. package/dist/h3/_internal/request.js +0 -97
  324. package/dist/h3/_internal/request.js.map +0 -1
  325. package/dist/h3/_internal/retained.d.ts +0 -22
  326. package/dist/h3/_internal/retained.d.ts.map +0 -1
  327. package/dist/h3/_internal/retained.js +0 -89
  328. package/dist/h3/_internal/retained.js.map +0 -1
  329. package/dist/h3/_internal/state.d.ts +0 -44
  330. package/dist/h3/_internal/state.d.ts.map +0 -1
  331. package/dist/h3/_internal/state.js +0 -283
  332. package/dist/h3/_internal/state.js.map +0 -1
  333. package/dist/h3/index.d.ts +0 -10
  334. package/dist/h3/index.d.ts.map +0 -1
  335. package/dist/h3/index.js +0 -7
  336. package/dist/h3/index.js.map +0 -1
  337. package/dist/h3/messages.d.ts.map +0 -1
  338. package/dist/h3/messages.js.map +0 -1
  339. package/dist/h3/profile.d.ts.map +0 -1
  340. package/dist/h3/profile.js.map +0 -1
  341. package/dist/h3/types.d.ts +0 -291
  342. package/dist/h3/types.d.ts.map +0 -1
  343. package/dist/h3/types.js +0 -2
  344. package/dist/h3/types.js.map +0 -1
  345. package/dist/host.d.ts +0 -26
  346. package/dist/host.d.ts.map +0 -1
  347. package/dist/host.js +0 -20
  348. package/dist/host.js.map +0 -1
  349. package/dist/json.d.ts +0 -25
  350. package/dist/json.d.ts.map +0 -1
  351. package/dist/json.js +0 -143
  352. package/dist/json.js.map +0 -1
  353. package/dist/media-stream.d.ts +0 -10
  354. package/dist/media-stream.d.ts.map +0 -1
  355. package/dist/media-stream.js +0 -18
  356. package/dist/media-stream.js.map +0 -1
  357. package/dist/observation.d.ts +0 -38
  358. package/dist/observation.d.ts.map +0 -1
  359. package/dist/observation.js +0 -113
  360. package/dist/observation.js.map +0 -1
  361. package/dist/orchestration/elapsed.d.ts +0 -9
  362. package/dist/orchestration/elapsed.d.ts.map +0 -1
  363. package/dist/orchestration/elapsed.js +0 -8
  364. package/dist/orchestration/elapsed.js.map +0 -1
  365. package/dist/orchestration/h3-source.d.ts +0 -58
  366. package/dist/orchestration/h3-source.d.ts.map +0 -1
  367. package/dist/orchestration/h3-source.js +0 -362
  368. package/dist/orchestration/h3-source.js.map +0 -1
  369. package/dist/orchestration/index.d.ts +0 -17
  370. package/dist/orchestration/index.d.ts.map +0 -1
  371. package/dist/orchestration/index.js +0 -12
  372. package/dist/orchestration/index.js.map +0 -1
  373. package/dist/orchestration/media-buffer.d.ts +0 -32
  374. package/dist/orchestration/media-buffer.d.ts.map +0 -1
  375. package/dist/orchestration/media-buffer.js +0 -94
  376. package/dist/orchestration/media-buffer.js.map +0 -1
  377. package/dist/orchestration/open-h3.d.ts +0 -101
  378. package/dist/orchestration/open-h3.d.ts.map +0 -1
  379. package/dist/orchestration/open-h3.js +0 -127
  380. package/dist/orchestration/open-h3.js.map +0 -1
  381. package/dist/orchestration/queries.d.ts +0 -10
  382. package/dist/orchestration/queries.d.ts.map +0 -1
  383. package/dist/orchestration/queries.js +0 -43
  384. package/dist/orchestration/queries.js.map +0 -1
  385. package/dist/orchestration/references.d.ts +0 -18
  386. package/dist/orchestration/references.d.ts.map +0 -1
  387. package/dist/orchestration/references.js +0 -79
  388. package/dist/orchestration/references.js.map +0 -1
  389. package/dist/orchestration/renewal-state.d.ts +0 -84
  390. package/dist/orchestration/renewal-state.d.ts.map +0 -1
  391. package/dist/orchestration/renewal-state.js +0 -95
  392. package/dist/orchestration/renewal-state.js.map +0 -1
  393. package/dist/orchestration/renewal.d.ts +0 -103
  394. package/dist/orchestration/renewal.d.ts.map +0 -1
  395. package/dist/orchestration/renewal.js +0 -1088
  396. package/dist/orchestration/renewal.js.map +0 -1
  397. package/dist/orchestration/request.d.ts +0 -65
  398. package/dist/orchestration/request.d.ts.map +0 -1
  399. package/dist/orchestration/request.js +0 -134
  400. package/dist/orchestration/request.js.map +0 -1
  401. package/dist/orchestration/retention.d.ts +0 -100
  402. package/dist/orchestration/retention.d.ts.map +0 -1
  403. package/dist/orchestration/retention.js +0 -134
  404. package/dist/orchestration/retention.js.map +0 -1
  405. package/dist/orchestration/routing.d.ts +0 -21
  406. package/dist/orchestration/routing.d.ts.map +0 -1
  407. package/dist/orchestration/routing.js +0 -93
  408. package/dist/orchestration/routing.js.map +0 -1
  409. package/dist/orchestration/scheduler-key.d.ts +0 -14
  410. package/dist/orchestration/scheduler-key.d.ts.map +0 -1
  411. package/dist/orchestration/scheduler-key.js +0 -62
  412. package/dist/orchestration/scheduler-key.js.map +0 -1
  413. package/dist/orchestration/scheduler-policy.d.ts +0 -222
  414. package/dist/orchestration/scheduler-policy.d.ts.map +0 -1
  415. package/dist/orchestration/scheduler-policy.js +0 -582
  416. package/dist/orchestration/scheduler-policy.js.map +0 -1
  417. package/dist/orchestration/scheduler.d.ts +0 -383
  418. package/dist/orchestration/scheduler.d.ts.map +0 -1
  419. package/dist/orchestration/scheduler.js +0 -2597
  420. package/dist/orchestration/scheduler.js.map +0 -1
  421. package/dist/orchestration/source-slot.d.ts +0 -124
  422. package/dist/orchestration/source-slot.d.ts.map +0 -1
  423. package/dist/orchestration/source-slot.js +0 -348
  424. package/dist/orchestration/source-slot.js.map +0 -1
  425. package/dist/orchestration/types.d.ts +0 -1462
  426. package/dist/orchestration/types.d.ts.map +0 -1
  427. package/dist/orchestration/types.js +0 -135
  428. package/dist/orchestration/types.js.map +0 -1
  429. package/dist/protobuf.d.ts +0 -63
  430. package/dist/protobuf.d.ts.map +0 -1
  431. package/dist/protobuf.js +0 -252
  432. package/dist/protobuf.js.map +0 -1
  433. package/dist/session/_internal/acquire.d.ts +0 -21
  434. package/dist/session/_internal/acquire.d.ts.map +0 -1
  435. package/dist/session/_internal/acquire.js +0 -168
  436. package/dist/session/_internal/acquire.js.map +0 -1
  437. package/dist/session/_internal/cleanup.d.ts +0 -19
  438. package/dist/session/_internal/cleanup.d.ts.map +0 -1
  439. package/dist/session/_internal/cleanup.js +0 -102
  440. package/dist/session/_internal/cleanup.js.map +0 -1
  441. package/dist/session/_internal/lifecycle.d.ts +0 -67
  442. package/dist/session/_internal/lifecycle.d.ts.map +0 -1
  443. package/dist/session/_internal/lifecycle.js +0 -142
  444. package/dist/session/_internal/lifecycle.js.map +0 -1
  445. package/dist/session/_internal/remote.d.ts +0 -28
  446. package/dist/session/_internal/remote.d.ts.map +0 -1
  447. package/dist/session/_internal/remote.js +0 -71
  448. package/dist/session/_internal/remote.js.map +0 -1
  449. package/dist/session/_internal/uploads.d.ts +0 -7
  450. package/dist/session/_internal/uploads.d.ts.map +0 -1
  451. package/dist/session/_internal/uploads.js +0 -31
  452. package/dist/session/_internal/uploads.js.map +0 -1
  453. package/dist/session/commands.d.ts +0 -2
  454. package/dist/session/commands.d.ts.map +0 -1
  455. package/dist/session/commands.js +0 -2
  456. package/dist/session/commands.js.map +0 -1
  457. package/dist/session/files.d.ts +0 -21
  458. package/dist/session/files.d.ts.map +0 -1
  459. package/dist/session/files.js +0 -49
  460. package/dist/session/files.js.map +0 -1
  461. package/dist/session/index.d.ts +0 -84
  462. package/dist/session/index.d.ts.map +0 -1
  463. package/dist/session/index.js +0 -16
  464. package/dist/session/index.js.map +0 -1
  465. package/dist/session/media.d.ts +0 -114
  466. package/dist/session/media.d.ts.map +0 -1
  467. package/dist/session/media.js +0 -2
  468. package/dist/session/media.js.map +0 -1
  469. package/dist/session/recorder.d.ts +0 -24
  470. package/dist/session/recorder.d.ts.map +0 -1
  471. package/dist/session/recorder.js +0 -19
  472. package/dist/session/recorder.js.map +0 -1
  473. package/dist/session.d.ts +0 -105
  474. package/dist/session.d.ts.map +0 -1
  475. package/dist/session.js +0 -976
  476. package/dist/session.js.map +0 -1
  477. package/dist/simulation/_internal/source.d.ts +0 -12
  478. package/dist/simulation/_internal/source.d.ts.map +0 -1
  479. package/dist/simulation/_internal/source.js +0 -513
  480. package/dist/simulation/_internal/source.js.map +0 -1
  481. package/dist/simulation/index.d.ts +0 -13
  482. package/dist/simulation/index.d.ts.map +0 -1
  483. package/dist/simulation/index.js +0 -12
  484. package/dist/simulation/index.js.map +0 -1
  485. package/dist/simulation/types.d.ts +0 -39
  486. package/dist/simulation/types.d.ts.map +0 -1
  487. package/dist/simulation/types.js +0 -2
  488. package/dist/simulation/types.js.map +0 -1
  489. package/dist/stats.d.ts.map +0 -1
  490. package/dist/stats.js +0 -205
  491. package/dist/stats.js.map +0 -1
  492. package/dist/testing/Faults.d.ts +0 -4
  493. package/dist/testing/Faults.d.ts.map +0 -1
  494. package/dist/testing/Faults.js +0 -7
  495. package/dist/testing/Faults.js.map +0 -1
  496. package/dist/testing/Png.d.ts +0 -3
  497. package/dist/testing/Png.d.ts.map +0 -1
  498. package/dist/testing/Png.js.map +0 -1
  499. package/dist/testing/Wav.d.ts +0 -14
  500. package/dist/testing/Wav.d.ts.map +0 -1
  501. package/dist/testing/Wav.js +0 -37
  502. package/dist/testing/Wav.js.map +0 -1
  503. package/dist/testing/index.d.ts +0 -5
  504. package/dist/testing/index.d.ts.map +0 -1
  505. package/dist/testing/index.js +0 -4
  506. package/dist/testing/index.js.map +0 -1
  507. package/dist/wire.d.ts +0 -7
  508. package/dist/wire.d.ts.map +0 -1
  509. package/dist/wire.generated.d.ts +0 -305
  510. package/dist/wire.generated.d.ts.map +0 -1
  511. package/dist/wire.generated.js +0 -1257
  512. package/dist/wire.generated.js.map +0 -1
  513. package/dist/wire.js +0 -5
  514. package/dist/wire.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer.js","sourceRoot":"","sources":["../../../src/internal/reactorTest/peer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Scope from "effect/Scope";
3
+ import type { MessageInitShape } from "@bufbuild/protobuf";
4
+ import type { Entry, Options } from "../../ReactorTest.js";
5
+ import * as Wire from "../wire.js";
6
+ import type { Faults } from "./faults.js";
7
+ import type { Link } from "./peer.js";
8
+ import type { Sampler } from "./timing.js";
9
+ export declare const monotonic: Effect.Effect<number, never, never>;
10
+ export declare const until: (at: number) => Effect.Effect<void>;
11
+ export interface Environment {
12
+ readonly options: Options;
13
+ readonly faults: Faults;
14
+ /** Draws every delay, seeded once for the whole simulation so a run repeats. */
15
+ readonly timing: Sampler;
16
+ readonly openapi: typeof Wire.StructJson.Type;
17
+ readonly log: (entry: Omit<Entry, "at">) => Effect.Effect<void>;
18
+ /** Ends the session, as a moderation verdict does. */
19
+ readonly terminate: Effect.Effect<void>;
20
+ /** The recorder's clip of the session's last `seconds`, or its recording so far. */
21
+ readonly record: (kind: "snap" | "recording", seconds: number) => Effect.Effect<MessageInitShape<typeof Wire.ClipReadySchema>>;
22
+ }
23
+ export declare const make: (sessionId: string, environment: Environment) => Effect.Effect<{
24
+ /**
25
+ * A connection's channels opened: hosted Reactor holds its media until it
26
+ * resumes the tracks, and a clip already playing plays on to it.
27
+ */
28
+ connect: (to: number, link: Link) => Effect.Effect<void, never, never>;
29
+ disconnect: (from: number) => Effect.Effect<void, never, never>;
30
+ /** A message the client sent. One the simulation cannot decode is the client's bug. */
31
+ receive: (from: number, link: Link, channel: "control" | "data", bytes: Uint8Array) => Effect.Effect<void, never, never>;
32
+ }, never, Scope.Scope>;
33
+ export type Playout = Effect.Success<ReturnType<typeof make>>;
34
+ //# sourceMappingURL=playout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playout.d.ts","sourceRoot":"","sources":["../../../src/internal/reactorTest/playout.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAMxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAS,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,eAAO,MAAM,SAAS,qCAAuE,CAAC;AAE9F,eAAO,MAAM,KAAK,OAAQ,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAGlD,CAAC;AAEJ,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9C,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChE,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,CACf,IAAI,EAAE,MAAM,GAAG,WAAW,EAC1B,OAAO,EAAE,MAAM,KACZ,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;CACnE;AAoBD,eAAO,MAAM,IAAI;IA+Xb;;;OAGG;kBACW,MAAM,QAAQ,IAAI;uBAoBb,MAAM;IASzB,uFAAuF;oBACvE,MAAM,QAAQ,IAAI,WAAW,SAAS,GAAG,MAAM,SAAS,UAAU;sBAQpF,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC"}
@@ -0,0 +1,340 @@
1
+ /**
2
+ * One simulated H3 session at work: its model takes one input at a time, what
3
+ * it sends goes over the session's open connections, and its timers and media
4
+ * run in the session's scope until the session ends.
5
+ */
6
+ import * as Clock from "effect/Clock";
7
+ import * as Duration from "effect/Duration";
8
+ import * as Effect from "effect/Effect";
9
+ import * as Exit from "effect/Exit";
10
+ import * as FiberMap from "effect/FiberMap";
11
+ import * as FiberSet from "effect/FiberSet";
12
+ import * as Ref from "effect/Ref";
13
+ import * as Schema from "effect/Schema";
14
+ import * as Scope from "effect/Scope";
15
+ import * as Semaphore from "effect/Semaphore";
16
+ import * as Wire from "../wire.js";
17
+ import * as H3 from "./h3.js";
18
+ import * as Media from "./media.js";
19
+ export const monotonic = Effect.map(Clock.monotonicTimeNanos, (nanos) => Number(nanos) / 1e6);
20
+ export const until = (at) => Effect.flatMap(monotonic, (now) => at > now ? Effect.sleep(Duration.millis(at - now)) : Effect.void);
21
+ const range = (count) => Array.from({ length: Math.max(0, count) }, (_, index) => index);
22
+ const tracks = [H3.documented.tracks.video, H3.documented.tracks.audio];
23
+ export const make = Effect.fnUntraced(function* (sessionId, environment) {
24
+ const { options, faults, log } = environment;
25
+ const model = yield* Ref.make(H3.initial);
26
+ const lock = yield* Semaphore.make(1);
27
+ const scope = yield* Effect.scope;
28
+ const timers = yield* FiberSet.make();
29
+ /** The open connections, by the id of the slot each was registered as. */
30
+ const connections = yield* Ref.make(new Map());
31
+ /**
32
+ * Each command not yet answered: the slot it came from, which its answer
33
+ * goes back to whenever it is sent, and whether a fault withholds or delays it.
34
+ */
35
+ const requests = yield* Ref.make(new Map());
36
+ /**
37
+ * Sends a command's answer back to the slot it came from, at once or as late
38
+ * as a fault says, and forgets the command; a withheld answer is never sent.
39
+ */
40
+ const answer = (requestId, reply) => Effect.gen(function* () {
41
+ const request = yield* Ref.modify(requests, (all) => {
42
+ const next = new Map(all);
43
+ next.delete(requestId);
44
+ return [all.get(requestId), next];
45
+ });
46
+ if (request === undefined || request.withheld)
47
+ return;
48
+ if (request.lateMs === 0)
49
+ return yield* reply(request.from);
50
+ yield* FiberSet.run(timers, Effect.sleep(Duration.millis(request.lateMs)).pipe(Effect.andThen(reply(request.from))));
51
+ });
52
+ /**
53
+ * Sends to one connection, or to every open one. The simulation encodes only
54
+ * messages it built, so a failure is a defect.
55
+ */
56
+ const send = (to, channel, schema, message) => Effect.gen(function* () {
57
+ const open = yield* Ref.get(connections);
58
+ const targets = to === "all" ? [...open.values()] : [open.get(to)];
59
+ const bytes = yield* Effect.orDie(Wire.encode(schema)(message));
60
+ for (const target of targets)
61
+ if (target !== undefined)
62
+ yield* target.link.deliver(channel, bytes);
63
+ });
64
+ const data = (to, requestId, kind, message) => Effect.gen(function* () {
65
+ if (message.type !== "queue_update" && message.type !== "state_update")
66
+ yield* log({
67
+ sessionId,
68
+ kind: "message",
69
+ name: message.type,
70
+ ...("clip" in message.data ? { clipId: message.data.clip.clip_id } : {}),
71
+ });
72
+ const json = yield* Effect.orDie(Schema.decodeUnknownEffect(Wire.StructJson)(message.data));
73
+ yield* send(to, "data", Wire.DataServerMessageSchema, {
74
+ requestId,
75
+ kind,
76
+ payload: { case: "message", value: { type: message.type, data: json } },
77
+ });
78
+ });
79
+ const respond = (to, requestId, payload) => send(to, "data", Wire.DataServerMessageSchema, {
80
+ requestId,
81
+ kind: Wire.MessageKind.RESPONSE,
82
+ ...(payload && { payload }),
83
+ });
84
+ const later = (ms, input) => FiberSet.run(timers, Effect.sleep(Duration.millis(ms)).pipe(Effect.andThen(apply(input))));
85
+ /** Media reaches a connection, while it is open, on a track it has resumed. */
86
+ const media = (to, link, track, deliver) => Effect.flatMap(Ref.get(connections), (open) => {
87
+ const connection = open.get(to);
88
+ return connection?.link !== link || connection.paused.has(track)
89
+ ? Effect.void
90
+ : deliver(link);
91
+ });
92
+ /** One black frame, sent `at` a boundary: the flush H3 documents for `flush_on_clip_end`. */
93
+ const flush = (to, link, clip, at) => until(at).pipe(Effect.andThen(media(to, link, H3.documented.tracks.video, () => link.video({
94
+ data: Media.render({
95
+ clipId: clip.clip_id,
96
+ index: clip.frames,
97
+ picture: "black",
98
+ width: options.width,
99
+ height: options.height,
100
+ }),
101
+ frameId: BigInt(clip.frames + 1),
102
+ timestampMicros: BigInt(Math.round(at * 1000)),
103
+ }))));
104
+ /**
105
+ * One clip's frames and audio to one connection, each at its own time, until
106
+ * it ends or stops. A connection that opens while it plays joins it there.
107
+ */
108
+ const play = (to, connection, clip, startedAt) => Effect.gen(function* () {
109
+ const video = yield* faults.standing((fault) => fault._tag === "Video");
110
+ const silent = yield* faults.standing((fault) => fault._tag === "NoAudio");
111
+ const picture = video?._tag === "Video" ? video.video : "live";
112
+ const { link, latency: delay } = connection;
113
+ const frameMs = 1000 / H3.documented.fps;
114
+ const past = (yield* monotonic) - startedAt - delay;
115
+ const from = (step) => Math.max(0, Math.ceil(past / step));
116
+ const frame = (index) => until(startedAt + delay + index * frameMs).pipe(Effect.andThen(media(to, link, H3.documented.tracks.video, () => link.video({
117
+ data: Media.render({
118
+ clipId: clip.clip_id,
119
+ index,
120
+ picture,
121
+ width: options.width,
122
+ height: options.height,
123
+ }),
124
+ frameId: BigInt(index + 1),
125
+ timestampMicros: BigInt(Math.round((startedAt + index * frameMs) * 1000)),
126
+ }))));
127
+ const block = (index) => until(startedAt + delay + index * Media.audioBlockMs).pipe(Effect.andThen(media(to, link, H3.documented.tracks.audio, () => link.audio(Media.tone({ clipId: clip.clip_id, first: index * Media.samplesPerBlock })))));
128
+ const blocks = Math.floor((clip.seconds * 1000) / Media.audioBlockMs);
129
+ const frames = picture === "absent" ? 0 : clip.frames;
130
+ yield* Effect.all([
131
+ Effect.forEach(range(frames).slice(from(frameMs)), frame, { discard: true }),
132
+ Effect.forEach(range(silent === undefined ? blocks : 0).slice(from(Media.audioBlockMs)), block, { discard: true }),
133
+ ], { concurrency: 2, discard: true });
134
+ });
135
+ /** `greeting` is a connection that just opened, which alone hears the state and queue. */
136
+ const perform = (output, greeting) => Effect.gen(function* () {
137
+ switch (output._tag) {
138
+ case "Reply":
139
+ return yield* answer(output.requestId, (to) => data(to, output.requestId, Wire.MessageKind.RESPONSE, output.message));
140
+ case "Broadcast":
141
+ return yield* data(greeting ?? "all", "", Wire.MessageKind.NOTIFICATION, output.message);
142
+ case "Ack":
143
+ return yield* answer(output.requestId, (to) => respond(to, output.requestId));
144
+ case "Unknown":
145
+ return yield* answer(output.requestId, (to) => respond(to, output.requestId, {
146
+ case: "error",
147
+ value: { code: "unknown_command", message: output.command },
148
+ }));
149
+ case "Build": {
150
+ const fault = yield* faults.trip((candidate) => candidate._tag === "StallBuild" || candidate._tag === "FailBuild");
151
+ if (fault?._tag === "StallBuild")
152
+ return;
153
+ const speed = output.continued
154
+ ? environment.timing.continuedBuildSpeed
155
+ : environment.timing.buildSpeed;
156
+ return yield* later((output.seconds / (yield* speed)) * 1000, fault?._tag === "FailBuild"
157
+ ? { _tag: "BuildFailed", token: output.token, reason: fault.reason ?? "build failed" }
158
+ : { _tag: "Built", token: output.token });
159
+ }
160
+ case "Arm": {
161
+ const seam = yield* environment.timing.delay("seam");
162
+ return yield* later(seam, { _tag: "Start", token: output.token });
163
+ }
164
+ case "Land": {
165
+ const lag = yield* environment.timing.delay("stop");
166
+ return yield* later(lag, { _tag: "Landed", token: output.token });
167
+ }
168
+ case "Play":
169
+ yield* later(output.clip.seconds * 1000, { _tag: "Finish", token: output.token });
170
+ for (const [to, connection] of yield* Ref.get(connections))
171
+ yield* FiberMap.run(connection.players, output.token, play(to, connection, output.clip, output.startedAt));
172
+ return;
173
+ case "Halt":
174
+ for (const connection of (yield* Ref.get(connections)).values())
175
+ yield* FiberMap.remove(connection.players, output.token);
176
+ return;
177
+ case "Flush": {
178
+ const now = yield* monotonic;
179
+ for (const [to, connection] of yield* Ref.get(connections))
180
+ yield* FiberSet.run(timers, flush(to, connection.link, output.clip, now + connection.latency));
181
+ return;
182
+ }
183
+ case "Continuation":
184
+ return yield* log({
185
+ sessionId,
186
+ kind: "build",
187
+ name: output.applied ? "continued" : "independent",
188
+ clipId: output.clipId,
189
+ continuedFrom: output.from,
190
+ });
191
+ }
192
+ }).pipe(Effect.asVoid);
193
+ /**
194
+ * Content moderation screens an enqueue while the model takes it: the
195
+ * verdict follows the reply by the moderation delay, naming no category,
196
+ * input, command or request, as hosted H3's did; on `terminate` the session
197
+ * then ends. A fault may withhold the verdict and end the session all the same.
198
+ */
199
+ const moderate = (fault) => Effect.gen(function* () {
200
+ const action = fault.action ?? "terminate";
201
+ yield* log({ sessionId, kind: "session", name: `moderation ${action}` });
202
+ if (fault.verdict !== false)
203
+ yield* send("all", "control", Wire.ControlServerMessageSchema, {
204
+ requestId: "",
205
+ kind: Wire.MessageKind.NOTIFICATION,
206
+ payload: { case: "moderation", value: { action, categories: [] } },
207
+ });
208
+ if (action === "terminate")
209
+ yield* environment.terminate;
210
+ });
211
+ function apply(input, greeting) {
212
+ return lock.withPermit(Effect.gen(function* () {
213
+ const [next, outputs] = H3.step({
214
+ model: yield* Ref.get(model),
215
+ input,
216
+ env: {
217
+ now: yield* monotonic,
218
+ generationCapacity: options.generationCapacity,
219
+ playoutCapacity: options.playoutCapacity,
220
+ },
221
+ });
222
+ yield* Ref.set(model, next);
223
+ for (const output of outputs)
224
+ yield* perform(output, greeting);
225
+ }));
226
+ }
227
+ const control = (from, message) => {
228
+ const answer = (payload) => send(from, "control", Wire.ControlServerMessageSchema, {
229
+ requestId: message.requestId,
230
+ kind: Wire.MessageKind.RESPONSE,
231
+ payload,
232
+ });
233
+ const pause = (name, paused) => Ref.update(connections, (open) => {
234
+ const connection = open.get(from);
235
+ if (connection === undefined)
236
+ return open;
237
+ const next = new Set(connection.paused);
238
+ if (paused)
239
+ next.add(name);
240
+ else
241
+ next.delete(name);
242
+ return new Map(open).set(from, { ...connection, paused: next });
243
+ });
244
+ switch (message.payload.case) {
245
+ case "requestSchema":
246
+ return answer({ case: "modelSchema", value: { openapi: environment.openapi } });
247
+ case "pauseTrack":
248
+ return pause(message.payload.value.name, true).pipe(Effect.andThen(log({ sessionId, kind: "track", name: `pause ${message.payload.value.name}` })));
249
+ case "resumeTrack":
250
+ return pause(message.payload.value.name, false).pipe(Effect.andThen(log({ sessionId, kind: "track", name: `resume ${message.payload.value.name}` })));
251
+ case "publishTrack":
252
+ return answer({ case: "error", value: { code: "unknown_track", message: "no input" } });
253
+ case "requestClip":
254
+ case "requestRecording": {
255
+ if (!options.recorder)
256
+ return answer({ case: "clipFailed", value: { reason: "recorder disabled" } });
257
+ const clip = message.payload.case === "requestClip"
258
+ ? environment.record("snap", message.payload.value.durationSeconds)
259
+ : environment.record("recording", 0);
260
+ return Effect.flatMap(clip, (value) => answer({ case: "clipReady", value }));
261
+ }
262
+ default:
263
+ // Pings and upload or unpublish notifications need no answer.
264
+ return Effect.void;
265
+ }
266
+ };
267
+ const command = (from, message) => Effect.gen(function* () {
268
+ if (message.payload.case !== "command")
269
+ return;
270
+ const { type: name, data: args } = message.payload.value;
271
+ const requestId = message.requestId;
272
+ const fault = yield* faults.trip((candidate) => candidate._tag === "DropReply" && candidate.command === name);
273
+ const applied = fault?._tag === "DropReply" && fault.applied === true;
274
+ const dropped = fault && (applied ? "reply" : "command");
275
+ yield* log({ sessionId, kind: "command", name, ...(dropped && { dropped }) });
276
+ if (dropped === "command")
277
+ return;
278
+ const input = args ?? {};
279
+ const images = input.reference_images;
280
+ const invalid = name === "enqueue" && Array.isArray(images) && images.length > 0
281
+ ? yield* faults.trip((candidate) => candidate._tag === "InvalidImage")
282
+ : undefined;
283
+ const late = yield* faults.trip((candidate) => candidate._tag === "LateReply" && candidate.command === name);
284
+ const lateMs = late?._tag === "LateReply" ? Duration.toMillis(late.after) : 0;
285
+ yield* Ref.update(requests, (all) => new Map(all).set(requestId, { from, withheld: applied, lateMs }));
286
+ const flagged = name === "enqueue"
287
+ ? yield* faults.trip((candidate) => candidate._tag === "Moderate" &&
288
+ (candidate.prompt === undefined || candidate.prompt === input.prompt))
289
+ : undefined;
290
+ yield* apply({
291
+ _tag: "Command",
292
+ requestId,
293
+ name,
294
+ args: input,
295
+ ...(invalid === undefined ? {} : { refuse: "a reference image is invalid" }),
296
+ });
297
+ if (flagged?._tag === "Moderate")
298
+ yield* FiberSet.run(timers, Effect.flatMap(environment.timing.delay("moderation"), (delay) => Effect.sleep(Duration.millis(delay)).pipe(Effect.andThen(moderate(flagged)))));
299
+ });
300
+ return {
301
+ /**
302
+ * A connection's channels opened: hosted Reactor holds its media until it
303
+ * resumes the tracks, and a clip already playing plays on to it.
304
+ */
305
+ connect: (to, link) => Effect.gen(function* () {
306
+ const own = yield* Scope.fork(scope);
307
+ const connection = {
308
+ link,
309
+ paused: new Set(tracks),
310
+ latency: yield* environment.timing.delay("channel"),
311
+ players: yield* FiberMap.make().pipe(Scope.provide(own)),
312
+ scope: own,
313
+ };
314
+ yield* Ref.update(connections, (open) => new Map(open).set(to, connection));
315
+ const playing = (yield* Ref.get(model)).playing;
316
+ if (playing !== undefined)
317
+ yield* FiberMap.run(connection.players, playing.token, play(to, connection, playing.clip, playing.startedAt));
318
+ yield* apply({ _tag: "Connected" }, to);
319
+ }),
320
+ disconnect: (from) => Effect.gen(function* () {
321
+ const closed = yield* Ref.modify(connections, (open) => {
322
+ const next = new Map(open);
323
+ next.delete(from);
324
+ return [open.get(from), next];
325
+ });
326
+ if (closed !== undefined)
327
+ yield* Scope.close(closed.scope, Exit.void);
328
+ }),
329
+ /** A message the client sent. One the simulation cannot decode is the client's bug. */
330
+ receive: (from, link, channel, bytes) => Effect.gen(function* () {
331
+ if ((yield* Ref.get(connections)).get(from)?.link !== link)
332
+ return;
333
+ if (channel === "control")
334
+ yield* control(from, yield* Wire.decode(Wire.ControlClientMessageSchema)(bytes));
335
+ else
336
+ yield* command(from, yield* Wire.decode(Wire.DataClientMessageSchema)(bytes));
337
+ }).pipe(Effect.orDie),
338
+ };
339
+ });
340
+ //# sourceMappingURL=playout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playout.js","sourceRoot":"","sources":["../../../src/internal/reactorTest/playout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Reference media for tests: a black PNG and a WAV tone that H3's local checks
3
+ * accept, built without a compressor or a platform codec so they run anywhere.
4
+ */
5
+ /** A complete black PNG image of the given size: an image reference H3 accepts. */
6
+ export declare const pngBytes: ({ width, height, }: {
7
+ readonly width: number;
8
+ readonly height: number;
9
+ }) => Uint8Array;
10
+ export interface WavOptions {
11
+ /** The clip's length. */
12
+ readonly seconds: number;
13
+ /** Samples a second, 16,000 by default. */
14
+ readonly sampleRate?: number;
15
+ /** 1 (mono, the default) or 2. */
16
+ readonly channels?: number;
17
+ /** The tone's pitch in hertz, 440 by default; 0 writes silence. */
18
+ readonly frequency?: number;
19
+ }
20
+ /**
21
+ * A 16-bit PCM WAV of a steady tone, `seconds` long: an audio reference whose
22
+ * header gives its length and channels, so H3's local checks read them.
23
+ */
24
+ export declare const wavBytes: (options: WavOptions) => Uint8Array;
25
+ //# sourceMappingURL=references.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../../src/internal/reactorTest/references.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyBH,mFAAmF;AACnF,eAAO,MAAM,QAAQ,uBAGlB;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,KAAG,UAuCH,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,yBAAyB;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,YAAa,UAAU,KAAG,UA+B9C,CAAC"}
@@ -1,4 +1,7 @@
1
- import { encodeBase64 } from "effect/Encoding";
1
+ /**
2
+ * Reference media for tests: a black PNG and a WAV tone that H3's local checks
3
+ * accept, built without a compressor or a platform codec so they run anywhere.
4
+ */
2
5
  /** Opaque black fixture pixels need no general-purpose compressor. Stored
3
6
  * DEFLATE blocks (RFC 1951 §3.2.4) keep this synchronous helper host-neutral. */
4
7
  const zeroPixels = (size) => {
@@ -21,17 +24,16 @@ const zeroPixels = (size) => {
21
24
  view.setUint32(cursor, (raw.length % 65521) * 65536 + 1);
22
25
  return output;
23
26
  };
24
- export const pngBytes = (width, height) => {
25
- const crcTable = new Uint32Array(256).map((_, n) => {
26
- let c = n;
27
- for (let k = 0; k < 8; k++)
28
- c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
29
- return c >>> 0;
30
- });
27
+ /** A complete black PNG image of the given size: an image reference H3 accepts. */
28
+ export const pngBytes = ({ width, height, }) => {
29
+ // CRC-32 bit by bit: the fixtures are small enough to need no table.
31
30
  const crc = (bytes) => {
32
31
  let c = 0xffffffff;
33
- for (const b of bytes)
34
- c = crcTable[(c ^ b) & 0xff] ^ (c >>> 8);
32
+ for (const b of bytes) {
33
+ c ^= b;
34
+ for (let k = 0; k < 8; k++)
35
+ c = (c & 1) === 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
36
+ }
35
37
  return (c ^ 0xffffffff) >>> 0;
36
38
  };
37
39
  const chunk = (type, data) => {
@@ -64,5 +66,41 @@ export const pngBytes = (width, height) => {
64
66
  }
65
67
  return out;
66
68
  };
67
- export const dataUri = (bytes) => `data:image/png;base64,${encodeBase64(bytes)}`;
68
- //# sourceMappingURL=Png.js.map
69
+ /**
70
+ * A 16-bit PCM WAV of a steady tone, `seconds` long: an audio reference whose
71
+ * header gives its length and channels, so H3's local checks read them.
72
+ */
73
+ export const wavBytes = (options) => {
74
+ const seconds = options.seconds;
75
+ const sampleRate = options.sampleRate ?? 16_000;
76
+ const channels = options.channels ?? 1;
77
+ const frequency = options.frequency ?? 440;
78
+ const frames = Math.round(seconds * sampleRate);
79
+ const data = frames * channels * 2;
80
+ const bytes = new Uint8Array(44 + data);
81
+ const view = new DataView(bytes.buffer);
82
+ const text = (offset, value) => {
83
+ for (let i = 0; i < value.length; i++)
84
+ bytes[offset + i] = value.charCodeAt(i);
85
+ };
86
+ text(0, "RIFF");
87
+ view.setUint32(4, 36 + data, true);
88
+ text(8, "WAVE");
89
+ text(12, "fmt ");
90
+ view.setUint32(16, 16, true);
91
+ view.setUint16(20, 1, true); // PCM
92
+ view.setUint16(22, channels, true);
93
+ view.setUint32(24, sampleRate, true);
94
+ view.setUint32(28, sampleRate * channels * 2, true);
95
+ view.setUint16(32, channels * 2, true);
96
+ view.setUint16(34, 16, true);
97
+ text(36, "data");
98
+ view.setUint32(40, data, true);
99
+ for (let frame = 0; frame < frames; frame++) {
100
+ const sample = Math.round(8_000 * Math.sin((2 * Math.PI * frequency * frame) / sampleRate));
101
+ for (let channel = 0; channel < channels; channel++)
102
+ view.setInt16(44 + (frame * channels + channel) * 2, sample, true);
103
+ }
104
+ return bytes;
105
+ };
106
+ //# sourceMappingURL=references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../../../src/internal/reactorTest/references.ts"],"names":[],"mappings":"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"}