sa2kit 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (712) hide show
  1. package/README.md +5 -5
  2. package/dist/AliyunOSSProvider-7IOT5U6M.js +15 -0
  3. package/dist/{AliyunOSSProvider-4GRL2FJB.js.map → AliyunOSSProvider-7IOT5U6M.js.map} +1 -1
  4. package/dist/AliyunOSSProvider-ZXZM7OQA.mjs +6 -0
  5. package/dist/{AliyunOSSProvider-QNVFIZ7Q.mjs.map → AliyunOSSProvider-ZXZM7OQA.mjs.map} +1 -1
  6. package/dist/LocalStorageProvider-KJKRCKBS.js +15 -0
  7. package/dist/{LocalStorageProvider-PFA2DMIJ.js.map → LocalStorageProvider-KJKRCKBS.js.map} +1 -1
  8. package/dist/LocalStorageProvider-O22465NY.mjs +6 -0
  9. package/dist/{LocalStorageProvider-J5RHV37G.mjs.map → LocalStorageProvider-O22465NY.mjs.map} +1 -1
  10. package/dist/{chunk-SLKOEYFH.js → chunk-2234T4A6.js} +5 -5
  11. package/dist/chunk-2234T4A6.js.map +1 -0
  12. package/dist/{chunk-HQLKOXG7.js → chunk-36KGNXKW.js} +3 -3
  13. package/dist/{chunk-HQLKOXG7.js.map → chunk-36KGNXKW.js.map} +1 -1
  14. package/dist/{chunk-BCE6RUZV.js → chunk-375C7WL7.js} +19 -19
  15. package/dist/chunk-375C7WL7.js.map +1 -0
  16. package/dist/{chunk-VMTEDX5H.js → chunk-3J24Z4MB.js} +34 -318
  17. package/dist/chunk-3J24Z4MB.js.map +1 -0
  18. package/dist/{chunk-PBI7FKMB.js → chunk-3QCATFQV.js} +3 -3
  19. package/dist/chunk-3QCATFQV.js.map +1 -0
  20. package/dist/{chunk-FXQOXLDE.js → chunk-3R6JHA6D.js} +4 -4
  21. package/dist/chunk-3R6JHA6D.js.map +1 -0
  22. package/dist/{chunk-ZRAW3HXA.js → chunk-4OXKHV7J.js} +3 -3
  23. package/dist/chunk-4OXKHV7J.js.map +1 -0
  24. package/dist/chunk-4PJM4752.js +4 -0
  25. package/dist/{chunk-5USIS3UM.js.map → chunk-4PJM4752.js.map} +1 -1
  26. package/dist/{chunk-3Z43XGA4.mjs → chunk-65JRVC3F.mjs} +4 -4
  27. package/dist/{chunk-3Z43XGA4.mjs.map → chunk-65JRVC3F.mjs.map} +1 -1
  28. package/dist/{chunk-Q5EDCKQA.js → chunk-6HL54I2B.js} +16 -16
  29. package/dist/chunk-6HL54I2B.js.map +1 -0
  30. package/dist/chunk-6V2MIQPF.mjs +77 -0
  31. package/dist/chunk-6V2MIQPF.mjs.map +1 -0
  32. package/dist/{chunk-C6KV7VTZ.mjs → chunk-7CRU2Y5X.mjs} +5 -5
  33. package/dist/chunk-7CRU2Y5X.mjs.map +1 -0
  34. package/dist/chunk-7PMT4L4I.js +324 -0
  35. package/dist/chunk-7PMT4L4I.js.map +1 -0
  36. package/dist/{chunk-XJ7ZAGC5.js → chunk-7VVZHFEM.js} +3 -3
  37. package/dist/chunk-7VVZHFEM.js.map +1 -0
  38. package/dist/chunk-AWHGIKTQ.js +56 -0
  39. package/dist/{chunk-FHLTPXAR.js.map → chunk-AWHGIKTQ.js.map} +1 -1
  40. package/dist/chunk-B3GYF6TY.js +37 -0
  41. package/dist/{chunk-2Y7BKFKZ.js.map → chunk-B3GYF6TY.js.map} +1 -1
  42. package/dist/{chunk-5FUAQLGC.mjs → chunk-BDBJFOXM.mjs} +3 -3
  43. package/dist/{chunk-5FUAQLGC.mjs.map → chunk-BDBJFOXM.mjs.map} +1 -1
  44. package/dist/{chunk-ZGVB35L2.mjs → chunk-BTW3SWQN.mjs} +3 -3
  45. package/dist/chunk-BTW3SWQN.mjs.map +1 -0
  46. package/dist/{chunk-I5ZPEDNR.mjs → chunk-CHYSSZ4E.mjs} +10 -10
  47. package/dist/chunk-CHYSSZ4E.mjs.map +1 -0
  48. package/dist/{chunk-FIUBFREP.mjs → chunk-DO6QYAZV.mjs} +5 -5
  49. package/dist/chunk-DO6QYAZV.mjs.map +1 -0
  50. package/dist/{chunk-MBANGIG3.mjs → chunk-DTR53LQO.mjs} +6 -6
  51. package/dist/chunk-DTR53LQO.mjs.map +1 -0
  52. package/dist/{chunk-EQXPL7TN.mjs → chunk-EI2S4XDG.mjs} +16 -5
  53. package/dist/chunk-EI2S4XDG.mjs.map +1 -0
  54. package/dist/{chunk-GSNGCENJ.js → chunk-EOZHUI46.js} +16 -4
  55. package/dist/chunk-EOZHUI46.js.map +1 -0
  56. package/dist/{chunk-25OFOKNF.js → chunk-F2BZIU67.js} +18 -5
  57. package/dist/chunk-F2BZIU67.js.map +1 -0
  58. package/dist/{chunk-AQPU2AXH.js → chunk-F2TEJSCP.js} +10 -10
  59. package/dist/chunk-F2TEJSCP.js.map +1 -0
  60. package/dist/{chunk-UCOE6SET.js → chunk-FCLS5R24.js} +3 -3
  61. package/dist/chunk-FCLS5R24.js.map +1 -0
  62. package/dist/{chunk-3NHAT7D4.mjs → chunk-FUA6ZGMI.mjs} +27 -12
  63. package/dist/chunk-FUA6ZGMI.mjs.map +1 -0
  64. package/dist/chunk-FY2X3LYR.mjs +3 -0
  65. package/dist/{chunk-VRN76M56.mjs.map → chunk-FY2X3LYR.mjs.map} +1 -1
  66. package/dist/{chunk-V7EVKD5G.mjs → chunk-GS4SAW25.mjs} +4 -4
  67. package/dist/chunk-GS4SAW25.mjs.map +1 -0
  68. package/dist/chunk-H56ICWUO.js +321 -0
  69. package/dist/chunk-H56ICWUO.js.map +1 -0
  70. package/dist/{chunk-HDMIOOZY.mjs → chunk-HG34SGMN.mjs} +4 -4
  71. package/dist/chunk-HG34SGMN.mjs.map +1 -0
  72. package/dist/chunk-HL4H2HF6.js +279 -0
  73. package/dist/chunk-HL4H2HF6.js.map +1 -0
  74. package/dist/chunk-IJIQUMAK.mjs +272 -0
  75. package/dist/chunk-IJIQUMAK.mjs.map +1 -0
  76. package/dist/{imageCrop/index.mjs → chunk-KEZFTDZT.mjs} +24 -6
  77. package/dist/chunk-KEZFTDZT.mjs.map +1 -0
  78. package/dist/{chunk-KQ643L7Z.js → chunk-KHOVC2KL.js} +3 -3
  79. package/dist/chunk-KHOVC2KL.js.map +1 -0
  80. package/dist/{chunk-6PMXAK7F.js → chunk-KRBSTLKC.js} +57 -57
  81. package/dist/chunk-KRBSTLKC.js.map +1 -0
  82. package/dist/chunk-KVYHCGRY.js +2011 -0
  83. package/dist/chunk-KVYHCGRY.js.map +1 -0
  84. package/dist/{chunk-G7UBMCUT.mjs → chunk-LZ5YTMMP.mjs} +3 -3
  85. package/dist/chunk-LZ5YTMMP.mjs.map +1 -0
  86. package/dist/{chunk-WW4GE6CZ.js → chunk-MJ6XJGAL.js} +23 -119
  87. package/dist/chunk-MJ6XJGAL.js.map +1 -0
  88. package/dist/{chunk-NCRP2YHY.mjs → chunk-MKLXCV4Z.mjs} +8 -96
  89. package/dist/chunk-MKLXCV4Z.mjs.map +1 -0
  90. package/dist/chunk-MMDSZIXD.mjs +286 -0
  91. package/dist/chunk-MMDSZIXD.mjs.map +1 -0
  92. package/dist/{chunk-TC5YU6A4.mjs → chunk-N2O3OX5Y.mjs} +3 -3
  93. package/dist/chunk-N2O3OX5Y.mjs.map +1 -0
  94. package/dist/{chunk-3FRAIS4T.mjs → chunk-O6NNSPWD.mjs} +5 -5
  95. package/dist/{chunk-3FRAIS4T.mjs.map → chunk-O6NNSPWD.mjs.map} +1 -1
  96. package/dist/chunk-OIRZXSYM.js +80 -0
  97. package/dist/chunk-OIRZXSYM.js.map +1 -0
  98. package/dist/{chunk-Q5VFBPMG.mjs → chunk-P7JQRNBJ.mjs} +3 -3
  99. package/dist/chunk-P7JQRNBJ.mjs.map +1 -0
  100. package/dist/{chunk-BIHYZA67.mjs → chunk-PLIG5257.mjs} +18 -18
  101. package/dist/chunk-PLIG5257.mjs.map +1 -0
  102. package/dist/chunk-QIF4MG5V.mjs +283 -0
  103. package/dist/chunk-QIF4MG5V.mjs.map +1 -0
  104. package/dist/{chunk-4OOANEJV.mjs → chunk-RHECN4E2.mjs} +21 -21
  105. package/dist/chunk-RHECN4E2.mjs.map +1 -0
  106. package/dist/{chunk-YOTQG4NP.mjs → chunk-RHHTZTIN.mjs} +4 -4
  107. package/dist/chunk-RHHTZTIN.mjs.map +1 -0
  108. package/dist/{chunk-G6NSKJMH.js → chunk-RRQ2X26Z.js} +4 -4
  109. package/dist/chunk-RRQ2X26Z.js.map +1 -0
  110. package/dist/{chunk-4WBCWJSN.js → chunk-RST2T54Y.js} +7 -7
  111. package/dist/chunk-RST2T54Y.js.map +1 -0
  112. package/dist/{chunk-R2DXTE2L.js → chunk-RVNQI6BI.js} +4 -4
  113. package/dist/chunk-RVNQI6BI.js.map +1 -0
  114. package/dist/{chunk-SKFEJPMJ.mjs → chunk-S3K4LTRI.mjs} +6 -6
  115. package/dist/chunk-S3K4LTRI.mjs.map +1 -0
  116. package/dist/{chunk-ZM2SZJTZ.js → chunk-SWZ5XNF6.js} +9 -9
  117. package/dist/chunk-SWZ5XNF6.js.map +1 -0
  118. package/dist/{chunk-QSKLQX6H.js → chunk-U7HNBCBS.js} +16 -16
  119. package/dist/chunk-U7HNBCBS.js.map +1 -0
  120. package/dist/{chunk-CIVO4R6N.mjs → chunk-UJS3YSD3.mjs} +3 -3
  121. package/dist/chunk-UJS3YSD3.mjs.map +1 -0
  122. package/dist/{chunk-G6HXNQ2U.mjs → chunk-UJUWDF7M.mjs} +8 -8
  123. package/dist/chunk-UJUWDF7M.mjs.map +1 -0
  124. package/dist/{chunk-CAYOQDBR.js → chunk-UR5NENGE.js} +3 -3
  125. package/dist/chunk-UR5NENGE.js.map +1 -0
  126. package/dist/{chunk-QXAOXBVB.mjs → chunk-V7HGBDCB.mjs} +3 -3
  127. package/dist/chunk-V7HGBDCB.mjs.map +1 -0
  128. package/dist/{chunk-ATUCZXJY.js → chunk-V7RLIZMN.js} +14 -4
  129. package/dist/chunk-V7RLIZMN.js.map +1 -0
  130. package/dist/{chunk-ACUFEDVQ.js → chunk-VCKXK6V5.js} +9 -9
  131. package/dist/chunk-VCKXK6V5.js.map +1 -0
  132. package/dist/{chunk-XUS5ACKR.mjs → chunk-VIEXDTNF.mjs} +3 -3
  133. package/dist/chunk-VIEXDTNF.mjs.map +1 -0
  134. package/dist/{imageCrop/index.js → chunk-VN2DULIA.js} +24 -5
  135. package/dist/chunk-VN2DULIA.js.map +1 -0
  136. package/dist/{chunk-S6YSGVWD.js → chunk-VNWMRUY6.js} +31 -87
  137. package/dist/chunk-VNWMRUY6.js.map +1 -0
  138. package/dist/{chunk-3DXPQ4YV.mjs → chunk-VYK4M2D6.mjs} +18 -6
  139. package/dist/chunk-VYK4M2D6.mjs.map +1 -0
  140. package/dist/{chunk-WEEXCPSE.mjs → chunk-WB4H6ZUW.mjs} +3 -3
  141. package/dist/chunk-WB4H6ZUW.mjs.map +1 -0
  142. package/dist/{chunk-GWNBVGDT.mjs → chunk-WM3AEJ2E.mjs} +6 -257
  143. package/dist/chunk-WM3AEJ2E.mjs.map +1 -0
  144. package/dist/{chunk-CX2GHCAI.mjs → chunk-X5GINUGI.mjs} +26 -81
  145. package/dist/chunk-X5GINUGI.mjs.map +1 -0
  146. package/dist/{chunk-DIF5VRL3.mjs → chunk-XB7GUEHZ.mjs} +14 -5
  147. package/dist/chunk-XB7GUEHZ.mjs.map +1 -0
  148. package/dist/{chunk-ZLYPALF3.js → chunk-XE5RGZ3B.js} +11 -11
  149. package/dist/chunk-XE5RGZ3B.js.map +1 -0
  150. package/dist/{chunk-WJ7IMUEJ.mjs → chunk-XNTIMVSL.mjs} +7 -7
  151. package/dist/chunk-XNTIMVSL.mjs.map +1 -0
  152. package/dist/{chunk-ZWQJSZEY.js → chunk-Y7WHUKJF.js} +28 -12
  153. package/dist/chunk-Y7WHUKJF.js.map +1 -0
  154. package/dist/{components/index.mjs → chunk-YIRPPMCN.mjs} +305 -785
  155. package/dist/chunk-YIRPPMCN.mjs.map +1 -0
  156. package/dist/{chunk-KH6RQ4J5.js → chunk-Z2SNB5LJ.js} +3 -3
  157. package/dist/chunk-Z2SNB5LJ.js.map +1 -0
  158. package/dist/{chunk-HJ6MH7J7.js → chunk-ZOP7YIVX.js} +17 -17
  159. package/dist/chunk-ZOP7YIVX.js.map +1 -0
  160. package/dist/{chunk-HJZHQW5R.mjs → chunk-ZUZLWHH5.mjs} +3 -3
  161. package/dist/chunk-ZUZLWHH5.mjs.map +1 -0
  162. package/dist/{ai → common/ai}/llm/core/index.d.mts +3 -3
  163. package/dist/{ai → common/ai}/llm/core/index.d.ts +3 -3
  164. package/dist/{ai/llm → common/ai/llm/core}/index.js +14 -14
  165. package/dist/{ai/llm → common/ai/llm/core}/index.mjs +3 -3
  166. package/dist/{ai → common/ai}/llm/electron/index.d.mts +3 -3
  167. package/dist/{ai/llm/web → common/ai/llm/electron}/index.d.ts +3 -3
  168. package/dist/common/ai/llm/electron/index.js +67 -0
  169. package/dist/common/ai/llm/electron/index.mjs +10 -0
  170. package/dist/{ai → common/ai}/llm/index.d.mts +2 -2
  171. package/dist/{ai → common/ai}/llm/index.d.ts +2 -2
  172. package/dist/{ai/llm/core → common/ai/llm}/index.js +13 -13
  173. package/dist/{ai/llm/core → common/ai/llm}/index.mjs +2 -2
  174. package/dist/{ai → common/ai}/llm/miniapp/index.d.mts +3 -3
  175. package/dist/{ai → common/ai}/llm/miniapp/index.d.ts +3 -3
  176. package/dist/{ai/llm/rn → common/ai/llm/miniapp}/index.js +16 -16
  177. package/dist/{ai/llm/rn → common/ai/llm/miniapp}/index.mjs +4 -4
  178. package/dist/{ai → common/ai}/llm/rn/index.d.mts +3 -3
  179. package/dist/{ai → common/ai}/llm/rn/index.d.ts +3 -3
  180. package/dist/{ai/llm/miniapp → common/ai/llm/rn}/index.js +16 -16
  181. package/dist/{ai/llm/miniapp → common/ai/llm/rn}/index.mjs +4 -4
  182. package/dist/common/ai/llm/ui/electron/index.d.mts +5 -0
  183. package/dist/common/ai/llm/ui/electron/index.d.ts +5 -0
  184. package/dist/common/ai/llm/ui/electron/index.js +22 -0
  185. package/dist/common/ai/llm/ui/electron/index.mjs +9 -0
  186. package/dist/common/ai/llm/ui/miniapp/index.d.mts +9 -0
  187. package/dist/common/ai/llm/ui/miniapp/index.d.ts +9 -0
  188. package/dist/common/ai/llm/ui/miniapp/index.js +14 -0
  189. package/dist/common/ai/llm/ui/miniapp/index.mjs +5 -0
  190. package/dist/common/ai/llm/ui/rn/index.d.mts +9 -0
  191. package/dist/common/ai/llm/ui/rn/index.d.ts +9 -0
  192. package/dist/common/ai/llm/ui/rn/index.js +14 -0
  193. package/dist/common/ai/llm/ui/rn/index.mjs +5 -0
  194. package/dist/{ai → common/ai}/llm/ui/web/index.d.mts +7 -7
  195. package/dist/{ai → common/ai}/llm/ui/web/index.d.ts +7 -7
  196. package/dist/common/ai/llm/ui/web/index.js +21 -0
  197. package/dist/common/ai/llm/ui/web/index.mjs +8 -0
  198. package/dist/{ai → common/ai}/llm/web/index.d.mts +3 -3
  199. package/dist/{ai/llm/electron → common/ai/llm/web}/index.d.ts +3 -3
  200. package/dist/common/ai/llm/web/index.js +66 -0
  201. package/dist/common/ai/llm/web/index.mjs +9 -0
  202. package/dist/{analytics → common/analytics}/index.d.mts +1 -1
  203. package/dist/{analytics → common/analytics}/index.d.ts +1 -1
  204. package/dist/{analytics → common/analytics}/index.js +79 -79
  205. package/dist/{analytics → common/analytics}/index.mjs +3 -3
  206. package/dist/{analytics → common/analytics}/server/index.js +2 -2
  207. package/dist/common/analytics/server/index.js.map +1 -0
  208. package/dist/{analytics → common/analytics}/server/index.mjs +2 -2
  209. package/dist/common/analytics/server/index.mjs.map +1 -0
  210. package/dist/{api → common/api}/index.d.mts +3 -3
  211. package/dist/{api → common/api}/index.d.ts +3 -3
  212. package/dist/common/api/index.js +21 -0
  213. package/dist/common/api/index.mjs +4 -0
  214. package/dist/common/auth/components/index.d.mts +9 -9
  215. package/dist/common/auth/components/index.d.ts +9 -9
  216. package/dist/common/auth/index.js +6 -6
  217. package/dist/common/auth/index.mjs +2 -2
  218. package/dist/common/auth/react/index.d.mts +3 -3
  219. package/dist/common/auth/react/index.d.ts +3 -3
  220. package/dist/common/auth/rn/index.d.mts +2 -2
  221. package/dist/common/auth/rn/index.d.ts +2 -2
  222. package/dist/common/auth/rn/index.js +2 -2
  223. package/dist/common/auth/rn/index.js.map +1 -1
  224. package/dist/common/auth/rn/index.mjs +1 -1
  225. package/dist/common/auth/rn/index.mjs.map +1 -1
  226. package/dist/common/components/index.d.mts +4 -0
  227. package/dist/common/components/index.d.ts +4 -0
  228. package/dist/common/components/index.js +414 -0
  229. package/dist/common/components/index.mjs +9 -0
  230. package/dist/{config → common/config}/index.d.mts +1 -1
  231. package/dist/{config → common/config}/index.d.ts +1 -1
  232. package/dist/common/config/index.js +21 -0
  233. package/dist/common/config/index.mjs +4 -0
  234. package/dist/{config → common/config}/server/index.js +5 -5
  235. package/dist/common/config/server/index.js.map +1 -0
  236. package/dist/{config → common/config}/server/index.mjs +5 -5
  237. package/dist/common/config/server/index.mjs.map +1 -0
  238. package/dist/common/export/index.d.mts +2 -2
  239. package/dist/common/export/index.d.ts +2 -2
  240. package/dist/common/export/index.js +67 -67
  241. package/dist/common/export/index.mjs +3 -3
  242. package/dist/common/export/server/index.d.mts +2 -2
  243. package/dist/common/export/server/index.d.ts +2 -2
  244. package/dist/common/export/server/index.js +76 -48
  245. package/dist/common/export/server/index.mjs +3 -3
  246. package/dist/common/file/index.d.mts +2 -2
  247. package/dist/common/file/index.d.ts +2 -2
  248. package/dist/common/file/index.js +27 -27
  249. package/dist/common/file/index.mjs +5 -5
  250. package/dist/common/file/server/index.d.mts +2 -2
  251. package/dist/common/file/server/index.d.ts +2 -2
  252. package/dist/common/file/server/index.js +58 -50
  253. package/dist/common/file/server/index.mjs +8 -8
  254. package/dist/{i18n → common/i18n}/index.d.mts +1 -1
  255. package/dist/{i18n → common/i18n}/index.d.ts +1 -1
  256. package/dist/{i18n → common/i18n}/index.js +18 -18
  257. package/dist/{i18n → common/i18n}/index.mjs +2 -2
  258. package/dist/common/imageCrop/index.d.mts +2 -0
  259. package/dist/common/imageCrop/index.d.ts +2 -0
  260. package/dist/common/imageCrop/index.js +61 -0
  261. package/dist/common/imageCrop/index.mjs +4 -0
  262. package/dist/common/index.d.mts +16 -16
  263. package/dist/common/index.d.ts +16 -16
  264. package/dist/common/index.js +75 -67
  265. package/dist/common/index.mjs +26 -26
  266. package/dist/common/logger/index.d.mts +1 -1
  267. package/dist/common/logger/index.d.ts +1 -1
  268. package/dist/common/logger/index.js +6 -7
  269. package/dist/common/logger/index.mjs +1 -2
  270. package/dist/{ossFile → common/ossFile}/index.d.mts +6 -6
  271. package/dist/{ossFile → common/ossFile}/index.d.ts +6 -6
  272. package/dist/{ossFile → common/ossFile}/index.js +26 -26
  273. package/dist/{ossFile → common/ossFile}/index.mjs +5 -5
  274. package/dist/{ossFile/server/index.d.ts → common/ossFile/server/index.d.mts} +7 -7
  275. package/dist/{ossFile/server/index.d.mts → common/ossFile/server/index.d.ts} +7 -7
  276. package/dist/{ossFile → common/ossFile}/server/index.js +60 -52
  277. package/dist/{ossFile → common/ossFile}/server/index.mjs +10 -10
  278. package/dist/common/platform/index.js +8 -8
  279. package/dist/common/platform/index.mjs +4 -4
  280. package/dist/common/request/index.d.mts +1 -1
  281. package/dist/common/request/index.d.ts +1 -1
  282. package/dist/common/request/index.js +5 -6
  283. package/dist/common/request/index.mjs +2 -3
  284. package/dist/common/storage/index.d.mts +1 -1
  285. package/dist/common/storage/index.d.ts +1 -1
  286. package/dist/common/storage/index.js +17 -17
  287. package/dist/common/storage/index.mjs +5 -5
  288. package/dist/{universalExport → common/universalExport}/index.d.mts +6 -86
  289. package/dist/{universalExport → common/universalExport}/index.d.ts +6 -86
  290. package/dist/{universalExport → common/universalExport}/index.js +67 -67
  291. package/dist/common/universalExport/index.mjs +5 -0
  292. package/dist/{universalExport → common/universalExport}/server/index.d.mts +3 -84
  293. package/dist/{universalExport → common/universalExport}/server/index.d.ts +3 -84
  294. package/dist/common/universalExport/server/index.js +151 -0
  295. package/dist/common/universalExport/server/index.mjs +6 -0
  296. package/dist/{universalFile/index.d.ts → common/universalFile/index.d.mts} +9 -9
  297. package/dist/{universalFile/index.d.mts → common/universalFile/index.d.ts} +9 -9
  298. package/dist/{universalFile → common/universalFile}/index.js +63 -63
  299. package/dist/common/universalFile/index.js.map +1 -0
  300. package/dist/{universalFile → common/universalFile}/index.mjs +4 -4
  301. package/dist/common/universalFile/index.mjs.map +1 -0
  302. package/dist/{universalFile → common/universalFile}/server/index.d.mts +5 -5
  303. package/dist/{universalFile → common/universalFile}/server/index.d.ts +5 -5
  304. package/dist/{universalFile → common/universalFile}/server/index.js +68 -68
  305. package/dist/{universalFile → common/universalFile}/server/index.mjs +8 -8
  306. package/dist/common/utils/index.d.mts +1 -1
  307. package/dist/common/utils/index.d.ts +1 -1
  308. package/dist/common/utils/index.js +11 -12
  309. package/dist/common/utils/index.mjs +2 -3
  310. package/dist/{index-WrR57hKT.d.ts → index-BRLygK4h.d.ts} +2 -2
  311. package/dist/{request/index.d.mts → index-BWNK5mH2.d.ts} +19 -2
  312. package/dist/{utils/index.d.mts → index-BiCK6gg6.d.mts} +19 -1
  313. package/dist/{utils/index.d.ts → index-BiCK6gg6.d.ts} +19 -1
  314. package/dist/{index-DoUo8IrU.d.mts → index-BxZauNN_.d.mts} +8 -8
  315. package/dist/{index-DoUo8IrU.d.ts → index-BxZauNN_.d.ts} +8 -8
  316. package/dist/{request/index.d.ts → index-C-P2yBTH.d.mts} +19 -2
  317. package/dist/{index-D0cqaQEH.d.mts → index-CLB80GCP.d.mts} +5 -5
  318. package/dist/{index-D0cqaQEH.d.ts → index-CLB80GCP.d.ts} +5 -5
  319. package/dist/{index-2G9Dxjvt.d.ts → index-CT4K2z-O.d.ts} +2 -2
  320. package/dist/{index-qcOvRVuN.d.mts → index-D6RJTGce.d.mts} +2 -2
  321. package/dist/{storage/index.d.ts → index-DA7L9JlE.d.mts} +26 -3
  322. package/dist/{imageCrop/index.d.mts → index-DXVph21C.d.mts} +40 -4
  323. package/dist/{imageCrop/index.d.ts → index-DXVph21C.d.ts} +40 -4
  324. package/dist/{index-CYuUB8aF.d.mts → index-DzyK789B.d.mts} +2 -2
  325. package/dist/{logger/index.d.mts → index-FVJZCEtm.d.mts} +21 -1
  326. package/dist/{logger/index.d.ts → index-FVJZCEtm.d.ts} +21 -1
  327. package/dist/{storage/index.d.mts → index-nD9vPCZT.d.ts} +26 -3
  328. package/dist/{components/index.d.mts → index-nOmIv2BG.d.mts} +159 -5
  329. package/dist/{components/index.d.ts → index-nOmIv2BG.d.ts} +159 -5
  330. package/dist/{path-qjVnH8qU.d.ts → path-Bzc7hj1N.d.ts} +5 -1
  331. package/dist/{path-DkaHQSyW.d.mts → path-DN_65vhO.d.mts} +5 -1
  332. package/dist/{types-3ujSNAXb.d.mts → utils-Dm3O1rAa.d.mts} +81 -1
  333. package/dist/{types-3ujSNAXb.d.ts → utils-Dm3O1rAa.d.ts} +81 -1
  334. package/package.json +292 -312
  335. package/dist/AliyunOSSProvider-4GRL2FJB.js +0 -15
  336. package/dist/AliyunOSSProvider-QNVFIZ7Q.mjs +0 -6
  337. package/dist/CollisionBalls-BpHufX3H.d.mts +0 -41
  338. package/dist/CollisionBalls-BpHufX3H.d.ts +0 -41
  339. package/dist/ConfigService-BxK06xP6.d.mts +0 -262
  340. package/dist/ConfigService-BxK06xP6.d.ts +0 -262
  341. package/dist/LocalStorageProvider-J5RHV37G.mjs +0 -6
  342. package/dist/LocalStorageProvider-PFA2DMIJ.js +0 -15
  343. package/dist/UniversalFileService-CC4d3wkc.d.ts +0 -139
  344. package/dist/UniversalFileService-CzAE_G4V.d.mts +0 -139
  345. package/dist/ai/llm/electron/index.js +0 -66
  346. package/dist/ai/llm/electron/index.mjs +0 -9
  347. package/dist/ai/llm/ui/electron/index.d.mts +0 -5
  348. package/dist/ai/llm/ui/electron/index.d.ts +0 -5
  349. package/dist/ai/llm/ui/electron/index.js +0 -21
  350. package/dist/ai/llm/ui/electron/index.mjs +0 -8
  351. package/dist/ai/llm/ui/miniapp/index.d.mts +0 -9
  352. package/dist/ai/llm/ui/miniapp/index.d.ts +0 -9
  353. package/dist/ai/llm/ui/miniapp/index.js +0 -14
  354. package/dist/ai/llm/ui/miniapp/index.mjs +0 -5
  355. package/dist/ai/llm/ui/rn/index.d.mts +0 -9
  356. package/dist/ai/llm/ui/rn/index.d.ts +0 -9
  357. package/dist/ai/llm/ui/rn/index.js +0 -14
  358. package/dist/ai/llm/ui/rn/index.mjs +0 -5
  359. package/dist/ai/llm/ui/web/index.js +0 -20
  360. package/dist/ai/llm/ui/web/index.mjs +0 -7
  361. package/dist/ai/llm/web/index.js +0 -65
  362. package/dist/ai/llm/web/index.mjs +0 -8
  363. package/dist/analytics/server/index.js.map +0 -1
  364. package/dist/analytics/server/index.mjs.map +0 -1
  365. package/dist/api/index.js +0 -21
  366. package/dist/api/index.mjs +0 -4
  367. package/dist/audioDetection/index.d.mts +0 -449
  368. package/dist/audioDetection/index.d.ts +0 -449
  369. package/dist/audioDetection/index.js +0 -1244
  370. package/dist/audioDetection/index.js.map +0 -1
  371. package/dist/audioDetection/index.mjs +0 -1227
  372. package/dist/audioDetection/index.mjs.map +0 -1
  373. package/dist/boothVaultService-Cn4WPhjg.d.mts +0 -83
  374. package/dist/boothVaultService-Cn4WPhjg.d.ts +0 -83
  375. package/dist/business/index.d.mts +0 -2
  376. package/dist/business/index.d.ts +0 -2
  377. package/dist/business/index.js +0 -581
  378. package/dist/business/index.js.map +0 -1
  379. package/dist/business/index.mjs +0 -575
  380. package/dist/business/index.mjs.map +0 -1
  381. package/dist/calendar/index.d.mts +0 -1325
  382. package/dist/calendar/index.d.ts +0 -1325
  383. package/dist/calendar/index.js +0 -5964
  384. package/dist/calendar/index.js.map +0 -1
  385. package/dist/calendar/index.mjs +0 -5878
  386. package/dist/calendar/index.mjs.map +0 -1
  387. package/dist/calendar/routes/index.d.mts +0 -191
  388. package/dist/calendar/routes/index.d.ts +0 -191
  389. package/dist/calendar/routes/index.js +0 -844
  390. package/dist/calendar/routes/index.js.map +0 -1
  391. package/dist/calendar/routes/index.mjs +0 -826
  392. package/dist/calendar/routes/index.mjs.map +0 -1
  393. package/dist/chunk-25OFOKNF.js.map +0 -1
  394. package/dist/chunk-2Y7BKFKZ.js +0 -37
  395. package/dist/chunk-3CSCIRQY.js +0 -17
  396. package/dist/chunk-3CSCIRQY.js.map +0 -1
  397. package/dist/chunk-3DXPQ4YV.mjs.map +0 -1
  398. package/dist/chunk-3NHAT7D4.mjs.map +0 -1
  399. package/dist/chunk-4FDUURSD.js +0 -22
  400. package/dist/chunk-4FDUURSD.js.map +0 -1
  401. package/dist/chunk-4OOANEJV.mjs.map +0 -1
  402. package/dist/chunk-4WBCWJSN.js.map +0 -1
  403. package/dist/chunk-5GBDDXYL.mjs +0 -23
  404. package/dist/chunk-5GBDDXYL.mjs.map +0 -1
  405. package/dist/chunk-5USIS3UM.js +0 -4
  406. package/dist/chunk-6PMXAK7F.js.map +0 -1
  407. package/dist/chunk-7B5SI4OF.mjs +0 -15
  408. package/dist/chunk-7B5SI4OF.mjs.map +0 -1
  409. package/dist/chunk-ACUFEDVQ.js.map +0 -1
  410. package/dist/chunk-AQPU2AXH.js.map +0 -1
  411. package/dist/chunk-ATUCZXJY.js.map +0 -1
  412. package/dist/chunk-BCE6RUZV.js.map +0 -1
  413. package/dist/chunk-BIHYZA67.mjs.map +0 -1
  414. package/dist/chunk-C6KV7VTZ.mjs.map +0 -1
  415. package/dist/chunk-CAYOQDBR.js.map +0 -1
  416. package/dist/chunk-CIVO4R6N.mjs.map +0 -1
  417. package/dist/chunk-CX2GHCAI.mjs.map +0 -1
  418. package/dist/chunk-DIF5VRL3.mjs.map +0 -1
  419. package/dist/chunk-EQXPL7TN.mjs.map +0 -1
  420. package/dist/chunk-FCEBAWN6.js +0 -18
  421. package/dist/chunk-FCEBAWN6.js.map +0 -1
  422. package/dist/chunk-FHIE5MTC.mjs +0 -541
  423. package/dist/chunk-FHIE5MTC.mjs.map +0 -1
  424. package/dist/chunk-FHLTPXAR.js +0 -56
  425. package/dist/chunk-FIUBFREP.mjs.map +0 -1
  426. package/dist/chunk-FXQOXLDE.js.map +0 -1
  427. package/dist/chunk-G6HXNQ2U.mjs.map +0 -1
  428. package/dist/chunk-G6NSKJMH.js.map +0 -1
  429. package/dist/chunk-G7UBMCUT.mjs.map +0 -1
  430. package/dist/chunk-GSNGCENJ.js.map +0 -1
  431. package/dist/chunk-GWNBVGDT.mjs.map +0 -1
  432. package/dist/chunk-HDMIOOZY.mjs.map +0 -1
  433. package/dist/chunk-HJ6MH7J7.js.map +0 -1
  434. package/dist/chunk-HJZHQW5R.mjs.map +0 -1
  435. package/dist/chunk-I5ZPEDNR.mjs.map +0 -1
  436. package/dist/chunk-KH6RQ4J5.js.map +0 -1
  437. package/dist/chunk-KQ643L7Z.js.map +0 -1
  438. package/dist/chunk-LFB5EIIM.mjs +0 -31
  439. package/dist/chunk-LFB5EIIM.mjs.map +0 -1
  440. package/dist/chunk-MBANGIG3.mjs.map +0 -1
  441. package/dist/chunk-NCRP2YHY.mjs.map +0 -1
  442. package/dist/chunk-NDGHXVGS.js +0 -25
  443. package/dist/chunk-NDGHXVGS.js.map +0 -1
  444. package/dist/chunk-NDPO5OMC.js +0 -563
  445. package/dist/chunk-NDPO5OMC.js.map +0 -1
  446. package/dist/chunk-PBI7FKMB.js.map +0 -1
  447. package/dist/chunk-Q5EDCKQA.js.map +0 -1
  448. package/dist/chunk-Q5VFBPMG.mjs.map +0 -1
  449. package/dist/chunk-QSKLQX6H.js.map +0 -1
  450. package/dist/chunk-QXAOXBVB.mjs.map +0 -1
  451. package/dist/chunk-R2DXTE2L.js.map +0 -1
  452. package/dist/chunk-RTD2WHQQ.mjs +0 -16
  453. package/dist/chunk-RTD2WHQQ.mjs.map +0 -1
  454. package/dist/chunk-S6YSGVWD.js.map +0 -1
  455. package/dist/chunk-SKFEJPMJ.mjs.map +0 -1
  456. package/dist/chunk-SLKOEYFH.js.map +0 -1
  457. package/dist/chunk-TC5YU6A4.mjs.map +0 -1
  458. package/dist/chunk-UCOE6SET.js.map +0 -1
  459. package/dist/chunk-UIYKZ73N.js +0 -36
  460. package/dist/chunk-UIYKZ73N.js.map +0 -1
  461. package/dist/chunk-V7EVKD5G.mjs.map +0 -1
  462. package/dist/chunk-VMTEDX5H.js.map +0 -1
  463. package/dist/chunk-VRN76M56.mjs +0 -3
  464. package/dist/chunk-VXFUXZN5.mjs +0 -20
  465. package/dist/chunk-VXFUXZN5.mjs.map +0 -1
  466. package/dist/chunk-WEEXCPSE.mjs.map +0 -1
  467. package/dist/chunk-WJ7IMUEJ.mjs.map +0 -1
  468. package/dist/chunk-WW4GE6CZ.js.map +0 -1
  469. package/dist/chunk-XJ7ZAGC5.js.map +0 -1
  470. package/dist/chunk-XUS5ACKR.mjs.map +0 -1
  471. package/dist/chunk-YOTQG4NP.mjs.map +0 -1
  472. package/dist/chunk-ZGVB35L2.mjs.map +0 -1
  473. package/dist/chunk-ZLYPALF3.js.map +0 -1
  474. package/dist/chunk-ZM2SZJTZ.js.map +0 -1
  475. package/dist/chunk-ZRAW3HXA.js.map +0 -1
  476. package/dist/chunk-ZWQJSZEY.js.map +0 -1
  477. package/dist/components/index.js +0 -2516
  478. package/dist/components/index.js.map +0 -1
  479. package/dist/components/index.mjs.map +0 -1
  480. package/dist/config/index.js +0 -21
  481. package/dist/config/index.mjs +0 -4
  482. package/dist/config/server/index.js.map +0 -1
  483. package/dist/config/server/index.mjs.map +0 -1
  484. package/dist/drizzle-schema-BNhqj2AZ.d.mts +0 -1114
  485. package/dist/drizzle-schema-BNhqj2AZ.d.ts +0 -1114
  486. package/dist/festivalCard/index.d.mts +0 -76
  487. package/dist/festivalCard/index.d.ts +0 -76
  488. package/dist/festivalCard/index.js +0 -1492
  489. package/dist/festivalCard/index.js.map +0 -1
  490. package/dist/festivalCard/index.mjs +0 -1475
  491. package/dist/festivalCard/index.mjs.map +0 -1
  492. package/dist/festivalCard/routes/index.d.mts +0 -42
  493. package/dist/festivalCard/routes/index.d.ts +0 -42
  494. package/dist/festivalCard/routes/index.js +0 -361
  495. package/dist/festivalCard/routes/index.js.map +0 -1
  496. package/dist/festivalCard/routes/index.mjs +0 -356
  497. package/dist/festivalCard/routes/index.mjs.map +0 -1
  498. package/dist/festivalCard/server/index.d.mts +0 -120
  499. package/dist/festivalCard/server/index.d.ts +0 -120
  500. package/dist/festivalCard/server/index.js +0 -272
  501. package/dist/festivalCard/server/index.js.map +0 -1
  502. package/dist/festivalCard/server/index.mjs +0 -265
  503. package/dist/festivalCard/server/index.mjs.map +0 -1
  504. package/dist/festivalCardService-B3GsnNpV.d.ts +0 -13
  505. package/dist/festivalCardService-CWhrLNE9.d.mts +0 -13
  506. package/dist/imageCrop/index.js.map +0 -1
  507. package/dist/imageCrop/index.mjs.map +0 -1
  508. package/dist/index-Bjem5rWn.d.mts +0 -17
  509. package/dist/index-C5U-2hJq.d.ts +0 -23
  510. package/dist/index-CifSBBP2.d.ts +0 -17
  511. package/dist/index-D0K4ehme.d.mts +0 -20
  512. package/dist/index-DLnfKN-a.d.mts +0 -23
  513. package/dist/index-DSel44Ke.d.mts +0 -93
  514. package/dist/index-DSel44Ke.d.ts +0 -93
  515. package/dist/index-DZ5iJtNO.d.mts +0 -102
  516. package/dist/index-DZ5iJtNO.d.ts +0 -102
  517. package/dist/index-Da7qdkgW.d.ts +0 -20
  518. package/dist/index-DrPcMJPc.d.mts +0 -250
  519. package/dist/index-DrPcMJPc.d.ts +0 -250
  520. package/dist/index-oLUvfqT8.d.ts +0 -20
  521. package/dist/index-pe38RDgC.d.mts +0 -20
  522. package/dist/index.d.mts +0 -11611
  523. package/dist/index.d.ts +0 -11611
  524. package/dist/index.js +0 -17230
  525. package/dist/index.js.map +0 -1
  526. package/dist/index.mjs +0 -16954
  527. package/dist/index.mjs.map +0 -1
  528. package/dist/logger/index.js +0 -29
  529. package/dist/logger/index.mjs +0 -4
  530. package/dist/mikuContest/ui/web/index.d.mts +0 -2
  531. package/dist/mikuContest/ui/web/index.d.ts +0 -2
  532. package/dist/mikuContest/ui/web/index.js +0 -353
  533. package/dist/mikuContest/ui/web/index.js.map +0 -1
  534. package/dist/mikuContest/ui/web/index.mjs +0 -343
  535. package/dist/mikuContest/ui/web/index.mjs.map +0 -1
  536. package/dist/mikuFireworks3D/index.d.mts +0 -268
  537. package/dist/mikuFireworks3D/index.d.ts +0 -268
  538. package/dist/mikuFireworks3D/index.js +0 -1267
  539. package/dist/mikuFireworks3D/index.js.map +0 -1
  540. package/dist/mikuFireworks3D/index.mjs +0 -1228
  541. package/dist/mikuFireworks3D/index.mjs.map +0 -1
  542. package/dist/mikuFusionGame/index.d.mts +0 -117
  543. package/dist/mikuFusionGame/index.d.ts +0 -117
  544. package/dist/mikuFusionGame/index.js +0 -1208
  545. package/dist/mikuFusionGame/index.js.map +0 -1
  546. package/dist/mikuFusionGame/index.mjs +0 -1195
  547. package/dist/mikuFusionGame/index.mjs.map +0 -1
  548. package/dist/mmd/admin/index.d.mts +0 -487
  549. package/dist/mmd/admin/index.d.ts +0 -487
  550. package/dist/mmd/admin/index.js +0 -1058
  551. package/dist/mmd/admin/index.js.map +0 -1
  552. package/dist/mmd/admin/index.mjs +0 -1027
  553. package/dist/mmd/admin/index.mjs.map +0 -1
  554. package/dist/mmd/index.d.mts +0 -2467
  555. package/dist/mmd/index.d.ts +0 -2467
  556. package/dist/mmd/index.js +0 -10119
  557. package/dist/mmd/index.js.map +0 -1
  558. package/dist/mmd/index.mjs +0 -10028
  559. package/dist/mmd/index.mjs.map +0 -1
  560. package/dist/mmd/server/index.d.mts +0 -139
  561. package/dist/mmd/server/index.d.ts +0 -139
  562. package/dist/mmd/server/index.js +0 -424
  563. package/dist/mmd/server/index.js.map +0 -1
  564. package/dist/mmd/server/index.mjs +0 -404
  565. package/dist/mmd/server/index.mjs.map +0 -1
  566. package/dist/music/index.d.mts +0 -74
  567. package/dist/music/index.d.ts +0 -74
  568. package/dist/music/index.js +0 -830
  569. package/dist/music/index.js.map +0 -1
  570. package/dist/music/index.mjs +0 -809
  571. package/dist/music/index.mjs.map +0 -1
  572. package/dist/music/server/index.d.mts +0 -1
  573. package/dist/music/server/index.d.ts +0 -1
  574. package/dist/music/server/index.js +0 -194
  575. package/dist/music/server/index.js.map +0 -1
  576. package/dist/music/server/index.mjs +0 -182
  577. package/dist/music/server/index.mjs.map +0 -1
  578. package/dist/navigation/index.d.mts +0 -93
  579. package/dist/navigation/index.d.ts +0 -93
  580. package/dist/navigation/index.js +0 -453
  581. package/dist/navigation/index.js.map +0 -1
  582. package/dist/navigation/index.mjs +0 -443
  583. package/dist/navigation/index.mjs.map +0 -1
  584. package/dist/portfolio/index.d.mts +0 -66
  585. package/dist/portfolio/index.d.ts +0 -66
  586. package/dist/portfolio/index.js +0 -736
  587. package/dist/portfolio/index.js.map +0 -1
  588. package/dist/portfolio/index.mjs +0 -724
  589. package/dist/portfolio/index.mjs.map +0 -1
  590. package/dist/qqbot/server/index.d.mts +0 -216
  591. package/dist/qqbot/server/index.d.ts +0 -216
  592. package/dist/qqbot/server/index.js +0 -394
  593. package/dist/qqbot/server/index.js.map +0 -1
  594. package/dist/qqbot/server/index.mjs +0 -385
  595. package/dist/qqbot/server/index.mjs.map +0 -1
  596. package/dist/qqbot/ui/web/index.d.mts +0 -10
  597. package/dist/qqbot/ui/web/index.d.ts +0 -10
  598. package/dist/qqbot/ui/web/index.js +0 -105
  599. package/dist/qqbot/ui/web/index.js.map +0 -1
  600. package/dist/qqbot/ui/web/index.mjs +0 -99
  601. package/dist/qqbot/ui/web/index.mjs.map +0 -1
  602. package/dist/request/index.js +0 -22
  603. package/dist/request/index.mjs +0 -5
  604. package/dist/screenReceiver/index.d.mts +0 -86
  605. package/dist/screenReceiver/index.d.ts +0 -86
  606. package/dist/screenReceiver/index.js +0 -281
  607. package/dist/screenReceiver/index.js.map +0 -1
  608. package/dist/screenReceiver/index.mjs +0 -273
  609. package/dist/screenReceiver/index.mjs.map +0 -1
  610. package/dist/storage/index.js +0 -48
  611. package/dist/storage/index.mjs +0 -7
  612. package/dist/testYourself/admin/index.d.mts +0 -58
  613. package/dist/testYourself/admin/index.d.ts +0 -58
  614. package/dist/testYourself/admin/index.js +0 -1009
  615. package/dist/testYourself/admin/index.js.map +0 -1
  616. package/dist/testYourself/admin/index.mjs +0 -1002
  617. package/dist/testYourself/admin/index.mjs.map +0 -1
  618. package/dist/testYourself/index.d.mts +0 -53
  619. package/dist/testYourself/index.d.ts +0 -53
  620. package/dist/testYourself/index.js +0 -2551
  621. package/dist/testYourself/index.js.map +0 -1
  622. package/dist/testYourself/index.mjs +0 -2531
  623. package/dist/testYourself/index.mjs.map +0 -1
  624. package/dist/testYourself/server/index.d.mts +0 -1029
  625. package/dist/testYourself/server/index.d.ts +0 -1029
  626. package/dist/testYourself/server/index.js +0 -825
  627. package/dist/testYourself/server/index.js.map +0 -1
  628. package/dist/testYourself/server/index.mjs +0 -816
  629. package/dist/testYourself/server/index.mjs.map +0 -1
  630. package/dist/types-B6B210gX.d.mts +0 -270
  631. package/dist/types-B6B210gX.d.ts +0 -270
  632. package/dist/types-Bdnte5EN.d.mts +0 -292
  633. package/dist/types-Cs0CLvrH.d.mts +0 -70
  634. package/dist/types-Cs0CLvrH.d.ts +0 -70
  635. package/dist/types-HorDyIRv.d.mts +0 -303
  636. package/dist/types-HorDyIRv.d.ts +0 -303
  637. package/dist/types-_rFX1atk.d.ts +0 -292
  638. package/dist/universalExport/index.mjs +0 -5
  639. package/dist/universalExport/server/index.js +0 -123
  640. package/dist/universalExport/server/index.mjs +0 -6
  641. package/dist/universalFile/index.js.map +0 -1
  642. package/dist/universalFile/index.mjs.map +0 -1
  643. package/dist/universalFile/server/index.js.map +0 -1
  644. package/dist/universalFile/server/index.mjs.map +0 -1
  645. package/dist/utils/index.js +0 -46
  646. package/dist/utils/index.js.map +0 -1
  647. package/dist/utils/index.mjs +0 -5
  648. package/dist/utils/index.mjs.map +0 -1
  649. package/dist/vocaloidBooth/index.d.mts +0 -64
  650. package/dist/vocaloidBooth/index.d.ts +0 -64
  651. package/dist/vocaloidBooth/index.js +0 -376
  652. package/dist/vocaloidBooth/index.js.map +0 -1
  653. package/dist/vocaloidBooth/index.mjs +0 -362
  654. package/dist/vocaloidBooth/index.mjs.map +0 -1
  655. package/dist/vocaloidBooth/server/index.d.mts +0 -111
  656. package/dist/vocaloidBooth/server/index.d.ts +0 -111
  657. package/dist/vocaloidBooth/server/index.js +0 -247
  658. package/dist/vocaloidBooth/server/index.js.map +0 -1
  659. package/dist/vocaloidBooth/server/index.mjs +0 -237
  660. package/dist/vocaloidBooth/server/index.mjs.map +0 -1
  661. package/dist/vocaloidBooth/web/index.d.mts +0 -3
  662. package/dist/vocaloidBooth/web/index.d.ts +0 -3
  663. package/dist/vocaloidBooth/web/index.js +0 -376
  664. package/dist/vocaloidBooth/web/index.js.map +0 -1
  665. package/dist/vocaloidBooth/web/index.mjs +0 -362
  666. package/dist/vocaloidBooth/web/index.mjs.map +0 -1
  667. /package/dist/{ai → common/ai}/llm/core/index.js.map +0 -0
  668. /package/dist/{ai → common/ai}/llm/core/index.mjs.map +0 -0
  669. /package/dist/{ai → common/ai}/llm/electron/index.js.map +0 -0
  670. /package/dist/{ai → common/ai}/llm/electron/index.mjs.map +0 -0
  671. /package/dist/{ai → common/ai}/llm/index.js.map +0 -0
  672. /package/dist/{ai → common/ai}/llm/index.mjs.map +0 -0
  673. /package/dist/{ai → common/ai}/llm/miniapp/index.js.map +0 -0
  674. /package/dist/{ai → common/ai}/llm/miniapp/index.mjs.map +0 -0
  675. /package/dist/{ai → common/ai}/llm/rn/index.js.map +0 -0
  676. /package/dist/{ai → common/ai}/llm/rn/index.mjs.map +0 -0
  677. /package/dist/{ai → common/ai}/llm/ui/electron/index.js.map +0 -0
  678. /package/dist/{ai → common/ai}/llm/ui/electron/index.mjs.map +0 -0
  679. /package/dist/{ai → common/ai}/llm/ui/miniapp/index.js.map +0 -0
  680. /package/dist/{ai → common/ai}/llm/ui/miniapp/index.mjs.map +0 -0
  681. /package/dist/{ai → common/ai}/llm/ui/rn/index.js.map +0 -0
  682. /package/dist/{ai → common/ai}/llm/ui/rn/index.mjs.map +0 -0
  683. /package/dist/{ai → common/ai}/llm/ui/web/index.js.map +0 -0
  684. /package/dist/{ai → common/ai}/llm/ui/web/index.mjs.map +0 -0
  685. /package/dist/{ai → common/ai}/llm/web/index.js.map +0 -0
  686. /package/dist/{ai → common/ai}/llm/web/index.mjs.map +0 -0
  687. /package/dist/{analytics → common/analytics}/index.js.map +0 -0
  688. /package/dist/{analytics → common/analytics}/index.mjs.map +0 -0
  689. /package/dist/{analytics → common/analytics}/server/index.d.mts +0 -0
  690. /package/dist/{analytics → common/analytics}/server/index.d.ts +0 -0
  691. /package/dist/{api → common/api}/index.js.map +0 -0
  692. /package/dist/{api → common/api}/index.mjs.map +0 -0
  693. /package/dist/{config → common/components}/index.js.map +0 -0
  694. /package/dist/{config → common/components}/index.mjs.map +0 -0
  695. /package/dist/{i18n → common/config}/index.js.map +0 -0
  696. /package/dist/{i18n → common/config}/index.mjs.map +0 -0
  697. /package/dist/{config → common/config}/server/index.d.mts +0 -0
  698. /package/dist/{config → common/config}/server/index.d.ts +0 -0
  699. /package/dist/{logger → common/i18n}/index.js.map +0 -0
  700. /package/dist/{logger → common/i18n}/index.mjs.map +0 -0
  701. /package/dist/{ossFile → common/imageCrop}/index.js.map +0 -0
  702. /package/dist/{ossFile → common/imageCrop}/index.mjs.map +0 -0
  703. /package/dist/{ossFile/server → common/ossFile}/index.js.map +0 -0
  704. /package/dist/{ossFile/server → common/ossFile}/index.mjs.map +0 -0
  705. /package/dist/{request → common/ossFile/server}/index.js.map +0 -0
  706. /package/dist/{request → common/ossFile/server}/index.mjs.map +0 -0
  707. /package/dist/{storage → common/universalExport}/index.js.map +0 -0
  708. /package/dist/{storage → common/universalExport}/index.mjs.map +0 -0
  709. /package/dist/{universalExport → common/universalExport/server}/index.js.map +0 -0
  710. /package/dist/{universalExport → common/universalExport/server}/index.mjs.map +0 -0
  711. /package/dist/{universalExport → common/universalFile}/server/index.js.map +0 -0
  712. /package/dist/{universalExport → common/universalFile}/server/index.mjs.map +0 -0
@@ -1,1002 +0,0 @@
1
- import React, { useState, useCallback, useEffect } from 'react';
2
- import { clsx } from 'clsx';
3
- import { AlertCircle, X, CheckCircle2, Upload, Plus, RefreshCw, Star, ExternalLink, Edit, Copy, Download, Trash2, Save, Image } from 'lucide-react';
4
-
5
- // src/testYourself/admin/ConfigManager.tsx
6
-
7
- // src/testYourself/data/defaultResults.ts
8
- var DEFAULT_RESULTS = [
9
- // 动物系列 (1-15)
10
- {
11
- id: "animal-cat",
12
- title: "\u6175\u61D2\u7684\u732B\u54AA \u{1F431}",
13
- description: "\u4F60\u5C31\u50CF\u4E00\u53EA\u4F18\u96C5\u7684\u732B\uFF0C\u72EC\u7ACB\u81EA\u4E3B\uFF0C\u559C\u6B22\u6309\u7167\u81EA\u5DF1\u7684\u8282\u594F\u751F\u6D3B\u3002\u6709\u65F6\u9AD8\u51B7\uFF0C\u6709\u65F6\u7C98\u4EBA\uFF0C\u5145\u6EE1\u795E\u79D8\u9B45\u529B\u3002",
14
- image: "\u{1F431}",
15
- imageType: "emoji"
16
- },
17
- {
18
- id: "animal-dog",
19
- title: "\u5FE0\u8BDA\u7684\u72D7\u72D7 \u{1F415}",
20
- description: "\u4F60\u50CF\u4E00\u53EA\u70ED\u60C5\u7684\u72D7\u72D7\uFF0C\u5BF9\u670B\u53CB\u5FE0\u8BDA\uFF0C\u5145\u6EE1\u6D3B\u529B\u3002\u603B\u662F\u80FD\u7ED9\u5468\u56F4\u7684\u4EBA\u5E26\u6765\u6B22\u4E50\u548C\u6E29\u6696\u3002",
21
- image: "\u{1F415}",
22
- imageType: "emoji"
23
- },
24
- {
25
- id: "animal-panda",
26
- title: "\u53EF\u7231\u7684\u718A\u732B \u{1F43C}",
27
- description: "\u4F60\u5C31\u50CF\u56FD\u5B9D\u718A\u732B\u4E00\u6837\uFF0C\u5446\u840C\u53EF\u7231\uFF0C\u4EBA\u89C1\u4EBA\u7231\u3002\u6162\u8282\u594F\u7684\u751F\u6D3B\u65B9\u5F0F\u8BA9\u4F60\u5145\u6EE1\u6CBB\u6108\u529B\u3002",
28
- image: "\u{1F43C}",
29
- imageType: "emoji"
30
- },
31
- {
32
- id: "animal-fox",
33
- title: "\u673A\u667A\u7684\u72D0\u72F8 \u{1F98A}",
34
- description: "\u806A\u660E\u4F36\u4FD0\uFF0C\u53CD\u5E94\u654F\u6377\u3002\u4F60\u603B\u80FD\u7528\u667A\u6167\u89E3\u51B3\u95EE\u9898\uFF0C\u662F\u56E2\u961F\u4E2D\u7684\u667A\u56CA\u62C5\u5F53\u3002",
35
- image: "\u{1F98A}",
36
- imageType: "emoji"
37
- },
38
- {
39
- id: "animal-owl",
40
- title: "\u777F\u667A\u7684\u732B\u5934\u9E70 \u{1F989}",
41
- description: "\u4F60\u50CF\u732B\u5934\u9E70\u4E00\u6837\u5145\u6EE1\u667A\u6167\uFF0C\u559C\u6B22\u5728\u591C\u6DF1\u4EBA\u9759\u65F6\u601D\u8003\u3002\u7406\u6027\u3001\u6C89\u7A33\u662F\u4F60\u7684\u6807\u7B7E\u3002",
42
- image: "\u{1F989}",
43
- imageType: "emoji"
44
- },
45
- {
46
- id: "animal-dolphin",
47
- title: "\u5FEB\u4E50\u7684\u6D77\u8C5A \u{1F42C}",
48
- description: "\u6D3B\u6CFC\u5F00\u6717\uFF0C\u793E\u4EA4\u8FBE\u4EBA\u3002\u4F60\u7684\u7B11\u5BB9\u80FD\u591F\u611F\u67D3\u8EAB\u8FB9\u7684\u6BCF\u4E00\u4E2A\u4EBA\u3002",
49
- image: "\u{1F42C}",
50
- imageType: "emoji"
51
- },
52
- {
53
- id: "animal-butterfly",
54
- title: "\u81EA\u7531\u7684\u8774\u8776 \u{1F98B}",
55
- description: "\u8FFD\u6C42\u81EA\u7531\uFF0C\u70ED\u7231\u7F8E\u597D\u4E8B\u7269\u3002\u4F60\u7684\u4EBA\u751F\u5145\u6EE1\u8272\u5F69\uFF0C\u4ECE\u4E0D\u88AB\u675F\u7F1A\u3002",
56
- image: "\u{1F98B}",
57
- imageType: "emoji"
58
- },
59
- {
60
- id: "animal-lion",
61
- title: "\u52C7\u6562\u7684\u72EE\u5B50 \u{1F981}",
62
- description: "\u5929\u751F\u7684\u9886\u5BFC\u8005\uFF0C\u52C7\u6562\u679C\u65AD\u3002\u4F60\u7684\u6C14\u573A\u5F3A\u5927\uFF0C\u603B\u80FD\u6FC0\u52B1\u4ED6\u4EBA\u3002",
63
- image: "\u{1F981}",
64
- imageType: "emoji"
65
- },
66
- {
67
- id: "animal-rabbit",
68
- title: "\u6E29\u67D4\u7684\u5154\u5B50 \u{1F430}",
69
- description: "\u5FC3\u5730\u5584\u826F\uFF0C\u6E29\u67D4\u4F53\u8D34\u3002\u4F60\u7684\u5B58\u5728\u5C31\u50CF\u6625\u5929\u7684\u5FAE\u98CE\uFF0C\u8BA9\u4EBA\u611F\u5230\u6E29\u6696\u3002",
70
- image: "\u{1F430}",
71
- imageType: "emoji"
72
- },
73
- {
74
- id: "animal-penguin",
75
- title: "\u5446\u840C\u7684\u4F01\u9E45 \u{1F427}",
76
- description: "\u61A8\u6001\u53EF\u63AC\uFF0C\u8BA4\u771F\u6267\u7740\u3002\u867D\u7136\u770B\u8D77\u6765\u7B28\u62D9\uFF0C\u4F46\u505A\u4E8B\u4E00\u4E1D\u4E0D\u82DF\u3002",
77
- image: "\u{1F427}",
78
- imageType: "emoji"
79
- },
80
- {
81
- id: "animal-eagle",
82
- title: "\u7FF1\u7FD4\u7684\u96C4\u9E70 \u{1F985}",
83
- description: "\u76EE\u5149\u8FDC\u5927\uFF0C\u5FD7\u5411\u9AD8\u8FDC\u3002\u4F60\u603B\u662F\u80FD\u770B\u5230\u522B\u4EBA\u770B\u4E0D\u5230\u7684\u673A\u4F1A\u3002",
84
- image: "\u{1F985}",
85
- imageType: "emoji"
86
- },
87
- {
88
- id: "animal-koala",
89
- title: "\u6175\u61D2\u7684\u8003\u62C9 \u{1F428}",
90
- description: "\u4F5B\u7CFB\u751F\u6D3B\uFF0C\u77E5\u8DB3\u5E38\u4E50\u3002\u4F60\u61C2\u5F97\u4EAB\u53D7\u5F53\u4E0B\uFF0C\u6D3B\u5728\u81EA\u5DF1\u7684\u8282\u594F\u91CC\u3002",
91
- image: "\u{1F428}",
92
- imageType: "emoji"
93
- },
94
- {
95
- id: "animal-sloth",
96
- title: "\u60A0\u95F2\u7684\u6811\u61D2 \u{1F9A5}",
97
- description: "\u6162\u6162\u6765\uFF0C\u6BD4\u8F83\u5FEB\u3002\u4F60\u76F8\u4FE1\u6025\u4E0D\u6765\u7684\u4E8B\u5C31\u4E0D\u8981\u6025\uFF0C\u4FDD\u6301\u81EA\u5DF1\u7684pace\u3002",
98
- image: "\u{1F9A5}",
99
- imageType: "emoji"
100
- },
101
- {
102
- id: "animal-unicorn",
103
- title: "\u68A6\u5E7B\u7684\u72EC\u89D2\u517D \u{1F984}",
104
- description: "\u5145\u6EE1\u5E7B\u60F3\uFF0C\u8FFD\u6C42\u5B8C\u7F8E\u3002\u4F60\u7684\u4E16\u754C\u4E94\u5F69\u6591\u6593\uFF0C\u603B\u6709\u72EC\u7279\u7684\u60F3\u6CD5\u3002",
105
- image: "\u{1F984}",
106
- imageType: "emoji"
107
- },
108
- {
109
- id: "animal-dragon",
110
- title: "\u795E\u79D8\u7684\u9F99 \u{1F409}",
111
- description: "\u5F3A\u5927\u800C\u795E\u79D8\uFF0C\u5145\u6EE1\u9B45\u529B\u3002\u4F60\u662F\u4F20\u8BF4\u4E2D\u7684\u5B58\u5728\uFF0C\u4EE4\u4EBA\u5411\u5F80\u3002",
112
- image: "\u{1F409}",
113
- imageType: "emoji"
114
- },
115
- // 星球系列 (16-25)
116
- {
117
- id: "planet-sun",
118
- title: "\u6E29\u6696\u7684\u592A\u9633 \u2600\uFE0F",
119
- description: "\u4F60\u5C31\u50CF\u592A\u9633\u4E00\u6837\uFF0C\u662F\u56E2\u961F\u7684\u80FD\u91CF\u6765\u6E90\uFF0C\u6E29\u6696\u7740\u5468\u56F4\u7684\u6BCF\u4E2A\u4EBA\u3002",
120
- image: "\u2600\uFE0F",
121
- imageType: "emoji"
122
- },
123
- {
124
- id: "planet-moon",
125
- title: "\u6E29\u67D4\u7684\u6708\u4EAE \u{1F319}",
126
- description: "\u5B89\u9759\u800C\u6E29\u67D4\uFF0C\u5728\u9ED1\u6697\u4E2D\u7ED9\u4EBA\u5149\u660E\u3002\u4F60\u662F\u591C\u665A\u6700\u7F8E\u7684\u966A\u4F34\u3002",
127
- image: "\u{1F319}",
128
- imageType: "emoji"
129
- },
130
- {
131
- id: "planet-star",
132
- title: "\u95EA\u8000\u7684\u661F\u661F \u2B50",
133
- description: "\u867D\u7136\u6E3A\u5C0F\uFF0C\u4F46\u59CB\u7EC8\u95EA\u8000\u3002\u4F60\u7528\u81EA\u5DF1\u7684\u65B9\u5F0F\u53D1\u5149\u53D1\u70ED\u3002",
134
- image: "\u2B50",
135
- imageType: "emoji"
136
- },
137
- {
138
- id: "planet-earth",
139
- title: "\u5305\u5BB9\u7684\u5730\u7403 \u{1F30D}",
140
- description: "\u5305\u5BB9\u4E07\u7269\uFF0C\u751F\u673A\u52C3\u52C3\u3002\u4F60\u6709\u7740\u5BBD\u5E7F\u7684\u80F8\u6000\u548C\u65E0\u9650\u7684\u53EF\u80FD\u3002",
141
- image: "\u{1F30D}",
142
- imageType: "emoji"
143
- },
144
- {
145
- id: "planet-saturn",
146
- title: "\u72EC\u7279\u7684\u571F\u661F \u{1FA90}",
147
- description: "\u4E0E\u4F17\u4E0D\u540C\uFF0C\u81EA\u6210\u4E00\u683C\u3002\u4F60\u7684\u4E2A\u6027\u5C31\u50CF\u571F\u661F\u73AF\u4E00\u6837\u4EE4\u4EBA\u7740\u8FF7\u3002",
148
- image: "\u{1FA90}",
149
- imageType: "emoji"
150
- },
151
- {
152
- id: "weather-rainbow",
153
- title: "\u7EDA\u4E3D\u7684\u5F69\u8679 \u{1F308}",
154
- description: "\u98CE\u96E8\u8FC7\u540E\u89C1\u5F69\u8679\uFF0C\u4F60\u603B\u80FD\u5728\u56F0\u96BE\u540E\u770B\u5230\u5E0C\u671B\u548C\u7F8E\u597D\u3002",
155
- image: "\u{1F308}",
156
- imageType: "emoji"
157
- },
158
- {
159
- id: "weather-cloud",
160
- title: "\u98D8\u9038\u7684\u4E91\u6735 \u2601\uFE0F",
161
- description: "\u81EA\u7531\u81EA\u5728\uFF0C\u968F\u98CE\u98D8\u8361\u3002\u4F60\u4E0D\u88AB\u5B9A\u4E49\uFF0C\u6C38\u8FDC\u5145\u6EE1\u53EF\u80FD\u3002",
162
- image: "\u2601\uFE0F",
163
- imageType: "emoji"
164
- },
165
- {
166
- id: "weather-lightning",
167
- title: "\u95EA\u7535 \u26A1",
168
- description: "\u7206\u53D1\u529B\u5F3A\uFF0C\u884C\u52A8\u8FC5\u901F\u3002\u4F60\u7684\u80FD\u91CF\u5C31\u50CF\u95EA\u7535\u4E00\u6837\u4EE4\u4EBA\u9707\u64BC\u3002",
169
- image: "\u26A1",
170
- imageType: "emoji"
171
- },
172
- {
173
- id: "weather-snowflake",
174
- title: "\u72EC\u7279\u7684\u96EA\u82B1 \u2744\uFE0F",
175
- description: "\u4E16\u754C\u4E0A\u6CA1\u6709\u4E24\u7247\u76F8\u540C\u7684\u96EA\u82B1\uFF0C\u4F60\u4E5F\u662F\u72EC\u4E00\u65E0\u4E8C\u7684\u5B58\u5728\u3002",
176
- image: "\u2744\uFE0F",
177
- imageType: "emoji"
178
- },
179
- {
180
- id: "weather-fire",
181
- title: "\u70ED\u60C5\u7684\u706B\u7130 \u{1F525}",
182
- description: "\u70ED\u60C5\u4F3C\u706B\uFF0C\u5145\u6EE1\u6FC0\u60C5\u3002\u4F60\u7684\u5B58\u5728\u80FD\u70B9\u71C3\u5468\u56F4\u7684\u6C14\u6C1B\u3002",
183
- image: "\u{1F525}",
184
- imageType: "emoji"
185
- },
186
- // 植物系列 (26-35)
187
- {
188
- id: "plant-tree",
189
- title: "\u575A\u97E7\u7684\u5927\u6811 \u{1F333}",
190
- description: "\u7A33\u91CD\u53EF\u9760\uFF0C\u6839\u57FA\u6DF1\u539A\u3002\u4F60\u662F\u5927\u5BB6\u53EF\u4EE5\u4F9D\u9760\u7684\u5B58\u5728\u3002",
191
- image: "\u{1F333}",
192
- imageType: "emoji"
193
- },
194
- {
195
- id: "plant-flower",
196
- title: "\u7F8E\u4E3D\u7684\u82B1\u6735 \u{1F338}",
197
- description: "\u7EFD\u653E\u81EA\u6211\uFF0C\u7F8E\u4E3D\u52A8\u4EBA\u3002\u4F60\u7684\u5B58\u5728\u5C31\u662F\u4E00\u9053\u9753\u4E3D\u7684\u98CE\u666F\u3002",
198
- image: "\u{1F338}",
199
- imageType: "emoji"
200
- },
201
- {
202
- id: "plant-sunflower",
203
- title: "\u5411\u9633\u7684\u5411\u65E5\u8475 \u{1F33B}",
204
- description: "\u6C38\u8FDC\u5411\u7740\u9633\u5149\uFF0C\u79EF\u6781\u5411\u4E0A\u3002\u4F60\u7684\u4E50\u89C2\u611F\u67D3\u7740\u6BCF\u4E2A\u4EBA\u3002",
205
- image: "\u{1F33B}",
206
- imageType: "emoji"
207
- },
208
- {
209
- id: "plant-rose",
210
- title: "\u4F18\u96C5\u7684\u73AB\u7470 \u{1F339}",
211
- description: "\u9AD8\u8D35\u4F18\u96C5\uFF0C\u5145\u6EE1\u9B45\u529B\u3002\u867D\u6709\u523A\u4F46\u66F4\u6709\u7F8E\u4E3D\u3002",
212
- image: "\u{1F339}",
213
- imageType: "emoji"
214
- },
215
- {
216
- id: "plant-cactus",
217
- title: "\u575A\u5F3A\u7684\u4ED9\u4EBA\u638C \u{1F335}",
218
- description: "\u5728\u8270\u96BE\u73AF\u5883\u4E2D\u4F9D\u7136\u575A\u5F3A\u3002\u4F60\u7684\u97E7\u6027\u4EE4\u4EBA\u656C\u4F69\u3002",
219
- image: "\u{1F335}",
220
- imageType: "emoji"
221
- },
222
- {
223
- id: "plant-clover",
224
- title: "\u5E78\u8FD0\u7684\u56DB\u53F6\u8349 \u{1F340}",
225
- description: "\u5E78\u8FD0\u7684\u8C61\u5F81\uFF0C\u603B\u80FD\u7ED9\u4EBA\u5E26\u6765\u597D\u8FD0\u548C\u5E0C\u671B\u3002",
226
- image: "\u{1F340}",
227
- imageType: "emoji"
228
- },
229
- {
230
- id: "plant-maple",
231
- title: "\u6D6A\u6F2B\u7684\u67AB\u53F6 \u{1F341}",
232
- description: "\u6D6A\u6F2B\u800C\u8BD7\u610F\uFF0C\u4F60\u7684\u4E16\u754C\u5145\u6EE1\u827A\u672F\u6C14\u606F\u3002",
233
- image: "\u{1F341}",
234
- imageType: "emoji"
235
- },
236
- {
237
- id: "plant-mushroom",
238
- title: "\u795E\u79D8\u7684\u8611\u83C7 \u{1F344}",
239
- description: "\u4F4E\u8C03\u795E\u79D8\uFF0C\u603B\u6709\u610F\u60F3\u4E0D\u5230\u7684\u60CA\u559C\u3002",
240
- image: "\u{1F344}",
241
- imageType: "emoji"
242
- },
243
- {
244
- id: "plant-cherry",
245
- title: "\u6D6A\u6F2B\u7684\u6A31\u82B1 \u{1F338}",
246
- description: "\u77ED\u6682\u800C\u7F8E\u597D\uFF0C\u4F60\u73CD\u60DC\u6BCF\u4E00\u4E2A\u77AC\u95F4\u7684\u7F8E\u4E3D\u3002",
247
- image: "\u{1F338}",
248
- imageType: "emoji"
249
- },
250
- {
251
- id: "plant-bamboo",
252
- title: "\u575A\u97E7\u7684\u7AF9\u5B50 \u{1F38B}",
253
- description: "\u865A\u5FC3\u6709\u8282\uFF0C\u6108\u632B\u6108\u52C7\u3002\u4F60\u7684\u7CBE\u795E\u503C\u5F97\u5B66\u4E60\u3002",
254
- image: "\u{1F38B}",
255
- imageType: "emoji"
256
- },
257
- // 食物系列 (36-45)
258
- {
259
- id: "food-coffee",
260
- title: "\u63D0\u795E\u7684\u5496\u5561 \u2615",
261
- description: "\u4F60\u5C31\u50CF\u5496\u5561\uFF0C\u662F\u5927\u5BB6\u7684\u80FD\u91CF\u6765\u6E90\uFF0C\u5E2E\u52A9\u4ED6\u4EBA\u4FDD\u6301\u6D3B\u529B\u3002",
262
- image: "\u2615",
263
- imageType: "emoji"
264
- },
265
- {
266
- id: "food-pizza",
267
- title: "\u5FEB\u4E50\u7684\u62AB\u8428 \u{1F355}",
268
- description: "\u4EBA\u89C1\u4EBA\u7231\uFF0C\u603B\u80FD\u5E26\u6765\u5FEB\u4E50\u3002\u4F60\u662F\u805A\u4F1A\u7684\u7075\u9B42\u3002",
269
- image: "\u{1F355}",
270
- imageType: "emoji"
271
- },
272
- {
273
- id: "food-cookie",
274
- title: "\u751C\u871C\u7684\u997C\u5E72 \u{1F36A}",
275
- description: "\u6E29\u6696\u751C\u871C\uFF0C\u7ED9\u4EBAcomfort\u3002\u4F60\u662F\u6700\u597D\u7684\u6CBB\u6108\u7CFB\u5B58\u5728\u3002",
276
- image: "\u{1F36A}",
277
- imageType: "emoji"
278
- },
279
- {
280
- id: "food-icecream",
281
- title: "\u6E05\u51C9\u7684\u51B0\u6DC7\u6DCB \u{1F366}",
282
- description: "\u751C\u7F8E\u53EF\u7231\uFF0C\u5728\u708E\u70ED\u65F6\u7ED9\u4EBA\u6E05\u51C9\u3002\u4F60\u603B\u80FD\u5728\u5173\u952E\u65F6\u523B\u51FA\u73B0\u3002",
283
- image: "\u{1F366}",
284
- imageType: "emoji"
285
- },
286
- {
287
- id: "food-honey",
288
- title: "\u751C\u871C\u7684\u8702\u871C \u{1F36F}",
289
- description: "\u5929\u7136\u751C\u7F8E\uFF0C\u7EAF\u7CB9\u53EF\u7231\u3002\u4F60\u7684\u5B58\u5728\u5C31\u662F\u5E78\u798F\u7684\u5473\u9053\u3002",
290
- image: "\u{1F36F}",
291
- imageType: "emoji"
292
- },
293
- {
294
- id: "food-sushi",
295
- title: "\u7CBE\u81F4\u7684\u5BFF\u53F8 \u{1F363}",
296
- description: "\u7CBE\u81F4\u4F18\u96C5\uFF0C\u6CE8\u91CD\u7EC6\u8282\u3002\u4F60\u5BF9\u751F\u6D3B\u6709\u7740\u72EC\u7279\u7684\u54C1\u5473\u3002",
297
- image: "\u{1F363}",
298
- imageType: "emoji"
299
- },
300
- {
301
- id: "food-cake",
302
- title: "\u751C\u7F8E\u7684\u86CB\u7CD5 \u{1F382}",
303
- description: "\u751C\u871C\u7F8E\u597D\uFF0C\u662F\u5E86\u795D\u7684\u8C61\u5F81\u3002\u4F60\u603B\u80FD\u7ED9\u4EBA\u5E26\u6765\u60CA\u559C\u3002",
304
- image: "\u{1F382}",
305
- imageType: "emoji"
306
- },
307
- {
308
- id: "food-donut",
309
- title: "\u53EF\u7231\u7684\u751C\u751C\u5708 \u{1F369}",
310
- description: "\u5706\u5706\u6EE1\u6EE1\uFF0C\u751C\u871C\u53EF\u7231\u3002\u4F60\u7684\u5B58\u5728\u8BA9\u751F\u6D3B\u66F4\u7F8E\u597D\u3002",
311
- image: "\u{1F369}",
312
- imageType: "emoji"
313
- },
314
- {
315
- id: "food-lollipop",
316
- title: "\u7AE5\u771F\u7684\u68D2\u68D2\u7CD6 \u{1F36D}",
317
- description: "\u4FDD\u6301\u7AE5\u5FC3\uFF0C\u6C38\u8FDC\u5E74\u8F7B\u3002\u4F60\u7684\u7EAF\u771F\u4EE4\u4EBA\u7FA1\u6155\u3002",
318
- image: "\u{1F36D}",
319
- imageType: "emoji"
320
- },
321
- {
322
- id: "food-watermelon",
323
- title: "\u6E05\u723D\u7684\u897F\u74DC \u{1F349}",
324
- description: "\u6E05\u723D\u89E3\u6E34\uFF0C\u590F\u65E5\u5FC5\u5907\u3002\u4F60\u603B\u80FD\u5E26\u6765\u6E05\u65B0\u7684\u611F\u89C9\u3002",
325
- image: "\u{1F349}",
326
- imageType: "emoji"
327
- }
328
- ];
329
- if (DEFAULT_RESULTS.length !== 45) {
330
- console.warn("\u7ED3\u679C\u6570\u636E\u96C6\u5E94\u5305\u542B45\u9879\uFF0C\u5F53\u524D: " + DEFAULT_RESULTS.length);
331
- }
332
-
333
- // src/testYourself/admin/ConfigManager.tsx
334
- var ConfigManager = ({
335
- configService,
336
- onConfigChange,
337
- className = "",
338
- onImageUpload
339
- }) => {
340
- const [configs, setConfigs] = useState([]);
341
- const [selectedConfig, setSelectedConfig] = useState(null);
342
- const [isEditing, setIsEditing] = useState(false);
343
- const [isCreating, setIsCreating] = useState(false);
344
- const [loading, setLoading] = useState(true);
345
- const [error, setError] = useState(null);
346
- const [success, setSuccess] = useState(null);
347
- const [editForm, setEditForm] = useState({
348
- name: "",
349
- description: "",
350
- gameTitle: "",
351
- gameDescription: "",
352
- buttonText: "\u957F\u6309\u5F00\u59CB\u6D4B\u8BD5",
353
- longPressDuration: 2e3,
354
- results: []
355
- });
356
- const loadConfigs = useCallback(async () => {
357
- try {
358
- setLoading(true);
359
- const allConfigs = await configService.getAllConfigs();
360
- setConfigs(allConfigs);
361
- onConfigChange?.(allConfigs);
362
- } catch (err) {
363
- setError("\u52A0\u8F7D\u914D\u7F6E\u5931\u8D25: " + err.message);
364
- } finally {
365
- setLoading(false);
366
- }
367
- }, [configService, onConfigChange]);
368
- useEffect(() => {
369
- loadConfigs();
370
- }, [loadConfigs]);
371
- const handleStartCreate = () => {
372
- setEditForm({
373
- name: "\u65B0\u914D\u7F6E",
374
- description: "",
375
- gameTitle: "\u6D4B\u6D4B\u4F60\u662F\u4EC0\u4E48",
376
- gameDescription: "\u957F\u6309\u6309\u94AE\uFF0C\u53D1\u73B0\u4F60\u7684\u4E13\u5C5E\u5C5E\u6027",
377
- buttonText: "\u957F\u6309\u5F00\u59CB\u6D4B\u8BD5",
378
- longPressDuration: 2e3,
379
- results: []
380
- });
381
- setIsCreating(true);
382
- setIsEditing(true);
383
- setSelectedConfig(null);
384
- };
385
- const handleStartEdit = (config) => {
386
- setEditForm({
387
- name: config.name,
388
- description: config.description || "",
389
- gameTitle: config.config.gameTitle,
390
- gameDescription: config.config.gameDescription || "",
391
- buttonText: config.config.buttonText || "\u957F\u6309\u5F00\u59CB\u6D4B\u8BD5",
392
- longPressDuration: config.config.longPressDuration || 2e3,
393
- results: config.config.results
394
- });
395
- setIsCreating(false);
396
- setIsEditing(true);
397
- setSelectedConfig(config);
398
- };
399
- const handleCancelEdit = () => {
400
- setIsEditing(false);
401
- setIsCreating(false);
402
- setSelectedConfig(null);
403
- setError(null);
404
- };
405
- const handleSave = async () => {
406
- try {
407
- setError(null);
408
- if (!editForm.name.trim()) {
409
- setError("\u8BF7\u8F93\u5165\u914D\u7F6E\u540D\u79F0");
410
- return;
411
- }
412
- if (!editForm.gameTitle.trim()) {
413
- setError("\u8BF7\u8F93\u5165\u6E38\u620F\u6807\u9898");
414
- return;
415
- }
416
- if (editForm.results.length === 0) {
417
- setError("\u8BF7\u81F3\u5C11\u6DFB\u52A0\u4E00\u4E2A\u7ED3\u679C\u9879");
418
- return;
419
- }
420
- const testConfig = {
421
- gameTitle: editForm.gameTitle,
422
- gameDescription: editForm.gameDescription,
423
- buttonText: editForm.buttonText,
424
- longPressDuration: editForm.longPressDuration,
425
- results: editForm.results
426
- };
427
- if (isCreating) {
428
- await configService.createConfig(
429
- editForm.name,
430
- testConfig,
431
- editForm.description
432
- );
433
- setSuccess("\u521B\u5EFA\u914D\u7F6E\u6210\u529F\uFF01");
434
- } else if (selectedConfig) {
435
- await configService.updateConfig(selectedConfig.id, {
436
- name: editForm.name,
437
- description: editForm.description,
438
- config: testConfig
439
- });
440
- setSuccess("\u66F4\u65B0\u914D\u7F6E\u6210\u529F\uFF01");
441
- }
442
- await loadConfigs();
443
- handleCancelEdit();
444
- setTimeout(() => setSuccess(null), 3e3);
445
- } catch (err) {
446
- setError("\u4FDD\u5B58\u5931\u8D25: " + err.message);
447
- }
448
- };
449
- const handleDelete = async (id) => {
450
- if (!confirm("\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u914D\u7F6E\u5417\uFF1F")) return;
451
- try {
452
- await configService.deleteConfig(id);
453
- await loadConfigs();
454
- setSuccess("\u5220\u9664\u6210\u529F\uFF01");
455
- setTimeout(() => setSuccess(null), 3e3);
456
- } catch (err) {
457
- setError("\u5220\u9664\u5931\u8D25: " + err.message);
458
- }
459
- };
460
- const handleDuplicate = async (id) => {
461
- try {
462
- await configService.duplicateConfig(id);
463
- await loadConfigs();
464
- setSuccess("\u590D\u5236\u6210\u529F\uFF01");
465
- setTimeout(() => setSuccess(null), 3e3);
466
- } catch (err) {
467
- setError("\u590D\u5236\u5931\u8D25: " + err.message);
468
- }
469
- };
470
- const handleSetDefault = async (id) => {
471
- try {
472
- await configService.setDefaultConfig(id);
473
- await loadConfigs();
474
- setSuccess("\u8BBE\u7F6E\u9ED8\u8BA4\u914D\u7F6E\u6210\u529F\uFF01");
475
- setTimeout(() => setSuccess(null), 3e3);
476
- } catch (err) {
477
- setError("\u8BBE\u7F6E\u5931\u8D25: " + err.message);
478
- }
479
- };
480
- const handleExport = async (id) => {
481
- try {
482
- const jsonString = await configService.exportConfig(id);
483
- const blob = new Blob([jsonString], { type: "application/json" });
484
- const url = URL.createObjectURL(blob);
485
- const a = document.createElement("a");
486
- a.href = url;
487
- a.download = "config_" + id + ".json";
488
- document.body.appendChild(a);
489
- a.click();
490
- document.body.removeChild(a);
491
- URL.revokeObjectURL(url);
492
- setSuccess("\u5BFC\u51FA\u6210\u529F\uFF01");
493
- setTimeout(() => setSuccess(null), 3e3);
494
- } catch (err) {
495
- setError("\u5BFC\u51FA\u5931\u8D25: " + err.message);
496
- }
497
- };
498
- const handleImport = async () => {
499
- const input = document.createElement("input");
500
- input.type = "file";
501
- input.accept = ".json";
502
- input.onchange = async (e) => {
503
- const file = e.target.files?.[0];
504
- if (!file) return;
505
- try {
506
- const text = await file.text();
507
- await configService.importConfig(text);
508
- await loadConfigs();
509
- setSuccess("\u5BFC\u5165\u6210\u529F\uFF01");
510
- setTimeout(() => setSuccess(null), 3e3);
511
- } catch (err) {
512
- setError("\u5BFC\u5165\u5931\u8D25: " + err.message);
513
- }
514
- };
515
- input.click();
516
- };
517
- const handleAddResult = () => {
518
- const newResult = {
519
- id: "temp_" + Date.now(),
520
- _tempId: "temp_" + Date.now(),
521
- title: "\u65B0\u7ED3\u679C",
522
- description: "\u8FD9\u662F\u4E00\u4E2A\u65B0\u7684\u7ED3\u679C\u63CF\u8FF0",
523
- image: "\u{1F389}",
524
- imageType: "emoji"
525
- };
526
- setEditForm({
527
- ...editForm,
528
- results: [...editForm.results, newResult]
529
- });
530
- };
531
- const handleDeleteResult = (index) => {
532
- const newResults = [...editForm.results];
533
- newResults.splice(index, 1);
534
- setEditForm({ ...editForm, results: newResults });
535
- };
536
- const handleUpdateResult = (index, updates) => {
537
- const newResults = [...editForm.results];
538
- newResults[index] = { ...newResults[index], ...updates };
539
- setEditForm({ ...editForm, results: newResults });
540
- };
541
- const handleResultImageUpload = async (index, file) => {
542
- try {
543
- if (!onImageUpload) {
544
- const reader = new FileReader();
545
- reader.onload = (e) => {
546
- const base64 = e.target?.result;
547
- handleUpdateResult(index, {
548
- image: base64,
549
- imageType: "url"
550
- });
551
- };
552
- reader.readAsDataURL(file);
553
- } else {
554
- const url = await onImageUpload(file);
555
- handleUpdateResult(index, {
556
- image: url,
557
- imageType: "url"
558
- });
559
- }
560
- } catch (err) {
561
- setError("\u4E0A\u4F20\u56FE\u7247\u5931\u8D25: " + err.message);
562
- }
563
- };
564
- const handleUseDefaultResults = () => {
565
- if (confirm("\u786E\u5B9A\u8981\u4F7F\u7528\u9ED8\u8BA4\u768445\u4E2A\u7ED3\u679C\u5417\uFF1F\u8FD9\u5C06\u66FF\u6362\u5F53\u524D\u7684\u6240\u6709\u7ED3\u679C\u3002")) {
566
- setEditForm({ ...editForm, results: DEFAULT_RESULTS });
567
- }
568
- };
569
- const renderConfigList = () => /* @__PURE__ */ React.createElement("div", { className: "space-y-4" }, configs.map((config) => /* @__PURE__ */ React.createElement(
570
- "div",
571
- {
572
- key: config.id,
573
- className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm p-4 border border-gray-200 dark:border-gray-700 hover:shadow-md transition-shadow"
574
- },
575
- /* @__PURE__ */ React.createElement("div", { className: "flex items-start justify-between" }, /* @__PURE__ */ React.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2 mb-1" }, /* @__PURE__ */ React.createElement("h3", { className: "text-lg font-semibold text-gray-900 dark:text-white" }, config.name), config.isDefault && /* @__PURE__ */ React.createElement("span", { className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200" }, /* @__PURE__ */ React.createElement(Star, { className: "w-3 h-3" }), "\u9ED8\u8BA4")), config.description && /* @__PURE__ */ React.createElement("p", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2" }, config.description), /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400" }, /* @__PURE__ */ React.createElement("span", null, "\u7ED3\u679C\u6570: ", config.config.results.length), /* @__PURE__ */ React.createElement("span", null, "\u521B\u5EFA: ", new Date(config.createdAt).toLocaleDateString()))), /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React.createElement(
576
- "button",
577
- {
578
- onClick: () => handleSetDefault(config.id),
579
- disabled: config.isDefault,
580
- className: "p-2 text-gray-600 hover:text-yellow-600 disabled:opacity-50 disabled:cursor-not-allowed",
581
- title: "\u8BBE\u4E3A\u9ED8\u8BA4"
582
- },
583
- /* @__PURE__ */ React.createElement(Star, { className: "w-5 h-5" })
584
- ), /* @__PURE__ */ React.createElement(
585
- "button",
586
- {
587
- onClick: () => handleStartEdit(config),
588
- className: "p-2 text-gray-600 hover:text-blue-600",
589
- title: "\u7F16\u8F91"
590
- },
591
- /* @__PURE__ */ React.createElement(Edit, { className: "w-5 h-5" })
592
- ), /* @__PURE__ */ React.createElement(
593
- "button",
594
- {
595
- onClick: () => handleDuplicate(config.id),
596
- className: "p-2 text-gray-600 hover:text-green-600",
597
- title: "\u590D\u5236"
598
- },
599
- /* @__PURE__ */ React.createElement(Copy, { className: "w-5 h-5" })
600
- ), /* @__PURE__ */ React.createElement(
601
- "button",
602
- {
603
- onClick: () => handleExport(config.id),
604
- className: "p-2 text-gray-600 hover:text-purple-600",
605
- title: "\u5BFC\u51FA"
606
- },
607
- /* @__PURE__ */ React.createElement(Download, { className: "w-5 h-5" })
608
- ), /* @__PURE__ */ React.createElement(
609
- "button",
610
- {
611
- onClick: () => handleDelete(config.id),
612
- className: "p-2 text-gray-600 hover:text-red-600",
613
- title: "\u5220\u9664"
614
- },
615
- /* @__PURE__ */ React.createElement(Trash2, { className: "w-5 h-5" })
616
- )))
617
- )));
618
- const renderResultEditor = (result, index) => /* @__PURE__ */ React.createElement(
619
- "div",
620
- {
621
- key: result._tempId || result.id,
622
- className: "bg-gray-50 dark:bg-gray-700 rounded-lg p-4 space-y-3"
623
- },
624
- /* @__PURE__ */ React.createElement("div", { className: "flex items-start justify-between" }, /* @__PURE__ */ React.createElement("h4", { className: "text-sm font-medium text-gray-700 dark:text-gray-300" }, "\u7ED3\u679C #", index + 1), /* @__PURE__ */ React.createElement(
625
- "button",
626
- {
627
- onClick: () => handleDeleteResult(index),
628
- className: "text-red-600 hover:text-red-700"
629
- },
630
- /* @__PURE__ */ React.createElement(Trash2, { className: "w-4 h-4" })
631
- )),
632
- /* @__PURE__ */ React.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-3" }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1" }, "\u6807\u9898"), /* @__PURE__ */ React.createElement(
633
- "input",
634
- {
635
- type: "text",
636
- value: result.title,
637
- onChange: (e) => handleUpdateResult(index, { title: e.target.value }),
638
- className: "w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-800 dark:text-white",
639
- placeholder: "\u4F8B\u5982: \u53EF\u7231\u7684\u732B\u54AA"
640
- }
641
- )), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1" }, "\u56FE\u7247/Emoji"), /* @__PURE__ */ React.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React.createElement(
642
- "input",
643
- {
644
- type: "text",
645
- value: result.image,
646
- onChange: (e) => handleUpdateResult(index, { image: e.target.value }),
647
- className: "flex-1 px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-800 dark:text-white",
648
- placeholder: "\u{1F389} \u6216 URL"
649
- }
650
- ), /* @__PURE__ */ React.createElement("label", { className: "cursor-pointer inline-flex items-center justify-center px-3 py-2 bg-blue-50 dark:bg-blue-900 text-blue-600 dark:text-blue-200 rounded-lg hover:bg-blue-100 dark:hover:bg-blue-800" }, /* @__PURE__ */ React.createElement(Image, { className: "w-5 h-5" }), /* @__PURE__ */ React.createElement(
651
- "input",
652
- {
653
- type: "file",
654
- accept: "image/*",
655
- className: "hidden",
656
- onChange: (e) => {
657
- const file = e.target.files?.[0];
658
- if (file) handleResultImageUpload(index, file);
659
- }
660
- }
661
- ))))),
662
- /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1" }, "\u63CF\u8FF0"), /* @__PURE__ */ React.createElement(
663
- "textarea",
664
- {
665
- value: result.description,
666
- onChange: (e) => handleUpdateResult(index, { description: e.target.value }),
667
- rows: 2,
668
- className: "w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-800 dark:text-white",
669
- placeholder: "\u8FD9\u4E2A\u7ED3\u679C\u7684\u8BE6\u7EC6\u63CF\u8FF0..."
670
- }
671
- )),
672
- result.image && /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2 p-2 bg-white dark:bg-gray-600 rounded border border-gray-200 dark:border-gray-500" }, /* @__PURE__ */ React.createElement("span", { className: "text-sm text-gray-500 dark:text-gray-400" }, "\u9884\u89C8:"), result.imageType === "emoji" ? /* @__PURE__ */ React.createElement("span", { className: "text-2xl" }, result.image) : /* @__PURE__ */ React.createElement("img", { src: result.image, alt: result.title, className: "w-8 h-8 object-cover rounded" }), /* @__PURE__ */ React.createElement("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300" }, result.title))
673
- );
674
- const renderEditForm = () => /* @__PURE__ */ React.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React.createElement("h2", { className: "text-2xl font-bold text-gray-900 dark:text-white" }, isCreating ? "\u521B\u5EFA\u65B0\u914D\u7F6E" : "\u7F16\u8F91\u914D\u7F6E"), /* @__PURE__ */ React.createElement(
675
- "button",
676
- {
677
- onClick: handleCancelEdit,
678
- className: "p-2 text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-200"
679
- },
680
- /* @__PURE__ */ React.createElement(X, { className: "w-6 h-6" })
681
- )), /* @__PURE__ */ React.createElement("div", { className: "space-y-4 bg-white dark:bg-gray-800 rounded-lg p-6 shadow-sm border border-gray-200 dark:border-gray-700" }, /* @__PURE__ */ React.createElement("h3", { className: "text-lg font-semibold text-gray-900 dark:text-white mb-4" }, "\u57FA\u672C\u4FE1\u606F"), /* @__PURE__ */ React.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4" }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2" }, "\u914D\u7F6E\u540D\u79F0 *"), /* @__PURE__ */ React.createElement(
682
- "input",
683
- {
684
- type: "text",
685
- value: editForm.name,
686
- onChange: (e) => setEditForm({ ...editForm, name: e.target.value }),
687
- className: "w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white",
688
- placeholder: "\u4F8B\u5982: \u52A8\u7269\u4E3B\u9898\u6D4B\u8BD5"
689
- }
690
- )), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2" }, "\u6E38\u620F\u6807\u9898 *"), /* @__PURE__ */ React.createElement(
691
- "input",
692
- {
693
- type: "text",
694
- value: editForm.gameTitle,
695
- onChange: (e) => setEditForm({ ...editForm, gameTitle: e.target.value }),
696
- className: "w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white",
697
- placeholder: "\u4F8B\u5982: \u6D4B\u6D4B\u4F60\u662F\u4EC0\u4E48\u52A8\u7269"
698
- }
699
- ))), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2" }, "\u914D\u7F6E\u63CF\u8FF0"), /* @__PURE__ */ React.createElement(
700
- "textarea",
701
- {
702
- value: editForm.description,
703
- onChange: (e) => setEditForm({ ...editForm, description: e.target.value }),
704
- rows: 2,
705
- className: "w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white",
706
- placeholder: "\u7B80\u8981\u63CF\u8FF0\u8FD9\u4E2A\u914D\u7F6E\u7684\u7528\u9014..."
707
- }
708
- )), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2" }, "\u6E38\u620F\u63CF\u8FF0"), /* @__PURE__ */ React.createElement(
709
- "input",
710
- {
711
- type: "text",
712
- value: editForm.gameDescription,
713
- onChange: (e) => setEditForm({ ...editForm, gameDescription: e.target.value }),
714
- className: "w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white",
715
- placeholder: "\u4F8B\u5982: \u957F\u6309\u6309\u94AE\uFF0C\u53D1\u73B0\u4F60\u7684\u4E13\u5C5E\u5C5E\u6027"
716
- }
717
- )), /* @__PURE__ */ React.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4" }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2" }, "\u6309\u94AE\u6587\u672C"), /* @__PURE__ */ React.createElement(
718
- "input",
719
- {
720
- type: "text",
721
- value: editForm.buttonText,
722
- onChange: (e) => setEditForm({ ...editForm, buttonText: e.target.value }),
723
- className: "w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"
724
- }
725
- )), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2" }, "\u957F\u6309\u65F6\u95F4 (\u6BEB\u79D2)"), /* @__PURE__ */ React.createElement(
726
- "input",
727
- {
728
- type: "number",
729
- value: editForm.longPressDuration,
730
- onChange: (e) => setEditForm({ ...editForm, longPressDuration: parseInt(e.target.value) || 2e3 }),
731
- className: "w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white",
732
- min: "500",
733
- step: "100"
734
- }
735
- )))), /* @__PURE__ */ React.createElement("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-6 shadow-sm border border-gray-200 dark:border-gray-700" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-between mb-4" }, /* @__PURE__ */ React.createElement("h3", { className: "text-lg font-semibold text-gray-900 dark:text-white" }, "\u7ED3\u679C\u5217\u8868 (", editForm.results.length, ")"), /* @__PURE__ */ React.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React.createElement(
736
- "button",
737
- {
738
- onClick: handleUseDefaultResults,
739
- className: "inline-flex items-center gap-2 px-3 py-1.5 text-sm bg-purple-50 dark:bg-purple-900 text-purple-600 dark:text-purple-200 rounded-lg hover:bg-purple-100 dark:hover:bg-purple-800"
740
- },
741
- "\u4F7F\u7528\u9ED8\u8BA4\u7ED3\u679C"
742
- ), /* @__PURE__ */ React.createElement(
743
- "button",
744
- {
745
- onClick: handleAddResult,
746
- className: "inline-flex items-center gap-2 px-3 py-1.5 text-sm bg-blue-50 dark:bg-blue-900 text-blue-600 dark:text-blue-200 rounded-lg hover:bg-blue-100 dark:hover:bg-blue-800"
747
- },
748
- /* @__PURE__ */ React.createElement(Plus, { className: "w-4 h-4" }),
749
- "\u6DFB\u52A0\u7ED3\u679C"
750
- ))), /* @__PURE__ */ React.createElement("div", { className: "space-y-3 max-h-[500px] overflow-y-auto" }, editForm.results.length === 0 ? /* @__PURE__ */ React.createElement("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400" }, /* @__PURE__ */ React.createElement("p", null, "\u8FD8\u6CA1\u6709\u6DFB\u52A0\u4EFB\u4F55\u7ED3\u679C"), /* @__PURE__ */ React.createElement("p", { className: "text-sm mt-2" }, '\u70B9\u51FB"\u6DFB\u52A0\u7ED3\u679C"\u6216"\u4F7F\u7528\u9ED8\u8BA4\u7ED3\u679C"\u5F00\u59CB')) : editForm.results.map((result, index) => renderResultEditor(result, index)))), /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-end gap-3" }, /* @__PURE__ */ React.createElement(
751
- "button",
752
- {
753
- onClick: handleCancelEdit,
754
- className: "px-6 py-2 text-gray-700 dark:text-gray-300 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700"
755
- },
756
- "\u53D6\u6D88"
757
- ), /* @__PURE__ */ React.createElement(
758
- "button",
759
- {
760
- onClick: handleSave,
761
- className: "inline-flex items-center gap-2 px-6 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700"
762
- },
763
- /* @__PURE__ */ React.createElement(Save, { className: "w-5 h-5" }),
764
- "\u4FDD\u5B58\u914D\u7F6E"
765
- )));
766
- if (loading) {
767
- return /* @__PURE__ */ React.createElement("div", { className: clsx("p-8", className) }, /* @__PURE__ */ React.createElement("div", { className: "text-center" }, /* @__PURE__ */ React.createElement("div", { className: "inline-block w-8 h-8 border-4 border-blue-600 border-t-transparent rounded-full animate-spin" }), /* @__PURE__ */ React.createElement("p", { className: "mt-2 text-gray-600 dark:text-gray-400" }, "\u52A0\u8F7D\u4E2D...")));
768
- }
769
- return /* @__PURE__ */ React.createElement("div", { className: clsx("p-6", className) }, error && /* @__PURE__ */ React.createElement("div", { className: "mb-4 p-4 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg flex items-center gap-2 text-red-800 dark:text-red-200" }, /* @__PURE__ */ React.createElement(AlertCircle, { className: "w-5 h-5 flex-shrink-0" }), /* @__PURE__ */ React.createElement("span", null, error), /* @__PURE__ */ React.createElement("button", { onClick: () => setError(null), className: "ml-auto" }, /* @__PURE__ */ React.createElement(X, { className: "w-5 h-5" }))), success && /* @__PURE__ */ React.createElement("div", { className: "mb-4 p-4 bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800 rounded-lg flex items-center gap-2 text-green-800 dark:text-green-200" }, /* @__PURE__ */ React.createElement(CheckCircle2, { className: "w-5 h-5 flex-shrink-0" }), /* @__PURE__ */ React.createElement("span", null, success), /* @__PURE__ */ React.createElement("button", { onClick: () => setSuccess(null), className: "ml-auto" }, /* @__PURE__ */ React.createElement(X, { className: "w-5 h-5" }))), isEditing ? renderEditForm() : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-between mb-6" }, /* @__PURE__ */ React.createElement("h1", { className: "text-3xl font-bold text-gray-900 dark:text-white" }, "\u914D\u7F6E\u7BA1\u7406"), /* @__PURE__ */ React.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React.createElement(
770
- "button",
771
- {
772
- onClick: handleImport,
773
- className: "inline-flex items-center gap-2 px-4 py-2 text-gray-700 dark:text-gray-300 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700"
774
- },
775
- /* @__PURE__ */ React.createElement(Upload, { className: "w-5 h-5" }),
776
- "\u5BFC\u5165"
777
- ), /* @__PURE__ */ React.createElement(
778
- "button",
779
- {
780
- onClick: handleStartCreate,
781
- className: "inline-flex items-center gap-2 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700"
782
- },
783
- /* @__PURE__ */ React.createElement(Plus, { className: "w-5 h-5" }),
784
- "\u521B\u5EFA\u914D\u7F6E"
785
- ))), configs.length === 0 ? /* @__PURE__ */ React.createElement("div", { className: "text-center py-12 bg-white dark:bg-gray-800 rounded-lg border-2 border-dashed border-gray-300 dark:border-gray-700" }, /* @__PURE__ */ React.createElement("p", { className: "text-gray-600 dark:text-gray-400 mb-4" }, "\u8FD8\u6CA1\u6709\u4EFB\u4F55\u914D\u7F6E"), /* @__PURE__ */ React.createElement(
786
- "button",
787
- {
788
- onClick: handleStartCreate,
789
- className: "inline-flex items-center gap-2 px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700"
790
- },
791
- /* @__PURE__ */ React.createElement(Plus, { className: "w-5 h-5" }),
792
- "\u521B\u5EFA\u7B2C\u4E00\u4E2A\u914D\u7F6E"
793
- )) : renderConfigList()));
794
- };
795
- var ConfigList = ({
796
- configService,
797
- onSelect,
798
- onEdit,
799
- onDelete,
800
- showActions = true,
801
- showPreviewLink = false,
802
- previewBaseUrl = "/test-yourself",
803
- className = "",
804
- pageSize = 10
805
- }) => {
806
- const [configs, setConfigs] = useState([]);
807
- const [loading, setLoading] = useState(true);
808
- const [currentPage, setCurrentPage] = useState(1);
809
- const [searchTerm, setSearchTerm] = useState("");
810
- const loadConfigs = useCallback(async () => {
811
- try {
812
- setLoading(true);
813
- const list = await configService.getConfigList();
814
- setConfigs(list);
815
- } catch (error) {
816
- console.error("\u52A0\u8F7D\u914D\u7F6E\u5217\u8868\u5931\u8D25:", error);
817
- } finally {
818
- setLoading(false);
819
- }
820
- }, [configService]);
821
- useEffect(() => {
822
- loadConfigs();
823
- }, [loadConfigs]);
824
- const handleRefresh = () => {
825
- loadConfigs();
826
- };
827
- const handleSelect = (id) => {
828
- onSelect?.(id);
829
- };
830
- const handleEdit = (id) => {
831
- onEdit?.(id);
832
- };
833
- const handleDelete = async (id) => {
834
- if (!confirm("\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u914D\u7F6E\u5417\uFF1F")) return;
835
- try {
836
- await configService.deleteConfig(id);
837
- await loadConfigs();
838
- onDelete?.(id);
839
- } catch (error) {
840
- console.error("\u5220\u9664\u914D\u7F6E\u5931\u8D25:", error);
841
- alert("\u5220\u9664\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5");
842
- }
843
- };
844
- const handleDuplicate = async (id) => {
845
- try {
846
- await configService.duplicateConfig(id);
847
- await loadConfigs();
848
- } catch (error) {
849
- console.error("\u590D\u5236\u914D\u7F6E\u5931\u8D25:", error);
850
- alert("\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5");
851
- }
852
- };
853
- const handleSetDefault = async (id) => {
854
- try {
855
- await configService.setDefaultConfig(id);
856
- await loadConfigs();
857
- } catch (error) {
858
- console.error("\u8BBE\u7F6E\u9ED8\u8BA4\u914D\u7F6E\u5931\u8D25:", error);
859
- alert("\u8BBE\u7F6E\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5");
860
- }
861
- };
862
- const handleExport = async (id) => {
863
- try {
864
- const jsonString = await configService.exportConfig(id);
865
- const blob = new Blob([jsonString], { type: "application/json" });
866
- const url = URL.createObjectURL(blob);
867
- const a = document.createElement("a");
868
- a.href = url;
869
- a.download = "config_" + id + ".json";
870
- document.body.appendChild(a);
871
- a.click();
872
- document.body.removeChild(a);
873
- URL.revokeObjectURL(url);
874
- } catch (error) {
875
- console.error("\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25:", error);
876
- alert("\u5BFC\u51FA\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5");
877
- }
878
- };
879
- const getPreviewUrl = (id) => {
880
- return previewBaseUrl + "?configId=" + id;
881
- };
882
- const filteredConfigs = configs.filter((config) => {
883
- if (!searchTerm) return true;
884
- const term = searchTerm.toLowerCase();
885
- return config.name.toLowerCase().includes(term) || config.description?.toLowerCase().includes(term);
886
- });
887
- const totalPages = Math.ceil(filteredConfigs.length / pageSize);
888
- const startIndex = (currentPage - 1) * pageSize;
889
- const endIndex = startIndex + pageSize;
890
- const currentConfigs = filteredConfigs.slice(startIndex, endIndex);
891
- if (loading) {
892
- return /* @__PURE__ */ React.createElement("div", { className: clsx("p-8", className) }, /* @__PURE__ */ React.createElement("div", { className: "text-center" }, /* @__PURE__ */ React.createElement("div", { className: "inline-block w-8 h-8 border-4 border-blue-600 border-t-transparent rounded-full animate-spin" }), /* @__PURE__ */ React.createElement("p", { className: "mt-2 text-gray-600 dark:text-gray-400" }, "\u52A0\u8F7D\u4E2D...")));
893
- }
894
- return /* @__PURE__ */ React.createElement("div", { className }, /* @__PURE__ */ React.createElement("div", { className: "mb-4 flex items-center justify-between gap-4" }, /* @__PURE__ */ React.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React.createElement(
895
- "input",
896
- {
897
- type: "text",
898
- placeholder: "\u641C\u7D22\u914D\u7F6E...",
899
- value: searchTerm,
900
- onChange: (e) => {
901
- setSearchTerm(e.target.value);
902
- setCurrentPage(1);
903
- },
904
- className: "w-full px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-800 dark:text-white"
905
- }
906
- )), /* @__PURE__ */ React.createElement(
907
- "button",
908
- {
909
- onClick: handleRefresh,
910
- className: "p-2 text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-200",
911
- title: "\u5237\u65B0"
912
- },
913
- /* @__PURE__ */ React.createElement(RefreshCw, { className: "w-5 h-5" })
914
- )), currentConfigs.length === 0 ? /* @__PURE__ */ React.createElement("div", { className: "text-center py-12 bg-gray-50 dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700" }, /* @__PURE__ */ React.createElement("p", { className: "text-gray-600 dark:text-gray-400" }, searchTerm ? "\u6CA1\u6709\u627E\u5230\u5339\u914D\u7684\u914D\u7F6E" : "\u8FD8\u6CA1\u6709\u4EFB\u4F55\u914D\u7F6E")) : /* @__PURE__ */ React.createElement("div", { className: "space-y-3" }, currentConfigs.map((config) => /* @__PURE__ */ React.createElement(
915
- "div",
916
- {
917
- key: config.id,
918
- className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm p-4 border border-gray-200 dark:border-gray-700 hover:shadow-md transition-shadow"
919
- },
920
- /* @__PURE__ */ React.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ React.createElement(
921
- "div",
922
- {
923
- className: "flex-1 cursor-pointer",
924
- onClick: () => handleSelect(config.id)
925
- },
926
- /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2 mb-1" }, /* @__PURE__ */ React.createElement("h3", { className: "text-lg font-semibold text-gray-900 dark:text-white" }, config.name), config.isDefault && /* @__PURE__ */ React.createElement("span", { className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200" }, /* @__PURE__ */ React.createElement(Star, { className: "w-3 h-3" }), "\u9ED8\u8BA4")),
927
- config.description && /* @__PURE__ */ React.createElement("p", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2" }, config.description),
928
- /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400" }, /* @__PURE__ */ React.createElement("span", null, "\u7ED3\u679C\u6570: ", config.resultCount), /* @__PURE__ */ React.createElement("span", null, "\u521B\u5EFA: ", new Date(config.createdAt).toLocaleDateString()), config.updatedAt !== config.createdAt && /* @__PURE__ */ React.createElement("span", null, "\u66F4\u65B0: ", new Date(config.updatedAt).toLocaleDateString()))
929
- ), showActions && /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-1" }, showPreviewLink && /* @__PURE__ */ React.createElement(
930
- "a",
931
- {
932
- href: getPreviewUrl(config.id),
933
- target: "_blank",
934
- rel: "noopener noreferrer",
935
- className: "p-2 text-gray-600 hover:text-blue-600 dark:text-gray-400 dark:hover:text-blue-400",
936
- title: "\u9884\u89C8"
937
- },
938
- /* @__PURE__ */ React.createElement(ExternalLink, { className: "w-4 h-4" })
939
- ), /* @__PURE__ */ React.createElement(
940
- "button",
941
- {
942
- onClick: () => handleSetDefault(config.id),
943
- disabled: config.isDefault,
944
- className: "p-2 text-gray-600 hover:text-yellow-600 disabled:opacity-50 disabled:cursor-not-allowed",
945
- title: "\u8BBE\u4E3A\u9ED8\u8BA4"
946
- },
947
- /* @__PURE__ */ React.createElement(Star, { className: "w-4 h-4" })
948
- ), /* @__PURE__ */ React.createElement(
949
- "button",
950
- {
951
- onClick: () => handleEdit(config.id),
952
- className: "p-2 text-gray-600 hover:text-blue-600",
953
- title: "\u7F16\u8F91"
954
- },
955
- /* @__PURE__ */ React.createElement(Edit, { className: "w-4 h-4" })
956
- ), /* @__PURE__ */ React.createElement(
957
- "button",
958
- {
959
- onClick: () => handleDuplicate(config.id),
960
- className: "p-2 text-gray-600 hover:text-green-600",
961
- title: "\u590D\u5236"
962
- },
963
- /* @__PURE__ */ React.createElement(Copy, { className: "w-4 h-4" })
964
- ), /* @__PURE__ */ React.createElement(
965
- "button",
966
- {
967
- onClick: () => handleExport(config.id),
968
- className: "p-2 text-gray-600 hover:text-purple-600",
969
- title: "\u5BFC\u51FA"
970
- },
971
- /* @__PURE__ */ React.createElement(Download, { className: "w-4 h-4" })
972
- ), /* @__PURE__ */ React.createElement(
973
- "button",
974
- {
975
- onClick: () => handleDelete(config.id),
976
- className: "p-2 text-gray-600 hover:text-red-600",
977
- title: "\u5220\u9664"
978
- },
979
- /* @__PURE__ */ React.createElement(Trash2, { className: "w-4 h-4" })
980
- )))
981
- ))), totalPages > 1 && /* @__PURE__ */ React.createElement("div", { className: "mt-4 flex items-center justify-between" }, /* @__PURE__ */ React.createElement("p", { className: "text-sm text-gray-600 dark:text-gray-400" }, "\u663E\u793A ", startIndex + 1, " - ", Math.min(endIndex, filteredConfigs.length), " \u5171", " ", filteredConfigs.length, " \u4E2A\u914D\u7F6E"), /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React.createElement(
982
- "button",
983
- {
984
- onClick: () => setCurrentPage((p) => Math.max(1, p - 1)),
985
- disabled: currentPage === 1,
986
- className: "px-3 py-1 border border-gray-300 dark:border-gray-600 rounded-lg disabled:opacity-50 disabled:cursor-not-allowed hover:bg-gray-50 dark:hover:bg-gray-700"
987
- },
988
- "\u4E0A\u4E00\u9875"
989
- ), /* @__PURE__ */ React.createElement("span", { className: "text-sm text-gray-600 dark:text-gray-400" }, currentPage, " / ", totalPages), /* @__PURE__ */ React.createElement(
990
- "button",
991
- {
992
- onClick: () => setCurrentPage((p) => Math.min(totalPages, p + 1)),
993
- disabled: currentPage === totalPages,
994
- className: "px-3 py-1 border border-gray-300 dark:border-gray-600 rounded-lg disabled:opacity-50 disabled:cursor-not-allowed hover:bg-gray-50 dark:hover:bg-gray-700"
995
- },
996
- "\u4E0B\u4E00\u9875"
997
- ))));
998
- };
999
-
1000
- export { ConfigList, ConfigManager };
1001
- //# sourceMappingURL=index.mjs.map
1002
- //# sourceMappingURL=index.mjs.map