most-box 0.1.7 → 0.1.9

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 (545) hide show
  1. package/README.md +4 -4
  2. package/out/admin/index.html +0 -0
  3. package/out/app/index.html +0 -0
  4. package/out/assets/AppShell-DmZQwVA9.js +1 -0
  5. package/out/assets/ChatUi-CVGqjFdx.js +1 -0
  6. package/out/assets/LogoIcon-CYQ7cHd5.js +1 -0
  7. package/out/assets/MarketingLayout-BTIbv4fW.js +1 -0
  8. package/out/assets/MilkdownEditor-BL8xE7u9.js +1054 -0
  9. package/out/assets/MoveModal-BKkVBvrS.js +1 -0
  10. package/out/assets/Nav-BDGeJnbC.js +1 -0
  11. package/out/assets/NoteSidebar-BIJ8_m5K.js +1 -0
  12. package/out/assets/OpenSidebarButton-Di62DGiu.js +1 -0
  13. package/out/assets/PemBlock-Dxx6k9MH.js +1 -0
  14. package/out/assets/SidebarAccount-CCHZLGdP.js +1 -0
  15. package/out/assets/admin-BepWGXWG.js +2 -0
  16. package/out/assets/apl-CnwPGSsG.js +1 -0
  17. package/out/assets/app-3D79fY3w.js +1 -0
  18. package/out/assets/arrow-right-D0sGC8QA.js +1 -0
  19. package/out/assets/asciiarmor-qTkVPQu6.js +1 -0
  20. package/out/assets/asn1-Dr8qZg38.js +1 -0
  21. package/out/assets/asterisk-Bja0s6e1.js +1 -0
  22. package/out/assets/brainfuck-D5EjA2JK.js +1 -0
  23. package/out/assets/channelApi-CL7YsIQ-.js +1 -0
  24. package/out/assets/chat-B56sk6od.js +1 -0
  25. package/out/assets/check-DdfnsLKm.js +1 -0
  26. package/out/assets/chevron-down-Xlb3wTxd.js +1 -0
  27. package/out/assets/circle-alert-CqEQz6P4.js +1 -0
  28. package/out/assets/circle-check-CwAH4dgJ.js +1 -0
  29. package/out/assets/clike-DHH8Ad3s.js +1 -0
  30. package/out/assets/clojure-BflJGmDX.js +1 -0
  31. package/out/assets/cloud-CcPRoob1.js +1 -0
  32. package/out/assets/cmake-CyVbuzPu.js +1 -0
  33. package/out/assets/cobol-B_OZ4V-R.js +1 -0
  34. package/out/assets/code-Dr6STnCn.js +1 -0
  35. package/out/assets/coffeescript-B2pKbFk8.js +1 -0
  36. package/out/assets/commonlisp-CcllspGY.js +1 -0
  37. package/out/assets/copy-CM-qWlbv.js +1 -0
  38. package/out/assets/crystal-M5-qzICs.js +1 -0
  39. package/out/assets/css-CYpP4FRV.js +1 -0
  40. package/out/assets/cypher-p9eYesGn.js +1 -0
  41. package/out/assets/d-BhMjBjQP.js +1 -0
  42. package/out/assets/database-DQ7ZtUT9.js +1 -0
  43. package/out/assets/dateTime-D1koKRQU.js +1 -0
  44. package/out/assets/dayjs.min-Dcc0B6Je.js +1 -0
  45. package/out/assets/demo-B_6rlIjn.js +3 -0
  46. package/out/assets/diff-ChtP43wD.js +1 -0
  47. package/out/assets/dist-BAJKKN4w.js +1 -0
  48. package/out/assets/dist-BGtXa07s.js +9 -0
  49. package/out/assets/dist-BQV5zYG_.js +23 -0
  50. package/out/assets/dist-BdmTLuCI.js +1 -0
  51. package/out/assets/dist-BmtYO1GG.js +11 -0
  52. package/out/assets/dist-C-Tg23jc.js +1 -0
  53. package/out/assets/dist-C5HibLEW.js +1 -0
  54. package/out/assets/dist-CMmmtl3f.js +1 -0
  55. package/out/assets/dist-CWJ3323z.js +6 -0
  56. package/out/assets/dist-CbTzBiwL.js +13 -0
  57. package/out/assets/dist-CqQavSZV.js +1 -0
  58. package/out/assets/dist-CrzjJUOw.js +1 -0
  59. package/out/assets/dist-CvatM4u8.js +1 -0
  60. package/out/assets/dist-D5Cf0hK8.js +2 -0
  61. package/out/assets/dist-D94V9Zlh.js +1 -0
  62. package/out/assets/dist-DBnWo8ZP.js +1 -0
  63. package/out/assets/dist-DBpw-A8y.js +1 -0
  64. package/out/assets/dist-DTL5jL08.js +1 -0
  65. package/out/assets/dist-DrumcFOX.js +1 -0
  66. package/out/assets/dist-DvWZsW-D.js +1 -0
  67. package/out/assets/dist-IGpXmkFm.js +1 -0
  68. package/out/assets/dist-IN8WN7NI.js +1 -0
  69. package/out/assets/dist-yZ96GF-e.js +1 -0
  70. package/out/assets/dist-zyJb88Zz.js +1 -0
  71. package/out/assets/dockerfile-BLkNEvjs.js +1 -0
  72. package/out/assets/download-0rM8xVCe.js +1 -0
  73. package/out/assets/download-BLPU-Kzq.js +1 -0
  74. package/out/assets/downloadMessages-7Xbd-HhS.js +1 -0
  75. package/out/assets/dtd-DTF72YNO.js +1 -0
  76. package/out/assets/dylan-C6jEEEk-.js +1 -0
  77. package/out/assets/ebnf-D4c0_ac3.js +1 -0
  78. package/out/assets/ecl-BSZaIHnp.js +1 -0
  79. package/out/assets/ed25519-BEctXF0E.js +1 -0
  80. package/out/assets/eiffel-BEjRio4Q.js +1 -0
  81. package/out/assets/elm-Cshzl8qu.js +1 -0
  82. package/out/assets/erlang-DaB2Rkuy.js +1 -0
  83. package/out/assets/factor-D7LVTn2l.js +1 -0
  84. package/out/assets/fcl-ClOhbFR7.js +1 -0
  85. package/out/assets/filePreview-BvbHWUTG.js +1 -0
  86. package/out/assets/folder-CcbCxm-k.js +1 -0
  87. package/out/assets/forth-Cezjo90N.js +1 -0
  88. package/out/assets/fortran-Bt6PBEDR.js +1 -0
  89. package/out/assets/game-B0zuqnOh.js +1 -0
  90. package/out/assets/gandengyan-8eWJAjpY.css +1 -0
  91. package/out/assets/gandengyan-DbQC7hCK.js +1 -0
  92. package/out/assets/gas-BHEdbvp9.js +1 -0
  93. package/out/assets/gherkin-oBAE_ms0.js +1 -0
  94. package/out/assets/groovy-BC3IOsC8.js +1 -0
  95. package/out/assets/hard-drive-CCdIvSap.js +1 -0
  96. package/out/assets/haskell-BRsoo5mP.js +1 -0
  97. package/out/assets/haxe-DjVOVvNP.js +1 -0
  98. package/out/assets/http-CLVgA2GD.js +1 -0
  99. package/out/assets/idl-BUZw3wgd.js +1 -0
  100. package/out/assets/index-BLhmAher.css +1 -0
  101. package/out/assets/index-Cf23WD2V.js +29 -0
  102. package/out/assets/javascript-8HiN0ThV.js +1 -0
  103. package/out/assets/join-DQHXjlfH.js +1 -0
  104. package/out/assets/jsx-runtime-Bt-cYkS5.js +1 -0
  105. package/out/assets/julia-CQfgDRfP.js +1 -0
  106. package/out/assets/key-round-tIqGrtt_.js +1 -0
  107. package/out/assets/livescript-BXxG0Yva.js +1 -0
  108. package/out/assets/lua-CiA1ziua.js +1 -0
  109. package/out/assets/mathematica-u8YMmbU0.js +1 -0
  110. package/out/assets/mbox-BEMVcqjs.js +1 -0
  111. package/out/assets/mirc-C9zpzAZU.js +1 -0
  112. package/out/assets/mllike-B45xgp2S.js +1 -0
  113. package/out/assets/modelica-CqHI_q-D.js +1 -0
  114. package/out/assets/mscgen-qgSLujhx.js +1 -0
  115. package/out/assets/mumps-CW_TBmxz.js +1 -0
  116. package/out/assets/music-BkZKq879.js +1 -0
  117. package/out/assets/nginx-BMaDbqW3.js +1 -0
  118. package/out/assets/note-DmWqGSS2.js +2 -0
  119. package/out/assets/notebook-pen-B4VSbweh.js +1 -0
  120. package/out/assets/nsis-AQ_alPln.js +1 -0
  121. package/out/assets/ntriples-d28e9m0E.js +1 -0
  122. package/out/assets/octave-D2Q8cUp1.js +1 -0
  123. package/out/assets/oz-BwTct_5T.js +1 -0
  124. package/out/assets/pascal-Dp_KdFgX.js +1 -0
  125. package/out/assets/perl-CdEHsPfU.js +1 -0
  126. package/out/assets/pig-AF4Hwhju.js +1 -0
  127. package/out/assets/ping-JILckfMu.js +1 -0
  128. package/out/assets/play-BIl5vwqS.js +1 -0
  129. package/out/assets/plus-DHvLpuuw.js +1 -0
  130. package/out/assets/powershell-CzG71I4L.js +1 -0
  131. package/out/assets/properties-C357ku5U.js +1 -0
  132. package/out/assets/protobuf-D1ij_kNL.js +1 -0
  133. package/out/assets/pug-DyBTKFx8.js +1 -0
  134. package/out/assets/puppet-B4hC2X4m.js +1 -0
  135. package/out/assets/python-BqYw9LYJ.js +1 -0
  136. package/out/assets/q-B9NhS7L_.js +1 -0
  137. package/out/assets/r-DADKenSm.js +1 -0
  138. package/out/assets/routes-Dyckj88f.js +1 -0
  139. package/out/assets/rpm-gpDK5sbt.js +1 -0
  140. package/out/assets/ruby-DsYpTuWg.js +1 -0
  141. package/out/assets/sas-C2OyD2Y6.js +1 -0
  142. package/out/assets/save-BzjzC3eV.js +1 -0
  143. package/out/assets/scheme-CyDdOh7e.js +1 -0
  144. package/out/assets/search-C-EpsDNl.js +1 -0
  145. package/out/assets/send-DtQInX0y.js +1 -0
  146. package/out/assets/shell-Du5Qg9im.js +1 -0
  147. package/out/assets/sieve-BAxa3IjF.js +1 -0
  148. package/out/assets/simple-mode-DRpGK0lJ.js +1 -0
  149. package/out/assets/smalltalk-BLp5-jwC.js +1 -0
  150. package/out/assets/solr-BBopId9w.js +1 -0
  151. package/out/assets/sparql-Dz-mlCAC.js +1 -0
  152. package/out/assets/spreadsheet-CTIncYxj.js +1 -0
  153. package/out/assets/sql-DcCJ9jop.js +1 -0
  154. package/out/assets/stex-sDrdk2BW.js +1 -0
  155. package/out/assets/stylus-DLLZ8dgm.js +1 -0
  156. package/out/assets/sun-C3IUQTpa.js +1 -0
  157. package/out/assets/swift-DKB6_1j6.js +1 -0
  158. package/out/assets/tcl-BGfruO1u.js +1 -0
  159. package/out/assets/textile-DWBqthVk.js +1 -0
  160. package/out/assets/tiddlywiki-VlUiK86J.js +1 -0
  161. package/out/assets/tiki-CxVlf5KZ.js +1 -0
  162. package/out/assets/toml-LvoKBwCs.js +1 -0
  163. package/out/assets/tools-BEctXF0E.js +1 -0
  164. package/out/assets/trash-2-BhMrUgGM.js +1 -0
  165. package/out/assets/triangle-alert-DUODU79n.js +1 -0
  166. package/out/assets/troff-C2dAgh7P.js +1 -0
  167. package/out/assets/ttcn-BePYh-hG.js +1 -0
  168. package/out/assets/ttcn-cfg-CY0aot7Q.js +1 -0
  169. package/out/assets/turtle-Cx3rYX2g.js +1 -0
  170. package/out/assets/upload-CpDM23UH.js +1 -0
  171. package/out/assets/useChannelMessages-Bs1hEJyd.js +3 -0
  172. package/out/assets/useGameRoom-C6UgmIGG.js +1 -0
  173. package/out/assets/vb-BthdM_4N.js +1 -0
  174. package/out/assets/vbscript-D9f6rSsU.js +1 -0
  175. package/out/assets/velocity-CqftRsjg.js +1 -0
  176. package/out/assets/verilog-D-x6ne0Z.js +1 -0
  177. package/out/assets/vhdl-CMrOq2q1.js +1 -0
  178. package/out/assets/wallet-YxbxCi7C.js +1 -0
  179. package/out/assets/web3-CRX1YFmw.js +3 -0
  180. package/out/assets/webidl-D5jiJvOU.js +1 -0
  181. package/out/assets/wifi-v3JpPCNm.js +1 -0
  182. package/out/assets/xquery-fj_R-kMw.js +1 -0
  183. package/out/assets/yacas-CXXgtw0p.js +1 -0
  184. package/out/assets/z80-CL1naaMV.js +1 -0
  185. package/out/assets/zhajinhua-BZc4blbW.css +1 -0
  186. package/out/assets/zhajinhua-QDmSZbOp.js +1 -0
  187. package/out/chat/index.html +0 -0
  188. package/out/chat/join/index.html +0 -0
  189. package/out/demo/index.html +0 -0
  190. package/out/download/index.html +3 -3
  191. package/out/game/gandengyan/index.html +0 -0
  192. package/out/game/index.html +0 -0
  193. package/out/game/zhajinhua/index.html +0 -0
  194. package/out/index.html +3 -3
  195. package/out/note/index.html +0 -0
  196. package/out/ping/index.html +3 -3
  197. package/out/web3/ed25519/index.html +0 -0
  198. package/out/web3/index.html +0 -0
  199. package/out/web3/tools/index.html +0 -0
  200. package/package.json +13 -7
  201. package/server/src/http/app.js +66 -1
  202. package/server/src/http/nodeStatus.js +18 -0
  203. package/server/src/http/staticFiles.js +1 -1
  204. package/server/src/index.js +659 -164
  205. package/out/404/index.html +0 -15
  206. package/out/404.html +0 -15
  207. package/out/__next.__PAGE__.txt +0 -11
  208. package/out/__next._full.txt +0 -24
  209. package/out/__next._head.txt +0 -5
  210. package/out/__next._index.txt +0 -9
  211. package/out/__next._tree.txt +0 -6
  212. package/out/_next/static/chunks/0-c8h4u1i2f78.js +0 -1
  213. package/out/_next/static/chunks/0-jy8rfo075fy.js +0 -1
  214. package/out/_next/static/chunks/0-kczrcxjk7lc.js +0 -1
  215. package/out/_next/static/chunks/012yllpioyi-k.js +0 -1
  216. package/out/_next/static/chunks/02f7w-ybfnvpd.js +0 -1
  217. package/out/_next/static/chunks/02j6ojja7vzp8.js +0 -1
  218. package/out/_next/static/chunks/04_v8i3c2y4ni.js +0 -1
  219. package/out/_next/static/chunks/05-c3ty_6dwfk.js +0 -1
  220. package/out/_next/static/chunks/052vp9tk7oqx6.js +0 -1
  221. package/out/_next/static/chunks/05k6874y7n0cw.js +0 -1
  222. package/out/_next/static/chunks/06im3as4nwfil.js +0 -1
  223. package/out/_next/static/chunks/09g8c9-u_uh1z.css +0 -1
  224. package/out/_next/static/chunks/0az8vxg2gfuhm.js +0 -31
  225. package/out/_next/static/chunks/0b899y85ei3i_.js +0 -1
  226. package/out/_next/static/chunks/0cz1d0mv5g_q7.js +0 -1
  227. package/out/_next/static/chunks/0eg1osglq6nq7.js +0 -1
  228. package/out/_next/static/chunks/0hlvocunlbrjs.js +0 -1
  229. package/out/_next/static/chunks/0i9k23rx749fx.js +0 -1
  230. package/out/_next/static/chunks/0j6wiyqf1637r.js +0 -1
  231. package/out/_next/static/chunks/0knzyzd1jvley.js +0 -1
  232. package/out/_next/static/chunks/0kp8ujaqwut11.js +0 -1
  233. package/out/_next/static/chunks/0n92y9hb-ta0u.js +0 -1
  234. package/out/_next/static/chunks/0nwdp-n94owg0.css +0 -1
  235. package/out/_next/static/chunks/0nybb-z3ufrbx.js +0 -1
  236. package/out/_next/static/chunks/0o-o9af-grvj8.js +0 -1
  237. package/out/_next/static/chunks/0oxr0r0aewn99.js +0 -1
  238. package/out/_next/static/chunks/0qh3b90ouc9bd.js +0 -1
  239. package/out/_next/static/chunks/0s7i7nfr9j3b1.js +0 -1
  240. package/out/_next/static/chunks/0sh_jm8siqvek.js +0 -1
  241. package/out/_next/static/chunks/0sq_0pwxnhby2.js +0 -1
  242. package/out/_next/static/chunks/0t86ducxkqweb.js +0 -1
  243. package/out/_next/static/chunks/0u0j5i6-n4oqd.js +0 -1
  244. package/out/_next/static/chunks/0v73vfxjds7sj.js +0 -1
  245. package/out/_next/static/chunks/0ve8ixremhwy0.js +0 -1
  246. package/out/_next/static/chunks/0vv5cwj6kr506.js +0 -1
  247. package/out/_next/static/chunks/0w3wf8o-ewec9.js +0 -1
  248. package/out/_next/static/chunks/0w6o4o76scrb2.js +0 -1
  249. package/out/_next/static/chunks/1-88dio6azz54.js +0 -1
  250. package/out/_next/static/chunks/12zg24u7mbv4z.js +0 -1
  251. package/out/_next/static/chunks/14lsse587-ccf.js +0 -1
  252. package/out/_next/static/chunks/16qtikqm_sate.js +0 -1
  253. package/out/_next/static/chunks/17_ly1mk2z3q8.js +0 -1
  254. package/out/_next/static/chunks/181421-y2xzj7.js +0 -1
  255. package/out/_next/static/chunks/1_e-vuvfsntao.js +0 -1
  256. package/out/_next/static/chunks/1aljc62wfhqhr.js +0 -1
  257. package/out/_next/static/chunks/1b7mbzsylsn-m.js +0 -1
  258. package/out/_next/static/chunks/1cjakikh0o1tm.js +0 -1
  259. package/out/_next/static/chunks/1dfzez629llzh.js +0 -1
  260. package/out/_next/static/chunks/1e4ilit3ave6c.js +0 -1
  261. package/out/_next/static/chunks/1ei8b9nw-ea8p.css +0 -1
  262. package/out/_next/static/chunks/1gzgcv355ziff.js +0 -1
  263. package/out/_next/static/chunks/1h-f81ddyfcmx.css +0 -1
  264. package/out/_next/static/chunks/1h0o6fj73le9_.js +0 -1
  265. package/out/_next/static/chunks/1in766ibz5l-p.js +0 -1
  266. package/out/_next/static/chunks/1ip_c70si4tj2.js +0 -1
  267. package/out/_next/static/chunks/1jlu197-yog_n.js +0 -1
  268. package/out/_next/static/chunks/1k788fny29y_j.js +0 -1
  269. package/out/_next/static/chunks/1lxjpnw925-0p.css +0 -1
  270. package/out/_next/static/chunks/1mnhfyfn52md5.js +0 -1
  271. package/out/_next/static/chunks/1o8brm8yipzn4.js +0 -1
  272. package/out/_next/static/chunks/1p8oa39bqu6ed.js +0 -1
  273. package/out/_next/static/chunks/1qmnmb_dutuw8.js +0 -1
  274. package/out/_next/static/chunks/1s6rdcw0q185p.js +0 -1
  275. package/out/_next/static/chunks/1ta0w8zc7tae7.js +0 -1
  276. package/out/_next/static/chunks/1uvi_hie0s3z5.js +0 -1
  277. package/out/_next/static/chunks/1v-molv0hbcjl.js +0 -1
  278. package/out/_next/static/chunks/1y36s6sv2z7r4.js +0 -1
  279. package/out/_next/static/chunks/1zf4i-oj7n-ll.js +0 -1
  280. package/out/_next/static/chunks/2-vtwv8h_uokj.js +0 -1
  281. package/out/_next/static/chunks/2227enga_0c-6.js +0 -1
  282. package/out/_next/static/chunks/22h69_zwmttt4.js +0 -1
  283. package/out/_next/static/chunks/23zlmarf-go2x.js +0 -1
  284. package/out/_next/static/chunks/24k_4-y4ym0df.js +0 -1
  285. package/out/_next/static/chunks/24zr4q96g-eii.js +0 -1
  286. package/out/_next/static/chunks/258tyt1xt34p4.css +0 -1
  287. package/out/_next/static/chunks/2693fczty5yr8.js +0 -1
  288. package/out/_next/static/chunks/26hcvxjw9do9d.js +0 -1
  289. package/out/_next/static/chunks/27jktro2p5rq9.js +0 -4
  290. package/out/_next/static/chunks/2_cqphhur0a6t.js +0 -1
  291. package/out/_next/static/chunks/2_i1b78h0yiu_.js +0 -1
  292. package/out/_next/static/chunks/2_s88st3j0tql.js +0 -1
  293. package/out/_next/static/chunks/2_y6edbaubqrt.js +0 -1
  294. package/out/_next/static/chunks/2at8y3pbt5cue.js +0 -1
  295. package/out/_next/static/chunks/2cv1zex4has67.js +0 -1
  296. package/out/_next/static/chunks/2e6j5h4ftd4jd.js +0 -1
  297. package/out/_next/static/chunks/2e8b26r0td7ou.js +0 -1
  298. package/out/_next/static/chunks/2ecppdrjm9cs4.js +0 -1
  299. package/out/_next/static/chunks/2fmkcw8ui5xp3.js +0 -5
  300. package/out/_next/static/chunks/2gl0wusc9zf3d.js +0 -1
  301. package/out/_next/static/chunks/2im7c515bo69p.js +0 -1
  302. package/out/_next/static/chunks/2ixaku9ie8hym.js +0 -1
  303. package/out/_next/static/chunks/2jhnrjgj_k2-z.js +0 -1
  304. package/out/_next/static/chunks/2n6pb94vmohgf.js +0 -1
  305. package/out/_next/static/chunks/2nbju8t9-ux58.css +0 -1
  306. package/out/_next/static/chunks/2pdxw43rsbho0.js +0 -1
  307. package/out/_next/static/chunks/2r6z3vlfw0ppd.js +0 -1
  308. package/out/_next/static/chunks/2rskzmv3skmq3.js +0 -1
  309. package/out/_next/static/chunks/2stoe6xiau1b3.js +0 -1
  310. package/out/_next/static/chunks/2uget3ephe4e3.js +0 -736
  311. package/out/_next/static/chunks/2va-v1iiap4zv.js +0 -1
  312. package/out/_next/static/chunks/2vm9uslik2wfi.css +0 -5
  313. package/out/_next/static/chunks/2wqoc60afpg_5.js +0 -1
  314. package/out/_next/static/chunks/2wyvwsayrr98o.js +0 -1
  315. package/out/_next/static/chunks/2y3o2mnyfnx68.js +0 -1
  316. package/out/_next/static/chunks/3-7y7sjol3yto.js +0 -1
  317. package/out/_next/static/chunks/3089gugfv3ov9.js +0 -1
  318. package/out/_next/static/chunks/30s3_0brd77ky.js +0 -1
  319. package/out/_next/static/chunks/35idql3ziq0wz.js +0 -1
  320. package/out/_next/static/chunks/35unmm4isvqg5.js +0 -1
  321. package/out/_next/static/chunks/389wmv2b6x2nn.js +0 -1
  322. package/out/_next/static/chunks/39-oy5n969lo6.js +0 -1
  323. package/out/_next/static/chunks/39yvee40syj70.js +0 -1
  324. package/out/_next/static/chunks/3clhij8e1eul0.js +0 -1
  325. package/out/_next/static/chunks/3cnsdzbvm3q7p.js +0 -1
  326. package/out/_next/static/chunks/3cxmalqqghdac.js +0 -1
  327. package/out/_next/static/chunks/3d9p88evh2scq.js +0 -1
  328. package/out/_next/static/chunks/3e9ia0hs-pqvs.css +0 -1
  329. package/out/_next/static/chunks/3ejz1mdljwwqf.css +0 -1
  330. package/out/_next/static/chunks/3eyprczj7yrg6.js +0 -1
  331. package/out/_next/static/chunks/3f9v_gtppe4hs.js +0 -1
  332. package/out/_next/static/chunks/3fea100s764m-.js +0 -1
  333. package/out/_next/static/chunks/3fj0amtzqae6f.js +0 -1
  334. package/out/_next/static/chunks/3g0c367tk4esf.js +0 -1
  335. package/out/_next/static/chunks/3gf98e08a-l_e.js +0 -1
  336. package/out/_next/static/chunks/3gi6og9m_yaak.js +0 -1
  337. package/out/_next/static/chunks/3giw7r1lii84y.js +0 -1
  338. package/out/_next/static/chunks/3gzhy1cs_f2oi.js +0 -1
  339. package/out/_next/static/chunks/3i_ceknny1oqt.js +0 -1
  340. package/out/_next/static/chunks/3iw0815ssih3b.js +0 -1
  341. package/out/_next/static/chunks/3kun-vwr7nzd4.js +0 -1
  342. package/out/_next/static/chunks/3kxm1e-b1er3_.js +0 -1
  343. package/out/_next/static/chunks/3mc8fynmv71yg.js +0 -1
  344. package/out/_next/static/chunks/3mccxoa60ley8.js +0 -1
  345. package/out/_next/static/chunks/3n6cor2n9zyn7.js +0 -1
  346. package/out/_next/static/chunks/3oe03qxgd_rid.js +0 -1
  347. package/out/_next/static/chunks/3or2h8swxfxyj.css +0 -1
  348. package/out/_next/static/chunks/3ppt04b6xqz29.js +0 -1
  349. package/out/_next/static/chunks/3ql2pi_m5_5p_.js +0 -1
  350. package/out/_next/static/chunks/3r5wf57k0gys9.js +0 -1
  351. package/out/_next/static/chunks/3t-6u8caafiu9.js +0 -1
  352. package/out/_next/static/chunks/3tqdzb_n12tdm.js +0 -1
  353. package/out/_next/static/chunks/3u6zpg943kpst.js +0 -1
  354. package/out/_next/static/chunks/3uaedu2hf291z.js +0 -1
  355. package/out/_next/static/chunks/3vladx3wh0d4k.js +0 -1
  356. package/out/_next/static/chunks/3w4o9hklow6fg.js +0 -2
  357. package/out/_next/static/chunks/3w56w25z6u89b.js +0 -1
  358. package/out/_next/static/chunks/3x1y_gkazt6kx.js +0 -1
  359. package/out/_next/static/chunks/3y7r1h96dtcov.js +0 -1
  360. package/out/_next/static/chunks/3yc_zd5vxq0j7.css +0 -1
  361. package/out/_next/static/chunks/3z0hydntmwg19.js +0 -1
  362. package/out/_next/static/chunks/3zhu1svjr0bc5.js +0 -1
  363. package/out/_next/static/chunks/404orp1erq__7.js +0 -1
  364. package/out/_next/static/chunks/418_591yp64lx.css +0 -23
  365. package/out/_next/static/chunks/41talcs-dc2tc.js +0 -1
  366. package/out/_next/static/chunks/421pn8weymo-b.js +0 -1
  367. package/out/_next/static/chunks/43l72x-2z3zxb.js +0 -1
  368. package/out/_next/static/chunks/44987pmr20now.js +0 -1
  369. package/out/_next/static/chunks/449ygeh62gitc.js +0 -1
  370. package/out/_next/static/chunks/turbopack-026p0g9v9_pva.js +0 -1
  371. package/out/_next/static/eXddCOt9eyz0j78b1m4Ex/_buildManifest.js +0 -11
  372. package/out/_next/static/eXddCOt9eyz0j78b1m4Ex/_clientMiddlewareManifest.js +0 -1
  373. package/out/_next/static/eXddCOt9eyz0j78b1m4Ex/_ssgManifest.js +0 -1
  374. package/out/_next/static/media/KaTeX_Size3-Regular.1n1rgzz84z8r9.woff2 +0 -0
  375. package/out/_not-found/__next._full.txt +0 -22
  376. package/out/_not-found/__next._head.txt +0 -5
  377. package/out/_not-found/__next._index.txt +0 -9
  378. package/out/_not-found/__next._not-found.__PAGE__.txt +0 -9
  379. package/out/_not-found/__next._not-found.txt +0 -5
  380. package/out/_not-found/__next._tree.txt +0 -3
  381. package/out/_not-found/index.html +0 -15
  382. package/out/_not-found/index.txt +0 -22
  383. package/out/admin/__next._full.txt +0 -23
  384. package/out/admin/__next._head.txt +0 -5
  385. package/out/admin/__next._index.txt +0 -9
  386. package/out/admin/__next._tree.txt +0 -5
  387. package/out/admin/__next.admin.__PAGE__.txt +0 -9
  388. package/out/admin/__next.admin.txt +0 -5
  389. package/out/admin/index.txt +0 -23
  390. package/out/app/__next._full.txt +0 -22
  391. package/out/app/__next._head.txt +0 -5
  392. package/out/app/__next._index.txt +0 -9
  393. package/out/app/__next._tree.txt +0 -4
  394. package/out/app/__next.app.__PAGE__.txt +0 -9
  395. package/out/app/__next.app.txt +0 -4
  396. package/out/app/index.txt +0 -22
  397. package/out/chat/__next._full.txt +0 -23
  398. package/out/chat/__next._head.txt +0 -5
  399. package/out/chat/__next._index.txt +0 -9
  400. package/out/chat/__next._tree.txt +0 -5
  401. package/out/chat/__next.chat.__PAGE__.txt +0 -9
  402. package/out/chat/__next.chat.txt +0 -5
  403. package/out/chat/index.txt +0 -23
  404. package/out/chat/join/__next._full.txt +0 -25
  405. package/out/chat/join/__next._head.txt +0 -5
  406. package/out/chat/join/__next._index.txt +0 -9
  407. package/out/chat/join/__next._tree.txt +0 -5
  408. package/out/chat/join/__next.chat.join.__PAGE__.txt +0 -9
  409. package/out/chat/join/__next.chat.join.txt +0 -5
  410. package/out/chat/join/__next.chat.txt +0 -5
  411. package/out/chat/join/index.txt +0 -25
  412. package/out/demo/__next._full.txt +0 -27
  413. package/out/demo/__next._head.txt +0 -5
  414. package/out/demo/__next._index.txt +0 -9
  415. package/out/demo/__next._tree.txt +0 -7
  416. package/out/demo/__next.demo.__PAGE__.txt +0 -12
  417. package/out/demo/__next.demo.txt +0 -5
  418. package/out/demo/index.txt +0 -27
  419. package/out/download/__next._full.txt +0 -39
  420. package/out/download/__next._head.txt +0 -5
  421. package/out/download/__next._index.txt +0 -9
  422. package/out/download/__next._tree.txt +0 -6
  423. package/out/download/__next.download.__PAGE__.txt +0 -10
  424. package/out/download/__next.download.txt +0 -5
  425. package/out/download/index.txt +0 -39
  426. package/out/game/__next._full.txt +0 -20
  427. package/out/game/__next._head.txt +0 -5
  428. package/out/game/__next._index.txt +0 -9
  429. package/out/game/__next._tree.txt +0 -5
  430. package/out/game/__next.game.__PAGE__.txt +0 -6
  431. package/out/game/__next.game.txt +0 -5
  432. package/out/game/gandengyan/__next._full.txt +0 -26
  433. package/out/game/gandengyan/__next._head.txt +0 -5
  434. package/out/game/gandengyan/__next._index.txt +0 -9
  435. package/out/game/gandengyan/__next._tree.txt +0 -6
  436. package/out/game/gandengyan/__next.game.gandengyan.__PAGE__.txt +0 -10
  437. package/out/game/gandengyan/__next.game.gandengyan.txt +0 -5
  438. package/out/game/gandengyan/__next.game.txt +0 -5
  439. package/out/game/gandengyan/index.txt +0 -26
  440. package/out/game/index.txt +0 -20
  441. package/out/game/zhajinhua/__next._full.txt +0 -26
  442. package/out/game/zhajinhua/__next._head.txt +0 -5
  443. package/out/game/zhajinhua/__next._index.txt +0 -9
  444. package/out/game/zhajinhua/__next._tree.txt +0 -6
  445. package/out/game/zhajinhua/__next.game.txt +0 -5
  446. package/out/game/zhajinhua/__next.game.zhajinhua.__PAGE__.txt +0 -10
  447. package/out/game/zhajinhua/__next.game.zhajinhua.txt +0 -5
  448. package/out/game/zhajinhua/index.txt +0 -26
  449. package/out/index.txt +0 -24
  450. package/out/note/__next._full.txt +0 -24
  451. package/out/note/__next._head.txt +0 -5
  452. package/out/note/__next._index.txt +0 -9
  453. package/out/note/__next._tree.txt +0 -4
  454. package/out/note/__next.note.__PAGE__.txt +0 -9
  455. package/out/note/__next.note.txt +0 -5
  456. package/out/note/index.txt +0 -24
  457. package/out/ping/__next._full.txt +0 -24
  458. package/out/ping/__next._head.txt +0 -5
  459. package/out/ping/__next._index.txt +0 -9
  460. package/out/ping/__next._tree.txt +0 -6
  461. package/out/ping/__next.ping.__PAGE__.txt +0 -10
  462. package/out/ping/__next.ping.txt +0 -5
  463. package/out/ping/index.txt +0 -24
  464. package/out/web3/__next._full.txt +0 -23
  465. package/out/web3/__next._head.txt +0 -5
  466. package/out/web3/__next._index.txt +0 -9
  467. package/out/web3/__next._tree.txt +0 -5
  468. package/out/web3/__next.web3.__PAGE__.txt +0 -9
  469. package/out/web3/__next.web3.txt +0 -5
  470. package/out/web3/ed25519/__next._full.txt +0 -22
  471. package/out/web3/ed25519/__next._head.txt +0 -5
  472. package/out/web3/ed25519/__next._index.txt +0 -9
  473. package/out/web3/ed25519/__next._tree.txt +0 -5
  474. package/out/web3/ed25519/__next.web3.ed25519.__PAGE__.txt +0 -6
  475. package/out/web3/ed25519/__next.web3.ed25519.txt +0 -5
  476. package/out/web3/ed25519/__next.web3.txt +0 -5
  477. package/out/web3/ed25519/index.txt +0 -22
  478. package/out/web3/index.txt +0 -23
  479. package/out/web3/tools/__next._full.txt +0 -22
  480. package/out/web3/tools/__next._head.txt +0 -5
  481. package/out/web3/tools/__next._index.txt +0 -9
  482. package/out/web3/tools/__next._tree.txt +0 -5
  483. package/out/web3/tools/__next.web3.tools.__PAGE__.txt +0 -6
  484. package/out/web3/tools/__next.web3.tools.txt +0 -5
  485. package/out/web3/tools/__next.web3.txt +0 -5
  486. package/out/web3/tools/index.txt +0 -22
  487. /package/out/{_next/static/media/KaTeX_AMS-Regular.25ieegmnh38ts.woff2 → assets/KaTeX_AMS-Regular-BQhdFMY1.woff2} +0 -0
  488. /package/out/{_next/static/media/KaTeX_AMS-Regular.10y3kupq4t663.woff → assets/KaTeX_AMS-Regular-DMm9YOAa.woff} +0 -0
  489. /package/out/{_next/static/media/KaTeX_AMS-Regular.418dr7cz3fo2x.ttf → assets/KaTeX_AMS-Regular-DRggAlZN.ttf} +0 -0
  490. /package/out/{_next/static/media/KaTeX_Caligraphic-Bold.40ltxhe834pns.ttf → assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf} +0 -0
  491. /package/out/{_next/static/media/KaTeX_Caligraphic-Bold.2vmk2hva4ctha.woff → assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff} +0 -0
  492. /package/out/{_next/static/media/KaTeX_Caligraphic-Bold.06b-ya9t43ioz.woff2 → assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2} +0 -0
  493. /package/out/{_next/static/media/KaTeX_Caligraphic-Regular.3gxeetazf831f.woff → assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff} +0 -0
  494. /package/out/{_next/static/media/KaTeX_Caligraphic-Regular.2eph4dlhid_m9.woff2 → assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2} +0 -0
  495. /package/out/{_next/static/media/KaTeX_Caligraphic-Regular.07-7u27-nhn_r.ttf → assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf} +0 -0
  496. /package/out/{_next/static/media/KaTeX_Fraktur-Bold.19yqa_tc9d_gx.ttf → assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf} +0 -0
  497. /package/out/{_next/static/media/KaTeX_Fraktur-Bold.1alcy76__wdj2.woff → assets/KaTeX_Fraktur-Bold-BsDP51OF.woff} +0 -0
  498. /package/out/{_next/static/media/KaTeX_Fraktur-Bold.2sasz-d-jtw8y.woff2 → assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2} +0 -0
  499. /package/out/{_next/static/media/KaTeX_Fraktur-Regular.2qhy34r6a05dn.ttf → assets/KaTeX_Fraktur-Regular-CB_wures.ttf} +0 -0
  500. /package/out/{_next/static/media/KaTeX_Fraktur-Regular.2d10y4xmjvzlf.woff2 → assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2} +0 -0
  501. /package/out/{_next/static/media/KaTeX_Fraktur-Regular.110oo81prr9n5.woff → assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff} +0 -0
  502. /package/out/{_next/static/media/KaTeX_Main-Bold.3-rowy8o6_4ky.woff2 → assets/KaTeX_Main-Bold-Cx986IdX.woff2} +0 -0
  503. /package/out/{_next/static/media/KaTeX_Main-Bold.0v1esh257kqpe.woff → assets/KaTeX_Main-Bold-Jm3AIy58.woff} +0 -0
  504. /package/out/{_next/static/media/KaTeX_Main-Bold.0us_n0tnxlxu7.ttf → assets/KaTeX_Main-Bold-waoOVXN0.ttf} +0 -0
  505. /package/out/{_next/static/media/KaTeX_Main-BoldItalic.14r2naom8mrec.woff2 → assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2} +0 -0
  506. /package/out/{_next/static/media/KaTeX_Main-BoldItalic.3x_u9cepaced0.ttf → assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf} +0 -0
  507. /package/out/{_next/static/media/KaTeX_Main-BoldItalic.13355ck5zr48q.woff → assets/KaTeX_Main-BoldItalic-SpSLRI95.woff} +0 -0
  508. /package/out/{_next/static/media/KaTeX_Main-Italic.2hkw3230mfwcv.ttf → assets/KaTeX_Main-Italic-3WenGoN9.ttf} +0 -0
  509. /package/out/{_next/static/media/KaTeX_Main-Italic.0afv392dj4w59.woff → assets/KaTeX_Main-Italic-BMLOBm91.woff} +0 -0
  510. /package/out/{_next/static/media/KaTeX_Main-Italic.0lig0v9j0700p.woff2 → assets/KaTeX_Main-Italic-NWA7e6Wa.woff2} +0 -0
  511. /package/out/{_next/static/media/KaTeX_Main-Regular.1ryvsdzh2w1_e.woff2 → assets/KaTeX_Main-Regular-B22Nviop.woff2} +0 -0
  512. /package/out/{_next/static/media/KaTeX_Main-Regular.15u8r3b2y7fv4.woff → assets/KaTeX_Main-Regular-Dr94JaBh.woff} +0 -0
  513. /package/out/{_next/static/media/KaTeX_Main-Regular.0symfa7dqj6jd.ttf → assets/KaTeX_Main-Regular-ypZvNtVU.ttf} +0 -0
  514. /package/out/{_next/static/media/KaTeX_Math-BoldItalic.0y5w36a5aq__2.ttf → assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf} +0 -0
  515. /package/out/{_next/static/media/KaTeX_Math-BoldItalic.1oopuu636h4il.woff2 → assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2} +0 -0
  516. /package/out/{_next/static/media/KaTeX_Math-BoldItalic.12pl58orkw9rg.woff → assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff} +0 -0
  517. /package/out/{_next/static/media/KaTeX_Math-Italic.0w0b1ugh62cfr.woff → assets/KaTeX_Math-Italic-DA0__PXp.woff} +0 -0
  518. /package/out/{_next/static/media/KaTeX_Math-Italic.2vkekfblmz5nb.ttf → assets/KaTeX_Math-Italic-flOr_0UB.ttf} +0 -0
  519. /package/out/{_next/static/media/KaTeX_Math-Italic.32405s1aq8vas.woff2 → assets/KaTeX_Math-Italic-t53AETM-.woff2} +0 -0
  520. /package/out/{_next/static/media/KaTeX_SansSerif-Bold.2d03q85pwxpti.ttf → assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf} +0 -0
  521. /package/out/{_next/static/media/KaTeX_SansSerif-Bold.0h3wi2z_eouyg.woff2 → assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2} +0 -0
  522. /package/out/{_next/static/media/KaTeX_SansSerif-Bold.1ovw5p-yjp56g.woff → assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff} +0 -0
  523. /package/out/{_next/static/media/KaTeX_SansSerif-Italic.0wkjc4dm2kcit.woff2 → assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2} +0 -0
  524. /package/out/{_next/static/media/KaTeX_SansSerif-Italic.1qavw__2zz8gk.woff → assets/KaTeX_SansSerif-Italic-DN2j7dab.woff} +0 -0
  525. /package/out/{_next/static/media/KaTeX_SansSerif-Italic.3i-q087b23-m8.ttf → assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf} +0 -0
  526. /package/out/{_next/static/media/KaTeX_SansSerif-Regular.31pbu25feko_c.ttf → assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf} +0 -0
  527. /package/out/{_next/static/media/KaTeX_SansSerif-Regular.1i4afx8nk8n4r.woff → assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff} +0 -0
  528. /package/out/{_next/static/media/KaTeX_SansSerif-Regular.2peiewu59z3d-.woff2 → assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2} +0 -0
  529. /package/out/{_next/static/media/KaTeX_Script-Regular.28p_x7iz71ofe.ttf → assets/KaTeX_Script-Regular-C5JkGWo-.ttf} +0 -0
  530. /package/out/{_next/static/media/KaTeX_Script-Regular.11h14300o9pd0.woff2 → assets/KaTeX_Script-Regular-D3wIWfF6.woff2} +0 -0
  531. /package/out/{_next/static/media/KaTeX_Script-Regular.3110jb9c-bxna.woff → assets/KaTeX_Script-Regular-D5yQViql.woff} +0 -0
  532. /package/out/{_next/static/media/KaTeX_Size1-Regular.1slf4bh0hc6vm.woff → assets/KaTeX_Size1-Regular-C195tn64.woff} +0 -0
  533. /package/out/{_next/static/media/KaTeX_Size1-Regular.1y57-ck23ey8c.ttf → assets/KaTeX_Size1-Regular-Dbsnue_I.ttf} +0 -0
  534. /package/out/{_next/static/media/KaTeX_Size1-Regular.03lhvx36ekcou.woff2 → assets/KaTeX_Size1-Regular-mCD8mA8B.woff2} +0 -0
  535. /package/out/{_next/static/media/KaTeX_Size2-Regular.2u0s-b07k2o9m.ttf → assets/KaTeX_Size2-Regular-B7gKUWhC.ttf} +0 -0
  536. /package/out/{_next/static/media/KaTeX_Size2-Regular.14s5gg-puz6h-.woff2 → assets/KaTeX_Size2-Regular-Dy4dx90m.woff2} +0 -0
  537. /package/out/{_next/static/media/KaTeX_Size2-Regular.0-kwyvx03omo8.woff → assets/KaTeX_Size2-Regular-oD1tc_U0.woff} +0 -0
  538. /package/out/{_next/static/media/KaTeX_Size3-Regular.04o9a_02gu_e8.woff → assets/KaTeX_Size3-Regular-CTq5MqoE.woff} +0 -0
  539. /package/out/{_next/static/media/KaTeX_Size3-Regular.1pkn-dge4q0fv.ttf → assets/KaTeX_Size3-Regular-DgpXs0kz.ttf} +0 -0
  540. /package/out/{_next/static/media/KaTeX_Size4-Regular.3p2r1l7xmebxv.woff → assets/KaTeX_Size4-Regular-BF-4gkZK.woff} +0 -0
  541. /package/out/{_next/static/media/KaTeX_Size4-Regular.2uelkfk2yna5e.ttf → assets/KaTeX_Size4-Regular-DWFBv043.ttf} +0 -0
  542. /package/out/{_next/static/media/KaTeX_Size4-Regular.2sgotkdv3dcyv.woff2 → assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2} +0 -0
  543. /package/out/{_next/static/media/KaTeX_Typewriter-Regular.12f8myjij3617.woff → assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff} +0 -0
  544. /package/out/{_next/static/media/KaTeX_Typewriter-Regular.11gr2d2wuwz77.woff2 → assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2} +0 -0
  545. /package/out/{_next/static/media/KaTeX_Typewriter-Regular.3nee9kjfy6nm8.ttf → assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf} +0 -0
@@ -0,0 +1,3 @@
1
+ import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{t as r}from"./chevron-down-Xlb3wTxd.js";import{t as i}from"./database-DQ7ZtUT9.js";import{t as a}from"./download-0rM8xVCe.js";import{n as o,t as s}from"./wallet-YxbxCi7C.js";import{t as c}from"./key-round-tIqGrtt_.js";import{n as l}from"./dateTime-D1koKRQU.js";import{t as u}from"./AppShell-DmZQwVA9.js";import{n as d,t as f}from"./sun-C3IUQTpa.js";import{a as p,i as m,n as h,r as g,t as _}from"./PemBlock-Dxx6k9MH.js";import{t as v}from"./triangle-alert-DUODU79n.js";import{t as y}from"./upload-CpDM23UH.js";import{A as b,C as x,D as S,H as C,M as w,N as T,S as ee,U as te,V as E,W as D,f as O,g as k,i as ne,j as re,k as ie,p as A,s as ae,u as j,w as oe}from"./index-Cf23WD2V.js";var se=D(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),M=D(`file-braces`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),ce=D(`fingerprint-pattern`,[[`path`,{d:`M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4`,key:`1nerag`}],[`path`,{d:`M14 13.12c0 2.38 0 6.38-1 8.88`,key:`o46ks0`}],[`path`,{d:`M17.29 21.02c.12-.6.43-2.3.5-3.02`,key:`ptglia`}],[`path`,{d:`M2 12a10 10 0 0 1 18-6`,key:`ydlgp0`}],[`path`,{d:`M2 16h.01`,key:`1gqxmh`}],[`path`,{d:`M21.8 16c.2-2 .131-5.354 0-6`,key:`drycrb`}],[`path`,{d:`M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2`,key:`1tidbn`}],[`path`,{d:`M8.65 22c.21-.66.45-1.32.57-2`,key:`13wd9y`}],[`path`,{d:`M9 6.8a6 6 0 0 1 9 5.2v2`,key:`1fr1j5`}]]),le=D(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),ue=D(`qr-code`,[[`rect`,{width:`5`,height:`5`,x:`3`,y:`3`,rx:`1`,key:`1tu5fj`}],[`rect`,{width:`5`,height:`5`,x:`16`,y:`3`,rx:`1`,key:`1v8r4q`}],[`rect`,{width:`5`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`1x03jg`}],[`path`,{d:`M21 16h-3a2 2 0 0 0-2 2v3`,key:`177gqh`}],[`path`,{d:`M21 21v.01`,key:`ents32`}],[`path`,{d:`M12 7v3a2 2 0 0 1-2 2H7`,key:`8crl2c`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M12 3h.01`,key:`n36tog`}],[`path`,{d:`M12 16v.01`,key:`133mhm`}],[`path`,{d:`M16 12h1`,key:`1slzba`}],[`path`,{d:`M21 12v.01`,key:`1lwtk9`}],[`path`,{d:`M12 21v-1`,key:`1880an`}]]),de=D(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),fe=D(`user`,[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`,key:`975kel`}],[`circle`,{cx:`12`,cy:`7`,r:`4`,key:`17ys0d`}]]),N=t(e(),1),pe=t(re(),1),me=`0123456789abcdefghijklmnopqrstuvwxyz`,he=e=>{let t=[];for(;e>=128;)t.push(e&127|128),e>>=7;return t.push(e),t},ge=e=>{let t=new Uint8Array([8,1,18,...he(e.length)]),n=new Uint8Array(t.length+e.length);return n.set(t,0),n.set(e,t.length),n},_e=(e,t)=>{if(e.length===0)return``;let n=t.length,r=0;for(;r<e.length&&e[r]===0;)r++;let i=[0];for(let t=r;t<e.length;t++){let r=e[t];for(let e=0;e<i.length;e++){let t=i[e]*256+r;i[e]=t%n,r=Math.floor(t/n)}for(;r>0;)i.push(r%n),r=Math.floor(r/n)}let a=``;for(let e=0;e<r;e++)a+=t[0];for(let e=i.length-1;e>=0;e--)a+=t[i[e]];return a},ve=(e,t)=>{let n=t.slice(2),r=new Uint8Array(T(e+n));return pe.default.sign.keyPair.fromSecretKey(r)},ye=(e,t)=>{let n=ge(ve(e,t).publicKey),r=new Uint8Array(2+n.length);r[0]=0,r[1]=36,r.set(n,2);let i=new Uint8Array([1,114]),a=new Uint8Array(i.length+r.length);return a.set(i,0),a.set(r,i.length),`k`+_e(a,me)},P=n();function be(e){return e?`•`.repeat(Math.min(e.length,32)):`-`}function xe({title:e,username:t,password:n,showPassword:r,showPrivateKey:i,account:a,onUsernameChange:o,onPasswordChange:s,onTogglePassword:l,onTogglePrivateKey:u,onGenerate:d}){return(0,P.jsxs)(`div`,{className:`web3-box-account`,children:[(0,P.jsx)(`div`,{className:`web3-box-account-header`,children:(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`h2`,{children:e}),(0,P.jsx)(`p`,{children:`用户名和密码会确定性生成 x25519 密钥对。`})]})}),(0,P.jsxs)(`div`,{className:`web3-box-login`,children:[(0,P.jsx)(`input`,{type:`text`,placeholder:`用户名`,value:t,onChange:e=>o(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,P.jsxs)(`div`,{className:`input-wrap`,children:[(0,P.jsx)(`input`,{type:r?`text`:`password`,placeholder:`密码(可选)`,value:n,onChange:e=>s(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,P.jsx)(`button`,{className:`input-eye`,onClick:l,type:`button`,children:r?(0,P.jsx)(C,{size:16}):(0,P.jsx)(E,{size:16})})]}),(0,P.jsxs)(`button`,{className:`btn btn-primary btn-full`,onClick:d,disabled:!t.trim(),type:`button`,children:[(0,P.jsx)(c,{size:16}),`生成账号`]})]}),a?(0,P.jsxs)(`div`,{className:`web3-box-key-list`,children:[(0,P.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,P.jsx)(`span`,{children:`地址`}),(0,P.jsxs)(`div`,{className:`mono-row`,children:[(0,P.jsx)(`code`,{className:`mono`,children:a.address.toLowerCase()}),(0,P.jsx)(m,{text:a.address.toLowerCase()})]})]}),(0,P.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,P.jsx)(`span`,{children:`x25519 公钥`}),(0,P.jsxs)(`div`,{className:`mono-row`,children:[(0,P.jsx)(`code`,{className:`mono`,children:a.publicKey}),(0,P.jsx)(m,{text:a.publicKey})]})]}),(0,P.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,P.jsx)(`span`,{children:`x25519 私钥`}),(0,P.jsxs)(`div`,{className:`mono-row danger`,children:[(0,P.jsx)(`code`,{className:`mono`,children:i?a.privateKey:be(a.privateKey)}),(0,P.jsx)(`button`,{className:`btn btn-icon`,onClick:u,title:i?`隐藏私钥`:`显示私钥`,type:`button`,children:i?(0,P.jsx)(E,{size:14}):(0,P.jsx)(C,{size:14})})]})]})]}):null]})}function Se(e){return Number.isFinite(e)?`${new Date(e).toLocaleString()}`:`-`}function F({title:e,description:t,message:n,cipherText:r,decryptedText:i,error:a,encryptLabel:o,decryptLabel:s,messagePlaceholder:u,cipherPlaceholder:d,onMessageChange:f,onCipherTextChange:p,onEncrypt:m,onDecrypt:h}){let g=`box-message-${e.replaceAll(/\s+/g,`-`)}`,_=b(r);return(0,P.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,P.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`h2`,{children:e}),(0,P.jsx)(`p`,{children:t})]})}),(0,P.jsx)(`label`,{className:`web3-box-label`,htmlFor:g,children:`明文`}),(0,P.jsx)(`textarea`,{id:g,className:`textarea`,value:n,onChange:e=>f(e.target.value),rows:4,placeholder:u}),(0,P.jsxs)(`div`,{className:`web3-box-actions`,children:[(0,P.jsxs)(`button`,{className:`btn btn-primary`,onClick:m,type:`button`,children:[(0,P.jsx)(l,{size:16}),o]}),(0,P.jsxs)(`button`,{className:`btn btn-secondary`,onClick:h,type:`button`,children:[(0,P.jsx)(c,{size:16}),s]})]}),a&&(0,P.jsx)(`p`,{className:`web3-tools-danger`,children:a}),(0,P.jsxs)(`div`,{className:`web3-box-result-grid`,children:[(0,P.jsxs)(`div`,{className:`web3-box-result`,children:[(0,P.jsx)(`label`,{className:`web3-box-result-header`,children:(0,P.jsx)(`span`,{children:`密文`})}),(0,P.jsx)(`textarea`,{className:`textarea mono`,value:r,onChange:e=>p(e.target.value),rows:5,placeholder:d})]}),(0,P.jsxs)(`div`,{className:`web3-box-result`,children:[(0,P.jsx)(`label`,{className:`web3-box-result-header`,children:(0,P.jsx)(`span`,{children:`解密结果`})}),(0,P.jsx)(`textarea`,{className:`textarea mono`,value:i,readOnly:!0,rows:5,placeholder:`解密成功后显示明文`})]})]}),_&&(0,P.jsxs)(`div`,{className:`web3-box-token-meta`,children:[(0,P.jsxs)(`div`,{className:`web3-box-token-meta-row`,children:[(0,P.jsx)(`span`,{children:`时间戳`}),(0,P.jsx)(`code`,{children:Se(_.timestampMs)})]}),(0,P.jsxs)(`div`,{className:`web3-box-token-meta-row`,children:[(0,P.jsx)(`span`,{children:`随机数`}),(0,P.jsx)(`code`,{children:_.nonce})]})]})]})}function Ce(e){return(0,P.jsxs)(`div`,{className:`web3-box-workspace`,children:[(0,P.jsxs)(`div`,{className:`web3-box-grid`,children:[(0,P.jsx)(xe,{title:`A 账号`,username:e.boxAUsername,password:e.boxAPassword,showPassword:e.boxAShowPassword,showPrivateKey:e.boxAShowPrivateKey,account:e.boxAAccount,onUsernameChange:e.onBoxAUsernameChange,onPasswordChange:e.onBoxAPasswordChange,onTogglePassword:e.onBoxAShowPasswordToggle,onTogglePrivateKey:e.onBoxAShowPrivateKeyToggle,onGenerate:e.onGenerateBoxA}),(0,P.jsx)(xe,{title:`B 账号`,username:e.boxBUsername,password:e.boxBPassword,showPassword:e.boxBShowPassword,showPrivateKey:e.boxBShowPrivateKey,account:e.boxBAccount,onUsernameChange:e.onBoxBUsernameChange,onPasswordChange:e.onBoxBPasswordChange,onTogglePassword:e.onBoxBShowPasswordToggle,onTogglePrivateKey:e.onBoxBShowPrivateKeyToggle,onGenerate:e.onGenerateBoxB})]}),(0,P.jsxs)(`div`,{className:`web3-box-flow-grid`,children:[(0,P.jsx)(F,{title:`A → B`,description:`加密使用 A 私钥 + B 公钥;解密使用 A 公钥 + B 私钥。`,message:e.boxABMessage,cipherText:e.boxABCipherText,decryptedText:e.boxABDecryptedText,error:e.boxABError,encryptLabel:`用 A 私钥 + B 公钥加密`,decryptLabel:`用 A 公钥 + B 私钥解密`,messagePlaceholder:`输入要从 A 发给 B 的消息`,cipherPlaceholder:`加密后生成密文,或粘贴已有密文`,onMessageChange:e.onBoxABMessageChange,onCipherTextChange:e.onBoxABCipherTextChange,onEncrypt:e.onEncryptBoxAB,onDecrypt:e.onDecryptBoxAB}),(0,P.jsx)(F,{title:`B → A`,description:`加密使用 B 私钥 + A 公钥;解密使用 B 公钥 + A 私钥。`,message:e.boxBAMessage,cipherText:e.boxBACipherText,decryptedText:e.boxBADecryptedText,error:e.boxBAError,encryptLabel:`用 B 私钥 + A 公钥加密`,decryptLabel:`用 B 公钥 + A 私钥解密`,messagePlaceholder:`输入要从 B 发给 A 的消息`,cipherPlaceholder:`加密后生成密文,或粘贴已有密文`,onMessageChange:e.onBoxBAMessageChange,onCipherTextChange:e.onBoxBACipherTextChange,onEncrypt:e.onEncryptBoxBA,onDecrypt:e.onDecryptBoxBA})]}),(0,P.jsxs)(`div`,{className:`web3-box-flow-grid`,children:[(0,P.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,P.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`h2`,{children:`加密`}),(0,P.jsx)(`p`,{children:`只输入发送方私钥和接收方公钥即可加密,无需生成完整账号。`})]})}),(0,P.jsx)(`label`,{className:`web3-box-result-header`,children:(0,P.jsx)(`span`,{children:`发送方`})}),(0,P.jsxs)(`div`,{className:`input-wrap`,children:[(0,P.jsx)(`input`,{type:e.boxEncryptShowPrivateKey?`text`:`password`,placeholder:`发送方 x25519 私钥`,value:e.boxEncryptSenderPrivateKey,onChange:t=>e.onBoxEncryptSenderPrivateKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,P.jsx)(`button`,{className:`input-eye`,onClick:e.onBoxEncryptShowPrivateKeyToggle,type:`button`,children:e.boxEncryptShowPrivateKey?(0,P.jsx)(C,{size:16}):(0,P.jsx)(E,{size:16})})]}),(0,P.jsx)(`label`,{className:`web3-box-result-header`,children:(0,P.jsx)(`span`,{children:`接收方`})}),(0,P.jsx)(`input`,{type:`text`,placeholder:`接收方 x25519 公钥`,value:e.boxEncryptRecipientPublicKey,onChange:t=>e.onBoxEncryptRecipientPublicKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,P.jsx)(`label`,{className:`web3-box-result-header`,children:(0,P.jsx)(`span`,{children:`明文`})}),(0,P.jsx)(`textarea`,{className:`textarea`,value:e.boxEncryptMessage,onChange:t=>e.onBoxEncryptMessageChange(t.target.value),rows:4,placeholder:`输入要加密的消息`}),(0,P.jsx)(`div`,{className:`web3-box-actions`,children:(0,P.jsxs)(`button`,{className:`btn btn-primary`,onClick:e.onEncryptOnly,type:`button`,children:[(0,P.jsx)(l,{size:16}),`加密`]})}),e.boxEncryptError&&(0,P.jsx)(`p`,{className:`web3-tools-danger`,children:e.boxEncryptError}),(0,P.jsxs)(`div`,{className:`web3-box-result`,children:[(0,P.jsx)(`label`,{className:`web3-box-result-header`,children:(0,P.jsx)(`span`,{children:`密文`})}),(0,P.jsx)(`textarea`,{className:`textarea mono`,value:e.boxEncryptCipherText,readOnly:!0,rows:5,placeholder:`加密成功后显示密文`})]})]}),(0,P.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,P.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`h2`,{children:`解密`}),(0,P.jsx)(`p`,{children:`只输入发送方公钥和接收方私钥即可解密,无需生成完整账号。`})]})}),(0,P.jsx)(`label`,{className:`web3-box-result-header`,children:(0,P.jsx)(`span`,{children:`发送方`})}),(0,P.jsx)(`input`,{type:`text`,placeholder:`发送方 x25519 公钥`,value:e.boxDecryptSenderPublicKey,onChange:t=>e.onBoxDecryptSenderPublicKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,P.jsx)(`label`,{className:`web3-box-result-header`,children:(0,P.jsx)(`span`,{children:`接收方`})}),(0,P.jsxs)(`div`,{className:`input-wrap`,children:[(0,P.jsx)(`input`,{type:e.boxDecryptShowPrivateKey?`text`:`password`,placeholder:`接收方 x25519 私钥`,value:e.boxDecryptRecipientPrivateKey,onChange:t=>e.onBoxDecryptRecipientPrivateKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,P.jsx)(`button`,{className:`input-eye`,onClick:e.onBoxDecryptShowPrivateKeyToggle,type:`button`,children:e.boxDecryptShowPrivateKey?(0,P.jsx)(C,{size:16}):(0,P.jsx)(E,{size:16})})]}),(0,P.jsx)(`label`,{className:`web3-box-result-header`,children:(0,P.jsx)(`span`,{children:`密文`})}),(0,P.jsx)(`textarea`,{className:`textarea mono`,value:e.boxDecryptCipherText,onChange:t=>e.onBoxDecryptCipherTextChange(t.target.value),rows:5,placeholder:`粘贴要解密的密文`}),(0,P.jsx)(`div`,{className:`web3-box-actions`,children:(0,P.jsxs)(`button`,{className:`btn btn-secondary`,onClick:e.onDecryptOnly,type:`button`,children:[(0,P.jsx)(c,{size:16}),`解密`]})}),e.boxDecryptError&&(0,P.jsx)(`p`,{className:`web3-tools-danger`,children:e.boxDecryptError}),(0,P.jsxs)(`div`,{className:`web3-box-result`,children:[(0,P.jsx)(`label`,{className:`web3-box-result-header`,children:(0,P.jsx)(`span`,{children:`解密结果`})}),(0,P.jsx)(`textarea`,{className:`textarea mono`,value:e.boxDecryptResult,readOnly:!0,rows:5,placeholder:`解密成功后显示明文`})]})]})]})]})}function we({walletResult:e,publicPem:t,privatePem:n}){if(!t||!n)return(0,P.jsx)(g,{icon:(0,P.jsx)(l,{size:36}),message:`请输入用户名和密码以生成 PEM 密钥`});let r=e?.username||`wallet`;return(0,P.jsxs)(`div`,{className:`web3-pem-list`,children:[(0,P.jsx)(_,{label:`${r}.pub`,pem:t,filename:`${r}.pub`}),(0,P.jsx)(_,{label:`${r}.pem`,pem:n,filename:`${r}.pem`})]})}function Te(e){let t=new Blob([JSON.stringify(e,null,2)],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`),i=new Date().toISOString().replace(/[:.]/g,`-`);r.href=n,r.download=`mostbox-user-data-${e.ownerAddress}-${i}.json`,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)}function Ee(){let e=O(e=>e.addToast),t=j(e=>e.identity),n=j(e=>e.openLoginModal),[r,o]=(0,N.useState)(null),[s,c]=(0,N.useState)(!1),[l,u]=(0,N.useState)(``);return(0,N.useEffect)(()=>{t&&(c(!0),u(``),A.get(`/api/user/export`).json().then(o).catch(async e=>u(await k(e,`导出预览失败`))).finally(()=>c(!1)))},[t?.address]),(0,P.jsxs)(`section`,{id:`user-export`,className:`web3-key-card`,children:[(0,P.jsxs)(`div`,{className:`web3-key-card-header`,children:[(0,P.jsx)(`span`,{className:`web3-key-card-icon`,children:(0,P.jsx)(i,{size:18})}),(0,P.jsx)(`span`,{className:`web3-key-card-title`,children:`MostBox 元数据导出`})]}),(0,P.jsx)(`div`,{className:`web3-key-card-body web3-data-stack`,children:t?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`web3-data-summary`,children:[(0,P.jsx)(`span`,{children:`当前用户`}),(0,P.jsx)(`strong`,{children:t.address})]}),(0,P.jsxs)(`div`,{className:`web3-data-grid`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`span`,{children:`文件`}),(0,P.jsx)(`strong`,{children:r?.files.length??`-`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`span`,{children:`回收站`}),(0,P.jsx)(`strong`,{children:r?.trashFiles.length??`-`})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`span`,{children:`频道`}),(0,P.jsx)(`strong`,{children:r?.channels.length??`-`})]})]}),l&&(0,P.jsx)(`p`,{className:`web3-tools-danger`,children:l}),(0,P.jsxs)(`button`,{className:`btn btn-primary`,onClick:async()=>{if(!t){n();return}c(!0),u(``);try{let t=await A.get(`/api/user/export`).json();o(t),Te(t),e(`用户数据已导出`,`success`)}catch(t){let n=await k(t,`导出失败`);u(n),e(n,`error`)}finally{c(!1)}},disabled:s,children:[(0,P.jsx)(a,{size:16}),s?`处理中...`:`导出 JSON`]})]}):(0,P.jsx)(`button`,{className:`btn btn-primary`,onClick:n,children:`登录后导出`})})]})}function I(e){return!Number.isFinite(e)||e<=0?`0 B`:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function De(){let e=O(e=>e.addToast),t=j(e=>e.identity),n=j(e=>e.openLoginModal),[r,i]=(0,N.useState)(null),[a,o]=(0,N.useState)(``),[s,c]=(0,N.useState)(null),[l,u]=(0,N.useState)(null),[d,f]=(0,N.useState)(!1),[p,m]=(0,N.useState)(``),[h,g]=(0,N.useState)(!1);return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`section`,{id:`user-import`,className:`web3-key-card`,children:[(0,P.jsxs)(`div`,{className:`web3-key-card-header`,children:[(0,P.jsx)(`span`,{className:`web3-key-card-icon`,children:(0,P.jsx)(M,{size:18})}),(0,P.jsx)(`span`,{className:`web3-key-card-title`,children:`MostBox 元数据导入`})]}),(0,P.jsx)(`div`,{className:`web3-key-card-body web3-data-stack`,children:t?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`label`,{className:`web3-import-drop`,children:[(0,P.jsx)(y,{size:20}),(0,P.jsx)(`span`,{children:a||`选择导出的 JSON 文件`}),(0,P.jsx)(`input`,{type:`file`,accept:`application/json,.json`,onChange:async r=>{let a=r.target.files?.[0];if(c(null),u(null),m(``),i(null),a){o(a.name);try{let e=await a.text(),r=JSON.parse(e);if(i(r),!t){n();return}f(!0),c(await A.post(`/api/user/import/check`,{json:{package:r},timeout:6e4}).json())}catch(t){let n=t instanceof SyntaxError?`JSON 文件格式无效`:await k(t,`导入预检失败`);m(n),e(n,`error`)}finally{f(!1)}}}})]}),d&&(0,P.jsx)(`p`,{className:`web3-data-muted`,children:`处理中...`}),p&&(0,P.jsx)(`p`,{className:`web3-tools-danger`,children:p}),s&&(0,P.jsxs)(`div`,{className:`web3-data-stack`,children:[(0,P.jsxs)(`div`,{className:`web3-data-grid`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`span`,{children:`当前文件`}),(0,P.jsx)(`strong`,{children:s.currentFileCount})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`span`,{children:`导入文件`}),(0,P.jsx)(`strong`,{children:s.importFileCount})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`span`,{children:`所需容量`}),(0,P.jsx)(`strong`,{children:I(s.requiredBytes)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`span`,{children:`可用容量`}),(0,P.jsx)(`strong`,{children:I(s.availableBytes)})]})]}),!s.ready&&(0,P.jsxs)(`div`,{className:`web3-import-failures`,children:[(0,P.jsxs)(`div`,{className:`web3-data-warning`,children:[(0,P.jsx)(v,{size:16}),(0,P.jsx)(`span`,{children:`当前导入包不能完整导入`})]}),s.failures.slice(0,20).map((e,t)=>(0,P.jsxs)(`p`,{children:[e.fileName||e.cid||`导入包`,`:`,` `,e.error]},`${e.cid||e.fileName||t}`))]}),s.ready&&(0,P.jsx)(`button`,{className:`btn btn-danger`,onClick:()=>g(!0),disabled:d,children:`覆盖并导入`})]}),l&&(0,P.jsxs)(`div`,{className:`web3-import-result`,children:[(0,P.jsxs)(`strong`,{children:[`已导入 `,l.importedFiles,` 个文件,`,l.importedTrashFiles,` 个回收站项`]}),l.failedFiles.map(e=>(0,P.jsxs)(`p`,{children:[e.fileName,`: `,e.error]},e.cid))]})]}):(0,P.jsx)(`button`,{className:`btn btn-primary`,onClick:n,children:`登录后导入`})})]}),h&&(0,P.jsx)(ae,{title:`覆盖当前用户数据`,message:`导入会先清空当前账号在本节点的文件视图、回收站和频道偏好,然后用导入包重建。`,confirmText:d?`导入中...`:`确认导入`,danger:!0,onConfirm:async()=>{if(!t){n();return}if(!(!r||!s?.ready||!s.checkId)){f(!0),m(``),u(null);try{let t=await A.post(`/api/user/import`,{json:{package:r,checkId:s.checkId},timeout:12e4}).json();u(t),e(t.success?`导入完成`:`导入完成,部分文件失败`,t.success?`success`:`error`),g(!1)}catch(t){let n=await k(t,`导入失败`);m(n),e(n,`error`)}finally{f(!1)}}},onClose:()=>g(!1)})]})}var Oe=Object.defineProperty,L=Object.getOwnPropertySymbols,R=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,ke=(e,t,n)=>t in e?Oe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,B=(e,t)=>{for(var n in t||={})R.call(t,n)&&ke(e,n,t[n]);if(L)for(var n of L(t))z.call(t,n)&&ke(e,n,t[n]);return e},V=(e,t)=>{var n={};for(var r in e)R.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&L)for(var r of L(e))t.indexOf(r)<0&&z.call(e,r)&&(n[r]=e[r]);return n},H;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(H||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(H||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(H||={});var U=H,Ae={L:U.QrCode.Ecc.LOW,M:U.QrCode.Ecc.MEDIUM,Q:U.QrCode.Ecc.QUARTILE,H:U.QrCode.Ecc.HIGH},W=128,je=`L`,G=`#FFFFFF`,Me=`#000000`,K=!1,Ne=1,Pe=4,Fe=0,Ie=.1;function Le(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function q(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function Re(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*Ie),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function ze(e,t){return t==null?e?Pe:Fe:Math.max(Math.floor(t),0)}function Be({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=N.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...U.QrSegment.makeSegments(t)),e),[]);return U.QrCode.encodeSegments(r,Ae[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=N.useMemo(()=>{let e=c.getModules(),t=ze(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:Re(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var J=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),Ve=N.forwardRef(function(e,t){let n=e,{value:r,size:i=W,level:a=je,bgColor:o=G,fgColor:s=Me,includeMargin:c=K,minVersion:l=Ne,boostLevel:u,marginSize:d,imageSettings:f}=n,p=V(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=V(p,[`style`]),g=f?.src,_=N.useRef(null),v=N.useRef(null),y=N.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=N.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=Be({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});N.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=q(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,J?t.fill(new Path2D(Le(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),N.useEffect(()=>{x(!1)},[g]);let ee=B({height:i,width:i},m),te=null;return g!=null&&(te=N.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),N.createElement(N.Fragment,null,N.createElement(`canvas`,B({style:ee,height:i,width:i,ref:y,role:`img`},h)),te)});Ve.displayName=`QRCodeCanvas`;var Y=N.forwardRef(function(e,t){let n=e,{value:r,size:i=W,level:a=je,bgColor:o=G,fgColor:s=Me,includeMargin:c=K,minVersion:l=Ne,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=V(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=Be({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=q(g,v.excavation)),b=N.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=Le(y,h);return N.createElement(`svg`,B({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&N.createElement(`title`,null,d),N.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),N.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});Y.displayName=`QRCodeSVG`;function He({walletResult:e,mnemonicPhrase:t,deriveBatch:n,deriveList:i,deriveShowIndex:a,deriveShowAddress:o,deriveShowPrivateKey:l,showAddressQr:u,showMnemonicReveal:d,showMnemonicQr:f,onToggleAddressQr:h,onToggleMnemonicReveal:_,onToggleMnemonicQr:v,onToggleDeriveIndex:y,onToggleDeriveAddress:b,onToggleDerivePrivateKey:x,onDerive:S}){let C=e?.address||``;return!e||!C?(0,P.jsx)(g,{icon:(0,P.jsx)(s,{size:36}),message:`请输入用户名和密码以使用钱包工具`}):(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`web3-tools-section`,children:[(0,P.jsxs)(`button`,{className:`web3-tools-toggle`,onClick:h,children:[(0,P.jsx)(ue,{size:14}),u?`隐藏地址二维码`:`显示地址二维码`,u?(0,P.jsx)(se,{size:14}):(0,P.jsx)(r,{size:14})]}),u&&(0,P.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,P.jsxs)(`div`,{className:`web3-mnemonic-card`,children:[(0,P.jsx)(`p`,{className:`web3-mnemonic-text`,children:C}),(0,P.jsx)(m,{text:C})]}),(0,P.jsx)(`div`,{className:`qr-wrap`,children:(0,P.jsx)(Y,{value:C,size:200})})]})]}),t&&(0,P.jsxs)(`div`,{className:`web3-tools-section`,children:[(0,P.jsxs)(`button`,{className:`web3-tools-toggle`,onClick:_,children:[(0,P.jsx)(c,{size:14}),d?`隐藏助记词`:`显示助记词`,d?(0,P.jsx)(se,{size:14}):(0,P.jsx)(r,{size:14})]}),d&&(0,P.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,P.jsxs)(`div`,{className:`web3-mnemonic-card`,children:[(0,P.jsx)(`p`,{className:`web3-mnemonic-text`,children:t}),(0,P.jsx)(m,{text:t})]}),(0,P.jsxs)(`p`,{className:`web3-tools-danger`,children:[(0,P.jsx)(p,{size:14}),`任何拥有您助记词的人都可以窃取您账户中的任何资产,切勿泄露!!!`]}),(0,P.jsx)(`button`,{className:`web3-tools-toggle`,onClick:v,children:f?`隐藏助记词二维码`:`显示助记词二维码`}),f&&(0,P.jsx)(`div`,{className:`qr-wrap`,children:(0,P.jsx)(Y,{value:t,size:260})})]})]}),t&&(0,P.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,P.jsx)(`div`,{children:(0,P.jsxs)(`button`,{className:`btn btn-primary`,onClick:S,children:[`派生 `,n,` 个地址`]})}),(0,P.jsxs)(`p`,{className:`web3-tools-danger`,children:[(0,P.jsx)(p,{size:14}),`任何拥有您私钥的人都可以窃取您地址中的任何资产,切勿泄露!!!`]}),i.length>0&&(0,P.jsx)(`div`,{className:`web3-derive-table-wrap`,children:(0,P.jsxs)(`table`,{className:`web3-derive-table`,children:[(0,P.jsx)(`thead`,{children:(0,P.jsxs)(`tr`,{children:[(0,P.jsx)(`th`,{onClick:y,className:`web3-derive-th`,children:`账户`}),(0,P.jsx)(`th`,{onClick:b,className:`web3-derive-th`,children:`地址`}),(0,P.jsxs)(`th`,{onClick:x,className:`web3-derive-th danger`,children:[`私钥(点击`,l?`隐藏`:`显示`,`)`]})]})}),(0,P.jsx)(`tbody`,{children:i.map(e=>(0,P.jsxs)(`tr`,{children:[(0,P.jsx)(`td`,{children:a?e.index+1:``}),(0,P.jsx)(`td`,{children:o?e.address:``}),(0,P.jsx)(`td`,{className:`danger`,children:l?e.privateKey:``})]},e.index))})]})})]})]})}function Ue(e){return e?`•`.repeat(Math.min(e.length,32)):`-`}function We({walletResult:e,keys:t,ipns:n,avatarSrc:r,showPrivateKey:i,onTogglePrivateKey:a}){let s=e?.address||``;return!e||!s?(0,P.jsx)(g,{icon:(0,P.jsx)(fe,{size:36}),message:`请输入用户名和密码以查看身份信息`}):(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`web3-identity-card`,children:[(0,P.jsx)(`img`,{src:r,alt:`avatar`,className:`web3-identity-avatar`}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`h1`,{className:`web3-identity-name`,children:e.username||`未登录`}),(0,P.jsxs)(`div`,{className:`web3-identity-address`,children:[(0,P.jsx)(`code`,{children:s.toLowerCase()}),(0,P.jsx)(m,{text:s.toLowerCase()}),(0,P.jsxs)(`a`,{href:`https://debank.com/profile/${s}`,target:`_blank`,rel:`noopener noreferrer`,className:`link`,children:[(0,P.jsx)(o,{size:14}),`查看`]})]})]})]}),t&&(0,P.jsxs)(`div`,{className:`web3-key-grid`,children:[(0,P.jsx)(h,{title:`Ed25519 公钥`,icon:(0,P.jsx)(ce,{size:18}),children:(0,P.jsxs)(`div`,{className:`mono-row`,children:[(0,P.jsx)(`code`,{className:`mono`,children:t.ed_public_key}),(0,P.jsx)(m,{text:t.ed_public_key})]})}),(0,P.jsx)(h,{title:`x25519 公钥`,icon:(0,P.jsx)(c,{size:18}),children:(0,P.jsxs)(`div`,{className:`mono-row`,children:[(0,P.jsx)(`code`,{className:`mono`,children:t.public_key}),(0,P.jsx)(m,{text:t.public_key})]})}),(0,P.jsx)(h,{title:`x25519 & Ed25519 私钥`,icon:(0,P.jsx)(de,{size:18}),accent:!0,children:(0,P.jsxs)(`div`,{className:`mono-row danger`,children:[(0,P.jsx)(`code`,{className:`mono`,children:i?t.private_key:Ue(t.private_key)}),(0,P.jsx)(`button`,{className:`btn btn-icon`,onClick:a,title:i?`隐藏私钥`:`显示私钥`,type:`button`,children:i?(0,P.jsx)(E,{size:14}):(0,P.jsx)(C,{size:14})})]})}),(0,P.jsx)(h,{title:`IPNS ID`,icon:(0,P.jsx)(le,{size:18}),children:(0,P.jsxs)(`div`,{className:`mono-row`,children:[(0,P.jsx)(`code`,{className:`mono`,children:n}),(0,P.jsx)(m,{text:n})]})})]})]})}function Ge({username:e,password:t,showPassword:n,generating:r,onUsernameChange:i,onPasswordChange:a,onTogglePassword:o,onGenerate:c}){return(0,P.jsxs)(`div`,{className:`input-panel`,children:[(0,P.jsxs)(`div`,{className:`web3-tools-inputs`,children:[(0,P.jsx)(`input`,{type:`text`,placeholder:`用户名`,value:e,onChange:e=>i(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,P.jsxs)(`div`,{className:`input-wrap`,children:[(0,P.jsx)(`input`,{type:n?`text`:`password`,placeholder:`密码(可选)`,value:t,onChange:e=>a(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,P.jsx)(`button`,{className:`input-eye`,onClick:o,type:`button`,children:n?(0,P.jsx)(C,{size:16}):(0,P.jsx)(E,{size:16})})]})]}),(0,P.jsx)(`button`,{className:`btn btn-primary btn-full`,onClick:c,disabled:!e.trim()||r,type:`button`,children:r?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`span`,{className:`spinner`}),`生成中...`]}):(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(s,{size:16}),`生成并登录`]})})]})}var X=e=>btoa(String.fromCharCode(...e)),Ke=e=>{let t=new Uint8Array([48,5,6,3,43,101,112]),n=new Uint8Array([4,34,4,32,...e.slice(0,32)]),r=new Uint8Array([2,1,0]),i=r.length+t.length+n.length,a=new Uint8Array(2+i);a[0]=48,a[1]=i;let o=2;return a.set(r,o),o+=r.length,a.set(t,o),o+=t.length,a.set(n,o),`-----BEGIN PRIVATE KEY-----\n${X(a).match(/.{1,64}/g)?.join(`
2
+ `)}\n-----END PRIVATE KEY-----`},qe=e=>{let t=new Uint8Array([48,5,6,3,43,101,112]),n=new Uint8Array([3,33,0,...e]),r=t.length+n.length,i=new Uint8Array(2+r);i[0]=48,i[1]=r;let a=2;return i.set(t,a),a+=t.length,i.set(n,a),`-----BEGIN PUBLIC KEY-----\n${X(i).match(/.{1,64}/g)?.join(`
3
+ `)}\n-----END PUBLIC KEY-----`},Je=[`wallet`,`pem`,`export`,`EA`,`user-export`,`user-import`];function Ye(){let e=window.location.hash.replace(`#`,``);return Je.includes(e)?e:`wallet`}function Xe(){let e=O(e=>e.isDarkMode),t=O(e=>e.setIsDarkMode),n=O(e=>e.addToast),r=j(e=>e.setUserIdentity),[a,o]=(0,N.useState)(`wallet`),[p,m]=(0,N.useState)(``),[h,g]=(0,N.useState)(``),[_,v]=(0,N.useState)(!1),[b,C]=(0,N.useState)(null),[T,E]=(0,N.useState)(null),[D,k]=(0,N.useState)(``),[re,A]=(0,N.useState)(``),[ae,se]=(0,N.useState)(``),[M,ce]=(0,N.useState)(``),[le,ue]=(0,N.useState)([]),[de,pe]=(0,N.useState)(0),[me,he]=(0,N.useState)(!0),[ge,_e]=(0,N.useState)(!0),[be,xe]=(0,N.useState)(!1),[Se,F]=(0,N.useState)(!1),[Te,I]=(0,N.useState)(!1),[Oe,L]=(0,N.useState)(!1),[R,z]=(0,N.useState)(!1),[ke,B]=(0,N.useState)(!1),[V,H]=(0,N.useState)(``),[U,Ae]=(0,N.useState)(``),[W,je]=(0,N.useState)(!1),[G,Me]=(0,N.useState)(!1),[K,Ne]=(0,N.useState)(null),[Pe,Fe]=(0,N.useState)(``),[Ie,Le]=(0,N.useState)(``),[q,Re]=(0,N.useState)(!1),[ze,Be]=(0,N.useState)(!1),[J,Ve]=(0,N.useState)(null),[Y,Ue]=(0,N.useState)(`你好,B。这是来自 A 的加密消息。`),[X,Je]=(0,N.useState)(``),[Xe,Z]=(0,N.useState)(``),[Ze,Qe]=(0,N.useState)(``),[$e,et]=(0,N.useState)(`你好,A。这是来自 B 的加密消息。`),[tt,nt]=(0,N.useState)(``),[rt,it]=(0,N.useState)(``),[at,ot]=(0,N.useState)(``),[st,ct]=(0,N.useState)(``),[lt,ut]=(0,N.useState)(``),[dt,ft]=(0,N.useState)(``),[pt,mt]=(0,N.useState)(``),[ht,Q]=(0,N.useState)(``),[gt,_t]=(0,N.useState)(!1),[vt,yt]=(0,N.useState)(``),[bt,xt]=(0,N.useState)(``),[St,Ct]=(0,N.useState)(``),[wt,Tt]=(0,N.useState)(``),[Et,$]=(0,N.useState)(``),[Dt,Ot]=(0,N.useState)(!1);(0,N.useEffect)(()=>{o(Ye());let e=()=>o(Ye());return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]);let kt=e=>{o(e),window.location.hash=e},At=(0,N.useCallback)(async()=>{if(!p.trim())return;B(!0),await new Promise(e=>setTimeout(e,0));let e=ie(p.trim(),h),t=`${e.username}#${e.address.slice(-4).toUpperCase()}`;C(e),r({...e,displayName:t}),n(`已登录 ${e.username}`,`success`),ce(S(e.danger));let i=ee(e.danger);E(i),k(ye(i.private_key,i.ed_public_key));let a=ve(i.private_key,i.ed_public_key);A(Ke(a.secretKey)),se(qe(a.publicKey)),ue([]),pe(0),F(!1),I(!1),L(!1),z(!1),B(!1)},[n,h,r,p]);function jt(e,t,r){let i=e.trim();if(!i)return;let a=ie(i,t),o=ee(a.danger);r({username:a.username,address:a.address,publicKey:o.public_key,privateKey:o.private_key}),Z(``),Qe(``),it(``),ot(``),n(`账号已生成`,`success`)}function Mt({senderAccount:e,recipientAccount:t,message:n,setCipherText:r,setDecryptedText:i,setError:a}){if(!e||!t){a(`请先生成 A 和 B 两个账号`);return}if(!n.trim()){a(`请输入要加密的消息`);return}r(oe(n,{senderPrivateKey:e.privateKey,recipientPublicKey:t.publicKey})),i(``),a(``)}function Nt({senderAccount:e,recipientAccount:t,cipherText:n,setDecryptedText:r,setError:i}){if(!e||!t){i(`请先生成 A 和 B 两个账号`);return}if(!n.trim()){i(`请先生成或粘贴密文`);return}let a=x(n,{senderPublicKey:e.publicKey,recipientPrivateKey:t.privateKey});if(!a){i(`解密失败,请确认发送方公钥、接收方私钥和密文匹配`),r(``);return}r(a),i(``)}function Pt(){if(!st.trim()){Q(`请输入发送方公钥`);return}if(!lt.trim()){Q(`请输入接收方私钥`);return}if(!dt.trim()){Q(`请粘贴密文`);return}let e=x(dt,{senderPublicKey:st.trim(),recipientPrivateKey:lt.trim()});if(!e){Q(`解密失败,请确认发送方公钥、接收方私钥和密文匹配`),mt(``);return}mt(e),Q(``)}function Ft(){if(!vt.trim()){$(`请输入发送方私钥`);return}if(!bt.trim()){$(`请输入接收方公钥`);return}if(!St.trim()){$(`请输入要加密的消息`);return}Tt(oe(St,{senderPrivateKey:vt.trim(),recipientPublicKey:bt.trim()})),$(``)}let It=()=>{if(!M)return;let e=[];for(let t=de;t<de+10;t++){let n=`m/44'/60'/0'/0/${t}`,r=w.fromPhrase(M,void 0,n);e.push({index:t,address:r.address,privateKey:r.privateKey})}ue(t=>[...t,...e]),pe(e=>e+10)},Lt=ne(b?.address||void 0),Rt=a===`wallet`?`Web3`:a===`pem`?`PEM 导出`:a===`EA`?`非对称加密`:a===`user-export`?`用户数据导出`:a===`user-import`?`用户数据导入`:`Wallet 导出`,zt=[{id:`wallet`,icon:(0,P.jsx)(fe,{size:16}),label:`Web3`},{id:`pem`,icon:(0,P.jsx)(l,{size:16}),label:`PEM 导出`},{id:`export`,icon:(0,P.jsx)(s,{size:16}),label:`Wallet 导出`},{id:`EA`,icon:(0,P.jsx)(c,{size:16}),label:`非对称加密`},{id:`user-export`,icon:(0,P.jsx)(i,{size:16}),label:`数据导出`},{id:`user-import`,icon:(0,P.jsx)(y,{size:16}),label:`数据导入`}],Bt=a!==`EA`&&!a.startsWith(`user-`);return(0,P.jsx)(u,{sidebar:({closeSidebar:e})=>(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`sidebar-header sidebar-header-link`,onClick:()=>window.location.href=`/`,children:[(0,P.jsx)(te,{size:18}),(0,P.jsx)(`h1`,{children:`MOST PEOPLE`})]}),(0,P.jsx)(`nav`,{className:`sidebar-nav`,children:zt.map(t=>(0,P.jsxs)(`button`,{onClick:()=>{kt(t.id),e()},className:`sidebar-nav-btn ${a===t.id?`active`:``}`,children:[t.icon,(0,P.jsx)(`span`,{children:t.label})]},t.id))})]}),headerTitle:(0,P.jsx)(`h2`,{className:`header-title`,children:Rt}),headerRight:(0,P.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>t(!e),title:`切换主题`,children:e?(0,P.jsx)(f,{size:16}):(0,P.jsx)(d,{size:16})}),children:(0,P.jsx)(`div`,{className:`web3-page`,children:(0,P.jsxs)(`div`,{className:`web3-container ${a===`EA`?`wide`:``}`,children:[Bt&&(0,P.jsx)(Ge,{username:p,password:h,showPassword:_,generating:ke,onUsernameChange:m,onPasswordChange:g,onTogglePassword:()=>v(!_),onGenerate:At}),a===`wallet`&&(0,P.jsx)(We,{walletResult:b,keys:T,ipns:D,avatarSrc:Lt,showPrivateKey:R,onTogglePrivateKey:()=>z(!R)}),a===`pem`&&(0,P.jsx)(we,{walletResult:b,publicPem:ae,privatePem:re}),a===`export`&&(0,P.jsx)(He,{walletResult:b,mnemonicPhrase:M,deriveBatch:10,deriveList:le,deriveShowIndex:me,deriveShowAddress:ge,deriveShowPrivateKey:be,showAddressQr:Se,showMnemonicReveal:Te,showMnemonicQr:Oe,onToggleAddressQr:()=>F(!Se),onToggleMnemonicReveal:()=>I(!Te),onToggleMnemonicQr:()=>L(!Oe),onToggleDeriveIndex:()=>he(!me),onToggleDeriveAddress:()=>_e(!ge),onToggleDerivePrivateKey:()=>xe(!be),onDerive:It}),a===`EA`&&(0,P.jsx)(Ce,{boxAUsername:V,boxAPassword:U,boxAShowPassword:W,boxAShowPrivateKey:G,boxAAccount:K,boxBUsername:Pe,boxBPassword:Ie,boxBShowPassword:q,boxBShowPrivateKey:ze,boxBAccount:J,boxABMessage:Y,boxABCipherText:X,boxABDecryptedText:Xe,boxABError:Ze,boxBAMessage:$e,boxBACipherText:tt,boxBADecryptedText:rt,boxBAError:at,boxEncryptSenderPrivateKey:vt,boxEncryptRecipientPublicKey:bt,boxEncryptMessage:St,boxEncryptCipherText:wt,boxEncryptError:Et,boxEncryptShowPrivateKey:Dt,boxDecryptSenderPublicKey:st,boxDecryptRecipientPrivateKey:lt,boxDecryptCipherText:dt,boxDecryptResult:pt,boxDecryptError:ht,boxDecryptShowPrivateKey:gt,onBoxAUsernameChange:H,onBoxAPasswordChange:Ae,onBoxAShowPasswordToggle:()=>je(!W),onBoxAShowPrivateKeyToggle:()=>Me(!G),onGenerateBoxA:()=>jt(V,U,Ne),onBoxBUsernameChange:Fe,onBoxBPasswordChange:Le,onBoxBShowPasswordToggle:()=>Re(!q),onBoxBShowPrivateKeyToggle:()=>Be(!ze),onGenerateBoxB:()=>jt(Pe,Ie,Ve),onBoxABMessageChange:Ue,onBoxABCipherTextChange:Je,onEncryptBoxAB:()=>Mt({senderAccount:K,recipientAccount:J,message:Y,setCipherText:Je,setDecryptedText:Z,setError:Qe}),onDecryptBoxAB:()=>Nt({senderAccount:K,recipientAccount:J,cipherText:X,setDecryptedText:Z,setError:Qe}),onBoxBAMessageChange:et,onBoxBACipherTextChange:nt,onEncryptBoxBA:()=>Mt({senderAccount:J,recipientAccount:K,message:$e,setCipherText:nt,setDecryptedText:it,setError:ot}),onDecryptBoxBA:()=>Nt({senderAccount:J,recipientAccount:K,cipherText:tt,setDecryptedText:it,setError:ot}),onBoxEncryptSenderPrivateKeyChange:yt,onBoxEncryptRecipientPublicKeyChange:xt,onBoxEncryptMessageChange:Ct,onBoxEncryptShowPrivateKeyToggle:()=>Ot(!Dt),onEncryptOnly:Ft,onBoxDecryptSenderPublicKeyChange:ct,onBoxDecryptRecipientPrivateKeyChange:ut,onBoxDecryptCipherTextChange:ft,onBoxDecryptShowPrivateKeyToggle:()=>_t(!gt),onDecryptOnly:Pt}),a===`user-export`&&(0,P.jsx)(Ee,{}),a===`user-import`&&(0,P.jsx)(De,{})]})})})}var Z=Xe;export{Z as component};
@@ -0,0 +1 @@
1
+ function e(e){return RegExp(`^((`+e.join(`)|(`)+`))\\b`)}var t=[`Clamp`,`Constructor`,`EnforceRange`,`Exposed`,`ImplicitThis`,`Global`,`PrimaryGlobal`,`LegacyArrayClass`,`LegacyUnenumerableNamedProperties`,`LenientThis`,`NamedConstructor`,`NewObject`,`NoInterfaceObject`,`OverrideBuiltins`,`PutForwards`,`Replaceable`,`SameObject`,`TreatNonObjectAsNull`,`TreatNullAs`,`EmptyString`,`Unforgeable`,`Unscopeable`],n=e(t),r=`unsigned.short.long.unrestricted.float.double.boolean.byte.octet.Promise.ArrayBuffer.DataView.Int8Array.Int16Array.Int32Array.Uint8Array.Uint16Array.Uint32Array.Uint8ClampedArray.Float32Array.Float64Array.ByteString.DOMString.USVString.sequence.object.RegExp.Error.DOMException.FrozenArray.any.void`.split(`.`),i=e(r),a=[`attribute`,`callback`,`const`,`deleter`,`dictionary`,`enum`,`getter`,`implements`,`inherit`,`interface`,`iterable`,`legacycaller`,`maplike`,`partial`,`required`,`serializer`,`setlike`,`setter`,`static`,`stringifier`,`typedef`,`optional`,`readonly`,`or`],o=e(a),s=[`true`,`false`,`Infinity`,`NaN`,`null`],c=e(s),l=e([`callback`,`dictionary`,`enum`,`interface`]),u=e([`typedef`]),d=/^[:<=>?]/,f=/^-?([1-9][0-9]*|0[Xx][0-9A-Fa-f]+|0[0-7]*)/,p=/^-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+)/,m=/^_?[A-Za-z][0-9A-Z_a-z-]*/,h=/^_?[A-Za-z][0-9A-Z_a-z-]*(?=\s*;)/,g=/^"[^"]*"/,_=/^\/\*.*?\*\//,v=/^\/\*.*/,y=/^.*?\*\//;function b(e,t){if(e.eatSpace())return null;if(t.inComment)return e.match(y)?(t.inComment=!1,`comment`):(e.skipToEnd(),`comment`);if(e.match(`//`))return e.skipToEnd(),`comment`;if(e.match(_))return`comment`;if(e.match(v))return t.inComment=!0,`comment`;if(e.match(/^-?[0-9\.]/,!1)&&(e.match(f)||e.match(p)))return`number`;if(e.match(g))return`string`;if(t.startDef&&e.match(m))return`def`;if(t.endDef&&e.match(h))return t.endDef=!1,`def`;if(e.match(o))return`keyword`;if(e.match(i)){var r=t.lastToken,a=(e.match(/^\s*(.+?)\b/,!1)||[])[1];return r===`:`||r===`implements`||a===`implements`||a===`=`?`builtin`:`type`}return e.match(n)?`builtin`:e.match(c)?`atom`:e.match(m)?`variable`:e.match(d)?`operator`:(e.next(),null)}var x={name:`webidl`,startState:function(){return{inComment:!1,lastToken:``,startDef:!1,endDef:!1}},token:function(e,t){var n=b(e,t);if(n){var r=e.current();t.lastToken=r,n===`keyword`?(t.startDef=l.test(r),t.endDef=t.endDef||u.test(r)):t.startDef=!1}return n},languageData:{autocomplete:t.concat(r).concat(a).concat(s)}};export{x as webIDL};
@@ -0,0 +1 @@
1
+ import{W as e}from"./index-Cf23WD2V.js";var t=e(`wifi`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M2 8.82a15 15 0 0 1 20 0`,key:`dnpr2z`}],[`path`,{d:`M5 12.859a10 10 0 0 1 14 0`,key:`1x1e6c`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}]]);export{t};
@@ -0,0 +1 @@
1
+ var e=function(){function e(e){return{type:e,style:`keyword`}}for(var t=e(`operator`),n={type:`atom`,style:`atom`},r={type:`punctuation`,style:null},i={type:`axis_specifier`,style:`qualifier`},a={",":r},o=`after.all.allowing.ancestor.ancestor-or-self.any.array.as.ascending.at.attribute.base-uri.before.boundary-space.by.case.cast.castable.catch.child.collation.comment.construction.contains.content.context.copy.copy-namespaces.count.decimal-format.declare.default.delete.descendant.descendant-or-self.descending.diacritics.different.distance.document.document-node.element.else.empty.empty-sequence.encoding.end.entire.every.exactly.except.external.first.following.following-sibling.for.from.ftand.ftnot.ft-option.ftor.function.fuzzy.greatest.group.if.import.in.inherit.insensitive.insert.instance.intersect.into.invoke.is.item.language.last.lax.least.let.levels.lowercase.map.modify.module.most.namespace.next.no.node.nodes.no-inherit.no-preserve.not.occurs.of.only.option.order.ordered.ordering.paragraph.paragraphs.parent.phrase.preceding.preceding-sibling.preserve.previous.processing-instruction.relationship.rename.replace.return.revalidation.same.satisfies.schema.schema-attribute.schema-element.score.self.sensitive.sentence.sentences.sequence.skip.sliding.some.stable.start.stemming.stop.strict.strip.switch.text.then.thesaurus.times.to.transform.treat.try.tumbling.type.typeswitch.union.unordered.update.updating.uppercase.using.validate.value.variable.version.weight.when.where.wildcards.window.with.without.word.words.xquery`.split(`.`),s=0,c=o.length;s<c;s++)a[o[s]]=e(o[s]);for(var l=`xs:anyAtomicType.xs:anySimpleType.xs:anyType.xs:anyURI.xs:base64Binary.xs:boolean.xs:byte.xs:date.xs:dateTime.xs:dateTimeStamp.xs:dayTimeDuration.xs:decimal.xs:double.xs:duration.xs:ENTITIES.xs:ENTITY.xs:float.xs:gDay.xs:gMonth.xs:gMonthDay.xs:gYear.xs:gYearMonth.xs:hexBinary.xs:ID.xs:IDREF.xs:IDREFS.xs:int.xs:integer.xs:item.xs:java.xs:language.xs:long.xs:Name.xs:NCName.xs:negativeInteger.xs:NMTOKEN.xs:NMTOKENS.xs:nonNegativeInteger.xs:nonPositiveInteger.xs:normalizedString.xs:NOTATION.xs:numeric.xs:positiveInteger.xs:precisionDecimal.xs:QName.xs:short.xs:string.xs:time.xs:token.xs:unsignedByte.xs:unsignedInt.xs:unsignedLong.xs:unsignedShort.xs:untyped.xs:untypedAtomic.xs:yearMonthDuration`.split(`.`),s=0,c=l.length;s<c;s++)a[l[s]]=n;for(var u=[`eq`,`ne`,`lt`,`le`,`gt`,`ge`,`:=`,`=`,`>`,`>=`,`<`,`<=`,`.`,`|`,`?`,`and`,`or`,`div`,`idiv`,`mod`,`*`,`/`,`+`,`-`],s=0,c=u.length;s<c;s++)a[u[s]]=t;for(var d=[`self::`,`attribute::`,`child::`,`descendant::`,`descendant-or-self::`,`parent::`,`ancestor::`,`ancestor-or-self::`,`following::`,`preceding::`,`following-sibling::`,`preceding-sibling::`],s=0,c=d.length;s<c;s++)a[d[s]]=i;return a}();function t(e,t,n){return t.tokenize=n,n(e,t)}function n(n,i){var c=n.next(),p=!1,g=h(n);if(c==`<`){if(n.match(`!--`,!0))return t(n,i,l);if(n.match(`![CDATA`,!1))return i.tokenize=u,`tag`;if(n.match(`?`,!1))return t(n,i,d);var y=n.eat(`/`);n.eatSpace();for(var b=``,x;x=n.eat(/[^\s\u00a0=<>\"\'\/?]/);)b+=x;return t(n,i,s(b,y))}else if(c==`{`)return _(i,{type:`codeblock`}),null;else if(c==`}`)return v(i),null;else if(f(i))return c==`>`?`tag`:c==`/`&&n.eat(`>`)?(v(i),`tag`):`variable`;else if(/\d/.test(c))return n.match(/^\d*(?:\.\d*)?(?:E[+\-]?\d+)?/),`atom`;else if(c===`(`&&n.eat(`:`))return _(i,{type:`comment`}),t(n,i,r);else if(!g&&(c===`"`||c===`'`))return a(n,i,c);else if(c===`$`)return t(n,i,o);else if(c===`:`&&n.eat(`=`))return`keyword`;else if(c===`(`)return _(i,{type:`paren`}),null;else if(c===`)`)return v(i),null;else if(c===`[`)return _(i,{type:`bracket`}),null;else if(c===`]`)return v(i),null;else{var S=e.propertyIsEnumerable(c)&&e[c];if(g&&c===`"`)for(;n.next()!==`"`;);if(g&&c===`'`)for(;n.next()!==`'`;);S||n.eatWhile(/[\w\$_-]/);var C=n.eat(`:`);!n.eat(`:`)&&C&&n.eatWhile(/[\w\$_-]/),n.match(/^[ \t]*\(/,!1)&&(p=!0);var w=n.current();return S=e.propertyIsEnumerable(w)&&e[w],p&&!S&&(S={type:`function_call`,style:`def`}),m(i)?(v(i),`variable`):((w==`element`||w==`attribute`||S.type==`axis_specifier`)&&_(i,{type:`xmlconstructor`}),S?S.style:`variable`)}}function r(e,t){for(var n=!1,r=!1,i=0,a;a=e.next();){if(a==`)`&&n)if(i>0)i--;else{v(t);break}else a==`:`&&r&&i++;n=a==`:`,r=a==`(`}return`comment`}function i(e,t){return function(r,i){for(var a;a=r.next();)if(a==e){v(i),t&&(i.tokenize=t);break}else if(r.match(`{`,!1)&&p(i))return _(i,{type:`codeblock`}),i.tokenize=n,`string`;return`string`}}function a(e,n,r,a){let o=i(r,a);return _(n,{type:`string`,name:r,tokenize:o}),t(e,n,o)}function o(e,t){var r=/[\w\$_-]/;if(e.eat(`"`)){for(;e.next()!==`"`;);e.eat(`:`)}else e.eatWhile(r),e.match(`:=`,!1)||e.eat(`:`);return e.eatWhile(r),t.tokenize=n,`variable`}function s(e,t){return function(r,i){if(r.eatSpace(),t&&r.eat(`>`))return v(i),i.tokenize=n,`tag`;if(r.eat(`/`)||_(i,{type:`tag`,name:e,tokenize:n}),r.eat(`>`))i.tokenize=n;else return i.tokenize=c,`tag`;return`tag`}}function c(e,t){var r=e.next();return r==`/`&&e.eat(`>`)?(p(t)&&v(t),f(t)&&v(t),`tag`):r==`>`?(p(t)&&v(t),`tag`):r==`=`?null:r==`"`||r==`'`?a(e,t,r,c):(p(t)||_(t,{type:`attribute`,tokenize:c}),e.eat(/[a-zA-Z_:]/),e.eatWhile(/[-a-zA-Z0-9_:.]/),e.eatSpace(),(e.match(`>`,!1)||e.match(`/`,!1))&&(v(t),t.tokenize=n),`attribute`)}function l(e,t){for(var r;r=e.next();)if(r==`-`&&e.match(`->`,!0))return t.tokenize=n,`comment`}function u(e,t){for(var r;r=e.next();)if(r==`]`&&e.match(`]`,!0))return t.tokenize=n,`comment`}function d(e,t){for(var r;r=e.next();)if(r==`?`&&e.match(`>`,!0))return t.tokenize=n,`processingInstruction`}function f(e){return g(e,`tag`)}function p(e){return g(e,`attribute`)}function m(e){return g(e,`xmlconstructor`)}function h(e){return e.current()===`"`?e.match(/^[^\"]+\"\:/,!1):e.current()===`'`?e.match(/^[^\"]+\'\:/,!1):!1}function g(e,t){return e.stack.length&&e.stack[e.stack.length-1].type==t}function _(e,t){e.stack.push(t)}function v(e){e.stack.pop(),e.tokenize=e.stack.length&&e.stack[e.stack.length-1].tokenize||n}var y={name:`xquery`,startState:function(){return{tokenize:n,cc:[],stack:[]}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{block:{open:`(:`,close:`:)`}}}};export{y as xQuery};
@@ -0,0 +1 @@
1
+ function e(e){for(var t={},n=e.split(` `),r=0;r<n.length;++r)t[n[r]]=!0;return t}var t=e(`Assert BackQuote D Defun Deriv For ForEach FromFile FromString Function Integrate InverseTaylor Limit LocalSymbols Macro MacroRule MacroRulePattern NIntegrate Rule RulePattern Subst TD TExplicitSum TSum Taylor Taylor1 Taylor2 Taylor3 ToFile ToStdout ToString TraceRule Until While`),n=`(?:(?:\\.\\d+|\\d+\\.\\d*|\\d+)(?:[eE][+-]?\\d+)?)`,r=`(?:[a-zA-Z\\$'][a-zA-Z0-9\\$']*)`,i=new RegExp(n),a=new RegExp(r),o=RegExp(r+`?_`+r),s=RegExp(r+`\\s*\\(`);function c(e,n){var r=e.next();if(r===`"`)return n.tokenize=l,n.tokenize(e,n);if(r===`/`){if(e.eat(`*`))return n.tokenize=u,n.tokenize(e,n);if(e.eat(`/`))return e.skipToEnd(),`comment`}e.backUp(1);var c=e.match(/^(\w+)\s*\(/,!1);c!==null&&t.hasOwnProperty(c[1])&&n.scopes.push(`bodied`);var f=d(n);if(f===`bodied`&&r===`[`&&n.scopes.pop(),(r===`[`||r===`{`||r===`(`)&&n.scopes.push(r),f=d(n),(f===`[`&&r===`]`||f===`{`&&r===`}`||f===`(`&&r===`)`)&&n.scopes.pop(),r===`;`)for(;f===`bodied`;)n.scopes.pop(),f=d(n);return e.match(/\d+ *#/,!0,!1)?`qualifier`:e.match(i,!0,!1)?`number`:e.match(o,!0,!1)?`variableName.special`:e.match(/(?:\[|\]|{|}|\(|\))/,!0,!1)?`bracket`:e.match(s,!0,!1)?(e.backUp(1),`variableName.function`):e.match(a,!0,!1)?`variable`:e.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%|#)/,!0,!1)?`operator`:`error`}function l(e,t){for(var n,r=!1,i=!1;(n=e.next())!=null;){if(n===`"`&&!i){r=!0;break}i=!i&&n===`\\`}return r&&!i&&(t.tokenize=c),`string`}function u(e,t){for(var n,r;(r=e.next())!=null;){if(n===`*`&&r===`/`){t.tokenize=c;break}n=r}return`comment`}function d(e){var t=null;return e.scopes.length>0&&(t=e.scopes[e.scopes.length-1]),t}var f={name:`yacas`,startState:function(){return{tokenize:c,scopes:[]}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},indent:function(e,t,n){if(e.tokenize!==c&&e.tokenize!==null)return null;var r=0;return(t===`]`||t===`];`||t===`}`||t===`};`||t===`);`)&&(r=-1),(e.scopes.length+r)*n.unit},languageData:{electricInput:/[{}\[\]()\;]/,commentTokens:{line:`//`,block:{open:`/*`,close:`*/`}}}};export{f as yacas};
@@ -0,0 +1 @@
1
+ function e(e){var t,n;e?(t=/^(exx?|(ld|cp)([di]r?)?|[lp]ea|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|[de]i|halt|im|in([di]mr?|ir?|irx|2r?)|ot(dmr?|[id]rx|imr?)|out(0?|[di]r?|[di]2r?)|tst(io)?|slp)(\.([sl]?i)?[sl])?\b/i,n=/^(((call|j[pr]|rst|ret[in]?)(\.([sl]?i)?[sl])?)|(rs|st)mix)\b/i):(t=/^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i,n=/^(call|j[pr]|ret[in]?|b_?(call|jump))\b/i);var r=/^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i,i=/^(n?[zc]|p[oe]?|m)\b/i,a=/^([hl][xy]|i[xy][hl]|slia|sll)\b/i,o=/^([\da-f]+h|[0-7]+o|[01]+b|\d+d?)\b/i;return{name:`z80`,startState:function(){return{context:0}},token:function(s,c){if(s.column()||(c.context=0),s.eatSpace())return null;var l;if(s.eatWhile(/\w/))if(e&&s.eat(`.`)&&s.eatWhile(/\w/),l=s.current(),s.indentation()){if((c.context==1||c.context==4)&&r.test(l))return c.context=4,`variable`;if(c.context==2&&i.test(l))return c.context=4,`variableName.special`;if(t.test(l))return c.context=1,`keyword`;if(n.test(l))return c.context=2,`keyword`;if(c.context==4&&o.test(l))return`number`;if(a.test(l))return`error`}else if(s.match(o))return`number`;else return null;else if(s.eat(`;`))return s.skipToEnd(),`comment`;else if(s.eat(`"`)){for(;(l=s.next())&&l!=`"`;)l==`\\`&&s.next();return`string`}else if(s.eat(`'`)){if(s.match(/\\?.'/))return`number`}else if(s.eat(`.`)||s.sol()&&s.eat(`#`)){if(c.context=5,s.eatWhile(/\w/))return`def`}else if(s.eat(`$`)){if(s.eatWhile(/[\da-f]/i))return`number`}else if(s.eat(`%`)){if(s.eatWhile(/[01]/))return`number`}else s.next();return null}}}var t=e(!1);e(!0);export{t as z80};
@@ -0,0 +1 @@
1
+ ._page_1nzmd_1{background:radial-gradient(circle at 35% 25%, #34c75924, transparent 32%), radial-gradient(circle at 78% 18%, #ff95001f, transparent 28%), var(--bg-primary);flex:1;min-height:0;padding:20px;overflow:auto}._headerActions_1nzmd_12{align-items:center;gap:8px;display:flex}._entry_1nzmd_18{grid-template-columns:minmax(0,1fr) 360px;align-items:center;gap:48px;max-width:1040px;min-height:calc(100vh - 116px);margin:0 auto;display:grid}._entryBrand_1nzmd_28{align-items:center;gap:22px;display:flex}._cardMark_1nzmd_34{width:112px;height:152px;box-shadow:var(--shadow-lg);color:#fff;background:linear-gradient(135deg,#1f8f5f,#284f7a);border:8px solid #fff;border-radius:8px;flex:0 0 112px;place-items:center;display:grid}._entryBrand_1nzmd_28 h1{color:var(--text-primary);margin:0;font-size:64px;line-height:.95}._entryBrand_1nzmd_28 p{max-width:520px;color:var(--text-secondary);margin:18px 0 0;font-size:18px;line-height:1.7}._entryPanel_1nzmd_62{border:1px solid var(--glass-border);background:var(--glass-bg);box-shadow:var(--glass-shadow);border-radius:8px;gap:16px;padding:22px;display:grid}._accountLine_1nzmd_72{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:10px;font-size:14px;display:flex}._accountLine_1nzmd_72 strong{max-width:190px;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._joinForm_1nzmd_89,._joinForm_1nzmd_89 label{gap:8px;display:grid}._joinForm_1nzmd_89 label{color:var(--text-secondary);font-size:14px}._joinForm_1nzmd_89 input{border:1px solid var(--glass-border);background:var(--bg-primary);width:100%;min-height:40px;color:var(--text-primary);border-radius:8px;padding:0 12px}._status_1nzmd_110{color:var(--text-secondary);margin:0;font-size:14px}._board_1nzmd_116{grid-template-columns:minmax(0,1fr) minmax(320px,380px);gap:18px;min-height:100%;display:grid}._table_1nzmd_123{background:linear-gradient(145deg, #0a533ee6, #163550eb), var(--glass-bg);min-height:560px;box-shadow:var(--shadow-lg);border:1px solid #ffffff2e;border-radius:8px;position:relative;overflow:hidden}._table_1nzmd_123:before{content:"";pointer-events:none;border:2px solid #ffffff2e;border-radius:8px;position:absolute;inset:24px}._tableCenter_1nzmd_144{color:#fff;background:#00000038;border:1px solid #ffffff38;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:150px;height:150px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 24px #00000029}._tableCenter_1nzmd_144 span,._tableCenter_1nzmd_144 small{opacity:.78;font-size:12px}._tableCenter_1nzmd_144 strong{font-size:32px}._finishBanner_1nzmd_173{z-index:2;color:#fff;white-space:nowrap;background:linear-gradient(135deg,#30d158e6,#34c759e6);border-radius:20px;align-items:center;gap:8px;padding:10px 20px;font-size:15px;font-weight:700;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #30d15866}._finishBannerIcon_1nzmd_192{font-size:20px}._seats_1nzmd_196{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:34px;display:grid;position:relative}._seat_1nzmd_196{color:#fff;background:#ffffff1a;border:1px solid #ffffff29;border-radius:8px;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:10px;min-height:88px;padding:12px;display:grid}._seatTurn_1nzmd_218{border-color:#ffd666eb;box-shadow:0 0 0 2px #ffd6662e}._seatWinner_1nzmd_223{border-color:#30d158eb;box-shadow:0 0 0 2px #30d15833}._seatFolded_1nzmd_228{opacity:.5}._seatAvatar_1nzmd_232{color:#fff;background:#17211b;border-radius:8px;place-items:center;width:44px;height:44px;font-size:15px;font-weight:900;display:grid}._seatMain_1nzmd_244,._seatMeta_1nzmd_245{flex-direction:column;gap:4px;min-width:0;display:flex}._seatMain_1nzmd_244 strong,._seatMain_1nzmd_244 span,._seatMeta_1nzmd_245 span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._seatMain_1nzmd_244 strong{font-size:14px}._seatMain_1nzmd_244 span,._seatMeta_1nzmd_245{opacity:.76;font-size:12px}._seatMeta_1nzmd_245{flex-direction:row;grid-column:1/-1;justify-content:space-between}._panel_1nzmd_276{flex-direction:column;gap:14px;min-width:0;display:flex}._panelSection_1nzmd_283{border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:var(--blur-md);box-shadow:var(--glass-shadow);border-radius:8px;padding:16px}._panelTitle_1nzmd_293{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}._hand_1nzmd_303{grid-template-columns:repeat(3,62px);justify-content:center;gap:10px;display:grid}._card_1nzmd_34{color:#17211b;text-align:left;background:#fff;border:1px solid #dbe1dc;border-radius:8px;grid-template-rows:auto 1fr;width:62px;height:92px;padding:7px;display:grid;box-shadow:0 8px 18px #0e16111f}._card_1nzmd_34 span{font-size:15px;font-weight:900}._card_1nzmd_34 i{place-self:end;font-size:22px;font-style:normal;font-weight:900}._red_1nzmd_337{color:#c93d32}._black_1nzmd_341{color:#17211b}._cardBack_1nzmd_345{color:#fff;background:repeating-linear-gradient(45deg,#ffffff1f 0 6px,#0000 6px 12px),linear-gradient(135deg,#243f7a,#752f4d);border:1px solid #dbe1dc;border-radius:8px;justify-content:center;align-items:center;width:62px;height:92px;display:flex;box-shadow:0 8px 18px #0e16111f}._handLabel_1nzmd_366{text-align:center;color:var(--text-secondary);margin-top:10px;font-size:13px}._actionGrid_1nzmd_373,._raiseRow_1nzmd_374{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}._raiseRow_1nzmd_374{grid-template-columns:minmax(0,1fr) 96px}._statusGrid_1nzmd_385{grid-template-columns:76px minmax(0,1fr);align-items:start;gap:8px 12px;font-size:13px;display:grid}._statusGrid_1nzmd_385 span{color:var(--text-secondary)}._statusGrid_1nzmd_385 strong{color:var(--text-primary);overflow-wrap:anywhere;font-weight:600}._muted_1nzmd_403{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.6}._compareOverlay_1nzmd_410{z-index:100;-webkit-backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}._compareBox_1nzmd_422{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);border-radius:16px;flex-direction:column;align-items:center;gap:20px;width:90%;max-width:560px;padding:28px 36px;display:flex}._compareTitle_1nzmd_436{color:var(--text-primary);font-size:18px;font-weight:700}._comparePlayers_1nzmd_442{align-items:center;gap:20px;width:100%;display:flex}._compareSide_1nzmd_449{background:#ffffff0d;border:2px solid #0000;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:12px;padding:16px;display:flex}._compareWinner_1nzmd_461{background:#30d1581a;border-color:#30d158cc}._compareName_1nzmd_466{color:var(--text-primary);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:14px;font-weight:600;overflow:hidden}._compareCards_1nzmd_477{justify-content:center;gap:8px;display:flex}._compareCards_1nzmd_477 ._card_1nzmd_34{width:52px;height:76px;padding:5px}._compareCards_1nzmd_477 ._card_1nzmd_34 span{font-size:13px}._compareCards_1nzmd_477 ._card_1nzmd_34 i{font-size:18px}._compareCards_1nzmd_477 ._cardBack_1nzmd_345{width:52px;height:76px}._compareLabel_1nzmd_502{color:var(--text-secondary);font-size:12px;font-weight:500}._compareVs_1nzmd_508{color:var(--text-secondary);opacity:.6;font-size:20px;font-weight:900}._compareResult_1nzmd_515{color:#30d158;font-size:16px;font-weight:700}@media (width<=980px){._entry_1nzmd_18{grid-template-columns:1fr;align-content:center}._board_1nzmd_116{grid-template-columns:1fr}._table_1nzmd_123{min-height:420px}}@media (width<=640px){._page_1nzmd_1{padding:12px}._entryBrand_1nzmd_28{flex-direction:column;align-items:flex-start}._entryBrand_1nzmd_28 h1{font-size:42px}._cardMark_1nzmd_34{border-width:6px;flex-basis:100px;width:74px;height:100px}._seats_1nzmd_196{grid-template-columns:1fr;padding:22px}._tableCenter_1nzmd_144{margin:24px auto 0;position:static;transform:none}._table_1nzmd_123:before{inset:14px}._hand_1nzmd_303{grid-template-columns:repeat(3,minmax(58px,72px))}._actionGrid_1nzmd_373,._raiseRow_1nzmd_374{grid-template-columns:1fr}}
@@ -0,0 +1 @@
1
+ import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{t as r}from"./copy-CM-qWlbv.js";import{t as i}from"./AppShell-DmZQwVA9.js";import{n as a,t as o}from"./sun-C3IUQTpa.js";import{t as s}from"./play-BIl5vwqS.js";import{a as c,i as l,n as u,r as d,t as f}from"./useGameRoom-C6UgmIGG.js";import{C as p,S as m,V as h,W as g,f as ee,u as te,w as ne}from"./index-Cf23WD2V.js";var re=g(`refresh-ccw`,[[`path`,{d:`M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`14sxne`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16`,key:`1hlbsb`}],[`path`,{d:`M16 16h5v5`,key:`ccwih5`}]]),_=t(e(),1),v=[10,20,50,100],y=[`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`J`,`Q`,`K`,`A`],b=[`D`,`C`,`H`,`S`],ie=new Map(y.map((e,t)=>[e,t+2])),x=new Map(b.map((e,t)=>[e,t+1])),S={high:1,pair:2,straight:3,flush:4,straightFlush:5,triple:6},C={[S.high]:`散牌`,[S.pair]:`对子`,[S.straight]:`顺子`,[S.flush]:`金花`,[S.straightFlush]:`顺金`,[S.triple]:`豹子`};function w(e){return String(e||``).trim().toUpperCase().replace(/[^A-Z0-9]/g,``).slice(0,8)}function T(e=`zhajinhua`){return`${e}_${Date.now()}_${he(4)}`}function E(){return T(`round`)}function D(){let e=[];for(let t of b)for(let n of y)e.push(`${n}${t}`);return e}function ae(e=D(),t=Math.random){let n=[...e];for(let e=n.length-1;e>0;e--){let r=Math.floor(t()*(e+1));[n[e],n[r]]=[n[r],n[e]]}return n}function O(e){let t=String(e||``).trim().toUpperCase(),n=t.slice(-1),r=t.slice(0,-1);if(!ie.has(r)||!x.has(n))throw Error(`Invalid card: ${e}`);return{id:`${r}${n}`,rank:r,suit:n,rankValue:ie.get(r),suitValue:x.get(n)}}function oe(e,t){let n=Math.max(e.length,t.length);for(let r=0;r<n;r++){let n=e[r]||0,i=t[r]||0;if(n!==i)return n-i}return 0}function se(e){let t=[...new Set(e)].sort((e,t)=>e-t);return t.length===3?t[0]===2&&t[1]===3&&t[2]===14?3:t[0]+1===t[1]&&t[1]+1===t[2]?t[2]:0:0}function k(e){if(!Array.isArray(e)||e.length!==3)throw Error(`炸金花手牌必须是 3 张牌`);let t=e.map(O),n=t.map(e=>e.rankValue),r=new Map;for(let e of n)r.set(e,(r.get(e)||0)+1);let i=new Set(t.map(e=>e.suit)).size===1,a=se(n),o=[...n].sort((e,t)=>t-e),s=Math.max(...t.map(e=>e.suitValue)),c=S.high,l=o;return r.size===1?(c=S.triple,l=[o[0]]):a&&i?(c=S.straightFlush,l=[a]):i?(c=S.flush,l=o):a?(c=S.straight,l=[a]):r.size===2&&(c=S.pair,l=[[...r.entries()].find(([,e])=>e===2)[0],[...r.entries()].find(([,e])=>e===1)[0]]),{category:c,label:C[c],tiebreakers:l,tieSuit:s,cards:t.map(e=>e.id)}}function A(e,t){let n=k(e),r=k(t);if(n.category!==r.category)return n.category-r.category;let i=oe(n.tiebreakers,r.tiebreakers);return i===0?n.tieSuit-r.tieSuit:i}function ce(e){return k(e).label}function j({roundId:e,action:t,amount:n,target:r}){return{roundId:e,eventId:T(`action`),action:t,amount:n,target:r}}function le(e=[]){let t=e.filter(e=>Number(e.chips)>=10);return t.length>=2&&t.length<=5}function ue({roomCode:e,players:t,hostAddress:n,previousSeq:r=0,previousWinner:i=``,roundId:a=E(),random:o=Math.random}){let s=t.filter(e=>Number(e.chips)>=10).slice(0,5);if(s.length<2)throw Error(`至少需要 2 名有足够筹码的玩家`);let c=ae(D(),o),l={},u=s.map((e,t)=>{let n=c.slice(t*3,t*3+3);return l[e.address]=n,{address:e.address,name:e.name,publicKey:e.publicKey,chips:Number(e.chips)-10,status:`active`,looked:!1,bet:10}}),d,f=U(i),p=f?u.findIndex(e=>U(e.address)===f):-1;return d=p>=0?u[p].address:u[Math.floor(o()*u.length)].address,{roomCode:w(e),roundId:a,status:`playing`,host:U(n),seq:r+1,startedAt:Date.now(),ante:10,pot:10*u.length,currentBet:10,turnAddress:d,players:u,lastAction:`本局开始`,winner:null,showdown:null,appliedEventIds:[],hands:l,actionCounts:{},compareReveal:{}}}function de(e){if(!e)return null;let t={...e};return delete t.hands,W(t)}function fe(e,t){let n=M(e);return!n||!t||typeof t!=`object`?null:{...n,hands:W(t)}}function M(e){return!e||typeof e!=`object`||!e.roundId||!Array.isArray(e.players)?null:{roomCode:w(e.roomCode),roundId:String(e.roundId),status:e.status===`finished`?`finished`:`playing`,host:U(e.host),seq:Number(e.seq)||1,startedAt:Number(e.startedAt)||Date.now(),ante:Number(e.ante)||10,pot:Math.max(0,Number(e.pot)||0),currentBet:Math.max(0,Number(e.currentBet)||10),turnAddress:U(e.turnAddress),players:e.players.map(H).filter(Boolean),lastAction:String(e.lastAction||``),winner:e.winner?U(e.winner):null,showdown:e.showdown&&typeof e.showdown==`object`?W(e.showdown):null,appliedEventIds:Array.isArray(e.appliedEventIds)?e.appliedEventIds.map(String):[],actionCounts:e.actionCounts&&typeof e.actionCounts==`object`?W(e.actionCounts):{},compareReveal:e.compareReveal&&typeof e.compareReveal==`object`?W(e.compareReveal):{},lastCompare:e.lastCompare&&typeof e.lastCompare==`object`?W(e.lastCompare):null,finishedAt:e.finishedAt?Number(e.finishedAt):null}}function N(e,t,n){let r=M(e);if(!r||r.status!==`playing`)return{ok:!1,error:`当前没有进行中的牌局`};let i=U(n),a=r.players.find(e=>e.address===i);if(!a||a.status!==`active`)return{ok:!1,error:`玩家不在本轮牌局中`};if(r.turnAddress!==i)return{ok:!1,error:`还没有轮到你操作`};let o=t?.action;if(![`look`,`call`,`raise`,`compare`,`fold`].includes(o))return{ok:!1,error:`未知操作`};if(o===`look`)return a.looked?{ok:!1,error:`已经看过牌`}:{ok:!0};if(o===`call`)return a.chips>=10?{ok:!0}:{ok:!1,error:`筹码不足,不能跟注`};if(o===`raise`){let e=Number(t.amount);if(!v.includes(e))return{ok:!1,error:`加注档位无效`};let n=r.currentBet+e-a.bet;return a.chips>=n?{ok:!0}:{ok:!1,error:`筹码不足,不能加注`}}if(o===`compare`){let e=U(t.target),n=r.players.find(t=>t.address===e);if(!e||e===i||!n||n.status!==`active`)return{ok:!1,error:`请选择有效的比牌对象`};if(!r.players.filter(e=>e.status===`active`).every(e=>(r.actionCounts?.[e.address]||0)>=1))return{ok:!1,error:`第一轮不能比牌,请先跟注或加注`};let o=Math.max(0,r.currentBet-a.bet);return a.chips>=o?{ok:!0}:{ok:!1,error:`筹码不足,不能比牌`}}return{ok:!0}}function P(e,t,n){let r=N(e,t,n);if(!r.ok)return{ok:!1,error:r.error,state:e};let i=W(e),a=U(n),o=i.players.find(e=>e.address===a),s=String(t.eventId);if(i.appliedEventIds?.includes(s))return{ok:!0,state:i,duplicate:!0};if(Array.isArray(i.appliedEventIds)||(i.appliedEventIds=[]),i.appliedEventIds.push(s),t.action===`look`)return o.looked=!0,i.lastAction=`${o.name} 看牌`,V(i);if(t.action===`fold`)return o.status=`folded`,i.lastAction=`${o.name} 弃牌`,L(i,a),R(i,a);if(t.action===`call`)return o.chips-=10,o.bet+=10,i.pot+=10,i.lastAction=`${o.name} 跟注`,L(i,a),R(i,a);if(t.action===`raise`){let e=Number(t.amount);return i.currentBet+=e,I(i,o),i.lastAction=`${o.name} 加注 ${e}`,L(i,a),R(i,a)}if(t.action===`compare`){I(i,o);let e=U(t.target),n=i.players.find(t=>t.address===e),r=o.looked,s=n.looked,c=A(i.hands?.[a]||[],i.hands?.[e]||[]),l=c>=0?o:n,u=c>=0?n:o;u.status=`folded`,u.looked=!0,i.compareReveal||={};let d=r&&s,f=!r&&!s;if(d)i.compareReveal[a]=i.hands?.[e]||[],i.compareReveal[e]=i.hands?.[a]||[];else if(f)i.compareReveal[u.address]=i.hands?.[l.address]||[];else{let e=r?o:n,t=r?n:o;i.compareReveal[e.address]=i.hands?.[t.address]||[],i.compareReveal[u.address]=i.hands?.[l.address]||[]}return i.lastCompare={initiator:a,target:e,winner:l.address,loser:u.address,initiatorLooked:r,targetLooked:s,timestamp:Date.now()},i.lastAction=`${o.name} 与 ${n.name} 比牌,${u.name} 出局`,L(i,a),R(i,a)}return{ok:!1,error:`未知操作`,state:e}}function F(e){return(e?.players||[]).filter(e=>e.status===`active`)}function pe(e,t){let n=(e?.players||[]).find(e=>e.address===U(t));if(!e||e.status!==`playing`||!n||n.status!==`active`||e.turnAddress!==n.address)return[];let r=[];return n.looked||r.push(`look`),N(e,{action:`call`},n.address).ok&&r.push(`call`),v.some(t=>N(e,{action:`raise`,amount:t},n.address).ok)&&r.push(`raise`),F(e).length>1&&e.players.filter(e=>e.status===`active`).every(t=>(e.actionCounts?.[t.address]||0)>=1)&&r.push(`compare`),r.push(`fold`),r}function I(e,t){let n=Math.max(0,e.currentBet-t.bet);t.chips-=n,t.bet+=n,e.pot+=n}function L(e,t){e.actionCounts||={},e.actionCounts[t]=(e.actionCounts[t]||0)+1}function R(e,t){let n=F(e);return n.length===1?z(e,n[0].address):(e.turnAddress=B(e,t),V(e))}function z(e,t){let n=e.players.find(e=>e.address===t),r=e.pot;return n&&(n.chips+=e.pot),e.status=`finished`,e.winner=t,e.winAmount=r,e.turnAddress=``,e.showdown=e.hands?W(e.hands):null,e.lastAction=n?`${n.name} 赢得 ${r} 筹码`:`本局结束`,e.pot=0,e.finishedAt=Date.now(),V(e)}function B(e,t){let n=e.players,r=Math.max(0,n.findIndex(e=>e.address===U(t)));for(let e=1;e<=n.length;e++){let t=n[(r+e)%n.length];if(t.status===`active`)return t.address}return``}function V(e){return e.seq=Number(e.seq||0)+1,{ok:!0,state:e}}function H(e){if(!e||typeof e!=`object`)return null;let t=U(e.address);return t?{address:t,name:String(e.name||me(t)).slice(0,50),publicKey:String(e.publicKey||``),chips:Math.max(0,Number(e.chips)||0),status:e.status===`folded`?`folded`:`active`,looked:e.looked===!0,bet:Math.max(0,Number(e.bet)||0)}:null}function U(e){let t=String(e||``).trim();return/^0x[a-fA-F0-9]{40}$/.test(t)?t.toLowerCase():``}function me(e){return e?`${e.slice(0,6)}...${e.slice(-4)}`:``}function W(e){return JSON.parse(JSON.stringify(e))}function he(e){let t=new Uint8Array(e);if(globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(t);else for(let e=0;e<t.length;e++)t[e]=Math.floor(Math.random()*256);return[...t].map(e=>e.toString(16).padStart(2,`0`)).join(``)}var G={page:`_page_1nzmd_1`,headerActions:`_headerActions_1nzmd_12`,entry:`_entry_1nzmd_18`,entryBrand:`_entryBrand_1nzmd_28`,cardMark:`_cardMark_1nzmd_34`,entryPanel:`_entryPanel_1nzmd_62`,accountLine:`_accountLine_1nzmd_72`,joinForm:`_joinForm_1nzmd_89`,status:`_status_1nzmd_110`,board:`_board_1nzmd_116`,table:`_table_1nzmd_123`,tableCenter:`_tableCenter_1nzmd_144`,finishBanner:`_finishBanner_1nzmd_173`,finishBannerIcon:`_finishBannerIcon_1nzmd_192`,seats:`_seats_1nzmd_196`,seat:`_seat_1nzmd_196`,seatTurn:`_seatTurn_1nzmd_218`,seatWinner:`_seatWinner_1nzmd_223`,seatFolded:`_seatFolded_1nzmd_228`,seatAvatar:`_seatAvatar_1nzmd_232`,seatMain:`_seatMain_1nzmd_244`,seatMeta:`_seatMeta_1nzmd_245`,panel:`_panel_1nzmd_276`,panelSection:`_panelSection_1nzmd_283`,panelTitle:`_panelTitle_1nzmd_293`,hand:`_hand_1nzmd_303`,card:`_card_1nzmd_34`,red:`_red_1nzmd_337`,black:`_black_1nzmd_341`,cardBack:`_cardBack_1nzmd_345`,handLabel:`_handLabel_1nzmd_366`,actionGrid:`_actionGrid_1nzmd_373`,raiseRow:`_raiseRow_1nzmd_374`,statusGrid:`_statusGrid_1nzmd_385`,muted:`_muted_1nzmd_403`,compareOverlay:`_compareOverlay_1nzmd_410`,compareBox:`_compareBox_1nzmd_422`,compareTitle:`_compareTitle_1nzmd_436`,comparePlayers:`_comparePlayers_1nzmd_442`,compareSide:`_compareSide_1nzmd_449`,compareWinner:`_compareWinner_1nzmd_461`,compareName:`_compareName_1nzmd_466`,compareCards:`_compareCards_1nzmd_477`,compareLabel:`_compareLabel_1nzmd_502`,compareVs:`_compareVs_1nzmd_508`,compareResult:`_compareResult_1nzmd_515`},K=n(),ge=`zhajinhua`;function q(...e){return e.filter(Boolean).join(` `)}function J(e,t){return String(e||``).toLowerCase()===String(t||``).toLowerCase()}function _e(e=``){return e?`${e.slice(0,6)}...${e.slice(-4)}`:``}function ve(e){return e.displayName||e.username}function ye(e){let t=String(e||``),n=t.slice(-1);return{rank:t.slice(0,-1),suit:{S:`♠`,H:`♥`,C:`♣`,D:`♦`}[n]||n,color:n===`H`||n===`D`?`red`:`black`}}function be(){let e=ee(e=>e.isDarkMode),t=ee(e=>e.setIsDarkMode),n=ee(e=>e.addToast),g=te(e=>e.initializeUser),[y,b]=(0,_.useState)(``),[ie,x]=(0,_.useState)(!1),S=(0,_.useRef)(``),C=(0,_.useRef)(!1),[w,T]=(0,_.useState)(20),[E,D]=(0,_.useState)(``),[ae,O]=(0,_.useState)({}),[oe,se]=(0,_.useState)(!0),[k,A]=(0,_.useState)(!1),M=(0,_.useRef)(null),N=(0,_.useRef)(new Set),I=f({gameId:ge,onError:e=>n(e,`error`),getPlayerPayload:e=>{let t=m(e.danger);return{address:e.address,name:ve(e),publicKey:t.public_key,joinedAt:Date.now()}}}),L=(0,_.useMemo)(()=>I.userIdentity?.danger?m(I.userIdentity.danger):null,[I.userIdentity?.danger]);(0,_.useEffect)(()=>{g()},[g]),(0,_.useEffect)(()=>{let e=new URLSearchParams(window.location.search).get(`room`)?.toUpperCase();e&&(b(e),S.current=e)},[]),(0,_.useEffect)(()=>{let e=S.current;!e||C.current||!I.isBackendReady||!I.userIdentity||(C.current=!0,S.current=``,I.joinRoom(e).then(e=>{e&&n(`已进入房间`,`success`)}))},[I.isBackendReady,I.userIdentity,I.joinRoom,n]),(0,_.useEffect)(()=>{if(!I.roomCode)return;let e=`/game/zhajinhua?room=${I.roomCode}`;`${window.location.pathname}${window.location.search}`!==e&&window.history.replaceState(null,``,e)},[I.roomCode]);let R=(0,_.useMemo)(()=>u(I.messages,{gameId:ge,roomCode:I.roomCode}),[I.messages,I.roomCode]),z=(0,_.useMemo)(()=>d(I.messages,{gameId:ge,roomCode:I.roomCode}),[I.messages,I.roomCode])?.payload?.round||null,B=z?.host||R.hostAddress,V=J(B,I.userIdentity?.address),H=I.userIdentity?.address?.toLowerCase()||``,U=z?.players.find(e=>J(e.address,H)),me=U||R.players.find(e=>J(e.address,H)),W=ae[z?.roundId||``]||null,he=z?.showdown&&H?z.showdown[H]:null,be=z?.compareReveal&&H?z.compareReveal[H]:null,X=he||be||(U?.looked?W:null),Z=pe(z,H),Se=F(z),Q=V&&le(R.players.map(e=>({...e,chips:z?.players.find(t=>J(t.address,e.address))?.chips??1e3}))),Ce=I.roomCode&&typeof window<`u`?`${window.location.origin}/game/zhajinhua?room=${I.roomCode}`:``;(0,_.useEffect)(()=>{if(!(!z||!I.userIdentity||!L||!B))for(let e of I.roomEvents){let t=e.event;if(!t||t.event!==`deal:private`)continue;let n=t.payload;if(n.roundId!==z.roundId||!J(n.recipient,I.userIdentity.address))continue;let r=p(n.encrypted||``,{senderPublicKey:n.senderPublicKey||``,recipientPrivateKey:L.private_key});if(r)try{let e=JSON.parse(r);Array.isArray(e)&&O(t=>({...t,[z.roundId]:e.map(String)}))}catch{}}},[z?.roundId,I.roomEvents,I.userIdentity,B,L?.private_key]),(0,_.useEffect)(()=>{if(z?.status===`finished`&&z.winner){se(!0);let e=setTimeout(()=>se(!1),5e3);return()=>clearTimeout(e)}},[z?.finishedAt,z?.status,z?.winner]),(0,_.useEffect)(()=>{if(z?.lastCompare?.timestamp){A(!0);let e=setTimeout(()=>A(!1),5e3);return()=>clearTimeout(e)}else A(!1)},[z?.lastCompare?.timestamp,z?.roundId]),(0,_.useEffect)(()=>{if(!V||!z||z.status!==`playing`)return;let e=M.current;if(!e)return;let t=I.roomEvents.filter(e=>{let t=e.event;if(!t||t.event!==`player:action`)return!1;let n=t.payload.actionEvent;return!(!n||n.roundId!==z.roundId||N.current.has(n.eventId)||z.appliedEventIds?.includes(n.eventId))});if(t.length===0)return;let n=!1;async function r(){let r=fe(z,e);if(r)for(let e of t){if(n)return;let t=(e.event?.payload).actionEvent,i=P(r,t,e.message.author);if(!i.ok){let n=e.message.author;if(!J(n,I.userIdentity?.address)&&r.status===`playing`&&J(r.turnAddress,n)){let e=P(r,j({roundId:r.roundId,action:`call`,amount:void 0,target:void 0}),n);if(e.ok)i=e;else{let e=P(r,j({roundId:r.roundId,action:`fold`,amount:void 0,target:void 0}),n);e.ok&&(i=e)}}if(!i.ok){N.current.add(t.eventId);continue}}if(r=i.state,M.current=i.state.hands,await De(i.state)&&N.current.add(t.eventId),i.state.status===`finished`)break}}return r(),()=>{n=!0}},[z?.roundId,z?.seq,z?.status,I.roomEvents,V]);async function we(){await I.createRoom()&&n(`房间已创建`,`success`)}async function Te(e){e.preventDefault(),await I.joinRoom(y)&&n(`已进入房间`,`success`)}async function Ee(){Ce&&(await navigator.clipboard.writeText(Ce),x(!0),setTimeout(()=>x(!1),1400))}async function De(e){return I.sendRoomEvent(`room:state`,{round:de(e),seq:e.seq})}async function Oe(){if(!I.userIdentity||!L||!Q){n(`至少需要 2 名有足够筹码的玩家`,`error`);return}try{let e=R.players.map(e=>({...e,chips:z?.players.find(t=>J(t.address,e.address))?.chips??1e3})),t=ue({roomCode:I.roomCode,players:e,hostAddress:I.userIdentity.address,previousSeq:z?.seq||0,previousWinner:z?.winner||``});M.current=t.hands,N.current.clear(),await De(t);for(let e of t.players){let n=ne(JSON.stringify(t.hands[e.address]),{senderPrivateKey:L.private_key,recipientPublicKey:e.publicKey});await I.sendRoomEvent(`deal:private`,{roundId:t.roundId,recipient:e.address,senderPublicKey:L.public_key,encrypted:n})}O(e=>({...e,[t.roundId]:t.hands[I.userIdentity.address.toLowerCase()]})),n(`新一局已开始`,`success`)}catch(e){n(e instanceof Error?e.message:`开局失败`,`error`)}}async function $(e,t={}){if(!z||!I.userIdentity)return;let n=j({roundId:z.roundId,action:e,amount:t.amount,target:t.target});await I.sendRoomEvent(`player:action`,{actionEvent:n})}let ke=z?.status===`playing`?J(z.turnAddress,H)?`轮到你操作`:z.turnAddress?`等待 ${Y(z.turnAddress,R.players)}`:`进行中`:z?.status===`finished`?`本局结束`:`等待开局`,Ae=Se.filter(e=>!J(e.address,H));return(0,K.jsx)(i,{sidebar:({closeSidebar:e})=>(0,K.jsx)(l,{activeGame:`zhajinhua`,closeSidebar:e}),headerTitle:(0,K.jsx)(`h2`,{className:`header-title`,children:`炸金花`}),headerRight:(0,K.jsxs)(`div`,{className:G.headerActions,children:[I.roomCode&&(0,K.jsxs)(`button`,{className:`btn btn-sm`,onClick:Ee,children:[(0,K.jsx)(r,{size:14}),ie?`已复制`:`分享房间`]}),(0,K.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>t(!e),title:`切换主题`,children:e?(0,K.jsx)(o,{size:16}):(0,K.jsx)(a,{size:16})})]}),children:(0,K.jsx)(`main`,{className:G.page,children:I.roomCode?(0,K.jsxs)(`div`,{className:G.board,children:[(0,K.jsxs)(`section`,{className:G.table,children:[z?.status===`finished`&&z.winner&&oe&&(0,K.jsxs)(`div`,{className:G.finishBanner,children:[(0,K.jsx)(`span`,{className:G.finishBannerIcon,children:`🏆`}),(0,K.jsxs)(`span`,{children:[Y(z.winner,R.players),` 赢得`,` `,z.winAmount??0,` 筹码`]})]}),z?.lastCompare&&k&&(0,K.jsx)(xe,{lastCompare:z.lastCompare,compareReveal:z.compareReveal||{},myAddress:H,myDealtHand:W,lobbyPlayers:R.players,onClose:()=>A(!1)}),(0,K.jsxs)(`div`,{className:G.tableCenter,children:[(0,K.jsx)(`span`,{children:`底池`}),(0,K.jsx)(`strong`,{children:z?.pot||0}),(0,K.jsxs)(`small`,{children:[`当前注 `,z?.currentBet||0]})]}),(0,K.jsx)(`div`,{className:G.seats,children:R.players.map(e=>{let t=z?.players.find(t=>J(t.address,e.address)),n=z?.turnAddress===e.address,r=z?.winner===e.address,i=t?.status===`folded`;return(0,K.jsxs)(`div`,{className:q(G.seat,n&&G.seatTurn,r&&G.seatWinner,i&&G.seatFolded),children:[(0,K.jsx)(`div`,{className:G.seatAvatar,children:e.name.slice(0,1)}),(0,K.jsxs)(`div`,{className:G.seatMain,children:[(0,K.jsx)(`strong`,{children:e.name}),(0,K.jsx)(`span`,{children:_e(e.address)})]}),(0,K.jsxs)(`div`,{className:G.seatMeta,children:[(0,K.jsxs)(`span`,{children:[t?.chips??1e3,` 筹码`]}),(0,K.jsx)(`span`,{children:t?.status===`folded`?`已弃牌`:t?.looked?`已看牌`:z?`在局中`:`等待开局`})]})]},e.address)})})]}),(0,K.jsxs)(`aside`,{className:G.panel,children:[(0,K.jsxs)(`div`,{className:G.panelSection,children:[(0,K.jsxs)(`div`,{className:G.panelTitle,children:[(0,K.jsx)(c,{size:16}),(0,K.jsx)(`span`,{children:`我的手牌`})]}),(0,K.jsx)(`div`,{className:G.hand,children:X?X.map(e=>{let t=ye(e),n=`${t.suit}${t.rank}`;return(0,K.jsxs)(`div`,{className:q(G.card,G[t.color]),children:[(0,K.jsx)(`span`,{children:n}),(0,K.jsx)(`i`,{children:t.suit})]},e)}):[0,1,2].map(e=>(0,K.jsx)(`div`,{className:G.cardBack,children:(0,K.jsx)(c,{size:18})},e))}),(0,K.jsx)(`p`,{className:G.handLabel,children:X?ce(X):W?`未看牌`:`等待房主发牌`})]}),(0,K.jsxs)(`div`,{className:G.panelSection,children:[(0,K.jsxs)(`div`,{className:G.panelTitle,children:[(0,K.jsx)(s,{size:16}),(0,K.jsx)(`span`,{children:`操作`})]}),V?(0,K.jsxs)(`button`,{className:`btn btn-primary btn-full`,onClick:Oe,disabled:!Q||z?.status===`playing`,children:[(0,K.jsx)(re,{size:16}),z?.status===`finished`?`再来一局`:`开始本局`]}):(0,K.jsx)(`p`,{className:G.muted,children:`等待房主开始或继续牌局。`}),V&&z?.status===`finished`&&!Q&&(0,K.jsx)(`p`,{className:G.muted,children:`筹码不足的玩家太多,无法开局`}),(0,K.jsxs)(`div`,{className:G.actionGrid,children:[(0,K.jsxs)(`button`,{className:`btn btn-secondary`,disabled:!Z.includes(`look`),onClick:()=>$(`look`),children:[(0,K.jsx)(h,{size:16}),`看牌`]}),(0,K.jsx)(`button`,{className:`btn btn-secondary`,disabled:!Z.includes(`call`),onClick:()=>$(`call`),children:`跟注`}),(0,K.jsx)(`button`,{className:`btn btn-secondary`,disabled:!Z.includes(`fold`),onClick:()=>$(`fold`),children:`弃牌`})]}),(0,K.jsxs)(`div`,{className:G.raiseRow,children:[(0,K.jsx)(`select`,{className:`input input-compact`,value:w,onChange:e=>T(Number(e.target.value)),children:v.map(e=>(0,K.jsxs)(`option`,{value:e,children:[`加 `,e]},e))}),(0,K.jsx)(`button`,{className:`btn btn-secondary`,disabled:!Z.includes(`raise`),onClick:()=>$(`raise`,{amount:w}),children:`加注`})]}),(0,K.jsxs)(`div`,{className:G.raiseRow,children:[(0,K.jsxs)(`select`,{className:`input input-compact`,value:E,onChange:e=>D(e.target.value),children:[(0,K.jsx)(`option`,{value:``,children:`选择比牌对象`}),Ae.map(e=>(0,K.jsx)(`option`,{value:e.address,children:e.name},e.address))]}),(0,K.jsx)(`button`,{className:`btn btn-secondary`,disabled:!Z.includes(`compare`)||!E,onClick:()=>$(`compare`,{target:E}),children:`比牌`})]})]}),(0,K.jsxs)(`div`,{className:G.panelSection,children:[(0,K.jsx)(`div`,{className:G.panelTitle,children:`状态`}),(0,K.jsxs)(`div`,{className:G.statusGrid,children:[(0,K.jsx)(`span`,{children:`房主`}),(0,K.jsx)(`strong`,{children:B?_e(B):`-`}),(0,K.jsx)(`span`,{children:`我的筹码`}),(0,K.jsx)(`strong`,{children:me?.chips??1e3}),(0,K.jsx)(`span`,{children:`本轮`}),(0,K.jsx)(`strong`,{children:ke}),(0,K.jsx)(`span`,{children:`提示`}),(0,K.jsx)(`strong`,{children:z?.lastAction||`等待玩家加入`})]})]})]})]}):(0,K.jsxs)(`section`,{className:G.entry,children:[(0,K.jsxs)(`div`,{className:G.entryBrand,children:[(0,K.jsx)(`div`,{className:G.cardMark,children:(0,K.jsx)(c,{size:48})}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h1`,{children:`炸金花牌桌`}),(0,K.jsx)(`p`,{children:`创建房间码邀请朋友加入,房间状态通过 MostBox P2P 频道同步。`})]})]}),(0,K.jsxs)(`div`,{className:G.entryPanel,children:[(0,K.jsxs)(`div`,{className:G.accountLine,children:[(0,K.jsx)(`span`,{children:`当前账号`}),(0,K.jsx)(`strong`,{children:I.userIdentity?.displayName||`未登录`})]}),(0,K.jsxs)(`button`,{className:`btn btn-primary`,disabled:I.joining,onClick:we,children:[(0,K.jsx)(s,{size:16}),`创建房间`]}),(0,K.jsxs)(`form`,{onSubmit:Te,className:G.joinForm,children:[(0,K.jsxs)(`label`,{children:[`房间号`,(0,K.jsx)(`input`,{value:y,maxLength:8,onChange:e=>b(e.target.value.toUpperCase()),placeholder:`输入房间号`})]}),(0,K.jsx)(`button`,{className:`btn`,disabled:I.joining||!y,children:`加入房间`})]}),(0,K.jsx)(`p`,{className:G.status,children:I.isBackendReady?`节点已连接`:`正在连接节点...`})]})]})})})}function xe({lastCompare:e,compareReveal:t,myAddress:n,myDealtHand:r,lobbyPlayers:i,onClose:a}){let o=Y(e.initiator,i),s=Y(e.target,i),l=Y(e.winner,i),u=J(n,e.initiator),d=J(n,e.target),f=u||d;function p(e,i){return t[e]||(f&&J(e,n)&&i&&r?r:null)}let m=p(e.initiator,e.initiatorLooked),h=p(e.target,e.targetLooked);return(0,K.jsx)(`div`,{className:G.compareOverlay,onClick:a,children:(0,K.jsxs)(`div`,{className:G.compareBox,onClick:e=>e.stopPropagation(),children:[(0,K.jsx)(`div`,{className:G.compareTitle,children:`比牌结果`}),(0,K.jsxs)(`div`,{className:G.comparePlayers,children:[(0,K.jsxs)(`div`,{className:q(G.compareSide,J(e.winner,e.initiator)&&G.compareWinner),children:[(0,K.jsx)(`div`,{className:G.compareName,children:o}),(0,K.jsx)(`div`,{className:G.compareCards,children:m?m.map(e=>{let t=ye(e);return(0,K.jsxs)(`div`,{className:q(G.card,G[t.color]),children:[(0,K.jsx)(`span`,{children:t.rank}),(0,K.jsx)(`i`,{children:t.suit})]},e)}):[0,1,2].map(e=>(0,K.jsx)(`div`,{className:G.cardBack,children:(0,K.jsx)(c,{size:18})},e))}),m&&(0,K.jsx)(`div`,{className:G.compareLabel,children:ce(m)})]}),(0,K.jsx)(`div`,{className:G.compareVs,children:`VS`}),(0,K.jsxs)(`div`,{className:q(G.compareSide,J(e.winner,e.target)&&G.compareWinner),children:[(0,K.jsx)(`div`,{className:G.compareName,children:s}),(0,K.jsx)(`div`,{className:G.compareCards,children:h?h.map(e=>{let t=ye(e);return(0,K.jsxs)(`div`,{className:q(G.card,G[t.color]),children:[(0,K.jsx)(`span`,{children:t.rank}),(0,K.jsx)(`i`,{children:t.suit})]},e)}):[0,1,2].map(e=>(0,K.jsx)(`div`,{className:G.cardBack,children:(0,K.jsx)(c,{size:18})},e))}),h&&(0,K.jsx)(`div`,{className:G.compareLabel,children:ce(h)})]})]}),(0,K.jsxs)(`div`,{className:G.compareResult,children:[l,` 胜出`]}),(0,K.jsx)(`button`,{className:`btn btn-sm`,onClick:a,children:`关闭`})]})})}function Y(e,t){let n=e.toLowerCase();return t.find(e=>e.address===n)?.name||_e(e)}var X=be;export{X as component};
Binary file
Binary file
Binary file
@@ -1,15 +1,15 @@
1
- <!DOCTYPE html><html lang="zh-CN" data-scroll-behavior="smooth"><head><meta charSet="UTF-8"/><meta charSet="utf-8"/><link rel="preconnect" href="/" crossorigin=""/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/418_591yp64lx.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/2vm9uslik2wfi.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/1h-f81ddyfcmx.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/3yc_zd5vxq0j7.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0az8vxg2gfuhm.js"/><script src="/_next/static/chunks/0s7i7nfr9j3b1.js" async=""></script><script src="/_next/static/chunks/3oe03qxgd_rid.js" async=""></script><script src="/_next/static/chunks/3w4o9hklow6fg.js" async=""></script><script src="/_next/static/chunks/27jktro2p5rq9.js" async=""></script><script src="/_next/static/chunks/turbopack-026p0g9v9_pva.js" async=""></script><script src="/_next/static/chunks/23zlmarf-go2x.js" async=""></script><script src="/_next/static/chunks/3g0c367tk4esf.js" async=""></script><script src="/_next/static/chunks/2im7c515bo69p.js" async=""></script><script src="/_next/static/chunks/1v-molv0hbcjl.js" async=""></script><script src="/_next/static/chunks/2va-v1iiap4zv.js" async=""></script><link rel="icon" href="/logo.svg" type="image/svg+xml"/><meta name="theme-color" content="#5e6ad2"/><title>下载 MostBox 桌面客户端</title><meta name="description" content="下载 MostBox 桌面客户端,获得完整的 P2P 文件分享、下载校验和持续做种能力"/><script>
1
+ <!DOCTYPE html><html lang="zh-CN" data-scroll-behavior="smooth"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><link rel="stylesheet" href="/assets/index-BLhmAher.css" data-precedence="default"/><title>下载 MostBox 桌面客户端</title><meta name="theme-color" content="#5e6ad2"/><meta name="description" content="下载 MostBox 桌面客户端,获得完整的 P2P 文件分享、下载校验和持续做种能力"/><link rel="modulepreload" href="/assets/index-Cf23WD2V.js"/><link rel="modulepreload" href="/assets/jsx-runtime-Bt-cYkS5.js"/><link rel="modulepreload" href="/assets/download-BLPU-Kzq.js"/><link rel="modulepreload" href="/assets/cloud-CcPRoob1.js"/><link rel="modulepreload" href="/assets/code-Dr6STnCn.js"/><link rel="modulepreload" href="/assets/download-0rM8xVCe.js"/><link rel="icon" href="/logo.svg" type="image/svg+xml"/><script>
2
2
  (function() {
3
3
  var theme = localStorage.getItem('theme');
4
4
  if (theme === 'dark' || (!theme && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
5
5
  document.documentElement.setAttribute('data-theme', 'dark');
6
6
  }
7
7
  })();
8
- </script><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script>
8
+ </script></head><body><script>
9
9
  window.onerror = function(message, source, lineno, colno, error) {
10
10
  console.error('[Global Error]', { message, source, lineno, colno, error });
11
11
  };
12
12
  window.onunhandledrejection = function(event) {
13
13
  console.error('[Unhandled Promise Rejection]', event.reason);
14
14
  };
15
- </script><div class="download-page"><nav class="mkt-nav"><div class="mkt-nav-inner"><a class="mkt-nav-logo" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left" aria-hidden="true"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg><span>MOST PEOPLE</span></a></div></nav><section class="download-hero"><div class="mkt-container"><div class="download-hero-icon"><svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg></div><h1 class="download-hero-title">下载客户端</h1><p class="download-hero-desc">桌面客户端是当前 MVP 的首选入口,内置本地 P2P 节点,提供发布、下载校验和持续做种的完整能力。Web 端只连接已有 MostBox 节点。</p></div></section><section class="download-platforms"><div class="mkt-container"><h2 class="download-section-title">选择你的平台</h2><div class="download-options"><div class="ui-segmented-control download-source-tabs" role="tablist" aria-label="下载来源"><button type="button" role="tab" aria-selected="false" disabled="" class="ui-segmented-option download-source-tab"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cloud" aria-hidden="true"><path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"></path></svg>Cloudflare R2</button><button type="button" role="tab" aria-selected="true" class="ui-segmented-option download-source-tab is-active"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code" aria-hidden="true"><path d="m16 18 6-6-6-6"></path><path d="m8 6-6 6 6 6"></path></svg>GitHub Releases</button></div><p class="download-source-note">正在获取 Cloudflare R2 高速镜像。</p><div class="download-platform-grid"><article class="download-platform-card is-recommended"><div class="download-platform-icon"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg></div><div class="download-platform-content"><div class="download-platform-heading"><h3>Windows</h3><span>x64</span></div><p>Windows 10 或更高版本</p><dl class="download-platform-meta"><div><dt>来源</dt><dd>GitHub Releases</dd></div></dl><div class="download-platform-actions"><a href="https://github.com/most-people/most/releases/latest" class="btn btn-primary"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg>下载 <!-- -->.exe</a></div></div><span class="download-recommended-badge">当前</span></article><article class="download-platform-card"><div class="download-platform-icon"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg></div><div class="download-platform-content"><div class="download-platform-heading"><h3>Windows</h3><span>arm64</span></div><p>Windows 10 或更高版本</p><dl class="download-platform-meta"><div><dt>来源</dt><dd>GitHub Releases</dd></div></dl><div class="download-platform-actions"><a href="https://github.com/most-people/most/releases/latest" class="btn btn-primary"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg>下载 <!-- -->.exe</a></div></div></article><article class="download-platform-card"><div class="download-platform-icon"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-apple" aria-hidden="true"><path d="M12 6.528V3a1 1 0 0 1 1-1h0"></path><path d="M18.237 21A15 15 0 0 0 22 11a6 6 0 0 0-10-4.472A6 6 0 0 0 2 11a15.1 15.1 0 0 0 3.763 10 3 3 0 0 0 3.648.648 5.5 5.5 0 0 1 5.178 0A3 3 0 0 0 18.237 21"></path></svg></div><div class="download-platform-content"><div class="download-platform-heading"><h3>macOS</h3><span>x64</span></div><p>macOS 12 Monterey 或更高版本</p><dl class="download-platform-meta"><div><dt>来源</dt><dd>GitHub Releases</dd></div></dl><div class="download-platform-actions"><a href="https://github.com/most-people/most/releases/latest" class="btn btn-primary"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg>下载 <!-- -->.dmg</a></div></div></article><article class="download-platform-card"><div class="download-platform-icon"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-apple" aria-hidden="true"><path d="M12 6.528V3a1 1 0 0 1 1-1h0"></path><path d="M18.237 21A15 15 0 0 0 22 11a6 6 0 0 0-10-4.472A6 6 0 0 0 2 11a15.1 15.1 0 0 0 3.763 10 3 3 0 0 0 3.648.648 5.5 5.5 0 0 1 5.178 0A3 3 0 0 0 18.237 21"></path></svg></div><div class="download-platform-content"><div class="download-platform-heading"><h3>macOS</h3><span>arm64</span></div><p>macOS 12 Monterey 或更高版本</p><dl class="download-platform-meta"><div><dt>来源</dt><dd>GitHub Releases</dd></div></dl><div class="download-platform-actions"><a href="https://github.com/most-people/most/releases/latest" class="btn btn-primary"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg>下载 <!-- -->.dmg</a></div></div></article><article class="download-platform-card"><div class="download-platform-icon"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-laptop" aria-hidden="true"><path d="M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z"></path><path d="M20.054 15.987H3.946"></path></svg></div><div class="download-platform-content"><div class="download-platform-heading"><h3>Linux</h3><span>x64</span></div><p>Ubuntu 20.04+ / Debian 11+ / 其他主流发行版</p><dl class="download-platform-meta"><div><dt>来源</dt><dd>GitHub Releases</dd></div></dl><div class="download-platform-actions"><a href="https://github.com/most-people/most/releases/latest" class="btn btn-primary"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg>下载 <!-- -->.AppImage</a></div></div></article><article class="download-platform-card"><div class="download-platform-icon"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-laptop" aria-hidden="true"><path d="M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z"></path><path d="M20.054 15.987H3.946"></path></svg></div><div class="download-platform-content"><div class="download-platform-heading"><h3>Linux</h3><span>arm64</span></div><p>Ubuntu 20.04+ / Debian 11+ / 其他主流发行版</p><dl class="download-platform-meta"><div><dt>来源</dt><dd>GitHub Releases</dd></div></dl><div class="download-platform-actions"><a href="https://github.com/most-people/most/releases/latest" class="btn btn-primary"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg>下载 <!-- -->.AppImage</a></div></div></article></div></div></div></section><section class="download-comparison"><div class="mkt-container"><h2 class="download-section-title">Web 端 vs 桌面端</h2><div class="download-table-wrap"><table class="download-table"><thead><tr><th>功能</th><th>Web 端</th><th>桌面端</th></tr></thead><tbody><tr><td>节点能力</td><td class="col-web">连接已有节点</td><td class="col-desktop">内置本地节点</td></tr><tr><td>P2P 文件分享</td><td class="col-web">依赖所连节点</td><td class="col-desktop">完整支持</td></tr><tr><td>下载校验</td><td class="col-web">依赖所连节点</td><td class="col-desktop">完整支持</td></tr><tr><td>持续做种</td><td class="col-web">依赖所连节点</td><td class="col-desktop">默认开启</td></tr><tr><td>大文件传输</td><td class="col-web">依赖所连节点</td><td class="col-desktop">10GB 上限内</td></tr></tbody></table></div></div></section><section class="download-cta"><div class="mkt-container"><p class="download-hero-desc">使用 npm 入口请先安装 Node.js &gt;= 22.12,然后运行 npx most-box@latest 启动本机完整节点。</p></div></section><section class="download-cta"><div class="mkt-container"><a class="btn btn-primary" href="/">返回首页</a></div></section><footer class="mkt-footer"><div class="mkt-container"><div class="mkt-footer-inner"><p class="mkt-footer-copy">MostBox</p></div></div></footer></div><!--$--><!--/$--><script src="/_next/static/chunks/0az8vxg2gfuhm.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[14232,[\"/_next/static/chunks/23zlmarf-go2x.js\",\"/_next/static/chunks/3g0c367tk4esf.js\",\"/_next/static/chunks/2im7c515bo69p.js\"],\"ErrorBoundary\"]\n3:I[52925,[\"/_next/static/chunks/23zlmarf-go2x.js\",\"/_next/static/chunks/3g0c367tk4esf.js\",\"/_next/static/chunks/2im7c515bo69p.js\"],\"default\"]\n4:I[39756,[\"/_next/static/chunks/23zlmarf-go2x.js\",\"/_next/static/chunks/3g0c367tk4esf.js\",\"/_next/static/chunks/2im7c515bo69p.js\"],\"default\"]\n5:I[37457,[\"/_next/static/chunks/23zlmarf-go2x.js\",\"/_next/static/chunks/3g0c367tk4esf.js\",\"/_next/static/chunks/2im7c515bo69p.js\"],\"default\"]\n6:I[36768,[\"/_next/static/chunks/23zlmarf-go2x.js\",\"/_next/static/chunks/3g0c367tk4esf.js\",\"/_next/static/chunks/2im7c515bo69p.js\",\"/_next/static/chunks/1v-molv0hbcjl.js\"],\"default\"]\n7:I[22016,[\"/_next/static/chunks/23zlmarf-go2x.js\",\"/_next/static/chunks/3g0c367tk4esf.js\",\"/_next/static/chunks/2im7c515bo69p.js\",\"/_next/static/chunks/2va-v1iiap4zv.js\"],\"\"]\n8:I[5014,[\"/_next/static/chunks/23zlmarf-go2x.js\",\"/_next/static/chunks/3g0c367tk4esf.js\",\"/_next/static/chunks/2im7c515bo69p.js\",\"/_next/static/chunks/2va-v1iiap4zv.js\"],\"default\"]\n9:I[18597,[\"/_next/static/chunks/23zlmarf-go2x.js\",\"/_next/static/chunks/3g0c367tk4esf.js\",\"/_next/static/chunks/2im7c515bo69p.js\",\"/_next/static/chunks/2va-v1iiap4zv.js\"],\"default\"]\n17:I[68027,[\"/_next/static/chunks/23zlmarf-go2x.js\",\"/_next/static/chunks/3g0c367tk4esf.js\",\"/_next/static/chunks/2im7c515bo69p.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/418_591yp64lx.css\",\"style\"]\n:HL[\"/_next/static/chunks/2vm9uslik2wfi.css\",\"style\"]\n:HC[\"/\",\"\"]\n:HL[\"/_next/static/chunks/1h-f81ddyfcmx.css\",\"style\"]\n:HL[\"/_next/static/chunks/3yc_zd5vxq0j7.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"download\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"download\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/418_591yp64lx.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2vm9uslik2wfi.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/23zlmarf-go2x.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/3g0c367tk4esf.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/2im7c515bo69p.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"suppressHydrationWarning\":true,\"data-scroll-behavior\":\"smooth\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"charSet\":\"UTF-8\"}],[\"$\",\"meta\",null,{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1.0\"}],[\"$\",\"link\",null,{\"rel\":\"icon\",\"href\":\"/logo.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"content\":\"#5e6ad2\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n (function() {\\n var theme = localStorage.getItem('theme');\\n if (theme === 'dark' || (!theme \u0026\u0026 window.matchMedia('(prefers-color-scheme: dark)').matches)) {\\n document.documentElement.setAttribute('data-theme', 'dark');\\n }\\n })();\\n \"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n window.onerror = function(message, source, lineno, colno, error) {\\n console.error('[Global Error]', { message, source, lineno, colno, error });\\n };\\n window.onunhandledrejection = function(event) {\\n console.error('[Unhandled Promise Rejection]', event.reason);\\n };\\n \"}}],[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L6\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"download-page\",\"children\":[[\"$\",\"nav\",null,{\"className\":\"mkt-nav\",\"children\":[\"$\",\"div\",null,{\"className\":\"mkt-nav-inner\",\"children\":[\"$\",\"$L7\",null,{\"href\":\"/\",\"className\":\"mkt-nav-logo\",\"children\":[[\"$\",\"$L8\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"m12 19-7-7 7-7\",\"key\":\"1l729n\"}],[\"path\",{\"d\":\"M19 12H5\",\"key\":\"x3x0zl\"}]],\"className\":\"lucide-arrow-left\",\"size\":18}],[\"$\",\"span\",null,{\"children\":\"MOST PEOPLE\"}]]}]}]}],[\"$\",\"section\",null,{\"className\":\"download-hero\",\"children\":[\"$\",\"div\",null,{\"className\":\"mkt-container\",\"children\":[[\"$\",\"div\",null,{\"className\":\"download-hero-icon\",\"children\":[\"$\",\"$L8\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M12 15V3\",\"key\":\"m9g1x1\"}],[\"path\",{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\",\"key\":\"ih7n3h\"}],[\"path\",{\"d\":\"m7 10 5 5 5-5\",\"key\":\"brsn70\"}]],\"className\":\"lucide-download\",\"size\":40}]}],[\"$\",\"h1\",null,{\"className\":\"download-hero-title\",\"children\":\"下载客户端\"}],[\"$\",\"p\",null,{\"className\":\"download-hero-desc\",\"children\":\"桌面客户端是当前 MVP 的首选入口,内置本地 P2P 节点,提供发布、下载校验和持续做种的完整能力。Web 端只连接已有 MostBox 节点。\"}]]}]}],[\"$\",\"section\",null,{\"className\":\"download-platforms\",\"children\":[\"$\",\"div\",null,{\"className\":\"mkt-container\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"download-section-title\",\"children\":\"选择你的平台\"}],[\"$\",\"$L9\",null,{}]]}]}],[\"$\",\"section\",null,{\"className\":\"download-comparison\",\"children\":[\"$\",\"div\",null,{\"className\":\"mkt-container\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"download-section-title\",\"children\":\"Web 端 vs 桌面端\"}],[\"$\",\"div\",null,{\"className\":\"download-table-wrap\",\"children\":[\"$\",\"table\",null,{\"className\":\"download-table\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"children\":[[\"$\",\"th\",null,{\"children\":\"功能\"}],[\"$\",\"th\",null,{\"children\":\"Web 端\"}],[\"$\",\"th\",null,{\"children\":\"桌面端\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"节点能力\",{\"children\":[[\"$\",\"td\",null,{\"children\":\"节点能力\"}],[\"$\",\"td\",null,{\"className\":\"col-web\",\"children\":\"连接已有节点\"}],[\"$\",\"td\",null,{\"className\":\"col-desktop\",\"children\":\"内置本地节点\"}]]}],[\"$\",\"tr\",\"P2P 文件分享\",{\"children\":[[\"$\",\"td\",null,{\"children\":\"P2P 文件分享\"}],[\"$\",\"td\",null,{\"className\":\"col-web\",\"children\":\"依赖所连节点\"}],\"$La\"]}],\"$Lb\",\"$Lc\",\"$Ld\"]}]]}]}]]}]}],\"$Le\",\"$Lf\",\"$L10\"]}],[\"$L11\",\"$L12\",\"$L13\"],\"$L14\"]}],{},null,false,null]},null,false,\"$@15\"]},null,false,null],\"$L16\",false]],\"m\":\"$undefined\",\"G\":[\"$17\",[\"$L18\",\"$L19\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"eXddCOt9eyz0j78b1m4Ex\"}\n"])</script><script>self.__next_f.push([1,"1a:I[97367,[\"/_next/static/chunks/23zlmarf-go2x.js\",\"/_next/static/chunks/3g0c367tk4esf.js\",\"/_next/static/chunks/2im7c515bo69p.js\"],\"OutletBoundary\"]\n1b:\"$Sreact.suspense\"\n1e:I[97367,[\"/_next/static/chunks/23zlmarf-go2x.js\",\"/_next/static/chunks/3g0c367tk4esf.js\",\"/_next/static/chunks/2im7c515bo69p.js\"],\"ViewportBoundary\"]\n20:I[97367,[\"/_next/static/chunks/23zlmarf-go2x.js\",\"/_next/static/chunks/3g0c367tk4esf.js\",\"/_next/static/chunks/2im7c515bo69p.js\"],\"MetadataBoundary\"]\na:[\"$\",\"td\",null,{\"className\":\"col-desktop\",\"children\":\"完整支持\"}]\nb:[\"$\",\"tr\",\"下载校验\",{\"children\":[[\"$\",\"td\",null,{\"children\":\"下载校验\"}],[\"$\",\"td\",null,{\"className\":\"col-web\",\"children\":\"依赖所连节点\"}],[\"$\",\"td\",null,{\"className\":\"col-desktop\",\"children\":\"完整支持\"}]]}]\nc:[\"$\",\"tr\",\"持续做种\",{\"children\":[[\"$\",\"td\",null,{\"children\":\"持续做种\"}],[\"$\",\"td\",null,{\"className\":\"col-web\",\"children\":\"依赖所连节点\"}],[\"$\",\"td\",null,{\"className\":\"col-desktop\",\"children\":\"默认开启\"}]]}]\nd:[\"$\",\"tr\",\"大文件传输\",{\"children\":[[\"$\",\"td\",null,{\"children\":\"大文件传输\"}],[\"$\",\"td\",null,{\"className\":\"col-web\",\"children\":\"依赖所连节点\"}],[\"$\",\"td\",null,{\"className\":\"col-desktop\",\"children\":\"10GB 上限内\"}]]}]\ne:[\"$\",\"section\",null,{\"className\":\"download-cta\",\"children\":[\"$\",\"div\",null,{\"className\":\"mkt-container\",\"children\":[\"$\",\"p\",null,{\"className\":\"download-hero-desc\",\"children\":\"使用 npm 入口请先安装 Node.js \u003e= 22.12,然后运行 npx most-box@latest 启动本机完整节点。\"}]}]}]\nf:[\"$\",\"section\",null,{\"className\":\"download-cta\",\"children\":[\"$\",\"div\",null,{\"className\":\"mkt-container\",\"children\":[\"$\",\"$L7\",null,{\"href\":\"/\",\"className\":\"btn btn-primary\",\"children\":\"返回首页\"}]}]}]\n10:[\"$\",\"footer\",null,{\"className\":\"mkt-footer\",\"children\":[\"$\",\"div\",null,{\"className\":\"mkt-container\",\"children\":[\"$\",\"div\",null,{\"className\":\"mkt-footer-inner\",\"children\":[\"$\",\"p\",null,{\"className\":\"mkt-footer-copy\",\"children\":\"MostBox\"}]}]}]}]\n11:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/1h-f81ddyfcmx.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n12:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3yc_zd5vxq0j7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n13:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/2va-v1iiap4zv.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n14:[\"$\",\"$L1a\",null,{\"children\":[\"$\",\"$1b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@1c\"}]}]\n1d:[]\n15:\"$W1d\"\n16:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L1e\",null,{\"children\":\"$L1f\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L20\",null,{\"children\":[\"$\",\"$1b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L21\"}]}]}],null]}]\n18:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/418_591yp64lx.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n19:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2vm9uslik2wfi.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"1f:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"1c:null\n21:[[\"$\",\"title\",\"0\",{\"children\":\"下载 MostBox 桌面客户端\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"下载 MostBox 桌面客户端,获得完整的 P2P 文件分享、下载校验和持续做种能力\"}]]\n"])</script></body></html>
15
+ </script><!--$--><div class="download-page"><nav class="mkt-nav"><div class="mkt-nav-inner"><a href="/" class="mkt-nav-logo"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left" aria-hidden="true"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg><span>MOST PEOPLE</span></a></div></nav><section class="download-hero"><div class="mkt-container"><div class="download-hero-icon"><svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg></div><h1 class="download-hero-title">下载客户端</h1><p class="download-hero-desc">桌面客户端是当前 MVP 的首选入口,内置本地 P2P 节点,提供发布、下载校验和持续做种的完整能力。Web 端只连接已有 MostBox 节点。</p></div></section><section class="download-platforms"><div class="mkt-container"><h2 class="download-section-title">选择你的平台</h2><div class="download-options"><div class="ui-segmented-control download-source-tabs" role="tablist" aria-label="下载来源"><button type="button" role="tab" aria-selected="false" disabled="" class="ui-segmented-option download-source-tab"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cloud" aria-hidden="true"><path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"></path></svg>Cloudflare R2</button><button type="button" role="tab" aria-selected="true" class="ui-segmented-option download-source-tab is-active"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code" aria-hidden="true"><path d="m16 18 6-6-6-6"></path><path d="m8 6-6 6 6 6"></path></svg>GitHub Releases</button></div><p class="download-source-note">正在获取 Cloudflare R2 高速镜像。</p><div class="download-platform-grid"><article class="download-platform-card is-recommended"><div class="download-platform-icon"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg></div><div class="download-platform-content"><div class="download-platform-heading"><h3>Windows</h3><span>x64</span></div><p>Windows 10 或更高版本</p><dl class="download-platform-meta"><div><dt>来源</dt><dd>GitHub Releases</dd></div></dl><div class="download-platform-actions"><a href="https://github.com/most-people/most/releases/latest" class="btn btn-primary"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg>下载 <!-- -->.exe</a></div></div><span class="download-recommended-badge">当前</span></article><article class="download-platform-card"><div class="download-platform-icon"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg></div><div class="download-platform-content"><div class="download-platform-heading"><h3>Windows</h3><span>arm64</span></div><p>Windows 10 或更高版本</p><dl class="download-platform-meta"><div><dt>来源</dt><dd>GitHub Releases</dd></div></dl><div class="download-platform-actions"><a href="https://github.com/most-people/most/releases/latest" class="btn btn-primary"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg>下载 <!-- -->.exe</a></div></div></article><article class="download-platform-card"><div class="download-platform-icon"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-apple" aria-hidden="true"><path d="M12 6.528V3a1 1 0 0 1 1-1h0"></path><path d="M18.237 21A15 15 0 0 0 22 11a6 6 0 0 0-10-4.472A6 6 0 0 0 2 11a15.1 15.1 0 0 0 3.763 10 3 3 0 0 0 3.648.648 5.5 5.5 0 0 1 5.178 0A3 3 0 0 0 18.237 21"></path></svg></div><div class="download-platform-content"><div class="download-platform-heading"><h3>macOS</h3><span>x64</span></div><p>macOS 12 Monterey 或更高版本</p><dl class="download-platform-meta"><div><dt>来源</dt><dd>GitHub Releases</dd></div></dl><div class="download-platform-actions"><a href="https://github.com/most-people/most/releases/latest" class="btn btn-primary"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg>下载 <!-- -->.dmg</a></div></div></article><article class="download-platform-card"><div class="download-platform-icon"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-apple" aria-hidden="true"><path d="M12 6.528V3a1 1 0 0 1 1-1h0"></path><path d="M18.237 21A15 15 0 0 0 22 11a6 6 0 0 0-10-4.472A6 6 0 0 0 2 11a15.1 15.1 0 0 0 3.763 10 3 3 0 0 0 3.648.648 5.5 5.5 0 0 1 5.178 0A3 3 0 0 0 18.237 21"></path></svg></div><div class="download-platform-content"><div class="download-platform-heading"><h3>macOS</h3><span>arm64</span></div><p>macOS 12 Monterey 或更高版本</p><dl class="download-platform-meta"><div><dt>来源</dt><dd>GitHub Releases</dd></div></dl><div class="download-platform-actions"><a href="https://github.com/most-people/most/releases/latest" class="btn btn-primary"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg>下载 <!-- -->.dmg</a></div></div></article><article class="download-platform-card"><div class="download-platform-icon"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-laptop" aria-hidden="true"><path d="M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z"></path><path d="M20.054 15.987H3.946"></path></svg></div><div class="download-platform-content"><div class="download-platform-heading"><h3>Linux</h3><span>x64</span></div><p>Ubuntu 20.04+ / Debian 11+ / 其他主流发行版</p><dl class="download-platform-meta"><div><dt>来源</dt><dd>GitHub Releases</dd></div></dl><div class="download-platform-actions"><a href="https://github.com/most-people/most/releases/latest" class="btn btn-primary"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg>下载 <!-- -->.AppImage</a></div></div></article><article class="download-platform-card"><div class="download-platform-icon"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-laptop" aria-hidden="true"><path d="M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z"></path><path d="M20.054 15.987H3.946"></path></svg></div><div class="download-platform-content"><div class="download-platform-heading"><h3>Linux</h3><span>arm64</span></div><p>Ubuntu 20.04+ / Debian 11+ / 其他主流发行版</p><dl class="download-platform-meta"><div><dt>来源</dt><dd>GitHub Releases</dd></div></dl><div class="download-platform-actions"><a href="https://github.com/most-people/most/releases/latest" class="btn btn-primary"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg>下载 <!-- -->.AppImage</a></div></div></article></div></div></div></section><section class="download-comparison"><div class="mkt-container"><h2 class="download-section-title">Web 端 vs 桌面端</h2><div class="download-table-wrap"><table class="download-table"><thead><tr><th>功能</th><th>Web 端</th><th>桌面端</th></tr></thead><tbody><tr><td>节点能力</td><td class="col-web">连接已有节点</td><td class="col-desktop">内置本地节点</td></tr><tr><td>P2P 文件分享</td><td class="col-web">依赖所连节点</td><td class="col-desktop">完整支持</td></tr><tr><td>下载校验</td><td class="col-web">依赖所连节点</td><td class="col-desktop">完整支持</td></tr><tr><td>持续做种</td><td class="col-web">依赖所连节点</td><td class="col-desktop">默认开启</td></tr><tr><td>大文件传输</td><td class="col-web">依赖所连节点</td><td class="col-desktop">10GB 上限内</td></tr></tbody></table></div></div></section><section class="download-cta"><div class="mkt-container"><p class="download-hero-desc">使用 npm 入口请先安装 Node.js &gt;= 22.12,然后运行 npx most-box@latest 启动本机完整节点。</p></div></section><section class="download-cta"><div class="mkt-container"><a href="/" class="btn btn-primary">返回首页</a></div></section><footer class="mkt-footer"><div class="mkt-container"><div class="mkt-footer-inner"><p class="mkt-footer-copy">MostBox</p></div></div></footer></div><script>(function(a,f){let l;try{l=JSON.parse(sessionStorage.getItem(a)||"{}")}catch{return}const n=l?.[f||history.state?.__TSR_key];let c=!1;for(const t in n){const e=n[t],o=e?.scrollX,s=e?.scrollY;if(Number.isFinite(o)&&Number.isFinite(s)){if(t==="window")scrollTo(o,s),c=!0;else if(t)try{const r=document.querySelector(t);r&&(r.scrollLeft=o,r.scrollTop=s)}catch{}}}if(c)return;const i=location.hash.slice(1);if(i){const t=history.state?.__hashScrollIntoViewOptions??!0;if(t){const e=document.getElementById(i);e&&e.scrollIntoView(t)}return}scrollTo(0,0)})("tsr-scroll-restoration-v1_3");document.currentScript.remove()</script><!--/$--><script class="$tsr" id="$tsr-stream-barrier">(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={h(){this.hydrated=!0,this.c()},e(){this.streamEnded=!0,this.c()},c(){this.hydrated&&this.streamEnded&&(delete self.$_TSR,delete self.$R.tsr)},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/index-Cf23WD2V.js","/assets/jsx-runtime-Bt-cYkS5.js"],scripts:$R[5]=[$R[6]={attrs:$R[7]={type:"module",async:!0,src:"/assets/index-Cf23WD2V.js"}}],css:$R[8]=["/assets/index-BLhmAher.css"]},"/download/":$R[9]={preloads:$R[10]=["/assets/download-BLPU-Kzq.js","/assets/cloud-CcPRoob1.js","/assets/code-Dr6STnCn.js","/assets/download-0rM8xVCe.js"]}}},matches:$R[11]=[$R[12]={i:"__root__",u:1781235812129,s:"success",ssr:!0},$R[13]={i:"downloaddownload",u:1781235812131,s:"success",ssr:!0}],lastMatchId:"downloaddownload"})($R["tsr"]);$_TSR.e();document.currentScript.remove()</script><script type="module" async="" src="/assets/index-Cf23WD2V.js"></script></body></html>
Binary file
Binary file
Binary file