@xenon-device-management/xenon 2.0.0 → 2.2.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 (289) hide show
  1. package/README.md +2 -1
  2. package/lib/package.json +3 -4
  3. package/lib/public/assets/{AnnotationOverlay-BmTPCAds.js → AnnotationOverlay-XpewX5nn.js} +1 -1
  4. package/lib/public/assets/{ApiKeyGate-B5eB7f8B.js → ApiKeyGate-BQDv3ZCC.js} +1 -1
  5. package/lib/public/assets/BugReportButton-C7OmS61B.js +10 -0
  6. package/lib/public/assets/{DeviceMosaicView-9DUoZnQi.js → DeviceMosaicView-wl3l2Zlt.js} +1 -1
  7. package/lib/public/assets/{EmptyState-lvyNiXev.js → EmptyState-fPxujqqE.js} +1 -1
  8. package/lib/public/assets/{FieldGroup-BduMPM9K.js → FieldGroup-5bCutWrs.js} +1 -1
  9. package/lib/public/assets/{FilterMenu-BSqX6I94.js → FilterMenu-owsBiDT1.js} +1 -1
  10. package/lib/public/assets/{Menu-Ba5cT7jZ.js → Menu-DFhqzPSt.js} +1 -1
  11. package/lib/public/assets/{Modal-CceoMY7D.js → Modal-Bw-a-E-e.js} +1 -1
  12. package/lib/public/assets/{RecordingPage-6T9dOidc.js → RecordingPage-WtByf5bC.js} +1 -1
  13. package/lib/public/assets/{RecordingsPage-qj6FdZXR.js → RecordingsPage-FpWWFNgT.js} +1 -1
  14. package/lib/public/assets/{SegmentedControl-CSRuZ8TR.js → SegmentedControl-Jzn9c7o8.js} +1 -1
  15. package/lib/public/assets/{SettingCard-Bp1kz4By.js → SettingCard-BR7nOhpT.js} +1 -1
  16. package/lib/public/assets/{Table-LV7zFyZg.js → Table-B_Va3V05.js} +1 -1
  17. package/lib/public/assets/{activity-D17TUloi.js → activity-DxRFWvkN.js} +1 -1
  18. package/lib/public/assets/{ai-settings-qvbhY89P.js → ai-settings-CQf-9_V6.js} +1 -1
  19. package/lib/public/assets/{api-keys-BfpvdG7G.js → api-keys-SoE1Kd7N.js} +1 -1
  20. package/lib/public/assets/{apps-Dbnzd0fW.js → apps-CgGXTlgn.js} +1 -1
  21. package/lib/public/assets/{arrow-left-DD1VjtC7.js → arrow-left-uQ6WIwiC.js} +1 -1
  22. package/lib/public/assets/{arrow-right-D0pnM3ma.js → arrow-right-C9RyfzXS.js} +1 -1
  23. package/lib/public/assets/{arrow-up-right-BIC8JOV6.js → arrow-up-right-DFHi_8yG.js} +1 -1
  24. package/lib/public/assets/{auth-shell-DWHPXSnI.js → auth-shell-Bii1t4qc.js} +2 -2
  25. package/lib/public/assets/{builds-page-ClCNBUv_.js → builds-page-Bnv8Z9hi.js} +1 -1
  26. package/lib/public/assets/{button-xtAhYR-f.js → button-_Y78wXiP.js} +1 -1
  27. package/lib/public/assets/{calendar-CupwJ7Bm.js → calendar-D4MqSOc2.js} +1 -1
  28. package/lib/public/assets/{check-CyuEoKkd.js → check-uGHCXe-L.js} +1 -1
  29. package/lib/public/assets/{chevron-left-DgX-F9xK.js → chevron-left-Dy1OqpzB.js} +1 -1
  30. package/lib/public/assets/{chevron-right-BKJgJnU9.js → chevron-right-BUsldEli.js} +1 -1
  31. package/lib/public/assets/{circle-check-CZdg8mMa.js → circle-check-D3Qq0tKp.js} +1 -1
  32. package/lib/public/assets/{circle-x-CZH6t9z-.js → circle-x-B4IOD1DE.js} +1 -1
  33. package/lib/public/assets/{clock-Cd-t7xpe.js → clock-BfYfzvSg.js} +1 -1
  34. package/lib/public/assets/{copy-C6zerX3I.js → copy-DZwYE5Va.js} +1 -1
  35. package/lib/public/assets/{device-explorer-B1pI6b_M.js → device-explorer-CRG4Utt5.js} +3 -3
  36. package/lib/public/assets/device-explorer-D2AqrrLN.css +1 -0
  37. package/lib/public/assets/{download-x9WP7mcL.js → download-CCDYo_TN.js} +1 -1
  38. package/lib/public/assets/{forgot-password-B0TEH4N-.js → forgot-password-DuLCmVFb.js} +1 -1
  39. package/lib/public/assets/{funnel-Cb40MfFN.js → funnel-CtKNPqzb.js} +1 -1
  40. package/lib/public/assets/{index-BR1wTIPC.js → index-3uxl3o7K.js} +43 -43
  41. package/lib/public/assets/{index-BvH_ekRy.js → index-Zy1Op5C1.js} +1 -1
  42. package/lib/public/assets/{input-DejcCiTI.js → input-CzTWvUXZ.js} +1 -1
  43. package/lib/public/assets/{keycodes-Mavx5iGg.js → keycodes-CI-nYDFM.js} +1 -1
  44. package/lib/public/assets/{layers-BKqYLiHE.js → layers-YZZGFyTX.js} +1 -1
  45. package/lib/public/assets/{lock-LFsFhc17.js → lock-L8tzWgDo.js} +1 -1
  46. package/lib/public/assets/{login-x2pkzt-t.js → login-DBbX-fu8.js} +1 -1
  47. package/lib/public/assets/{maintenance-settings-CYafcoV-.js → maintenance-settings-AJwkOIsE.js} +1 -1
  48. package/lib/public/assets/{monitor-_7_uJ8d9.js → monitor-Di_66F2m.js} +1 -1
  49. package/lib/public/assets/{mouse-pointer-2-BfLuURKN.js → mouse-pointer-2-Cnab2zdg.js} +1 -1
  50. package/lib/public/assets/{network-Z_zBhpsD.js → network-DiSumY-1.js} +1 -1
  51. package/lib/public/assets/{overview-BY5uv08S.js → overview-CwE4gXl5.js} +1 -1
  52. package/lib/public/assets/{page-header-CP2UkykG.js → page-header-CfR4Sm9V.js} +1 -1
  53. package/lib/public/assets/{plus-BTD0dnQ0.js → plus-DOS8P9CQ.js} +1 -1
  54. package/lib/public/assets/{profile-page-BhJZuCS7.js → profile-page-BYpHwQIH.js} +1 -1
  55. package/lib/public/assets/{reset-password-CMN0SO81.js → reset-password-BRVJU_qV.js} +1 -1
  56. package/lib/public/assets/{runbook-page-CBpPX9_5.js → runbook-page-Bi3JvAFZ.js} +1 -1
  57. package/lib/public/assets/{select-Uc9E5pye.js → select-Cqx7pEou.js} +1 -1
  58. package/lib/public/assets/{selector-detail-page-BSyBnRuU.js → selector-detail-page-C0DsncKj.js} +1 -1
  59. package/lib/public/assets/{selector-health-DzqxNkzm.js → selector-health-CAhpdilF.js} +1 -1
  60. package/lib/public/assets/{selector-health-page-CyPLjoD1.js → selector-health-page-CrCVeW2m.js} +1 -1
  61. package/lib/public/assets/{session-detail-page-BZQZN1P-.js → session-detail-page-F_hwYqEt.js} +1 -1
  62. package/lib/public/assets/{settings-CkSWiZq8.js → settings-C-s5pypL.js} +1 -1
  63. package/lib/public/assets/{status-pill-outline-BFYni2qo.js → status-pill-outline-DY5uzv6A.js} +1 -1
  64. package/lib/public/assets/{tablet-BSd-xSZK.js → tablet-Dli7gwyg.js} +1 -1
  65. package/lib/public/assets/{teams-PpoEQz31.js → teams-ui4IhHNC.js} +1 -1
  66. package/lib/public/assets/{trash-2-BorJv5_u.js → trash-2-BV4hSmXJ.js} +1 -1
  67. package/lib/public/assets/{upload-C3i7sAZl.js → upload-DkGy_J-L.js} +1 -1
  68. package/lib/public/assets/{use-password-reset-mode-CeZQ3EsH.js → use-password-reset-mode-BFtMqQOh.js} +1 -1
  69. package/lib/public/assets/{users-Drd7ifJx.js → users-BU0nXIVe.js} +1 -1
  70. package/lib/public/assets/{users-CEJ3fC78.js → users-Nb_rzRmF.js} +1 -1
  71. package/lib/public/assets/{video-off-CNzn6bPE.js → video-off-CUNzD2kH.js} +1 -1
  72. package/lib/public/assets/{webhook-settings-BFqX6QXV.js → webhook-settings-Ca3UFXZe.js} +1 -1
  73. package/lib/public/assets/{zap-4yN8Jdfw.js → zap-B2bH2vKX.js} +1 -1
  74. package/lib/public/index.html +1 -1
  75. package/lib/src/InternalHttpClient.js +5 -1
  76. package/lib/src/XenonCapabilityManager.js +15 -1
  77. package/lib/src/app/appiumBasePath.js +32 -0
  78. package/lib/src/app/index.js +12 -0
  79. package/lib/src/app/insertBeforeRoutes.js +24 -4
  80. package/lib/src/app/registerCommandAuth.js +152 -33
  81. package/lib/src/app/routers/control.js +11 -104
  82. package/lib/src/app/routers/grid.js +28 -8
  83. package/lib/src/app/routers/nodePhoneControl.js +301 -0
  84. package/lib/src/app/ws/h264StreamWs.js +43 -12
  85. package/lib/src/app/ws/logcatWs.js +48 -14
  86. package/lib/src/app/ws/nodeSocketRelay.js +167 -0
  87. package/lib/src/app/ws/upgradeRouter.js +215 -0
  88. package/lib/src/dashboard/event-manager.js +7 -6
  89. package/lib/src/data-service/device-service.js +152 -49
  90. package/lib/src/data-service/device-store.js +92 -10
  91. package/lib/src/data-service/deviceClaims.js +116 -0
  92. package/lib/src/data-service/deviceFieldOwners.js +32 -10
  93. package/lib/src/data-service/prisma-store.js +102 -31
  94. package/lib/src/device-managers/AndroidDeviceManager.js +40 -42
  95. package/lib/src/device-managers/HealthMonitorService.js +17 -2
  96. package/lib/src/device-managers/IOSDeviceManager.js +5 -1
  97. package/lib/src/device-managers/NodeDevices.js +7 -2
  98. package/lib/src/device-managers/android/AndroidH264StreamService.js +13 -5
  99. package/lib/src/device-managers/android/AndroidStreamService.js +9 -6
  100. package/lib/src/device-managers/android/previewHold.js +2 -2
  101. package/lib/src/device-managers/ios/IOSDiscoveryService.js +19 -8
  102. package/lib/src/device-managers/ios/IOSStreamService.js +162 -40
  103. package/lib/src/device-managers/localDeviceHosts.js +86 -0
  104. package/lib/src/device-managers/ownDeviceRow.js +38 -0
  105. package/lib/src/device-utils.js +78 -24
  106. package/lib/src/gateway/createHandoff.js +73 -0
  107. package/lib/src/gateway/defaultGateway.js +80 -0
  108. package/lib/src/gateway/forwardToNode.js +147 -0
  109. package/lib/src/gateway/hubSessionToken.js +356 -0
  110. package/lib/src/gateway/internalCall.js +90 -0
  111. package/lib/src/gateway/nodeSessionStatus.js +140 -0
  112. package/lib/src/gateway/nodeWebDriverUrl.js +139 -0
  113. package/lib/src/gateway/sessionCreate.js +136 -0
  114. package/lib/src/gateway/sessionGateway.js +201 -0
  115. package/lib/src/gateway/sessionLocator.js +100 -0
  116. package/lib/src/generated/client/edge.js +7 -4
  117. package/lib/src/generated/client/index-browser.js +4 -1
  118. package/lib/src/generated/client/index.d.ts +112 -1
  119. package/lib/src/generated/client/index.js +7 -4
  120. package/lib/src/generated/client/package.json +1 -1
  121. package/lib/src/generated/client/schema.prisma +9 -0
  122. package/lib/src/generated/client/wasm.js +4 -1
  123. package/lib/src/helpers/index.js +5 -1
  124. package/lib/src/logger.js +5 -0
  125. package/lib/src/middleware/authMiddleware.js +80 -0
  126. package/lib/src/middleware/commandAuth.js +31 -17
  127. package/lib/src/middleware/csrfMiddleware.js +3 -2
  128. package/lib/src/middleware/deviceAccessGuard.js +4 -1
  129. package/lib/src/middleware/sessionListingFilter.js +153 -0
  130. package/lib/src/middleware/sessionUpgradeGuard.js +203 -0
  131. package/lib/src/plugin.js +27 -1
  132. package/lib/src/prisma.js +2 -1
  133. package/lib/src/services/DeviceReconciler.js +5 -2
  134. package/lib/src/services/OrphanSweeper.js +12 -19
  135. package/lib/src/services/PortAllocator.js +75 -16
  136. package/lib/src/services/ServerManager.js +63 -30
  137. package/lib/src/services/SessionLifecycleService.js +335 -76
  138. package/lib/src/services/ShutdownCoordinator.js +7 -1
  139. package/lib/src/services/SocketServer.js +11 -2
  140. package/lib/src/services/device-access/LiveSessionOwners.js +53 -0
  141. package/lib/src/services/device-access/SessionOwnerResolver.js +74 -0
  142. package/lib/src/services/device-access/ticketActorAccess.js +3 -1
  143. package/lib/src/services/lease/LeaseOrphanSweeper.js +34 -6
  144. package/lib/src/services/lease/LeaseService.js +19 -5
  145. package/lib/src/services/session/nodeCreateCaps.js +55 -0
  146. package/lib/src/services/session/sessionCredentials.js +7 -59
  147. package/lib/src/sessions/CloudSession.js +12 -0
  148. package/lib/src/sessions/LocalSession.js +52 -26
  149. package/lib/src/sessions/RemoteSession.js +116 -9
  150. package/lib/src/sessions/SessionManager.js +49 -6
  151. package/lib/src/sessions/appiumUmbrella.js +32 -0
  152. package/lib/test/helpers/appium-umbrella.js +84 -0
  153. package/lib/test/helpers/fake-device-table.js +97 -0
  154. package/lib/test/helpers/loki-stores.js +41 -0
  155. package/lib/test/helpers/loopbackRequest.js +77 -0
  156. package/lib/test/helpers/own-node-id.js +29 -0
  157. package/lib/test/helpers/scratch-database.js +100 -0
  158. package/lib/test/helpers/scratch-port-leases.js +119 -0
  159. package/lib/test/helpers/test-container.js +35 -27
  160. package/lib/test/integration/androidDevices.spec.js +5 -4
  161. package/lib/test/integration/ios/01iOSSimulator.spec.js +6 -5
  162. package/lib/test/integration/ios/02iOSDevices.spec.js +3 -2
  163. package/lib/test/integration/prisma-device-store-add-devices.spec.js +14 -4
  164. package/lib/test/setup/scratch-default-database.js +32 -0
  165. package/lib/test/unit/AndroidDeviceManager.spec.js +56 -1
  166. package/lib/test/unit/DeviceModel.spec.js +9 -9
  167. package/lib/test/unit/HealingCascade.test.js +5 -1
  168. package/lib/test/unit/OrphanSweeper.test.js +17 -13
  169. package/lib/test/unit/SessionHeartbeatWrite.test.js +6 -7
  170. package/lib/test/unit/StreamTicketService.spec.js +4 -1
  171. package/lib/test/unit/TokenEndpoint.spec.js +17 -3
  172. package/lib/test/unit/aggregate-hotspots-session-scope.spec.js +5 -5
  173. package/lib/test/unit/android-h264-service.spec.js +24 -0
  174. package/lib/test/unit/android-stream-stall-eof.spec.js +10 -0
  175. package/lib/test/unit/apps-team-visibility.spec.js +16 -16
  176. package/lib/test/unit/auth-me-auth-disabled.test.js +7 -4
  177. package/lib/test/unit/authMiddleware.appTicket.spec.js +5 -5
  178. package/lib/test/unit/authMiddleware.bearer.spec.js +4 -1
  179. package/lib/test/unit/authMiddleware.mcpAudience.spec.js +4 -1
  180. package/lib/test/unit/authMiddleware.streamTicket.spec.js +19 -7
  181. package/lib/test/unit/authMiddleware.test.js +3 -0
  182. package/lib/test/unit/bug-report/route.spec.js +9 -9
  183. package/lib/test/unit/cliargs-admin-only.spec.js +3 -3
  184. package/lib/test/unit/clipboard-route.spec.js +22 -8
  185. package/lib/test/unit/command-auth-appium-server.spec.js +187 -32
  186. package/lib/test/unit/command-auth.spec.js +31 -31
  187. package/lib/test/unit/control-device-lookup.spec.js +9 -9
  188. package/lib/test/unit/control-forward-decision.spec.js +115 -0
  189. package/lib/test/unit/control-lookup-failure.spec.js +3 -3
  190. package/lib/test/unit/create-error-message.spec.js +43 -0
  191. package/lib/test/unit/create-handoff.spec.js +86 -0
  192. package/lib/test/unit/dashboard-events-team-scope.spec.js +6 -3
  193. package/lib/test/unit/device-access-guard.spec.js +66 -28
  194. package/lib/test/unit/device-service.spec.js +4 -0
  195. package/lib/test/unit/device-store-clear-at-boot.spec.js +48 -0
  196. package/lib/test/unit/device-sync-lost-update.spec.js +17 -89
  197. package/lib/test/unit/device-team-guard.spec.js +20 -20
  198. package/lib/test/unit/device-utils.spec.js +8 -0
  199. package/lib/test/unit/extract-team-cap.spec.js +65 -0
  200. package/lib/test/unit/grid-admin-only.spec.js +3 -3
  201. package/lib/test/unit/healing-tier-gate.spec.js +5 -1
  202. package/lib/test/unit/health-monitor-own-phones.spec.js +102 -0
  203. package/lib/test/unit/health-monitor-stream-lookup.spec.js +11 -1
  204. package/lib/test/unit/helpers.spec.js +27 -0
  205. package/lib/test/unit/hub-boot-sweep-recovery.spec.js +192 -0
  206. package/lib/test/unit/hub-create-once.spec.js +190 -0
  207. package/lib/test/unit/hub-create-session-umbrella.spec.js +160 -0
  208. package/lib/test/unit/hub-gateway-create-appium-server.spec.js +591 -0
  209. package/lib/test/unit/hub-node-control-forward.spec.js +608 -0
  210. package/lib/test/unit/hub-node-gateway-appium-server.spec.js +594 -0
  211. package/lib/test/unit/hub-node-race.spec.js +426 -0
  212. package/lib/test/unit/hub-node-same-host.spec.js +356 -0
  213. package/lib/test/unit/hub-register-removal.spec.js +165 -0
  214. package/lib/test/unit/hub-remote-session-heartbeat.spec.js +277 -0
  215. package/lib/test/unit/hub-routed-session-recovery.spec.js +151 -0
  216. package/lib/test/unit/hub-session-token.spec.js +265 -0
  217. package/lib/test/unit/insert-before-routes.spec.js +5 -5
  218. package/lib/test/unit/install-repository-app-team.spec.js +6 -2
  219. package/lib/test/unit/interceptor/MitmProxyHost.spec.js +23 -10
  220. package/lib/test/unit/internal-call.spec.js +181 -0
  221. package/lib/test/unit/ios-discovery-same-host.spec.js +193 -0
  222. package/lib/test/unit/ios-stream-appium-tunnel.spec.js +317 -0
  223. package/lib/test/unit/ios-stream-port-leases.spec.js +299 -0
  224. package/lib/test/unit/ios-wda-status-identity.spec.js +84 -0
  225. package/lib/test/unit/is-xenon-running.spec.js +69 -0
  226. package/lib/test/unit/lease/LeaseOrphanSweeper.spec.js +2 -2
  227. package/lib/test/unit/lease/LeaseService.spec.js +28 -1
  228. package/lib/test/unit/lease/lease-reap-held-phone.spec.js +154 -0
  229. package/lib/test/unit/lease/lease-sweeper-expiry.spec.js +107 -0
  230. package/lib/test/unit/lease/lease-team-visibility.spec.js +2 -2
  231. package/lib/test/unit/lease/lease-token-log-filter.spec.js +242 -64
  232. package/lib/test/unit/lease/lease-token-oracle.spec.js +20 -7
  233. package/lib/test/unit/lease/session-lease-proof.spec.js +8 -3
  234. package/lib/test/unit/logcat-ws.spec.js +12 -1
  235. package/lib/test/unit/loopback-request.spec.js +81 -0
  236. package/lib/test/unit/mark-node-busy-loki.spec.js +53 -0
  237. package/lib/test/unit/node-create-caps.spec.js +54 -0
  238. package/lib/test/unit/node-gateway-create-appium-server.spec.js +354 -0
  239. package/lib/test/unit/node-hub-session-owner.spec.js +223 -0
  240. package/lib/test/unit/node-phone-control.spec.js +131 -0
  241. package/lib/test/unit/node-socket-relay.spec.js +357 -0
  242. package/lib/test/unit/omni-vision.spec.js +7 -3
  243. package/lib/test/unit/plugin.spec.js +45 -4
  244. package/lib/test/unit/port-allocator-os-probe.spec.js +151 -0
  245. package/lib/test/unit/profile-router.test.js +11 -11
  246. package/lib/test/unit/queue-requester.spec.js +5 -0
  247. package/lib/test/unit/queue-team-scope-routes.spec.js +17 -16
  248. package/lib/test/unit/queue-visibility.spec.js +1 -1
  249. package/lib/test/unit/recording-downloads-visibility.spec.js +2 -2
  250. package/lib/test/unit/recording-instrumentation.spec.js +5 -0
  251. package/lib/test/unit/recording-source-ended.spec.js +5 -0
  252. package/lib/test/unit/recording-store.spec.js +9 -3
  253. package/lib/test/unit/recordings-library-routes.spec.js +51 -51
  254. package/lib/test/unit/recordings-write-visibility.spec.js +2 -2
  255. package/lib/test/unit/remote-session-create.spec.js +130 -0
  256. package/lib/test/unit/reservation-team-visibility.spec.js +5 -5
  257. package/lib/test/unit/reset-link.test.js +14 -14
  258. package/lib/test/unit/session-app-resolution.spec.js +14 -10
  259. package/lib/test/unit/session-assets.spec.js +9 -9
  260. package/lib/test/unit/session-attribution-wiring.spec.js +29 -2
  261. package/lib/test/unit/session-create-layer.spec.js +255 -0
  262. package/lib/test/unit/session-credential-strip.spec.js +25 -9
  263. package/lib/test/unit/session-credentials.spec.js +0 -47
  264. package/lib/test/unit/session-listing-auth.spec.js +345 -0
  265. package/lib/test/unit/session-locator.spec.js +250 -0
  266. package/lib/test/unit/session-node-calls.spec.js +174 -0
  267. package/lib/test/unit/session-owner-resolver.spec.js +107 -0
  268. package/lib/test/unit/session-recovery-routing.spec.js +118 -0
  269. package/lib/test/unit/session-upgrade-guard.spec.js +571 -0
  270. package/lib/test/unit/shutdown-drain-remote.spec.js +58 -0
  271. package/lib/test/unit/socketServer.bearer.spec.js +3 -1
  272. package/lib/test/unit/stream-leave-route.spec.js +19 -7
  273. package/lib/test/unit/stream-own-device-row.spec.js +164 -0
  274. package/lib/test/unit/stream-stop-ownership.spec.js +17 -5
  275. package/lib/test/unit/stream-stop-recording.spec.js +17 -5
  276. package/lib/test/unit/stream-ticket-identity.spec.js +26 -6
  277. package/lib/test/unit/stream-watchdog-timers.spec.js +46 -0
  278. package/lib/test/unit/upgrade-router.spec.js +446 -0
  279. package/lib/test/unit/users-router.test.js +11 -8
  280. package/lib/test/unit/verify-credential.spec.js +4 -1
  281. package/lib/test/unit/webdriver-info-route.spec.js +64 -0
  282. package/lib/test/unit/ws-upgrade-routing-appium-server.spec.js +500 -0
  283. package/lib/tsconfig.tsbuildinfo +1 -1
  284. package/package.json +3 -4
  285. package/prisma/migrations/20260929120000_device_claims/migration.sql +8 -0
  286. package/prisma/schema.prisma +9 -0
  287. package/lib/public/assets/BugReportButton-DKYsOdGV.js +0 -10
  288. package/lib/public/assets/device-explorer-DV8rWRxL.css +0 -1
  289. package/lib/src/proxy/wd-command-proxy.js +0 -221
@@ -282,7 +282,10 @@ exports.Prisma.DeviceScalarFieldEnum = {
282
282
  cpuArchitecture: 'cpuArchitecture',
283
283
  owningSessionId: 'owningSessionId',
284
284
  lockedAt: 'lockedAt',
285
- teamId: 'teamId'
285
+ teamId: 'teamId',
286
+ claimSessionId: 'claimSessionId',
287
+ claimedAt: 'claimedAt',
288
+ nodeBusy: 'nodeBusy'
286
289
  };
287
290
 
288
291
  exports.Prisma.PendingSessionScalarFieldEnum = {
@@ -9854,6 +9854,7 @@ export namespace Prisma {
9854
9854
  reservedUntil: number | null
9855
9855
  totalHealedCount: number | null
9856
9856
  lockedAt: number | null
9857
+ claimedAt: number | null
9857
9858
  }
9858
9859
 
9859
9860
  export type DeviceSumAggregateOutputType = {
@@ -9872,6 +9873,7 @@ export namespace Prisma {
9872
9873
  reservedUntil: number | null
9873
9874
  totalHealedCount: number | null
9874
9875
  lockedAt: number | null
9876
+ claimedAt: number | null
9875
9877
  }
9876
9878
 
9877
9879
  export type DeviceMinAggregateOutputType = {
@@ -9930,6 +9932,9 @@ export namespace Prisma {
9930
9932
  owningSessionId: string | null
9931
9933
  lockedAt: number | null
9932
9934
  teamId: string | null
9935
+ claimSessionId: string | null
9936
+ claimedAt: number | null
9937
+ nodeBusy: boolean | null
9933
9938
  }
9934
9939
 
9935
9940
  export type DeviceMaxAggregateOutputType = {
@@ -9988,6 +9993,9 @@ export namespace Prisma {
9988
9993
  owningSessionId: string | null
9989
9994
  lockedAt: number | null
9990
9995
  teamId: string | null
9996
+ claimSessionId: string | null
9997
+ claimedAt: number | null
9998
+ nodeBusy: boolean | null
9991
9999
  }
9992
10000
 
9993
10001
  export type DeviceCountAggregateOutputType = {
@@ -10046,6 +10054,9 @@ export namespace Prisma {
10046
10054
  owningSessionId: number
10047
10055
  lockedAt: number
10048
10056
  teamId: number
10057
+ claimSessionId: number
10058
+ claimedAt: number
10059
+ nodeBusy: number
10049
10060
  _all: number
10050
10061
  }
10051
10062
 
@@ -10066,6 +10077,7 @@ export namespace Prisma {
10066
10077
  reservedUntil?: true
10067
10078
  totalHealedCount?: true
10068
10079
  lockedAt?: true
10080
+ claimedAt?: true
10069
10081
  }
10070
10082
 
10071
10083
  export type DeviceSumAggregateInputType = {
@@ -10084,6 +10096,7 @@ export namespace Prisma {
10084
10096
  reservedUntil?: true
10085
10097
  totalHealedCount?: true
10086
10098
  lockedAt?: true
10099
+ claimedAt?: true
10087
10100
  }
10088
10101
 
10089
10102
  export type DeviceMinAggregateInputType = {
@@ -10142,6 +10155,9 @@ export namespace Prisma {
10142
10155
  owningSessionId?: true
10143
10156
  lockedAt?: true
10144
10157
  teamId?: true
10158
+ claimSessionId?: true
10159
+ claimedAt?: true
10160
+ nodeBusy?: true
10145
10161
  }
10146
10162
 
10147
10163
  export type DeviceMaxAggregateInputType = {
@@ -10200,6 +10216,9 @@ export namespace Prisma {
10200
10216
  owningSessionId?: true
10201
10217
  lockedAt?: true
10202
10218
  teamId?: true
10219
+ claimSessionId?: true
10220
+ claimedAt?: true
10221
+ nodeBusy?: true
10203
10222
  }
10204
10223
 
10205
10224
  export type DeviceCountAggregateInputType = {
@@ -10258,6 +10277,9 @@ export namespace Prisma {
10258
10277
  owningSessionId?: true
10259
10278
  lockedAt?: true
10260
10279
  teamId?: true
10280
+ claimSessionId?: true
10281
+ claimedAt?: true
10282
+ nodeBusy?: true
10261
10283
  _all?: true
10262
10284
  }
10263
10285
 
@@ -10403,6 +10425,9 @@ export namespace Prisma {
10403
10425
  owningSessionId: string | null
10404
10426
  lockedAt: number | null
10405
10427
  teamId: string | null
10428
+ claimSessionId: string | null
10429
+ claimedAt: number | null
10430
+ nodeBusy: boolean | null
10406
10431
  _count: DeviceCountAggregateOutputType | null
10407
10432
  _avg: DeviceAvgAggregateOutputType | null
10408
10433
  _sum: DeviceSumAggregateOutputType | null
@@ -10480,6 +10505,9 @@ export namespace Prisma {
10480
10505
  owningSessionId?: boolean
10481
10506
  lockedAt?: boolean
10482
10507
  teamId?: boolean
10508
+ claimSessionId?: boolean
10509
+ claimedAt?: boolean
10510
+ nodeBusy?: boolean
10483
10511
  team?: boolean | Device$teamArgs<ExtArgs>
10484
10512
  }, ExtArgs["result"]["device"]>
10485
10513
 
@@ -10539,6 +10567,9 @@ export namespace Prisma {
10539
10567
  owningSessionId?: boolean
10540
10568
  lockedAt?: boolean
10541
10569
  teamId?: boolean
10570
+ claimSessionId?: boolean
10571
+ claimedAt?: boolean
10572
+ nodeBusy?: boolean
10542
10573
  team?: boolean | Device$teamArgs<ExtArgs>
10543
10574
  }, ExtArgs["result"]["device"]>
10544
10575
 
@@ -10598,6 +10629,9 @@ export namespace Prisma {
10598
10629
  owningSessionId?: boolean
10599
10630
  lockedAt?: boolean
10600
10631
  teamId?: boolean
10632
+ claimSessionId?: boolean
10633
+ claimedAt?: boolean
10634
+ nodeBusy?: boolean
10601
10635
  }
10602
10636
 
10603
10637
  export type DeviceInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
@@ -10668,6 +10702,9 @@ export namespace Prisma {
10668
10702
  owningSessionId: string | null
10669
10703
  lockedAt: number | null
10670
10704
  teamId: string | null
10705
+ claimSessionId: string | null
10706
+ claimedAt: number | null
10707
+ nodeBusy: boolean | null
10671
10708
  }, ExtArgs["result"]["device"]>
10672
10709
  composites: {}
10673
10710
  }
@@ -11117,6 +11154,9 @@ export namespace Prisma {
11117
11154
  readonly owningSessionId: FieldRef<"Device", 'String'>
11118
11155
  readonly lockedAt: FieldRef<"Device", 'Float'>
11119
11156
  readonly teamId: FieldRef<"Device", 'String'>
11157
+ readonly claimSessionId: FieldRef<"Device", 'String'>
11158
+ readonly claimedAt: FieldRef<"Device", 'Float'>
11159
+ readonly nodeBusy: FieldRef<"Device", 'Boolean'>
11120
11160
  }
11121
11161
 
11122
11162
 
@@ -30028,7 +30068,10 @@ export namespace Prisma {
30028
30068
  cpuArchitecture: 'cpuArchitecture',
30029
30069
  owningSessionId: 'owningSessionId',
30030
30070
  lockedAt: 'lockedAt',
30031
- teamId: 'teamId'
30071
+ teamId: 'teamId',
30072
+ claimSessionId: 'claimSessionId',
30073
+ claimedAt: 'claimedAt',
30074
+ nodeBusy: 'nodeBusy'
30032
30075
  };
30033
30076
 
30034
30077
  export type DeviceScalarFieldEnum = (typeof DeviceScalarFieldEnum)[keyof typeof DeviceScalarFieldEnum]
@@ -31063,6 +31106,9 @@ export namespace Prisma {
31063
31106
  owningSessionId?: StringNullableFilter<"Device"> | string | null
31064
31107
  lockedAt?: FloatNullableFilter<"Device"> | number | null
31065
31108
  teamId?: StringNullableFilter<"Device"> | string | null
31109
+ claimSessionId?: StringNullableFilter<"Device"> | string | null
31110
+ claimedAt?: FloatNullableFilter<"Device"> | number | null
31111
+ nodeBusy?: BoolNullableFilter<"Device"> | boolean | null
31066
31112
  team?: XOR<TeamNullableRelationFilter, TeamWhereInput> | null
31067
31113
  }
31068
31114
 
@@ -31122,6 +31168,9 @@ export namespace Prisma {
31122
31168
  owningSessionId?: SortOrderInput | SortOrder
31123
31169
  lockedAt?: SortOrderInput | SortOrder
31124
31170
  teamId?: SortOrderInput | SortOrder
31171
+ claimSessionId?: SortOrderInput | SortOrder
31172
+ claimedAt?: SortOrderInput | SortOrder
31173
+ nodeBusy?: SortOrderInput | SortOrder
31125
31174
  team?: TeamOrderByWithRelationInput
31126
31175
  }
31127
31176
 
@@ -31185,6 +31234,9 @@ export namespace Prisma {
31185
31234
  owningSessionId?: StringNullableFilter<"Device"> | string | null
31186
31235
  lockedAt?: FloatNullableFilter<"Device"> | number | null
31187
31236
  teamId?: StringNullableFilter<"Device"> | string | null
31237
+ claimSessionId?: StringNullableFilter<"Device"> | string | null
31238
+ claimedAt?: FloatNullableFilter<"Device"> | number | null
31239
+ nodeBusy?: BoolNullableFilter<"Device"> | boolean | null
31188
31240
  team?: XOR<TeamNullableRelationFilter, TeamWhereInput> | null
31189
31241
  }, "udid_host">
31190
31242
 
@@ -31244,6 +31296,9 @@ export namespace Prisma {
31244
31296
  owningSessionId?: SortOrderInput | SortOrder
31245
31297
  lockedAt?: SortOrderInput | SortOrder
31246
31298
  teamId?: SortOrderInput | SortOrder
31299
+ claimSessionId?: SortOrderInput | SortOrder
31300
+ claimedAt?: SortOrderInput | SortOrder
31301
+ nodeBusy?: SortOrderInput | SortOrder
31247
31302
  _count?: DeviceCountOrderByAggregateInput
31248
31303
  _avg?: DeviceAvgOrderByAggregateInput
31249
31304
  _max?: DeviceMaxOrderByAggregateInput
@@ -31310,6 +31365,9 @@ export namespace Prisma {
31310
31365
  owningSessionId?: StringNullableWithAggregatesFilter<"Device"> | string | null
31311
31366
  lockedAt?: FloatNullableWithAggregatesFilter<"Device"> | number | null
31312
31367
  teamId?: StringNullableWithAggregatesFilter<"Device"> | string | null
31368
+ claimSessionId?: StringNullableWithAggregatesFilter<"Device"> | string | null
31369
+ claimedAt?: FloatNullableWithAggregatesFilter<"Device"> | number | null
31370
+ nodeBusy?: BoolNullableWithAggregatesFilter<"Device"> | boolean | null
31313
31371
  }
31314
31372
 
31315
31373
  export type PendingSessionWhereInput = {
@@ -33460,6 +33518,9 @@ export namespace Prisma {
33460
33518
  cpuArchitecture?: string | null
33461
33519
  owningSessionId?: string | null
33462
33520
  lockedAt?: number | null
33521
+ claimSessionId?: string | null
33522
+ claimedAt?: number | null
33523
+ nodeBusy?: boolean | null
33463
33524
  team?: TeamCreateNestedOneWithoutDevicesInput
33464
33525
  }
33465
33526
 
@@ -33519,6 +33580,9 @@ export namespace Prisma {
33519
33580
  owningSessionId?: string | null
33520
33581
  lockedAt?: number | null
33521
33582
  teamId?: string | null
33583
+ claimSessionId?: string | null
33584
+ claimedAt?: number | null
33585
+ nodeBusy?: boolean | null
33522
33586
  }
33523
33587
 
33524
33588
  export type DeviceUpdateInput = {
@@ -33576,6 +33640,9 @@ export namespace Prisma {
33576
33640
  cpuArchitecture?: NullableStringFieldUpdateOperationsInput | string | null
33577
33641
  owningSessionId?: NullableStringFieldUpdateOperationsInput | string | null
33578
33642
  lockedAt?: NullableFloatFieldUpdateOperationsInput | number | null
33643
+ claimSessionId?: NullableStringFieldUpdateOperationsInput | string | null
33644
+ claimedAt?: NullableFloatFieldUpdateOperationsInput | number | null
33645
+ nodeBusy?: NullableBoolFieldUpdateOperationsInput | boolean | null
33579
33646
  team?: TeamUpdateOneWithoutDevicesNestedInput
33580
33647
  }
33581
33648
 
@@ -33635,6 +33702,9 @@ export namespace Prisma {
33635
33702
  owningSessionId?: NullableStringFieldUpdateOperationsInput | string | null
33636
33703
  lockedAt?: NullableFloatFieldUpdateOperationsInput | number | null
33637
33704
  teamId?: NullableStringFieldUpdateOperationsInput | string | null
33705
+ claimSessionId?: NullableStringFieldUpdateOperationsInput | string | null
33706
+ claimedAt?: NullableFloatFieldUpdateOperationsInput | number | null
33707
+ nodeBusy?: NullableBoolFieldUpdateOperationsInput | boolean | null
33638
33708
  }
33639
33709
 
33640
33710
  export type DeviceCreateManyInput = {
@@ -33693,6 +33763,9 @@ export namespace Prisma {
33693
33763
  owningSessionId?: string | null
33694
33764
  lockedAt?: number | null
33695
33765
  teamId?: string | null
33766
+ claimSessionId?: string | null
33767
+ claimedAt?: number | null
33768
+ nodeBusy?: boolean | null
33696
33769
  }
33697
33770
 
33698
33771
  export type DeviceUpdateManyMutationInput = {
@@ -33750,6 +33823,9 @@ export namespace Prisma {
33750
33823
  cpuArchitecture?: NullableStringFieldUpdateOperationsInput | string | null
33751
33824
  owningSessionId?: NullableStringFieldUpdateOperationsInput | string | null
33752
33825
  lockedAt?: NullableFloatFieldUpdateOperationsInput | number | null
33826
+ claimSessionId?: NullableStringFieldUpdateOperationsInput | string | null
33827
+ claimedAt?: NullableFloatFieldUpdateOperationsInput | number | null
33828
+ nodeBusy?: NullableBoolFieldUpdateOperationsInput | boolean | null
33753
33829
  }
33754
33830
 
33755
33831
  export type DeviceUncheckedUpdateManyInput = {
@@ -33808,6 +33884,9 @@ export namespace Prisma {
33808
33884
  owningSessionId?: NullableStringFieldUpdateOperationsInput | string | null
33809
33885
  lockedAt?: NullableFloatFieldUpdateOperationsInput | number | null
33810
33886
  teamId?: NullableStringFieldUpdateOperationsInput | string | null
33887
+ claimSessionId?: NullableStringFieldUpdateOperationsInput | string | null
33888
+ claimedAt?: NullableFloatFieldUpdateOperationsInput | number | null
33889
+ nodeBusy?: NullableBoolFieldUpdateOperationsInput | boolean | null
33811
33890
  }
33812
33891
 
33813
33892
  export type PendingSessionCreateInput = {
@@ -35982,6 +36061,9 @@ export namespace Prisma {
35982
36061
  owningSessionId?: SortOrder
35983
36062
  lockedAt?: SortOrder
35984
36063
  teamId?: SortOrder
36064
+ claimSessionId?: SortOrder
36065
+ claimedAt?: SortOrder
36066
+ nodeBusy?: SortOrder
35985
36067
  }
35986
36068
 
35987
36069
  export type DeviceAvgOrderByAggregateInput = {
@@ -36000,6 +36082,7 @@ export namespace Prisma {
36000
36082
  reservedUntil?: SortOrder
36001
36083
  totalHealedCount?: SortOrder
36002
36084
  lockedAt?: SortOrder
36085
+ claimedAt?: SortOrder
36003
36086
  }
36004
36087
 
36005
36088
  export type DeviceMaxOrderByAggregateInput = {
@@ -36058,6 +36141,9 @@ export namespace Prisma {
36058
36141
  owningSessionId?: SortOrder
36059
36142
  lockedAt?: SortOrder
36060
36143
  teamId?: SortOrder
36144
+ claimSessionId?: SortOrder
36145
+ claimedAt?: SortOrder
36146
+ nodeBusy?: SortOrder
36061
36147
  }
36062
36148
 
36063
36149
  export type DeviceMinOrderByAggregateInput = {
@@ -36116,6 +36202,9 @@ export namespace Prisma {
36116
36202
  owningSessionId?: SortOrder
36117
36203
  lockedAt?: SortOrder
36118
36204
  teamId?: SortOrder
36205
+ claimSessionId?: SortOrder
36206
+ claimedAt?: SortOrder
36207
+ nodeBusy?: SortOrder
36119
36208
  }
36120
36209
 
36121
36210
  export type DeviceSumOrderByAggregateInput = {
@@ -36134,6 +36223,7 @@ export namespace Prisma {
36134
36223
  reservedUntil?: SortOrder
36135
36224
  totalHealedCount?: SortOrder
36136
36225
  lockedAt?: SortOrder
36226
+ claimedAt?: SortOrder
36137
36227
  }
36138
36228
 
36139
36229
  export type FloatWithAggregatesFilter<$PrismaModel = never> = {
@@ -39394,6 +39484,9 @@ export namespace Prisma {
39394
39484
  cpuArchitecture?: string | null
39395
39485
  owningSessionId?: string | null
39396
39486
  lockedAt?: number | null
39487
+ claimSessionId?: string | null
39488
+ claimedAt?: number | null
39489
+ nodeBusy?: boolean | null
39397
39490
  }
39398
39491
 
39399
39492
  export type DeviceUncheckedCreateWithoutTeamInput = {
@@ -39451,6 +39544,9 @@ export namespace Prisma {
39451
39544
  cpuArchitecture?: string | null
39452
39545
  owningSessionId?: string | null
39453
39546
  lockedAt?: number | null
39547
+ claimSessionId?: string | null
39548
+ claimedAt?: number | null
39549
+ nodeBusy?: boolean | null
39454
39550
  }
39455
39551
 
39456
39552
  export type DeviceCreateOrConnectWithoutTeamInput = {
@@ -39632,6 +39728,9 @@ export namespace Prisma {
39632
39728
  owningSessionId?: StringNullableFilter<"Device"> | string | null
39633
39729
  lockedAt?: FloatNullableFilter<"Device"> | number | null
39634
39730
  teamId?: StringNullableFilter<"Device"> | string | null
39731
+ claimSessionId?: StringNullableFilter<"Device"> | string | null
39732
+ claimedAt?: FloatNullableFilter<"Device"> | number | null
39733
+ nodeBusy?: BoolNullableFilter<"Device"> | boolean | null
39635
39734
  }
39636
39735
 
39637
39736
  export type ApiKeyUpsertWithWhereUniqueWithoutTeamInput = {
@@ -41141,6 +41240,9 @@ export namespace Prisma {
41141
41240
  cpuArchitecture?: string | null
41142
41241
  owningSessionId?: string | null
41143
41242
  lockedAt?: number | null
41243
+ claimSessionId?: string | null
41244
+ claimedAt?: number | null
41245
+ nodeBusy?: boolean | null
41144
41246
  }
41145
41247
 
41146
41248
  export type ApiKeyCreateManyTeamInput = {
@@ -41232,6 +41334,9 @@ export namespace Prisma {
41232
41334
  cpuArchitecture?: NullableStringFieldUpdateOperationsInput | string | null
41233
41335
  owningSessionId?: NullableStringFieldUpdateOperationsInput | string | null
41234
41336
  lockedAt?: NullableFloatFieldUpdateOperationsInput | number | null
41337
+ claimSessionId?: NullableStringFieldUpdateOperationsInput | string | null
41338
+ claimedAt?: NullableFloatFieldUpdateOperationsInput | number | null
41339
+ nodeBusy?: NullableBoolFieldUpdateOperationsInput | boolean | null
41235
41340
  }
41236
41341
 
41237
41342
  export type DeviceUncheckedUpdateWithoutTeamInput = {
@@ -41289,6 +41394,9 @@ export namespace Prisma {
41289
41394
  cpuArchitecture?: NullableStringFieldUpdateOperationsInput | string | null
41290
41395
  owningSessionId?: NullableStringFieldUpdateOperationsInput | string | null
41291
41396
  lockedAt?: NullableFloatFieldUpdateOperationsInput | number | null
41397
+ claimSessionId?: NullableStringFieldUpdateOperationsInput | string | null
41398
+ claimedAt?: NullableFloatFieldUpdateOperationsInput | number | null
41399
+ nodeBusy?: NullableBoolFieldUpdateOperationsInput | boolean | null
41292
41400
  }
41293
41401
 
41294
41402
  export type DeviceUncheckedUpdateManyWithoutTeamInput = {
@@ -41346,6 +41454,9 @@ export namespace Prisma {
41346
41454
  cpuArchitecture?: NullableStringFieldUpdateOperationsInput | string | null
41347
41455
  owningSessionId?: NullableStringFieldUpdateOperationsInput | string | null
41348
41456
  lockedAt?: NullableFloatFieldUpdateOperationsInput | number | null
41457
+ claimSessionId?: NullableStringFieldUpdateOperationsInput | string | null
41458
+ claimedAt?: NullableFloatFieldUpdateOperationsInput | number | null
41459
+ nodeBusy?: NullableBoolFieldUpdateOperationsInput | boolean | null
41349
41460
  }
41350
41461
 
41351
41462
  export type ApiKeyUpdateWithoutTeamInput = {