sa2kit 3.0.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 (980) hide show
  1. package/README.md +5 -5
  2. package/dist/AliyunOSSProvider-7IOT5U6M.js +15 -0
  3. package/dist/AliyunOSSProvider-7IOT5U6M.js.map +1 -0
  4. package/dist/AliyunOSSProvider-ZXZM7OQA.mjs +6 -0
  5. package/dist/AliyunOSSProvider-ZXZM7OQA.mjs.map +1 -0
  6. package/dist/LocalStorageProvider-KJKRCKBS.js +15 -0
  7. package/dist/LocalStorageProvider-KJKRCKBS.js.map +1 -0
  8. package/dist/LocalStorageProvider-O22465NY.mjs +6 -0
  9. package/dist/LocalStorageProvider-O22465NY.mjs.map +1 -0
  10. package/dist/chunk-2234T4A6.js +303 -0
  11. package/dist/chunk-2234T4A6.js.map +1 -0
  12. package/dist/chunk-36KGNXKW.js +16 -0
  13. package/dist/chunk-36KGNXKW.js.map +1 -0
  14. package/dist/chunk-375C7WL7.js +2695 -0
  15. package/dist/chunk-375C7WL7.js.map +1 -0
  16. package/dist/chunk-3J24Z4MB.js +991 -0
  17. package/dist/chunk-3J24Z4MB.js.map +1 -0
  18. package/dist/chunk-3QCATFQV.js +43 -0
  19. package/dist/chunk-3QCATFQV.js.map +1 -0
  20. package/dist/chunk-3R6JHA6D.js +120 -0
  21. package/dist/chunk-3R6JHA6D.js.map +1 -0
  22. package/dist/chunk-4OXKHV7J.js +43 -0
  23. package/dist/chunk-4OXKHV7J.js.map +1 -0
  24. package/dist/chunk-4PJM4752.js +4 -0
  25. package/dist/chunk-4PJM4752.js.map +1 -0
  26. package/dist/chunk-65JRVC3F.mjs +54 -0
  27. package/dist/chunk-65JRVC3F.mjs.map +1 -0
  28. package/dist/chunk-6HL54I2B.js +336 -0
  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-6YLCRWKM.mjs +8 -0
  33. package/dist/chunk-6YLCRWKM.mjs.map +1 -0
  34. package/dist/chunk-7CRU2Y5X.mjs +152 -0
  35. package/dist/chunk-7CRU2Y5X.mjs.map +1 -0
  36. package/dist/chunk-7PMT4L4I.js +324 -0
  37. package/dist/chunk-7PMT4L4I.js.map +1 -0
  38. package/dist/chunk-7VVZHFEM.js +88 -0
  39. package/dist/chunk-7VVZHFEM.js.map +1 -0
  40. package/dist/chunk-AWHGIKTQ.js +56 -0
  41. package/dist/chunk-AWHGIKTQ.js.map +1 -0
  42. package/dist/chunk-B3GYF6TY.js +37 -0
  43. package/dist/chunk-B3GYF6TY.js.map +1 -0
  44. package/dist/chunk-BDBJFOXM.mjs +14 -0
  45. package/dist/chunk-BDBJFOXM.mjs.map +1 -0
  46. package/dist/chunk-BTW3SWQN.mjs +25 -0
  47. package/dist/chunk-BTW3SWQN.mjs.map +1 -0
  48. package/dist/chunk-CHYSSZ4E.mjs +734 -0
  49. package/dist/chunk-CHYSSZ4E.mjs.map +1 -0
  50. package/dist/chunk-DO6QYAZV.mjs +298 -0
  51. package/dist/chunk-DO6QYAZV.mjs.map +1 -0
  52. package/dist/chunk-DTR53LQO.mjs +781 -0
  53. package/dist/chunk-DTR53LQO.mjs.map +1 -0
  54. package/dist/chunk-EI2S4XDG.mjs +89 -0
  55. package/dist/chunk-EI2S4XDG.mjs.map +1 -0
  56. package/dist/chunk-EOZHUI46.js +93 -0
  57. package/dist/chunk-EOZHUI46.js.map +1 -0
  58. package/dist/chunk-F2BZIU67.js +184 -0
  59. package/dist/chunk-F2BZIU67.js.map +1 -0
  60. package/dist/chunk-F2TEJSCP.js +756 -0
  61. package/dist/chunk-F2TEJSCP.js.map +1 -0
  62. package/dist/chunk-FCLS5R24.js +148 -0
  63. package/dist/chunk-FCLS5R24.js.map +1 -0
  64. package/dist/chunk-FUA6ZGMI.mjs +376 -0
  65. package/dist/chunk-FUA6ZGMI.mjs.map +1 -0
  66. package/dist/chunk-FY2X3LYR.mjs +3 -0
  67. package/dist/chunk-FY2X3LYR.mjs.map +1 -0
  68. package/dist/chunk-GS4SAW25.mjs +116 -0
  69. package/dist/chunk-GS4SAW25.mjs.map +1 -0
  70. package/dist/chunk-H56ICWUO.js +321 -0
  71. package/dist/chunk-H56ICWUO.js.map +1 -0
  72. package/dist/chunk-HG34SGMN.mjs +546 -0
  73. package/dist/chunk-HG34SGMN.mjs.map +1 -0
  74. package/dist/chunk-HL4H2HF6.js +279 -0
  75. package/dist/chunk-HL4H2HF6.js.map +1 -0
  76. package/dist/chunk-IJIQUMAK.mjs +272 -0
  77. package/dist/chunk-IJIQUMAK.mjs.map +1 -0
  78. package/dist/chunk-KEZFTDZT.mjs +559 -0
  79. package/dist/chunk-KEZFTDZT.mjs.map +1 -0
  80. package/dist/chunk-KHOVC2KL.js +144 -0
  81. package/dist/chunk-KHOVC2KL.js.map +1 -0
  82. package/dist/chunk-KRBSTLKC.js +6154 -0
  83. package/dist/chunk-KRBSTLKC.js.map +1 -0
  84. package/dist/chunk-KVYHCGRY.js +2011 -0
  85. package/dist/chunk-KVYHCGRY.js.map +1 -0
  86. package/dist/chunk-LZ5YTMMP.mjs +41 -0
  87. package/dist/chunk-LZ5YTMMP.mjs.map +1 -0
  88. package/dist/chunk-MJ6XJGAL.js +1551 -0
  89. package/dist/chunk-MJ6XJGAL.js.map +1 -0
  90. package/dist/chunk-MKLXCV4Z.mjs +1510 -0
  91. package/dist/chunk-MKLXCV4Z.mjs.map +1 -0
  92. package/dist/chunk-MMDSZIXD.mjs +286 -0
  93. package/dist/chunk-MMDSZIXD.mjs.map +1 -0
  94. package/dist/chunk-N2O3OX5Y.mjs +243 -0
  95. package/dist/chunk-N2O3OX5Y.mjs.map +1 -0
  96. package/dist/chunk-O6NNSPWD.mjs +35 -0
  97. package/dist/chunk-O6NNSPWD.mjs.map +1 -0
  98. package/dist/chunk-OIRZXSYM.js +80 -0
  99. package/dist/chunk-OIRZXSYM.js.map +1 -0
  100. package/dist/chunk-P7JQRNBJ.mjs +76 -0
  101. package/dist/chunk-P7JQRNBJ.mjs.map +1 -0
  102. package/dist/chunk-PA4ELVGI.js +20 -0
  103. package/dist/chunk-PA4ELVGI.js.map +1 -0
  104. package/dist/chunk-PLIG5257.mjs +2613 -0
  105. package/dist/chunk-PLIG5257.mjs.map +1 -0
  106. package/dist/chunk-QIF4MG5V.mjs +283 -0
  107. package/dist/chunk-QIF4MG5V.mjs.map +1 -0
  108. package/dist/chunk-RHECN4E2.mjs +6077 -0
  109. package/dist/chunk-RHECN4E2.mjs.map +1 -0
  110. package/dist/chunk-RHHTZTIN.mjs +314 -0
  111. package/dist/chunk-RHHTZTIN.mjs.map +1 -0
  112. package/dist/chunk-RRQ2X26Z.js +106 -0
  113. package/dist/chunk-RRQ2X26Z.js.map +1 -0
  114. package/dist/chunk-RST2T54Y.js +836 -0
  115. package/dist/chunk-RST2T54Y.js.map +1 -0
  116. package/dist/chunk-RVNQI6BI.js +249 -0
  117. package/dist/chunk-RVNQI6BI.js.map +1 -0
  118. package/dist/chunk-S3K4LTRI.mjs +226 -0
  119. package/dist/chunk-S3K4LTRI.mjs.map +1 -0
  120. package/dist/chunk-SWZ5XNF6.js +158 -0
  121. package/dist/chunk-SWZ5XNF6.js.map +1 -0
  122. package/dist/chunk-TNJ6LYX7.mjs +18 -0
  123. package/dist/chunk-TNJ6LYX7.mjs.map +1 -0
  124. package/dist/chunk-U7HNBCBS.js +207 -0
  125. package/dist/chunk-U7HNBCBS.js.map +1 -0
  126. package/dist/chunk-UJS3YSD3.mjs +37 -0
  127. package/dist/chunk-UJS3YSD3.mjs.map +1 -0
  128. package/dist/chunk-UJUWDF7M.mjs +336 -0
  129. package/dist/chunk-UJUWDF7M.mjs.map +1 -0
  130. package/dist/chunk-UR5NENGE.js +78 -0
  131. package/dist/chunk-UR5NENGE.js.map +1 -0
  132. package/dist/chunk-V7HGBDCB.mjs +135 -0
  133. package/dist/chunk-V7HGBDCB.mjs.map +1 -0
  134. package/dist/chunk-V7RLIZMN.js +90 -0
  135. package/dist/chunk-V7RLIZMN.js.map +1 -0
  136. package/dist/chunk-VCKXK6V5.js +345 -0
  137. package/dist/chunk-VCKXK6V5.js.map +1 -0
  138. package/dist/chunk-VIEXDTNF.mjs +100 -0
  139. package/dist/chunk-VIEXDTNF.mjs.map +1 -0
  140. package/dist/chunk-VN2DULIA.js +579 -0
  141. package/dist/chunk-VN2DULIA.js.map +1 -0
  142. package/dist/chunk-VNWMRUY6.js +168 -0
  143. package/dist/chunk-VNWMRUY6.js.map +1 -0
  144. package/dist/chunk-VYK4M2D6.mjs +177 -0
  145. package/dist/chunk-VYK4M2D6.mjs.map +1 -0
  146. package/dist/chunk-WB4H6ZUW.mjs +86 -0
  147. package/dist/chunk-WB4H6ZUW.mjs.map +1 -0
  148. package/dist/chunk-WM3AEJ2E.mjs +981 -0
  149. package/dist/chunk-WM3AEJ2E.mjs.map +1 -0
  150. package/dist/chunk-X5GINUGI.mjs +162 -0
  151. package/dist/chunk-X5GINUGI.mjs.map +1 -0
  152. package/dist/chunk-XB7GUEHZ.mjs +82 -0
  153. package/dist/chunk-XB7GUEHZ.mjs.map +1 -0
  154. package/dist/chunk-XE5RGZ3B.js +242 -0
  155. package/dist/chunk-XE5RGZ3B.js.map +1 -0
  156. package/dist/chunk-XNTIMVSL.mjs +193 -0
  157. package/dist/chunk-XNTIMVSL.mjs.map +1 -0
  158. package/dist/chunk-Y7WHUKJF.js +387 -0
  159. package/dist/chunk-Y7WHUKJF.js.map +1 -0
  160. package/dist/chunk-YIRPPMCN.mjs +1916 -0
  161. package/dist/chunk-YIRPPMCN.mjs.map +1 -0
  162. package/dist/chunk-YTGUIRRH.js +10 -0
  163. package/dist/chunk-YTGUIRRH.js.map +1 -0
  164. package/dist/chunk-Z2SNB5LJ.js +28 -0
  165. package/dist/chunk-Z2SNB5LJ.js.map +1 -0
  166. package/dist/chunk-ZOP7YIVX.js +552 -0
  167. package/dist/chunk-ZOP7YIVX.js.map +1 -0
  168. package/dist/chunk-ZUZLWHH5.mjs +146 -0
  169. package/dist/chunk-ZUZLWHH5.mjs.map +1 -0
  170. package/dist/common/ai/llm/core/index.d.mts +70 -0
  171. package/dist/common/ai/llm/core/index.d.ts +70 -0
  172. package/dist/common/ai/llm/core/index.js +54 -0
  173. package/dist/common/ai/llm/core/index.mjs +5 -0
  174. package/dist/common/ai/llm/electron/index.d.mts +6 -0
  175. package/dist/common/ai/llm/electron/index.d.ts +6 -0
  176. package/dist/common/ai/llm/electron/index.js +67 -0
  177. package/dist/common/ai/llm/electron/index.mjs +10 -0
  178. package/dist/common/ai/llm/index.d.mts +3 -0
  179. package/dist/common/ai/llm/index.d.ts +3 -0
  180. package/dist/common/ai/llm/index.js +54 -0
  181. package/dist/common/ai/llm/index.mjs +5 -0
  182. package/dist/common/ai/llm/miniapp/index.d.mts +6 -0
  183. package/dist/common/ai/llm/miniapp/index.d.ts +6 -0
  184. package/dist/common/ai/llm/miniapp/index.js +59 -0
  185. package/dist/common/ai/llm/miniapp/index.mjs +6 -0
  186. package/dist/common/ai/llm/rn/index.d.mts +6 -0
  187. package/dist/common/ai/llm/rn/index.d.ts +6 -0
  188. package/dist/common/ai/llm/rn/index.js +59 -0
  189. package/dist/common/ai/llm/rn/index.mjs +6 -0
  190. package/dist/common/ai/llm/ui/electron/index.d.mts +5 -0
  191. package/dist/common/ai/llm/ui/electron/index.d.ts +5 -0
  192. package/dist/common/ai/llm/ui/electron/index.js +22 -0
  193. package/dist/common/ai/llm/ui/electron/index.mjs +9 -0
  194. package/dist/common/ai/llm/ui/miniapp/index.d.mts +9 -0
  195. package/dist/common/ai/llm/ui/miniapp/index.d.ts +9 -0
  196. package/dist/common/ai/llm/ui/miniapp/index.js +14 -0
  197. package/dist/common/ai/llm/ui/miniapp/index.mjs +5 -0
  198. package/dist/common/ai/llm/ui/rn/index.d.mts +9 -0
  199. package/dist/common/ai/llm/ui/rn/index.d.ts +9 -0
  200. package/dist/common/ai/llm/ui/rn/index.js +14 -0
  201. package/dist/common/ai/llm/ui/rn/index.mjs +5 -0
  202. package/dist/common/ai/llm/ui/web/index.d.mts +15 -0
  203. package/dist/common/ai/llm/ui/web/index.d.ts +15 -0
  204. package/dist/common/ai/llm/ui/web/index.js +21 -0
  205. package/dist/common/ai/llm/ui/web/index.mjs +8 -0
  206. package/dist/common/ai/llm/web/index.d.mts +6 -0
  207. package/dist/common/ai/llm/web/index.d.ts +6 -0
  208. package/dist/common/ai/llm/web/index.js +66 -0
  209. package/dist/common/ai/llm/web/index.mjs +9 -0
  210. package/dist/common/analytics/index.d.mts +2 -0
  211. package/dist/common/analytics/index.d.ts +2 -0
  212. package/dist/common/analytics/index.js +314 -0
  213. package/dist/common/analytics/index.mjs +5 -0
  214. package/dist/common/analytics/server/index.js +529 -0
  215. package/dist/common/analytics/server/index.js.map +1 -0
  216. package/dist/common/analytics/server/index.mjs +525 -0
  217. package/dist/common/analytics/server/index.mjs.map +1 -0
  218. package/dist/common/api/index.d.mts +3 -0
  219. package/dist/common/api/index.d.ts +3 -0
  220. package/dist/common/api/index.js +21 -0
  221. package/dist/common/api/index.mjs +4 -0
  222. package/dist/common/auth/client/index.d.mts +1 -31
  223. package/dist/common/auth/client/index.d.ts +1 -31
  224. package/dist/common/auth/client/index.js +2 -15
  225. package/dist/common/auth/client/index.mjs +1 -2
  226. package/dist/common/auth/components/index.d.mts +5 -239
  227. package/dist/common/auth/components/index.d.ts +5 -239
  228. package/dist/common/auth/components/index.js +878 -49
  229. package/dist/common/auth/components/index.js.map +1 -1
  230. package/dist/common/auth/components/index.mjs +871 -5
  231. package/dist/common/auth/components/index.mjs.map +1 -1
  232. package/dist/common/auth/hooks/index.d.mts +2 -29
  233. package/dist/common/auth/hooks/index.d.ts +2 -29
  234. package/dist/common/auth/hooks/index.js +2 -11
  235. package/dist/common/auth/hooks/index.mjs +1 -2
  236. package/dist/common/auth/index.d.mts +5 -9
  237. package/dist/common/auth/index.d.ts +5 -9
  238. package/dist/common/auth/index.js +5 -26
  239. package/dist/common/auth/index.mjs +3 -4
  240. package/dist/common/auth/rn/index.d.mts +1 -17
  241. package/dist/common/auth/rn/index.d.ts +1 -17
  242. package/dist/common/auth/rn/index.js +2 -34
  243. package/dist/common/auth/rn/index.js.map +1 -1
  244. package/dist/common/auth/rn/index.mjs +2 -31
  245. package/dist/common/auth/rn/index.mjs.map +1 -1
  246. package/dist/common/auth/server/index.d.mts +81 -2
  247. package/dist/common/auth/server/index.d.ts +81 -2
  248. package/dist/common/auth/server/index.js +128 -37
  249. package/dist/common/auth/server/index.js.map +1 -1
  250. package/dist/common/auth/server/index.mjs +124 -1
  251. package/dist/common/auth/server/index.mjs.map +1 -1
  252. package/dist/common/auth/services/index.js +12 -9
  253. package/dist/common/auth/services/index.js.map +1 -1
  254. package/dist/common/auth/services/index.mjs +10 -1
  255. package/dist/common/auth/services/index.mjs.map +1 -1
  256. package/dist/common/components/index.d.mts +4 -0
  257. package/dist/common/components/index.d.ts +4 -0
  258. package/dist/common/components/index.js +414 -0
  259. package/dist/common/components/index.mjs +9 -0
  260. package/dist/common/config/index.d.mts +1 -0
  261. package/dist/common/config/index.d.ts +1 -0
  262. package/dist/common/config/index.js +21 -0
  263. package/dist/common/config/index.mjs +4 -0
  264. package/dist/common/config/server/index.js +1177 -0
  265. package/dist/common/config/server/index.js.map +1 -0
  266. package/dist/common/config/server/index.mjs +1138 -0
  267. package/dist/common/config/server/index.mjs.map +1 -0
  268. package/dist/common/export/index.d.mts +2 -2
  269. package/dist/common/export/index.d.ts +2 -2
  270. package/dist/common/export/index.js +67 -67
  271. package/dist/common/export/index.mjs +3 -3
  272. package/dist/common/export/server/index.d.mts +2 -2
  273. package/dist/common/export/server/index.d.ts +2 -2
  274. package/dist/common/export/server/index.js +76 -48
  275. package/dist/common/export/server/index.mjs +3 -3
  276. package/dist/common/file/index.d.mts +2 -2
  277. package/dist/common/file/index.d.ts +2 -2
  278. package/dist/common/file/index.js +27 -27
  279. package/dist/common/file/index.mjs +5 -5
  280. package/dist/common/file/server/index.d.mts +2 -2
  281. package/dist/common/file/server/index.d.ts +2 -2
  282. package/dist/common/file/server/index.js +58 -50
  283. package/dist/common/file/server/index.mjs +8 -8
  284. package/dist/common/i18n/index.d.mts +2 -0
  285. package/dist/common/i18n/index.d.ts +2 -0
  286. package/dist/common/i18n/index.js +73 -0
  287. package/dist/common/i18n/index.mjs +4 -0
  288. package/dist/common/imageCrop/index.d.mts +2 -0
  289. package/dist/common/imageCrop/index.d.ts +2 -0
  290. package/dist/common/imageCrop/index.js +61 -0
  291. package/dist/common/imageCrop/index.mjs +4 -0
  292. package/dist/common/index.d.mts +17 -20
  293. package/dist/common/index.d.ts +17 -20
  294. package/dist/common/index.js +76 -70
  295. package/dist/common/index.mjs +27 -29
  296. package/dist/common/logger/index.d.mts +1 -1
  297. package/dist/common/logger/index.d.ts +1 -1
  298. package/dist/common/logger/index.js +6 -7
  299. package/dist/common/logger/index.mjs +1 -2
  300. package/dist/common/ossFile/index.d.mts +61 -0
  301. package/dist/common/ossFile/index.d.ts +61 -0
  302. package/dist/common/ossFile/index.js +96 -0
  303. package/dist/common/ossFile/index.mjs +7 -0
  304. package/dist/common/ossFile/server/index.d.mts +94 -0
  305. package/dist/common/ossFile/server/index.d.ts +94 -0
  306. package/dist/common/ossFile/server/index.js +221 -0
  307. package/dist/common/ossFile/server/index.mjs +12 -0
  308. package/dist/common/platform/index.js +8 -8
  309. package/dist/common/platform/index.mjs +4 -4
  310. package/dist/common/request/index.d.mts +1 -1
  311. package/dist/common/request/index.d.ts +1 -1
  312. package/dist/common/request/index.js +5 -7
  313. package/dist/common/request/index.mjs +2 -4
  314. package/dist/common/storage/index.d.mts +1 -1
  315. package/dist/common/storage/index.d.ts +1 -1
  316. package/dist/common/storage/index.js +17 -17
  317. package/dist/common/storage/index.mjs +5 -5
  318. package/dist/common/universalExport/index.d.mts +232 -0
  319. package/dist/common/universalExport/index.d.ts +232 -0
  320. package/dist/common/universalExport/index.js +178 -0
  321. package/dist/common/universalExport/index.mjs +5 -0
  322. package/dist/common/universalExport/server/index.d.mts +1189 -0
  323. package/dist/common/universalExport/server/index.d.ts +1189 -0
  324. package/dist/common/universalExport/server/index.js +151 -0
  325. package/dist/common/universalExport/server/index.mjs +6 -0
  326. package/dist/common/universalFile/index.d.mts +409 -0
  327. package/dist/common/universalFile/index.d.ts +409 -0
  328. package/dist/common/universalFile/index.js +1742 -0
  329. package/dist/common/universalFile/index.js.map +1 -0
  330. package/dist/common/universalFile/index.mjs +1497 -0
  331. package/dist/common/universalFile/index.mjs.map +1 -0
  332. package/dist/common/universalFile/server/index.d.mts +1064 -0
  333. package/dist/common/universalFile/server/index.d.ts +1064 -0
  334. package/dist/common/universalFile/server/index.js +311 -0
  335. package/dist/common/universalFile/server/index.mjs +10 -0
  336. package/dist/common/utils/index.d.mts +1 -1
  337. package/dist/common/utils/index.d.ts +1 -1
  338. package/dist/common/utils/index.js +11 -12
  339. package/dist/common/utils/index.mjs +2 -3
  340. package/dist/index-BRLygK4h.d.ts +67 -0
  341. package/dist/index-BWNK5mH2.d.ts +76 -0
  342. package/dist/index-Bd7cKF1j.d.mts +50 -0
  343. package/dist/index-BiCK6gg6.d.mts +210 -0
  344. package/dist/index-BiCK6gg6.d.ts +210 -0
  345. package/dist/index-C-P2yBTH.d.mts +76 -0
  346. package/dist/index-CT4K2z-O.d.ts +81 -0
  347. package/dist/index-D6RJTGce.d.mts +81 -0
  348. package/dist/index-DA7L9JlE.d.mts +159 -0
  349. package/dist/index-DRQxtCDw.d.ts +50 -0
  350. package/dist/index-DXVph21C.d.mts +201 -0
  351. package/dist/index-DXVph21C.d.ts +201 -0
  352. package/dist/index-DzyK789B.d.mts +67 -0
  353. package/dist/index-FVJZCEtm.d.mts +145 -0
  354. package/dist/index-FVJZCEtm.d.ts +145 -0
  355. package/dist/index-nD9vPCZT.d.ts +159 -0
  356. package/dist/index-nOmIv2BG.d.mts +559 -0
  357. package/dist/index-nOmIv2BG.d.ts +559 -0
  358. package/dist/path-Bzc7hj1N.d.ts +45 -0
  359. package/dist/path-DN_65vhO.d.mts +45 -0
  360. package/dist/utils-Dm3O1rAa.d.mts +366 -0
  361. package/dist/utils-Dm3O1rAa.d.ts +366 -0
  362. package/package.json +293 -348
  363. package/dist/AliyunOSSProvider-4GRL2FJB.js +0 -15
  364. package/dist/AliyunOSSProvider-4GRL2FJB.js.map +0 -1
  365. package/dist/AliyunOSSProvider-QNVFIZ7Q.mjs +0 -6
  366. package/dist/AliyunOSSProvider-QNVFIZ7Q.mjs.map +0 -1
  367. package/dist/CollisionBalls-BpHufX3H.d.mts +0 -41
  368. package/dist/CollisionBalls-BpHufX3H.d.ts +0 -41
  369. package/dist/ConfigService-BxK06xP6.d.mts +0 -262
  370. package/dist/ConfigService-BxK06xP6.d.ts +0 -262
  371. package/dist/LocalStorageProvider-J5RHV37G.mjs +0 -6
  372. package/dist/LocalStorageProvider-J5RHV37G.mjs.map +0 -1
  373. package/dist/LocalStorageProvider-PFA2DMIJ.js +0 -15
  374. package/dist/LocalStorageProvider-PFA2DMIJ.js.map +0 -1
  375. package/dist/UniversalFileService-CC4d3wkc.d.ts +0 -139
  376. package/dist/UniversalFileService-CzAE_G4V.d.mts +0 -139
  377. package/dist/ai/llm/core/index.d.mts +0 -70
  378. package/dist/ai/llm/core/index.d.ts +0 -70
  379. package/dist/ai/llm/core/index.js +0 -54
  380. package/dist/ai/llm/core/index.mjs +0 -5
  381. package/dist/ai/llm/electron/index.d.mts +0 -6
  382. package/dist/ai/llm/electron/index.d.ts +0 -6
  383. package/dist/ai/llm/electron/index.js +0 -66
  384. package/dist/ai/llm/electron/index.mjs +0 -9
  385. package/dist/ai/llm/index.d.mts +0 -3
  386. package/dist/ai/llm/index.d.ts +0 -3
  387. package/dist/ai/llm/index.js +0 -54
  388. package/dist/ai/llm/index.mjs +0 -5
  389. package/dist/ai/llm/miniapp/index.d.mts +0 -6
  390. package/dist/ai/llm/miniapp/index.d.ts +0 -6
  391. package/dist/ai/llm/miniapp/index.js +0 -59
  392. package/dist/ai/llm/miniapp/index.mjs +0 -6
  393. package/dist/ai/llm/rn/index.d.mts +0 -6
  394. package/dist/ai/llm/rn/index.d.ts +0 -6
  395. package/dist/ai/llm/rn/index.js +0 -59
  396. package/dist/ai/llm/rn/index.mjs +0 -6
  397. package/dist/ai/llm/ui/electron/index.d.mts +0 -5
  398. package/dist/ai/llm/ui/electron/index.d.ts +0 -5
  399. package/dist/ai/llm/ui/electron/index.js +0 -21
  400. package/dist/ai/llm/ui/electron/index.mjs +0 -8
  401. package/dist/ai/llm/ui/miniapp/index.d.mts +0 -9
  402. package/dist/ai/llm/ui/miniapp/index.d.ts +0 -9
  403. package/dist/ai/llm/ui/miniapp/index.js +0 -14
  404. package/dist/ai/llm/ui/miniapp/index.mjs +0 -5
  405. package/dist/ai/llm/ui/rn/index.d.mts +0 -9
  406. package/dist/ai/llm/ui/rn/index.d.ts +0 -9
  407. package/dist/ai/llm/ui/rn/index.js +0 -14
  408. package/dist/ai/llm/ui/rn/index.mjs +0 -5
  409. package/dist/ai/llm/ui/web/index.d.mts +0 -15
  410. package/dist/ai/llm/ui/web/index.d.ts +0 -15
  411. package/dist/ai/llm/ui/web/index.js +0 -20
  412. package/dist/ai/llm/ui/web/index.mjs +0 -7
  413. package/dist/ai/llm/web/index.d.mts +0 -6
  414. package/dist/ai/llm/web/index.d.ts +0 -6
  415. package/dist/ai/llm/web/index.js +0 -65
  416. package/dist/ai/llm/web/index.mjs +0 -8
  417. package/dist/analytics/index.d.mts +0 -2
  418. package/dist/analytics/index.d.ts +0 -2
  419. package/dist/analytics/index.js +0 -314
  420. package/dist/analytics/index.mjs +0 -5
  421. package/dist/analytics/server/index.js +0 -529
  422. package/dist/analytics/server/index.js.map +0 -1
  423. package/dist/analytics/server/index.mjs +0 -525
  424. package/dist/analytics/server/index.mjs.map +0 -1
  425. package/dist/api/index.d.mts +0 -3
  426. package/dist/api/index.d.ts +0 -3
  427. package/dist/api/index.js +0 -21
  428. package/dist/api/index.mjs +0 -4
  429. package/dist/audioDetection/index.d.mts +0 -449
  430. package/dist/audioDetection/index.d.ts +0 -449
  431. package/dist/audioDetection/index.js +0 -1244
  432. package/dist/audioDetection/index.js.map +0 -1
  433. package/dist/audioDetection/index.mjs +0 -1227
  434. package/dist/audioDetection/index.mjs.map +0 -1
  435. package/dist/auth/client/index.d.mts +0 -13
  436. package/dist/auth/client/index.d.ts +0 -13
  437. package/dist/auth/client/index.js +0 -26
  438. package/dist/auth/client/index.mjs +0 -5
  439. package/dist/auth/components/index.d.mts +0 -10
  440. package/dist/auth/components/index.d.ts +0 -10
  441. package/dist/auth/components/index.js +0 -70
  442. package/dist/auth/components/index.mjs +0 -9
  443. package/dist/auth/hooks/index.d.mts +0 -13
  444. package/dist/auth/hooks/index.d.ts +0 -13
  445. package/dist/auth/hooks/index.js +0 -28
  446. package/dist/auth/hooks/index.mjs +0 -7
  447. package/dist/auth/index.d.mts +0 -21
  448. package/dist/auth/index.d.ts +0 -21
  449. package/dist/auth/index.js +0 -112
  450. package/dist/auth/index.mjs +0 -11
  451. package/dist/auth/rn/index.d.mts +0 -3133
  452. package/dist/auth/rn/index.d.ts +0 -3133
  453. package/dist/auth/rn/index.js +0 -684
  454. package/dist/auth/rn/index.js.map +0 -1
  455. package/dist/auth/rn/index.mjs +0 -663
  456. package/dist/auth/rn/index.mjs.map +0 -1
  457. package/dist/auth/schema/index.d.mts +0 -4
  458. package/dist/auth/schema/index.d.ts +0 -4
  459. package/dist/auth/schema/index.js +0 -49
  460. package/dist/auth/schema/index.mjs +0 -4
  461. package/dist/auth/services/index.d.mts +0 -1
  462. package/dist/auth/services/index.d.ts +0 -1
  463. package/dist/auth/services/index.js +0 -17
  464. package/dist/auth/services/index.mjs +0 -4
  465. package/dist/base-api-client-BpmcQt4Q.d.ts +0 -103
  466. package/dist/base-api-client-CFIhZK4C.d.mts +0 -277
  467. package/dist/base-api-client-CFIhZK4C.d.ts +0 -277
  468. package/dist/base-api-client-DXLsq2yz.d.mts +0 -103
  469. package/dist/boothVaultService-Cn4WPhjg.d.mts +0 -83
  470. package/dist/boothVaultService-Cn4WPhjg.d.ts +0 -83
  471. package/dist/business/index.d.mts +0 -2
  472. package/dist/business/index.d.ts +0 -2
  473. package/dist/business/index.js +0 -581
  474. package/dist/business/index.js.map +0 -1
  475. package/dist/business/index.mjs +0 -575
  476. package/dist/business/index.mjs.map +0 -1
  477. package/dist/calendar/index.d.mts +0 -1325
  478. package/dist/calendar/index.d.ts +0 -1325
  479. package/dist/calendar/index.js +0 -5964
  480. package/dist/calendar/index.js.map +0 -1
  481. package/dist/calendar/index.mjs +0 -5878
  482. package/dist/calendar/index.mjs.map +0 -1
  483. package/dist/calendar/routes/index.d.mts +0 -191
  484. package/dist/calendar/routes/index.d.ts +0 -191
  485. package/dist/calendar/routes/index.js +0 -844
  486. package/dist/calendar/routes/index.js.map +0 -1
  487. package/dist/calendar/routes/index.mjs +0 -826
  488. package/dist/calendar/routes/index.mjs.map +0 -1
  489. package/dist/chunk-25OFOKNF.js +0 -171
  490. package/dist/chunk-25OFOKNF.js.map +0 -1
  491. package/dist/chunk-2Y7BKFKZ.js +0 -37
  492. package/dist/chunk-2Y7BKFKZ.js.map +0 -1
  493. package/dist/chunk-3DXPQ4YV.mjs +0 -165
  494. package/dist/chunk-3DXPQ4YV.mjs.map +0 -1
  495. package/dist/chunk-3FRAIS4T.mjs +0 -35
  496. package/dist/chunk-3FRAIS4T.mjs.map +0 -1
  497. package/dist/chunk-3NHAT7D4.mjs +0 -361
  498. package/dist/chunk-3NHAT7D4.mjs.map +0 -1
  499. package/dist/chunk-3Z43XGA4.mjs +0 -54
  500. package/dist/chunk-3Z43XGA4.mjs.map +0 -1
  501. package/dist/chunk-4FDUURSD.js +0 -22
  502. package/dist/chunk-4FDUURSD.js.map +0 -1
  503. package/dist/chunk-4WBCWJSN.js +0 -836
  504. package/dist/chunk-4WBCWJSN.js.map +0 -1
  505. package/dist/chunk-5GBDDXYL.mjs +0 -23
  506. package/dist/chunk-5GBDDXYL.mjs.map +0 -1
  507. package/dist/chunk-5USIS3UM.js +0 -4
  508. package/dist/chunk-5USIS3UM.js.map +0 -1
  509. package/dist/chunk-7E3J7VAD.mjs +0 -3
  510. package/dist/chunk-7E3J7VAD.mjs.map +0 -1
  511. package/dist/chunk-ACUFEDVQ.js +0 -345
  512. package/dist/chunk-ACUFEDVQ.js.map +0 -1
  513. package/dist/chunk-AQPU2AXH.js +0 -756
  514. package/dist/chunk-AQPU2AXH.js.map +0 -1
  515. package/dist/chunk-ATUCZXJY.js +0 -80
  516. package/dist/chunk-ATUCZXJY.js.map +0 -1
  517. package/dist/chunk-B3CZ3HXJ.mjs +0 -126
  518. package/dist/chunk-B3CZ3HXJ.mjs.map +0 -1
  519. package/dist/chunk-BCE6RUZV.js +0 -2695
  520. package/dist/chunk-BCE6RUZV.js.map +0 -1
  521. package/dist/chunk-BIHYZA67.mjs +0 -2613
  522. package/dist/chunk-BIHYZA67.mjs.map +0 -1
  523. package/dist/chunk-C6KV7VTZ.mjs +0 -152
  524. package/dist/chunk-C6KV7VTZ.mjs.map +0 -1
  525. package/dist/chunk-CAYOQDBR.js +0 -78
  526. package/dist/chunk-CAYOQDBR.js.map +0 -1
  527. package/dist/chunk-CIVO4R6N.mjs +0 -37
  528. package/dist/chunk-CIVO4R6N.mjs.map +0 -1
  529. package/dist/chunk-CX2GHCAI.mjs +0 -217
  530. package/dist/chunk-CX2GHCAI.mjs.map +0 -1
  531. package/dist/chunk-DIF5VRL3.mjs +0 -73
  532. package/dist/chunk-DIF5VRL3.mjs.map +0 -1
  533. package/dist/chunk-FCEBAWN6.js +0 -18
  534. package/dist/chunk-FCEBAWN6.js.map +0 -1
  535. package/dist/chunk-FHIE5MTC.mjs +0 -541
  536. package/dist/chunk-FHIE5MTC.mjs.map +0 -1
  537. package/dist/chunk-FHLTPXAR.js +0 -56
  538. package/dist/chunk-FHLTPXAR.js.map +0 -1
  539. package/dist/chunk-FIUBFREP.mjs +0 -298
  540. package/dist/chunk-FIUBFREP.mjs.map +0 -1
  541. package/dist/chunk-FOQEQWX5.js +0 -4
  542. package/dist/chunk-FOQEQWX5.js.map +0 -1
  543. package/dist/chunk-FXQOXLDE.js +0 -120
  544. package/dist/chunk-FXQOXLDE.js.map +0 -1
  545. package/dist/chunk-G4NFB2QA.mjs +0 -212
  546. package/dist/chunk-G4NFB2QA.mjs.map +0 -1
  547. package/dist/chunk-G5HJGXGC.mjs +0 -39
  548. package/dist/chunk-G5HJGXGC.mjs.map +0 -1
  549. package/dist/chunk-G6HXNQ2U.mjs +0 -336
  550. package/dist/chunk-G6HXNQ2U.mjs.map +0 -1
  551. package/dist/chunk-G6NSKJMH.js +0 -106
  552. package/dist/chunk-G6NSKJMH.js.map +0 -1
  553. package/dist/chunk-G7UBMCUT.mjs +0 -41
  554. package/dist/chunk-G7UBMCUT.mjs.map +0 -1
  555. package/dist/chunk-GQZHGSRR.js +0 -44
  556. package/dist/chunk-GQZHGSRR.js.map +0 -1
  557. package/dist/chunk-GS7XLKET.js +0 -41
  558. package/dist/chunk-GS7XLKET.js.map +0 -1
  559. package/dist/chunk-GWNBVGDT.mjs +0 -1232
  560. package/dist/chunk-GWNBVGDT.mjs.map +0 -1
  561. package/dist/chunk-HDMIOOZY.mjs +0 -546
  562. package/dist/chunk-HDMIOOZY.mjs.map +0 -1
  563. package/dist/chunk-HJ6MH7J7.js +0 -552
  564. package/dist/chunk-HJ6MH7J7.js.map +0 -1
  565. package/dist/chunk-HJZHQW5R.mjs +0 -146
  566. package/dist/chunk-HJZHQW5R.mjs.map +0 -1
  567. package/dist/chunk-I5ZPEDNR.mjs +0 -734
  568. package/dist/chunk-I5ZPEDNR.mjs.map +0 -1
  569. package/dist/chunk-IBWDBBX5.mjs +0 -16
  570. package/dist/chunk-IBWDBBX5.mjs.map +0 -1
  571. package/dist/chunk-J77KR2EV.mjs +0 -193
  572. package/dist/chunk-J77KR2EV.mjs.map +0 -1
  573. package/dist/chunk-KH6RQ4J5.js +0 -28
  574. package/dist/chunk-KH6RQ4J5.js.map +0 -1
  575. package/dist/chunk-KQ643L7Z.js +0 -144
  576. package/dist/chunk-KQ643L7Z.js.map +0 -1
  577. package/dist/chunk-LFB5EIIM.mjs +0 -31
  578. package/dist/chunk-LFB5EIIM.mjs.map +0 -1
  579. package/dist/chunk-LHJKLUM7.mjs +0 -18
  580. package/dist/chunk-LHJKLUM7.mjs.map +0 -1
  581. package/dist/chunk-MBANGIG3.mjs +0 -781
  582. package/dist/chunk-MBANGIG3.mjs.map +0 -1
  583. package/dist/chunk-MWSAH7ZG.mjs +0 -42
  584. package/dist/chunk-MWSAH7ZG.mjs.map +0 -1
  585. package/dist/chunk-MZOGYD4N.mjs +0 -186
  586. package/dist/chunk-MZOGYD4N.mjs.map +0 -1
  587. package/dist/chunk-NCRP2YHY.mjs +0 -1598
  588. package/dist/chunk-NCRP2YHY.mjs.map +0 -1
  589. package/dist/chunk-NDGHXVGS.js +0 -25
  590. package/dist/chunk-NDGHXVGS.js.map +0 -1
  591. package/dist/chunk-NDPO5OMC.js +0 -563
  592. package/dist/chunk-NDPO5OMC.js.map +0 -1
  593. package/dist/chunk-PBI7FKMB.js +0 -43
  594. package/dist/chunk-PBI7FKMB.js.map +0 -1
  595. package/dist/chunk-Q5EDCKQA.js +0 -336
  596. package/dist/chunk-Q5EDCKQA.js.map +0 -1
  597. package/dist/chunk-Q5VFBPMG.mjs +0 -76
  598. package/dist/chunk-Q5VFBPMG.mjs.map +0 -1
  599. package/dist/chunk-QDUBO567.js +0 -1148
  600. package/dist/chunk-QDUBO567.js.map +0 -1
  601. package/dist/chunk-QP5N3ER6.js +0 -18
  602. package/dist/chunk-QP5N3ER6.js.map +0 -1
  603. package/dist/chunk-QXAOXBVB.mjs +0 -135
  604. package/dist/chunk-QXAOXBVB.mjs.map +0 -1
  605. package/dist/chunk-R2DXTE2L.js +0 -249
  606. package/dist/chunk-R2DXTE2L.js.map +0 -1
  607. package/dist/chunk-RJP2BRJD.mjs +0 -6077
  608. package/dist/chunk-RJP2BRJD.mjs.map +0 -1
  609. package/dist/chunk-RTD2WHQQ.mjs +0 -16
  610. package/dist/chunk-RTD2WHQQ.mjs.map +0 -1
  611. package/dist/chunk-RWCD2CAD.mjs +0 -1132
  612. package/dist/chunk-RWCD2CAD.mjs.map +0 -1
  613. package/dist/chunk-S37OK2QG.js +0 -216
  614. package/dist/chunk-S37OK2QG.js.map +0 -1
  615. package/dist/chunk-S3PUP7N4.js +0 -20
  616. package/dist/chunk-S3PUP7N4.js.map +0 -1
  617. package/dist/chunk-S6YSGVWD.js +0 -224
  618. package/dist/chunk-S6YSGVWD.js.map +0 -1
  619. package/dist/chunk-S732H246.js +0 -6154
  620. package/dist/chunk-S732H246.js.map +0 -1
  621. package/dist/chunk-SFDJNKWC.js +0 -22
  622. package/dist/chunk-SFDJNKWC.js.map +0 -1
  623. package/dist/chunk-SKFEJPMJ.mjs +0 -226
  624. package/dist/chunk-SKFEJPMJ.mjs.map +0 -1
  625. package/dist/chunk-SLKOEYFH.js +0 -303
  626. package/dist/chunk-SLKOEYFH.js.map +0 -1
  627. package/dist/chunk-TC5YU6A4.mjs +0 -243
  628. package/dist/chunk-TC5YU6A4.mjs.map +0 -1
  629. package/dist/chunk-TXMX6PZR.js +0 -190
  630. package/dist/chunk-TXMX6PZR.js.map +0 -1
  631. package/dist/chunk-UCOE6SET.js +0 -148
  632. package/dist/chunk-UCOE6SET.js.map +0 -1
  633. package/dist/chunk-UIYKZ73N.js +0 -36
  634. package/dist/chunk-UIYKZ73N.js.map +0 -1
  635. package/dist/chunk-V7EVKD5G.mjs +0 -116
  636. package/dist/chunk-V7EVKD5G.mjs.map +0 -1
  637. package/dist/chunk-VHN7PF5I.js +0 -20
  638. package/dist/chunk-VHN7PF5I.js.map +0 -1
  639. package/dist/chunk-VMTEDX5H.js +0 -1275
  640. package/dist/chunk-VMTEDX5H.js.map +0 -1
  641. package/dist/chunk-VRN76M56.mjs +0 -3
  642. package/dist/chunk-VRN76M56.mjs.map +0 -1
  643. package/dist/chunk-VXFUXZN5.mjs +0 -20
  644. package/dist/chunk-VXFUXZN5.mjs.map +0 -1
  645. package/dist/chunk-WEEXCPSE.mjs +0 -86
  646. package/dist/chunk-WEEXCPSE.mjs.map +0 -1
  647. package/dist/chunk-WW4GE6CZ.js +0 -1647
  648. package/dist/chunk-WW4GE6CZ.js.map +0 -1
  649. package/dist/chunk-WZDTNDYR.js +0 -207
  650. package/dist/chunk-WZDTNDYR.js.map +0 -1
  651. package/dist/chunk-XBZIS3MV.mjs +0 -13
  652. package/dist/chunk-XBZIS3MV.mjs.map +0 -1
  653. package/dist/chunk-XFOZ56FB.mjs +0 -20
  654. package/dist/chunk-XFOZ56FB.mjs.map +0 -1
  655. package/dist/chunk-XJ7ZAGC5.js +0 -88
  656. package/dist/chunk-XJ7ZAGC5.js.map +0 -1
  657. package/dist/chunk-XUS5ACKR.mjs +0 -100
  658. package/dist/chunk-XUS5ACKR.mjs.map +0 -1
  659. package/dist/chunk-YOTQG4NP.mjs +0 -314
  660. package/dist/chunk-YOTQG4NP.mjs.map +0 -1
  661. package/dist/chunk-Z23HAXHL.js +0 -136
  662. package/dist/chunk-Z23HAXHL.js.map +0 -1
  663. package/dist/chunk-ZGVB35L2.mjs +0 -25
  664. package/dist/chunk-ZGVB35L2.mjs.map +0 -1
  665. package/dist/chunk-ZLYPALF3.js +0 -242
  666. package/dist/chunk-ZLYPALF3.js.map +0 -1
  667. package/dist/chunk-ZM2SZJTZ.js +0 -158
  668. package/dist/chunk-ZM2SZJTZ.js.map +0 -1
  669. package/dist/chunk-ZRAW3HXA.js +0 -43
  670. package/dist/chunk-ZRAW3HXA.js.map +0 -1
  671. package/dist/chunk-ZWQJSZEY.js +0 -371
  672. package/dist/chunk-ZWQJSZEY.js.map +0 -1
  673. package/dist/components/index.d.mts +0 -405
  674. package/dist/components/index.d.ts +0 -405
  675. package/dist/components/index.js +0 -2516
  676. package/dist/components/index.js.map +0 -1
  677. package/dist/components/index.mjs +0 -2396
  678. package/dist/components/index.mjs.map +0 -1
  679. package/dist/config/index.d.mts +0 -1
  680. package/dist/config/index.d.ts +0 -1
  681. package/dist/config/index.js +0 -21
  682. package/dist/config/index.mjs +0 -4
  683. package/dist/config/server/index.js +0 -1177
  684. package/dist/config/server/index.js.map +0 -1
  685. package/dist/config/server/index.mjs +0 -1138
  686. package/dist/config/server/index.mjs.map +0 -1
  687. package/dist/drizzle-schema-BNhqj2AZ.d.mts +0 -1114
  688. package/dist/drizzle-schema-BNhqj2AZ.d.ts +0 -1114
  689. package/dist/festivalCard/index.d.mts +0 -76
  690. package/dist/festivalCard/index.d.ts +0 -76
  691. package/dist/festivalCard/index.js +0 -1492
  692. package/dist/festivalCard/index.js.map +0 -1
  693. package/dist/festivalCard/index.mjs +0 -1475
  694. package/dist/festivalCard/index.mjs.map +0 -1
  695. package/dist/festivalCard/routes/index.d.mts +0 -42
  696. package/dist/festivalCard/routes/index.d.ts +0 -42
  697. package/dist/festivalCard/routes/index.js +0 -361
  698. package/dist/festivalCard/routes/index.js.map +0 -1
  699. package/dist/festivalCard/routes/index.mjs +0 -356
  700. package/dist/festivalCard/routes/index.mjs.map +0 -1
  701. package/dist/festivalCard/server/index.d.mts +0 -120
  702. package/dist/festivalCard/server/index.d.ts +0 -120
  703. package/dist/festivalCard/server/index.js +0 -272
  704. package/dist/festivalCard/server/index.js.map +0 -1
  705. package/dist/festivalCard/server/index.mjs +0 -265
  706. package/dist/festivalCard/server/index.mjs.map +0 -1
  707. package/dist/festivalCardService-B3GsnNpV.d.ts +0 -13
  708. package/dist/festivalCardService-CWhrLNE9.d.mts +0 -13
  709. package/dist/i18n/index.d.mts +0 -2
  710. package/dist/i18n/index.d.ts +0 -2
  711. package/dist/i18n/index.js +0 -73
  712. package/dist/i18n/index.mjs +0 -4
  713. package/dist/imageCrop/index.d.mts +0 -165
  714. package/dist/imageCrop/index.d.ts +0 -165
  715. package/dist/imageCrop/index.js +0 -560
  716. package/dist/imageCrop/index.js.map +0 -1
  717. package/dist/imageCrop/index.mjs +0 -541
  718. package/dist/imageCrop/index.mjs.map +0 -1
  719. package/dist/index-2G9Dxjvt.d.ts +0 -81
  720. package/dist/index-BcjDRcKp.d.mts +0 -40
  721. package/dist/index-Bjem5rWn.d.mts +0 -17
  722. package/dist/index-BlpXrrTy.d.ts +0 -40
  723. package/dist/index-C5U-2hJq.d.ts +0 -23
  724. package/dist/index-CYuUB8aF.d.mts +0 -67
  725. package/dist/index-CifSBBP2.d.ts +0 -17
  726. package/dist/index-D0K4ehme.d.mts +0 -20
  727. package/dist/index-DLnfKN-a.d.mts +0 -23
  728. package/dist/index-DSel44Ke.d.mts +0 -93
  729. package/dist/index-DSel44Ke.d.ts +0 -93
  730. package/dist/index-DZ5iJtNO.d.mts +0 -102
  731. package/dist/index-DZ5iJtNO.d.ts +0 -102
  732. package/dist/index-Da7qdkgW.d.ts +0 -20
  733. package/dist/index-DrPcMJPc.d.mts +0 -250
  734. package/dist/index-DrPcMJPc.d.ts +0 -250
  735. package/dist/index-WrR57hKT.d.ts +0 -67
  736. package/dist/index-oLUvfqT8.d.ts +0 -20
  737. package/dist/index-pe38RDgC.d.mts +0 -20
  738. package/dist/index-qcOvRVuN.d.mts +0 -81
  739. package/dist/index.d.mts +0 -11590
  740. package/dist/index.d.ts +0 -11590
  741. package/dist/index.js +0 -17679
  742. package/dist/index.js.map +0 -1
  743. package/dist/index.mjs +0 -17403
  744. package/dist/index.mjs.map +0 -1
  745. package/dist/logger/index.d.mts +0 -125
  746. package/dist/logger/index.d.ts +0 -125
  747. package/dist/logger/index.js +0 -29
  748. package/dist/logger/index.mjs +0 -4
  749. package/dist/mikuContest/ui/web/index.d.mts +0 -2
  750. package/dist/mikuContest/ui/web/index.d.ts +0 -2
  751. package/dist/mikuContest/ui/web/index.js +0 -353
  752. package/dist/mikuContest/ui/web/index.js.map +0 -1
  753. package/dist/mikuContest/ui/web/index.mjs +0 -343
  754. package/dist/mikuContest/ui/web/index.mjs.map +0 -1
  755. package/dist/mikuFireworks3D/index.d.mts +0 -268
  756. package/dist/mikuFireworks3D/index.d.ts +0 -268
  757. package/dist/mikuFireworks3D/index.js +0 -1267
  758. package/dist/mikuFireworks3D/index.js.map +0 -1
  759. package/dist/mikuFireworks3D/index.mjs +0 -1228
  760. package/dist/mikuFireworks3D/index.mjs.map +0 -1
  761. package/dist/mikuFusionGame/index.d.mts +0 -117
  762. package/dist/mikuFusionGame/index.d.ts +0 -117
  763. package/dist/mikuFusionGame/index.js +0 -1208
  764. package/dist/mikuFusionGame/index.js.map +0 -1
  765. package/dist/mikuFusionGame/index.mjs +0 -1195
  766. package/dist/mikuFusionGame/index.mjs.map +0 -1
  767. package/dist/mmd/admin/index.d.mts +0 -487
  768. package/dist/mmd/admin/index.d.ts +0 -487
  769. package/dist/mmd/admin/index.js +0 -1058
  770. package/dist/mmd/admin/index.js.map +0 -1
  771. package/dist/mmd/admin/index.mjs +0 -1027
  772. package/dist/mmd/admin/index.mjs.map +0 -1
  773. package/dist/mmd/index.d.mts +0 -2467
  774. package/dist/mmd/index.d.ts +0 -2467
  775. package/dist/mmd/index.js +0 -10119
  776. package/dist/mmd/index.js.map +0 -1
  777. package/dist/mmd/index.mjs +0 -10028
  778. package/dist/mmd/index.mjs.map +0 -1
  779. package/dist/mmd/server/index.d.mts +0 -139
  780. package/dist/mmd/server/index.d.ts +0 -139
  781. package/dist/mmd/server/index.js +0 -424
  782. package/dist/mmd/server/index.js.map +0 -1
  783. package/dist/mmd/server/index.mjs +0 -404
  784. package/dist/mmd/server/index.mjs.map +0 -1
  785. package/dist/music/index.d.mts +0 -74
  786. package/dist/music/index.d.ts +0 -74
  787. package/dist/music/index.js +0 -830
  788. package/dist/music/index.js.map +0 -1
  789. package/dist/music/index.mjs +0 -809
  790. package/dist/music/index.mjs.map +0 -1
  791. package/dist/music/server/index.d.mts +0 -1
  792. package/dist/music/server/index.d.ts +0 -1
  793. package/dist/music/server/index.js +0 -194
  794. package/dist/music/server/index.js.map +0 -1
  795. package/dist/music/server/index.mjs +0 -182
  796. package/dist/music/server/index.mjs.map +0 -1
  797. package/dist/navigation/index.d.mts +0 -93
  798. package/dist/navigation/index.d.ts +0 -93
  799. package/dist/navigation/index.js +0 -453
  800. package/dist/navigation/index.js.map +0 -1
  801. package/dist/navigation/index.mjs +0 -443
  802. package/dist/navigation/index.mjs.map +0 -1
  803. package/dist/ossFile/index.d.mts +0 -61
  804. package/dist/ossFile/index.d.ts +0 -61
  805. package/dist/ossFile/index.js +0 -96
  806. package/dist/ossFile/index.js.map +0 -1
  807. package/dist/ossFile/index.mjs +0 -7
  808. package/dist/ossFile/index.mjs.map +0 -1
  809. package/dist/ossFile/server/index.d.mts +0 -94
  810. package/dist/ossFile/server/index.d.ts +0 -94
  811. package/dist/ossFile/server/index.js +0 -213
  812. package/dist/ossFile/server/index.js.map +0 -1
  813. package/dist/ossFile/server/index.mjs +0 -12
  814. package/dist/ossFile/server/index.mjs.map +0 -1
  815. package/dist/path-DkaHQSyW.d.mts +0 -41
  816. package/dist/path-qjVnH8qU.d.ts +0 -41
  817. package/dist/portfolio/index.d.mts +0 -66
  818. package/dist/portfolio/index.d.ts +0 -66
  819. package/dist/portfolio/index.js +0 -736
  820. package/dist/portfolio/index.js.map +0 -1
  821. package/dist/portfolio/index.mjs +0 -724
  822. package/dist/portfolio/index.mjs.map +0 -1
  823. package/dist/qqbot/server/index.d.mts +0 -216
  824. package/dist/qqbot/server/index.d.ts +0 -216
  825. package/dist/qqbot/server/index.js +0 -394
  826. package/dist/qqbot/server/index.js.map +0 -1
  827. package/dist/qqbot/server/index.mjs +0 -385
  828. package/dist/qqbot/server/index.mjs.map +0 -1
  829. package/dist/qqbot/ui/web/index.d.mts +0 -10
  830. package/dist/qqbot/ui/web/index.d.ts +0 -10
  831. package/dist/qqbot/ui/web/index.js +0 -105
  832. package/dist/qqbot/ui/web/index.js.map +0 -1
  833. package/dist/qqbot/ui/web/index.mjs +0 -99
  834. package/dist/qqbot/ui/web/index.mjs.map +0 -1
  835. package/dist/request/index.d.mts +0 -59
  836. package/dist/request/index.d.ts +0 -59
  837. package/dist/request/index.js +0 -23
  838. package/dist/request/index.js.map +0 -1
  839. package/dist/request/index.mjs +0 -6
  840. package/dist/request/index.mjs.map +0 -1
  841. package/dist/screenReceiver/index.d.mts +0 -86
  842. package/dist/screenReceiver/index.d.ts +0 -86
  843. package/dist/screenReceiver/index.js +0 -281
  844. package/dist/screenReceiver/index.js.map +0 -1
  845. package/dist/screenReceiver/index.mjs +0 -273
  846. package/dist/screenReceiver/index.mjs.map +0 -1
  847. package/dist/session-BCXvGCnm.d.mts +0 -81
  848. package/dist/session-BCXvGCnm.d.ts +0 -81
  849. package/dist/storage/index.d.mts +0 -136
  850. package/dist/storage/index.d.ts +0 -136
  851. package/dist/storage/index.js +0 -48
  852. package/dist/storage/index.js.map +0 -1
  853. package/dist/storage/index.mjs +0 -7
  854. package/dist/storage/index.mjs.map +0 -1
  855. package/dist/testYourself/admin/index.d.mts +0 -58
  856. package/dist/testYourself/admin/index.d.ts +0 -58
  857. package/dist/testYourself/admin/index.js +0 -1009
  858. package/dist/testYourself/admin/index.js.map +0 -1
  859. package/dist/testYourself/admin/index.mjs +0 -1002
  860. package/dist/testYourself/admin/index.mjs.map +0 -1
  861. package/dist/testYourself/index.d.mts +0 -53
  862. package/dist/testYourself/index.d.ts +0 -53
  863. package/dist/testYourself/index.js +0 -2551
  864. package/dist/testYourself/index.js.map +0 -1
  865. package/dist/testYourself/index.mjs +0 -2531
  866. package/dist/testYourself/index.mjs.map +0 -1
  867. package/dist/testYourself/server/index.d.mts +0 -1029
  868. package/dist/testYourself/server/index.d.ts +0 -1029
  869. package/dist/testYourself/server/index.js +0 -825
  870. package/dist/testYourself/server/index.js.map +0 -1
  871. package/dist/testYourself/server/index.mjs +0 -816
  872. package/dist/testYourself/server/index.mjs.map +0 -1
  873. package/dist/types-3ujSNAXb.d.mts +0 -286
  874. package/dist/types-3ujSNAXb.d.ts +0 -286
  875. package/dist/types-B6B210gX.d.mts +0 -270
  876. package/dist/types-B6B210gX.d.ts +0 -270
  877. package/dist/types-Bdnte5EN.d.mts +0 -292
  878. package/dist/types-C_W_CoUD.d.ts +0 -99
  879. package/dist/types-Cs0CLvrH.d.mts +0 -70
  880. package/dist/types-Cs0CLvrH.d.ts +0 -70
  881. package/dist/types-DCRvasyH.d.mts +0 -99
  882. package/dist/types-HorDyIRv.d.mts +0 -303
  883. package/dist/types-HorDyIRv.d.ts +0 -303
  884. package/dist/types-_rFX1atk.d.ts +0 -292
  885. package/dist/types.legacy-J-j-_ig_.d.mts +0 -25
  886. package/dist/types.legacy-J-j-_ig_.d.ts +0 -25
  887. package/dist/universalExport/index.d.mts +0 -312
  888. package/dist/universalExport/index.d.ts +0 -312
  889. package/dist/universalExport/index.js +0 -178
  890. package/dist/universalExport/index.js.map +0 -1
  891. package/dist/universalExport/index.mjs +0 -5
  892. package/dist/universalExport/index.mjs.map +0 -1
  893. package/dist/universalExport/server/index.d.mts +0 -1270
  894. package/dist/universalExport/server/index.d.ts +0 -1270
  895. package/dist/universalExport/server/index.js +0 -123
  896. package/dist/universalExport/server/index.js.map +0 -1
  897. package/dist/universalExport/server/index.mjs +0 -6
  898. package/dist/universalExport/server/index.mjs.map +0 -1
  899. package/dist/universalFile/index.d.mts +0 -409
  900. package/dist/universalFile/index.d.ts +0 -409
  901. package/dist/universalFile/index.js +0 -1742
  902. package/dist/universalFile/index.js.map +0 -1
  903. package/dist/universalFile/index.mjs +0 -1497
  904. package/dist/universalFile/index.mjs.map +0 -1
  905. package/dist/universalFile/server/index.d.mts +0 -1064
  906. package/dist/universalFile/server/index.d.ts +0 -1064
  907. package/dist/universalFile/server/index.js +0 -311
  908. package/dist/universalFile/server/index.js.map +0 -1
  909. package/dist/universalFile/server/index.mjs +0 -10
  910. package/dist/universalFile/server/index.mjs.map +0 -1
  911. package/dist/utils/index.d.mts +0 -192
  912. package/dist/utils/index.d.ts +0 -192
  913. package/dist/utils/index.js +0 -46
  914. package/dist/utils/index.js.map +0 -1
  915. package/dist/utils/index.mjs +0 -5
  916. package/dist/utils/index.mjs.map +0 -1
  917. package/dist/vocaloidBooth/index.d.mts +0 -64
  918. package/dist/vocaloidBooth/index.d.ts +0 -64
  919. package/dist/vocaloidBooth/index.js +0 -376
  920. package/dist/vocaloidBooth/index.js.map +0 -1
  921. package/dist/vocaloidBooth/index.mjs +0 -362
  922. package/dist/vocaloidBooth/index.mjs.map +0 -1
  923. package/dist/vocaloidBooth/server/index.d.mts +0 -111
  924. package/dist/vocaloidBooth/server/index.d.ts +0 -111
  925. package/dist/vocaloidBooth/server/index.js +0 -247
  926. package/dist/vocaloidBooth/server/index.js.map +0 -1
  927. package/dist/vocaloidBooth/server/index.mjs +0 -237
  928. package/dist/vocaloidBooth/server/index.mjs.map +0 -1
  929. package/dist/vocaloidBooth/web/index.d.mts +0 -3
  930. package/dist/vocaloidBooth/web/index.d.ts +0 -3
  931. package/dist/vocaloidBooth/web/index.js +0 -376
  932. package/dist/vocaloidBooth/web/index.js.map +0 -1
  933. package/dist/vocaloidBooth/web/index.mjs +0 -362
  934. package/dist/vocaloidBooth/web/index.mjs.map +0 -1
  935. /package/dist/{ai → common/ai}/llm/core/index.js.map +0 -0
  936. /package/dist/{ai → common/ai}/llm/core/index.mjs.map +0 -0
  937. /package/dist/{ai → common/ai}/llm/electron/index.js.map +0 -0
  938. /package/dist/{ai → common/ai}/llm/electron/index.mjs.map +0 -0
  939. /package/dist/{ai → common/ai}/llm/index.js.map +0 -0
  940. /package/dist/{ai → common/ai}/llm/index.mjs.map +0 -0
  941. /package/dist/{ai → common/ai}/llm/miniapp/index.js.map +0 -0
  942. /package/dist/{ai → common/ai}/llm/miniapp/index.mjs.map +0 -0
  943. /package/dist/{ai → common/ai}/llm/rn/index.js.map +0 -0
  944. /package/dist/{ai → common/ai}/llm/rn/index.mjs.map +0 -0
  945. /package/dist/{ai → common/ai}/llm/ui/electron/index.js.map +0 -0
  946. /package/dist/{ai → common/ai}/llm/ui/electron/index.mjs.map +0 -0
  947. /package/dist/{ai → common/ai}/llm/ui/miniapp/index.js.map +0 -0
  948. /package/dist/{ai → common/ai}/llm/ui/miniapp/index.mjs.map +0 -0
  949. /package/dist/{ai → common/ai}/llm/ui/rn/index.js.map +0 -0
  950. /package/dist/{ai → common/ai}/llm/ui/rn/index.mjs.map +0 -0
  951. /package/dist/{ai → common/ai}/llm/ui/web/index.js.map +0 -0
  952. /package/dist/{ai → common/ai}/llm/ui/web/index.mjs.map +0 -0
  953. /package/dist/{ai → common/ai}/llm/web/index.js.map +0 -0
  954. /package/dist/{ai → common/ai}/llm/web/index.mjs.map +0 -0
  955. /package/dist/{analytics → common/analytics}/index.js.map +0 -0
  956. /package/dist/{analytics → common/analytics}/index.mjs.map +0 -0
  957. /package/dist/{analytics → common/analytics}/server/index.d.mts +0 -0
  958. /package/dist/{analytics → common/analytics}/server/index.d.ts +0 -0
  959. /package/dist/{api → common/api}/index.js.map +0 -0
  960. /package/dist/{api → common/api}/index.mjs.map +0 -0
  961. /package/dist/{auth/client → common/components}/index.js.map +0 -0
  962. /package/dist/{auth/client → common/components}/index.mjs.map +0 -0
  963. /package/dist/{auth/components → common/config}/index.js.map +0 -0
  964. /package/dist/{auth/components → common/config}/index.mjs.map +0 -0
  965. /package/dist/{config → common/config}/server/index.d.mts +0 -0
  966. /package/dist/{config → common/config}/server/index.d.ts +0 -0
  967. /package/dist/{auth/hooks → common/i18n}/index.js.map +0 -0
  968. /package/dist/{auth/hooks → common/i18n}/index.mjs.map +0 -0
  969. /package/dist/{auth → common/imageCrop}/index.js.map +0 -0
  970. /package/dist/{auth → common/imageCrop}/index.mjs.map +0 -0
  971. /package/dist/{auth/schema → common/ossFile}/index.js.map +0 -0
  972. /package/dist/{auth/schema → common/ossFile}/index.mjs.map +0 -0
  973. /package/dist/{auth/services → common/ossFile/server}/index.js.map +0 -0
  974. /package/dist/{auth/services → common/ossFile/server}/index.mjs.map +0 -0
  975. /package/dist/{config → common/universalExport}/index.js.map +0 -0
  976. /package/dist/{config → common/universalExport}/index.mjs.map +0 -0
  977. /package/dist/{i18n → common/universalExport/server}/index.js.map +0 -0
  978. /package/dist/{i18n → common/universalExport/server}/index.mjs.map +0 -0
  979. /package/dist/{logger → common/universalFile/server}/index.js.map +0 -0
  980. /package/dist/{logger → common/universalFile/server}/index.mjs.map +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/business/bubbleShooter/index.ts","../../src/business/bubbleShooter/logic/game.ts","../../src/business/bubbleShooter/ui/web/index.ts","../../src/business/bubbleShooter/ui/web/components/BubbleShooterBoard.tsx","../../src/business/bubbleShooter/ui/web/pages/BubbleShooterGamePage.tsx"],"names":["useMemo","useRef","useState","useEffect","useCallback","React"],"mappings":"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","file":"index.js","sourcesContent":["export * from './types';\nexport * from './logic';\nexport * as webUI from './ui/web';\n","import type {\n BubbleShooterConfig,\n BubbleShooterResolution,\n BubbleShooterSlot,\n} from '../types';\n\nconst slotKey = (row: number, col: number): string => `${row}:${col}`;\n\nconst cloneGrid = (grid: (string | null)[][]): (string | null)[][] => grid.map((row) => [...row]);\n\nexport const DEFAULT_BUBBLE_SHOOTER_CONFIG: BubbleShooterConfig = {\n rows: 12,\n cols: 8,\n initialRows: 5,\n bubbleRadius: 16,\n topOffset: 18,\n palette: ['#fb7185', '#60a5fa', '#34d399', '#fbbf24', '#a78bfa'],\n launchSpeed: 440,\n minMatchCount: 3,\n};\n\nexport const getBubbleDiameter = (config: BubbleShooterConfig): number => config.bubbleRadius * 2;\n\nexport const getRowStep = (config: BubbleShooterConfig): number => Math.round(config.bubbleRadius * 1.73);\n\nexport const getBoardWidth = (config: BubbleShooterConfig): number => {\n return getBubbleDiameter(config) * config.cols + config.bubbleRadius;\n};\n\nexport const getBoardHeight = (config: BubbleShooterConfig): number => {\n return config.topOffset + getRowStep(config) * (config.rows + 1) + config.bubbleRadius;\n};\n\nexport const createEmptyGrid = (config: BubbleShooterConfig): (string | null)[][] => {\n return Array.from({ length: config.rows }, () => Array.from({ length: config.cols }, () => null));\n};\n\nexport const createInitialGrid = (config: BubbleShooterConfig): (string | null)[][] => {\n const grid = createEmptyGrid(config);\n for (let row = 0; row < config.initialRows; row += 1) {\n for (let col = 0; col < config.cols; col += 1) {\n const color = config.palette[Math.floor(Math.random() * config.palette.length)] || config.palette[0] || '#60a5fa';\n const targetRow = grid[row];\n if (targetRow) {\n targetRow[col] = color;\n }\n }\n }\n return grid;\n};\n\nexport const pickRandomColor = (palette: string[]): string => {\n return palette[Math.floor(Math.random() * palette.length)] || '#60a5fa';\n};\n\nexport const getBubblePosition = (\n row: number,\n col: number,\n config: BubbleShooterConfig\n): { x: number; y: number } => {\n const diameter = getBubbleDiameter(config);\n const rowStep = getRowStep(config);\n const x = config.bubbleRadius + col * diameter + (row % 2 === 1 ? config.bubbleRadius : 0);\n const y = config.topOffset + config.bubbleRadius + row * rowStep;\n return { x, y };\n};\n\nexport const isValidSlot = (slot: BubbleShooterSlot, config: BubbleShooterConfig): boolean => {\n return slot.row >= 0 && slot.row < config.rows && slot.col >= 0 && slot.col < config.cols;\n};\n\nexport const getNeighbors = (slot: BubbleShooterSlot, config: BubbleShooterConfig): BubbleShooterSlot[] => {\n const evenDirections = [\n { row: -1, col: -1 },\n { row: -1, col: 0 },\n { row: 0, col: -1 },\n { row: 0, col: 1 },\n { row: 1, col: -1 },\n { row: 1, col: 0 },\n ];\n\n const oddDirections = [\n { row: -1, col: 0 },\n { row: -1, col: 1 },\n { row: 0, col: -1 },\n { row: 0, col: 1 },\n { row: 1, col: 0 },\n { row: 1, col: 1 },\n ];\n\n const directions = slot.row % 2 === 0 ? evenDirections : oddDirections;\n return directions\n .map((direction) => ({ row: slot.row + direction.row, col: slot.col + direction.col }))\n .filter((candidate) => isValidSlot(candidate, config));\n};\n\nexport const getNearestSlot = (\n x: number,\n y: number,\n config: BubbleShooterConfig\n): BubbleShooterSlot => {\n const rowStep = getRowStep(config);\n const diameter = getBubbleDiameter(config);\n const row = Math.max(0, Math.min(config.rows - 1, Math.round((y - config.topOffset - config.bubbleRadius) / rowStep)));\n const rowOffset = row % 2 === 1 ? config.bubbleRadius : 0;\n const col = Math.max(0, Math.min(config.cols - 1, Math.round((x - config.bubbleRadius - rowOffset) / diameter)));\n return { row, col };\n};\n\nconst hasAdjacentBubble = (\n row: number,\n col: number,\n grid: (string | null)[][],\n config: BubbleShooterConfig\n): boolean => {\n if (row === 0) {\n return true;\n }\n return getNeighbors({ row, col }, config).some((neighbor) => {\n const targetRow = grid[neighbor.row];\n return Boolean(targetRow?.[neighbor.col]);\n });\n};\n\nexport const findAttachSlot = (\n x: number,\n y: number,\n grid: (string | null)[][],\n config: BubbleShooterConfig,\n preferred?: BubbleShooterSlot\n): BubbleShooterSlot | null => {\n const candidates: BubbleShooterSlot[] = [];\n if (preferred && isValidSlot(preferred, config)) {\n candidates.push(preferred, ...getNeighbors(preferred, config));\n }\n const nearest = getNearestSlot(x, y, config);\n candidates.push(nearest, ...getNeighbors(nearest, config));\n\n const uniqueCandidates = Array.from(\n new Map(candidates.map((slot) => [slotKey(slot.row, slot.col), slot])).values()\n );\n\n let best: BubbleShooterSlot | null = null;\n let bestDistance = Number.POSITIVE_INFINITY;\n\n uniqueCandidates.forEach((slot) => {\n const targetRow = grid[slot.row];\n if (!targetRow || targetRow[slot.col] || !hasAdjacentBubble(slot.row, slot.col, grid, config)) {\n return;\n }\n const position = getBubblePosition(slot.row, slot.col, config);\n const dx = position.x - x;\n const dy = position.y - y;\n const distance = dx * dx + dy * dy;\n if (distance < bestDistance) {\n bestDistance = distance;\n best = slot;\n }\n });\n\n return best;\n};\n\nexport const findCollisionSlot = (\n x: number,\n y: number,\n grid: (string | null)[][],\n config: BubbleShooterConfig\n): BubbleShooterSlot | null => {\n const threshold = (config.bubbleRadius * 2 - 1) ** 2;\n\n for (let row = 0; row < config.rows; row += 1) {\n for (let col = 0; col < config.cols; col += 1) {\n const targetRow = grid[row];\n if (!targetRow?.[col]) {\n continue;\n }\n const position = getBubblePosition(row, col, config);\n const dx = position.x - x;\n const dy = position.y - y;\n if (dx * dx + dy * dy <= threshold) {\n return { row, col };\n }\n }\n }\n\n return null;\n};\n\nconst collectGroup = (\n start: BubbleShooterSlot,\n grid: (string | null)[][],\n config: BubbleShooterConfig,\n color: string\n): BubbleShooterSlot[] => {\n const queue: BubbleShooterSlot[] = [start];\n const visited = new Set<string>();\n const group: BubbleShooterSlot[] = [];\n\n while (queue.length > 0) {\n const current = queue.shift();\n if (!current) {\n continue;\n }\n\n const key = slotKey(current.row, current.col);\n if (visited.has(key)) {\n continue;\n }\n visited.add(key);\n\n const currentColor = grid[current.row]?.[current.col];\n if (currentColor !== color) {\n continue;\n }\n\n group.push(current);\n getNeighbors(current, config).forEach((neighbor) => {\n const neighborKey = slotKey(neighbor.row, neighbor.col);\n if (!visited.has(neighborKey)) {\n queue.push(neighbor);\n }\n });\n }\n\n return group;\n};\n\nconst collectTopConnected = (\n grid: (string | null)[][],\n config: BubbleShooterConfig\n): Set<string> => {\n const visited = new Set<string>();\n const queue: BubbleShooterSlot[] = [];\n\n for (let col = 0; col < config.cols; col += 1) {\n if (grid[0]?.[col]) {\n queue.push({ row: 0, col });\n }\n }\n\n while (queue.length > 0) {\n const current = queue.shift();\n if (!current) {\n continue;\n }\n\n const key = slotKey(current.row, current.col);\n if (visited.has(key)) {\n continue;\n }\n\n if (!grid[current.row]?.[current.col]) {\n continue;\n }\n\n visited.add(key);\n getNeighbors(current, config).forEach((neighbor) => {\n const neighborKey = slotKey(neighbor.row, neighbor.col);\n if (!visited.has(neighborKey)) {\n queue.push(neighbor);\n }\n });\n }\n\n return visited;\n};\n\nexport const resolveMatches = (\n grid: (string | null)[][],\n placed: BubbleShooterSlot,\n config: BubbleShooterConfig\n): BubbleShooterResolution => {\n const nextGrid = cloneGrid(grid);\n const placedColor = nextGrid[placed.row]?.[placed.col];\n if (!placedColor) {\n return { grid: nextGrid, removed: 0, matched: 0, dropped: 0 };\n }\n\n const group = collectGroup(placed, nextGrid, config, placedColor);\n let matched = 0;\n if (group.length >= config.minMatchCount) {\n group.forEach((slot) => {\n const targetRow = nextGrid[slot.row];\n if (targetRow?.[slot.col]) {\n targetRow[slot.col] = null;\n matched += 1;\n }\n });\n }\n\n let dropped = 0;\n if (matched > 0) {\n const topConnected = collectTopConnected(nextGrid, config);\n for (let row = 0; row < config.rows; row += 1) {\n for (let col = 0; col < config.cols; col += 1) {\n const targetRow = nextGrid[row];\n if (targetRow?.[col] && !topConnected.has(slotKey(row, col))) {\n targetRow[col] = null;\n dropped += 1;\n }\n }\n }\n }\n\n return {\n grid: nextGrid,\n matched,\n dropped,\n removed: matched + dropped,\n };\n};\n\nexport const hasAnyBubble = (grid: (string | null)[][]): boolean => {\n return grid.some((row) => row.some(Boolean));\n};\n\nexport const hasReachedDangerLine = (\n grid: (string | null)[][],\n config: BubbleShooterConfig,\n dangerRowOffset = 2\n): boolean => {\n const limitRow = Math.max(0, config.rows - dangerRowOffset);\n for (let row = limitRow; row < config.rows; row += 1) {\n const targetRow = grid[row];\n if (targetRow?.some(Boolean)) {\n return true;\n }\n }\n return false;\n};\n","export { default as BubbleShooterBoard } from './components/BubbleShooterBoard';\nexport { default as BubbleShooterGamePage } from './pages/BubbleShooterGamePage';\n","'use client';\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { BubbleShooterConfig, BubbleShooterProjectile, BubbleShooterStatus } from '../../../types';\nimport {\n DEFAULT_BUBBLE_SHOOTER_CONFIG,\n createInitialGrid,\n findAttachSlot,\n findCollisionSlot,\n getBoardHeight,\n getBoardWidth,\n getBubblePosition,\n getNearestSlot,\n hasAnyBubble,\n hasReachedDangerLine,\n pickRandomColor,\n resolveMatches,\n} from '../../../logic';\n\nexport interface BubbleShooterBoardProps {\n config?: Partial<BubbleShooterConfig>;\n className?: string;\n}\n\nconst clampAim = (angle: number): number => {\n const minAngle = -Math.PI + 0.15;\n const maxAngle = -0.15;\n return Math.max(minAngle, Math.min(maxAngle, angle));\n};\n\nconst drawCircle = (\n context: CanvasRenderingContext2D,\n x: number,\n y: number,\n radius: number,\n color: string\n): void => {\n context.beginPath();\n context.arc(x, y, radius, 0, Math.PI * 2);\n context.fillStyle = color;\n context.fill();\n context.strokeStyle = 'rgba(15, 23, 42, 0.15)';\n context.lineWidth = 1;\n context.stroke();\n};\n\nconst normalizeConfig = (input?: Partial<BubbleShooterConfig>): BubbleShooterConfig => {\n return {\n ...DEFAULT_BUBBLE_SHOOTER_CONFIG,\n ...input,\n palette: input?.palette?.length ? input.palette : DEFAULT_BUBBLE_SHOOTER_CONFIG.palette,\n };\n};\n\nconst BubbleShooterBoard: React.FC<BubbleShooterBoardProps> = ({ config: inputConfig, className }) => {\n const config = useMemo(() => normalizeConfig(inputConfig), [inputConfig]);\n const boardWidth = useMemo(() => getBoardWidth(config), [config]);\n const boardHeight = useMemo(() => getBoardHeight(config), [config]);\n const shooterX = boardWidth / 2;\n const shooterY = boardHeight - config.bubbleRadius - 12;\n\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const rafRef = useRef<number | null>(null);\n const lastTsRef = useRef<number>(0);\n\n const [grid, setGrid] = useState<(string | null)[][]>(() => createInitialGrid(config));\n const [status, setStatus] = useState<BubbleShooterStatus>('ready');\n const [score, setScore] = useState(0);\n const [shots, setShots] = useState(0);\n const [aimAngle, setAimAngle] = useState(-Math.PI / 2);\n const [currentColor, setCurrentColor] = useState(() => pickRandomColor(config.palette));\n const [nextColor, setNextColor] = useState(() => pickRandomColor(config.palette));\n const [projectile, setProjectile] = useState<BubbleShooterProjectile | null>(null);\n\n const gridRef = useRef(grid);\n const currentColorRef = useRef(currentColor);\n const nextColorRef = useRef(nextColor);\n const statusRef = useRef(status);\n\n useEffect(() => {\n gridRef.current = grid;\n }, [grid]);\n\n useEffect(() => {\n currentColorRef.current = currentColor;\n }, [currentColor]);\n\n useEffect(() => {\n nextColorRef.current = nextColor;\n }, [nextColor]);\n\n useEffect(() => {\n statusRef.current = status;\n }, [status]);\n\n const restart = useCallback(() => {\n setGrid(createInitialGrid(config));\n setScore(0);\n setShots(0);\n setStatus('ready');\n setProjectile(null);\n setAimAngle(-Math.PI / 2);\n setCurrentColor(pickRandomColor(config.palette));\n setNextColor(pickRandomColor(config.palette));\n lastTsRef.current = 0;\n }, [config]);\n\n useEffect(() => {\n restart();\n }, [restart]);\n\n const settleProjectile = useCallback(\n (x: number, y: number, preferredSlot?: { row: number; col: number }) => {\n const working = gridRef.current.map((row) => [...row]);\n const attach = findAttachSlot(x, y, working, config, preferredSlot);\n\n if (!attach) {\n setProjectile(null);\n setStatus('lost');\n return;\n }\n\n const rowData = working[attach.row];\n if (!rowData || rowData[attach.col]) {\n setProjectile(null);\n setStatus('lost');\n return;\n }\n\n rowData[attach.col] = currentColorRef.current;\n const resolved = resolveMatches(working, attach, config);\n\n setGrid(resolved.grid);\n setProjectile(null);\n setShots((prev) => prev + 1);\n if (resolved.removed > 0) {\n setScore((prev) => prev + resolved.matched * 10 + resolved.dropped * 15);\n }\n\n const hasBubbleLeft = hasAnyBubble(resolved.grid);\n if (!hasBubbleLeft) {\n setStatus('won');\n } else if (hasReachedDangerLine(resolved.grid, config)) {\n setStatus('lost');\n } else {\n setStatus('ready');\n }\n\n const nextCurrent = nextColorRef.current;\n const nextQueued = pickRandomColor(config.palette);\n setCurrentColor(nextCurrent);\n setNextColor(nextQueued);\n },\n [config]\n );\n\n useEffect(() => {\n if (status !== 'shooting') {\n return;\n }\n\n const step = (timestamp: number) => {\n if (statusRef.current !== 'shooting') {\n lastTsRef.current = 0;\n return;\n }\n\n const previousTs = lastTsRef.current || timestamp;\n const deltaSec = Math.min((timestamp - previousTs) / 1000, 0.05);\n lastTsRef.current = timestamp;\n let shouldContinue = true;\n\n setProjectile((prev) => {\n if (!prev || statusRef.current !== 'shooting') {\n shouldContinue = false;\n return prev;\n }\n\n let nextX = prev.x + prev.vx * deltaSec;\n const nextY = prev.y + prev.vy * deltaSec;\n let nextVx = prev.vx;\n\n if (nextX <= config.bubbleRadius) {\n nextX = config.bubbleRadius;\n nextVx = Math.abs(nextVx);\n } else if (nextX >= boardWidth - config.bubbleRadius) {\n nextX = boardWidth - config.bubbleRadius;\n nextVx = -Math.abs(nextVx);\n }\n\n if (nextY <= config.topOffset + config.bubbleRadius) {\n shouldContinue = false;\n settleProjectile(nextX, config.topOffset + config.bubbleRadius, getNearestSlot(nextX, nextY, config));\n return null;\n }\n\n const collision = findCollisionSlot(nextX, nextY, gridRef.current, config);\n if (collision) {\n shouldContinue = false;\n settleProjectile(nextX, nextY, collision);\n return null;\n }\n\n return {\n ...prev,\n x: nextX,\n y: nextY,\n vx: nextVx,\n };\n });\n\n if (shouldContinue) {\n rafRef.current = window.requestAnimationFrame(step);\n } else {\n rafRef.current = null;\n lastTsRef.current = 0;\n }\n };\n\n rafRef.current = window.requestAnimationFrame(step);\n return () => {\n if (rafRef.current) {\n window.cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n lastTsRef.current = 0;\n };\n }, [boardWidth, config, settleProjectile, status]);\n\n const shoot = useCallback(() => {\n if (status !== 'ready') {\n return;\n }\n\n const vx = Math.cos(aimAngle) * config.launchSpeed;\n const vy = Math.sin(aimAngle) * config.launchSpeed;\n setProjectile({\n x: shooterX,\n y: shooterY - config.bubbleRadius,\n vx,\n vy,\n color: currentColor,\n });\n setStatus('shooting');\n }, [aimAngle, config.bubbleRadius, config.launchSpeed, currentColor, shooterX, shooterY, status]);\n\n const updateAimFromPointer = useCallback(\n (event: React.PointerEvent<HTMLCanvasElement>) => {\n const canvas = canvasRef.current;\n if (!canvas || status !== 'ready') {\n return;\n }\n const rect = canvas.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n const rawAngle = Math.atan2(y - shooterY, x - shooterX);\n setAimAngle(clampAim(rawAngle));\n },\n [shooterX, shooterY, status]\n );\n\n const handlePointerDown = (event: React.PointerEvent<HTMLCanvasElement>) => {\n event.currentTarget.setPointerCapture(event.pointerId);\n updateAimFromPointer(event);\n };\n\n const handlePointerUp = (event: React.PointerEvent<HTMLCanvasElement>) => {\n updateAimFromPointer(event);\n shoot();\n event.currentTarget.releasePointerCapture(event.pointerId);\n };\n\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) {\n return;\n }\n const context = canvas.getContext('2d');\n if (!context) {\n return;\n }\n\n const gradient = context.createLinearGradient(0, 0, 0, boardHeight);\n gradient.addColorStop(0, '#f8fafc');\n gradient.addColorStop(1, '#e2e8f0');\n context.fillStyle = gradient;\n context.fillRect(0, 0, boardWidth, boardHeight);\n\n context.fillStyle = 'rgba(148, 163, 184, 0.2)';\n context.fillRect(0, shooterY - config.bubbleRadius * 1.3, boardWidth, 2);\n\n for (let row = 0; row < config.rows; row += 1) {\n for (let col = 0; col < config.cols; col += 1) {\n const color = grid[row]?.[col];\n if (!color) {\n continue;\n }\n const position = getBubblePosition(row, col, config);\n drawCircle(context, position.x, position.y, config.bubbleRadius - 0.5, color);\n }\n }\n\n const aimLength = config.bubbleRadius * 9;\n const aimX = shooterX + Math.cos(aimAngle) * aimLength;\n const aimY = shooterY + Math.sin(aimAngle) * aimLength;\n context.strokeStyle = 'rgba(71, 85, 105, 0.75)';\n context.lineWidth = 2;\n context.setLineDash([4, 6]);\n context.beginPath();\n context.moveTo(shooterX, shooterY);\n context.lineTo(aimX, aimY);\n context.stroke();\n context.setLineDash([]);\n\n drawCircle(context, shooterX, shooterY, config.bubbleRadius - 0.5, currentColor);\n\n if (projectile) {\n drawCircle(context, projectile.x, projectile.y, config.bubbleRadius - 0.5, projectile.color);\n }\n\n drawCircle(context, boardWidth - config.bubbleRadius * 1.6, shooterY, config.bubbleRadius * 0.72, nextColor);\n context.fillStyle = '#334155';\n context.font = '12px sans-serif';\n context.textAlign = 'right';\n context.fillText('Next', boardWidth - config.bubbleRadius * 0.5, shooterY - config.bubbleRadius * 1.05);\n\n if (status === 'won' || status === 'lost') {\n context.fillStyle = 'rgba(15, 23, 42, 0.48)';\n context.fillRect(0, 0, boardWidth, boardHeight);\n context.fillStyle = '#ffffff';\n context.font = 'bold 26px sans-serif';\n context.textAlign = 'center';\n context.fillText(status === 'won' ? 'You Win!' : 'Game Over', boardWidth / 2, boardHeight / 2);\n }\n }, [aimAngle, boardHeight, boardWidth, config, currentColor, grid, nextColor, projectile, shooterX, shooterY, status]);\n\n return (\n <div className={className}>\n <div style={{ display: 'flex', gap: 16, marginBottom: 10, flexWrap: 'wrap', color: '#334155' }}>\n <span>状态:{status === 'ready' ? '待发射' : status === 'shooting' ? '发射中' : status === 'won' ? '胜利' : '失败'}</span>\n <span>分数:{score}</span>\n <span>发射次数:{shots}</span>\n </div>\n\n <canvas\n ref={canvasRef}\n width={boardWidth}\n height={boardHeight}\n onPointerMove={updateAimFromPointer}\n onPointerDown={handlePointerDown}\n onPointerUp={handlePointerUp}\n style={{\n width: '100%',\n maxWidth: boardWidth,\n borderRadius: 12,\n border: '1px solid #cbd5e1',\n boxShadow: '0 8px 28px rgba(15, 23, 42, 0.12)',\n touchAction: 'none',\n cursor: status === 'ready' ? 'crosshair' : 'default',\n display: 'block',\n }}\n />\n\n <div style={{ marginTop: 10, display: 'flex', gap: 10 }}>\n <button type=\"button\" onClick={restart} style={{ padding: '8px 12px' }}>\n 重新开始\n </button>\n </div>\n </div>\n );\n};\n\nexport default BubbleShooterBoard;\n","import React from 'react';\nimport type { BubbleShooterConfig } from '../../../types';\nimport BubbleShooterBoard from '../components/BubbleShooterBoard';\n\nexport interface BubbleShooterGamePageProps {\n config?: Partial<BubbleShooterConfig>;\n title?: string;\n description?: string;\n}\n\nconst BubbleShooterGamePage: React.FC<BubbleShooterGamePageProps> = ({\n config,\n title = '泡泡龙',\n description = '基础版:瞄准、发射、连消、悬空掉落。',\n}) => {\n return (\n <section>\n <h2>{title}</h2>\n <p style={{ color: '#64748b' }}>{description}</p>\n <BubbleShooterBoard config={config} />\n </section>\n );\n};\n\nexport default BubbleShooterGamePage;\n"]}
@@ -1,575 +0,0 @@
1
- import React, { useMemo, useRef, useState, useEffect, useCallback } from 'react';
2
-
3
- var __defProp = Object.defineProperty;
4
- var __export = (target, all) => {
5
- for (var name in all)
6
- __defProp(target, name, { get: all[name], enumerable: true });
7
- };
8
-
9
- // src/business/bubbleShooter/index.ts
10
- var bubbleShooter_exports = {};
11
- __export(bubbleShooter_exports, {
12
- DEFAULT_BUBBLE_SHOOTER_CONFIG: () => DEFAULT_BUBBLE_SHOOTER_CONFIG,
13
- createEmptyGrid: () => createEmptyGrid,
14
- createInitialGrid: () => createInitialGrid,
15
- findAttachSlot: () => findAttachSlot,
16
- findCollisionSlot: () => findCollisionSlot,
17
- getBoardHeight: () => getBoardHeight,
18
- getBoardWidth: () => getBoardWidth,
19
- getBubbleDiameter: () => getBubbleDiameter,
20
- getBubblePosition: () => getBubblePosition,
21
- getNearestSlot: () => getNearestSlot,
22
- getNeighbors: () => getNeighbors,
23
- getRowStep: () => getRowStep,
24
- hasAnyBubble: () => hasAnyBubble,
25
- hasReachedDangerLine: () => hasReachedDangerLine,
26
- isValidSlot: () => isValidSlot,
27
- pickRandomColor: () => pickRandomColor,
28
- resolveMatches: () => resolveMatches,
29
- webUI: () => web_exports
30
- });
31
-
32
- // src/business/bubbleShooter/logic/game.ts
33
- var slotKey = (row, col) => `${row}:${col}`;
34
- var cloneGrid = (grid) => grid.map((row) => [...row]);
35
- var DEFAULT_BUBBLE_SHOOTER_CONFIG = {
36
- rows: 12,
37
- cols: 8,
38
- initialRows: 5,
39
- bubbleRadius: 16,
40
- topOffset: 18,
41
- palette: ["#fb7185", "#60a5fa", "#34d399", "#fbbf24", "#a78bfa"],
42
- launchSpeed: 440,
43
- minMatchCount: 3
44
- };
45
- var getBubbleDiameter = (config) => config.bubbleRadius * 2;
46
- var getRowStep = (config) => Math.round(config.bubbleRadius * 1.73);
47
- var getBoardWidth = (config) => {
48
- return getBubbleDiameter(config) * config.cols + config.bubbleRadius;
49
- };
50
- var getBoardHeight = (config) => {
51
- return config.topOffset + getRowStep(config) * (config.rows + 1) + config.bubbleRadius;
52
- };
53
- var createEmptyGrid = (config) => {
54
- return Array.from({ length: config.rows }, () => Array.from({ length: config.cols }, () => null));
55
- };
56
- var createInitialGrid = (config) => {
57
- const grid = createEmptyGrid(config);
58
- for (let row = 0; row < config.initialRows; row += 1) {
59
- for (let col = 0; col < config.cols; col += 1) {
60
- const color = config.palette[Math.floor(Math.random() * config.palette.length)] || config.palette[0] || "#60a5fa";
61
- const targetRow = grid[row];
62
- if (targetRow) {
63
- targetRow[col] = color;
64
- }
65
- }
66
- }
67
- return grid;
68
- };
69
- var pickRandomColor = (palette) => {
70
- return palette[Math.floor(Math.random() * palette.length)] || "#60a5fa";
71
- };
72
- var getBubblePosition = (row, col, config) => {
73
- const diameter = getBubbleDiameter(config);
74
- const rowStep = getRowStep(config);
75
- const x = config.bubbleRadius + col * diameter + (row % 2 === 1 ? config.bubbleRadius : 0);
76
- const y = config.topOffset + config.bubbleRadius + row * rowStep;
77
- return { x, y };
78
- };
79
- var isValidSlot = (slot, config) => {
80
- return slot.row >= 0 && slot.row < config.rows && slot.col >= 0 && slot.col < config.cols;
81
- };
82
- var getNeighbors = (slot, config) => {
83
- const evenDirections = [
84
- { row: -1, col: -1 },
85
- { row: -1, col: 0 },
86
- { row: 0, col: -1 },
87
- { row: 0, col: 1 },
88
- { row: 1, col: -1 },
89
- { row: 1, col: 0 }
90
- ];
91
- const oddDirections = [
92
- { row: -1, col: 0 },
93
- { row: -1, col: 1 },
94
- { row: 0, col: -1 },
95
- { row: 0, col: 1 },
96
- { row: 1, col: 0 },
97
- { row: 1, col: 1 }
98
- ];
99
- const directions = slot.row % 2 === 0 ? evenDirections : oddDirections;
100
- return directions.map((direction) => ({ row: slot.row + direction.row, col: slot.col + direction.col })).filter((candidate) => isValidSlot(candidate, config));
101
- };
102
- var getNearestSlot = (x, y, config) => {
103
- const rowStep = getRowStep(config);
104
- const diameter = getBubbleDiameter(config);
105
- const row = Math.max(0, Math.min(config.rows - 1, Math.round((y - config.topOffset - config.bubbleRadius) / rowStep)));
106
- const rowOffset = row % 2 === 1 ? config.bubbleRadius : 0;
107
- const col = Math.max(0, Math.min(config.cols - 1, Math.round((x - config.bubbleRadius - rowOffset) / diameter)));
108
- return { row, col };
109
- };
110
- var hasAdjacentBubble = (row, col, grid, config) => {
111
- if (row === 0) {
112
- return true;
113
- }
114
- return getNeighbors({ row, col }, config).some((neighbor) => {
115
- const targetRow = grid[neighbor.row];
116
- return Boolean(targetRow?.[neighbor.col]);
117
- });
118
- };
119
- var findAttachSlot = (x, y, grid, config, preferred) => {
120
- const candidates = [];
121
- if (preferred && isValidSlot(preferred, config)) {
122
- candidates.push(preferred, ...getNeighbors(preferred, config));
123
- }
124
- const nearest = getNearestSlot(x, y, config);
125
- candidates.push(nearest, ...getNeighbors(nearest, config));
126
- const uniqueCandidates = Array.from(
127
- new Map(candidates.map((slot) => [slotKey(slot.row, slot.col), slot])).values()
128
- );
129
- let best = null;
130
- let bestDistance = Number.POSITIVE_INFINITY;
131
- uniqueCandidates.forEach((slot) => {
132
- const targetRow = grid[slot.row];
133
- if (!targetRow || targetRow[slot.col] || !hasAdjacentBubble(slot.row, slot.col, grid, config)) {
134
- return;
135
- }
136
- const position = getBubblePosition(slot.row, slot.col, config);
137
- const dx = position.x - x;
138
- const dy = position.y - y;
139
- const distance = dx * dx + dy * dy;
140
- if (distance < bestDistance) {
141
- bestDistance = distance;
142
- best = slot;
143
- }
144
- });
145
- return best;
146
- };
147
- var findCollisionSlot = (x, y, grid, config) => {
148
- const threshold = (config.bubbleRadius * 2 - 1) ** 2;
149
- for (let row = 0; row < config.rows; row += 1) {
150
- for (let col = 0; col < config.cols; col += 1) {
151
- const targetRow = grid[row];
152
- if (!targetRow?.[col]) {
153
- continue;
154
- }
155
- const position = getBubblePosition(row, col, config);
156
- const dx = position.x - x;
157
- const dy = position.y - y;
158
- if (dx * dx + dy * dy <= threshold) {
159
- return { row, col };
160
- }
161
- }
162
- }
163
- return null;
164
- };
165
- var collectGroup = (start, grid, config, color) => {
166
- const queue = [start];
167
- const visited = /* @__PURE__ */ new Set();
168
- const group = [];
169
- while (queue.length > 0) {
170
- const current = queue.shift();
171
- if (!current) {
172
- continue;
173
- }
174
- const key = slotKey(current.row, current.col);
175
- if (visited.has(key)) {
176
- continue;
177
- }
178
- visited.add(key);
179
- const currentColor = grid[current.row]?.[current.col];
180
- if (currentColor !== color) {
181
- continue;
182
- }
183
- group.push(current);
184
- getNeighbors(current, config).forEach((neighbor) => {
185
- const neighborKey = slotKey(neighbor.row, neighbor.col);
186
- if (!visited.has(neighborKey)) {
187
- queue.push(neighbor);
188
- }
189
- });
190
- }
191
- return group;
192
- };
193
- var collectTopConnected = (grid, config) => {
194
- const visited = /* @__PURE__ */ new Set();
195
- const queue = [];
196
- for (let col = 0; col < config.cols; col += 1) {
197
- if (grid[0]?.[col]) {
198
- queue.push({ row: 0, col });
199
- }
200
- }
201
- while (queue.length > 0) {
202
- const current = queue.shift();
203
- if (!current) {
204
- continue;
205
- }
206
- const key = slotKey(current.row, current.col);
207
- if (visited.has(key)) {
208
- continue;
209
- }
210
- if (!grid[current.row]?.[current.col]) {
211
- continue;
212
- }
213
- visited.add(key);
214
- getNeighbors(current, config).forEach((neighbor) => {
215
- const neighborKey = slotKey(neighbor.row, neighbor.col);
216
- if (!visited.has(neighborKey)) {
217
- queue.push(neighbor);
218
- }
219
- });
220
- }
221
- return visited;
222
- };
223
- var resolveMatches = (grid, placed, config) => {
224
- const nextGrid = cloneGrid(grid);
225
- const placedColor = nextGrid[placed.row]?.[placed.col];
226
- if (!placedColor) {
227
- return { grid: nextGrid, removed: 0, matched: 0, dropped: 0 };
228
- }
229
- const group = collectGroup(placed, nextGrid, config, placedColor);
230
- let matched = 0;
231
- if (group.length >= config.minMatchCount) {
232
- group.forEach((slot) => {
233
- const targetRow = nextGrid[slot.row];
234
- if (targetRow?.[slot.col]) {
235
- targetRow[slot.col] = null;
236
- matched += 1;
237
- }
238
- });
239
- }
240
- let dropped = 0;
241
- if (matched > 0) {
242
- const topConnected = collectTopConnected(nextGrid, config);
243
- for (let row = 0; row < config.rows; row += 1) {
244
- for (let col = 0; col < config.cols; col += 1) {
245
- const targetRow = nextGrid[row];
246
- if (targetRow?.[col] && !topConnected.has(slotKey(row, col))) {
247
- targetRow[col] = null;
248
- dropped += 1;
249
- }
250
- }
251
- }
252
- }
253
- return {
254
- grid: nextGrid,
255
- matched,
256
- dropped,
257
- removed: matched + dropped
258
- };
259
- };
260
- var hasAnyBubble = (grid) => {
261
- return grid.some((row) => row.some(Boolean));
262
- };
263
- var hasReachedDangerLine = (grid, config, dangerRowOffset = 2) => {
264
- const limitRow = Math.max(0, config.rows - dangerRowOffset);
265
- for (let row = limitRow; row < config.rows; row += 1) {
266
- const targetRow = grid[row];
267
- if (targetRow?.some(Boolean)) {
268
- return true;
269
- }
270
- }
271
- return false;
272
- };
273
-
274
- // src/business/bubbleShooter/ui/web/index.ts
275
- var web_exports = {};
276
- __export(web_exports, {
277
- BubbleShooterBoard: () => BubbleShooterBoard_default,
278
- BubbleShooterGamePage: () => BubbleShooterGamePage_default
279
- });
280
- var clampAim = (angle) => {
281
- const minAngle = -Math.PI + 0.15;
282
- const maxAngle = -0.15;
283
- return Math.max(minAngle, Math.min(maxAngle, angle));
284
- };
285
- var drawCircle = (context, x, y, radius, color) => {
286
- context.beginPath();
287
- context.arc(x, y, radius, 0, Math.PI * 2);
288
- context.fillStyle = color;
289
- context.fill();
290
- context.strokeStyle = "rgba(15, 23, 42, 0.15)";
291
- context.lineWidth = 1;
292
- context.stroke();
293
- };
294
- var normalizeConfig = (input) => {
295
- return {
296
- ...DEFAULT_BUBBLE_SHOOTER_CONFIG,
297
- ...input,
298
- palette: input?.palette?.length ? input.palette : DEFAULT_BUBBLE_SHOOTER_CONFIG.palette
299
- };
300
- };
301
- var BubbleShooterBoard = ({ config: inputConfig, className }) => {
302
- const config = useMemo(() => normalizeConfig(inputConfig), [inputConfig]);
303
- const boardWidth = useMemo(() => getBoardWidth(config), [config]);
304
- const boardHeight = useMemo(() => getBoardHeight(config), [config]);
305
- const shooterX = boardWidth / 2;
306
- const shooterY = boardHeight - config.bubbleRadius - 12;
307
- const canvasRef = useRef(null);
308
- const rafRef = useRef(null);
309
- const lastTsRef = useRef(0);
310
- const [grid, setGrid] = useState(() => createInitialGrid(config));
311
- const [status, setStatus] = useState("ready");
312
- const [score, setScore] = useState(0);
313
- const [shots, setShots] = useState(0);
314
- const [aimAngle, setAimAngle] = useState(-Math.PI / 2);
315
- const [currentColor, setCurrentColor] = useState(() => pickRandomColor(config.palette));
316
- const [nextColor, setNextColor] = useState(() => pickRandomColor(config.palette));
317
- const [projectile, setProjectile] = useState(null);
318
- const gridRef = useRef(grid);
319
- const currentColorRef = useRef(currentColor);
320
- const nextColorRef = useRef(nextColor);
321
- const statusRef = useRef(status);
322
- useEffect(() => {
323
- gridRef.current = grid;
324
- }, [grid]);
325
- useEffect(() => {
326
- currentColorRef.current = currentColor;
327
- }, [currentColor]);
328
- useEffect(() => {
329
- nextColorRef.current = nextColor;
330
- }, [nextColor]);
331
- useEffect(() => {
332
- statusRef.current = status;
333
- }, [status]);
334
- const restart = useCallback(() => {
335
- setGrid(createInitialGrid(config));
336
- setScore(0);
337
- setShots(0);
338
- setStatus("ready");
339
- setProjectile(null);
340
- setAimAngle(-Math.PI / 2);
341
- setCurrentColor(pickRandomColor(config.palette));
342
- setNextColor(pickRandomColor(config.palette));
343
- lastTsRef.current = 0;
344
- }, [config]);
345
- useEffect(() => {
346
- restart();
347
- }, [restart]);
348
- const settleProjectile = useCallback(
349
- (x, y, preferredSlot) => {
350
- const working = gridRef.current.map((row) => [...row]);
351
- const attach = findAttachSlot(x, y, working, config, preferredSlot);
352
- if (!attach) {
353
- setProjectile(null);
354
- setStatus("lost");
355
- return;
356
- }
357
- const rowData = working[attach.row];
358
- if (!rowData || rowData[attach.col]) {
359
- setProjectile(null);
360
- setStatus("lost");
361
- return;
362
- }
363
- rowData[attach.col] = currentColorRef.current;
364
- const resolved = resolveMatches(working, attach, config);
365
- setGrid(resolved.grid);
366
- setProjectile(null);
367
- setShots((prev) => prev + 1);
368
- if (resolved.removed > 0) {
369
- setScore((prev) => prev + resolved.matched * 10 + resolved.dropped * 15);
370
- }
371
- const hasBubbleLeft = hasAnyBubble(resolved.grid);
372
- if (!hasBubbleLeft) {
373
- setStatus("won");
374
- } else if (hasReachedDangerLine(resolved.grid, config)) {
375
- setStatus("lost");
376
- } else {
377
- setStatus("ready");
378
- }
379
- const nextCurrent = nextColorRef.current;
380
- const nextQueued = pickRandomColor(config.palette);
381
- setCurrentColor(nextCurrent);
382
- setNextColor(nextQueued);
383
- },
384
- [config]
385
- );
386
- useEffect(() => {
387
- if (status !== "shooting") {
388
- return;
389
- }
390
- const step = (timestamp) => {
391
- if (statusRef.current !== "shooting") {
392
- lastTsRef.current = 0;
393
- return;
394
- }
395
- const previousTs = lastTsRef.current || timestamp;
396
- const deltaSec = Math.min((timestamp - previousTs) / 1e3, 0.05);
397
- lastTsRef.current = timestamp;
398
- let shouldContinue = true;
399
- setProjectile((prev) => {
400
- if (!prev || statusRef.current !== "shooting") {
401
- shouldContinue = false;
402
- return prev;
403
- }
404
- let nextX = prev.x + prev.vx * deltaSec;
405
- const nextY = prev.y + prev.vy * deltaSec;
406
- let nextVx = prev.vx;
407
- if (nextX <= config.bubbleRadius) {
408
- nextX = config.bubbleRadius;
409
- nextVx = Math.abs(nextVx);
410
- } else if (nextX >= boardWidth - config.bubbleRadius) {
411
- nextX = boardWidth - config.bubbleRadius;
412
- nextVx = -Math.abs(nextVx);
413
- }
414
- if (nextY <= config.topOffset + config.bubbleRadius) {
415
- shouldContinue = false;
416
- settleProjectile(nextX, config.topOffset + config.bubbleRadius, getNearestSlot(nextX, nextY, config));
417
- return null;
418
- }
419
- const collision = findCollisionSlot(nextX, nextY, gridRef.current, config);
420
- if (collision) {
421
- shouldContinue = false;
422
- settleProjectile(nextX, nextY, collision);
423
- return null;
424
- }
425
- return {
426
- ...prev,
427
- x: nextX,
428
- y: nextY,
429
- vx: nextVx
430
- };
431
- });
432
- if (shouldContinue) {
433
- rafRef.current = window.requestAnimationFrame(step);
434
- } else {
435
- rafRef.current = null;
436
- lastTsRef.current = 0;
437
- }
438
- };
439
- rafRef.current = window.requestAnimationFrame(step);
440
- return () => {
441
- if (rafRef.current) {
442
- window.cancelAnimationFrame(rafRef.current);
443
- rafRef.current = null;
444
- }
445
- lastTsRef.current = 0;
446
- };
447
- }, [boardWidth, config, settleProjectile, status]);
448
- const shoot = useCallback(() => {
449
- if (status !== "ready") {
450
- return;
451
- }
452
- const vx = Math.cos(aimAngle) * config.launchSpeed;
453
- const vy = Math.sin(aimAngle) * config.launchSpeed;
454
- setProjectile({
455
- x: shooterX,
456
- y: shooterY - config.bubbleRadius,
457
- vx,
458
- vy,
459
- color: currentColor
460
- });
461
- setStatus("shooting");
462
- }, [aimAngle, config.bubbleRadius, config.launchSpeed, currentColor, shooterX, shooterY, status]);
463
- const updateAimFromPointer = useCallback(
464
- (event) => {
465
- const canvas = canvasRef.current;
466
- if (!canvas || status !== "ready") {
467
- return;
468
- }
469
- const rect = canvas.getBoundingClientRect();
470
- const x = event.clientX - rect.left;
471
- const y = event.clientY - rect.top;
472
- const rawAngle = Math.atan2(y - shooterY, x - shooterX);
473
- setAimAngle(clampAim(rawAngle));
474
- },
475
- [shooterX, shooterY, status]
476
- );
477
- const handlePointerDown = (event) => {
478
- event.currentTarget.setPointerCapture(event.pointerId);
479
- updateAimFromPointer(event);
480
- };
481
- const handlePointerUp = (event) => {
482
- updateAimFromPointer(event);
483
- shoot();
484
- event.currentTarget.releasePointerCapture(event.pointerId);
485
- };
486
- useEffect(() => {
487
- const canvas = canvasRef.current;
488
- if (!canvas) {
489
- return;
490
- }
491
- const context = canvas.getContext("2d");
492
- if (!context) {
493
- return;
494
- }
495
- const gradient = context.createLinearGradient(0, 0, 0, boardHeight);
496
- gradient.addColorStop(0, "#f8fafc");
497
- gradient.addColorStop(1, "#e2e8f0");
498
- context.fillStyle = gradient;
499
- context.fillRect(0, 0, boardWidth, boardHeight);
500
- context.fillStyle = "rgba(148, 163, 184, 0.2)";
501
- context.fillRect(0, shooterY - config.bubbleRadius * 1.3, boardWidth, 2);
502
- for (let row = 0; row < config.rows; row += 1) {
503
- for (let col = 0; col < config.cols; col += 1) {
504
- const color = grid[row]?.[col];
505
- if (!color) {
506
- continue;
507
- }
508
- const position = getBubblePosition(row, col, config);
509
- drawCircle(context, position.x, position.y, config.bubbleRadius - 0.5, color);
510
- }
511
- }
512
- const aimLength = config.bubbleRadius * 9;
513
- const aimX = shooterX + Math.cos(aimAngle) * aimLength;
514
- const aimY = shooterY + Math.sin(aimAngle) * aimLength;
515
- context.strokeStyle = "rgba(71, 85, 105, 0.75)";
516
- context.lineWidth = 2;
517
- context.setLineDash([4, 6]);
518
- context.beginPath();
519
- context.moveTo(shooterX, shooterY);
520
- context.lineTo(aimX, aimY);
521
- context.stroke();
522
- context.setLineDash([]);
523
- drawCircle(context, shooterX, shooterY, config.bubbleRadius - 0.5, currentColor);
524
- if (projectile) {
525
- drawCircle(context, projectile.x, projectile.y, config.bubbleRadius - 0.5, projectile.color);
526
- }
527
- drawCircle(context, boardWidth - config.bubbleRadius * 1.6, shooterY, config.bubbleRadius * 0.72, nextColor);
528
- context.fillStyle = "#334155";
529
- context.font = "12px sans-serif";
530
- context.textAlign = "right";
531
- context.fillText("Next", boardWidth - config.bubbleRadius * 0.5, shooterY - config.bubbleRadius * 1.05);
532
- if (status === "won" || status === "lost") {
533
- context.fillStyle = "rgba(15, 23, 42, 0.48)";
534
- context.fillRect(0, 0, boardWidth, boardHeight);
535
- context.fillStyle = "#ffffff";
536
- context.font = "bold 26px sans-serif";
537
- context.textAlign = "center";
538
- context.fillText(status === "won" ? "You Win!" : "Game Over", boardWidth / 2, boardHeight / 2);
539
- }
540
- }, [aimAngle, boardHeight, boardWidth, config, currentColor, grid, nextColor, projectile, shooterX, shooterY, status]);
541
- return /* @__PURE__ */ React.createElement("div", { className }, /* @__PURE__ */ React.createElement("div", { style: { display: "flex", gap: 16, marginBottom: 10, flexWrap: "wrap", color: "#334155" } }, /* @__PURE__ */ React.createElement("span", null, "\u72B6\u6001\uFF1A", status === "ready" ? "\u5F85\u53D1\u5C04" : status === "shooting" ? "\u53D1\u5C04\u4E2D" : status === "won" ? "\u80DC\u5229" : "\u5931\u8D25"), /* @__PURE__ */ React.createElement("span", null, "\u5206\u6570\uFF1A", score), /* @__PURE__ */ React.createElement("span", null, "\u53D1\u5C04\u6B21\u6570\uFF1A", shots)), /* @__PURE__ */ React.createElement(
542
- "canvas",
543
- {
544
- ref: canvasRef,
545
- width: boardWidth,
546
- height: boardHeight,
547
- onPointerMove: updateAimFromPointer,
548
- onPointerDown: handlePointerDown,
549
- onPointerUp: handlePointerUp,
550
- style: {
551
- width: "100%",
552
- maxWidth: boardWidth,
553
- borderRadius: 12,
554
- border: "1px solid #cbd5e1",
555
- boxShadow: "0 8px 28px rgba(15, 23, 42, 0.12)",
556
- touchAction: "none",
557
- cursor: status === "ready" ? "crosshair" : "default",
558
- display: "block"
559
- }
560
- }
561
- ), /* @__PURE__ */ React.createElement("div", { style: { marginTop: 10, display: "flex", gap: 10 } }, /* @__PURE__ */ React.createElement("button", { type: "button", onClick: restart, style: { padding: "8px 12px" } }, "\u91CD\u65B0\u5F00\u59CB")));
562
- };
563
- var BubbleShooterBoard_default = BubbleShooterBoard;
564
- var BubbleShooterGamePage = ({
565
- config,
566
- title = "\u6CE1\u6CE1\u9F99",
567
- description = "\u57FA\u7840\u7248\uFF1A\u7784\u51C6\u3001\u53D1\u5C04\u3001\u8FDE\u6D88\u3001\u60AC\u7A7A\u6389\u843D\u3002"
568
- }) => {
569
- return /* @__PURE__ */ React.createElement("section", null, /* @__PURE__ */ React.createElement("h2", null, title), /* @__PURE__ */ React.createElement("p", { style: { color: "#64748b" } }, description), /* @__PURE__ */ React.createElement(BubbleShooterBoard_default, { config }));
570
- };
571
- var BubbleShooterGamePage_default = BubbleShooterGamePage;
572
-
573
- export { bubbleShooter_exports as bubbleShooter };
574
- //# sourceMappingURL=index.mjs.map
575
- //# sourceMappingURL=index.mjs.map