@yina-npm/openrouterx 0.4.23 → 0.4.24

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 (269) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +2 -2
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page_client-reference-manifest.js +1 -1
  5. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +11 -11
  13. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/page.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/user/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/_global-error.html +1 -1
  33. package/app/.next/server/app/_global-error.rsc +1 -1
  34. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  35. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  36. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  37. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  38. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  39. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  40. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/_not-found.html +1 -1
  42. package/app/.next/server/app/_not-found.rsc +4 -4
  43. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  44. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  45. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  46. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  47. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  48. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  49. package/app/.next/server/app/api/auth/login/route.js +1 -1
  50. package/app/.next/server/app/api/auth/me/route.js +1 -1
  51. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  52. package/app/.next/server/app/api/cli-tools/antigravity-mitm/test/route.js +1 -1
  53. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  54. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  55. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  56. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  57. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
  58. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  59. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  60. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  61. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  62. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  63. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  64. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  65. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  66. package/app/.next/server/app/api/combos/route.js +1 -1
  67. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  68. package/app/.next/server/app/api/keys/route.js +1 -1
  69. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  70. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  71. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  72. package/app/.next/server/app/api/models/alias/route.js +1 -1
  73. package/app/.next/server/app/api/models/availability/route.js +1 -1
  74. package/app/.next/server/app/api/models/custom/route.js +1 -1
  75. package/app/.next/server/app/api/models/disabled/route.js +1 -1
  76. package/app/.next/server/app/api/models/route.js +1 -1
  77. package/app/.next/server/app/api/models/test/route.js +1 -1
  78. package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
  79. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
  80. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  81. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  82. package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  83. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  84. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  85. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  86. package/app/.next/server/app/api/pricing/route.js +1 -1
  87. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  88. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  89. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  90. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  91. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  92. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  93. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  94. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  95. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  96. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  97. package/app/.next/server/app/api/providers/client/route.js +1 -1
  98. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  99. package/app/.next/server/app/api/providers/route.js +1 -1
  100. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  101. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  102. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  103. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  104. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  105. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  106. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  107. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  108. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  109. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  110. package/app/.next/server/app/api/settings/database/route.js +1 -1
  111. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  112. package/app/.next/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  113. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  114. package/app/.next/server/app/api/settings/route.js +1 -1
  115. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  116. package/app/.next/server/app/api/translator/console-logs/stream/route.js +1 -1
  117. package/app/.next/server/app/api/translator/send/route.js +1 -1
  118. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  119. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  120. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  121. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  122. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  123. package/app/.next/server/app/api/usage/api-keys/route.js +1 -1
  124. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  125. package/app/.next/server/app/api/usage/history/route.js +1 -1
  126. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  127. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  128. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  129. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  130. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  131. package/app/.next/server/app/api/usage/stream/route.js +2 -2
  132. package/app/.next/server/app/api/users/[id]/route.js +1 -1
  133. package/app/.next/server/app/api/users/route.js +1 -1
  134. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  135. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  136. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  137. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  139. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  140. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  141. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  142. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  143. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  144. package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
  145. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  146. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  147. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  148. package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
  149. package/app/.next/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  150. package/app/.next/server/app/api/v1/models/route.js +1 -1
  151. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  152. package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
  153. package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  154. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  155. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  156. package/app/.next/server/app/api/v1/route.js +1 -1
  157. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  158. package/app/.next/server/app/api/v1/search/route.js +1 -1
  159. package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  160. package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
  161. package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  162. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  163. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  164. package/app/.next/server/app/api/version/route.js +1 -1
  165. package/app/.next/server/app/api/version/update/route.js +1 -1
  166. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/callback.html +1 -1
  168. package/app/.next/server/app/callback.rsc +4 -4
  169. package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
  170. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  171. package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
  172. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  173. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  174. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  175. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  177. package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
  178. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  179. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  180. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  181. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  182. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  183. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  184. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  185. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  186. package/app/.next/server/app/index.html +1 -1
  187. package/app/.next/server/app/index.rsc +4 -4
  188. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  189. package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
  190. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  191. package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
  192. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  193. package/app/.next/server/app/landing/page.js +1 -1
  194. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  195. package/app/.next/server/app/landing.html +1 -1
  196. package/app/.next/server/app/landing.rsc +5 -5
  197. package/app/.next/server/app/landing.segments/_full.segment.rsc +5 -5
  198. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  199. package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
  200. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  201. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  202. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  203. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/login.html +1 -1
  205. package/app/.next/server/app/login.rsc +5 -5
  206. package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
  207. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  208. package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
  209. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  210. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  211. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  212. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  213. package/app/.next/server/app-paths-manifest.json +2 -2
  214. package/app/.next/server/chunks/1679.js +1 -0
  215. package/app/.next/server/chunks/2506.js +2 -2
  216. package/app/.next/server/chunks/2574.js +1 -0
  217. package/app/.next/server/chunks/3110.js +14 -0
  218. package/app/.next/server/chunks/3605.js +1 -0
  219. package/app/.next/server/chunks/3855.js +1 -1
  220. package/app/.next/server/chunks/4122.js +1 -1
  221. package/app/.next/server/chunks/4664.js +1 -1
  222. package/app/.next/server/chunks/4989.js +2 -2
  223. package/app/.next/server/chunks/5627.js +2 -2
  224. package/app/.next/server/chunks/5681.js +1 -1
  225. package/app/.next/server/chunks/6108.js +1 -1
  226. package/app/.next/server/chunks/6182.js +4 -3
  227. package/app/.next/server/chunks/6774.js +1 -1
  228. package/app/.next/server/chunks/7341.js +1 -1
  229. package/app/.next/server/chunks/7595.js +1 -1
  230. package/app/.next/server/chunks/7937.js +7 -16
  231. package/app/.next/server/chunks/8590.js +1 -1
  232. package/app/.next/server/chunks/8760.js +1 -1
  233. package/app/.next/server/chunks/8895.js +1 -1
  234. package/app/.next/server/chunks/9489.js +1 -1
  235. package/app/.next/server/chunks/9547.js +4 -14
  236. package/app/.next/server/chunks/9609.js +1 -1
  237. package/app/.next/server/chunks/9718.js +1 -1
  238. package/app/.next/server/middleware-build-manifest.js +1 -1
  239. package/app/.next/server/middleware.js +1 -1
  240. package/app/.next/server/pages/404.html +1 -1
  241. package/app/.next/server/pages/500.html +1 -1
  242. package/app/.next/static/chunks/1321-e48fd14f5bef6d7a.js +1 -0
  243. package/app/.next/static/chunks/2336-36a1f30358e691c6.js +28 -0
  244. package/app/.next/static/chunks/app/(dashboard)/dashboard/admin/users/page-adc5d5e8da3a0761.js +1 -0
  245. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-eb5193b550d3e8de.js → page-c77fedcd9ba7bcac.js} +14 -14
  246. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-ceb9bffbc34711bc.js +1 -0
  247. package/app/.next/static/chunks/app/landing/{page-c7ae6a40e2a2228d.js → page-4644660041715534.js} +1 -1
  248. package/app/.next/static/css/d726e4e5a2cfbfd1.css +1 -0
  249. package/app/package.json +1 -1
  250. package/app/public/providers/commandcode.png +0 -0
  251. package/app/src/mitm/cert/install.js +13 -8
  252. package/app/src/mitm/cert/rootCA.js +20 -5
  253. package/app/src/mitm/config.js +12 -1
  254. package/app/src/mitm/dns/dnsConfig.js +2 -2
  255. package/app/src/mitm/handlers/openrouter.js +82 -3
  256. package/app/src/mitm/manager.js +2 -2
  257. package/package.json +1 -1
  258. package/src/cli/api/client.js +2 -2
  259. package/src/cli/terminalUI.js +2 -2
  260. package/src/cli/tray/autostart.js +25 -24
  261. package/src/cli/tray/tray.js +3 -3
  262. package/app/.next/server/chunks/2343.js +0 -1
  263. package/app/.next/static/chunks/1321-c90a1f54884edb62.js +0 -1
  264. package/app/.next/static/chunks/2336-4ac589bb36571207.js +0 -38
  265. package/app/.next/static/chunks/app/(dashboard)/dashboard/admin/users/page-15091159f6d63fb7.js +0 -1
  266. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-6289612ce5f7c181.js +0 -1
  267. package/app/.next/static/css/81b7abc9204a4458.css +0 -1
  268. /package/app/.next/static/{s_c_Y_7O0OBMovBwrwXBp → SQn85l_D0P4BshNJQkGiZ}/_buildManifest.js +0 -0
  269. /package/app/.next/static/{s_c_Y_7O0OBMovBwrwXBp → SQn85l_D0P4BshNJQkGiZ}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=3855,exports.ids=[3855],exports.modules={3179:(a,b,c)=>{c.d(b,{Al:()=>A,Dd:()=>y,es:()=>E,fn:()=>F,nN:()=>H,ss:()=>G});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(55591),i=c.n(h),j=c(21820),k=c.n(j),l=c(79646),m=c(85567),n=c(49120);let o=g().join(n.n,"bin"),p="cloudflared",q="win32"===k().platform(),r=q?`${p}.exe`:p,s=g().join(o,r),t="http2",u=new Set(["http2","quic","auto"]),v={darwin:{x64:"cloudflared-darwin-amd64.tgz",arm64:"cloudflared-darwin-arm64.tgz"},win32:{x64:"cloudflared-windows-amd64.exe",ia32:"cloudflared-windows-386.exe",arm64:"cloudflared-windows-386.exe"},linux:{x64:"cloudflared-linux-amd64",arm64:"cloudflared-linux-arm64"}},w={darwin:"cloudflared-darwin-amd64.tgz",win32:"cloudflared-windows-386.exe",linux:"cloudflared-linux-amd64"},x={downloading:!1,progress:0};function y(){return{downloading:x.downloading,progress:x.progress}}let z=null;async function A(){return z||(z=B().finally(()=>{z=null}))}async function B(){e().existsSync(o)||e().mkdirSync(o,{recursive:!0});let a=`${s}.tmp`;if(e().existsSync(a))try{e().unlinkSync(a)}catch{}if(e().existsSync(s))if(function(a){try{if(e().statSync(a).size<1048576)return!1;let b=e().openSync(a,"r"),c=Buffer.alloc(4);e().readSync(b,c,0,4,0),e().closeSync(b);let d=c.toString("hex");if(q)return d.startsWith("4d5a");if("darwin"===k().platform())return d.startsWith("cffaedfe")||d.startsWith("cefaedfe");return d.startsWith("7f454c46")}catch{return!1}}(s))return q||e().chmodSync(s,"755"),s;else console.log("[cloudflared] Invalid binary detected, re-downloading..."),e().unlinkSync(s);let b=function(){let a=k().platform(),b=k().arch(),c=v[a];if(!c)throw Error(`Unsupported platform: ${a}`);let d=c[b]||w[a];return`https://github.com/cloudflare/cloudflared/releases/latest/download/${d}`}(),c=b.endsWith(".tgz"),d=c?g().join(o,"cloudflared.tgz.tmp"):a;return await function a(b,c){return new Promise((d,f)=>{let g=e().createWriteStream(c);i().get(b,b=>{if([301,302,303,307,308].includes(b.statusCode)){g.close(),e().unlinkSync(c),a(b.headers.location,c).then(d).catch(f);return}if(200!==b.statusCode){g.close(),e().unlinkSync(c),f(Error(`Download failed with status ${b.statusCode}`));return}let h=parseInt(b.headers["content-length"],10)||0,i=0;x.downloading=!0,x.progress=0,b.on("data",a=>{i+=a.length,h>0&&(x.progress=Math.round(i/h*100))}),b.pipe(g),g.on("finish",()=>{x.downloading=!1,x.progress=100,g.close(()=>d(c))}),g.on("error",a=>{x.downloading=!1,x.progress=0,g.close(),e().unlinkSync(c),f(a)})}).on("error",a=>{x.downloading=!1,x.progress=0,g.close(),e().existsSync(c)&&e().unlinkSync(c),f(a)})})}(b,d),c?((0,l.execSync)(`tar -xzf "${d}" -C "${o}"`,{stdio:"pipe",windowsHide:!0}),e().unlinkSync(d)):e().renameSync(d,s),q||e().chmodSync(s,"755"),s}let C=null,D=null;function E(a){D=a}async function F(a,b){let c=await A(),d=e().mkdtempSync(g().join(k().tmpdir(),"cloudflared-quick-")),f=g().join(d,"config.yml");e().writeFileSync(f,"# quick-tunnel config placeholder\n","utf8");let h=!1,i=()=>{if(!h){h=!0;try{e().rmSync(d,{recursive:!0,force:!0})}catch(a){}}},j=String(process.env.TUNNEL_TRANSPORT_PROTOCOL||process.env.CLOUDFLARED_PROTOCOL||t).trim().toLowerCase(),n=u.has(j)?j:t,o=(0,l.spawn)(c,["tunnel","--url",`http://127.0.0.1:${a}`,"--config",f,"--no-autoupdate"],{detached:!1,windowsHide:!0,env:{...process.env,TUNNEL_TRANSPORT_PROTOCOL:n},stdio:["ignore","pipe","pipe"]});return C=o,(0,m.xS)(o.pid),new Promise((a,c)=>{let d=!1,e=setTimeout(()=>{d||(d=!0,i(),c(Error("Quick tunnel timed out")))},9e4),f=null,g=c=>{let g=function(a){let b=[];for(let c of a.matchAll(/https:\/\/([a-z0-9-]+)\.trycloudflare\.com/gi)){let a=c[1];"api"!==a&&b.push(`https://${a}.trycloudflare.com`)}return b.length?b[b.length-1]:null}(c.toString());if(g){if(!d){d=!0,f=g,clearTimeout(e),i(),a({child:o,tunnelUrl:g});return}g!==f&&(f=g,b&&b(g))}};o.stdout.on("data",g),o.stderr.on("data",g),o.on("error",a=>{d||(d=!0,clearTimeout(e),i(),c(a))}),o.on("exit",(a,b)=>{if(C=null,(0,m.r4)(),!d){d=!0,clearTimeout(e),i(),1===a?c(Error(`cloudflared exited with code ${a}. This often means: (1) the tunnel token is invalid or expired, (2) network connectivity issues, or (3) cloudflared cannot reach the local server.`)):2===a?c(Error(`cloudflared exited with code ${a}. Check that arguments are correct.`)):c(Error(`cloudflared exited with code ${a}`));return}D&&D(),i()})})}function G(a){if(C){try{C.kill()}catch(a){}C=null}let b=(0,m.Cr)();if(b){try{process.kill(b)}catch(a){}(0,m.r4)()}if(a)try{if(q){let b=`Get-CimInstance Win32_Process -Filter \\"Name='cloudflared.exe'\\" | Where-Object { $_.CommandLine -match ':${a}(\\D|$)' } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force }`;(0,l.execSync)(`powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command "${b}"`,{stdio:"ignore",windowsHide:!0})}else(0,l.execSync)(`pkill -f "cloudflared.*:${a}([^0-9]|$)" 2>/dev/null || true`,{stdio:"ignore",windowsHide:!0})}catch(a){}}function H(){let a=(0,m.Cr)();if(!a)return!1;try{return process.kill(a,0),!0}catch(a){return!1}}},47764:(a,b,c)=>{c.d(b,{DA:()=>h,Lh:()=>f,Ux:()=>d,cw:()=>g,rI:()=>i,t1:()=>e});let d={intervalMs:2e3,timeoutMs:18e4,fetchTimeoutMs:5e3,dnsTimeoutMs:2e3},e={host:"1.1.1.1",port:443,timeoutMs:3e3},f=6e4,g=2500,h=6e4,i=5e3},49204:(a,b,c)=>{c.d(b,{$c:()=>l,tm:()=>m,u7:()=>j});var d=c(91645),e=c.n(d),f=c(14985),g=c.n(f),h=c(47764);let i=new(g()).promises.Resolver;function j(){return new Promise(a=>{let b=new(e()).Socket,c=!1,d=d=>{if(!c){c=!0;try{b.destroy()}catch{}a(d)}};b.setTimeout(h.t1.timeoutMs),b.once("connect",()=>d(!0)),b.once("timeout",()=>d(!1)),b.once("error",()=>d(!1));try{b.connect(h.t1.port,h.t1.host)}catch{d(!1)}})}async function k(a,b){try{return await Promise.race([i.resolve4(a),new Promise((a,c)=>setTimeout(()=>c(Error("dns timeout")),b))]),!0}catch{return!1}}async function l(a){let b;if(!a)return!1;try{b=new URL(a).hostname}catch{return!1}if(!await k(b,h.Ux.dnsTimeoutMs))return!1;try{return(await fetch(`${a}/api/health`,{signal:AbortSignal.timeout(h.Ux.fetchTimeoutMs)})).ok}catch{return!1}}async function m(a,b={cancelled:!1}){let c=Date.now();for(;Date.now()-c<h.Ux.timeoutMs;){if(b.cancelled)throw Error("cancelled");if(await l(a))return!0;await new Promise(a=>setTimeout(a,h.Ux.intervalMs))}throw Error(`Health check timeout after ${h.Ux.timeoutMs}ms`)}i.setServers(["1.1.1.1","1.0.0.1","8.8.8.8"])},53855:(a,b,c)=>{c.d(b,{H4:()=>x,Jv:()=>u,Qn:()=>o,Rg:()=>t,cb:()=>s,mh:()=>v,oN:()=>p,rH:()=>w});var d=c(55511),e=c.n(d),f=c(85567),g=c(3179),h=c(12506),i=c(89718),j=c(96182),k=c(49204);(0,j.initDbHooks)(i.getSettings,i.Xx);let l=process.env.TUNNEL_WORKER_URL||"https://9router.com",m={cancelToken:{cancelled:!1},spawnInProgress:!1,lastRestartAt:0,activeLocalPort:null},n={cancelToken:{cancelled:!1},spawnInProgress:!1,lastRestartAt:0,activeLocalPort:null};function o(){return m}function p(){return n}async function q(a,b){await fetch(`${l}/api/tunnel/register`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({shortId:a,tunnelUrl:b})})}function r(a,b){if(a.cancelled)throw Error(`${b} cancelled`)}async function s(a=20128){m.cancelToken={cancelled:!1},m.activeLocalPort=a,m.spawnInProgress=!0;let b=m.cancelToken;try{if((0,g.nN)()){let a=(0,f.C7)();if(a?.tunnelUrl&&await (0,k.$c)(a.tunnelUrl)){let b=`https://r${a.shortId}.9router.com`;return{success:!0,tunnelUrl:a.tunnelUrl,shortId:a.shortId,publicUrl:b,alreadyRunning:!0}}}(0,g.ss)(a),r(b,"tunnel");let d=function(){try{let{machineIdSync:a}=c(19713),b=a();return e().createHash("sha256").update(b+"9router-tunnel-salt").digest("hex").substring(0,16)}catch(a){return e().randomUUID().replace(/-/g,"").substring(0,16)}}(),h=(0,f.C7)(),j=h?.shortId||(0,f.jd)(),l=async a=>{b.cancelled||(await q(j,a),(0,f.LZ)({shortId:j,machineId:d,tunnelUrl:a}),await (0,i.Xx)({tunnelEnabled:!0,tunnelUrl:a}))},{tunnelUrl:m}=await (0,g.fn)(a,l);r(b,"tunnel");let n=`https://r${j}.9router.com`;return await q(j,m),(0,f.LZ)({shortId:j,machineId:d,tunnelUrl:m}),await (0,i.Xx)({tunnelEnabled:!0,tunnelUrl:m}),await (0,k.tm)(n,b),{success:!0,tunnelUrl:m,shortId:j,publicUrl:n}}finally{m.spawnInProgress=!1}}async function t(){m.cancelToken.cancelled=!0,(0,g.es)(null),(0,g.ss)(m.activeLocalPort);let a=(0,f.C7)();return a&&(0,f.LZ)({shortId:a.shortId,machineId:a.machineId,tunnelUrl:null}),await (0,i.Xx)({tunnelEnabled:!1,tunnelUrl:""}),{success:!0}}async function u(){let a=(0,f.C7)(),b=(0,g.nN)(),c=await (0,i.getSettings)(),d=a?.shortId||"",e=d?`https://r${d}.9router.com`:"";return{enabled:!0===c.tunnelEnabled&&b,settingsEnabled:!0===c.tunnelEnabled,tunnelUrl:a?.tunnelUrl||"",shortId:d,publicUrl:e,running:b}}async function v(a=20128){n.cancelToken={cancelled:!1},n.activeLocalPort=a,n.spawnInProgress=!0;let b=n.cancelToken;try{let c=(0,j.getCachedPassword)()||await (0,j.loadEncryptedPassword)()||"";await (0,h.OZ)(c),r(b,"tailscale");let d=(0,f.C7)(),e=d?.shortId||(0,f.jd)();if(!(0,h.a$)()){let a=await (0,h.c$)(e);if(a.authUrl)return{success:!1,needsLogin:!0,authUrl:a.authUrl}}r(b,"tailscale"),(0,h.PZ)();let g=await (0,h.LC)(a);if(r(b,"tailscale"),g.funnelNotEnabled)return{success:!1,funnelNotEnabled:!0,enableUrl:g.enableUrl};if(!(0,h.a$)()||!(0,h.Kp)())return(0,h.PZ)(),{success:!1,error:"Tailscale not connected. Device may have been removed. Please re-login."};return await (0,i.Xx)({tailscaleEnabled:!0,tailscaleUrl:g.tunnelUrl}),await (0,k.tm)(g.tunnelUrl,b),{success:!0,tunnelUrl:g.tunnelUrl}}finally{n.spawnInProgress=!1}}async function w(){return n.cancelToken.cancelled=!0,(0,h.PZ)(),await (0,i.Xx)({tailscaleEnabled:!1,tailscaleUrl:""}),{success:!0}}async function x(){let a=await (0,i.getSettings)(),b=(0,h.Kp)();return{enabled:!0===a.tailscaleEnabled&&b,settingsEnabled:!0===a.tailscaleEnabled,tunnelUrl:a.tailscaleUrl||"",running:b}}}};
1
+ "use strict";exports.id=3855,exports.ids=[3855],exports.modules={3179:(a,b,c)=>{c.d(b,{Al:()=>A,Dd:()=>y,es:()=>E,fn:()=>F,nN:()=>H,ss:()=>G});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(55591),i=c.n(h),j=c(21820),k=c.n(j),l=c(79646),m=c(85567),n=c(49120);let o=g().join(n.nJ,"bin"),p="cloudflared",q="win32"===k().platform(),r=q?`${p}.exe`:p,s=g().join(o,r),t="http2",u=new Set(["http2","quic","auto"]),v={darwin:{x64:"cloudflared-darwin-amd64.tgz",arm64:"cloudflared-darwin-arm64.tgz"},win32:{x64:"cloudflared-windows-amd64.exe",ia32:"cloudflared-windows-386.exe",arm64:"cloudflared-windows-386.exe"},linux:{x64:"cloudflared-linux-amd64",arm64:"cloudflared-linux-arm64"}},w={darwin:"cloudflared-darwin-amd64.tgz",win32:"cloudflared-windows-386.exe",linux:"cloudflared-linux-amd64"},x={downloading:!1,progress:0};function y(){return{downloading:x.downloading,progress:x.progress}}let z=null;async function A(){return z||(z=B().finally(()=>{z=null}))}async function B(){e().existsSync(o)||e().mkdirSync(o,{recursive:!0});let a=`${s}.tmp`;if(e().existsSync(a))try{e().unlinkSync(a)}catch{}if(e().existsSync(s))if(function(a){try{if(e().statSync(a).size<1048576)return!1;let b=e().openSync(a,"r"),c=Buffer.alloc(4);e().readSync(b,c,0,4,0),e().closeSync(b);let d=c.toString("hex");if(q)return d.startsWith("4d5a");if("darwin"===k().platform())return d.startsWith("cffaedfe")||d.startsWith("cefaedfe");return d.startsWith("7f454c46")}catch{return!1}}(s))return q||e().chmodSync(s,"755"),s;else console.log("[cloudflared] Invalid binary detected, re-downloading..."),e().unlinkSync(s);let b=function(){let a=k().platform(),b=k().arch(),c=v[a];if(!c)throw Error(`Unsupported platform: ${a}`);let d=c[b]||w[a];return`https://github.com/cloudflare/cloudflared/releases/latest/download/${d}`}(),c=b.endsWith(".tgz"),d=c?g().join(o,"cloudflared.tgz.tmp"):a;return await function a(b,c){return new Promise((d,f)=>{let g=e().createWriteStream(c);i().get(b,b=>{if([301,302,303,307,308].includes(b.statusCode)){g.close(),e().unlinkSync(c),a(b.headers.location,c).then(d).catch(f);return}if(200!==b.statusCode){g.close(),e().unlinkSync(c),f(Error(`Download failed with status ${b.statusCode}`));return}let h=parseInt(b.headers["content-length"],10)||0,i=0;x.downloading=!0,x.progress=0,b.on("data",a=>{i+=a.length,h>0&&(x.progress=Math.round(i/h*100))}),b.pipe(g),g.on("finish",()=>{x.downloading=!1,x.progress=100,g.close(()=>d(c))}),g.on("error",a=>{x.downloading=!1,x.progress=0,g.close(),e().unlinkSync(c),f(a)})}).on("error",a=>{x.downloading=!1,x.progress=0,g.close(),e().existsSync(c)&&e().unlinkSync(c),f(a)})})}(b,d),c?((0,l.execSync)(`tar -xzf "${d}" -C "${o}"`,{stdio:"pipe",windowsHide:!0}),e().unlinkSync(d)):e().renameSync(d,s),q||e().chmodSync(s,"755"),s}let C=null,D=null;function E(a){D=a}async function F(a,b){let c=await A(),d=e().mkdtempSync(g().join(k().tmpdir(),"cloudflared-quick-")),f=g().join(d,"config.yml");e().writeFileSync(f,"# quick-tunnel config placeholder\n","utf8");let h=!1,i=()=>{if(!h){h=!0;try{e().rmSync(d,{recursive:!0,force:!0})}catch(a){}}},j=String(process.env.TUNNEL_TRANSPORT_PROTOCOL||process.env.CLOUDFLARED_PROTOCOL||t).trim().toLowerCase(),n=u.has(j)?j:t,o=(0,l.spawn)(c,["tunnel","--url",`http://127.0.0.1:${a}`,"--config",f,"--no-autoupdate"],{detached:!1,windowsHide:!0,env:{...process.env,TUNNEL_TRANSPORT_PROTOCOL:n},stdio:["ignore","pipe","pipe"]});return C=o,(0,m.xS)(o.pid),new Promise((a,c)=>{let d=!1,e=setTimeout(()=>{d||(d=!0,i(),c(Error("Quick tunnel timed out")))},9e4),f=null,g=c=>{let g=function(a){let b=[];for(let c of a.matchAll(/https:\/\/([a-z0-9-]+)\.trycloudflare\.com/gi)){let a=c[1];"api"!==a&&b.push(`https://${a}.trycloudflare.com`)}return b.length?b[b.length-1]:null}(c.toString());if(g){if(!d){d=!0,f=g,clearTimeout(e),i(),a({child:o,tunnelUrl:g});return}g!==f&&(f=g,b&&b(g))}};o.stdout.on("data",g),o.stderr.on("data",g),o.on("error",a=>{d||(d=!0,clearTimeout(e),i(),c(a))}),o.on("exit",(a,b)=>{if(C=null,(0,m.r4)(),!d){d=!0,clearTimeout(e),i(),1===a?c(Error(`cloudflared exited with code ${a}. This often means: (1) the tunnel token is invalid or expired, (2) network connectivity issues, or (3) cloudflared cannot reach the local server.`)):2===a?c(Error(`cloudflared exited with code ${a}. Check that arguments are correct.`)):c(Error(`cloudflared exited with code ${a}`));return}D&&D(),i()})})}function G(a){if(C){try{C.kill()}catch(a){}C=null}let b=(0,m.Cr)();if(b){try{process.kill(b)}catch(a){}(0,m.r4)()}if(a)try{if(q){let b=`Get-CimInstance Win32_Process -Filter \\"Name='cloudflared.exe'\\" | Where-Object { $_.CommandLine -match ':${a}(\\D|$)' } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force }`;(0,l.execSync)(`powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command "${b}"`,{stdio:"ignore",windowsHide:!0})}else(0,l.execSync)(`pkill -f "cloudflared.*:${a}([^0-9]|$)" 2>/dev/null || true`,{stdio:"ignore",windowsHide:!0})}catch(a){}}function H(){let a=(0,m.Cr)();if(!a)return!1;try{return process.kill(a,0),!0}catch(a){return!1}}},47764:(a,b,c)=>{c.d(b,{DA:()=>h,Lh:()=>f,Ux:()=>d,cw:()=>g,rI:()=>i,t1:()=>e});let d={intervalMs:2e3,timeoutMs:18e4,fetchTimeoutMs:5e3,dnsTimeoutMs:2e3},e={host:"1.1.1.1",port:443,timeoutMs:3e3},f=6e4,g=2500,h=6e4,i=5e3},49204:(a,b,c)=>{c.d(b,{$c:()=>l,tm:()=>m,u7:()=>j});var d=c(91645),e=c.n(d),f=c(14985),g=c.n(f),h=c(47764);let i=new(g()).promises.Resolver;function j(){return new Promise(a=>{let b=new(e()).Socket,c=!1,d=d=>{if(!c){c=!0;try{b.destroy()}catch{}a(d)}};b.setTimeout(h.t1.timeoutMs),b.once("connect",()=>d(!0)),b.once("timeout",()=>d(!1)),b.once("error",()=>d(!1));try{b.connect(h.t1.port,h.t1.host)}catch{d(!1)}})}async function k(a,b){try{return await Promise.race([i.resolve4(a),new Promise((a,c)=>setTimeout(()=>c(Error("dns timeout")),b))]),!0}catch{return!1}}async function l(a){let b;if(!a)return!1;try{b=new URL(a).hostname}catch{return!1}if(!await k(b,h.Ux.dnsTimeoutMs))return!1;try{return(await fetch(`${a}/api/health`,{signal:AbortSignal.timeout(h.Ux.fetchTimeoutMs)})).ok}catch{return!1}}async function m(a,b={cancelled:!1}){let c=Date.now();for(;Date.now()-c<h.Ux.timeoutMs;){if(b.cancelled)throw Error("cancelled");if(await l(a))return!0;await new Promise(a=>setTimeout(a,h.Ux.intervalMs))}throw Error(`Health check timeout after ${h.Ux.timeoutMs}ms`)}i.setServers(["1.1.1.1","1.0.0.1","8.8.8.8"])},53855:(a,b,c)=>{c.d(b,{H4:()=>x,Jv:()=>u,Qn:()=>o,Rg:()=>t,cb:()=>s,mh:()=>v,oN:()=>p,rH:()=>w});var d=c(55511),e=c.n(d),f=c(85567),g=c(3179),h=c(12506),i=c(89718),j=c(96182),k=c(49204);(0,j.initDbHooks)(i.getSettings,i.Xx);let l=process.env.TUNNEL_WORKER_URL||"https://9router.com",m={cancelToken:{cancelled:!1},spawnInProgress:!1,lastRestartAt:0,activeLocalPort:null},n={cancelToken:{cancelled:!1},spawnInProgress:!1,lastRestartAt:0,activeLocalPort:null};function o(){return m}function p(){return n}async function q(a,b){await fetch(`${l}/api/tunnel/register`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({shortId:a,tunnelUrl:b})})}function r(a,b){if(a.cancelled)throw Error(`${b} cancelled`)}async function s(a=20128){m.cancelToken={cancelled:!1},m.activeLocalPort=a,m.spawnInProgress=!0;let b=m.cancelToken;try{if((0,g.nN)()){let a=(0,f.C7)();if(a?.tunnelUrl&&await (0,k.$c)(a.tunnelUrl)){let b=`https://r${a.shortId}.9router.com`;return{success:!0,tunnelUrl:a.tunnelUrl,shortId:a.shortId,publicUrl:b,alreadyRunning:!0}}}(0,g.ss)(a),r(b,"tunnel");let d=function(){try{let{machineIdSync:a}=c(19713),b=a();return e().createHash("sha256").update(b+"9router-tunnel-salt").digest("hex").substring(0,16)}catch(a){return e().randomUUID().replace(/-/g,"").substring(0,16)}}(),h=(0,f.C7)(),j=h?.shortId||(0,f.jd)(),l=async a=>{b.cancelled||(await q(j,a),(0,f.LZ)({shortId:j,machineId:d,tunnelUrl:a}),await (0,i.Xx)({tunnelEnabled:!0,tunnelUrl:a}))},{tunnelUrl:m}=await (0,g.fn)(a,l);r(b,"tunnel");let n=`https://r${j}.9router.com`;return await q(j,m),(0,f.LZ)({shortId:j,machineId:d,tunnelUrl:m}),await (0,i.Xx)({tunnelEnabled:!0,tunnelUrl:m}),await (0,k.tm)(n,b),{success:!0,tunnelUrl:m,shortId:j,publicUrl:n}}finally{m.spawnInProgress=!1}}async function t(){m.cancelToken.cancelled=!0,(0,g.es)(null),(0,g.ss)(m.activeLocalPort);let a=(0,f.C7)();return a&&(0,f.LZ)({shortId:a.shortId,machineId:a.machineId,tunnelUrl:null}),await (0,i.Xx)({tunnelEnabled:!1,tunnelUrl:""}),{success:!0}}async function u(){let a=(0,f.C7)(),b=(0,g.nN)(),c=await (0,i.getSettings)(),d=a?.shortId||"",e=d?`https://r${d}.9router.com`:"";return{enabled:!0===c.tunnelEnabled&&b,settingsEnabled:!0===c.tunnelEnabled,tunnelUrl:a?.tunnelUrl||"",shortId:d,publicUrl:e,running:b}}async function v(a=20128){n.cancelToken={cancelled:!1},n.activeLocalPort=a,n.spawnInProgress=!0;let b=n.cancelToken;try{let c=(0,j.getCachedPassword)()||await (0,j.loadEncryptedPassword)()||"";await (0,h.OZ)(c),r(b,"tailscale");let d=(0,f.C7)(),e=d?.shortId||(0,f.jd)();if(!(0,h.a$)()){let a=await (0,h.c$)(e);if(a.authUrl)return{success:!1,needsLogin:!0,authUrl:a.authUrl}}r(b,"tailscale"),(0,h.PZ)();let g=await (0,h.LC)(a);if(r(b,"tailscale"),g.funnelNotEnabled)return{success:!1,funnelNotEnabled:!0,enableUrl:g.enableUrl};if(!(0,h.a$)()||!(0,h.Kp)())return(0,h.PZ)(),{success:!1,error:"Tailscale not connected. Device may have been removed. Please re-login."};return await (0,i.Xx)({tailscaleEnabled:!0,tailscaleUrl:g.tunnelUrl}),await (0,k.tm)(g.tunnelUrl,b),{success:!0,tunnelUrl:g.tunnelUrl}}finally{n.spawnInProgress=!1}}async function w(){return n.cancelToken.cancelled=!0,(0,h.PZ)(),await (0,i.Xx)({tailscaleEnabled:!1,tailscaleUrl:""}),{success:!0}}async function x(){let a=await (0,i.getSettings)(),b=(0,h.Kp)();return{enabled:!0===a.tailscaleEnabled&&b,settingsEnabled:!0===a.tailscaleEnabled,tunnelUrl:a.tailscaleUrl||"",running:b}}}};