@yina-npm/openrouterx 0.4.23 → 0.4.25

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 (274) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +1 -1
  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.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/user/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/_global-error.html +1 -1
  34. package/app/.next/server/app/_global-error.rsc +1 -1
  35. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  36. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  37. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  38. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  39. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  40. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  41. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/_not-found.html +1 -1
  43. package/app/.next/server/app/_not-found.rsc +4 -4
  44. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  45. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  46. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  47. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  48. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  49. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  50. package/app/.next/server/app/api/auth/login/route.js +1 -1
  51. package/app/.next/server/app/api/auth/me/route.js +1 -1
  52. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  53. package/app/.next/server/app/api/cli-tools/antigravity-mitm/test/route.js +1 -1
  54. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  55. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  56. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  57. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  58. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
  59. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  60. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  61. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  62. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  63. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  64. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  65. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  66. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  67. package/app/.next/server/app/api/combos/route.js +1 -1
  68. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  69. package/app/.next/server/app/api/keys/route.js +1 -1
  70. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  71. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  72. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  73. package/app/.next/server/app/api/models/alias/route.js +1 -1
  74. package/app/.next/server/app/api/models/availability/route.js +1 -1
  75. package/app/.next/server/app/api/models/custom/route.js +1 -1
  76. package/app/.next/server/app/api/models/disabled/route.js +1 -1
  77. package/app/.next/server/app/api/models/route.js +1 -1
  78. package/app/.next/server/app/api/models/test/route.js +1 -1
  79. package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
  80. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
  81. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  82. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  83. package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  84. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  85. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  86. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  87. package/app/.next/server/app/api/pricing/route.js +1 -1
  88. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  89. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  90. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  91. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  92. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  93. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  94. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  95. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  96. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  97. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  98. package/app/.next/server/app/api/providers/client/route.js +1 -1
  99. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  100. package/app/.next/server/app/api/providers/route.js +1 -1
  101. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  102. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  103. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  104. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  105. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  106. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  107. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  108. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  109. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  110. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  111. package/app/.next/server/app/api/settings/database/route.js +1 -1
  112. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  113. package/app/.next/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  114. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  115. package/app/.next/server/app/api/settings/route.js +1 -1
  116. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  117. package/app/.next/server/app/api/translator/console-logs/stream/route.js +1 -1
  118. package/app/.next/server/app/api/translator/send/route.js +1 -1
  119. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  120. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  121. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  122. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  123. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  124. package/app/.next/server/app/api/usage/api-keys/route.js +1 -1
  125. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  126. package/app/.next/server/app/api/usage/history/route.js +1 -1
  127. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  128. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  129. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  130. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  131. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  132. package/app/.next/server/app/api/usage/stream/route.js +2 -2
  133. package/app/.next/server/app/api/users/[id]/route.js +1 -1
  134. package/app/.next/server/app/api/users/route.js +1 -1
  135. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  136. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  137. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  138. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  139. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  140. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  141. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  142. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  143. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  144. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  145. package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
  146. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  147. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  148. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  149. package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
  150. package/app/.next/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  151. package/app/.next/server/app/api/v1/models/route.js +1 -1
  152. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  153. package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
  154. package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  155. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  156. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  157. package/app/.next/server/app/api/v1/route.js +1 -1
  158. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  159. package/app/.next/server/app/api/v1/search/route.js +1 -1
  160. package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  161. package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
  162. package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  163. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  164. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  165. package/app/.next/server/app/api/version/route.js +1 -1
  166. package/app/.next/server/app/api/version/update/route.js +1 -1
  167. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/callback.html +1 -1
  169. package/app/.next/server/app/callback.rsc +4 -4
  170. package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
  171. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  172. package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
  173. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  174. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  175. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  176. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  178. package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
  179. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  180. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  181. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  182. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  183. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  184. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  185. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  186. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  187. package/app/.next/server/app/index.html +1 -1
  188. package/app/.next/server/app/index.rsc +4 -4
  189. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  190. package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
  191. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  192. package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
  193. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  194. package/app/.next/server/app/landing/page.js +1 -1
  195. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  196. package/app/.next/server/app/landing.html +1 -1
  197. package/app/.next/server/app/landing.rsc +5 -5
  198. package/app/.next/server/app/landing.segments/_full.segment.rsc +5 -5
  199. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  200. package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
  201. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  202. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  203. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  204. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  205. package/app/.next/server/app/login.html +1 -1
  206. package/app/.next/server/app/login.rsc +5 -5
  207. package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
  208. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  209. package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
  210. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  211. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  212. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  213. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  214. package/app/.next/server/app-paths-manifest.json +1 -1
  215. package/app/.next/server/chunks/1679.js +1 -0
  216. package/app/.next/server/chunks/2506.js +2 -2
  217. package/app/.next/server/chunks/2549.js +1 -1
  218. package/app/.next/server/chunks/2574.js +1 -0
  219. package/app/.next/server/chunks/3110.js +14 -0
  220. package/app/.next/server/chunks/3605.js +1 -0
  221. package/app/.next/server/chunks/3855.js +1 -1
  222. package/app/.next/server/chunks/4122.js +1 -1
  223. package/app/.next/server/chunks/4664.js +1 -1
  224. package/app/.next/server/chunks/4989.js +2 -2
  225. package/app/.next/server/chunks/5627.js +2 -2
  226. package/app/.next/server/chunks/5681.js +1 -1
  227. package/app/.next/server/chunks/6108.js +1 -1
  228. package/app/.next/server/chunks/6182.js +4 -3
  229. package/app/.next/server/chunks/6774.js +1 -1
  230. package/app/.next/server/chunks/7341.js +1 -1
  231. package/app/.next/server/chunks/7595.js +1 -1
  232. package/app/.next/server/chunks/7828.js +1 -1
  233. package/app/.next/server/chunks/7937.js +7 -16
  234. package/app/.next/server/chunks/8590.js +1 -1
  235. package/app/.next/server/chunks/8760.js +1 -1
  236. package/app/.next/server/chunks/8895.js +1 -1
  237. package/app/.next/server/chunks/9489.js +1 -1
  238. package/app/.next/server/chunks/9547.js +4 -14
  239. package/app/.next/server/chunks/9609.js +1 -1
  240. package/app/.next/server/chunks/9718.js +1 -1
  241. package/app/.next/server/middleware-build-manifest.js +1 -1
  242. package/app/.next/server/middleware.js +1 -1
  243. package/app/.next/server/pages/404.html +1 -1
  244. package/app/.next/server/pages/500.html +1 -1
  245. package/app/.next/static/chunks/1321-d98e54ebc0972392.js +1 -0
  246. package/app/.next/static/chunks/2336-36a1f30358e691c6.js +28 -0
  247. package/app/.next/static/chunks/app/(dashboard)/dashboard/admin/users/page-adc5d5e8da3a0761.js +1 -0
  248. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-eb5193b550d3e8de.js → page-c77fedcd9ba7bcac.js} +14 -14
  249. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-ceb9bffbc34711bc.js +1 -0
  250. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-39ab11dad9bb6b89.js +1 -0
  251. package/app/.next/static/chunks/app/landing/{page-c7ae6a40e2a2228d.js → page-4644660041715534.js} +1 -1
  252. package/app/.next/static/css/dcb19ed9cc4c0c31.css +1 -0
  253. package/app/package.json +1 -1
  254. package/app/public/providers/commandcode.png +0 -0
  255. package/app/src/mitm/cert/install.js +13 -8
  256. package/app/src/mitm/cert/rootCA.js +20 -5
  257. package/app/src/mitm/config.js +12 -1
  258. package/app/src/mitm/dns/dnsConfig.js +2 -2
  259. package/app/src/mitm/handlers/openrouter.js +82 -3
  260. package/app/src/mitm/manager.js +2 -2
  261. package/package.json +1 -1
  262. package/src/cli/api/client.js +2 -2
  263. package/src/cli/terminalUI.js +2 -2
  264. package/src/cli/tray/autostart.js +25 -24
  265. package/src/cli/tray/tray.js +3 -3
  266. package/app/.next/server/chunks/2343.js +0 -1
  267. package/app/.next/static/chunks/1321-c90a1f54884edb62.js +0 -1
  268. package/app/.next/static/chunks/2336-4ac589bb36571207.js +0 -38
  269. package/app/.next/static/chunks/app/(dashboard)/dashboard/admin/users/page-15091159f6d63fb7.js +0 -1
  270. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-6289612ce5f7c181.js +0 -1
  271. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-0dc79ccb25aab919.js +0 -1
  272. package/app/.next/static/css/81b7abc9204a4458.css +0 -1
  273. /package/app/.next/static/{s_c_Y_7O0OBMovBwrwXBp → 8lL2B4zuUt2JCMuDcfoON}/_buildManifest.js +0 -0
  274. /package/app/.next/static/{s_c_Y_7O0OBMovBwrwXBp → 8lL2B4zuUt2JCMuDcfoON}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ exports.id=1679,exports.ids=[1679],exports.modules={7768:function(a,b,c){"use strict";var d=this&&this.__awaiter||function(a,b,c,d){return new(c||(c=Promise))(function(e,f){function g(a){try{i(d.next(a))}catch(a){f(a)}}function h(a){try{i(d.throw(a))}catch(a){f(a)}}function i(a){var b;a.done?e(a.value):((b=a.value)instanceof c?b:new c(function(a){a(b)})).then(g,h)}i((d=d.apply(a,b||[])).next())})};Object.defineProperty(b,"__esModule",{value:!0}),b.SocksClientError=b.SocksClient=void 0;let e=c(94735),f=c(91645),g=c(95800),h=c(60485),i=c(42045),j=c(21783),k=c(26174);Object.defineProperty(b,"SocksClientError",{enumerable:!0,get:function(){return k.SocksClientError}});let l=c(64367);class m extends e.EventEmitter{constructor(a){super(),this.options=Object.assign({},a),(0,i.validateSocksClientOptions)(a),this.setState(h.SocksClientState.Created)}static createConnection(a,b){return new Promise((c,d)=>{try{(0,i.validateSocksClientOptions)(a,["connect"])}catch(a){if("function"==typeof b)return b(a),c(a);return d(a)}let e=new m(a);e.connect(a.existing_socket),e.once("established",a=>{e.removeAllListeners(),"function"==typeof b&&b(null,a),c(a)}),e.once("error",a=>{e.removeAllListeners(),"function"==typeof b?(b(a),c(a)):d(a)})})}static createConnectionChain(a,b){return new Promise((c,e)=>d(this,void 0,void 0,function*(){try{(0,i.validateSocksClientChainOptions)(a)}catch(a){if("function"==typeof b)return b(a),c(a);return e(a)}a.randomizeChain&&(0,k.shuffleArray)(a.proxies);try{let d;for(let b=0;b<a.proxies.length;b++){let c=a.proxies[b],e=b===a.proxies.length-1?a.destination:{host:a.proxies[b+1].host||a.proxies[b+1].ipaddress,port:a.proxies[b+1].port},f=yield m.createConnection({command:"connect",proxy:c,destination:e,existing_socket:d});d=d||f.socket}"function"==typeof b&&b(null,{socket:d}),c({socket:d})}catch(a){"function"==typeof b?(b(a),c(a)):e(a)}}))}static createUDPFrame(a){let b=new g.SmartBuffer;return b.writeUInt16BE(0),b.writeUInt8(a.frameNumber||0),f.isIPv4(a.remoteHost.host)?(b.writeUInt8(h.Socks5HostType.IPv4),b.writeUInt32BE((0,i.ipv4ToInt32)(a.remoteHost.host))):f.isIPv6(a.remoteHost.host)?(b.writeUInt8(h.Socks5HostType.IPv6),b.writeBuffer((0,i.ipToBuffer)(a.remoteHost.host))):(b.writeUInt8(h.Socks5HostType.Hostname),b.writeUInt8(Buffer.byteLength(a.remoteHost.host)),b.writeString(a.remoteHost.host)),b.writeUInt16BE(a.remoteHost.port),b.writeBuffer(a.data),b.toBuffer()}static parseUDPFrame(a){let b=g.SmartBuffer.fromBuffer(a);b.readOffset=2;let c=b.readUInt8(),d=b.readUInt8();return{frameNumber:c,remoteHost:{host:d===h.Socks5HostType.IPv4?(0,i.int32ToIpv4)(b.readUInt32BE()):d===h.Socks5HostType.IPv6?l.Address6.fromByteArray(Array.from(b.readBuffer(16))).canonicalForm():b.readString(b.readUInt8()),port:b.readUInt16BE()},data:b.readBuffer()}}setState(a){this.state!==h.SocksClientState.Error&&(this.state=a)}connect(a){this.onDataReceived=a=>this.onDataReceivedHandler(a),this.onClose=()=>this.onCloseHandler(),this.onError=a=>this.onErrorHandler(a),this.onConnect=()=>this.onConnectHandler();let b=setTimeout(()=>this.onEstablishedTimeout(),this.options.timeout||h.DEFAULT_TIMEOUT);b.unref&&"function"==typeof b.unref&&b.unref(),a?this.socket=a:this.socket=new f.Socket,this.socket.once("close",this.onClose),this.socket.once("error",this.onError),this.socket.once("connect",this.onConnect),this.socket.on("data",this.onDataReceived),this.setState(h.SocksClientState.Connecting),this.receiveBuffer=new j.ReceiveBuffer,a?this.socket.emit("connect"):(this.socket.connect(this.getSocketOptions()),void 0!==this.options.set_tcp_nodelay&&null!==this.options.set_tcp_nodelay&&this.socket.setNoDelay(!!this.options.set_tcp_nodelay)),this.prependOnceListener("established",a=>{setImmediate(()=>{if(this.receiveBuffer.length>0){let b=this.receiveBuffer.get(this.receiveBuffer.length);a.socket.emit("data",b)}a.socket.resume()})})}getSocketOptions(){return Object.assign(Object.assign({},this.options.socket_options),{host:this.options.proxy.host||this.options.proxy.ipaddress,port:this.options.proxy.port})}onEstablishedTimeout(){this.state!==h.SocksClientState.Established&&this.state!==h.SocksClientState.BoundWaitingForConnection&&this.closeSocket(h.ERRORS.ProxyConnectionTimedOut)}onConnectHandler(){this.setState(h.SocksClientState.Connected),4===this.options.proxy.type?this.sendSocks4InitialHandshake():this.sendSocks5InitialHandshake(),this.setState(h.SocksClientState.SentInitialHandshake)}onDataReceivedHandler(a){this.receiveBuffer.append(a),this.processData()}processData(){for(;this.state!==h.SocksClientState.Established&&this.state!==h.SocksClientState.Error&&this.receiveBuffer.length>=this.nextRequiredPacketBufferSize;)if(this.state===h.SocksClientState.SentInitialHandshake)4===this.options.proxy.type?this.handleSocks4FinalHandshakeResponse():this.handleInitialSocks5HandshakeResponse();else if(this.state===h.SocksClientState.SentAuthentication)this.handleInitialSocks5AuthenticationHandshakeResponse();else if(this.state===h.SocksClientState.SentFinalHandshake)this.handleSocks5FinalHandshakeResponse();else if(this.state===h.SocksClientState.BoundWaitingForConnection)4===this.options.proxy.type?this.handleSocks4IncomingConnectionResponse():this.handleSocks5IncomingConnectionResponse();else{this.closeSocket(h.ERRORS.InternalError);break}}onCloseHandler(){this.closeSocket(h.ERRORS.SocketClosed)}onErrorHandler(a){this.closeSocket(a.message)}removeInternalSocketHandlers(){this.socket.pause(),this.socket.removeListener("data",this.onDataReceived),this.socket.removeListener("close",this.onClose),this.socket.removeListener("error",this.onError),this.socket.removeListener("connect",this.onConnect)}closeSocket(a){this.state!==h.SocksClientState.Error&&(this.setState(h.SocksClientState.Error),this.socket.destroy(),this.removeInternalSocketHandlers(),this.emit("error",new k.SocksClientError(a,this.options)))}sendSocks4InitialHandshake(){let a=this.options.proxy.userId||"",b=new g.SmartBuffer;b.writeUInt8(4),b.writeUInt8(h.SocksCommand[this.options.command]),b.writeUInt16BE(this.options.destination.port),f.isIPv4(this.options.destination.host)?(b.writeBuffer((0,i.ipToBuffer)(this.options.destination.host)),b.writeStringNT(a)):(b.writeUInt8(0),b.writeUInt8(0),b.writeUInt8(0),b.writeUInt8(1),b.writeStringNT(a),b.writeStringNT(this.options.destination.host)),this.nextRequiredPacketBufferSize=h.SOCKS_INCOMING_PACKET_SIZES.Socks4Response,this.socket.write(b.toBuffer())}handleSocks4FinalHandshakeResponse(){let a=this.receiveBuffer.get(8);if(a[1]!==h.Socks4Response.Granted)this.closeSocket(`${h.ERRORS.Socks4ProxyRejectedConnection} - (${h.Socks4Response[a[1]]})`);else if(h.SocksCommand[this.options.command]===h.SocksCommand.bind){let b=g.SmartBuffer.fromBuffer(a);b.readOffset=2;let c={port:b.readUInt16BE(),host:(0,i.int32ToIpv4)(b.readUInt32BE())};"0.0.0.0"===c.host&&(c.host=this.options.proxy.ipaddress),this.setState(h.SocksClientState.BoundWaitingForConnection),this.emit("bound",{remoteHost:c,socket:this.socket})}else this.setState(h.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{socket:this.socket})}handleSocks4IncomingConnectionResponse(){let a=this.receiveBuffer.get(8);if(a[1]!==h.Socks4Response.Granted)this.closeSocket(`${h.ERRORS.Socks4ProxyRejectedIncomingBoundConnection} - (${h.Socks4Response[a[1]]})`);else{let b=g.SmartBuffer.fromBuffer(a);b.readOffset=2;let c={port:b.readUInt16BE(),host:(0,i.int32ToIpv4)(b.readUInt32BE())};this.setState(h.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{remoteHost:c,socket:this.socket})}}sendSocks5InitialHandshake(){let a=new g.SmartBuffer,b=[h.Socks5Auth.NoAuth];for(let c of((this.options.proxy.userId||this.options.proxy.password)&&b.push(h.Socks5Auth.UserPass),void 0!==this.options.proxy.custom_auth_method&&b.push(this.options.proxy.custom_auth_method),a.writeUInt8(5),a.writeUInt8(b.length),b))a.writeUInt8(c);this.nextRequiredPacketBufferSize=h.SOCKS_INCOMING_PACKET_SIZES.Socks5InitialHandshakeResponse,this.socket.write(a.toBuffer()),this.setState(h.SocksClientState.SentInitialHandshake)}handleInitialSocks5HandshakeResponse(){let a=this.receiveBuffer.get(2);5!==a[0]?this.closeSocket(h.ERRORS.InvalidSocks5IntiailHandshakeSocksVersion):a[1]===h.SOCKS5_NO_ACCEPTABLE_AUTH?this.closeSocket(h.ERRORS.InvalidSocks5InitialHandshakeNoAcceptedAuthType):a[1]===h.Socks5Auth.NoAuth?(this.socks5ChosenAuthType=h.Socks5Auth.NoAuth,this.sendSocks5CommandRequest()):a[1]===h.Socks5Auth.UserPass?(this.socks5ChosenAuthType=h.Socks5Auth.UserPass,this.sendSocks5UserPassAuthentication()):a[1]===this.options.proxy.custom_auth_method?(this.socks5ChosenAuthType=this.options.proxy.custom_auth_method,this.sendSocks5CustomAuthentication()):this.closeSocket(h.ERRORS.InvalidSocks5InitialHandshakeUnknownAuthType)}sendSocks5UserPassAuthentication(){let a=this.options.proxy.userId||"",b=this.options.proxy.password||"",c=new g.SmartBuffer;c.writeUInt8(1),c.writeUInt8(Buffer.byteLength(a)),c.writeString(a),c.writeUInt8(Buffer.byteLength(b)),c.writeString(b),this.nextRequiredPacketBufferSize=h.SOCKS_INCOMING_PACKET_SIZES.Socks5UserPassAuthenticationResponse,this.socket.write(c.toBuffer()),this.setState(h.SocksClientState.SentAuthentication)}sendSocks5CustomAuthentication(){return d(this,void 0,void 0,function*(){this.nextRequiredPacketBufferSize=this.options.proxy.custom_auth_response_size,this.socket.write((yield this.options.proxy.custom_auth_request_handler())),this.setState(h.SocksClientState.SentAuthentication)})}handleSocks5CustomAuthHandshakeResponse(a){return d(this,void 0,void 0,function*(){return yield this.options.proxy.custom_auth_response_handler(a)})}handleSocks5AuthenticationNoAuthHandshakeResponse(a){return d(this,void 0,void 0,function*(){return 0===a[1]})}handleSocks5AuthenticationUserPassHandshakeResponse(a){return d(this,void 0,void 0,function*(){return 0===a[1]})}handleInitialSocks5AuthenticationHandshakeResponse(){return d(this,void 0,void 0,function*(){this.setState(h.SocksClientState.ReceivedAuthenticationResponse);let a=!1;this.socks5ChosenAuthType===h.Socks5Auth.NoAuth?a=yield this.handleSocks5AuthenticationNoAuthHandshakeResponse(this.receiveBuffer.get(2)):this.socks5ChosenAuthType===h.Socks5Auth.UserPass?a=yield this.handleSocks5AuthenticationUserPassHandshakeResponse(this.receiveBuffer.get(2)):this.socks5ChosenAuthType===this.options.proxy.custom_auth_method&&(a=yield this.handleSocks5CustomAuthHandshakeResponse(this.receiveBuffer.get(this.options.proxy.custom_auth_response_size))),a?this.sendSocks5CommandRequest():this.closeSocket(h.ERRORS.Socks5AuthenticationFailed)})}sendSocks5CommandRequest(){let a=new g.SmartBuffer;a.writeUInt8(5),a.writeUInt8(h.SocksCommand[this.options.command]),a.writeUInt8(0),f.isIPv4(this.options.destination.host)?(a.writeUInt8(h.Socks5HostType.IPv4),a.writeBuffer((0,i.ipToBuffer)(this.options.destination.host))):f.isIPv6(this.options.destination.host)?(a.writeUInt8(h.Socks5HostType.IPv6),a.writeBuffer((0,i.ipToBuffer)(this.options.destination.host))):(a.writeUInt8(h.Socks5HostType.Hostname),a.writeUInt8(this.options.destination.host.length),a.writeString(this.options.destination.host)),a.writeUInt16BE(this.options.destination.port),this.nextRequiredPacketBufferSize=h.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHeader,this.socket.write(a.toBuffer()),this.setState(h.SocksClientState.SentFinalHandshake)}handleSocks5FinalHandshakeResponse(){let a=this.receiveBuffer.peek(5);if(5!==a[0]||a[1]!==h.Socks5Response.Granted)this.closeSocket(`${h.ERRORS.InvalidSocks5FinalHandshakeRejected} - ${h.Socks5Response[a[1]]}`);else{let b,c,d=a[3];if(d===h.Socks5HostType.IPv4){let a=h.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv4;if(this.receiveBuffer.length<a){this.nextRequiredPacketBufferSize=a;return}c=g.SmartBuffer.fromBuffer(this.receiveBuffer.get(a).slice(4)),"0.0.0.0"===(b={host:(0,i.int32ToIpv4)(c.readUInt32BE()),port:c.readUInt16BE()}).host&&(b.host=this.options.proxy.ipaddress)}else if(d===h.Socks5HostType.Hostname){let d=a[4],e=h.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHostname(d);if(this.receiveBuffer.length<e){this.nextRequiredPacketBufferSize=e;return}b={host:(c=g.SmartBuffer.fromBuffer(this.receiveBuffer.get(e).slice(5))).readString(d),port:c.readUInt16BE()}}else if(d===h.Socks5HostType.IPv6){let a=h.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv6;if(this.receiveBuffer.length<a){this.nextRequiredPacketBufferSize=a;return}c=g.SmartBuffer.fromBuffer(this.receiveBuffer.get(a).slice(4)),b={host:l.Address6.fromByteArray(Array.from(c.readBuffer(16))).canonicalForm(),port:c.readUInt16BE()}}this.setState(h.SocksClientState.ReceivedFinalResponse),h.SocksCommand[this.options.command]===h.SocksCommand.connect?(this.setState(h.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{remoteHost:b,socket:this.socket})):h.SocksCommand[this.options.command]===h.SocksCommand.bind?(this.setState(h.SocksClientState.BoundWaitingForConnection),this.nextRequiredPacketBufferSize=h.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHeader,this.emit("bound",{remoteHost:b,socket:this.socket})):h.SocksCommand[this.options.command]===h.SocksCommand.associate&&(this.setState(h.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{remoteHost:b,socket:this.socket}))}}handleSocks5IncomingConnectionResponse(){let a=this.receiveBuffer.peek(5);if(5!==a[0]||a[1]!==h.Socks5Response.Granted)this.closeSocket(`${h.ERRORS.Socks5ProxyRejectedIncomingBoundConnection} - ${h.Socks5Response[a[1]]}`);else{let b,c,d=a[3];if(d===h.Socks5HostType.IPv4){let a=h.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv4;if(this.receiveBuffer.length<a){this.nextRequiredPacketBufferSize=a;return}c=g.SmartBuffer.fromBuffer(this.receiveBuffer.get(a).slice(4)),"0.0.0.0"===(b={host:(0,i.int32ToIpv4)(c.readUInt32BE()),port:c.readUInt16BE()}).host&&(b.host=this.options.proxy.ipaddress)}else if(d===h.Socks5HostType.Hostname){let d=a[4],e=h.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHostname(d);if(this.receiveBuffer.length<e){this.nextRequiredPacketBufferSize=e;return}b={host:(c=g.SmartBuffer.fromBuffer(this.receiveBuffer.get(e).slice(5))).readString(d),port:c.readUInt16BE()}}else if(d===h.Socks5HostType.IPv6){let a=h.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv6;if(this.receiveBuffer.length<a){this.nextRequiredPacketBufferSize=a;return}c=g.SmartBuffer.fromBuffer(this.receiveBuffer.get(a).slice(4)),b={host:l.Address6.fromByteArray(Array.from(c.readBuffer(16))).canonicalForm(),port:c.readUInt16BE()}}this.setState(h.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{remoteHost:b,socket:this.socket})}}get socksClientOptions(){return Object.assign({},this.options)}}b.SocksClient=m},9315:(a,b,c)=>{a.exports=function(a){function b(a){let c,e,f,g=null;function h(...a){if(!h.enabled)return;let d=Number(new Date);h.diff=d-(c||d),h.prev=c,h.curr=d,c=d,a[0]=b.coerce(a[0]),"string"!=typeof a[0]&&a.unshift("%O");let e=0;a[0]=a[0].replace(/%([a-zA-Z%])/g,(c,d)=>{if("%%"===c)return"%";e++;let f=b.formatters[d];if("function"==typeof f){let b=a[e];c=f.call(h,b),a.splice(e,1),e--}return c}),b.formatArgs.call(h,a),(h.log||b.log).apply(h,a)}return h.namespace=a,h.useColors=b.useColors(),h.color=b.selectColor(a),h.extend=d,h.destroy=b.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==g?g:(e!==b.namespaces&&(e=b.namespaces,f=b.enabled(a)),f),set:a=>{g=a}}),"function"==typeof b.init&&b.init(h),h}function d(a,c){let d=b(this.namespace+(void 0===c?":":c)+a);return d.log=this.log,d}function e(a,b){let c=0,d=0,e=-1,f=0;for(;c<a.length;)if(d<b.length&&(b[d]===a[c]||"*"===b[d]))"*"===b[d]?(e=d,f=c):c++,d++;else{if(-1===e)return!1;d=e+1,c=++f}for(;d<b.length&&"*"===b[d];)d++;return d===b.length}return b.debug=b,b.default=b,b.coerce=function(a){return a instanceof Error?a.stack||a.message:a},b.disable=function(){let a=[...b.names,...b.skips.map(a=>"-"+a)].join(",");return b.enable(""),a},b.enable=function(a){for(let c of(b.save(a),b.namespaces=a,b.names=[],b.skips=[],("string"==typeof a?a:"").trim().replace(/\s+/g,",").split(",").filter(Boolean)))"-"===c[0]?b.skips.push(c.slice(1)):b.names.push(c)},b.enabled=function(a){for(let c of b.skips)if(e(a,c))return!1;for(let c of b.names)if(e(a,c))return!0;return!1},b.humanize=c(20890),b.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(a).forEach(c=>{b[c]=a[c]}),b.names=[],b.skips=[],b.formatters={},b.selectColor=function(a){let c=0;for(let b=0;b<a.length;b++)c=(c<<5)-c+a.charCodeAt(b)|0;return b.colors[Math.abs(c)%b.colors.length]},b.enable(b.load()),b}},13092:function(a,b,c){"use strict";var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(7768),b)},20890:a=>{function b(a,b,c,d){return Math.round(a/c)+" "+d+(b>=1.5*c?"s":"")}a.exports=function(a,c){c=c||{};var d,e,f,g,h=typeof a;if("string"===h&&a.length>0){var i=a;if(!((i=String(i)).length>100)){var j=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(i);if(j){var k=parseFloat(j[1]);switch((j[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*k;case"weeks":case"week":case"w":return 6048e5*k;case"days":case"day":case"d":return 864e5*k;case"hours":case"hour":case"hrs":case"hr":case"h":return 36e5*k;case"minutes":case"minute":case"mins":case"min":case"m":return 6e4*k;case"seconds":case"second":case"secs":case"sec":case"s":return 1e3*k;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return k;default:break}}}return}if("number"===h&&isFinite(a)){return c.long?(e=Math.abs(d=a))>=864e5?b(d,e,864e5,"day"):e>=36e5?b(d,e,36e5,"hour"):e>=6e4?b(d,e,6e4,"minute"):e>=1e3?b(d,e,1e3,"second"):d+" ms":(g=Math.abs(f=a))>=864e5?Math.round(f/864e5)+"d":g>=36e5?Math.round(f/36e5)+"h":g>=6e4?Math.round(f/6e4)+"m":g>=1e3?Math.round(f/1e3)+"s":f+"ms"}throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(a))}},21584:(a,b,c)=>{let d;b.formatArgs=function(b){if(b[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+b[0]+(this.useColors?"%c ":" ")+"+"+a.exports.humanize(this.diff),!this.useColors)return;let c="color: "+this.color;b.splice(1,0,c,"color: inherit");let d=0,e=0;b[0].replace(/%[a-zA-Z%]/g,a=>{"%%"!==a&&(d++,"%c"===a&&(e=d))}),b.splice(e,0,c)},b.save=function(a){try{a?b.storage.setItem("debug",a):b.storage.removeItem("debug")}catch(a){}},b.load=function(){let a;try{a=b.storage.getItem("debug")||b.storage.getItem("DEBUG")}catch(a){}return!a&&"u">typeof process&&"env"in process&&(a=process.env.DEBUG),a},b.useColors=function(){let a;return"u">typeof window&&!!window.process&&("renderer"===window.process.type||!!window.process.__nwjs)||!("u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("u">typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"u">typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"u">typeof navigator&&navigator.userAgent&&(a=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(a[1],10)>=31||"u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},b.storage=function(){try{return localStorage}catch(a){}}(),d=!1,b.destroy=()=>{d||(d=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))},b.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],b.log=console.debug||console.log||(()=>{}),a.exports=c(9315)(b);let{formatters:e}=a.exports;e.j=function(a){try{return JSON.stringify(a)}catch(a){return"[UnexpectedJSONParseError]: "+a.message}}},21783:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.ReceiveBuffer=void 0;class c{constructor(a=4096){this.buffer=Buffer.allocUnsafe(a),this.offset=0,this.originalSize=a}get length(){return this.offset}append(a){if(!Buffer.isBuffer(a))throw Error("Attempted to append a non-buffer instance to ReceiveBuffer.");if(this.offset+a.length>=this.buffer.length){let b=this.buffer;this.buffer=Buffer.allocUnsafe(Math.max(this.buffer.length+this.originalSize,this.buffer.length+a.length)),b.copy(this.buffer)}return a.copy(this.buffer,this.offset),this.offset+=a.length}peek(a){if(a>this.offset)throw Error("Attempted to read beyond the bounds of the managed internal data.");return this.buffer.slice(0,a)}get(a){if(a>this.offset)throw Error("Attempted to read beyond the bounds of the managed internal data.");let b=Buffer.allocUnsafe(a);return this.buffer.slice(0,a).copy(b),this.buffer.copyWithin(0,a,a+this.offset-a),this.offset-=a,b}}b.ReceiveBuffer=c},25254:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(79428),e={INVALID_ENCODING:"Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.",INVALID_SMARTBUFFER_SIZE:"Invalid size provided. Size must be a valid integer greater than zero.",INVALID_SMARTBUFFER_BUFFER:"Invalid Buffer provided in SmartBufferOptions.",INVALID_SMARTBUFFER_OBJECT:"Invalid SmartBufferOptions object supplied to SmartBuffer constructor or factory methods.",INVALID_OFFSET:"An invalid offset value was provided.",INVALID_OFFSET_NON_NUMBER:"An invalid offset value was provided. A numeric value is required.",INVALID_LENGTH:"An invalid length value was provided.",INVALID_LENGTH_NON_NUMBER:"An invalid length value was provived. A numeric value is required.",INVALID_TARGET_OFFSET:"Target offset is beyond the bounds of the internal SmartBuffer data.",INVALID_TARGET_LENGTH:"Specified length value moves cursor beyong the bounds of the internal SmartBuffer data.",INVALID_READ_BEYOND_BOUNDS:"Attempted to read beyond the bounds of the managed data.",INVALID_WRITE_BEYOND_BOUNDS:"Attempted to write beyond the bounds of the managed data."};function f(a){var b;return"number"==typeof a&&isFinite(a)&&"number"==typeof(b=a)&&isFinite(b)&&Math.floor(b)===b}function g(a,b){if("number"==typeof a){if(!f(a)||a<0)throw Error(b?e.INVALID_OFFSET:e.INVALID_LENGTH)}else throw Error(b?e.INVALID_OFFSET_NON_NUMBER:e.INVALID_LENGTH_NON_NUMBER)}b.ERRORS=e,b.checkEncoding=function(a){if(!d.Buffer.isEncoding(a))throw Error(e.INVALID_ENCODING)},b.isFiniteInteger=f,b.checkLengthValue=function(a){g(a,!1)},b.checkOffsetValue=function(a){g(a,!0)},b.checkTargetOffset=function(a,b){if(a<0||a>b.length)throw Error(e.INVALID_TARGET_OFFSET)},b.bigIntAndBufferInt64Check=function(a){if("u"<typeof BigInt)throw Error("Platform does not support JS BigInt type.");if(void 0===d.Buffer.prototype[a])throw Error(`Platform does not support Buffer.prototype.${a}.`)}},25945:function(a,b,c){"use strict";var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),f=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)"default"!==c&&Object.prototype.hasOwnProperty.call(a,c)&&d(b,a,c);return e(b,a),b};Object.defineProperty(b,"__esModule",{value:!0}),b.req=b.json=b.toBuffer=void 0;let g=f(c(81630)),h=f(c(55591));async function i(a){let b=0,c=[];for await(let d of a)b+=d.length,c.push(d);return Buffer.concat(c,b)}b.toBuffer=i,b.json=async function(a){let b=(await i(a)).toString("utf8");try{return JSON.parse(b)}catch(a){throw a.message+=` (input: ${b})`,a}},b.req=function(a,b={}){let c=(("string"==typeof a?a:a.href).startsWith("https:")?h:g).request(a,b),d=new Promise((a,b)=>{c.once("response",a).once("error",b).end()});return c.then=d.then.bind(d),c}},26174:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.shuffleArray=b.SocksClientError=void 0;class c extends Error{constructor(a,b){super(a),this.options=b}}b.SocksClientError=c,b.shuffleArray=function(a){for(let b=a.length-1;b>0;b--){let c=Math.floor(Math.random()*(b+1));[a[b],a[c]]=[a[c],a[b]]}}},28673:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.RE_URL_WITH_PORT=b.RE_URL=b.RE_ZONE_STRING=b.RE_SUBNET_STRING=b.RE_BAD_ADDRESS=b.RE_BAD_CHARACTERS=b.TYPES=b.SCOPES=b.GROUPS=b.BITS=void 0,b.BITS=128,b.GROUPS=8,b.SCOPES={0:"Reserved",1:"Interface local",2:"Link local",4:"Admin local",5:"Site local",8:"Organization local",14:"Global",15:"Reserved"},b.TYPES={"ff01::1/128":"Multicast (All nodes on this interface)","ff01::2/128":"Multicast (All routers on this interface)","ff02::1/128":"Multicast (All nodes on this link)","ff02::2/128":"Multicast (All routers on this link)","ff05::2/128":"Multicast (All routers in this site)","ff02::5/128":"Multicast (OSPFv3 AllSPF routers)","ff02::6/128":"Multicast (OSPFv3 AllDR routers)","ff02::9/128":"Multicast (RIP routers)","ff02::a/128":"Multicast (EIGRP routers)","ff02::d/128":"Multicast (PIM routers)","ff02::16/128":"Multicast (MLDv2 reports)","ff01::fb/128":"Multicast (mDNSv6)","ff02::fb/128":"Multicast (mDNSv6)","ff05::fb/128":"Multicast (mDNSv6)","ff02::1:2/128":"Multicast (All DHCP servers and relay agents on this link)","ff05::1:2/128":"Multicast (All DHCP servers and relay agents in this site)","ff02::1:3/128":"Multicast (All DHCP servers on this link)","ff05::1:3/128":"Multicast (All DHCP servers in this site)","::/128":"Unspecified","::1/128":"Loopback","ff00::/8":"Multicast","fe80::/10":"Link-local unicast"},b.RE_BAD_CHARACTERS=/([^0-9a-f:/%])/gi,b.RE_BAD_ADDRESS=/([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\/$)/gi,b.RE_SUBNET_STRING=/\/\d{1,3}(?=%|$)/,b.RE_ZONE_STRING=/%.*$/,b.RE_URL=/^\[{0,1}([0-9a-f:]+)\]{0,1}/,b.RE_URL_WITH_PORT=/\[([0-9a-f:]+)\]:([0-9]{1,5})/},28798:function(a,b,c){"use strict";var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),f=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)"default"!==c&&Object.prototype.hasOwnProperty.call(a,c)&&d(b,a,c);return e(b,a),b};Object.defineProperty(b,"__esModule",{value:!0}),b.Address6=void 0;let g=f(c(97462)),h=f(c(51835)),i=f(c(28673)),j=f(c(75737)),k=c(79440),l=c(29142),m=c(50508),n=c(97462);function o(a){if(!a)throw Error("Assertion failed.")}function p(a){return(a=a.replace(/^(0{1,})([1-9]+)$/,'<span class="parse-error">$1</span>$2')).replace(/^(0{1,})(0)$/,'<span class="parse-error">$1</span>$2')}function q(a){return parseInt(a,16).toString(16).padStart(4,"0")}function r(a){return 255&a}class s{constructor(a,b){this.addressMinusSuffix="",this.parsedSubnet="",this.subnet="/128",this.subnetMask=128,this.v4=!1,this.zone="",this.isInSubnet=g.isInSubnet,this.isCorrect=g.isCorrect(i.BITS),void 0===b?this.groups=i.GROUPS:this.groups=b,this.address=a;const c=i.RE_SUBNET_STRING.exec(a);if(c){if(this.parsedSubnet=c[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet=`/${this.subnetMask}`,Number.isNaN(this.subnetMask)||this.subnetMask<0||this.subnetMask>i.BITS)throw new m.AddressError("Invalid subnet mask.");a=a.replace(i.RE_SUBNET_STRING,"")}else if(/\//.test(a))throw new m.AddressError("Invalid subnet mask.");const d=i.RE_ZONE_STRING.exec(a);d&&(this.zone=d[0],a=a.replace(i.RE_ZONE_STRING,"")),this.addressMinusSuffix=a,this.parsedAddress=this.parse(this.addressMinusSuffix)}static isValid(a){try{return new s(a),!0}catch(a){return!1}}static fromBigInt(a){let b,c=a.toString(16).padStart(32,"0"),d=[];for(b=0;b<i.GROUPS;b++)d.push(c.slice(4*b,(b+1)*4));return new s(d.join(":"))}static fromURL(a){let b,c,d=null;if(-1!==a.indexOf("[")&&-1!==a.indexOf("]:")){if(null===(c=i.RE_URL_WITH_PORT.exec(a)))return{error:"failed to parse address with port",address:null,port:null};b=c[1],d=c[2]}else if(-1!==a.indexOf("/")){if(a=a.replace(/^[a-z0-9]+:\/\//,""),null===(c=i.RE_URL.exec(a)))return{error:"failed to parse address from URL",address:null,port:null};b=c[1]}else b=a;return d?((d=parseInt(d,10))<0||d>65536)&&(d=null):d=null,{address:new s(b),port:d}}static fromAddress4(a){let b=new k.Address4(a),c=i.BITS-(h.BITS-b.subnetMask);return new s(`::ffff:${b.correctForm()}/${c}`)}static fromArpa(a){let b=a.replace(/(\.ip6\.arpa)?\.$/,"");if(63!==b.length)throw new m.AddressError("Invalid 'ip6.arpa' form.");let c=b.split(".").reverse();for(let a=7;a>0;a--){let b=4*a;c.splice(b,0,":")}return new s(b=c.join(""))}microsoftTranscription(){return`${this.correctForm().replace(/:/g,"-")}.ipv6-literal.net`}mask(a=this.subnetMask){return this.getBitsBase2(0,a)}possibleSubnets(a=128){let b=i.BITS-this.subnetMask-Math.abs(a-i.BITS);if(b<0)return"0";var c=(BigInt("2")**BigInt(b)).toString(10);let d=/(\d+)(\d{3})/;for(;d.test(c);)c=c.replace(d,"$1,$2");return c}_startAddress(){return BigInt(`0b${this.mask()+"0".repeat(i.BITS-this.subnetMask)}`)}startAddress(){return s.fromBigInt(this._startAddress())}startAddressExclusive(){let a=BigInt("1");return s.fromBigInt(this._startAddress()+a)}_endAddress(){return BigInt(`0b${this.mask()+"1".repeat(i.BITS-this.subnetMask)}`)}endAddress(){return s.fromBigInt(this._endAddress())}endAddressExclusive(){let a=BigInt("1");return s.fromBigInt(this._endAddress()-a)}getScope(){let a=i.SCOPES[parseInt(this.getBits(12,16).toString(10),10)];return"Global unicast"===this.getType()&&"Link local"!==a&&(a="Global"),a||"Unknown"}getType(){for(let a of Object.keys(i.TYPES))if(this.isInSubnet(new s(a)))return i.TYPES[a];return"Global unicast"}getBits(a,b){return BigInt(`0b${this.getBitsBase2(a,b)}`)}getBitsBase2(a,b){return this.binaryZeroPad().slice(a,b)}getBitsBase16(a,b){let c=b-a;if(c%4!=0)throw Error("Length of bits to retrieve must be divisible by four");return this.getBits(a,b).toString(16).padStart(c/4,"0")}getBitsPastSubnet(){return this.getBitsBase2(this.subnetMask,i.BITS)}reverseForm(a){a||(a={});let b=Math.floor(this.subnetMask/4),c=this.canonicalForm().replace(/:/g,"").split("").slice(0,b).reverse().join(".");return b>0?a.omitSuffix?c:`${c}.ip6.arpa.`:a.omitSuffix?"":"ip6.arpa."}correctForm(){let a,b=[],c=0,d=[];for(a=0;a<this.parsedAddress.length;a++){let b=parseInt(this.parsedAddress[a],16);0===b&&c++,0!==b&&c>0&&(c>1&&d.push([a-c,a-1]),c=0)}c>1&&d.push([this.parsedAddress.length-c,this.parsedAddress.length-1]);let e=d.map(a=>a[1]-a[0]+1);if(d.length>0){let a=e.indexOf(Math.max(...e));b=function(a,b){let c,d=[],e=[];for(c=0;c<a.length;c++)c<b[0]?d.push(a[c]):c>b[1]&&e.push(a[c]);return d.concat(["compact"]).concat(e)}(this.parsedAddress,d[a])}else b=this.parsedAddress;for(a=0;a<b.length;a++)"compact"!==b[a]&&(b[a]=parseInt(b[a],16).toString(16));let f=b.join(":");return(f=(f=f.replace(/^compact$/,"::")).replace(/(^compact)|(compact$)/,":")).replace(/compact/,"")}binaryZeroPad(){return this.bigInt().toString(2).padStart(i.BITS,"0")}parse4in6(a){let b=a.split(":"),c=b.slice(-1)[0].match(h.RE_ADDRESS);if(c){this.parsedAddress4=c[0],this.address4=new k.Address4(this.parsedAddress4);for(let b=0;b<this.address4.groups;b++)if(/^0[0-9]+/.test(this.address4.parsedAddress[b]))throw new m.AddressError("IPv4 addresses can't have leading zeroes.",a.replace(h.RE_ADDRESS,this.address4.parsedAddress.map(p).join(".")));this.v4=!0,b[b.length-1]=this.address4.toGroup6(),a=b.join(":")}return a}parse(a){let b=(a=this.parse4in6(a)).match(i.RE_BAD_CHARACTERS);if(b)throw new m.AddressError(`Bad character${b.length>1?"s":""} detected in address: ${b.join("")}`,a.replace(i.RE_BAD_CHARACTERS,'<span class="parse-error">$1</span>'));let c=a.match(i.RE_BAD_ADDRESS);if(c)throw new m.AddressError(`Address failed regex: ${c.join("")}`,a.replace(i.RE_BAD_ADDRESS,'<span class="parse-error">$1</span>'));let d=[],e=a.split("::");if(2===e.length){let a=e[0].split(":"),b=e[1].split(":");1===a.length&&""===a[0]&&(a=[]),1===b.length&&""===b[0]&&(b=[]);let c=this.groups-(a.length+b.length);if(!c)throw new m.AddressError("Error parsing groups");this.elidedGroups=c,this.elisionBegin=a.length,this.elisionEnd=a.length+this.elidedGroups,d=d.concat(a);for(let a=0;a<c;a++)d.push("0");d=d.concat(b)}else if(1===e.length)d=a.split(":"),this.elidedGroups=0;else throw new m.AddressError("Too many :: groups found");if((d=d.map(a=>parseInt(a,16).toString(16))).length!==this.groups)throw new m.AddressError("Incorrect number of groups found");return d}canonicalForm(){return this.parsedAddress.map(q).join(":")}decimal(){return this.parsedAddress.map(a=>parseInt(a,16).toString(10).padStart(5,"0")).join(":")}bigInt(){return BigInt(`0x${this.parsedAddress.map(q).join("")}`)}to4(){let a=this.binaryZeroPad().split("");return k.Address4.fromHex(BigInt(`0b${a.slice(96,128).join("")}`).toString(16))}to4in6(){let a=this.to4(),b=new s(this.parsedAddress.slice(0,6).join(":"),6).correctForm(),c="";return/:$/.test(b)||(c=":"),b+c+a.address}inspectTeredo(){let a=this.getBitsBase16(0,32),b=(this.getBits(80,96)^BigInt("0xffff")).toString(),c=k.Address4.fromHex(this.getBitsBase16(32,64)),d=this.getBits(96,128),e=k.Address4.fromHex((d^BigInt("0xffffffff")).toString(16)),f=this.getBitsBase2(64,80),g=(0,n.testBit)(f,15),h=(0,n.testBit)(f,14),i=(0,n.testBit)(f,8),j=(0,n.testBit)(f,9),l=BigInt(`0b${f.slice(2,6)+f.slice(8,16)}`).toString(10);return{prefix:`${a.slice(0,4)}:${a.slice(4,8)}`,server4:c.address,client4:e.address,flags:f,coneNat:g,microsoft:{reserved:h,universalLocal:j,groupIndividual:i,nonce:l},udpPort:b}}inspect6to4(){let a=this.getBitsBase16(0,16),b=k.Address4.fromHex(this.getBitsBase16(16,48));return{prefix:a.slice(0,4),gateway:b.address}}to6to4(){return this.is4()?new s(["2002",this.getBitsBase16(96,112),this.getBitsBase16(112,128),":/16"].join(":")):null}toByteArray(){let a=this.bigInt().toString(16),b="0".repeat(a.length%2),c=`${b}${a}`,d=[];for(let a=0,b=c.length;a<b;a+=2)d.push(parseInt(c.substring(a,a+2),16));return d}toUnsignedByteArray(){return this.toByteArray().map(r)}static fromByteArray(a){return this.fromUnsignedByteArray(a.map(r))}static fromUnsignedByteArray(a){let b=BigInt("256"),c=BigInt("0"),d=BigInt("1");for(let e=a.length-1;e>=0;e--)c+=d*BigInt(a[e].toString(10)),d*=b;return s.fromBigInt(c)}isCanonical(){return this.addressMinusSuffix===this.canonicalForm()}isLinkLocal(){return"1111111010000000000000000000000000000000000000000000000000000000"===this.getBitsBase2(0,64)}isMulticast(){return"Multicast"===this.getType()}is4(){return this.v4}isTeredo(){return this.isInSubnet(new s("2001::/32"))}is6to4(){return this.isInSubnet(new s("2002::/16"))}isLoopback(){return"Loopback"===this.getType()}href(a){return a=void 0===a?"":`:${a}`,`http://[${this.correctForm()}]${a}/`}link(a){a||(a={}),void 0===a.className&&(a.className=""),void 0===a.prefix&&(a.prefix="/#address="),void 0===a.v4&&(a.v4=!1);let b=this.correctForm;a.v4&&(b=this.to4in6);let c=b.call(this);return a.className?`<a href="${a.prefix}${c}" class="${a.className}">${c}</a>`:`<a href="${a.prefix}${c}">${c}</a>`}group(){if(0===this.elidedGroups)return j.simpleGroup(this.address).join(":");o("number"==typeof this.elidedGroups),o("number"==typeof this.elisionBegin);let a=[],[b,c]=this.address.split("::");b.length?a.push(...j.simpleGroup(b)):a.push("");let d=["hover-group"];for(let a=this.elisionBegin;a<this.elisionBegin+this.elidedGroups;a++)d.push(`group-${a}`);return a.push(`<span class="${d.join(" ")}"></span>`),c.length?a.push(...j.simpleGroup(c,this.elisionEnd)):a.push(""),this.is4()&&(o(this.address4 instanceof k.Address4),a.pop(),a.push(this.address4.groupForV6())),a.join(":")}regularExpressionString(a=!1){let b=[],c=new s(this.correctForm());if(0===c.elidedGroups)b.push((0,l.simpleRegularExpression)(c.parsedAddress));else if(c.elidedGroups===i.GROUPS)b.push((0,l.possibleElisions)(i.GROUPS));else{let a=c.address.split("::");a[0].length&&b.push((0,l.simpleRegularExpression)(a[0].split(":"))),o("number"==typeof c.elidedGroups),b.push((0,l.possibleElisions)(c.elidedGroups,0!==a[0].length,0!==a[1].length)),a[1].length&&b.push((0,l.simpleRegularExpression)(a[1].split(":"))),b=[b.join(":")]}return a||(b=["(?=^|",l.ADDRESS_BOUNDARY,"|[^\\w\\:])(",...b,")(?=[^\\w\\:]|",l.ADDRESS_BOUNDARY,"|$)"]),b.join("")}regularExpression(a=!1){return RegExp(this.regularExpressionString(a),"i")}}b.Address6=s},29142:function(a,b,c){"use strict";var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),f=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)"default"!==c&&Object.prototype.hasOwnProperty.call(a,c)&&d(b,a,c);return e(b,a),b};Object.defineProperty(b,"__esModule",{value:!0}),b.ADDRESS_BOUNDARY=void 0,b.groupPossibilities=h,b.padGroup=i,b.simpleRegularExpression=function(a){let b=[];a.forEach((a,c)=>{0===parseInt(a,16)&&b.push(c)});let c=b.map(b=>a.map((a,c)=>{if(c===b){let b=0===c||c===g.GROUPS-1?":":"";return h([i(a),b])}return i(a)}).join(":"));return c.push(a.map(i).join(":")),h(c)},b.possibleElisions=function(a,b,c){let d=[];b||c||d.push("::"),b&&c&&d.push(""),(c&&!b||!c&&b)&&d.push(":"),d.push(`${b?"":":"}(:0{1,4}){1,${a-1}}`),d.push(`(0{1,4}:){1,${a-1}}${c?"":":"}`),d.push(`(0{1,4}:){${a-1}}0{1,4}`);for(let b=1;b<a-1;b++)for(let c=1;c<a-b;c++)d.push(`(0{1,4}:){${c}}:(0{1,4}:){${a-c-b-1}}0{1,4}`);return h(d)};let g=f(c(28673));function h(a){return`(${a.join("|")})`}function i(a){return a.length<4?`0{0,${4-a.length}}${a}`:a}b.ADDRESS_BOUNDARY="[^A-Fa-f0-9:]"},41892:(a,b,c)=>{"use strict";let d,e=c(21820),f=c(83997),g=c(92535),{env:h}=process;function i(a){return 0!==a&&{level:a,hasBasic:!0,has256:a>=2,has16m:a>=3}}function j(a,b){if(0===d)return 0;if(g("color=16m")||g("color=full")||g("color=truecolor"))return 3;if(g("color=256"))return 2;if(a&&!b&&void 0===d)return 0;let c=d||0;if("dumb"===h.TERM)return c;if("win32"===process.platform){let a=e.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in h)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in h)||"codeship"===h.CI_NAME?1:c;if("TEAMCITY_VERSION"in h)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(h.TEAMCITY_VERSION);if("truecolor"===h.COLORTERM)return 3;if("TERM_PROGRAM"in h){let a=parseInt((h.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(h.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(h.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(h.TERM)||"COLORTERM"in h?1:c}g("no-color")||g("no-colors")||g("color=false")||g("color=never")?d=0:(g("color")||g("colors")||g("color=true")||g("color=always"))&&(d=1),"FORCE_COLOR"in h&&(d="true"===h.FORCE_COLOR?1:"false"===h.FORCE_COLOR?0:0===h.FORCE_COLOR.length?1:Math.min(parseInt(h.FORCE_COLOR,10),3)),a.exports={supportsColor:function(a){return i(j(a,a&&a.isTTY))},stdout:i(j(!0,f.isatty(1))),stderr:i(j(!0,f.isatty(2)))}},42045:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.ipToBuffer=b.int32ToIpv4=b.ipv4ToInt32=b.validateSocksClientChainOptions=b.validateSocksClientOptions=void 0;let d=c(26174),e=c(60485),f=c(27910),g=c(64367),h=c(91645);function i(a,b){if(void 0!==a.custom_auth_method){if(a.custom_auth_method<e.SOCKS5_CUSTOM_AUTH_START||a.custom_auth_method>e.SOCKS5_CUSTOM_AUTH_END)throw new d.SocksClientError(e.ERRORS.InvalidSocksClientOptionsCustomAuthRange,b);if(void 0===a.custom_auth_request_handler||"function"!=typeof a.custom_auth_request_handler||void 0===a.custom_auth_response_size||void 0===a.custom_auth_response_handler||"function"!=typeof a.custom_auth_response_handler)throw new d.SocksClientError(e.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,b)}}function j(a){return a&&"string"==typeof a.host&&256>Buffer.byteLength(a.host)&&"number"==typeof a.port&&a.port>=0&&a.port<=65535}function k(a){return a&&("string"==typeof a.host||"string"==typeof a.ipaddress)&&"number"==typeof a.port&&a.port>=0&&a.port<=65535&&(4===a.type||5===a.type)}function l(a){return"number"==typeof a&&a>0}b.validateSocksClientOptions=function(a,b=["connect","bind","associate"]){if(!e.SocksCommand[a.command])throw new d.SocksClientError(e.ERRORS.InvalidSocksCommand,a);if(-1===b.indexOf(a.command))throw new d.SocksClientError(e.ERRORS.InvalidSocksCommandForOperation,a);if(!j(a.destination))throw new d.SocksClientError(e.ERRORS.InvalidSocksClientOptionsDestination,a);if(!k(a.proxy))throw new d.SocksClientError(e.ERRORS.InvalidSocksClientOptionsProxy,a);if(i(a.proxy,a),a.timeout&&!l(a.timeout))throw new d.SocksClientError(e.ERRORS.InvalidSocksClientOptionsTimeout,a);if(a.existing_socket&&!(a.existing_socket instanceof f.Duplex))throw new d.SocksClientError(e.ERRORS.InvalidSocksClientOptionsExistingSocket,a)},b.validateSocksClientChainOptions=function(a){if("connect"!==a.command)throw new d.SocksClientError(e.ERRORS.InvalidSocksCommandChain,a);if(!j(a.destination))throw new d.SocksClientError(e.ERRORS.InvalidSocksClientOptionsDestination,a);if(!(a.proxies&&Array.isArray(a.proxies)&&a.proxies.length>=2))throw new d.SocksClientError(e.ERRORS.InvalidSocksClientOptionsProxiesLength,a);if(a.proxies.forEach(b=>{if(!k(b))throw new d.SocksClientError(e.ERRORS.InvalidSocksClientOptionsProxy,a);i(b,a)}),a.timeout&&!l(a.timeout))throw new d.SocksClientError(e.ERRORS.InvalidSocksClientOptionsTimeout,a)},b.ipv4ToInt32=function(a){return new g.Address4(a).toArray().reduce((a,b)=>(a<<8)+b,0)>>>0},b.int32ToIpv4=function(a){return[a>>>24&255,a>>>16&255,a>>>8&255,255&a].join(".")},b.ipToBuffer=function(a){if(h.isIPv4(a)){let b=new g.Address4(a);return Buffer.from(b.toArray())}if(h.isIPv6(a)){let b=new g.Address6(a);return Buffer.from(b.canonicalForm().split(":").map(a=>a.padStart(4,"0")).join(""),"hex")}throw Error("Invalid IP address format")}},46140:(a,b,c)=>{"u"<typeof process||"renderer"===process.type||process.__nwjs?a.exports=c(21584):a.exports=c(89830)},50508:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.AddressError=void 0;class c extends Error{constructor(a,b){super(a),this.name="AddressError",this.parseMessage=b}}b.AddressError=c},51835:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.RE_SUBNET_STRING=b.RE_ADDRESS=b.GROUPS=b.BITS=void 0,b.BITS=32,b.GROUPS=4,b.RE_ADDRESS=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/g,b.RE_SUBNET_STRING=/\/\d{1,2}$/},60485:(a,b)=>{"use strict";var c,d,e,f,g,h,i,j,k,l,m,n;Object.defineProperty(b,"__esModule",{value:!0}),b.SOCKS5_NO_ACCEPTABLE_AUTH=b.SOCKS5_CUSTOM_AUTH_END=b.SOCKS5_CUSTOM_AUTH_START=b.SOCKS_INCOMING_PACKET_SIZES=b.SocksClientState=b.Socks5Response=b.Socks5HostType=b.Socks5Auth=b.Socks4Response=b.SocksCommand=b.ERRORS=b.DEFAULT_TIMEOUT=void 0,b.DEFAULT_TIMEOUT=3e4,b.ERRORS={InvalidSocksCommand:"An invalid SOCKS command was provided. Valid options are connect, bind, and associate.",InvalidSocksCommandForOperation:"An invalid SOCKS command was provided. Only a subset of commands are supported for this operation.",InvalidSocksCommandChain:"An invalid SOCKS command was provided. Chaining currently only supports the connect command.",InvalidSocksClientOptionsDestination:"An invalid destination host was provided.",InvalidSocksClientOptionsExistingSocket:"An invalid existing socket was provided. This should be an instance of stream.Duplex.",InvalidSocksClientOptionsProxy:"Invalid SOCKS proxy details were provided.",InvalidSocksClientOptionsTimeout:"An invalid timeout value was provided. Please enter a value above 0 (in ms).",InvalidSocksClientOptionsProxiesLength:"At least two socks proxies must be provided for chaining.",InvalidSocksClientOptionsCustomAuthRange:"Custom auth must be a value between 0x80 and 0xFE.",InvalidSocksClientOptionsCustomAuthOptions:"When a custom_auth_method is provided, custom_auth_request_handler, custom_auth_response_size, and custom_auth_response_handler must also be provided and valid.",NegotiationError:"Negotiation error",SocketClosed:"Socket closed",ProxyConnectionTimedOut:"Proxy connection timed out",InternalError:"SocksClient internal error (this should not happen)",InvalidSocks4HandshakeResponse:"Received invalid Socks4 handshake response",Socks4ProxyRejectedConnection:"Socks4 Proxy rejected connection",InvalidSocks4IncomingConnectionResponse:"Socks4 invalid incoming connection response",Socks4ProxyRejectedIncomingBoundConnection:"Socks4 Proxy rejected incoming bound connection",InvalidSocks5InitialHandshakeResponse:"Received invalid Socks5 initial handshake response",InvalidSocks5IntiailHandshakeSocksVersion:"Received invalid Socks5 initial handshake (invalid socks version)",InvalidSocks5InitialHandshakeNoAcceptedAuthType:"Received invalid Socks5 initial handshake (no accepted authentication type)",InvalidSocks5InitialHandshakeUnknownAuthType:"Received invalid Socks5 initial handshake (unknown authentication type)",Socks5AuthenticationFailed:"Socks5 Authentication failed",InvalidSocks5FinalHandshake:"Received invalid Socks5 final handshake response",InvalidSocks5FinalHandshakeRejected:"Socks5 proxy rejected connection",InvalidSocks5IncomingConnectionResponse:"Received invalid Socks5 incoming connection response",Socks5ProxyRejectedIncomingBoundConnection:"Socks5 Proxy rejected incoming bound connection"},b.SOCKS_INCOMING_PACKET_SIZES={Socks5InitialHandshakeResponse:2,Socks5UserPassAuthenticationResponse:2,Socks5ResponseHeader:5,Socks5ResponseIPv4:10,Socks5ResponseIPv6:22,Socks5ResponseHostname:a=>a+7,Socks4Response:8},(i=c||(b.SocksCommand=c={}))[i.connect=1]="connect",i[i.bind=2]="bind",i[i.associate=3]="associate",(j=d||(b.Socks4Response=d={}))[j.Granted=90]="Granted",j[j.Failed=91]="Failed",j[j.Rejected=92]="Rejected",j[j.RejectedIdent=93]="RejectedIdent",(k=e||(b.Socks5Auth=e={}))[k.NoAuth=0]="NoAuth",k[k.GSSApi=1]="GSSApi",k[k.UserPass=2]="UserPass",b.SOCKS5_CUSTOM_AUTH_START=128,b.SOCKS5_CUSTOM_AUTH_END=254,b.SOCKS5_NO_ACCEPTABLE_AUTH=255,(l=f||(b.Socks5Response=f={}))[l.Granted=0]="Granted",l[l.Failure=1]="Failure",l[l.NotAllowed=2]="NotAllowed",l[l.NetworkUnreachable=3]="NetworkUnreachable",l[l.HostUnreachable=4]="HostUnreachable",l[l.ConnectionRefused=5]="ConnectionRefused",l[l.TTLExpired=6]="TTLExpired",l[l.CommandNotSupported=7]="CommandNotSupported",l[l.AddressNotSupported=8]="AddressNotSupported",(m=g||(b.Socks5HostType=g={}))[m.IPv4=1]="IPv4",m[m.Hostname=3]="Hostname",m[m.IPv6=4]="IPv6",(n=h||(b.SocksClientState=h={}))[n.Created=0]="Created",n[n.Connecting=1]="Connecting",n[n.Connected=2]="Connected",n[n.SentInitialHandshake=3]="SentInitialHandshake",n[n.ReceivedInitialHandshakeResponse=4]="ReceivedInitialHandshakeResponse",n[n.SentAuthentication=5]="SentAuthentication",n[n.ReceivedAuthenticationResponse=6]="ReceivedAuthenticationResponse",n[n.SentFinalHandshake=7]="SentFinalHandshake",n[n.ReceivedFinalResponse=8]="ReceivedFinalResponse",n[n.BoundWaitingForConnection=9]="BoundWaitingForConnection",n[n.Established=10]="Established",n[n.Disconnected=11]="Disconnected",n[n.Error=99]="Error"},61679:function(a,b,c){"use strict";var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),f=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)"default"!==c&&Object.prototype.hasOwnProperty.call(a,c)&&d(b,a,c);return e(b,a),b},g=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.SocksProxyAgent=void 0;let h=c(13092),i=c(98748),j=g(c(46140)),k=f(c(14985)),l=f(c(91645)),m=f(c(34631)),n=c(1932),o=(0,j.default)("socks-proxy-agent");class p extends i.Agent{constructor(a,b){super(b);const{proxy:c,lookup:d}=function(a){let b=!1,c=5,d=a.hostname,e=parseInt(a.port,10)||1080;switch(a.protocol.replace(":","")){case"socks4":b=!0,c=4;break;case"socks4a":c=4;break;case"socks5":b=!0,c=5;break;case"socks":case"socks5h":c=5;break;default:throw TypeError(`A "socks" protocol must be specified! Got: ${String(a.protocol)}`)}let f={host:d,port:e,type:c};return a.username&&Object.defineProperty(f,"userId",{value:decodeURIComponent(a.username),enumerable:!1}),null!=a.password&&Object.defineProperty(f,"password",{value:decodeURIComponent(a.password),enumerable:!1}),{lookup:b,proxy:f}}("string"==typeof a?new n.URL(a):a);this.shouldLookup=d,this.proxy=c,this.timeout=b?.timeout??null,this.socketOptions=b?.socketOptions??null}async connect(a,b){let{shouldLookup:c,proxy:d,timeout:e}=this;if(!b.host)throw Error("No `host` defined!");let{host:f}=b,{port:g,lookup:i=k.lookup}=b;c&&(f=await new Promise((a,b)=>{i(f,{},(c,d)=>{c?b(c):a(d)})}));let j={proxy:d,destination:{host:f,port:"number"==typeof g?g:parseInt(g,10)},command:"connect",timeout:e??void 0,socket_options:this.socketOptions??void 0},n=b=>{a.destroy(),p.destroy(),b&&b.destroy()};o("Creating socks proxy connection: %o",j);let{socket:p}=await h.SocksClient.createConnection(j);if(o("Successfully created socks proxy connection"),null!==e&&(p.setTimeout(e),p.on("timeout",()=>n())),b.secureEndpoint){o("Upgrading socket connection to TLS");let a=m.connect({...function(a,...b){let c,d={};for(c in a)b.includes(c)||(d[c]=a[c]);return d}(void 0===b.servername&&b.host&&!l.isIP(b.host)?{...b,servername:b.host}:b,"host","path","port"),socket:p});return a.once("error",b=>{o("Socket TLS error",b.message),n(a)}),a}return p}}p.protocols=["socks","socks4","socks4a","socks5","socks5h"],b.SocksProxyAgent=p},64367:function(a,b,c){"use strict";var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),f=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)"default"!==c&&Object.prototype.hasOwnProperty.call(a,c)&&d(b,a,c);return e(b,a),b};Object.defineProperty(b,"__esModule",{value:!0}),b.v6=b.AddressError=b.Address6=b.Address4=void 0;var g=c(79440);Object.defineProperty(b,"Address4",{enumerable:!0,get:function(){return g.Address4}});var h=c(28798);Object.defineProperty(b,"Address6",{enumerable:!0,get:function(){return h.Address6}});var i=c(50508);Object.defineProperty(b,"AddressError",{enumerable:!0,get:function(){return i.AddressError}}),b.v6={helpers:f(c(75737))}},75737:(a,b)=>{"use strict";function c(a){return a.replace(/(0+)/g,'<span class="zero">$1</span>')}function d(a){return a.replace(/^(0+)/,'<span class="zero">$1</span>')}Object.defineProperty(b,"__esModule",{value:!0}),b.spanAllZeroes=c,b.spanAll=function(a,b=0){return a.split("").map((a,d)=>`<span class="digit value-${a} position-${d+b}">${c(a)}</span>`).join("")},b.spanLeadingZeroes=function(a){return a.split(":").map(a=>d(a)).join(":")},b.simpleGroup=function(a,b=0){return a.split(":").map((a,c)=>/group-v4/.test(a)?a:`<span class="hover-group group-${c+b}">${d(a)}</span>`)}},79440:function(a,b,c){"use strict";var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),f=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)"default"!==c&&Object.prototype.hasOwnProperty.call(a,c)&&d(b,a,c);return e(b,a),b};Object.defineProperty(b,"__esModule",{value:!0}),b.Address4=void 0;let g=f(c(97462)),h=f(c(51835)),i=c(50508);class j{constructor(a){this.groups=h.GROUPS,this.parsedAddress=[],this.parsedSubnet="",this.subnet="/32",this.subnetMask=32,this.v4=!0,this.isCorrect=g.isCorrect(h.BITS),this.isInSubnet=g.isInSubnet,this.address=a;const b=h.RE_SUBNET_STRING.exec(a);if(b){if(this.parsedSubnet=b[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet=`/${this.subnetMask}`,this.subnetMask<0||this.subnetMask>h.BITS)throw new i.AddressError("Invalid subnet mask.");a=a.replace(h.RE_SUBNET_STRING,"")}this.addressMinusSuffix=a,this.parsedAddress=this.parse(a)}static isValid(a){try{return new j(a),!0}catch(a){return!1}}parse(a){let b=a.split(".");if(!a.match(h.RE_ADDRESS))throw new i.AddressError("Invalid IPv4 address.");return b}correctForm(){return this.parsedAddress.map(a=>parseInt(a,10)).join(".")}static fromHex(a){let b,c=a.replace(/:/g,"").padStart(8,"0"),d=[];for(b=0;b<8;b+=2){let a=c.slice(b,b+2);d.push(parseInt(a,16))}return new j(d.join("."))}static fromInteger(a){return j.fromHex(a.toString(16))}static fromArpa(a){return new j(a.replace(/(\.in-addr\.arpa)?\.$/,"").split(".").reverse().join("."))}toHex(){return this.parsedAddress.map(a=>g.stringToPaddedHex(a)).join(":")}toArray(){return this.parsedAddress.map(a=>parseInt(a,10))}toGroup6(){let a,b=[];for(a=0;a<h.GROUPS;a+=2)b.push(`${g.stringToPaddedHex(this.parsedAddress[a])}${g.stringToPaddedHex(this.parsedAddress[a+1])}`);return b.join(":")}bigInt(){return BigInt(`0x${this.parsedAddress.map(a=>g.stringToPaddedHex(a)).join("")}`)}_startAddress(){return BigInt(`0b${this.mask()+"0".repeat(h.BITS-this.subnetMask)}`)}startAddress(){return j.fromBigInt(this._startAddress())}startAddressExclusive(){let a=BigInt("1");return j.fromBigInt(this._startAddress()+a)}_endAddress(){return BigInt(`0b${this.mask()+"1".repeat(h.BITS-this.subnetMask)}`)}endAddress(){return j.fromBigInt(this._endAddress())}endAddressExclusive(){let a=BigInt("1");return j.fromBigInt(this._endAddress()-a)}static fromBigInt(a){return j.fromHex(a.toString(16))}static fromByteArray(a){if(4!==a.length)throw new i.AddressError("IPv4 addresses require exactly 4 bytes");for(let b=0;b<a.length;b++)if(!Number.isInteger(a[b])||a[b]<0||a[b]>255)throw new i.AddressError("All bytes must be integers between 0 and 255");return this.fromUnsignedByteArray(a)}static fromUnsignedByteArray(a){if(4!==a.length)throw new i.AddressError("IPv4 addresses require exactly 4 bytes");return new j(a.join("."))}mask(a){return void 0===a&&(a=this.subnetMask),this.getBitsBase2(0,a)}getBitsBase2(a,b){return this.binaryZeroPad().slice(a,b)}reverseForm(a){a||(a={});let b=this.correctForm().split(".").reverse().join(".");return a.omitSuffix?b:`${b}.in-addr.arpa.`}isMulticast(){return this.isInSubnet(new j("224.0.0.0/4"))}binaryZeroPad(){return this.bigInt().toString(2).padStart(h.BITS,"0")}groupForV6(){let a=this.parsedAddress;return this.address.replace(h.RE_ADDRESS,`<span class="hover-group group-v4 group-6">${a.slice(0,2).join(".")}</span>.<span class="hover-group group-v4 group-7">${a.slice(2,4).join(".")}</span>`)}}b.Address4=j},89830:(a,b,c)=>{let d=c(83997),e=c(28354);b.init=function(a){a.inspectOpts={};let c=Object.keys(b.inspectOpts);for(let d=0;d<c.length;d++)a.inspectOpts[c[d]]=b.inspectOpts[c[d]]},b.log=function(...a){return process.stderr.write(e.formatWithOptions(b.inspectOpts,...a)+"\n")},b.formatArgs=function(c){let{namespace:d,useColors:e}=this;if(e){let b=this.color,e="\x1b[3"+(b<8?b:"8;5;"+b),f=` ${e};1m${d} \u001B[0m`;c[0]=f+c[0].split("\n").join("\n"+f),c.push(e+"m+"+a.exports.humanize(this.diff)+"\x1b[0m")}else c[0]=(b.inspectOpts.hideDate?"":new Date().toISOString()+" ")+d+" "+c[0]},b.save=function(a){a?process.env.DEBUG=a:delete process.env.DEBUG},b.load=function(){return process.env.DEBUG},b.useColors=function(){return"colors"in b.inspectOpts?!!b.inspectOpts.colors:d.isatty(process.stderr.fd)},b.destroy=e.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),b.colors=[6,2,3,4,5,1];try{let a=c(41892);a&&(a.stderr||a).level>=2&&(b.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(a){}b.inspectOpts=Object.keys(process.env).filter(a=>/^debug_/i.test(a)).reduce((a,b)=>{let c=b.substring(6).toLowerCase().replace(/_([a-z])/g,(a,b)=>b.toUpperCase()),d=process.env[b];return d=!!/^(yes|on|true|enabled)$/i.test(d)||!/^(no|off|false|disabled)$/i.test(d)&&("null"===d?null:Number(d)),a[c]=d,a},{}),a.exports=c(9315)(b);let{formatters:f}=a.exports;f.o=function(a){return this.inspectOpts.colors=this.useColors,e.inspect(a,this.inspectOpts).split("\n").map(a=>a.trim()).join(" ")},f.O=function(a){return this.inspectOpts.colors=this.useColors,e.inspect(a,this.inspectOpts)}},92535:a=>{"use strict";a.exports=(a,b=process.argv)=>{let c=a.startsWith("-")?"":1===a.length?"-":"--",d=b.indexOf(c+a),e=b.indexOf("--");return -1!==d&&(-1===e||d<e)}},95800:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});let d=c(25254);class e{constructor(a){if(this.length=0,this._encoding="utf8",this._writeOffset=0,this._readOffset=0,e.isSmartBufferOptions(a))if(a.encoding&&(d.checkEncoding(a.encoding),this._encoding=a.encoding),a.size)if(d.isFiniteInteger(a.size)&&a.size>0)this._buff=Buffer.allocUnsafe(a.size);else throw Error(d.ERRORS.INVALID_SMARTBUFFER_SIZE);else if(a.buff)if(Buffer.isBuffer(a.buff))this._buff=a.buff,this.length=a.buff.length;else throw Error(d.ERRORS.INVALID_SMARTBUFFER_BUFFER);else this._buff=Buffer.allocUnsafe(4096);else{if(void 0!==a)throw Error(d.ERRORS.INVALID_SMARTBUFFER_OBJECT);this._buff=Buffer.allocUnsafe(4096)}}static fromSize(a,b){return new this({size:a,encoding:b})}static fromBuffer(a,b){return new this({buff:a,encoding:b})}static fromOptions(a){return new this(a)}static isSmartBufferOptions(a){return a&&(void 0!==a.encoding||void 0!==a.size||void 0!==a.buff)}readInt8(a){return this._readNumberValue(Buffer.prototype.readInt8,1,a)}readInt16BE(a){return this._readNumberValue(Buffer.prototype.readInt16BE,2,a)}readInt16LE(a){return this._readNumberValue(Buffer.prototype.readInt16LE,2,a)}readInt32BE(a){return this._readNumberValue(Buffer.prototype.readInt32BE,4,a)}readInt32LE(a){return this._readNumberValue(Buffer.prototype.readInt32LE,4,a)}readBigInt64BE(a){return d.bigIntAndBufferInt64Check("readBigInt64BE"),this._readNumberValue(Buffer.prototype.readBigInt64BE,8,a)}readBigInt64LE(a){return d.bigIntAndBufferInt64Check("readBigInt64LE"),this._readNumberValue(Buffer.prototype.readBigInt64LE,8,a)}writeInt8(a,b){return this._writeNumberValue(Buffer.prototype.writeInt8,1,a,b),this}insertInt8(a,b){return this._insertNumberValue(Buffer.prototype.writeInt8,1,a,b)}writeInt16BE(a,b){return this._writeNumberValue(Buffer.prototype.writeInt16BE,2,a,b)}insertInt16BE(a,b){return this._insertNumberValue(Buffer.prototype.writeInt16BE,2,a,b)}writeInt16LE(a,b){return this._writeNumberValue(Buffer.prototype.writeInt16LE,2,a,b)}insertInt16LE(a,b){return this._insertNumberValue(Buffer.prototype.writeInt16LE,2,a,b)}writeInt32BE(a,b){return this._writeNumberValue(Buffer.prototype.writeInt32BE,4,a,b)}insertInt32BE(a,b){return this._insertNumberValue(Buffer.prototype.writeInt32BE,4,a,b)}writeInt32LE(a,b){return this._writeNumberValue(Buffer.prototype.writeInt32LE,4,a,b)}insertInt32LE(a,b){return this._insertNumberValue(Buffer.prototype.writeInt32LE,4,a,b)}writeBigInt64BE(a,b){return d.bigIntAndBufferInt64Check("writeBigInt64BE"),this._writeNumberValue(Buffer.prototype.writeBigInt64BE,8,a,b)}insertBigInt64BE(a,b){return d.bigIntAndBufferInt64Check("writeBigInt64BE"),this._insertNumberValue(Buffer.prototype.writeBigInt64BE,8,a,b)}writeBigInt64LE(a,b){return d.bigIntAndBufferInt64Check("writeBigInt64LE"),this._writeNumberValue(Buffer.prototype.writeBigInt64LE,8,a,b)}insertBigInt64LE(a,b){return d.bigIntAndBufferInt64Check("writeBigInt64LE"),this._insertNumberValue(Buffer.prototype.writeBigInt64LE,8,a,b)}readUInt8(a){return this._readNumberValue(Buffer.prototype.readUInt8,1,a)}readUInt16BE(a){return this._readNumberValue(Buffer.prototype.readUInt16BE,2,a)}readUInt16LE(a){return this._readNumberValue(Buffer.prototype.readUInt16LE,2,a)}readUInt32BE(a){return this._readNumberValue(Buffer.prototype.readUInt32BE,4,a)}readUInt32LE(a){return this._readNumberValue(Buffer.prototype.readUInt32LE,4,a)}readBigUInt64BE(a){return d.bigIntAndBufferInt64Check("readBigUInt64BE"),this._readNumberValue(Buffer.prototype.readBigUInt64BE,8,a)}readBigUInt64LE(a){return d.bigIntAndBufferInt64Check("readBigUInt64LE"),this._readNumberValue(Buffer.prototype.readBigUInt64LE,8,a)}writeUInt8(a,b){return this._writeNumberValue(Buffer.prototype.writeUInt8,1,a,b)}insertUInt8(a,b){return this._insertNumberValue(Buffer.prototype.writeUInt8,1,a,b)}writeUInt16BE(a,b){return this._writeNumberValue(Buffer.prototype.writeUInt16BE,2,a,b)}insertUInt16BE(a,b){return this._insertNumberValue(Buffer.prototype.writeUInt16BE,2,a,b)}writeUInt16LE(a,b){return this._writeNumberValue(Buffer.prototype.writeUInt16LE,2,a,b)}insertUInt16LE(a,b){return this._insertNumberValue(Buffer.prototype.writeUInt16LE,2,a,b)}writeUInt32BE(a,b){return this._writeNumberValue(Buffer.prototype.writeUInt32BE,4,a,b)}insertUInt32BE(a,b){return this._insertNumberValue(Buffer.prototype.writeUInt32BE,4,a,b)}writeUInt32LE(a,b){return this._writeNumberValue(Buffer.prototype.writeUInt32LE,4,a,b)}insertUInt32LE(a,b){return this._insertNumberValue(Buffer.prototype.writeUInt32LE,4,a,b)}writeBigUInt64BE(a,b){return d.bigIntAndBufferInt64Check("writeBigUInt64BE"),this._writeNumberValue(Buffer.prototype.writeBigUInt64BE,8,a,b)}insertBigUInt64BE(a,b){return d.bigIntAndBufferInt64Check("writeBigUInt64BE"),this._insertNumberValue(Buffer.prototype.writeBigUInt64BE,8,a,b)}writeBigUInt64LE(a,b){return d.bigIntAndBufferInt64Check("writeBigUInt64LE"),this._writeNumberValue(Buffer.prototype.writeBigUInt64LE,8,a,b)}insertBigUInt64LE(a,b){return d.bigIntAndBufferInt64Check("writeBigUInt64LE"),this._insertNumberValue(Buffer.prototype.writeBigUInt64LE,8,a,b)}readFloatBE(a){return this._readNumberValue(Buffer.prototype.readFloatBE,4,a)}readFloatLE(a){return this._readNumberValue(Buffer.prototype.readFloatLE,4,a)}writeFloatBE(a,b){return this._writeNumberValue(Buffer.prototype.writeFloatBE,4,a,b)}insertFloatBE(a,b){return this._insertNumberValue(Buffer.prototype.writeFloatBE,4,a,b)}writeFloatLE(a,b){return this._writeNumberValue(Buffer.prototype.writeFloatLE,4,a,b)}insertFloatLE(a,b){return this._insertNumberValue(Buffer.prototype.writeFloatLE,4,a,b)}readDoubleBE(a){return this._readNumberValue(Buffer.prototype.readDoubleBE,8,a)}readDoubleLE(a){return this._readNumberValue(Buffer.prototype.readDoubleLE,8,a)}writeDoubleBE(a,b){return this._writeNumberValue(Buffer.prototype.writeDoubleBE,8,a,b)}insertDoubleBE(a,b){return this._insertNumberValue(Buffer.prototype.writeDoubleBE,8,a,b)}writeDoubleLE(a,b){return this._writeNumberValue(Buffer.prototype.writeDoubleLE,8,a,b)}insertDoubleLE(a,b){return this._insertNumberValue(Buffer.prototype.writeDoubleLE,8,a,b)}readString(a,b){let c;"number"==typeof a?(d.checkLengthValue(a),c=Math.min(a,this.length-this._readOffset)):(b=a,c=this.length-this._readOffset),void 0!==b&&d.checkEncoding(b);let e=this._buff.slice(this._readOffset,this._readOffset+c).toString(b||this._encoding);return this._readOffset+=c,e}insertString(a,b,c){return d.checkOffsetValue(b),this._handleString(a,!0,b,c)}writeString(a,b,c){return this._handleString(a,!1,b,c)}readStringNT(a){void 0!==a&&d.checkEncoding(a);let b=this.length;for(let a=this._readOffset;a<this.length;a++)if(0===this._buff[a]){b=a;break}let c=this._buff.slice(this._readOffset,b);return this._readOffset=b+1,c.toString(a||this._encoding)}insertStringNT(a,b,c){return d.checkOffsetValue(b),this.insertString(a,b,c),this.insertUInt8(0,b+a.length),this}writeStringNT(a,b,c){return this.writeString(a,b,c),this.writeUInt8(0,"number"==typeof b?b+a.length:this.writeOffset),this}readBuffer(a){void 0!==a&&d.checkLengthValue(a);let b="number"==typeof a?a:this.length,c=Math.min(this.length,this._readOffset+b),e=this._buff.slice(this._readOffset,c);return this._readOffset=c,e}insertBuffer(a,b){return d.checkOffsetValue(b),this._handleBuffer(a,!0,b)}writeBuffer(a,b){return this._handleBuffer(a,!1,b)}readBufferNT(){let a=this.length;for(let b=this._readOffset;b<this.length;b++)if(0===this._buff[b]){a=b;break}let b=this._buff.slice(this._readOffset,a);return this._readOffset=a+1,b}insertBufferNT(a,b){return d.checkOffsetValue(b),this.insertBuffer(a,b),this.insertUInt8(0,b+a.length),this}writeBufferNT(a,b){return void 0!==b&&d.checkOffsetValue(b),this.writeBuffer(a,b),this.writeUInt8(0,"number"==typeof b?b+a.length:this._writeOffset),this}clear(){return this._writeOffset=0,this._readOffset=0,this.length=0,this}remaining(){return this.length-this._readOffset}get readOffset(){return this._readOffset}set readOffset(a){d.checkOffsetValue(a),d.checkTargetOffset(a,this),this._readOffset=a}get writeOffset(){return this._writeOffset}set writeOffset(a){d.checkOffsetValue(a),d.checkTargetOffset(a,this),this._writeOffset=a}get encoding(){return this._encoding}set encoding(a){d.checkEncoding(a),this._encoding=a}get internalBuffer(){return this._buff}toBuffer(){return this._buff.slice(0,this.length)}toString(a){let b="string"==typeof a?a:this._encoding;return d.checkEncoding(b),this._buff.toString(b,0,this.length)}destroy(){return this.clear(),this}_handleString(a,b,c,e){let f=this._writeOffset,g=this._encoding;"number"==typeof c?f=c:"string"==typeof c&&(d.checkEncoding(c),g=c),"string"==typeof e&&(d.checkEncoding(e),g=e);let h=Buffer.byteLength(a,g);return b?this.ensureInsertable(h,f):this._ensureWriteable(h,f),this._buff.write(a,f,h,g),b?this._writeOffset+=h:"number"==typeof c?this._writeOffset=Math.max(this._writeOffset,f+h):this._writeOffset+=h,this}_handleBuffer(a,b,c){let d="number"==typeof c?c:this._writeOffset;return b?this.ensureInsertable(a.length,d):this._ensureWriteable(a.length,d),a.copy(this._buff,d),b?this._writeOffset+=a.length:"number"==typeof c?this._writeOffset=Math.max(this._writeOffset,d+a.length):this._writeOffset+=a.length,this}ensureReadable(a,b){let c=this._readOffset;if(void 0!==b&&(d.checkOffsetValue(b),c=b),c<0||c+a>this.length)throw Error(d.ERRORS.INVALID_READ_BEYOND_BOUNDS)}ensureInsertable(a,b){d.checkOffsetValue(b),this._ensureCapacity(this.length+a),b<this.length&&this._buff.copy(this._buff,b+a,b,this._buff.length),b+a>this.length?this.length=b+a:this.length+=a}_ensureWriteable(a,b){let c="number"==typeof b?b:this._writeOffset;this._ensureCapacity(c+a),c+a>this.length&&(this.length=c+a)}_ensureCapacity(a){let b=this._buff.length;if(a>b){let c=this._buff,d=3*b/2+1;d<a&&(d=a),this._buff=Buffer.allocUnsafe(d),c.copy(this._buff,0,0,b)}}_readNumberValue(a,b,c){this.ensureReadable(b,c);let d=a.call(this._buff,"number"==typeof c?c:this._readOffset);return void 0===c&&(this._readOffset+=b),d}_insertNumberValue(a,b,c,e){return d.checkOffsetValue(e),this.ensureInsertable(b,e),a.call(this._buff,c,e),this._writeOffset+=b,this}_writeNumberValue(a,b,c,e){if("number"==typeof e){if(e<0)throw Error(d.ERRORS.INVALID_WRITE_BEYOND_BOUNDS);d.checkOffsetValue(e)}let f="number"==typeof e?e:this._writeOffset;return this._ensureWriteable(b,f),a.call(this._buff,c,f),"number"==typeof e?this._writeOffset=Math.max(this._writeOffset,f+b):this._writeOffset+=b,this}}b.SmartBuffer=e},97462:(a,b)=>{"use strict";function c(a){return a.toString(16).padStart(2,"0")}Object.defineProperty(b,"__esModule",{value:!0}),b.isInSubnet=function(a){return!(this.subnetMask<a.subnetMask)&&this.mask(a.subnetMask)===a.mask()},b.isCorrect=function(a){return function(){return this.addressMinusSuffix===this.correctForm()&&(this.subnetMask===a&&!this.parsedSubnet||this.parsedSubnet===String(this.subnetMask))}},b.numberToPaddedHex=c,b.stringToPaddedHex=function(a){return c(parseInt(a,10))},b.testBit=function(a,b){let{length:c}=a;if(b>c)return!1;let d=c-b;return"1"===a.substring(d,d+1)}},98748:function(a,b,c){"use strict";var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),f=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)"default"!==c&&Object.prototype.hasOwnProperty.call(a,c)&&d(b,a,c);return e(b,a),b},g=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),b.Agent=void 0;let h=f(c(91645)),i=f(c(81630)),j=c(55591);g(c(25945),b);let k=Symbol("AgentBaseInternalState");class l extends i.Agent{constructor(a){super(a),this[k]={}}isSecureEndpoint(a){if(a){if("boolean"==typeof a.secureEndpoint)return a.secureEndpoint;if("string"==typeof a.protocol)return"https:"===a.protocol}let{stack:b}=Error();return"string"==typeof b&&b.split("\n").some(a=>-1!==a.indexOf("(https.js:")||-1!==a.indexOf("node:https:"))}incrementSockets(a){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[a]||(this.sockets[a]=[]);let b=new h.Socket({writable:!1});return this.sockets[a].push(b),this.totalSocketCount++,b}decrementSockets(a,b){if(!this.sockets[a]||null===b)return;let c=this.sockets[a],d=c.indexOf(b);-1!==d&&(c.splice(d,1),this.totalSocketCount--,0===c.length&&delete this.sockets[a])}getName(a){return this.isSecureEndpoint(a)?j.Agent.prototype.getName.call(this,a):super.getName(a)}createSocket(a,b,c){let d={...b,secureEndpoint:this.isSecureEndpoint(b)},e=this.getName(d),f=this.incrementSockets(e);Promise.resolve().then(()=>this.connect(a,d)).then(g=>{if(this.decrementSockets(e,f),g instanceof i.Agent)try{return g.addRequest(a,d)}catch(a){return c(a)}this[k].currentSocket=g,super.createSocket(a,b,c)},a=>{this.decrementSockets(e,f),c(a)})}createConnection(){let a=this[k].currentSocket;if(this[k].currentSocket=void 0,!a)throw Error("No socket was returned in the `connect()` function");return a}get defaultPort(){return this[k].defaultPort??("https:"===this.protocol?443:80)}set defaultPort(a){this[k]&&(this[k].defaultPort=a)}get protocol(){return this[k].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(a){this[k]&&(this[k].protocol=a)}}b.Agent=l}};
@@ -1,3 +1,3 @@
1
- "use strict";exports.id=2506,exports.ids=[2506],exports.modules={12506:(a,b,c)=>{c.d(b,{A1:()=>A,Kp:()=>y,LC:()=>H,OZ:()=>F,PZ:()=>I,Z2:()=>r,a$:()=>x,c$:()=>G,xh:()=>v});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h),j=c(79646),k=c(66936);c(85567);var l=c(49120);let m=g().join(l.n,"bin"),n="darwin"===i().platform();i().platform();let o="win32"===i().platform(),p=g().join(m,o?"tailscale.exe":"tailscale"),q=g().join(l.n,"tailscale"),r=g().join(q,"tailscaled.sock"),s=o?[]:["--socket",r],t="C:\\Program Files\\Tailscale\\tailscale.exe";function u(){try{let a=(0,j.execSync)("which tailscale 2>/dev/null || where tailscale 2>nul",{encoding:"utf8",windowsHide:!0}).trim();if(a)return a}catch(a){}return e().existsSync(p)?p:o&&e().existsSync(t)?t:null}function v(){return null!==u()}function w(...a){return[...s,...a]}function x(){let a=u();if(!a)return!1;try{let b=(0,j.execSync)(`"${a}" ${s.join(" ")} status --json`,{encoding:"utf8",windowsHide:!0,env:{...process.env,PATH:B},timeout:5e3}),c=JSON.parse(b);return"Running"===c.BackendState}catch(a){return!1}}function y(){let a=u();if(!a)return!1;try{let b=(0,j.execSync)(`"${a}" ${s.join(" ")} funnel status --json 2>/dev/null`,{encoding:"utf8",windowsHide:!0}),c=JSON.parse(b);return Object.keys(c.AllowFunnel||{}).length>0}catch(a){return!1}}function z(a){let b=u();if(!b)return null;try{let a=(0,j.execSync)(`"${b}" ${s.join(" ")} status --json`,{encoding:"utf8",windowsHide:!0}),c=JSON.parse(a),d=c.Self?.DNSName?.replace(/\.$/,"");if(d)return`https://${d}`}catch(a){}return null}async function A(a,b,c){let d=c||(()=>{});return o?(await E(d),{success:!0}):(n?await C(a,d):await D(a,d),d("Starting daemon..."),await F(a),d("Logging in..."),G(b))}let B=`/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:${process.env.PATH||""}`;async function C(a,b){if(function(){try{return(0,j.execSync)("which brew",{stdio:"ignore",windowsHide:!0,env:{...process.env,PATH:B}}),!0}catch{return!1}}()){b("Installing via Homebrew..."),await new Promise((a,c)=>{let d=(0,j.spawn)("brew",["install","tailscale"],{stdio:["ignore","pipe","pipe"],windowsHide:!0,env:{...process.env,PATH:B}});d.stdout.on("data",a=>{let c=a.toString().trim();c&&b(c)}),d.stderr.on("data",a=>{let c=a.toString().trim();c&&b(c)}),d.on("close",b=>{0===b?a():c(Error(`brew install failed (code ${b})`))}),d.on("error",c)});return}let c=g().join(i().tmpdir(),"tailscale.pkg");b("Downloading Tailscale package..."),await new Promise((a,d)=>{let e=(0,j.spawn)("curl",["-fL","--progress-bar","https://pkgs.tailscale.com/stable/tailscale-latest.pkg","-o",c],{stdio:["ignore","pipe","pipe"],windowsHide:!0});e.stderr.on("data",a=>{let c=a.toString().trim();c&&b(c)}),e.on("close",b=>{0===b?a():d(Error("Download failed"))}),e.on("error",d)}),b("Installing package..."),await new Promise((d,e)=>{let f=(0,j.spawn)("sudo",["-S","installer","-pkg",c,"-target","/"],{stdio:["pipe","pipe","pipe"],windowsHide:!0}),g="";f.stderr.on("data",a=>{g+=a.toString()}),f.stdout.on("data",a=>{let c=a.toString().trim();c&&b(c)}),f.on("close",a=>{try{(0,j.execSync)(`rm -f ${c}`,{stdio:"ignore",windowsHide:!0})}catch{}0===a?d():e(Error(g.includes("incorrect password")||g.includes("Sorry")?"Wrong sudo password":g||`Exit code ${a}`))}),f.on("error",e),f.stdin.write(`${a}
1
+ "use strict";exports.id=2506,exports.ids=[2506],exports.modules={12506:(a,b,c)=>{c.d(b,{A1:()=>A,Kp:()=>y,LC:()=>H,OZ:()=>F,PZ:()=>I,Z2:()=>r,a$:()=>x,c$:()=>G,xh:()=>v});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h),j=c(79646),k=c(66936);c(85567);var l=c(49120);let m=g().join(l.nJ,"bin"),n="darwin"===i().platform();i().platform();let o="win32"===i().platform(),p=g().join(m,o?"tailscale.exe":"tailscale"),q=g().join(l.nJ,"tailscale"),r=g().join(q,"tailscaled.sock"),s=o?[]:["--socket",r],t="C:\\Program Files\\Tailscale\\tailscale.exe";function u(){try{let a=(0,j.execSync)("which tailscale 2>/dev/null || where tailscale 2>nul",{encoding:"utf8",windowsHide:!0}).trim();if(a)return a}catch(a){}return e().existsSync(p)?p:o&&e().existsSync(t)?t:null}function v(){return null!==u()}function w(...a){return[...s,...a]}function x(){let a=u();if(!a)return!1;try{let b=(0,j.execSync)(`"${a}" ${s.join(" ")} status --json`,{encoding:"utf8",windowsHide:!0,env:{...process.env,PATH:B},timeout:5e3}),c=JSON.parse(b);return"Running"===c.BackendState}catch(a){return!1}}function y(){let a=u();if(!a)return!1;try{let b=(0,j.execSync)(`"${a}" ${s.join(" ")} funnel status --json 2>/dev/null`,{encoding:"utf8",windowsHide:!0}),c=JSON.parse(b);return Object.keys(c.AllowFunnel||{}).length>0}catch(a){return!1}}function z(a){let b=u();if(!b)return null;try{let a=(0,j.execSync)(`"${b}" ${s.join(" ")} status --json`,{encoding:"utf8",windowsHide:!0}),c=JSON.parse(a),d=c.Self?.DNSName?.replace(/\.$/,"");if(d)return`https://${d}`}catch(a){}return null}async function A(a,b,c){let d=c||(()=>{});return o?(await E(d),{success:!0}):(n?await C(a,d):await D(a,d),d("Starting daemon..."),await F(a),d("Logging in..."),G(b))}let B=`/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:${process.env.PATH||""}`;async function C(a,b){if(function(){try{return(0,j.execSync)("which brew",{stdio:"ignore",windowsHide:!0,env:{...process.env,PATH:B}}),!0}catch{return!1}}()){b("Installing via Homebrew..."),await new Promise((a,c)=>{let d=(0,j.spawn)("brew",["install","tailscale"],{stdio:["ignore","pipe","pipe"],windowsHide:!0,env:{...process.env,PATH:B}});d.stdout.on("data",a=>{let c=a.toString().trim();c&&b(c)}),d.stderr.on("data",a=>{let c=a.toString().trim();c&&b(c)}),d.on("close",b=>{0===b?a():c(Error(`brew install failed (code ${b})`))}),d.on("error",c)});return}let c=g().join(i().tmpdir(),"tailscale.pkg");b("Downloading Tailscale package..."),await new Promise((a,d)=>{let e=(0,j.spawn)("curl",["-fL","--progress-bar","https://pkgs.tailscale.com/stable/tailscale-latest.pkg","-o",c],{stdio:["ignore","pipe","pipe"],windowsHide:!0});e.stderr.on("data",a=>{let c=a.toString().trim();c&&b(c)}),e.on("close",b=>{0===b?a():d(Error("Download failed"))}),e.on("error",d)}),b("Installing package..."),await new Promise((d,e)=>{let f=(0,j.spawn)("sudo",["-S","installer","-pkg",c,"-target","/"],{stdio:["pipe","pipe","pipe"],windowsHide:!0}),g="";f.stderr.on("data",a=>{g+=a.toString()}),f.stdout.on("data",a=>{let c=a.toString().trim();c&&b(c)}),f.on("close",a=>{try{(0,j.execSync)(`rm -f ${c}`,{stdio:"ignore",windowsHide:!0})}catch{}0===a?d():e(Error(g.includes("incorrect password")||g.includes("Sorry")?"Wrong sudo password":g||`Exit code ${a}`))}),f.on("error",e),f.stdin.write(`${a}
2
2
  `),f.stdin.end()})}async function D(a,b){return b("Downloading install script..."),new Promise((c,d)=>{let e=(0,j.spawn)("curl",["-fsSL","https://tailscale.com/install.sh"],{stdio:["ignore","pipe","pipe"],windowsHide:!0}),f="",g="";e.stdout.on("data",a=>{f+=a.toString()}),e.stderr.on("data",a=>{g+=a.toString()}),e.on("exit",e=>{if(0!==e)return d(Error(`Failed to download install script: ${g}`));b("Running install script...");let h=(0,j.spawn)("sudo",["-S","sh"],{stdio:["pipe","pipe","pipe"],windowsHide:!0}),i="";h.stdout.on("data",a=>{let c=a.toString().trim();c&&b(c)}),h.stderr.on("data",a=>{i+=a.toString()}),h.on("close",a=>{0===a?c():d(Error(i.includes("incorrect password")||i.includes("Sorry")?"Wrong sudo password":i||`Exit code ${a}`))}),h.on("error",d),h.stdin.write(`${a}
3
- `),h.stdin.write(f),h.stdin.end()}),e.on("error",d)})}async function E(a){let b=g().join(i().tmpdir(),"tailscale-setup.msi");a("Downloading Tailscale installer..."),await new Promise((c,d)=>{let e=(0,j.spawn)("curl.exe",["-L","-#","-o",b,"https://pkgs.tailscale.com/stable/tailscale-setup-latest-amd64.msi"],{stdio:["ignore","pipe","pipe"],windowsHide:!0}),f="";e.stderr.on("data",b=>{let c=b.toString().match(/(\d+\.\d)%/);c&&c[1]!==f&&(f=c[1],a(`Downloading... ${f}%`))}),e.on("close",a=>0===a?c():d(Error("Download failed"))),e.on("error",d)}),a("Installing Tailscale (UAC prompt may appear)..."),await new Promise((c,d)=>{let f=`'/i','${b}','TS_NOLAUNCH=true','/quiet','/norestart'`,g=(0,j.spawn)("powershell",["-NoProfile","-NonInteractive","-Command",`Start-Process msiexec -ArgumentList ${f} -Verb RunAs -Wait`],{stdio:["ignore","pipe","pipe"],windowsHide:!0});g.stderr.on("data",b=>{let c=b.toString().trim();c&&a(c)}),g.on("close",a=>{try{e().unlinkSync(b)}catch{}0===a?c():d(Error(`msiexec failed (code ${a})`))}),g.on("error",d)}),a("Verifying installation...");let c=Date.now();for(;Date.now()-c<1e4;){if(e().existsSync(t))return void a("Installation complete.");await new Promise(a=>setTimeout(a,1e3))}throw Error("Installation finished but tailscale.exe not found")}async function F(a){if(o){try{let a=u();if(a)return void(0,j.execSync)(`"${a}" status --json`,{stdio:"ignore",windowsHide:!0,timeout:3e3})}catch{}try{(0,j.execSync)("net start Tailscale",{stdio:"ignore",windowsHide:!0,timeout:1e4}),await new Promise(a=>setTimeout(a,3e3))}catch{}return}try{let a=u()||"tailscale";(0,j.execSync)(`"${a}" ${s.join(" ")} status --json`,{stdio:"ignore",windowsHide:!0,env:{...process.env,PATH:B},timeout:3e3});return}catch{}e().existsSync(q)||e().mkdirSync(q,{recursive:!0});let b=`${n?"/usr/local/bin/tailscaled":"tailscaled"} --socket=${r} --statedir=${q}`;await (0,k.execWithPassword)(`nohup ${b} > /dev/null 2>&1 &`,a||""),await new Promise(a=>setTimeout(a,3e3))}function G(a){let b=u();return b?new Promise((c,d)=>{if(F("").catch(()=>{}),x())return void c({alreadyLoggedIn:!0});let e=w("up","--accept-routes");a&&e.push(`--hostname=${a}`);let f=(0,j.spawn)(b,e,{stdio:["ignore","pipe","pipe"],detached:!0,windowsHide:!0}),g=!1,h="",i=setTimeout(()=>{if(g)return;g=!0,f.unref();let a=k(h);a?c({authUrl:a}):d(Error("tailscale up timed out without auth URL"))},15e3),k=a=>{let b=a.match(/https:\/\/login\.tailscale\.com\/a\/[a-zA-Z0-9]+/);return b?b[0]:null},l=a=>{let b=k(h+=a.toString());b&&!g&&(g=!0,clearTimeout(i),f.unref(),c({authUrl:b}))};f.stdout.on("data",l),f.stderr.on("data",l),f.on("error",a=>{g||(g=!0,clearTimeout(i),d(a))}),f.on("exit",a=>{if(g)return;g=!0,clearTimeout(i);let b=k(h);b?c({authUrl:b}):0===a||x()?c({alreadyLoggedIn:!0}):d(Error(`tailscale up exited with code ${a}`))})}):Promise.reject(Error("Tailscale not installed"))}async function H(a){let b=u();if(!b)throw Error("Tailscale not installed");try{(0,j.execSync)(`"${b}" ${s.join(" ")} funnel --bg reset`,{stdio:"ignore",windowsHide:!0})}catch(a){}return new Promise((c,d)=>{let e=(0,j.spawn)(b,w("funnel","--bg",`${a}`),{stdio:["ignore","pipe","pipe"],windowsHide:!0}),f=!1,g="",h=setTimeout(()=>{if(f)return;f=!0;let b=z(a);b?c({tunnelUrl:b}):d(Error(`Tailscale funnel timed out: ${g.trim()||"no output"}`))},3e4),i=a=>(a.match(/https:\/\/[a-z0-9-]+\.[a-z0-9.-]+\.ts\.net[^\s]*/i)||[])[0]?.replace(/\/$/,"")||null,k=!1,l=a=>{if((g+=a.toString()).includes("Funnel is not enabled")&&(k=!0),k&&!f){let a=g.match(/https:\/\/login\.tailscale\.com\/[^\s]+/);if(a){f=!0,clearTimeout(h),e.kill(),c({funnelNotEnabled:!0,enableUrl:a[0]});return}}let b=i(g);b&&!f&&(f=!0,clearTimeout(h),c({tunnelUrl:b}))};e.stdout.on("data",l),e.stderr.on("data",l),e.on("exit",b=>{if(f)return;f=!0,clearTimeout(h);let e=i(g)||z(a);e?c({tunnelUrl:e}):d(Error(`tailscale funnel failed (code ${b}): ${g.trim()}`))}),e.on("error",a=>{f||(f=!0,clearTimeout(h),d(a))})})}function I(){let a=u();if(a)try{(0,j.execSync)(`"${a}" ${s.join(" ")} funnel --bg reset`,{stdio:"ignore",windowsHide:!0})}catch(a){}}},85567:(a,b,c)=>{c.d(b,{C7:()=>m,Cr:()=>p,LZ:()=>n,jd:()=>s,r4:()=>q,xS:()=>o});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(49120);let i=g().join(h.n,"tunnel"),j=g().join(i,"state.json"),k=g().join(i,"cloudflared.pid");function l(){e().existsSync(i)||e().mkdirSync(i,{recursive:!0})}function m(){try{if(e().existsSync(j))return JSON.parse(e().readFileSync(j,"utf8"))}catch(a){}return null}function n(a){l(),e().writeFileSync(j,JSON.stringify(a,null,2))}function o(a){l(),e().writeFileSync(k,a.toString())}function p(){try{if(e().existsSync(k))return parseInt(e().readFileSync(k,"utf8"))}catch(a){}return null}function q(){try{e().existsSync(k)&&e().unlinkSync(k)}catch(a){}}g().join(i,"tailscale.pid");let r="abcdefghijklmnpqrstuvwxyz23456789";function s(){let a="";for(let b=0;b<6;b++)a+=r.charAt(Math.floor(Math.random()*r.length));return a}}};
3
+ `),h.stdin.write(f),h.stdin.end()}),e.on("error",d)})}async function E(a){let b=g().join(i().tmpdir(),"tailscale-setup.msi");a("Downloading Tailscale installer..."),await new Promise((c,d)=>{let e=(0,j.spawn)("curl.exe",["-L","-#","-o",b,"https://pkgs.tailscale.com/stable/tailscale-setup-latest-amd64.msi"],{stdio:["ignore","pipe","pipe"],windowsHide:!0}),f="";e.stderr.on("data",b=>{let c=b.toString().match(/(\d+\.\d)%/);c&&c[1]!==f&&(f=c[1],a(`Downloading... ${f}%`))}),e.on("close",a=>0===a?c():d(Error("Download failed"))),e.on("error",d)}),a("Installing Tailscale (UAC prompt may appear)..."),await new Promise((c,d)=>{let f=`'/i','${b}','TS_NOLAUNCH=true','/quiet','/norestart'`,g=(0,j.spawn)("powershell",["-NoProfile","-NonInteractive","-Command",`Start-Process msiexec -ArgumentList ${f} -Verb RunAs -Wait`],{stdio:["ignore","pipe","pipe"],windowsHide:!0});g.stderr.on("data",b=>{let c=b.toString().trim();c&&a(c)}),g.on("close",a=>{try{e().unlinkSync(b)}catch{}0===a?c():d(Error(`msiexec failed (code ${a})`))}),g.on("error",d)}),a("Verifying installation...");let c=Date.now();for(;Date.now()-c<1e4;){if(e().existsSync(t))return void a("Installation complete.");await new Promise(a=>setTimeout(a,1e3))}throw Error("Installation finished but tailscale.exe not found")}async function F(a){if(o){try{let a=u();if(a)return void(0,j.execSync)(`"${a}" status --json`,{stdio:"ignore",windowsHide:!0,timeout:3e3})}catch{}try{(0,j.execSync)("net start Tailscale",{stdio:"ignore",windowsHide:!0,timeout:1e4}),await new Promise(a=>setTimeout(a,3e3))}catch{}return}try{let a=u()||"tailscale";(0,j.execSync)(`"${a}" ${s.join(" ")} status --json`,{stdio:"ignore",windowsHide:!0,env:{...process.env,PATH:B},timeout:3e3});return}catch{}e().existsSync(q)||e().mkdirSync(q,{recursive:!0});let b=`${n?"/usr/local/bin/tailscaled":"tailscaled"} --socket=${r} --statedir=${q}`;await (0,k.execWithPassword)(`nohup ${b} > /dev/null 2>&1 &`,a||""),await new Promise(a=>setTimeout(a,3e3))}function G(a){let b=u();return b?new Promise((c,d)=>{if(F("").catch(()=>{}),x())return void c({alreadyLoggedIn:!0});let e=w("up","--accept-routes");a&&e.push(`--hostname=${a}`);let f=(0,j.spawn)(b,e,{stdio:["ignore","pipe","pipe"],detached:!0,windowsHide:!0}),g=!1,h="",i=setTimeout(()=>{if(g)return;g=!0,f.unref();let a=k(h);a?c({authUrl:a}):d(Error("tailscale up timed out without auth URL"))},15e3),k=a=>{let b=a.match(/https:\/\/login\.tailscale\.com\/a\/[a-zA-Z0-9]+/);return b?b[0]:null},l=a=>{let b=k(h+=a.toString());b&&!g&&(g=!0,clearTimeout(i),f.unref(),c({authUrl:b}))};f.stdout.on("data",l),f.stderr.on("data",l),f.on("error",a=>{g||(g=!0,clearTimeout(i),d(a))}),f.on("exit",a=>{if(g)return;g=!0,clearTimeout(i);let b=k(h);b?c({authUrl:b}):0===a||x()?c({alreadyLoggedIn:!0}):d(Error(`tailscale up exited with code ${a}`))})}):Promise.reject(Error("Tailscale not installed"))}async function H(a){let b=u();if(!b)throw Error("Tailscale not installed");try{(0,j.execSync)(`"${b}" ${s.join(" ")} funnel --bg reset`,{stdio:"ignore",windowsHide:!0})}catch(a){}return new Promise((c,d)=>{let e=(0,j.spawn)(b,w("funnel","--bg",`${a}`),{stdio:["ignore","pipe","pipe"],windowsHide:!0}),f=!1,g="",h=setTimeout(()=>{if(f)return;f=!0;let b=z(a);b?c({tunnelUrl:b}):d(Error(`Tailscale funnel timed out: ${g.trim()||"no output"}`))},3e4),i=a=>(a.match(/https:\/\/[a-z0-9-]+\.[a-z0-9.-]+\.ts\.net[^\s]*/i)||[])[0]?.replace(/\/$/,"")||null,k=!1,l=a=>{if((g+=a.toString()).includes("Funnel is not enabled")&&(k=!0),k&&!f){let a=g.match(/https:\/\/login\.tailscale\.com\/[^\s]+/);if(a){f=!0,clearTimeout(h),e.kill(),c({funnelNotEnabled:!0,enableUrl:a[0]});return}}let b=i(g);b&&!f&&(f=!0,clearTimeout(h),c({tunnelUrl:b}))};e.stdout.on("data",l),e.stderr.on("data",l),e.on("exit",b=>{if(f)return;f=!0,clearTimeout(h);let e=i(g)||z(a);e?c({tunnelUrl:e}):d(Error(`tailscale funnel failed (code ${b}): ${g.trim()}`))}),e.on("error",a=>{f||(f=!0,clearTimeout(h),d(a))})})}function I(){let a=u();if(a)try{(0,j.execSync)(`"${a}" ${s.join(" ")} funnel --bg reset`,{stdio:"ignore",windowsHide:!0})}catch(a){}}},85567:(a,b,c)=>{c.d(b,{C7:()=>m,Cr:()=>p,LZ:()=>n,jd:()=>s,r4:()=>q,xS:()=>o});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(49120);let i=g().join(h.nJ,"tunnel"),j=g().join(i,"state.json"),k=g().join(i,"cloudflared.pid");function l(){e().existsSync(i)||e().mkdirSync(i,{recursive:!0})}function m(){try{if(e().existsSync(j))return JSON.parse(e().readFileSync(j,"utf8"))}catch(a){}return null}function n(a){l(),e().writeFileSync(j,JSON.stringify(a,null,2))}function o(a){l(),e().writeFileSync(k,a.toString())}function p(){try{if(e().existsSync(k))return parseInt(e().readFileSync(k,"utf8"))}catch(a){}return null}function q(){try{e().existsSync(k)&&e().unlinkSync(k)}catch(a){}}g().join(i,"tailscale.pid");let r="abcdefghijklmnpqrstuvwxyz23456789";function s(){let a="";for(let b=0;b<6;b++)a+=r.charAt(Math.floor(Math.random()*r.length));return a}}};
@@ -1 +1 @@
1
- "use strict";exports.id=2549,exports.ids=[2549],exports.modules={12557:(a,b,c)=>{c.d(b,{Bl:()=>j,Qo:()=>f,S5:()=>l,hk:()=>e,kJ:()=>k});var d=c(3662);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return{shouldFallback:!0,cooldownMs:d.wf}}function f(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let g="modelLock_",h=`${g}__all`;function i(a){return a?`${g}${a}`:h}function j(a,b){let c=a[i(b)]||a[h];return!!c&&new Date(c).getTime()>Date.now()}function k(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(g)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function l(a,b){return{[i(a)]:new Date(Date.now()+b).toISOString()}}},13808:(a,b,c)=>{c.d(b,{lz:()=>f});var d=c(55511),e=c.n(d);function f(){let a=e().randomBytes(32).toString("base64url"),b=e().createHash("sha256").update(a).digest("base64url");return{codeVerifier:a,codeChallenge:b,state:e().randomBytes(32).toString("base64url")}}},43659:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(3662);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:e(a,b)}}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},74177:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{PY:()=>p,Re:()=>n,Su:()=>o,exchangeTokens:()=>m,kP:()=>l,sO:()=>k});var e=c(48895),f=c(13808),g=c(92990),h=a([e]);function i(a){try{if(!a||"string"!=typeof a)return null;let b=a.split(".");if(3!==b.length)return null;let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=(4-c.length%4)%4,e=c+"=".repeat(d);return JSON.parse(Buffer.from(e,"base64").toString("utf8"))}catch{return null}}function j(a){let b=i(a);if(!b)return{};let c=b["https://api.openai.com/auth"]||{};return{email:b.email,chatgptAccountId:c.chatgpt_account_id,chatgptPlanType:c.chatgpt_plan_type}}e=(h.then?(await h)():h)[0];let q={claude:{config:g.OV,flowType:"authorization_code_pkce",buildAuthUrl:(a,b,c,d)=>{let e=new URLSearchParams({code:"true",client_id:a.clientId,response_type:"code",redirect_uri:b,scope:a.scopes.join(" "),code_challenge:d,code_challenge_method:a.codeChallengeMethod,state:c});return`${a.authorizeUrl}?${e.toString()}`},exchangeToken:async(a,b,c,d,e)=>{let f=b,g="";if(f.includes("#")){let a=f.split("#");f=a[0],g=a[1]||""}let h=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({code:f,state:g||e,grant_type:"authorization_code",client_id:a.clientId,redirect_uri:c,code_verifier:d})});if(!h.ok){let a=await h.text();throw Error(`Token exchange failed: ${a}`)}return await h.json()},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope})},codex:{config:g.DI,flowType:"authorization_code_pkce",fixedPort:1455,callbackPath:"/auth/callback",buildAuthUrl:(a,b,c,d)=>{let e={response_type:"code",client_id:a.clientId,redirect_uri:b,scope:a.scope,code_challenge:d,code_challenge_method:a.codeChallengeMethod,...a.extraParams,state:c},f=Object.entries(e).map(([a,b])=>`${a}=${encodeURIComponent(b)}`).join("&");return`${a.authorizeUrl}?${f}`},exchangeToken:async(a,b,c,d)=>{let e=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,code:b,redirect_uri:c,code_verifier:d})});if(!e.ok){let a=await e.text();throw Error(`Token exchange failed: ${a}`)}return await e.json()},mapTokens:a=>{let b=j(a.id_token),c={accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in};return b.email&&(c.email=b.email),(b.chatgptAccountId||b.chatgptPlanType)&&(c.providerSpecificData={chatgptAccountId:b.chatgptAccountId,chatgptPlanType:b.chatgptPlanType}),c}},"gemini-cli":{config:g.LT,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({client_id:a.clientId,response_type:"code",redirect_uri:b,scope:a.scopes.join(" "),state:c,access_type:"offline",prompt:"consent"});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,client_secret:a.clientSecret,code:b,redirect_uri:c})});if(!d.ok){let a=await d.text();throw Error(`Token exchange failed: ${a}`)}return await d.json()},postExchange:async a=>{let b=await fetch(`${g.LT.userInfoUrl}?alt=json`,{headers:{Authorization:`Bearer ${a.access_token}`}}),c=b.ok?await b.json():{},d="";try{let b=await fetch("https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",{method:"POST",headers:{Authorization:`Bearer ${a.access_token}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:getOAuthClientMetadata(),mode:1})});if(b.ok){let a=await b.json();d=a.cloudaicompanionProject?.id||a.cloudaicompanionProject||""}}catch(a){console.log("Failed to fetch project ID:",a)}return{userInfo:c,projectId:d}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope,email:b?.userInfo?.email,projectId:b?.projectId})},antigravity:{config:g.YT,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({client_id:a.clientId,response_type:"code",redirect_uri:b,scope:a.scopes.join(" "),state:c,access_type:"offline",prompt:"consent"});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,client_secret:a.clientSecret,code:b,redirect_uri:c})});if(!d.ok){let a=await d.text();throw Error(`Token exchange failed: ${a}`)}return await d.json()},postExchange:async a=>{let b={Authorization:`Bearer ${a.access_token}`,"Content-Type":"application/json","User-Agent":g.YT.loadCodeAssistUserAgent,"X-Goog-Api-Client":g.YT.loadCodeAssistApiClient,"Client-Metadata":g.YT.loadCodeAssistClientMetadata,"x-request-source":"local"},c={ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"},d=await fetch(`${g.YT.userInfoUrl}?alt=json`,{headers:{Authorization:`Bearer ${a.access_token}`,"x-request-source":"local"}}),e=d.ok?await d.json():{},f="",h="legacy-tier";try{let a=await fetch(g.YT.loadCodeAssistEndpoint,{method:"POST",headers:b,body:JSON.stringify({metadata:c})});if(a.ok){let b=await a.json();if(f=b.cloudaicompanionProject?.id||b.cloudaicompanionProject||"",Array.isArray(b.allowedTiers)){for(let a of b.allowedTiers)if(a.isDefault&&a.id){h=a.id.trim();break}}}}catch(a){console.log("Failed to load code assist:",a)}return f&&(async()=>{for(let a=0;a<10;a++){try{let a=await fetch(g.YT.onboardUserEndpoint,{method:"POST",headers:b,body:JSON.stringify({tierId:h,metadata:c})});if(a.ok){let b=await a.json();if(!0===b.done)break}}catch(a){break}await new Promise(a=>setTimeout(a,5e3))}})().catch(()=>{}),{userInfo:e,projectId:f}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope,email:b?.userInfo?.email,projectId:b?.projectId})},iflow:{config:g.ZL,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({loginMethod:a.extraParams.loginMethod,type:a.extraParams.type,redirect:b,state:c,client_id:a.clientId});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=Buffer.from(`${a.clientId}:${a.clientSecret}`).toString("base64"),e=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${d}`},body:new URLSearchParams({grant_type:"authorization_code",code:b,redirect_uri:c,client_id:a.clientId,client_secret:a.clientSecret})});if(!e.ok){let a=await e.text();throw Error(`Token exchange failed: ${a}`)}return await e.json()},postExchange:async a=>{let b=await fetch(`${g.ZL.userInfoUrl}?accessToken=${encodeURIComponent(a.access_token)}`,{headers:{Accept:"application/json"}});if(!b.ok){let a=await b.text();throw Error(`Failed to fetch user info: ${a}`)}let c=await b.json();if(!c.success)throw Error(`User info request failed: ${c.message||"Unknown error"}`);let d=c.data||{};if(!d.apiKey||""===d.apiKey.trim())throw Error("Empty API key returned from iFlow");if(!(d.email?.trim()||d.phone?.trim()))throw Error("Missing account email/phone in user info");return{userInfo:d}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,apiKey:b?.userInfo?.apiKey,email:b?.userInfo?.email||b?.userInfo?.phone,displayName:b?.userInfo?.nickname||b?.userInfo?.name})},qoder:{config:g.hF,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({client_id:a.clientId,response_type:"code",redirect_uri:b,state:c});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=Buffer.from(`${a.clientId}:${a.clientSecret}`).toString("base64"),e=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${d}`},body:new URLSearchParams({grant_type:"authorization_code",code:b,redirect_uri:c,client_id:a.clientId,client_secret:a.clientSecret})});if(!e.ok){let a=await e.text();throw Error(`Token exchange failed: ${a}`)}return await e.json()},postExchange:async a=>{let b=await fetch(`${g.hF.userInfoUrl}?accessToken=${encodeURIComponent(a.access_token)}`,{headers:{Accept:"application/json"}});if(!b.ok){let a=await b.text();throw Error(`Failed to fetch user info: ${a}`)}let c=await b.json();if(!c.success)throw Error(`User info request failed: ${c.message||"Unknown error"}`);let d=c.data||{};if(!d.apiKey||""===d.apiKey.trim())throw Error("Empty API key returned from Qoder");if(!(d.email?.trim()||d.phone?.trim()))throw Error("Missing account email/phone in user info");return{userInfo:d}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,apiKey:b?.userInfo?.apiKey,email:b?.userInfo?.email||b?.userInfo?.phone,displayName:b?.userInfo?.nickname||b?.userInfo?.name})},qwen:{config:g.Hp,flowType:"device_code",requestDeviceCode:async(a,b)=>{let c=await fetch(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId,scope:a.scope,code_challenge:b,code_challenge_method:a.codeChallengeMethod})});if(!c.ok){let a=await c.text();throw Error(`Device code request failed: ${a}`)}return await c.json()},pollToken:async(a,b,c)=>{let d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",client_id:a.clientId,device_code:b,code_verifier:c})});return{ok:d.ok,data:await d.json()}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,providerSpecificData:{resourceUrl:a.resource_url}})},github:{config:g.Nu,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId,scope:a.scopes})});if(!b.ok){let a=await b.text();throw Error(`Device code request failed: ${a}`)}return await b.json()},pollToken:async(a,b)=>{let c,d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId,device_code:b,grant_type:"urn:ietf:params:oauth:grant-type:device_code"})});try{c=await d.json()}catch(b){let a=await d.text();c={error:"invalid_response",error_description:a}}return{ok:d.ok,data:c}},postExchange:async a=>{let b=await fetch(g.Nu.copilotTokenUrl,{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json","X-GitHub-Api-Version":g.Nu.apiVersion,"User-Agent":g.Nu.userAgent}}),c=b.ok?await b.json():{},d=await fetch(g.Nu.userInfoUrl,{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json","X-GitHub-Api-Version":g.Nu.apiVersion,"User-Agent":g.Nu.userAgent}}),e=d.ok?await d.json():{};return{copilotToken:c,userInfo:e}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,providerSpecificData:{copilotToken:b?.copilotToken?.token,copilotTokenExpiresAt:b?.copilotToken?.expires_at,githubUserId:b?.userInfo?.id,githubLogin:b?.userInfo?.login,githubName:b?.userInfo?.name,githubEmail:b?.userInfo?.email}})},kiro:{config:g.Tx,flowType:"device_code",requestDeviceCode:async(a,b,c={})=>{let d=("string"==typeof c.region?c.region.trim():"")||"us-east-1",e=("string"==typeof c.startUrl?c.startUrl.trim():"")||a.startUrl,f="idc"===c.authMethod?"idc":"builder-id",g=`https://oidc.${d}.amazonaws.com/client/register`,h=`https://oidc.${d}.amazonaws.com/device_authorization`,i=await fetch(g,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientName:a.clientName,clientType:a.clientType,scopes:a.scopes,grantTypes:a.grantTypes,issuerUrl:a.issuerUrl})});if(!i.ok){let a=await i.text();throw Error(`Client registration failed: ${a}`)}let j=await i.json(),k=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:j.clientId,clientSecret:j.clientSecret,startUrl:e})});if(!k.ok){let a=await k.text();throw Error(`Device authorization failed: ${a}`)}let l=await k.json();return{device_code:l.deviceCode,user_code:l.userCode,verification_uri:l.verificationUri,verification_uri_complete:l.verificationUriComplete,expires_in:l.expiresIn,interval:l.interval||5,_clientId:j.clientId,_clientSecret:j.clientSecret,_region:d,_authMethod:f,_startUrl:e}},pollToken:async(a,b,c,d)=>{let e,f=d?._region||"us-east-1",g=`https://oidc.${f}.amazonaws.com/token`,h=await fetch(g,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:d?._clientId,clientSecret:d?._clientSecret,deviceCode:b,grantType:"urn:ietf:params:oauth:grant-type:device_code"})});try{e=await h.json()}catch(b){let a=await h.text();e={error:"invalid_response",error_description:a}}return e.accessToken?{ok:!0,data:{access_token:e.accessToken,refresh_token:e.refreshToken,expires_in:e.expiresIn,profile_arn:e?.profileArn||null,_clientId:d?._clientId,_clientSecret:d?._clientSecret,_region:d?._region,_authMethod:d?._authMethod,_startUrl:d?._startUrl}}:{ok:!1,data:{error:e.error||"authorization_pending",error_description:e.error_description||e.message}}},mapTokens:a=>{let b=function(a){let b=i(a);if(b)return b.email||b.preferred_username||b.sub||void 0}(a.access_token);return{accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,email:b,providerSpecificData:{profileArn:a?.profile_arn||null,clientId:a._clientId,clientSecret:a._clientSecret,region:a._region||"us-east-1",authMethod:a._authMethod||"builder-id",startUrl:a._startUrl||g.Tx.startUrl}}}},cursor:{config:g.WN,flowType:"import_token",mapTokens:a=>({accessToken:a.accessToken,refreshToken:null,expiresIn:a.expiresIn||86400,providerSpecificData:{machineId:a.machineId,authMethod:"imported"}})},"kimi-coding":{config:g.t,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId})});if(!b.ok){let a=await b.text();throw Error(`Device code request failed: ${a}`)}let c=await b.json();return{device_code:c.device_code,user_code:c.user_code,verification_uri:c.verification_uri||"https://www.kimi.com/code/authorize_device",verification_uri_complete:c.verification_uri_complete||`https://www.kimi.com/code/authorize_device?user_code=${c.user_code}`,expires_in:c.expires_in,interval:c.interval||5}},pollToken:async(a,b)=>{let c,d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",client_id:a.clientId,device_code:b})});try{c=await d.json()}catch(b){let a=await d.text();c={error:"invalid_response",error_description:a}}return{ok:d.ok,data:c}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in})},kilocode:{config:g.MZ,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(a.initiateUrl,{method:"POST",headers:{"Content-Type":"application/json"}});if(!b.ok){if(429===b.status)throw Error("Too many pending authorization requests. Please try again later.");let a=await b.text();throw Error(`Device auth initiation failed: ${a}`)}let c=await b.json();return{device_code:c.code,user_code:c.code,verification_uri:c.verificationUrl,verification_uri_complete:c.verificationUrl,expires_in:c.expiresIn||300,interval:3}},pollToken:async(a,b)=>{let c=await fetch(`${a.pollUrlBase}/${b}`);if(202===c.status)return{ok:!1,data:{error:"authorization_pending"}};if(403===c.status)return{ok:!1,data:{error:"access_denied",error_description:"Authorization denied by user"}};if(410===c.status)return{ok:!1,data:{error:"expired_token",error_description:"Authorization code expired"}};if(!c.ok)return{ok:!1,data:{error:"poll_failed",error_description:`Poll failed: ${c.status}`}};let d=await c.json();if("approved"===d.status&&d.token){let b=null;try{let c=await fetch(`${a.apiBaseUrl}/api/profile`,{headers:{Authorization:`Bearer ${d.token}`}});if(c.ok){let a=await c.json();b=a.organizations?.[0]?.id||null}}catch{}return{ok:!0,data:{access_token:d.token,_userEmail:d.userEmail,_orgId:b}}}return{ok:!1,data:{error:"authorization_pending"}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:null,expiresIn:null,email:a._userEmail,...a._orgId?{providerSpecificData:{orgId:a._orgId}}:{}})},cline:{config:g.lB,flowType:"authorization_code",buildAuthUrl:(a,b)=>{let c=new URLSearchParams({client_type:"extension",callback_url:b,redirect_uri:b});return`${a.authorizeUrl}?${c.toString()}`},exchangeToken:async(a,b,c)=>{try{let a=b,c=4-a.length%4;4!==c&&(a+="=".repeat(c));let d=Buffer.from(a,"base64").toString("utf-8"),e=d.lastIndexOf("}");if(-1===e)throw Error("No JSON found in decoded code");let f=JSON.parse(d.substring(0,e+1));return{access_token:f.accessToken,refresh_token:f.refreshToken,email:f.email,firstName:f.firstName,lastName:f.lastName,expires_at:f.expiresAt}}catch(f){let d=await fetch(a.tokenExchangeUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"authorization_code",code:b,client_type:"extension",redirect_uri:c})});if(!d.ok){let a=await d.text();throw Error(`Cline token exchange failed: ${a}`)}let e=await d.json();return{access_token:e.data?.accessToken||e.accessToken,refresh_token:e.data?.refreshToken||e.refreshToken,email:e.data?.userInfo?.email||"",expires_at:e.data?.expiresAt||e.expiresAt}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_at?Math.floor((new Date(a.expires_at).getTime()-Date.now())/1e3):3600,email:a.email,providerSpecificData:{firstName:a.firstName,lastName:a.lastName}})},gitlab:{config:g.f7,flowType:"authorization_code_pkce",buildAuthUrl:(a,b,c,d,e={})=>{let f=e.baseUrl||a.defaultBaseUrl,g=e.clientId||"",h=new URLSearchParams({client_id:g,redirect_uri:b,response_type:"code",state:c,scope:a.scope,code_challenge:d,code_challenge_method:a.codeChallengeMethod});return`${f}${a.authorizeUrlPath}?${h.toString()}`},exchangeToken:async(a,b,c,d,e,f={})=>{let g=f.baseUrl||a.defaultBaseUrl,h=f.clientId||"",i=f.clientSecret||"",j=new URLSearchParams({client_id:h,grant_type:"authorization_code",code:b,redirect_uri:c,code_verifier:d});i&&j.set("client_secret",i);let k=await fetch(`${g}${a.tokenUrlPath}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:j.toString()});if(!k.ok)throw Error(`GitLab token exchange failed: ${await k.text()}`);let l=await k.json(),m=await fetch(`${g}${a.userInfoUrlPath}`,{headers:{Authorization:`Bearer ${l.access_token}`}}),n=m.ok?await m.json():{};return{...l,_user:n,_baseUrl:g,_clientId:h}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope,providerSpecificData:{username:a._user?.username||"",email:a._user?.email||a._user?.public_email||"",name:a._user?.name||"",baseUrl:a._baseUrl,clientId:a._clientId,authKind:"oauth"}})},codebuddy:{config:g.Nl,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(`${a.stateUrl}?platform=${a.platform}`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":a.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"copilot.tencent.com","X-No-Authorization":"true","X-No-User-Id":"true","X-Product":"SaaS"},body:"{}"});if(!b.ok)throw Error(`CodeBuddy state request failed: ${await b.text()}`);let c=await b.json();if(0!==c.code||!c.data?.state||!c.data?.authUrl)throw Error(`CodeBuddy state error: ${c.msg||"missing state/authUrl"}`);return{device_code:c.data.state,verification_uri:c.data.authUrl,user_code:"",interval:a.pollInterval/1e3,_isCodeBuddy:!0}},pollToken:async(a,b)=>{let c=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":a.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"copilot.tencent.com","X-No-Authorization":"true","X-No-User-Id":"true","X-Product":"SaaS"},body:JSON.stringify({state:b})});if(!c.ok)return{ok:!1,data:{error:"request_failed"}};let d=await c.json();return 0===d.code&&d.data?.accessToken?{ok:!0,data:{access_token:d.data.accessToken,refresh_token:d.data.refreshToken||"",token_type:d.data.tokenType||"Bearer"}}:11217===d.code?{ok:!0,data:{error:"authorization_pending"}}:{ok:!1,data:{error:d.msg||"unknown_error"}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:86400,providerSpecificData:{}})}};function k(a){let b=q[a];if(!b)throw Error(`Unknown provider: ${a}`);return b}function l(a,b,c){let d=k(a),{codeVerifier:e,codeChallenge:g,state:h}=(0,f.lz)();return{authUrl:"device_code"===d.flowType?null:"authorization_code_pkce"===d.flowType?d.buildAuthUrl(d.config,b,h,g,c||{}):d.buildAuthUrl(d.config,b,h,void 0,c||{}),state:h,codeVerifier:e,codeChallenge:g,redirectUri:b,flowType:d.flowType,fixedPort:d.fixedPort,callbackPath:d.callbackPath||"/callback"}}async function m(a,b,c,d,e,f){let g=k(a),h=await g.exchangeToken(g.config,b,c,d,e,f||{}),i=null;return g.postExchange&&(i=await g.postExchange(h)),g.mapTokens(h,i)}async function n(a,b,c){let d=k(a);if("device_code"!==d.flowType)throw Error(`Provider ${a} does not support device code flow`);return await d.requestDeviceCode(d.config,b,c||{})}async function o(a,b,c,d){let e=k(a);if("device_code"!==e.flowType)throw Error(`Provider ${a} does not support device code flow`);let f=await e.pollToken(e.config,b,c,d);if(f.ok)if(f.data.access_token){let a=null;return e.postExchange&&(a=await e.postExchange(f.data)),{success:!0,tokens:e.mapTokens(f.data,a)}}else if("authorization_pending"===f.data.error||"slow_down"===f.data.error)return{success:!1,error:f.data.error,errorDescription:f.data.error_description||f.data.message,pending:"authorization_pending"===f.data.error};else return{success:!1,error:f.data.error||"no_access_token",errorDescription:f.data.error_description||f.data.message||"No access token received"};return{success:!1,error:f.data.error,errorDescription:f.data.error_description}}let r=!1;async function p(){if(!r){r=!0;try{let{getProviderConnections:a,updateProviderConnection:b}=await Promise.resolve().then(c.bind(c,89718));for(let c of(await a()).filter(a=>{if("codex"!==a.provider||"oauth"!==a.authType||!a.idToken)return!1;let b=!!a.email,c=!!a.providerSpecificData?.chatgptAccountId;return!b||!c})){let a=j(c.idToken);if(!a.email&&!a.chatgptAccountId)continue;let d={};!c.email&&a.email&&(d.email=a.email),(a.chatgptAccountId||a.chatgptPlanType)&&(d.providerSpecificData={...c.providerSpecificData||{},chatgptAccountId:a.chatgptAccountId,chatgptPlanType:a.chatgptPlanType}),Object.keys(d).length&&await b(c.id,d)}}catch(a){r=!1,console.log("backfillCodexEmails failed:",a?.message||a)}}}d()}catch(a){d(a)}})},92990:(a,b,c)=>{c.d(b,{DI:()=>e,Hp:()=>g,LT:()=>f,MZ:()=>o,Nl:()=>r,Nu:()=>k,OV:()=>d,Tx:()=>l,WN:()=>m,YT:()=>j,ZL:()=>i,f7:()=>q,hF:()=>h,lB:()=>p,t:()=>n}),c(21820);let d={clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256"},e={clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"}},f={clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"]},g={clientId:"f0304373b74a44d2b584a3fb70ca9e56",deviceCodeUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",scope:"openid profile email model.completion",codeChallengeMethod:"S256"},h={apiBaseUrl:"https://api2.qoder.sh",deviceTokenUrl:"https://api2.qoder.sh/api/v1/deviceToken/poll",deviceRefreshUrl:"https://api2.qoder.sh/api/v1/deviceToken/refresh",refreshUrl:"https://api2.qoder.sh/api/v3/user/refresh_token",userInfoUrl:"https://api2.qoder.sh/api/v1/userinfo",statusUrl:"https://api2.qoder.sh/api/v3/user/status",loginUrl:"https://qoder.com/login"},i={clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"}},j={clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:"google-api-nodejs-client/9.15.1",loadCodeAssistApiClient:"google-cloud-sdk vscode_cloudshelleditor/0.1",loadCodeAssistClientMetadata:JSON.stringify({ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"})},k={clientId:"Iv1.b507a08c87ecfe98",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},l={ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},m={apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetDefaultModelNudgeData",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.1.0",clientType:"ide",tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"},dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}},n={clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||"17e5f671-d194-4dfb-9706-5516cb48c098",deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token"},o={apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"},p={appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},q={defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"},r={baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3}}};
1
+ "use strict";exports.id=2549,exports.ids=[2549],exports.modules={12557:(a,b,c)=>{c.d(b,{Bl:()=>j,Qo:()=>f,S5:()=>l,hk:()=>e,kJ:()=>k});var d=c(3662);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return{shouldFallback:!0,cooldownMs:d.wf}}function f(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let g="modelLock_",h=`${g}__all`;function i(a){return a?`${g}${a}`:h}function j(a,b){let c=a[i(b)]||a[h];return!!c&&new Date(c).getTime()>Date.now()}function k(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(g)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function l(a,b){return{[i(a)]:new Date(Date.now()+b).toISOString()}}},13808:(a,b,c)=>{c.d(b,{lz:()=>f});var d=c(55511),e=c.n(d);function f(){let a=e().randomBytes(32).toString("base64url"),b=e().createHash("sha256").update(a).digest("base64url");return{codeVerifier:a,codeChallenge:b,state:e().randomBytes(32).toString("base64url")}}},43659:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(3662);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:e(a,b)}}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},74177:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{PY:()=>p,Re:()=>n,Su:()=>o,YR:()=>j,exchangeTokens:()=>m,kP:()=>l,sO:()=>k});var e=c(48895),f=c(13808),g=c(92990),h=a([e]);function i(a){try{if(!a||"string"!=typeof a)return null;let b=a.split(".");if(3!==b.length)return null;let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=(4-c.length%4)%4,e=c+"=".repeat(d);return JSON.parse(Buffer.from(e,"base64").toString("utf8"))}catch{return null}}function j(a){let b=i(a);if(!b)return{};let c=b["https://api.openai.com/auth"]||{};return{email:b.email,chatgptAccountId:c.chatgpt_account_id,chatgptPlanType:c.chatgpt_plan_type}}e=(h.then?(await h)():h)[0];let q={claude:{config:g.OV,flowType:"authorization_code_pkce",buildAuthUrl:(a,b,c,d)=>{let e=new URLSearchParams({code:"true",client_id:a.clientId,response_type:"code",redirect_uri:b,scope:a.scopes.join(" "),code_challenge:d,code_challenge_method:a.codeChallengeMethod,state:c});return`${a.authorizeUrl}?${e.toString()}`},exchangeToken:async(a,b,c,d,e)=>{let f=b,g="";if(f.includes("#")){let a=f.split("#");f=a[0],g=a[1]||""}let h=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({code:f,state:g||e,grant_type:"authorization_code",client_id:a.clientId,redirect_uri:c,code_verifier:d})});if(!h.ok){let a=await h.text();throw Error(`Token exchange failed: ${a}`)}return await h.json()},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope})},codex:{config:g.DI,flowType:"authorization_code_pkce",fixedPort:1455,callbackPath:"/auth/callback",buildAuthUrl:(a,b,c,d)=>{let e={response_type:"code",client_id:a.clientId,redirect_uri:b,scope:a.scope,code_challenge:d,code_challenge_method:a.codeChallengeMethod,...a.extraParams,state:c},f=Object.entries(e).map(([a,b])=>`${a}=${encodeURIComponent(b)}`).join("&");return`${a.authorizeUrl}?${f}`},exchangeToken:async(a,b,c,d)=>{let e=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,code:b,redirect_uri:c,code_verifier:d})});if(!e.ok){let a=await e.text();throw Error(`Token exchange failed: ${a}`)}return await e.json()},mapTokens:a=>{let b=j(a.id_token),c={accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in};return b.email&&(c.email=b.email),(b.chatgptAccountId||b.chatgptPlanType)&&(c.providerSpecificData={chatgptAccountId:b.chatgptAccountId,chatgptPlanType:b.chatgptPlanType}),c}},"gemini-cli":{config:g.LT,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({client_id:a.clientId,response_type:"code",redirect_uri:b,scope:a.scopes.join(" "),state:c,access_type:"offline",prompt:"consent"});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,client_secret:a.clientSecret,code:b,redirect_uri:c})});if(!d.ok){let a=await d.text();throw Error(`Token exchange failed: ${a}`)}return await d.json()},postExchange:async a=>{let b=await fetch(`${g.LT.userInfoUrl}?alt=json`,{headers:{Authorization:`Bearer ${a.access_token}`}}),c=b.ok?await b.json():{},d="";try{let b=await fetch("https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",{method:"POST",headers:{Authorization:`Bearer ${a.access_token}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:getOAuthClientMetadata(),mode:1})});if(b.ok){let a=await b.json();d=a.cloudaicompanionProject?.id||a.cloudaicompanionProject||""}}catch(a){console.log("Failed to fetch project ID:",a)}return{userInfo:c,projectId:d}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope,email:b?.userInfo?.email,projectId:b?.projectId})},antigravity:{config:g.YT,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({client_id:a.clientId,response_type:"code",redirect_uri:b,scope:a.scopes.join(" "),state:c,access_type:"offline",prompt:"consent"});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,client_secret:a.clientSecret,code:b,redirect_uri:c})});if(!d.ok){let a=await d.text();throw Error(`Token exchange failed: ${a}`)}return await d.json()},postExchange:async a=>{let b={Authorization:`Bearer ${a.access_token}`,"Content-Type":"application/json","User-Agent":g.YT.loadCodeAssistUserAgent,"X-Goog-Api-Client":g.YT.loadCodeAssistApiClient,"Client-Metadata":g.YT.loadCodeAssistClientMetadata,"x-request-source":"local"},c={ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"},d=await fetch(`${g.YT.userInfoUrl}?alt=json`,{headers:{Authorization:`Bearer ${a.access_token}`,"x-request-source":"local"}}),e=d.ok?await d.json():{},f="",h="legacy-tier";try{let a=await fetch(g.YT.loadCodeAssistEndpoint,{method:"POST",headers:b,body:JSON.stringify({metadata:c})});if(a.ok){let b=await a.json();if(f=b.cloudaicompanionProject?.id||b.cloudaicompanionProject||"",Array.isArray(b.allowedTiers)){for(let a of b.allowedTiers)if(a.isDefault&&a.id){h=a.id.trim();break}}}}catch(a){console.log("Failed to load code assist:",a)}return f&&(async()=>{for(let a=0;a<10;a++){try{let a=await fetch(g.YT.onboardUserEndpoint,{method:"POST",headers:b,body:JSON.stringify({tierId:h,metadata:c})});if(a.ok){let b=await a.json();if(!0===b.done)break}}catch(a){break}await new Promise(a=>setTimeout(a,5e3))}})().catch(()=>{}),{userInfo:e,projectId:f}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope,email:b?.userInfo?.email,projectId:b?.projectId})},iflow:{config:g.ZL,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({loginMethod:a.extraParams.loginMethod,type:a.extraParams.type,redirect:b,state:c,client_id:a.clientId});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=Buffer.from(`${a.clientId}:${a.clientSecret}`).toString("base64"),e=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${d}`},body:new URLSearchParams({grant_type:"authorization_code",code:b,redirect_uri:c,client_id:a.clientId,client_secret:a.clientSecret})});if(!e.ok){let a=await e.text();throw Error(`Token exchange failed: ${a}`)}return await e.json()},postExchange:async a=>{let b=await fetch(`${g.ZL.userInfoUrl}?accessToken=${encodeURIComponent(a.access_token)}`,{headers:{Accept:"application/json"}});if(!b.ok){let a=await b.text();throw Error(`Failed to fetch user info: ${a}`)}let c=await b.json();if(!c.success)throw Error(`User info request failed: ${c.message||"Unknown error"}`);let d=c.data||{};if(!d.apiKey||""===d.apiKey.trim())throw Error("Empty API key returned from iFlow");if(!(d.email?.trim()||d.phone?.trim()))throw Error("Missing account email/phone in user info");return{userInfo:d}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,apiKey:b?.userInfo?.apiKey,email:b?.userInfo?.email||b?.userInfo?.phone,displayName:b?.userInfo?.nickname||b?.userInfo?.name})},qoder:{config:g.hF,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({client_id:a.clientId,response_type:"code",redirect_uri:b,state:c});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=Buffer.from(`${a.clientId}:${a.clientSecret}`).toString("base64"),e=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${d}`},body:new URLSearchParams({grant_type:"authorization_code",code:b,redirect_uri:c,client_id:a.clientId,client_secret:a.clientSecret})});if(!e.ok){let a=await e.text();throw Error(`Token exchange failed: ${a}`)}return await e.json()},postExchange:async a=>{let b=await fetch(`${g.hF.userInfoUrl}?accessToken=${encodeURIComponent(a.access_token)}`,{headers:{Accept:"application/json"}});if(!b.ok){let a=await b.text();throw Error(`Failed to fetch user info: ${a}`)}let c=await b.json();if(!c.success)throw Error(`User info request failed: ${c.message||"Unknown error"}`);let d=c.data||{};if(!d.apiKey||""===d.apiKey.trim())throw Error("Empty API key returned from Qoder");if(!(d.email?.trim()||d.phone?.trim()))throw Error("Missing account email/phone in user info");return{userInfo:d}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,apiKey:b?.userInfo?.apiKey,email:b?.userInfo?.email||b?.userInfo?.phone,displayName:b?.userInfo?.nickname||b?.userInfo?.name})},qwen:{config:g.Hp,flowType:"device_code",requestDeviceCode:async(a,b)=>{let c=await fetch(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId,scope:a.scope,code_challenge:b,code_challenge_method:a.codeChallengeMethod})});if(!c.ok){let a=await c.text();throw Error(`Device code request failed: ${a}`)}return await c.json()},pollToken:async(a,b,c)=>{let d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",client_id:a.clientId,device_code:b,code_verifier:c})});return{ok:d.ok,data:await d.json()}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,providerSpecificData:{resourceUrl:a.resource_url}})},github:{config:g.Nu,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId,scope:a.scopes})});if(!b.ok){let a=await b.text();throw Error(`Device code request failed: ${a}`)}return await b.json()},pollToken:async(a,b)=>{let c,d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId,device_code:b,grant_type:"urn:ietf:params:oauth:grant-type:device_code"})});try{c=await d.json()}catch(b){let a=await d.text();c={error:"invalid_response",error_description:a}}return{ok:d.ok,data:c}},postExchange:async a=>{let b=await fetch(g.Nu.copilotTokenUrl,{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json","X-GitHub-Api-Version":g.Nu.apiVersion,"User-Agent":g.Nu.userAgent}}),c=b.ok?await b.json():{},d=await fetch(g.Nu.userInfoUrl,{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json","X-GitHub-Api-Version":g.Nu.apiVersion,"User-Agent":g.Nu.userAgent}}),e=d.ok?await d.json():{};return{copilotToken:c,userInfo:e}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,providerSpecificData:{copilotToken:b?.copilotToken?.token,copilotTokenExpiresAt:b?.copilotToken?.expires_at,githubUserId:b?.userInfo?.id,githubLogin:b?.userInfo?.login,githubName:b?.userInfo?.name,githubEmail:b?.userInfo?.email}})},kiro:{config:g.Tx,flowType:"device_code",requestDeviceCode:async(a,b,c={})=>{let d=("string"==typeof c.region?c.region.trim():"")||"us-east-1",e=("string"==typeof c.startUrl?c.startUrl.trim():"")||a.startUrl,f="idc"===c.authMethod?"idc":"builder-id",g=`https://oidc.${d}.amazonaws.com/client/register`,h=`https://oidc.${d}.amazonaws.com/device_authorization`,i=await fetch(g,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientName:a.clientName,clientType:a.clientType,scopes:a.scopes,grantTypes:a.grantTypes,issuerUrl:a.issuerUrl})});if(!i.ok){let a=await i.text();throw Error(`Client registration failed: ${a}`)}let j=await i.json(),k=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:j.clientId,clientSecret:j.clientSecret,startUrl:e})});if(!k.ok){let a=await k.text();throw Error(`Device authorization failed: ${a}`)}let l=await k.json();return{device_code:l.deviceCode,user_code:l.userCode,verification_uri:l.verificationUri,verification_uri_complete:l.verificationUriComplete,expires_in:l.expiresIn,interval:l.interval||5,_clientId:j.clientId,_clientSecret:j.clientSecret,_region:d,_authMethod:f,_startUrl:e}},pollToken:async(a,b,c,d)=>{let e,f=d?._region||"us-east-1",g=`https://oidc.${f}.amazonaws.com/token`,h=await fetch(g,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:d?._clientId,clientSecret:d?._clientSecret,deviceCode:b,grantType:"urn:ietf:params:oauth:grant-type:device_code"})});try{e=await h.json()}catch(b){let a=await h.text();e={error:"invalid_response",error_description:a}}return e.accessToken?{ok:!0,data:{access_token:e.accessToken,refresh_token:e.refreshToken,expires_in:e.expiresIn,profile_arn:e?.profileArn||null,_clientId:d?._clientId,_clientSecret:d?._clientSecret,_region:d?._region,_authMethod:d?._authMethod,_startUrl:d?._startUrl}}:{ok:!1,data:{error:e.error||"authorization_pending",error_description:e.error_description||e.message}}},mapTokens:a=>{let b=function(a){let b=i(a);if(b)return b.email||b.preferred_username||b.sub||void 0}(a.access_token);return{accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,email:b,providerSpecificData:{profileArn:a?.profile_arn||null,clientId:a._clientId,clientSecret:a._clientSecret,region:a._region||"us-east-1",authMethod:a._authMethod||"builder-id",startUrl:a._startUrl||g.Tx.startUrl}}}},cursor:{config:g.WN,flowType:"import_token",mapTokens:a=>({accessToken:a.accessToken,refreshToken:null,expiresIn:a.expiresIn||86400,providerSpecificData:{machineId:a.machineId,authMethod:"imported"}})},"kimi-coding":{config:g.t,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId})});if(!b.ok){let a=await b.text();throw Error(`Device code request failed: ${a}`)}let c=await b.json();return{device_code:c.device_code,user_code:c.user_code,verification_uri:c.verification_uri||"https://www.kimi.com/code/authorize_device",verification_uri_complete:c.verification_uri_complete||`https://www.kimi.com/code/authorize_device?user_code=${c.user_code}`,expires_in:c.expires_in,interval:c.interval||5}},pollToken:async(a,b)=>{let c,d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",client_id:a.clientId,device_code:b})});try{c=await d.json()}catch(b){let a=await d.text();c={error:"invalid_response",error_description:a}}return{ok:d.ok,data:c}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in})},kilocode:{config:g.MZ,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(a.initiateUrl,{method:"POST",headers:{"Content-Type":"application/json"}});if(!b.ok){if(429===b.status)throw Error("Too many pending authorization requests. Please try again later.");let a=await b.text();throw Error(`Device auth initiation failed: ${a}`)}let c=await b.json();return{device_code:c.code,user_code:c.code,verification_uri:c.verificationUrl,verification_uri_complete:c.verificationUrl,expires_in:c.expiresIn||300,interval:3}},pollToken:async(a,b)=>{let c=await fetch(`${a.pollUrlBase}/${b}`);if(202===c.status)return{ok:!1,data:{error:"authorization_pending"}};if(403===c.status)return{ok:!1,data:{error:"access_denied",error_description:"Authorization denied by user"}};if(410===c.status)return{ok:!1,data:{error:"expired_token",error_description:"Authorization code expired"}};if(!c.ok)return{ok:!1,data:{error:"poll_failed",error_description:`Poll failed: ${c.status}`}};let d=await c.json();if("approved"===d.status&&d.token){let b=null;try{let c=await fetch(`${a.apiBaseUrl}/api/profile`,{headers:{Authorization:`Bearer ${d.token}`}});if(c.ok){let a=await c.json();b=a.organizations?.[0]?.id||null}}catch{}return{ok:!0,data:{access_token:d.token,_userEmail:d.userEmail,_orgId:b}}}return{ok:!1,data:{error:"authorization_pending"}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:null,expiresIn:null,email:a._userEmail,...a._orgId?{providerSpecificData:{orgId:a._orgId}}:{}})},cline:{config:g.lB,flowType:"authorization_code",buildAuthUrl:(a,b)=>{let c=new URLSearchParams({client_type:"extension",callback_url:b,redirect_uri:b});return`${a.authorizeUrl}?${c.toString()}`},exchangeToken:async(a,b,c)=>{try{let a=b,c=4-a.length%4;4!==c&&(a+="=".repeat(c));let d=Buffer.from(a,"base64").toString("utf-8"),e=d.lastIndexOf("}");if(-1===e)throw Error("No JSON found in decoded code");let f=JSON.parse(d.substring(0,e+1));return{access_token:f.accessToken,refresh_token:f.refreshToken,email:f.email,firstName:f.firstName,lastName:f.lastName,expires_at:f.expiresAt}}catch(f){let d=await fetch(a.tokenExchangeUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"authorization_code",code:b,client_type:"extension",redirect_uri:c})});if(!d.ok){let a=await d.text();throw Error(`Cline token exchange failed: ${a}`)}let e=await d.json();return{access_token:e.data?.accessToken||e.accessToken,refresh_token:e.data?.refreshToken||e.refreshToken,email:e.data?.userInfo?.email||"",expires_at:e.data?.expiresAt||e.expiresAt}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_at?Math.floor((new Date(a.expires_at).getTime()-Date.now())/1e3):3600,email:a.email,providerSpecificData:{firstName:a.firstName,lastName:a.lastName}})},gitlab:{config:g.f7,flowType:"authorization_code_pkce",buildAuthUrl:(a,b,c,d,e={})=>{let f=e.baseUrl||a.defaultBaseUrl,g=e.clientId||"",h=new URLSearchParams({client_id:g,redirect_uri:b,response_type:"code",state:c,scope:a.scope,code_challenge:d,code_challenge_method:a.codeChallengeMethod});return`${f}${a.authorizeUrlPath}?${h.toString()}`},exchangeToken:async(a,b,c,d,e,f={})=>{let g=f.baseUrl||a.defaultBaseUrl,h=f.clientId||"",i=f.clientSecret||"",j=new URLSearchParams({client_id:h,grant_type:"authorization_code",code:b,redirect_uri:c,code_verifier:d});i&&j.set("client_secret",i);let k=await fetch(`${g}${a.tokenUrlPath}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:j.toString()});if(!k.ok)throw Error(`GitLab token exchange failed: ${await k.text()}`);let l=await k.json(),m=await fetch(`${g}${a.userInfoUrlPath}`,{headers:{Authorization:`Bearer ${l.access_token}`}}),n=m.ok?await m.json():{};return{...l,_user:n,_baseUrl:g,_clientId:h}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope,providerSpecificData:{username:a._user?.username||"",email:a._user?.email||a._user?.public_email||"",name:a._user?.name||"",baseUrl:a._baseUrl,clientId:a._clientId,authKind:"oauth"}})},codebuddy:{config:g.Nl,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(`${a.stateUrl}?platform=${a.platform}`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":a.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"copilot.tencent.com","X-No-Authorization":"true","X-No-User-Id":"true","X-Product":"SaaS"},body:"{}"});if(!b.ok)throw Error(`CodeBuddy state request failed: ${await b.text()}`);let c=await b.json();if(0!==c.code||!c.data?.state||!c.data?.authUrl)throw Error(`CodeBuddy state error: ${c.msg||"missing state/authUrl"}`);return{device_code:c.data.state,verification_uri:c.data.authUrl,user_code:"",interval:a.pollInterval/1e3,_isCodeBuddy:!0}},pollToken:async(a,b)=>{let c=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":a.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"copilot.tencent.com","X-No-Authorization":"true","X-No-User-Id":"true","X-Product":"SaaS"},body:JSON.stringify({state:b})});if(!c.ok)return{ok:!1,data:{error:"request_failed"}};let d=await c.json();return 0===d.code&&d.data?.accessToken?{ok:!0,data:{access_token:d.data.accessToken,refresh_token:d.data.refreshToken||"",token_type:d.data.tokenType||"Bearer"}}:11217===d.code?{ok:!0,data:{error:"authorization_pending"}}:{ok:!1,data:{error:d.msg||"unknown_error"}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:86400,providerSpecificData:{}})}};function k(a){let b=q[a];if(!b)throw Error(`Unknown provider: ${a}`);return b}function l(a,b,c){let d=k(a),{codeVerifier:e,codeChallenge:g,state:h}=(0,f.lz)();return{authUrl:"device_code"===d.flowType?null:"authorization_code_pkce"===d.flowType?d.buildAuthUrl(d.config,b,h,g,c||{}):d.buildAuthUrl(d.config,b,h,void 0,c||{}),state:h,codeVerifier:e,codeChallenge:g,redirectUri:b,flowType:d.flowType,fixedPort:d.fixedPort,callbackPath:d.callbackPath||"/callback"}}async function m(a,b,c,d,e,f){let g=k(a),h=await g.exchangeToken(g.config,b,c,d,e,f||{}),i=null;return g.postExchange&&(i=await g.postExchange(h)),g.mapTokens(h,i)}async function n(a,b,c){let d=k(a);if("device_code"!==d.flowType)throw Error(`Provider ${a} does not support device code flow`);return await d.requestDeviceCode(d.config,b,c||{})}async function o(a,b,c,d){let e=k(a);if("device_code"!==e.flowType)throw Error(`Provider ${a} does not support device code flow`);let f=await e.pollToken(e.config,b,c,d);if(f.ok)if(f.data.access_token){let a=null;return e.postExchange&&(a=await e.postExchange(f.data)),{success:!0,tokens:e.mapTokens(f.data,a)}}else if("authorization_pending"===f.data.error||"slow_down"===f.data.error)return{success:!1,error:f.data.error,errorDescription:f.data.error_description||f.data.message,pending:"authorization_pending"===f.data.error};else return{success:!1,error:f.data.error||"no_access_token",errorDescription:f.data.error_description||f.data.message||"No access token received"};return{success:!1,error:f.data.error,errorDescription:f.data.error_description}}let r=!1;async function p(){if(!r){r=!0;try{let{getProviderConnections:a,updateProviderConnection:b}=await Promise.resolve().then(c.bind(c,89718));for(let c of(await a()).filter(a=>{if("codex"!==a.provider||"oauth"!==a.authType||!a.idToken)return!1;let b=!!a.email,c=!!a.providerSpecificData?.chatgptAccountId;return!b||!c})){let a=j(c.idToken);if(!a.email&&!a.chatgptAccountId)continue;let d={};!c.email&&a.email&&(d.email=a.email),(a.chatgptAccountId||a.chatgptPlanType)&&(d.providerSpecificData={...c.providerSpecificData||{},chatgptAccountId:a.chatgptAccountId,chatgptPlanType:a.chatgptPlanType}),Object.keys(d).length&&await b(c.id,d)}}catch(a){r=!1,console.log("backfillCodexEmails failed:",a?.message||a)}}}d()}catch(a){d(a)}})},92990:(a,b,c)=>{c.d(b,{DI:()=>e,Hp:()=>g,LT:()=>f,MZ:()=>o,Nl:()=>r,Nu:()=>k,OV:()=>d,Tx:()=>l,WN:()=>m,YT:()=>j,ZL:()=>i,f7:()=>q,hF:()=>h,lB:()=>p,t:()=>n}),c(21820);let d={clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256"},e={clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"}},f={clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"]},g={clientId:"f0304373b74a44d2b584a3fb70ca9e56",deviceCodeUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",scope:"openid profile email model.completion",codeChallengeMethod:"S256"},h={apiBaseUrl:"https://api2.qoder.sh",deviceTokenUrl:"https://api2.qoder.sh/api/v1/deviceToken/poll",deviceRefreshUrl:"https://api2.qoder.sh/api/v1/deviceToken/refresh",refreshUrl:"https://api2.qoder.sh/api/v3/user/refresh_token",userInfoUrl:"https://api2.qoder.sh/api/v1/userinfo",statusUrl:"https://api2.qoder.sh/api/v3/user/status",loginUrl:"https://qoder.com/login"},i={clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"}},j={clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:"google-api-nodejs-client/9.15.1",loadCodeAssistApiClient:"google-cloud-sdk vscode_cloudshelleditor/0.1",loadCodeAssistClientMetadata:JSON.stringify({ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"})},k={clientId:"Iv1.b507a08c87ecfe98",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},l={ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},m={apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetDefaultModelNudgeData",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.1.0",clientType:"ide",tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"},dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}},n={clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||"17e5f671-d194-4dfb-9706-5516cb48c098",deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token"},o={apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"},p={appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},q={defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"},r={baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=2574,exports.ids=[2574],exports.modules={2574:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>p,OPTIONS:()=>o,buildModelsList:()=>n});var d=c(81329),e=c(75681),f=c(89718),g=c(9132),h=c(38775);let i=/[-_][0-9a-f]{8,}$/i,j={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText"};function k(a){return a?.type&&j[a.type]||"llm"}async function l(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=`${b}/models`,d={"Content-Type":"application/json"};if((0,e.mq)(a.provider))d.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];c.endsWith("/messages/models")?c=c.slice(0,-9):c.endsWith("/messages")&&(c=`${c.slice(0,-9)}/models`),d["x-api-key"]=a.apiKey,d["anthropic-version"]="2023-06-01",d.Authorization=`Bearer ${a.apiKey}`}try{var f;let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),e=await fetch(c,{method:"GET",headers:d,cache:"no-store",signal:a.signal});if(clearTimeout(b),!e.ok)return[];let g=(f=await e.json(),Array.isArray(f)?f:f?.data||f?.models||f?.results||[]);return Array.from(new Set(g.map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}catch{return[]}}function m(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}async function n(a,b=null){let c=b?await (0,g.RG)(b):null,j=[];try{j=(j=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive),c&&(j=(0,g.Mv)(j,c))}catch(a){console.log("Could not fetch providers, returning all models")}let o=[];try{o=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let p=[];try{p=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let q={};try{q=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let r=new Map;for(let a of j)r.has(a.provider)||r.set(a.provider,a);let s=[],t=Math.floor(Date.now()/1e3);for(let b of o){if(!function(a,b){let c=a?.kind||"llm";return b.includes(c)}(b,a))continue;if(c){let a=!0;for(let d of b.models||[]){let b=await (0,h.mA)(d);if(!b?.provider||!(0,g.iI)(c,b.provider)){a=!1;break}}if(!a)continue}let d={id:b.name,object:"model",created:t,owned_by:"combo"};("webSearch"===b.kind||"webFetch"===b.kind)&&(d.kind=b.kind),s.push(d)}if(0===j.length){let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a]));for(let[e,f]of Object.entries(d.vq)){let d=b[e]||e;if((!c||(0,g.iI)(c,d))&&m(d,a))for(let b of f)a.includes(k(b))&&s.push({id:`${e}/${b.id}`,object:"model",created:t,owned_by:e})}for(let b of p){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let d=b.providerAlias;if(!d)continue;let e=String(b.id).trim();if(e){if(c){let a=await (0,h.mA)(`${d}/${e}`);if(!a?.provider||!(0,g.iI)(c,a.provider))continue}s.push({id:`${d}/${e}`,object:"model",created:t,owned_by:d})}}}else for(let[b,f]of r.entries()){if(c&&!(0,g.iI)(c,b)||!m(b,a))continue;let h=d.Xg[b]||b,j=(f?.providerSpecificData?.prefix||(0,e.wG)(b)||h).trim(),n=d.vq[h]||[],o=f?.providerSpecificData?.enabledModels,r=Array.isArray(o)&&o.length>0,u=(0,e.mq)(b)||(0,e.gb)(b),v=new Map(n.map(a=>[a.id,k(a)])),w=r?Array.from(new Set(o.filter(a=>"string"==typeof a&&""!==a.trim()))):n.map(a=>a.id);for(let c of(u&&0===w.length&&!i.test(b)&&(w=await l(f)),Array.from(new Set([...w.map(a=>a.startsWith(`${j}/`)?a.slice(j.length+1):a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),...p.filter(a=>{if(!a?.id||a.type&&"llm"!==a.type)return!1;let c=a.providerAlias;return c===h||c===j||c===b}).map(a=>String(a.id).trim()).filter(a=>""!==a),...Object.values(q||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${j}/`)||a.startsWith(`${h}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${j}/`)?a.slice(j.length+1):a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())])))){let b=v.get(c)||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(c);a.includes(b)&&s.push({id:`${j}/${c}`,object:"model",created:t,owned_by:j})}let x=e.AI_PROVIDERS[b],y=[];if(a.includes("tts")&&Array.isArray(x?.ttsConfig?.models))for(let a of x.ttsConfig.models)a?.id&&y.push(a.id);if(a.includes("embedding")&&Array.isArray(x?.embeddingConfig?.models))for(let a of x.embeddingConfig.models)a?.id&&y.push(a.id);for(let a of y)s.push({id:`${j}/${a}`,object:"model",created:t,owned_by:j});a.includes("webSearch")&&x?.searchConfig&&s.push({id:`${j}/search`,object:"model",kind:"webSearch",created:t,owned_by:j}),a.includes("webFetch")&&x?.fetchConfig&&s.push({id:`${j}/fetch`,object:"model",kind:"webFetch",created:t,owned_by:j})}let u=[],v=new Set;for(let a of s)!a?.id||v.has(a.id)||(v.add(a.id),u.push(a));return u}async function o(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function p(a){try{let b=await (0,g.RG)(a),c=[];try{c=(c=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive),b&&(c=(0,g.Mv)(c,b))}catch(a){console.log("Could not fetch providers, returning all models")}let j=[];try{j=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let k=new Map;for(let a of c)k.has(a.provider)||k.set(a.provider,a);let m=[],n=Math.floor(Date.now()/1e3);for(let a of j){if(b){let c=!0;for(let d of a.models||[]){let a=await (0,h.mA)(d);if(!a?.provider||!(0,g.iI)(b,a.provider)){c=!1;break}}if(!c)continue}m.push({id:a.name,object:"model",created:n,owned_by:"combo",permission:[],root:a.name,parent:null})}if(0===c.length)for(let[a,c]of Object.entries(d.vq)){let e=Object.entries(d.Xg).find(([b,c])=>c===a)?.[0]||a;if((0,g.iI)(b,e))for(let b of c)m.push({id:`${a}/${b.id}`,object:"model",created:n,owned_by:a,permission:[],root:b.id,parent:null})}else for(let[a,c]of k.entries()){if(!(0,g.iI)(b,a))continue;let f=d.Xg[a]||a,h=(c?.providerSpecificData?.prefix||(0,e.wG)(a)||f).trim(),j=d.vq[f]||[],k=c?.providerSpecificData?.enabledModels,o=Array.isArray(k)&&k.length>0,p=(0,e.mq)(a)||(0,e.gb)(a),q=o?Array.from(new Set(k.filter(a=>"string"==typeof a&&""!==a.trim()))):j.map(a=>a.id);for(let b of(p&&0===q.length&&!i.test(a)&&(q=await l(c)),q.map(b=>b.startsWith(`${h}/`)?b.slice(h.length+1):b.startsWith(`${f}/`)?b.slice(f.length+1):b.startsWith(`${a}/`)?b.slice(a.length+1):b).filter(a=>"string"==typeof a&&""!==a.trim())))m.push({id:`${h}/${b}`,object:"model",created:n,owned_by:h,permission:[],root:b,parent:null})}return Response.json({object:"list",data:m},{headers:{"Access-Control-Allow-Origin":"*"}})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},38775:(a,b,c)=>{c.d(b,{d_:()=>g,mA:()=>f});var d=c(89718),e=c(40669);async function f(a){let b=(0,e.Xh)(a);if(!b.isAlias){let a=(await (0,d.getProviderNodes)({type:"openai-compatible"})).find(a=>a.prefix===b.providerAlias);if(a)return{provider:a.id,model:b.model};let c=(await (0,d.getProviderNodes)({type:"anthropic-compatible"})).find(a=>a.prefix===b.providerAlias);if(c)return{provider:c.id,model:b.model};let e=(await (0,d.getProviderNodes)({type:"custom-embedding"})).find(a=>a.prefix===b.providerAlias);if(e)return{provider:e.id,model:b.model};let f=(await (0,d.getProviderNodes)({type:"custom-image"})).find(a=>a.prefix===b.providerAlias);return f?{provider:f.id,model:b.model}:{provider:b.provider,model:b.model}}return await (0,d.Dj)(b.model)?{provider:null,model:b.model}:(0,e.js)(a,d.OM)}async function g(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}},40669:(a,b,c)=>{c.d(b,{Xh:()=>e,js:()=>f});let d={cc:"claude",cx:"codex",gc:"gemini-cli",qw:"qwen",if:"iflow",ag:"antigravity",gh:"github",kr:"kiro",cu:"cursor",kc:"kilocode",kmc:"kimi-coding",cl:"cline",oc:"opencode",ocg:"opencode-go",el:"elevenlabs",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm",kimi:"kimi",minimax:"minimax","minimax-cn":"minimax-cn",ds:"deepseek",deepseek:"deepseek",cmc:"commandcode",commandcode:"commandcode",groq:"groq",xai:"xai",mistral:"mistral",pplx:"perplexity",perplexity:"perplexity",together:"together",fireworks:"fireworks",cerebras:"cerebras",cohere:"cohere",nvidia:"nvidia",nebius:"nebius",siliconflow:"siliconflow",hyp:"hyperbolic",hyperbolic:"hyperbolic",dg:"deepgram",deepgram:"deepgram",aai:"assemblyai",assemblyai:"assemblyai",nb:"nanobanana",nanobanana:"nanobanana",ch:"chutes",chutes:"chutes",ark:"volcengine-ark","volcengine-ark":"volcengine-ark",byteplus:"byteplus",bpm:"byteplus",cursor:"cursor",vx:"vertex",vertex:"vertex",vxp:"vertex-partner","vertex-partner":"vertex-partner",gw:"grok-web","grok-web":"grok-web",pw:"perplexity-web","perplexity-web":"perplexity-web",mimo:"xiaomi-mimo","xiaomi-mimo":"xiaomi-mimo",cf:"cloudflare-ai","cloudflare-ai":"cloudflare-ai",fal:"fal-ai","fal-ai":"fal-ai",stability:"stability-ai","stability-ai":"stability-ai",bfl:"black-forest-labs","black-forest-labs":"black-forest-labs",recraft:"recraft",topaz:"topaz",runway:"runwayml",runwayml:"runwayml",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};function e(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),e=a.slice(b+1);return{provider:d[c]||c,model:e,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}async function f(a,b){let c=e(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let f="function"==typeof b?await b():b,g=function(a,b){var c,e;if(!b)return null;let f=b[a];if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:d[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:d[e=f.provider]||e,model:f.model}:null}(c.model,f);return g||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return b.startsWith("claude-")?"anthropic":b.startsWith("gemini-")?"gemini":b.startsWith("gpt-")||b.startsWith("o1")||b.startsWith("o3")||b.startsWith("o4")?"openai":b.startsWith("deepseek-")?"openrouter":"openai"}(c.model),model:c.model}}},81329:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(44404);Object.entries(c(75681).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))}};