@tapflowio/relay 0.27.1 → 0.28.1

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 (250) hide show
  1. package/dist/RelayServer.d.ts +54 -0
  2. package/dist/RelayServer.d.ts.map +1 -1
  3. package/dist/RelayServer.js +384 -37
  4. package/dist/RelayServer.js.map +1 -1
  5. package/dist/SessionManager.d.ts +63 -2
  6. package/dist/SessionManager.d.ts.map +1 -1
  7. package/dist/SessionManager.js +123 -1
  8. package/dist/SessionManager.js.map +1 -1
  9. package/dist/api/apps.d.ts +2 -1
  10. package/dist/api/apps.d.ts.map +1 -1
  11. package/dist/api/apps.js +20 -7
  12. package/dist/api/apps.js.map +1 -1
  13. package/dist/api/builds.d.ts +2 -1
  14. package/dist/api/builds.d.ts.map +1 -1
  15. package/dist/api/builds.js +13 -39
  16. package/dist/api/builds.js.map +1 -1
  17. package/dist/api/profile.d.ts.map +1 -1
  18. package/dist/api/profile.js +3 -1
  19. package/dist/api/profile.js.map +1 -1
  20. package/dist/api/runVideos.d.ts +85 -0
  21. package/dist/api/runVideos.d.ts.map +1 -0
  22. package/dist/api/runVideos.js +494 -0
  23. package/dist/api/runVideos.js.map +1 -0
  24. package/dist/api/runs.d.ts +77 -0
  25. package/dist/api/runs.d.ts.map +1 -0
  26. package/dist/api/runs.js +579 -0
  27. package/dist/api/runs.js.map +1 -0
  28. package/dist/api/settings.d.ts +1 -1
  29. package/dist/api/settings.d.ts.map +1 -1
  30. package/dist/api/settings.js +43 -3
  31. package/dist/api/settings.js.map +1 -1
  32. package/dist/db.d.ts +2 -0
  33. package/dist/db.d.ts.map +1 -1
  34. package/dist/db.js +4 -0
  35. package/dist/db.js.map +1 -1
  36. package/dist/lib/buildDeletion.d.ts +21 -0
  37. package/dist/lib/buildDeletion.d.ts.map +1 -0
  38. package/dist/lib/buildDeletion.js +58 -0
  39. package/dist/lib/buildDeletion.js.map +1 -0
  40. package/dist/lib/watchActions.d.ts +10 -0
  41. package/dist/lib/watchActions.d.ts.map +1 -0
  42. package/dist/lib/watchActions.js +27 -0
  43. package/dist/lib/watchActions.js.map +1 -0
  44. package/dist/middleware/auth.d.ts +1 -0
  45. package/dist/middleware/auth.d.ts.map +1 -1
  46. package/dist/middleware/auth.js +1 -1
  47. package/dist/middleware/auth.js.map +1 -1
  48. package/dist/migrations/015_flow_runs.sql +59 -0
  49. package/dist/migrations/016_flow_run_videos.sql +51 -0
  50. package/dist/router.d.ts +5 -0
  51. package/dist/router.d.ts.map +1 -1
  52. package/dist/router.js +24 -0
  53. package/dist/router.js.map +1 -1
  54. package/package.json +9 -9
  55. package/public/assets/AISessionWatch-C2h4NZ_I.js +31 -0
  56. package/public/assets/AISessionWatch-C2h4NZ_I.js.br +0 -0
  57. package/public/assets/AISessionWatch-C2h4NZ_I.js.gz +0 -0
  58. package/public/assets/AndroidDeviceScreen-C55msKfh.js +35 -0
  59. package/public/assets/AndroidDeviceScreen-C55msKfh.js.br +0 -0
  60. package/public/assets/AndroidDeviceScreen-C55msKfh.js.gz +0 -0
  61. package/public/assets/AppCenter-S1y-8_7l.js +26 -0
  62. package/public/assets/AppCenter-S1y-8_7l.js.br +0 -0
  63. package/public/assets/AppCenter-S1y-8_7l.js.gz +0 -0
  64. package/public/assets/Default-C-l1O-g9.js +6 -0
  65. package/public/assets/Default-C-l1O-g9.js.br +0 -0
  66. package/public/assets/Default-C-l1O-g9.js.gz +0 -0
  67. package/public/assets/Invite-BCndVxaO.js +1 -0
  68. package/public/assets/Invite-BCndVxaO.js.br +0 -0
  69. package/public/assets/Invite-BCndVxaO.js.gz +0 -0
  70. package/public/assets/MacResources-41cFDgE1.js +1 -0
  71. package/public/assets/MacResources-41cFDgE1.js.br +0 -0
  72. package/public/assets/MacResources-41cFDgE1.js.gz +0 -0
  73. package/public/assets/{NotFound-wHOnT2Fl.js → NotFound-DVq_rCKc.js} +1 -1
  74. package/public/assets/NotFound-DVq_rCKc.js.br +0 -0
  75. package/public/assets/NotFound-DVq_rCKc.js.gz +0 -0
  76. package/public/assets/QASession-B67RsIPm.js +81 -0
  77. package/public/assets/QASession-B67RsIPm.js.br +0 -0
  78. package/public/assets/QASession-B67RsIPm.js.gz +0 -0
  79. package/public/assets/ResetPassword-8rj7ASt1.js +1 -0
  80. package/public/assets/ResetPassword-8rj7ASt1.js.br +0 -0
  81. package/public/assets/ResetPassword-8rj7ASt1.js.gz +0 -0
  82. package/public/assets/RunDetail-BIgq9gJ0.js +16 -0
  83. package/public/assets/RunDetail-BIgq9gJ0.js.br +0 -0
  84. package/public/assets/RunDetail-BIgq9gJ0.js.gz +0 -0
  85. package/public/assets/Runs-DpK5aoBr.js +6 -0
  86. package/public/assets/Runs-DpK5aoBr.js.br +0 -0
  87. package/public/assets/Runs-DpK5aoBr.js.gz +0 -0
  88. package/public/assets/Setup-DZrhA_7b.js +1 -0
  89. package/public/assets/Setup-DZrhA_7b.js.br +0 -0
  90. package/public/assets/Setup-DZrhA_7b.js.gz +0 -0
  91. package/public/assets/Team-CJThCjd3.js +6 -0
  92. package/public/assets/Team-CJThCjd3.js.br +0 -0
  93. package/public/assets/Team-CJThCjd3.js.gz +0 -0
  94. package/public/assets/Tokens-DGURtHWi.js +1 -0
  95. package/public/assets/Tokens-DGURtHWi.js.br +0 -0
  96. package/public/assets/Tokens-DGURtHWi.js.gz +0 -0
  97. package/public/assets/WatchedDevice-CpaKHa1x.js +1 -0
  98. package/public/assets/WatchedDevice-CpaKHa1x.js.br +0 -0
  99. package/public/assets/WatchedDevice-CpaKHa1x.js.gz +0 -0
  100. package/public/assets/aiSession-BW09Jhqz.js +26 -0
  101. package/public/assets/aiSession-BW09Jhqz.js.br +0 -0
  102. package/public/assets/aiSession-BW09Jhqz.js.gz +0 -0
  103. package/public/assets/alert-dialog-t5vlOabq.js +1 -0
  104. package/public/assets/alert-dialog-t5vlOabq.js.br +0 -0
  105. package/public/assets/alert-dialog-t5vlOabq.js.gz +0 -0
  106. package/public/assets/{badge-DNaS0Mu3.js → badge-DrDCTAQQ.js} +1 -1
  107. package/public/assets/badge-DrDCTAQQ.js.br +0 -0
  108. package/public/assets/badge-DrDCTAQQ.js.gz +0 -0
  109. package/public/assets/build-format-ofd2iIzf.js +1 -0
  110. package/public/assets/build-format-ofd2iIzf.js.br +0 -0
  111. package/public/assets/build-format-ofd2iIzf.js.gz +0 -0
  112. package/public/assets/dialog-BOFZkCES.js +1 -0
  113. package/public/assets/dialog-BOFZkCES.js.br +0 -0
  114. package/public/assets/dialog-BOFZkCES.js.gz +0 -0
  115. package/public/assets/field-hint-B9fPUgi7.js +1 -0
  116. package/public/assets/field-hint-B9fPUgi7.js.br +0 -0
  117. package/public/assets/field-hint-B9fPUgi7.js.gz +0 -0
  118. package/public/assets/index-Bixhy5MB.js +248 -0
  119. package/public/assets/index-Bixhy5MB.js.br +0 -0
  120. package/public/assets/index-Bixhy5MB.js.gz +0 -0
  121. package/public/assets/index-D17hSi50.js +1 -0
  122. package/public/assets/index-D17hSi50.js.br +0 -0
  123. package/public/assets/index-D17hSi50.js.gz +0 -0
  124. package/public/assets/index-h2hiZ2OM.css +1 -0
  125. package/public/assets/index-h2hiZ2OM.css.br +0 -0
  126. package/public/assets/index-h2hiZ2OM.css.gz +0 -0
  127. package/public/assets/list-view-BpOY1e-d.js +1 -0
  128. package/public/assets/list-view-BpOY1e-d.js.br +0 -0
  129. package/public/assets/list-view-BpOY1e-d.js.gz +0 -0
  130. package/public/assets/{pencil-BN18R4oa.js → pencil-ZlrAsWuU.js} +2 -2
  131. package/public/assets/pencil-ZlrAsWuU.js.br +0 -0
  132. package/public/assets/pencil-ZlrAsWuU.js.gz +0 -0
  133. package/public/assets/play-4CsGZdQU.js +6 -0
  134. package/public/assets/play-4CsGZdQU.js.br +0 -0
  135. package/public/assets/play-4CsGZdQU.js.gz +0 -0
  136. package/public/assets/resource-health-oWJ8hy9X.js +1 -0
  137. package/public/assets/resource-health-oWJ8hy9X.js.br +0 -0
  138. package/public/assets/resource-health-oWJ8hy9X.js.gz +0 -0
  139. package/public/assets/runs-CInQb6v1.js +1 -0
  140. package/public/assets/runs-CInQb6v1.js.br +0 -0
  141. package/public/assets/runs-CInQb6v1.js.gz +0 -0
  142. package/public/assets/search-input-G_QpBvPM.js +6 -0
  143. package/public/assets/search-input-G_QpBvPM.js.br +0 -0
  144. package/public/assets/search-input-G_QpBvPM.js.gz +0 -0
  145. package/public/assets/select-DDzv2YfY.js +11 -0
  146. package/public/assets/select-DDzv2YfY.js.br +0 -0
  147. package/public/assets/select-DDzv2YfY.js.gz +0 -0
  148. package/public/assets/slider-DE7lQdK4.js +1 -0
  149. package/public/assets/slider-DE7lQdK4.js.br +0 -0
  150. package/public/assets/slider-DE7lQdK4.js.gz +0 -0
  151. package/public/assets/tabs-Co1N3x_X.js +1 -0
  152. package/public/assets/tabs-Co1N3x_X.js.br +0 -0
  153. package/public/assets/tabs-Co1N3x_X.js.gz +0 -0
  154. package/public/assets/tech-label-BMvuJmUf.js +1 -0
  155. package/public/assets/tech-label-BMvuJmUf.js.br +0 -0
  156. package/public/assets/tech-label-BMvuJmUf.js.gz +0 -0
  157. package/public/assets/{trash-D1l1Fm-Z.js → trash-Cwj2dbgB.js} +3 -3
  158. package/public/assets/trash-Cwj2dbgB.js.br +0 -0
  159. package/public/assets/trash-Cwj2dbgB.js.gz +0 -0
  160. package/public/assets/{useFocusAfterSwap-BY3N9f9v.js → useFocusAfterSwap-BdItkQCu.js} +1 -1
  161. package/public/assets/useFocusAfterSwap-BdItkQCu.js.br +0 -0
  162. package/public/assets/useFocusAfterSwap-BdItkQCu.js.gz +0 -0
  163. package/public/assets/useRelay-CES3I1Mt.js +1 -0
  164. package/public/assets/useRelay-CES3I1Mt.js.br +0 -0
  165. package/public/assets/useRelay-CES3I1Mt.js.gz +0 -0
  166. package/public/assets/useShownAfter-By1Yxysz.js +1 -0
  167. package/public/assets/useShownAfter-By1Yxysz.js.br +0 -0
  168. package/public/assets/useShownAfter-By1Yxysz.js.gz +0 -0
  169. package/public/assets/{vendor-charts-BykzUV2D.js → vendor-charts-BE7R_8yA.js} +2 -2
  170. package/public/assets/vendor-charts-BE7R_8yA.js.br +0 -0
  171. package/public/assets/vendor-charts-BE7R_8yA.js.gz +0 -0
  172. package/public/assets/{vendor-react-BlPSzrEe.js → vendor-react-DTSdA8m-.js} +4 -4
  173. package/public/assets/vendor-react-DTSdA8m-.js.br +0 -0
  174. package/public/assets/{vendor-react-BlPSzrEe.js.gz → vendor-react-DTSdA8m-.js.gz} +0 -0
  175. package/public/assets/{vendor-router-B_lVHrKl.js → vendor-router-B1pQim9Z.js} +3 -3
  176. package/public/assets/vendor-router-B1pQim9Z.js.br +0 -0
  177. package/public/assets/vendor-router-B1pQim9Z.js.gz +0 -0
  178. package/public/assets/video-swsaHrfi.js +6 -0
  179. package/public/assets/video-swsaHrfi.js.br +0 -0
  180. package/public/assets/video-swsaHrfi.js.gz +0 -0
  181. package/public/index.html +30 -4
  182. package/public/index.html.br +0 -0
  183. package/public/index.html.gz +0 -0
  184. package/public/og-image.jpg +0 -0
  185. package/public/assets/AppCenter-CeLjUbnR.js +0 -26
  186. package/public/assets/AppCenter-CeLjUbnR.js.br +0 -0
  187. package/public/assets/AppCenter-CeLjUbnR.js.gz +0 -0
  188. package/public/assets/Default-UB0Pa3lN.js +0 -1
  189. package/public/assets/Default-UB0Pa3lN.js.br +0 -0
  190. package/public/assets/Default-UB0Pa3lN.js.gz +0 -0
  191. package/public/assets/Invite-Dv3omu3x.js +0 -1
  192. package/public/assets/Invite-Dv3omu3x.js.br +0 -0
  193. package/public/assets/Invite-Dv3omu3x.js.gz +0 -0
  194. package/public/assets/MacResources-CY4-OdGt.js +0 -1
  195. package/public/assets/MacResources-CY4-OdGt.js.br +0 -0
  196. package/public/assets/MacResources-CY4-OdGt.js.gz +0 -0
  197. package/public/assets/NotFound-wHOnT2Fl.js.br +0 -0
  198. package/public/assets/NotFound-wHOnT2Fl.js.gz +0 -0
  199. package/public/assets/QASession-H5eRSwZv.js +0 -150
  200. package/public/assets/QASession-H5eRSwZv.js.br +0 -0
  201. package/public/assets/QASession-H5eRSwZv.js.gz +0 -0
  202. package/public/assets/ResetPassword-nFTigYt2.js +0 -1
  203. package/public/assets/ResetPassword-nFTigYt2.js.br +0 -0
  204. package/public/assets/ResetPassword-nFTigYt2.js.gz +0 -0
  205. package/public/assets/Setup-UmLtF2PF.js +0 -1
  206. package/public/assets/Setup-UmLtF2PF.js.br +0 -0
  207. package/public/assets/Setup-UmLtF2PF.js.gz +0 -0
  208. package/public/assets/Team-DW40kt3H.js +0 -6
  209. package/public/assets/Team-DW40kt3H.js.br +0 -0
  210. package/public/assets/Team-DW40kt3H.js.gz +0 -0
  211. package/public/assets/Tokens-B1a4ChJK.js +0 -1
  212. package/public/assets/Tokens-B1a4ChJK.js.br +0 -0
  213. package/public/assets/Tokens-B1a4ChJK.js.gz +0 -0
  214. package/public/assets/alert-dialog-aoqYdAwx.js +0 -1
  215. package/public/assets/alert-dialog-aoqYdAwx.js.br +0 -0
  216. package/public/assets/alert-dialog-aoqYdAwx.js.gz +0 -0
  217. package/public/assets/badge-DNaS0Mu3.js.br +0 -0
  218. package/public/assets/badge-DNaS0Mu3.js.gz +0 -0
  219. package/public/assets/build-format-DF5aFcag.js +0 -11
  220. package/public/assets/build-format-DF5aFcag.js.br +0 -0
  221. package/public/assets/build-format-DF5aFcag.js.gz +0 -0
  222. package/public/assets/dialog-DE2WUMuX.js +0 -11
  223. package/public/assets/dialog-DE2WUMuX.js.br +0 -0
  224. package/public/assets/dialog-DE2WUMuX.js.gz +0 -0
  225. package/public/assets/field-hint-Csb40Gzp.js +0 -1
  226. package/public/assets/field-hint-Csb40Gzp.js.br +0 -2
  227. package/public/assets/field-hint-Csb40Gzp.js.gz +0 -0
  228. package/public/assets/index-BbCkTtjO.css +0 -1
  229. package/public/assets/index-BbCkTtjO.css.br +0 -0
  230. package/public/assets/index-BbCkTtjO.css.gz +0 -0
  231. package/public/assets/index-DSW9h8XX.js +0 -218
  232. package/public/assets/index-DSW9h8XX.js.br +0 -0
  233. package/public/assets/index-DSW9h8XX.js.gz +0 -0
  234. package/public/assets/list-view-C0w97ltJ.js +0 -1
  235. package/public/assets/list-view-C0w97ltJ.js.br +0 -0
  236. package/public/assets/list-view-C0w97ltJ.js.gz +0 -0
  237. package/public/assets/pencil-BN18R4oa.js.br +0 -0
  238. package/public/assets/pencil-BN18R4oa.js.gz +0 -0
  239. package/public/assets/resource-health-Bi20EUDs.js +0 -1
  240. package/public/assets/resource-health-Bi20EUDs.js.br +0 -0
  241. package/public/assets/resource-health-Bi20EUDs.js.gz +0 -0
  242. package/public/assets/trash-D1l1Fm-Z.js.br +0 -0
  243. package/public/assets/trash-D1l1Fm-Z.js.gz +0 -0
  244. package/public/assets/useFocusAfterSwap-BY3N9f9v.js.br +0 -0
  245. package/public/assets/useFocusAfterSwap-BY3N9f9v.js.gz +0 -0
  246. package/public/assets/vendor-charts-BykzUV2D.js.br +0 -0
  247. package/public/assets/vendor-charts-BykzUV2D.js.gz +0 -0
  248. package/public/assets/vendor-react-BlPSzrEe.js.br +0 -0
  249. package/public/assets/vendor-router-B_lVHrKl.js.br +0 -0
  250. package/public/assets/vendor-router-B_lVHrKl.js.gz +0 -0
@@ -59,6 +59,8 @@ export declare class RelayServer {
59
59
  private resourceBuffers;
60
60
  private logBuffer;
61
61
  private recordingsDir;
62
+ private runScreenshotsDir;
63
+ private runVideosDir;
62
64
  private purgeRecordingsTimer;
63
65
  private purgeOldResourcesTimer;
64
66
  private purgeBuildsTimer;
@@ -107,6 +109,19 @@ export declare class RelayServer {
107
109
  private audioDropHandlers;
108
110
  private droppers;
109
111
  private idrRequesters;
112
+ /**
113
+ * **One keyframe-aware sender per watcher, never the session's.** The sender's `dropping` state lives in
114
+ * its closure, so sharing the holder's would let a slow watcher put the holder into drop-to-keyframe
115
+ * too — every P-frame to the holder discarded until the next IDR because someone else's link is slow.
116
+ * Keyed by socket, then session, because one socket can watch several sessions.
117
+ */
118
+ private watcherDroppers;
119
+ /**
120
+ * Whether this connection may watch: a cookie, or a remote PAT with `view` — decided once at the
121
+ * handshake, from the credential. **Not** an unauthenticated loopback socket: a page in any browser on
122
+ * the relay's Mac reaches loopback without a credential, and watching shows a device's screen.
123
+ */
124
+ private mayWatch;
110
125
  /** Unlike `idrRequesters` these hold a timer, which is why the value is not a bare closure — see
111
126
  * `forgetSessionState`. */
112
127
  private networkStateRequesters;
@@ -256,6 +271,10 @@ export declare class RelayServer {
256
271
  * negative beats 30 with one every cycle**, because a false negative here does not merely delay: it
257
272
  * hands a live tester's session to whoever asked next.
258
273
  */
274
+ private buildFileDirs;
275
+ /** Open sockets speaking for any of these owner keys. */
276
+ private openSocketsOf;
277
+ private readonly runHolders;
259
278
  private isAlive;
260
279
  updateTlsContext(material: {
261
280
  cert: string;
@@ -455,6 +474,41 @@ export declare class RelayServer {
455
474
  * L5d they carried none, and the clients' join waiters matched `sessionId === undefined || sessionId ===
456
475
  * mine` — with no such key the left half was always true, so any refusal resolved any pending join. */
457
476
  private handleSessionStart;
477
+ /**
478
+ * Admit `ws` as a read-only watcher, or say why not. The order of the refusals is the order a viewer
479
+ * can act on them: a connection that may never watch is told so before it learns anything about the
480
+ * session.
481
+ */
482
+ private handleWatchStart;
483
+ /** The keyframe-aware sender for one watcher of one session — see `watcherDroppers`. */
484
+ private watcherDropper;
485
+ private forgetWatcherDropper;
486
+ /**
487
+ * Forward an agent's frame to the session's watchers. **Only the messages that describe the device**
488
+ * call this — chrome, device info, postures, booting, ready — never a reply to something the holder
489
+ * asked. An ack, a clipboard payload or a network state is the holder's, and a watcher shown one would
490
+ * learn what the agent is doing on a channel it was never admitted to.
491
+ */
492
+ private forwardToWatchers;
493
+ /**
494
+ * What the holder just did, as its watchers are told it (A2): only for an input the relay passed on to the agent,
495
+ * so a refused one is never shown. **Built, never forwarded**: the raw `input:type` carries the text typed, and a
496
+ * watcher gets a count.
497
+ */
498
+ private tellWatchersInput;
499
+ private tellWatchersAction;
500
+ /** The relay-originated half of what watchers hear: holder left, agent away, agent rebound. */
501
+ private tellWatchers;
502
+ /** Who to show behind a holder: the signed-in user's email, or `local` for a loopback client with no
503
+ * credential. A label for people only — nothing reads it back. */
504
+ private holderLabel;
505
+ /**
506
+ * The dashboard page that watches a session — **only at an address a teammate's browser can open**, the
507
+ * gate invite links take (`forTeammates`). With no tunnel and no `relay.url` the only base this relay has
508
+ * is localhost, which is wrong for a client on another machine; the field is left out and the client
509
+ * builds the link from the address it dialled, which the person running it can always open.
510
+ */
511
+ private watchUrlField;
458
512
  /** Shut the device down because nobody is watching it any more. The idle timer's payload, hoisted out
459
513
  * of the close handler so the release loop there reads as one line per session. */
460
514
  private idleShutdown;
@@ -1 +1 @@
1
- {"version":3,"file":"RelayServer.d.ts","sourceRoot":"","sources":["../src/RelayServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RelayServer.d.ts","sourceRoot":"","sources":["../src/RelayServer.ts"],"names":[],"mappings":"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"}