@tapflowio/relay 0.27.0 → 0.28.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.
- package/dist/RelayServer.d.ts +74 -0
- package/dist/RelayServer.d.ts.map +1 -1
- package/dist/RelayServer.js +482 -43
- package/dist/RelayServer.js.map +1 -1
- package/dist/SessionManager.d.ts +63 -2
- package/dist/SessionManager.d.ts.map +1 -1
- package/dist/SessionManager.js +123 -1
- package/dist/SessionManager.js.map +1 -1
- package/dist/api/apps.d.ts +2 -1
- package/dist/api/apps.d.ts.map +1 -1
- package/dist/api/apps.js +20 -7
- package/dist/api/apps.js.map +1 -1
- package/dist/api/builds.d.ts +2 -1
- package/dist/api/builds.d.ts.map +1 -1
- package/dist/api/builds.js +23 -45
- package/dist/api/builds.js.map +1 -1
- package/dist/api/comments.d.ts.map +1 -1
- package/dist/api/comments.js +5 -7
- package/dist/api/comments.js.map +1 -1
- package/dist/api/invitations.d.ts.map +1 -1
- package/dist/api/invitations.js +3 -0
- package/dist/api/invitations.js.map +1 -1
- package/dist/api/profile.d.ts.map +1 -1
- package/dist/api/profile.js +28 -9
- package/dist/api/profile.js.map +1 -1
- package/dist/api/recordings.d.ts.map +1 -1
- package/dist/api/recordings.js +5 -6
- package/dist/api/recordings.js.map +1 -1
- package/dist/api/runVideos.d.ts +85 -0
- package/dist/api/runVideos.d.ts.map +1 -0
- package/dist/api/runVideos.js +494 -0
- package/dist/api/runVideos.js.map +1 -0
- package/dist/api/runs.d.ts +77 -0
- package/dist/api/runs.d.ts.map +1 -0
- package/dist/api/runs.js +579 -0
- package/dist/api/runs.js.map +1 -0
- package/dist/api/settings.d.ts +1 -1
- package/dist/api/settings.d.ts.map +1 -1
- package/dist/api/settings.js +67 -10
- package/dist/api/settings.js.map +1 -1
- package/dist/db.d.ts +2 -0
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +4 -0
- package/dist/db.js.map +1 -1
- package/dist/lib/buildDeletion.d.ts +21 -0
- package/dist/lib/buildDeletion.d.ts.map +1 -0
- package/dist/lib/buildDeletion.js +58 -0
- package/dist/lib/buildDeletion.js.map +1 -0
- package/dist/lib/clientAddress.d.ts +12 -0
- package/dist/lib/clientAddress.d.ts.map +1 -1
- package/dist/lib/clientAddress.js +22 -0
- package/dist/lib/clientAddress.js.map +1 -1
- package/dist/lib/uploads.d.ts +13 -0
- package/dist/lib/uploads.d.ts.map +1 -1
- package/dist/lib/uploads.js +41 -0
- package/dist/lib/uploads.js.map +1 -1
- package/dist/lib/watchActions.d.ts +10 -0
- package/dist/lib/watchActions.d.ts.map +1 -0
- package/dist/lib/watchActions.js +27 -0
- package/dist/lib/watchActions.js.map +1 -0
- package/dist/middleware/auth.d.ts +1 -0
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +1 -1
- package/dist/middleware/auth.js.map +1 -1
- package/dist/migrations/015_flow_runs.sql +59 -0
- package/dist/migrations/016_flow_run_videos.sql +51 -0
- package/dist/router.d.ts +5 -0
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +24 -0
- package/dist/router.js.map +1 -1
- package/package.json +9 -9
- package/public/assets/AISessionWatch-Bxew762e.js +36 -0
- package/public/assets/AISessionWatch-Bxew762e.js.br +0 -0
- package/public/assets/AISessionWatch-Bxew762e.js.gz +0 -0
- package/public/assets/AndroidDeviceScreen-C55msKfh.js +35 -0
- package/public/assets/AndroidDeviceScreen-C55msKfh.js.br +0 -0
- package/public/assets/AndroidDeviceScreen-C55msKfh.js.gz +0 -0
- package/public/assets/AppCenter-93hnrrdy.js +26 -0
- package/public/assets/AppCenter-93hnrrdy.js.br +0 -0
- package/public/assets/AppCenter-93hnrrdy.js.gz +0 -0
- package/public/assets/Default-BhgcUKBm.js +6 -0
- package/public/assets/Default-BhgcUKBm.js.br +0 -0
- package/public/assets/Default-BhgcUKBm.js.gz +0 -0
- package/public/assets/Invite-DQBwLaOl.js +1 -0
- package/public/assets/Invite-DQBwLaOl.js.br +0 -0
- package/public/assets/Invite-DQBwLaOl.js.gz +0 -0
- package/public/assets/MacResources-D4LMGxgV.js +1 -0
- package/public/assets/MacResources-D4LMGxgV.js.br +0 -0
- package/public/assets/MacResources-D4LMGxgV.js.gz +0 -0
- package/public/assets/{NotFound-wHOnT2Fl.js → NotFound-DVq_rCKc.js} +1 -1
- package/public/assets/NotFound-DVq_rCKc.js.br +0 -0
- package/public/assets/NotFound-DVq_rCKc.js.gz +0 -0
- package/public/assets/QASession-Dnuq0yrN.js +81 -0
- package/public/assets/QASession-Dnuq0yrN.js.br +0 -0
- package/public/assets/QASession-Dnuq0yrN.js.gz +0 -0
- package/public/assets/ResetPassword-inTbbral.js +1 -0
- package/public/assets/ResetPassword-inTbbral.js.br +0 -0
- package/public/assets/ResetPassword-inTbbral.js.gz +0 -0
- package/public/assets/RunDetail-B3dw8_U0.js +16 -0
- package/public/assets/RunDetail-B3dw8_U0.js.br +0 -0
- package/public/assets/RunDetail-B3dw8_U0.js.gz +0 -0
- package/public/assets/Runs-DqZl9Y6M.js +6 -0
- package/public/assets/Runs-DqZl9Y6M.js.br +0 -0
- package/public/assets/Runs-DqZl9Y6M.js.gz +0 -0
- package/public/assets/Setup-CPa_UWpa.js +1 -0
- package/public/assets/Setup-CPa_UWpa.js.br +0 -0
- package/public/assets/Setup-CPa_UWpa.js.gz +0 -0
- package/public/assets/Team-DZie8W7R.js +6 -0
- package/public/assets/Team-DZie8W7R.js.br +0 -0
- package/public/assets/Team-DZie8W7R.js.gz +0 -0
- package/public/assets/Tokens-u3-uRAwd.js +1 -0
- package/public/assets/Tokens-u3-uRAwd.js.br +0 -0
- package/public/assets/Tokens-u3-uRAwd.js.gz +0 -0
- package/public/assets/WatchedDevice-CpaKHa1x.js +1 -0
- package/public/assets/WatchedDevice-CpaKHa1x.js.br +0 -0
- package/public/assets/WatchedDevice-CpaKHa1x.js.gz +0 -0
- package/public/assets/aiSession-BsmDnyV1.js +31 -0
- package/public/assets/aiSession-BsmDnyV1.js.br +0 -0
- package/public/assets/aiSession-BsmDnyV1.js.gz +0 -0
- package/public/assets/alert-dialog-Bq_Ln5bp.js +1 -0
- package/public/assets/alert-dialog-Bq_Ln5bp.js.br +0 -0
- package/public/assets/alert-dialog-Bq_Ln5bp.js.gz +0 -0
- package/public/assets/{badge-B3vaBVIQ.js → badge-D-bt97WR.js} +1 -1
- package/public/assets/badge-D-bt97WR.js.br +0 -0
- package/public/assets/badge-D-bt97WR.js.gz +0 -0
- package/public/assets/build-format-ofd2iIzf.js +1 -0
- package/public/assets/build-format-ofd2iIzf.js.br +0 -0
- package/public/assets/build-format-ofd2iIzf.js.gz +0 -0
- package/public/assets/dialog-CtzPkg0O.js +1 -0
- package/public/assets/dialog-CtzPkg0O.js.br +0 -0
- package/public/assets/dialog-CtzPkg0O.js.gz +0 -0
- package/public/assets/field-hint-B774BIWK.js +1 -0
- package/public/assets/field-hint-B774BIWK.js.br +1 -0
- package/public/assets/field-hint-B774BIWK.js.gz +0 -0
- package/public/assets/index-D17hSi50.js +1 -0
- package/public/assets/index-D17hSi50.js.br +0 -0
- package/public/assets/index-D17hSi50.js.gz +0 -0
- package/public/assets/index-EPyP3g9A.css +1 -0
- package/public/assets/index-EPyP3g9A.css.br +0 -0
- package/public/assets/index-EPyP3g9A.css.gz +0 -0
- package/public/assets/index-cgl1yEKu.js +223 -0
- package/public/assets/index-cgl1yEKu.js.br +0 -0
- package/public/assets/index-cgl1yEKu.js.gz +0 -0
- package/public/assets/list-view-BcjDCJy5.js +1 -0
- package/public/assets/list-view-BcjDCJy5.js.br +0 -0
- package/public/assets/list-view-BcjDCJy5.js.gz +0 -0
- package/public/assets/{pencil-CycAOoC_.js → pencil-1XSs32nb.js} +2 -2
- package/public/assets/pencil-1XSs32nb.js.br +0 -0
- package/public/assets/pencil-1XSs32nb.js.gz +0 -0
- package/public/assets/play-DCvrorIC.js +6 -0
- package/public/assets/play-DCvrorIC.js.br +0 -0
- package/public/assets/play-DCvrorIC.js.gz +0 -0
- package/public/assets/resource-health-oWJ8hy9X.js +1 -0
- package/public/assets/resource-health-oWJ8hy9X.js.br +0 -0
- package/public/assets/resource-health-oWJ8hy9X.js.gz +0 -0
- package/public/assets/runs-CInQb6v1.js +1 -0
- package/public/assets/runs-CInQb6v1.js.br +0 -0
- package/public/assets/runs-CInQb6v1.js.gz +0 -0
- package/public/assets/search-input-CFWgLcKA.js +6 -0
- package/public/assets/search-input-CFWgLcKA.js.br +0 -0
- package/public/assets/search-input-CFWgLcKA.js.gz +0 -0
- package/public/assets/select-5ZtzWRYG.js +11 -0
- package/public/assets/select-5ZtzWRYG.js.br +0 -0
- package/public/assets/select-5ZtzWRYG.js.gz +0 -0
- package/public/assets/slider-DHuMDXcP.js +1 -0
- package/public/assets/slider-DHuMDXcP.js.br +0 -0
- package/public/assets/slider-DHuMDXcP.js.gz +0 -0
- package/public/assets/tabs-CmgV_sSI.js +1 -0
- package/public/assets/tabs-CmgV_sSI.js.br +0 -0
- package/public/assets/tabs-CmgV_sSI.js.gz +0 -0
- package/public/assets/tech-label-qLodPeUI.js +1 -0
- package/public/assets/tech-label-qLodPeUI.js.br +0 -0
- package/public/assets/tech-label-qLodPeUI.js.gz +0 -0
- package/public/assets/{trash-BXQnOI5U.js → trash-CXjB9oU1.js} +3 -3
- package/public/assets/trash-CXjB9oU1.js.br +0 -0
- package/public/assets/trash-CXjB9oU1.js.gz +0 -0
- package/public/assets/{useFocusAfterSwap-BY3N9f9v.js → useFocusAfterSwap-BdItkQCu.js} +1 -1
- package/public/assets/useFocusAfterSwap-BdItkQCu.js.br +0 -0
- package/public/assets/useFocusAfterSwap-BdItkQCu.js.gz +0 -0
- package/public/assets/useRelay-CES3I1Mt.js +1 -0
- package/public/assets/useRelay-CES3I1Mt.js.br +0 -0
- package/public/assets/useRelay-CES3I1Mt.js.gz +0 -0
- package/public/assets/useShownAfter-By1Yxysz.js +1 -0
- package/public/assets/useShownAfter-By1Yxysz.js.br +0 -0
- package/public/assets/useShownAfter-By1Yxysz.js.gz +0 -0
- package/public/assets/{vendor-charts-BykzUV2D.js → vendor-charts-BE7R_8yA.js} +2 -2
- package/public/assets/vendor-charts-BE7R_8yA.js.br +0 -0
- package/public/assets/vendor-charts-BE7R_8yA.js.gz +0 -0
- package/public/assets/{vendor-react-BlPSzrEe.js → vendor-react-DTSdA8m-.js} +4 -4
- package/public/assets/vendor-react-DTSdA8m-.js.br +0 -0
- package/public/assets/{vendor-react-BlPSzrEe.js.gz → vendor-react-DTSdA8m-.js.gz} +0 -0
- package/public/assets/{vendor-router-B_lVHrKl.js → vendor-router-B1pQim9Z.js} +3 -3
- package/public/assets/vendor-router-B1pQim9Z.js.br +0 -0
- package/public/assets/vendor-router-B1pQim9Z.js.gz +0 -0
- package/public/assets/video-CK2q3-0B.js +6 -0
- package/public/assets/video-CK2q3-0B.js.br +0 -0
- package/public/assets/video-CK2q3-0B.js.gz +0 -0
- package/public/index.html +18 -4
- package/public/index.html.br +0 -0
- package/public/index.html.gz +0 -0
- package/public/assets/AppCenter-BMdYtQbV.js +0 -26
- package/public/assets/AppCenter-BMdYtQbV.js.br +0 -0
- package/public/assets/AppCenter-BMdYtQbV.js.gz +0 -0
- package/public/assets/Default-0DHHVGaN.js +0 -1
- package/public/assets/Default-0DHHVGaN.js.br +0 -0
- package/public/assets/Default-0DHHVGaN.js.gz +0 -0
- package/public/assets/Invite-C0ZB_HiU.js +0 -1
- package/public/assets/Invite-C0ZB_HiU.js.br +0 -0
- package/public/assets/Invite-C0ZB_HiU.js.gz +0 -0
- package/public/assets/MacResources-DmY5pRV2.js +0 -1
- package/public/assets/MacResources-DmY5pRV2.js.br +0 -0
- package/public/assets/MacResources-DmY5pRV2.js.gz +0 -0
- package/public/assets/NotFound-wHOnT2Fl.js.br +0 -0
- package/public/assets/NotFound-wHOnT2Fl.js.gz +0 -0
- package/public/assets/QASession-2QogWEX7.js +0 -150
- package/public/assets/QASession-2QogWEX7.js.br +0 -0
- package/public/assets/QASession-2QogWEX7.js.gz +0 -0
- package/public/assets/ResetPassword-jNRuertx.js +0 -1
- package/public/assets/ResetPassword-jNRuertx.js.br +0 -0
- package/public/assets/ResetPassword-jNRuertx.js.gz +0 -0
- package/public/assets/Setup-CF_FN9Dt.js +0 -1
- package/public/assets/Setup-CF_FN9Dt.js.br +0 -0
- package/public/assets/Setup-CF_FN9Dt.js.gz +0 -0
- package/public/assets/Team-BbiyOGau.js +0 -6
- package/public/assets/Team-BbiyOGau.js.br +0 -0
- package/public/assets/Team-BbiyOGau.js.gz +0 -0
- package/public/assets/Tokens-CZo4sPTx.js +0 -1
- package/public/assets/Tokens-CZo4sPTx.js.br +0 -0
- package/public/assets/Tokens-CZo4sPTx.js.gz +0 -0
- package/public/assets/alert-dialog-DFz8G_zu.js +0 -1
- package/public/assets/alert-dialog-DFz8G_zu.js.br +0 -0
- package/public/assets/alert-dialog-DFz8G_zu.js.gz +0 -0
- package/public/assets/badge-B3vaBVIQ.js.br +0 -0
- package/public/assets/badge-B3vaBVIQ.js.gz +0 -0
- package/public/assets/build-format-dbQPU3A4.js +0 -11
- package/public/assets/build-format-dbQPU3A4.js.br +0 -0
- package/public/assets/build-format-dbQPU3A4.js.gz +0 -0
- package/public/assets/dialog-DeBPk-I3.js +0 -11
- package/public/assets/dialog-DeBPk-I3.js.br +0 -0
- package/public/assets/dialog-DeBPk-I3.js.gz +0 -0
- package/public/assets/field-hint-CMKmbVpy.js +0 -1
- package/public/assets/field-hint-CMKmbVpy.js.br +0 -0
- package/public/assets/field-hint-CMKmbVpy.js.gz +0 -0
- package/public/assets/index-B4w4Lh3e.js +0 -218
- package/public/assets/index-B4w4Lh3e.js.br +0 -0
- package/public/assets/index-B4w4Lh3e.js.gz +0 -0
- package/public/assets/index-CDWu0GQL.css +0 -1
- package/public/assets/index-CDWu0GQL.css.br +0 -0
- package/public/assets/index-CDWu0GQL.css.gz +0 -0
- package/public/assets/list-view-BvINA5t4.js +0 -1
- package/public/assets/list-view-BvINA5t4.js.br +0 -0
- package/public/assets/list-view-BvINA5t4.js.gz +0 -0
- package/public/assets/pencil-CycAOoC_.js.br +0 -0
- package/public/assets/pencil-CycAOoC_.js.gz +0 -0
- package/public/assets/resource-health-C1qSG3MK.js +0 -1
- package/public/assets/resource-health-C1qSG3MK.js.br +0 -0
- package/public/assets/resource-health-C1qSG3MK.js.gz +0 -0
- package/public/assets/trash-BXQnOI5U.js.br +0 -0
- package/public/assets/trash-BXQnOI5U.js.gz +0 -0
- package/public/assets/useFocusAfterSwap-BY3N9f9v.js.br +0 -0
- package/public/assets/useFocusAfterSwap-BY3N9f9v.js.gz +0 -0
- package/public/assets/vendor-charts-BykzUV2D.js.br +0 -0
- package/public/assets/vendor-charts-BykzUV2D.js.gz +0 -0
- package/public/assets/vendor-react-BlPSzrEe.js.br +0 -0
- package/public/assets/vendor-router-B_lVHrKl.js.br +0 -0
- package/public/assets/vendor-router-B_lVHrKl.js.gz +0 -0
package/dist/RelayServer.d.ts
CHANGED
|
@@ -59,11 +59,22 @@ 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;
|
|
65
67
|
private flushResourcesTimer;
|
|
66
68
|
private heartbeatTimer;
|
|
69
|
+
/** When the last heartbeat sweep ran, by the same clock `isAlive` judges with. */
|
|
70
|
+
private lastSweepAt;
|
|
71
|
+
/** Names agents give at registration, kept apart from the session map so an agent with no sessions
|
|
72
|
+
* can still be named when its socket goes. */
|
|
73
|
+
private agentNames;
|
|
74
|
+
private releaseStallWatch;
|
|
75
|
+
/** Agent sockets whose close was already explained — ended by a sweep, or replaced by the same agent
|
|
76
|
+
* registering again — so the close handler does not log them as a fresh drop. */
|
|
77
|
+
private explainedCloses;
|
|
67
78
|
/**
|
|
68
79
|
* When each socket last answered a ping. WeakMap → no manual cleanup on close (GC handles it).
|
|
69
80
|
*
|
|
@@ -98,6 +109,19 @@ export declare class RelayServer {
|
|
|
98
109
|
private audioDropHandlers;
|
|
99
110
|
private droppers;
|
|
100
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;
|
|
101
125
|
/** Unlike `idrRequesters` these hold a timer, which is why the value is not a bare closure — see
|
|
102
126
|
* `forgetSessionState`. */
|
|
103
127
|
private networkStateRequesters;
|
|
@@ -133,6 +157,7 @@ export declare class RelayServer {
|
|
|
133
157
|
private readonly pendingBootTtlMs;
|
|
134
158
|
private readonly corsAllowed;
|
|
135
159
|
private warnedProxyMisconfig;
|
|
160
|
+
private warnedTrustedProxyWithoutXff;
|
|
136
161
|
/** Agent identities already warned about a missing `build-download`. See `warnLegacyInstaller`. */
|
|
137
162
|
private readonly warnedLegacyInstaller;
|
|
138
163
|
private readonly buildTickets;
|
|
@@ -212,6 +237,10 @@ export declare class RelayServer {
|
|
|
212
237
|
*/
|
|
213
238
|
private warnOrphanedAgentTokens;
|
|
214
239
|
private runHeartbeat;
|
|
240
|
+
/** A sweep that runs late means this process was held, or the machine slept: the pongs it judges were
|
|
241
|
+
* never read, so its terminations say nothing about the clients. Same clock as `isAlive`. */
|
|
242
|
+
private noteLateSweep;
|
|
243
|
+
private pongAgeSeconds;
|
|
215
244
|
/**
|
|
216
245
|
* Injected into the handlers whose write can take access away — member update and removal, token
|
|
217
246
|
* revocation, a password reset or change — and called after the write commits. The sweep re-derives
|
|
@@ -242,6 +271,10 @@ export declare class RelayServer {
|
|
|
242
271
|
* negative beats 30 with one every cycle**, because a false negative here does not merely delay: it
|
|
243
272
|
* hands a live tester's session to whoever asked next.
|
|
244
273
|
*/
|
|
274
|
+
private buildFileDirs;
|
|
275
|
+
/** Open sockets speaking for any of these owner keys. */
|
|
276
|
+
private openSocketsOf;
|
|
277
|
+
private readonly runHolders;
|
|
245
278
|
private isAlive;
|
|
246
279
|
updateTlsContext(material: {
|
|
247
280
|
cert: string;
|
|
@@ -302,6 +335,12 @@ export declare class RelayServer {
|
|
|
302
335
|
*/
|
|
303
336
|
private networkStateRequester;
|
|
304
337
|
private remoteAddressOf;
|
|
338
|
+
/**
|
|
339
|
+
* Called on both doors — the WebSocket upgrade and every HTTP request — since `auth/init` and the logs
|
|
340
|
+
* route decide locality on the HTTP side. Not on the tunnel listener, where every request is remote
|
|
341
|
+
* whatever it carries.
|
|
342
|
+
*/
|
|
343
|
+
private warnTrustedProxyWithoutXffOnce;
|
|
305
344
|
private warnProxyMisconfigOnce;
|
|
306
345
|
private handleConnection;
|
|
307
346
|
/**
|
|
@@ -435,6 +474,41 @@ export declare class RelayServer {
|
|
|
435
474
|
* L5d they carried none, and the clients' join waiters matched `sessionId === undefined || sessionId ===
|
|
436
475
|
* mine` — with no such key the left half was always true, so any refusal resolved any pending join. */
|
|
437
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;
|
|
438
512
|
/** Shut the device down because nobody is watching it any more. The idle timer's payload, hoisted out
|
|
439
513
|
* of the close handler so the release loop there reads as one line per session. */
|
|
440
514
|
private idleShutdown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelayServer.d.ts","sourceRoot":"","sources":["../src/RelayServer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RelayServer.d.ts","sourceRoot":"","sources":["../src/RelayServer.ts"],"names":[],"mappings":"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"}
|