beatsaber-bot-core 0.2.0-rc.8 → 0.3.0-rc.1

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 (678) hide show
  1. package/dist/cjs/cmd/bind/bind-beatleader.js +2 -2
  2. package/dist/cjs/cmd/bind/bind-beatleader.js.map +1 -1
  3. package/dist/cjs/cmd/bind/bind-beatsaver.js +2 -2
  4. package/dist/cjs/cmd/bind/bind-beatsaver.js.map +1 -1
  5. package/dist/cjs/cmd/bind/bind-id-beatleader.js +3 -3
  6. package/dist/cjs/cmd/bind/bind-id-beatleader.js.map +1 -1
  7. package/dist/cjs/cmd/bind/bind-id-beatsaver.js +3 -3
  8. package/dist/cjs/cmd/bind/bind-id-beatsaver.js.map +1 -1
  9. package/dist/cjs/cmd/bind/bind-scoresaber.js +3 -3
  10. package/dist/cjs/cmd/bind/bind-scoresaber.js.map +1 -1
  11. package/dist/cjs/cmd/bind/index.js +12 -12
  12. package/dist/cjs/cmd/bind/index.js.map +1 -1
  13. package/dist/cjs/cmd/bsmap/id-search.js +3 -3
  14. package/dist/cjs/cmd/bsmap/id-search.js.map +1 -1
  15. package/dist/cjs/cmd/bsmap/key-search.js +2 -2
  16. package/dist/cjs/cmd/bsmap/key-search.js.map +1 -1
  17. package/dist/cjs/cmd/bsmap/latest.js +2 -2
  18. package/dist/cjs/cmd/bsmap/latest.js.map +1 -1
  19. package/dist/cjs/cmd/deprecated/tmp.js +4 -4
  20. package/dist/cjs/cmd/deprecated/tmp.js.map +1 -1
  21. package/dist/cjs/cmd/index.js +11 -11
  22. package/dist/cjs/cmd/index.js.map +1 -1
  23. package/dist/cjs/cmd/rank.js +8 -8
  24. package/dist/cjs/cmd/rank.js.map +1 -1
  25. package/dist/cjs/cmd/score.js +16 -20
  26. package/dist/cjs/cmd/score.js.map +1 -1
  27. package/dist/cjs/cmd/subscribe/beatleader.js +3 -3
  28. package/dist/cjs/cmd/subscribe/beatleader.js.map +1 -1
  29. package/dist/cjs/cmd/subscribe/beatsaver.js +3 -3
  30. package/dist/cjs/cmd/subscribe/beatsaver.js.map +1 -1
  31. package/dist/cjs/cmd/subscribe/id-beatleader-score.js +4 -4
  32. package/dist/cjs/cmd/subscribe/id-beatleader-score.js.map +1 -1
  33. package/dist/cjs/cmd/subscribe/id-beatsaver-mapper.js +4 -4
  34. package/dist/cjs/cmd/subscribe/id-beatsaver-mapper.js.map +1 -1
  35. package/dist/cjs/cmd/subscribe/index.js +8 -8
  36. package/dist/cjs/cmd/subscribe/index.js.map +1 -1
  37. package/dist/cjs/cmd/subscribe/subjoin.js +6 -6
  38. package/dist/cjs/cmd/subscribe/subjoin.js.map +1 -1
  39. package/dist/cjs/cmd/subscribe/subleave.js +6 -6
  40. package/dist/cjs/cmd/subscribe/subleave.js.map +1 -1
  41. package/dist/cjs/cmd/subscribe/unsubscribe.js +8 -8
  42. package/dist/cjs/cmd/subscribe/unsubscribe.js.map +1 -1
  43. package/dist/cjs/common/cache.js.map +1 -0
  44. package/dist/cjs/common/fetch/error.js.map +1 -0
  45. package/dist/cjs/{infra/support → common}/fetch/index.js +16 -14
  46. package/dist/cjs/common/fetch/index.js.map +1 -0
  47. package/dist/cjs/{infra/support → common}/fetch/ofetch.js +5 -12
  48. package/dist/cjs/common/fetch/ofetch.js.map +1 -0
  49. package/dist/cjs/common/i18n/index.js +55 -0
  50. package/dist/cjs/common/i18n/index.js.map +1 -0
  51. package/dist/cjs/common/i18n/parser.js.map +1 -0
  52. package/dist/cjs/{infra/i18n/index.js → common/i18n/util.js} +10 -71
  53. package/dist/cjs/common/i18n/util.js.map +1 -0
  54. package/dist/cjs/{infra/support → common}/render/index.js +55 -15
  55. package/dist/cjs/common/render/index.js.map +1 -0
  56. package/dist/cjs/common/render/puppeteer.js.map +1 -0
  57. package/dist/cjs/{infra → common}/s3/index.js +34 -13
  58. package/dist/cjs/common/s3/index.js.map +1 -0
  59. package/dist/cjs/components/components/RankDifficulty.js +60 -84
  60. package/dist/cjs/components/components/RankDifficulty.js.map +1 -1
  61. package/dist/cjs/components/components/base/avatar.js +1 -2
  62. package/dist/cjs/components/components/base/avatar.js.map +1 -1
  63. package/dist/cjs/components/components/bl-rank-score-item.js +25 -87
  64. package/dist/cjs/components/components/bl-rank-score-item.js.map +1 -1
  65. package/dist/cjs/components/components/bl-score-item.js +28 -69
  66. package/dist/cjs/components/components/bl-score-item.js.map +1 -1
  67. package/dist/cjs/components/components/characteristic.js +106 -118
  68. package/dist/cjs/components/components/characteristic.js.map +1 -1
  69. package/dist/cjs/components/components/flag.js +6 -14
  70. package/dist/cjs/components/components/flag.js.map +1 -1
  71. package/dist/cjs/components/components/icons/BeatLeader.js +55 -71
  72. package/dist/cjs/components/components/icons/BeatLeader.js.map +1 -1
  73. package/dist/cjs/components/components/icons/RankIcon.js +3 -7
  74. package/dist/cjs/components/components/icons/RankIcon.js.map +1 -1
  75. package/dist/cjs/components/components/icons/ScoreSaberIcon.js +276 -312
  76. package/dist/cjs/components/components/icons/ScoreSaberIcon.js.map +1 -1
  77. package/dist/cjs/components/components/progressbar.js +12 -2
  78. package/dist/cjs/components/components/progressbar.js.map +1 -1
  79. package/dist/cjs/components/components/scoreItem.js +26 -63
  80. package/dist/cjs/components/components/scoreItem.js.map +1 -1
  81. package/dist/cjs/components/components/scoregraph.js +4 -5
  82. package/dist/cjs/components/components/scoregraph.js.map +1 -1
  83. package/dist/cjs/components/components/skill-graph.js +147 -164
  84. package/dist/cjs/components/components/skill-graph.js.map +1 -1
  85. package/dist/cjs/components/components/socre-badge.js +7 -10
  86. package/dist/cjs/components/components/socre-badge.js.map +1 -1
  87. package/dist/cjs/components/components/ss-rank-score-item.js +25 -87
  88. package/dist/cjs/components/components/ss-rank-score-item.js.map +1 -1
  89. package/dist/cjs/components/components/ss-score-item.js +38 -65
  90. package/dist/cjs/components/components/ss-score-item.js.map +1 -1
  91. package/dist/cjs/components/index.js +3 -43
  92. package/dist/cjs/components/index.js.map +1 -1
  93. package/dist/cjs/components/pages/bl-player.js +91 -136
  94. package/dist/cjs/components/pages/bl-player.js.map +1 -1
  95. package/dist/cjs/components/pages/bl-score-with-rank.js +114 -221
  96. package/dist/cjs/components/pages/bl-score-with-rank.js.map +1 -1
  97. package/dist/cjs/components/pages/bl-score.js +67 -169
  98. package/dist/cjs/components/pages/bl-score.js.map +1 -1
  99. package/dist/cjs/components/pages/bs-map.js +95 -166
  100. package/dist/cjs/components/pages/bs-map.js.map +1 -1
  101. package/dist/cjs/components/pages/index.js +26 -26
  102. package/dist/cjs/components/pages/index.js.map +1 -1
  103. package/dist/cjs/components/pages/ss-player.js +48 -77
  104. package/dist/cjs/components/pages/ss-player.js.map +1 -1
  105. package/dist/cjs/components/utils/bl/bsorReplayAcc.js +2 -2
  106. package/dist/cjs/components/utils/bl/bsorReplayAcc.js.map +1 -1
  107. package/dist/cjs/components/utils/bl/getPart.js.map +1 -1
  108. package/dist/cjs/components/utils/bl/stastic.js.map +1 -1
  109. package/dist/cjs/components/utils/format.js +3 -3
  110. package/dist/cjs/components/utils/format.js.map +1 -1
  111. package/dist/cjs/components/utils/getMods.js.map +1 -1
  112. package/dist/cjs/components/utils/index.js +4 -4
  113. package/dist/cjs/config.js +40 -0
  114. package/dist/cjs/config.js.map +1 -1
  115. package/dist/cjs/{interface → core}/cmd/builder.js +5 -5
  116. package/dist/cjs/core/cmd/builder.js.map +1 -0
  117. package/dist/cjs/core/cmd/type.js.map +1 -0
  118. package/dist/cjs/core/domain.js +16 -0
  119. package/dist/cjs/core/domain.js.map +1 -0
  120. package/dist/cjs/core/error.js +38 -0
  121. package/dist/cjs/core/error.js.map +1 -0
  122. package/dist/cjs/{interface/bot.js → core/event.js} +3 -3
  123. package/dist/cjs/core/event.js.map +1 -0
  124. package/dist/cjs/core/index.js +39 -0
  125. package/dist/cjs/core/index.js.map +1 -0
  126. package/dist/cjs/core/logger.js.map +1 -0
  127. package/dist/cjs/core/session.js +16 -0
  128. package/dist/cjs/core/session.js.map +1 -0
  129. package/dist/cjs/{schedules → events/schedules}/index.js +4 -3
  130. package/dist/cjs/events/schedules/index.js.map +1 -0
  131. package/dist/cjs/{schedules → events/schedules}/temp.js +7 -3
  132. package/dist/cjs/events/schedules/temp.js.map +1 -0
  133. package/dist/cjs/{ws → events/ws}/beatleader.js +6 -6
  134. package/dist/cjs/events/ws/beatleader.js.map +1 -0
  135. package/dist/cjs/{ws → events/ws}/beatsaver.js +11 -11
  136. package/dist/cjs/events/ws/beatsaver.js.map +1 -0
  137. package/dist/cjs/events/ws/handler.js.map +1 -0
  138. package/dist/cjs/{ws → events/ws}/index.js +6 -8
  139. package/dist/cjs/events/ws/index.js.map +1 -0
  140. package/dist/cjs/index.js +27 -18
  141. package/dist/cjs/index.js.map +1 -1
  142. package/dist/cjs/interface/db/index.js +0 -6
  143. package/dist/cjs/interface/db/index.js.map +1 -1
  144. package/dist/cjs/interface/db/models.js.map +1 -1
  145. package/dist/cjs/interface/index.js +12 -21
  146. package/dist/cjs/interface/index.js.map +1 -1
  147. package/dist/cjs/{service → services}/api/base/aioclient.js +1 -1
  148. package/dist/cjs/services/api/base/aioclient.js.map +1 -0
  149. package/dist/cjs/{service → services}/api/base/blclient.js +1 -1
  150. package/dist/cjs/services/api/base/blclient.js.map +1 -0
  151. package/dist/cjs/{service → services}/api/base/bsclient.js +2 -2
  152. package/dist/cjs/services/api/base/bsclient.js.map +1 -0
  153. package/dist/cjs/{service → services}/api/base/index.js +8 -8
  154. package/dist/cjs/services/api/base/index.js.map +1 -0
  155. package/dist/cjs/{service → services}/api/base/ssclient.js +2 -2
  156. package/dist/cjs/services/api/base/ssclient.js.map +1 -0
  157. package/dist/cjs/{service → services}/api/index.js +17 -9
  158. package/dist/cjs/services/api/index.js.map +1 -0
  159. package/dist/cjs/services/api/interfaces/aiosaber/index.js.map +1 -0
  160. package/dist/cjs/services/api/interfaces/beatleader/bsor.js.map +1 -0
  161. package/dist/cjs/{service → services}/api/interfaces/beatleader/index.js +10 -10
  162. package/dist/cjs/services/api/interfaces/beatleader/index.js.map +1 -0
  163. package/dist/cjs/services/api/interfaces/beatleader/req.js.map +1 -0
  164. package/dist/cjs/services/api/interfaces/beatleader/score.js.map +1 -0
  165. package/dist/cjs/services/api/interfaces/beatleader/user.js.map +1 -0
  166. package/dist/cjs/services/api/interfaces/beatleader/ws.js.map +1 -0
  167. package/dist/cjs/services/api/interfaces/beatsaver/alert.js.map +1 -0
  168. package/dist/cjs/services/api/interfaces/beatsaver/bsmap.js.map +1 -0
  169. package/dist/cjs/{service → services}/api/interfaces/beatsaver/index.js +10 -10
  170. package/dist/cjs/services/api/interfaces/beatsaver/index.js.map +1 -0
  171. package/dist/cjs/services/api/interfaces/beatsaver/resp.js.map +1 -0
  172. package/dist/cjs/services/api/interfaces/beatsaver/user.js.map +1 -0
  173. package/dist/cjs/services/api/interfaces/beatsaver/ws.js.map +1 -0
  174. package/dist/cjs/services/api/interfaces/index.js.map +1 -0
  175. package/dist/cjs/{service → services}/api/interfaces/scoresaber/index.js +6 -6
  176. package/dist/cjs/services/api/interfaces/scoresaber/index.js.map +1 -0
  177. package/dist/cjs/services/api/interfaces/scoresaber/item.js.map +1 -0
  178. package/dist/cjs/services/api/interfaces/scoresaber/leaderboard.js.map +1 -0
  179. package/dist/cjs/services/api/interfaces/scoresaber/resp.js.map +1 -0
  180. package/dist/cjs/services/api/interfaces/scoresaber/user.js.map +1 -0
  181. package/dist/cjs/services/api/interfaces/scoresaber/ws.js.map +1 -0
  182. package/dist/cjs/services/api/sortScore.js.map +1 -0
  183. package/dist/cjs/{infra → services}/errors/index.js +21 -38
  184. package/dist/cjs/services/errors/index.js.map +1 -0
  185. package/dist/cjs/services/i18n/index.js +43 -0
  186. package/dist/cjs/services/i18n/index.js.map +1 -0
  187. package/dist/cjs/{infra → services}/i18n/zh-cn.json +1 -1
  188. package/dist/cjs/{infra → services}/index.js +12 -9
  189. package/dist/cjs/services/index.js.map +1 -0
  190. package/dist/cjs/services/preference.js.map +1 -0
  191. package/dist/cjs/{service → services}/render/index.js +36 -13
  192. package/dist/cjs/services/render/index.js.map +1 -0
  193. package/dist/cjs/utils/bsorDecoder.js +329 -0
  194. package/dist/cjs/utils/bsorDecoder.js.map +1 -0
  195. package/dist/cjs/utils/index.js +6 -1
  196. package/dist/cjs/utils/index.js.map +1 -1
  197. package/dist/cjs/utils/platform.js +38 -0
  198. package/dist/cjs/utils/platform.js.map +1 -0
  199. package/dist/esm/cmd/bind/bind-beatleader.js +2 -2
  200. package/dist/esm/cmd/bind/bind-beatleader.js.map +1 -1
  201. package/dist/esm/cmd/bind/bind-beatsaver.js +2 -2
  202. package/dist/esm/cmd/bind/bind-beatsaver.js.map +1 -1
  203. package/dist/esm/cmd/bind/bind-id-beatleader.js +3 -3
  204. package/dist/esm/cmd/bind/bind-id-beatleader.js.map +1 -1
  205. package/dist/esm/cmd/bind/bind-id-beatsaver.js +3 -3
  206. package/dist/esm/cmd/bind/bind-id-beatsaver.js.map +1 -1
  207. package/dist/esm/cmd/bind/bind-scoresaber.js +3 -3
  208. package/dist/esm/cmd/bind/bind-scoresaber.js.map +1 -1
  209. package/dist/esm/cmd/bind/index.js +5 -5
  210. package/dist/esm/cmd/bind/index.js.map +1 -1
  211. package/dist/esm/cmd/bsmap/id-search.js +2 -2
  212. package/dist/esm/cmd/bsmap/id-search.js.map +1 -1
  213. package/dist/esm/cmd/bsmap/key-search.js +1 -1
  214. package/dist/esm/cmd/bsmap/key-search.js.map +1 -1
  215. package/dist/esm/cmd/bsmap/latest.js +2 -2
  216. package/dist/esm/cmd/bsmap/latest.js.map +1 -1
  217. package/dist/esm/cmd/deprecated/tmp.js +3 -3
  218. package/dist/esm/cmd/deprecated/tmp.js.map +1 -1
  219. package/dist/esm/cmd/index.js +11 -11
  220. package/dist/esm/cmd/index.js.map +1 -1
  221. package/dist/esm/cmd/rank.js +5 -5
  222. package/dist/esm/cmd/rank.js.map +1 -1
  223. package/dist/esm/cmd/score.js +13 -17
  224. package/dist/esm/cmd/score.js.map +1 -1
  225. package/dist/esm/cmd/subscribe/beatleader.js +3 -3
  226. package/dist/esm/cmd/subscribe/beatleader.js.map +1 -1
  227. package/dist/esm/cmd/subscribe/beatsaver.js +3 -3
  228. package/dist/esm/cmd/subscribe/beatsaver.js.map +1 -1
  229. package/dist/esm/cmd/subscribe/id-beatleader-score.js +4 -4
  230. package/dist/esm/cmd/subscribe/id-beatleader-score.js.map +1 -1
  231. package/dist/esm/cmd/subscribe/id-beatsaver-mapper.js +4 -4
  232. package/dist/esm/cmd/subscribe/id-beatsaver-mapper.js.map +1 -1
  233. package/dist/esm/cmd/subscribe/index.js +7 -7
  234. package/dist/esm/cmd/subscribe/index.js.map +1 -1
  235. package/dist/esm/cmd/subscribe/subjoin.js +5 -5
  236. package/dist/esm/cmd/subscribe/subjoin.js.map +1 -1
  237. package/dist/esm/cmd/subscribe/subleave.js +5 -5
  238. package/dist/esm/cmd/subscribe/subleave.js.map +1 -1
  239. package/dist/esm/cmd/subscribe/unsubscribe.js +7 -7
  240. package/dist/esm/cmd/subscribe/unsubscribe.js.map +1 -1
  241. package/dist/esm/common/cache.js.map +1 -0
  242. package/dist/esm/common/fetch/error.js.map +1 -0
  243. package/dist/esm/common/fetch/index.js +35 -0
  244. package/dist/esm/common/fetch/index.js.map +1 -0
  245. package/dist/esm/{infra/support → common}/fetch/ofetch.js +4 -10
  246. package/dist/esm/common/fetch/ofetch.js.map +1 -0
  247. package/dist/esm/common/i18n/index.js +32 -0
  248. package/dist/esm/common/i18n/index.js.map +1 -0
  249. package/dist/esm/common/i18n/parser.js.map +1 -0
  250. package/dist/esm/{infra/i18n/index.js → common/i18n/util.js} +4 -56
  251. package/dist/esm/common/i18n/util.js.map +1 -0
  252. package/dist/esm/{infra/support → common}/render/index.js +53 -13
  253. package/dist/esm/common/render/index.js.map +1 -0
  254. package/dist/esm/common/render/puppeteer.js.map +1 -0
  255. package/dist/esm/{infra → common}/s3/index.js +32 -12
  256. package/dist/esm/common/s3/index.js.map +1 -0
  257. package/dist/esm/components/components/RankDifficulty.js +60 -84
  258. package/dist/esm/components/components/RankDifficulty.js.map +1 -1
  259. package/dist/esm/components/components/base/avatar.js +1 -2
  260. package/dist/esm/components/components/base/avatar.js.map +1 -1
  261. package/dist/esm/components/components/bl-rank-score-item.js +25 -87
  262. package/dist/esm/components/components/bl-rank-score-item.js.map +1 -1
  263. package/dist/esm/components/components/bl-score-item.js +28 -69
  264. package/dist/esm/components/components/bl-score-item.js.map +1 -1
  265. package/dist/esm/components/components/characteristic.js +106 -118
  266. package/dist/esm/components/components/characteristic.js.map +1 -1
  267. package/dist/esm/components/components/flag.js +6 -14
  268. package/dist/esm/components/components/flag.js.map +1 -1
  269. package/dist/esm/components/components/icons/BeatLeader.js +55 -71
  270. package/dist/esm/components/components/icons/BeatLeader.js.map +1 -1
  271. package/dist/esm/components/components/icons/RankIcon.js +3 -7
  272. package/dist/esm/components/components/icons/RankIcon.js.map +1 -1
  273. package/dist/esm/components/components/icons/ScoreSaberIcon.js +276 -312
  274. package/dist/esm/components/components/icons/ScoreSaberIcon.js.map +1 -1
  275. package/dist/esm/components/components/progressbar.js +2 -2
  276. package/dist/esm/components/components/progressbar.js.map +1 -1
  277. package/dist/esm/components/components/scoreItem.js +26 -63
  278. package/dist/esm/components/components/scoreItem.js.map +1 -1
  279. package/dist/esm/components/components/scoregraph.js +4 -5
  280. package/dist/esm/components/components/scoregraph.js.map +1 -1
  281. package/dist/esm/components/components/skill-graph.js +147 -164
  282. package/dist/esm/components/components/skill-graph.js.map +1 -1
  283. package/dist/esm/components/components/socre-badge.js +7 -10
  284. package/dist/esm/components/components/socre-badge.js.map +1 -1
  285. package/dist/esm/components/components/ss-rank-score-item.js +25 -87
  286. package/dist/esm/components/components/ss-rank-score-item.js.map +1 -1
  287. package/dist/esm/components/components/ss-score-item.js +28 -65
  288. package/dist/esm/components/components/ss-score-item.js.map +1 -1
  289. package/dist/esm/components/index.js +3 -43
  290. package/dist/esm/components/index.js.map +1 -1
  291. package/dist/esm/components/pages/bl-player.js +91 -136
  292. package/dist/esm/components/pages/bl-player.js.map +1 -1
  293. package/dist/esm/components/pages/bl-score-with-rank.js +114 -221
  294. package/dist/esm/components/pages/bl-score-with-rank.js.map +1 -1
  295. package/dist/esm/components/pages/bl-score.js +67 -169
  296. package/dist/esm/components/pages/bl-score.js.map +1 -1
  297. package/dist/esm/components/pages/bs-map.js +95 -166
  298. package/dist/esm/components/pages/bs-map.js.map +1 -1
  299. package/dist/esm/components/pages/index.js +21 -21
  300. package/dist/esm/components/pages/index.js.map +1 -1
  301. package/dist/esm/components/pages/ss-player.js +48 -77
  302. package/dist/esm/components/pages/ss-player.js.map +1 -1
  303. package/dist/esm/components/utils/bl/bsorReplayAcc.js +2 -2
  304. package/dist/esm/components/utils/bl/bsorReplayAcc.js.map +1 -1
  305. package/dist/esm/components/utils/bl/getPart.js.map +1 -1
  306. package/dist/esm/components/utils/bl/stastic.js.map +1 -1
  307. package/dist/esm/components/utils/format.js +3 -3
  308. package/dist/esm/components/utils/format.js.map +1 -1
  309. package/dist/esm/components/utils/getMods.js.map +1 -1
  310. package/dist/esm/components/utils/index.js +2 -2
  311. package/dist/esm/config.js +32 -0
  312. package/dist/esm/config.js.map +1 -1
  313. package/dist/esm/{interface → core}/cmd/builder.js +4 -4
  314. package/dist/esm/core/cmd/builder.js.map +1 -0
  315. package/dist/esm/core/domain.js +1 -0
  316. package/dist/esm/core/error.js +16 -0
  317. package/dist/esm/core/error.js.map +1 -0
  318. package/dist/esm/core/event.js +1 -0
  319. package/dist/esm/core/index.js +10 -0
  320. package/dist/esm/core/index.js.map +1 -0
  321. package/dist/esm/core/session.js +1 -0
  322. package/dist/esm/events/schedules/index.js +16 -0
  323. package/dist/esm/events/schedules/index.js.map +1 -0
  324. package/dist/esm/{schedules → events/schedules}/temp.js +7 -3
  325. package/dist/esm/events/schedules/temp.js.map +1 -0
  326. package/dist/esm/{ws → events/ws}/beatleader.js +6 -6
  327. package/dist/esm/events/ws/beatleader.js.map +1 -0
  328. package/dist/esm/{ws → events/ws}/beatsaver.js +11 -11
  329. package/dist/esm/events/ws/beatsaver.js.map +1 -0
  330. package/dist/esm/events/ws/index.js +4 -0
  331. package/dist/esm/events/ws/index.js.map +1 -0
  332. package/dist/esm/index.js +15 -10
  333. package/dist/esm/index.js.map +1 -1
  334. package/dist/esm/interface/db/index.js +0 -1
  335. package/dist/esm/interface/db/index.js.map +1 -1
  336. package/dist/esm/interface/index.js +9 -15
  337. package/dist/esm/interface/index.js.map +1 -1
  338. package/dist/esm/{service → services}/api/base/aioclient.js +1 -1
  339. package/dist/esm/services/api/base/aioclient.js.map +1 -0
  340. package/dist/esm/{service → services}/api/base/blclient.js +1 -1
  341. package/dist/esm/services/api/base/blclient.js.map +1 -0
  342. package/dist/esm/{service → services}/api/base/bsclient.js +2 -2
  343. package/dist/esm/services/api/base/bsclient.js.map +1 -0
  344. package/dist/esm/services/api/base/index.js +5 -0
  345. package/dist/esm/services/api/base/index.js.map +1 -0
  346. package/dist/esm/{service → services}/api/base/ssclient.js +2 -2
  347. package/dist/esm/services/api/base/ssclient.js.map +1 -0
  348. package/dist/esm/{service → services}/api/index.js +16 -8
  349. package/dist/esm/services/api/index.js.map +1 -0
  350. package/dist/esm/services/api/interfaces/beatleader/index.js +6 -0
  351. package/dist/esm/services/api/interfaces/beatleader/index.js.map +1 -0
  352. package/dist/esm/services/api/interfaces/beatsaver/index.js +6 -0
  353. package/dist/esm/services/api/interfaces/beatsaver/index.js.map +1 -0
  354. package/dist/esm/services/api/interfaces/scoresaber/index.js +4 -0
  355. package/dist/esm/services/api/interfaces/scoresaber/index.js.map +1 -0
  356. package/dist/esm/services/api/sortScore.js.map +1 -0
  357. package/dist/esm/{infra → services}/errors/index.js +1 -17
  358. package/dist/esm/services/errors/index.js.map +1 -0
  359. package/dist/esm/services/i18n/index.js +21 -0
  360. package/dist/esm/services/i18n/index.js.map +1 -0
  361. package/dist/esm/services/index.js +9 -0
  362. package/dist/esm/services/index.js.map +1 -0
  363. package/dist/esm/services/preference.js.map +1 -0
  364. package/dist/esm/{service → services}/render/index.js +34 -11
  365. package/dist/esm/services/render/index.js.map +1 -0
  366. package/dist/esm/utils/bsorDecoder.js +301 -0
  367. package/dist/esm/utils/bsorDecoder.js.map +1 -0
  368. package/dist/esm/utils/index.js +2 -0
  369. package/dist/esm/utils/index.js.map +1 -1
  370. package/dist/esm/utils/platform.js +14 -0
  371. package/dist/esm/utils/platform.js.map +1 -0
  372. package/dist/types/index.d.ts +1376 -48
  373. package/package.json +19 -10
  374. package/dist/cjs/components/utils/canvas.js +0 -2
  375. package/dist/cjs/components/utils/canvas.js.map +0 -1
  376. package/dist/cjs/infra/errors/index.js.map +0 -1
  377. package/dist/cjs/infra/i18n/index.js.map +0 -1
  378. package/dist/cjs/infra/i18n/parser.js.map +0 -1
  379. package/dist/cjs/infra/index.js.map +0 -1
  380. package/dist/cjs/infra/s3/index.js.map +0 -1
  381. package/dist/cjs/infra/support/cache.js.map +0 -1
  382. package/dist/cjs/infra/support/fetch/error.js.map +0 -1
  383. package/dist/cjs/infra/support/fetch/index.js.map +0 -1
  384. package/dist/cjs/infra/support/fetch/ofetch.js.map +0 -1
  385. package/dist/cjs/infra/support/render/index.js.map +0 -1
  386. package/dist/cjs/infra/support/render/puppeteer.js.map +0 -1
  387. package/dist/cjs/interface/bot.js.map +0 -1
  388. package/dist/cjs/interface/cmd/builder.js.map +0 -1
  389. package/dist/cjs/interface/cmd/type.js.map +0 -1
  390. package/dist/cjs/interface/logger.js.map +0 -1
  391. package/dist/cjs/schedules/index.js.map +0 -1
  392. package/dist/cjs/schedules/interface.js +0 -16
  393. package/dist/cjs/schedules/interface.js.map +0 -1
  394. package/dist/cjs/schedules/temp.js.map +0 -1
  395. package/dist/cjs/service/api/base/aioclient.js.map +0 -1
  396. package/dist/cjs/service/api/base/blclient.js.map +0 -1
  397. package/dist/cjs/service/api/base/bsclient.js.map +0 -1
  398. package/dist/cjs/service/api/base/index.js.map +0 -1
  399. package/dist/cjs/service/api/base/ssclient.js.map +0 -1
  400. package/dist/cjs/service/api/index.js.map +0 -1
  401. package/dist/cjs/service/api/interfaces/aiosaber/index.js.map +0 -1
  402. package/dist/cjs/service/api/interfaces/beatleader/bsor.js.map +0 -1
  403. package/dist/cjs/service/api/interfaces/beatleader/index.js.map +0 -1
  404. package/dist/cjs/service/api/interfaces/beatleader/req.js.map +0 -1
  405. package/dist/cjs/service/api/interfaces/beatleader/score.js.map +0 -1
  406. package/dist/cjs/service/api/interfaces/beatleader/user.js.map +0 -1
  407. package/dist/cjs/service/api/interfaces/beatleader/ws.js.map +0 -1
  408. package/dist/cjs/service/api/interfaces/beatsaver/alert.js.map +0 -1
  409. package/dist/cjs/service/api/interfaces/beatsaver/bsmap.js.map +0 -1
  410. package/dist/cjs/service/api/interfaces/beatsaver/index.js.map +0 -1
  411. package/dist/cjs/service/api/interfaces/beatsaver/resp.js.map +0 -1
  412. package/dist/cjs/service/api/interfaces/beatsaver/user.js.map +0 -1
  413. package/dist/cjs/service/api/interfaces/beatsaver/ws.js.map +0 -1
  414. package/dist/cjs/service/api/interfaces/index.js.map +0 -1
  415. package/dist/cjs/service/api/interfaces/scoresaber/index.js.map +0 -1
  416. package/dist/cjs/service/api/interfaces/scoresaber/item.js.map +0 -1
  417. package/dist/cjs/service/api/interfaces/scoresaber/leaderboard.js.map +0 -1
  418. package/dist/cjs/service/api/interfaces/scoresaber/resp.js.map +0 -1
  419. package/dist/cjs/service/api/interfaces/scoresaber/user.js.map +0 -1
  420. package/dist/cjs/service/api/interfaces/scoresaber/ws.js.map +0 -1
  421. package/dist/cjs/service/api/sortScore.js.map +0 -1
  422. package/dist/cjs/service/index.js +0 -16
  423. package/dist/cjs/service/index.js.map +0 -1
  424. package/dist/cjs/service/preference.js.map +0 -1
  425. package/dist/cjs/service/render/index.js.map +0 -1
  426. package/dist/cjs/service/render/interfaces.js +0 -16
  427. package/dist/cjs/service/render/interfaces.js.map +0 -1
  428. package/dist/cjs/ws/beatleader.js.map +0 -1
  429. package/dist/cjs/ws/beatsaver.js.map +0 -1
  430. package/dist/cjs/ws/bl-filter.js +0 -1
  431. package/dist/cjs/ws/handler.js.map +0 -1
  432. package/dist/cjs/ws/index.js.map +0 -1
  433. package/dist/cjs/ws/scoresaber.js +0 -75
  434. package/dist/cjs/ws/scoresaber.js.map +0 -1
  435. package/dist/esm/components/utils/canvas.js +0 -2
  436. package/dist/esm/components/utils/canvas.js.map +0 -1
  437. package/dist/esm/infra/errors/index.js.map +0 -1
  438. package/dist/esm/infra/i18n/index.js.map +0 -1
  439. package/dist/esm/infra/i18n/parser.js.map +0 -1
  440. package/dist/esm/infra/index.js +0 -6
  441. package/dist/esm/infra/index.js.map +0 -1
  442. package/dist/esm/infra/s3/index.js.map +0 -1
  443. package/dist/esm/infra/support/cache.js.map +0 -1
  444. package/dist/esm/infra/support/fetch/error.js.map +0 -1
  445. package/dist/esm/infra/support/fetch/index.js +0 -33
  446. package/dist/esm/infra/support/fetch/index.js.map +0 -1
  447. package/dist/esm/infra/support/fetch/ofetch.js.map +0 -1
  448. package/dist/esm/infra/support/render/index.js.map +0 -1
  449. package/dist/esm/infra/support/render/puppeteer.js.map +0 -1
  450. package/dist/esm/interface/bot.js +0 -1
  451. package/dist/esm/interface/cmd/builder.js.map +0 -1
  452. package/dist/esm/schedules/index.js +0 -15
  453. package/dist/esm/schedules/index.js.map +0 -1
  454. package/dist/esm/schedules/interface.js +0 -1
  455. package/dist/esm/schedules/temp.js.map +0 -1
  456. package/dist/esm/service/api/base/aioclient.js.map +0 -1
  457. package/dist/esm/service/api/base/blclient.js.map +0 -1
  458. package/dist/esm/service/api/base/bsclient.js.map +0 -1
  459. package/dist/esm/service/api/base/index.js +0 -5
  460. package/dist/esm/service/api/base/index.js.map +0 -1
  461. package/dist/esm/service/api/base/ssclient.js.map +0 -1
  462. package/dist/esm/service/api/index.js.map +0 -1
  463. package/dist/esm/service/api/interfaces/beatleader/index.js +0 -6
  464. package/dist/esm/service/api/interfaces/beatleader/index.js.map +0 -1
  465. package/dist/esm/service/api/interfaces/beatsaver/index.js +0 -6
  466. package/dist/esm/service/api/interfaces/beatsaver/index.js.map +0 -1
  467. package/dist/esm/service/api/interfaces/scoresaber/index.js +0 -4
  468. package/dist/esm/service/api/interfaces/scoresaber/index.js.map +0 -1
  469. package/dist/esm/service/api/sortScore.js.map +0 -1
  470. package/dist/esm/service/index.js +0 -1
  471. package/dist/esm/service/index.js.map +0 -1
  472. package/dist/esm/service/preference.js.map +0 -1
  473. package/dist/esm/service/render/index.js.map +0 -1
  474. package/dist/esm/service/render/interfaces.js +0 -1
  475. package/dist/esm/service/render/interfaces.js.map +0 -1
  476. package/dist/esm/ws/beatleader.js.map +0 -1
  477. package/dist/esm/ws/beatsaver.js.map +0 -1
  478. package/dist/esm/ws/bl-filter.js +0 -1
  479. package/dist/esm/ws/bl-filter.js.map +0 -1
  480. package/dist/esm/ws/index.js +0 -5
  481. package/dist/esm/ws/index.js.map +0 -1
  482. package/dist/esm/ws/scoresaber.js +0 -53
  483. package/dist/esm/ws/scoresaber.js.map +0 -1
  484. package/dist/types/cmd/bind/bind-beatleader.d.ts +0 -34
  485. package/dist/types/cmd/bind/bind-beatsaver.d.ts +0 -34
  486. package/dist/types/cmd/bind/bind-id-beatleader.d.ts +0 -34
  487. package/dist/types/cmd/bind/bind-id-beatsaver.d.ts +0 -34
  488. package/dist/types/cmd/bind/bind-scoresaber.d.ts +0 -34
  489. package/dist/types/cmd/bind/index.d.ts +0 -41
  490. package/dist/types/cmd/bsmap/id-search.d.ts +0 -41
  491. package/dist/types/cmd/bsmap/key-search.d.ts +0 -41
  492. package/dist/types/cmd/bsmap/latest.d.ts +0 -41
  493. package/dist/types/cmd/config/index.d.ts +0 -2
  494. package/dist/types/cmd/deprecated/tmp.d.ts +0 -41
  495. package/dist/types/cmd/index.d.ts +0 -34
  496. package/dist/types/cmd/rank.d.ts +0 -41
  497. package/dist/types/cmd/score.d.ts +0 -41
  498. package/dist/types/cmd/subscribe/beatleader.d.ts +0 -34
  499. package/dist/types/cmd/subscribe/beatsaver.d.ts +0 -34
  500. package/dist/types/cmd/subscribe/id-beatleader-score.d.ts +0 -34
  501. package/dist/types/cmd/subscribe/id-beatsaver-mapper.d.ts +0 -34
  502. package/dist/types/cmd/subscribe/index.d.ts +0 -41
  503. package/dist/types/cmd/subscribe/subjoin.d.ts +0 -41
  504. package/dist/types/cmd/subscribe/subleave.d.ts +0 -41
  505. package/dist/types/cmd/subscribe/unsubscribe.d.ts +0 -41
  506. package/dist/types/components/components/RankDifficulty.d.ts +0 -10
  507. package/dist/types/components/components/base/avatar.d.ts +0 -10
  508. package/dist/types/components/components/bl-rank-score-item.d.ts +0 -21
  509. package/dist/types/components/components/bl-score-item.d.ts +0 -10
  510. package/dist/types/components/components/characteristic.d.ts +0 -9
  511. package/dist/types/components/components/flag.d.ts +0 -9
  512. package/dist/types/components/components/icons/BeatLeader.d.ts +0 -6
  513. package/dist/types/components/components/icons/RankIcon.d.ts +0 -8
  514. package/dist/types/components/components/icons/ScoreSaberIcon.d.ts +0 -6
  515. package/dist/types/components/components/progressbar.d.ts +0 -8
  516. package/dist/types/components/components/scoreItem.d.ts +0 -8
  517. package/dist/types/components/components/scoregraph.d.ts +0 -15
  518. package/dist/types/components/components/skill-graph.d.ts +0 -9
  519. package/dist/types/components/components/socre-badge.d.ts +0 -9
  520. package/dist/types/components/components/ss-rank-score-item.d.ts +0 -21
  521. package/dist/types/components/components/ss-score-item.d.ts +0 -8
  522. package/dist/types/components/index.d.ts +0 -5
  523. package/dist/types/components/pages/bl-player.d.ts +0 -11
  524. package/dist/types/components/pages/bl-score-with-rank.d.ts +0 -18
  525. package/dist/types/components/pages/bl-score.d.ts +0 -15
  526. package/dist/types/components/pages/bs-map.d.ts +0 -11
  527. package/dist/types/components/pages/index.d.ts +0 -14
  528. package/dist/types/components/pages/ss-player.d.ts +0 -13
  529. package/dist/types/components/utils/bl/beatleader.d.ts +0 -15
  530. package/dist/types/components/utils/bl/blheadset.d.ts +0 -275
  531. package/dist/types/components/utils/bl/bsorDecoder.d.ts +0 -189
  532. package/dist/types/components/utils/bl/bsorReplayAcc.d.ts +0 -38
  533. package/dist/types/components/utils/bl/getPart.d.ts +0 -9
  534. package/dist/types/components/utils/bl/stastic.d.ts +0 -3
  535. package/dist/types/components/utils/canvas.d.ts +0 -2
  536. package/dist/types/components/utils/format.d.ts +0 -8
  537. package/dist/types/components/utils/getMods.d.ts +0 -5
  538. package/dist/types/components/utils/index.d.ts +0 -6
  539. package/dist/types/components/utils/qrcode.d.ts +0 -3
  540. package/dist/types/components/utils/sleep.d.ts +0 -3
  541. package/dist/types/components/utils/tag-format.d.ts +0 -3
  542. package/dist/types/components/utils/tw-join.d.ts +0 -5
  543. package/dist/types/config.d.ts +0 -30
  544. package/dist/types/index-Dagy_c8G.d.ts +0 -74
  545. package/dist/types/infra/errors/index.d.ts +0 -69
  546. package/dist/types/infra/i18n/index.d.ts +0 -4
  547. package/dist/types/infra/i18n/parser.d.ts +0 -16
  548. package/dist/types/infra/index.d.ts +0 -6
  549. package/dist/types/infra/s3/index.d.ts +0 -20
  550. package/dist/types/infra/support/cache.d.ts +0 -6
  551. package/dist/types/infra/support/fetch/error.d.ts +0 -11
  552. package/dist/types/infra/support/fetch/index.d.ts +0 -7
  553. package/dist/types/infra/support/fetch/ofetch.d.ts +0 -24
  554. package/dist/types/infra/support/render/index.d.ts +0 -38
  555. package/dist/types/infra/support/render/puppeteer.d.ts +0 -43
  556. package/dist/types/interface/bot.d.ts +0 -22
  557. package/dist/types/interface/cmd/builder.d.ts +0 -53
  558. package/dist/types/interface/cmd/type.d.ts +0 -30
  559. package/dist/types/interface/db/index.d.ts +0 -45
  560. package/dist/types/interface/db/models.d.ts +0 -41
  561. package/dist/types/interface/index.d.ts +0 -30
  562. package/dist/types/interface/logger.d.ts +0 -8
  563. package/dist/types/schedules/index.d.ts +0 -40
  564. package/dist/types/schedules/interface.d.ts +0 -45
  565. package/dist/types/schedules/temp.d.ts +0 -35
  566. package/dist/types/service/api/base/aioclient.d.ts +0 -13
  567. package/dist/types/service/api/base/blclient.d.ts +0 -28
  568. package/dist/types/service/api/base/bsclient.d.ts +0 -29
  569. package/dist/types/service/api/base/index.d.ts +0 -19
  570. package/dist/types/service/api/base/ssclient.d.ts +0 -17
  571. package/dist/types/service/api/index.d.ts +0 -59
  572. package/dist/types/service/api/interfaces/aiosaber/index.d.ts +0 -9
  573. package/dist/types/service/api/interfaces/beatleader/bsor.d.ts +0 -113
  574. package/dist/types/service/api/interfaces/beatleader/index.d.ts +0 -5
  575. package/dist/types/service/api/interfaces/beatleader/req.d.ts +0 -22
  576. package/dist/types/service/api/interfaces/beatleader/score.d.ts +0 -164
  577. package/dist/types/service/api/interfaces/beatleader/user.d.ts +0 -173
  578. package/dist/types/service/api/interfaces/beatleader/ws.d.ts +0 -90
  579. package/dist/types/service/api/interfaces/beatsaver/alert.d.ts +0 -20
  580. package/dist/types/service/api/interfaces/beatsaver/bsmap.d.ts +0 -70
  581. package/dist/types/service/api/interfaces/beatsaver/index.d.ts +0 -13
  582. package/dist/types/service/api/interfaces/beatsaver/resp.d.ts +0 -11
  583. package/dist/types/service/api/interfaces/beatsaver/user.d.ts +0 -10
  584. package/dist/types/service/api/interfaces/beatsaver/ws.d.ts +0 -13
  585. package/dist/types/service/api/interfaces/index.d.ts +0 -14
  586. package/dist/types/service/api/interfaces/scoresaber/index.d.ts +0 -3
  587. package/dist/types/service/api/interfaces/scoresaber/item.d.ts +0 -67
  588. package/dist/types/service/api/interfaces/scoresaber/leaderboard.d.ts +0 -13
  589. package/dist/types/service/api/interfaces/scoresaber/resp.d.ts +0 -12
  590. package/dist/types/service/api/interfaces/scoresaber/user.d.ts +0 -35
  591. package/dist/types/service/api/interfaces/scoresaber/ws.d.ts +0 -80
  592. package/dist/types/service/api/sortScore.d.ts +0 -5
  593. package/dist/types/service/index.d.ts +0 -30
  594. package/dist/types/service/preference.d.ts +0 -38
  595. package/dist/types/service/render/index.d.ts +0 -43
  596. package/dist/types/service/render/interfaces.d.ts +0 -30
  597. package/dist/types/utils/index.d.ts +0 -5
  598. package/dist/types/ws/beatleader.d.ts +0 -47
  599. package/dist/types/ws/beatsaver.d.ts +0 -52
  600. package/dist/types/ws/bl-filter.d.ts +0 -2
  601. package/dist/types/ws/handler.d.ts +0 -8
  602. package/dist/types/ws/index.d.ts +0 -36
  603. package/dist/types/ws/scoresaber.d.ts +0 -47
  604. /package/dist/cjs/{infra/support → common}/cache.js +0 -0
  605. /package/dist/cjs/{infra/support → common}/fetch/error.js +0 -0
  606. /package/dist/cjs/{infra → common}/i18n/parser.js +0 -0
  607. /package/dist/cjs/{infra/support → common}/render/puppeteer.js +0 -0
  608. /package/dist/cjs/{interface → core}/cmd/type.js +0 -0
  609. /package/dist/cjs/{interface → core}/logger.js +0 -0
  610. /package/dist/cjs/{ws → events/ws}/handler.js +0 -0
  611. /package/dist/cjs/{service → services}/api/interfaces/aiosaber/index.js +0 -0
  612. /package/dist/cjs/{service → services}/api/interfaces/beatleader/bsor.js +0 -0
  613. /package/dist/cjs/{service → services}/api/interfaces/beatleader/req.js +0 -0
  614. /package/dist/cjs/{service → services}/api/interfaces/beatleader/score.js +0 -0
  615. /package/dist/cjs/{service → services}/api/interfaces/beatleader/user.js +0 -0
  616. /package/dist/cjs/{service → services}/api/interfaces/beatleader/ws.js +0 -0
  617. /package/dist/cjs/{service → services}/api/interfaces/beatsaver/alert.js +0 -0
  618. /package/dist/cjs/{service → services}/api/interfaces/beatsaver/bsmap.js +0 -0
  619. /package/dist/cjs/{service → services}/api/interfaces/beatsaver/resp.js +0 -0
  620. /package/dist/cjs/{service → services}/api/interfaces/beatsaver/user.js +0 -0
  621. /package/dist/cjs/{service → services}/api/interfaces/beatsaver/ws.js +0 -0
  622. /package/dist/cjs/{service → services}/api/interfaces/index.js +0 -0
  623. /package/dist/cjs/{service → services}/api/interfaces/scoresaber/item.js +0 -0
  624. /package/dist/cjs/{service → services}/api/interfaces/scoresaber/leaderboard.js +0 -0
  625. /package/dist/cjs/{service → services}/api/interfaces/scoresaber/resp.js +0 -0
  626. /package/dist/cjs/{service → services}/api/interfaces/scoresaber/user.js +0 -0
  627. /package/dist/cjs/{service → services}/api/interfaces/scoresaber/ws.js +0 -0
  628. /package/dist/cjs/{service → services}/api/sortScore.js +0 -0
  629. /package/dist/cjs/{service → services}/preference.js +0 -0
  630. /package/dist/esm/{infra/support → common}/cache.js +0 -0
  631. /package/dist/esm/{infra/support → common}/fetch/error.js +0 -0
  632. /package/dist/esm/{infra → common}/i18n/parser.js +0 -0
  633. /package/dist/esm/{infra/support → common}/render/puppeteer.js +0 -0
  634. /package/dist/esm/{interface → core}/cmd/type.js +0 -0
  635. /package/dist/esm/{interface → core}/cmd/type.js.map +0 -0
  636. /package/dist/{cjs/ws/bl-filter.js.map → esm/core/domain.js.map} +0 -0
  637. /package/dist/esm/{interface/bot.js.map → core/event.js.map} +0 -0
  638. /package/dist/esm/{interface → core}/logger.js +0 -0
  639. /package/dist/esm/{interface → core}/logger.js.map +0 -0
  640. /package/dist/esm/{schedules/interface.js.map → core/session.js.map} +0 -0
  641. /package/dist/esm/{ws → events/ws}/handler.js +0 -0
  642. /package/dist/esm/{ws → events/ws}/handler.js.map +0 -0
  643. /package/dist/esm/{service → services}/api/interfaces/aiosaber/index.js +0 -0
  644. /package/dist/esm/{service → services}/api/interfaces/aiosaber/index.js.map +0 -0
  645. /package/dist/esm/{service → services}/api/interfaces/beatleader/bsor.js +0 -0
  646. /package/dist/esm/{service → services}/api/interfaces/beatleader/bsor.js.map +0 -0
  647. /package/dist/esm/{service → services}/api/interfaces/beatleader/req.js +0 -0
  648. /package/dist/esm/{service → services}/api/interfaces/beatleader/req.js.map +0 -0
  649. /package/dist/esm/{service → services}/api/interfaces/beatleader/score.js +0 -0
  650. /package/dist/esm/{service → services}/api/interfaces/beatleader/score.js.map +0 -0
  651. /package/dist/esm/{service → services}/api/interfaces/beatleader/user.js +0 -0
  652. /package/dist/esm/{service → services}/api/interfaces/beatleader/user.js.map +0 -0
  653. /package/dist/esm/{service → services}/api/interfaces/beatleader/ws.js +0 -0
  654. /package/dist/esm/{service → services}/api/interfaces/beatleader/ws.js.map +0 -0
  655. /package/dist/esm/{service → services}/api/interfaces/beatsaver/alert.js +0 -0
  656. /package/dist/esm/{service → services}/api/interfaces/beatsaver/alert.js.map +0 -0
  657. /package/dist/esm/{service → services}/api/interfaces/beatsaver/bsmap.js +0 -0
  658. /package/dist/esm/{service → services}/api/interfaces/beatsaver/bsmap.js.map +0 -0
  659. /package/dist/esm/{service → services}/api/interfaces/beatsaver/resp.js +0 -0
  660. /package/dist/esm/{service → services}/api/interfaces/beatsaver/resp.js.map +0 -0
  661. /package/dist/esm/{service → services}/api/interfaces/beatsaver/user.js +0 -0
  662. /package/dist/esm/{service → services}/api/interfaces/beatsaver/user.js.map +0 -0
  663. /package/dist/esm/{service → services}/api/interfaces/beatsaver/ws.js +0 -0
  664. /package/dist/esm/{service → services}/api/interfaces/beatsaver/ws.js.map +0 -0
  665. /package/dist/esm/{service → services}/api/interfaces/index.js +0 -0
  666. /package/dist/esm/{service → services}/api/interfaces/index.js.map +0 -0
  667. /package/dist/esm/{service → services}/api/interfaces/scoresaber/item.js +0 -0
  668. /package/dist/esm/{service → services}/api/interfaces/scoresaber/item.js.map +0 -0
  669. /package/dist/esm/{service → services}/api/interfaces/scoresaber/leaderboard.js +0 -0
  670. /package/dist/esm/{service → services}/api/interfaces/scoresaber/leaderboard.js.map +0 -0
  671. /package/dist/esm/{service → services}/api/interfaces/scoresaber/resp.js +0 -0
  672. /package/dist/esm/{service → services}/api/interfaces/scoresaber/resp.js.map +0 -0
  673. /package/dist/esm/{service → services}/api/interfaces/scoresaber/user.js +0 -0
  674. /package/dist/esm/{service → services}/api/interfaces/scoresaber/user.js.map +0 -0
  675. /package/dist/esm/{service → services}/api/interfaces/scoresaber/ws.js +0 -0
  676. /package/dist/esm/{service → services}/api/interfaces/scoresaber/ws.js.map +0 -0
  677. /package/dist/esm/{service → services}/api/sortScore.js +0 -0
  678. /package/dist/esm/{service → services}/preference.js +0 -0
@@ -1,54 +1,1382 @@
1
- import { ScheduleTaskCtx } from './schedules/interface.js';
2
- import { C as Command } from './index-Dagy_c8G.js';
3
- export { d as CmdAlias, a as CmdContext, b as CmdExecutor, c as CmdOption, E as Extend, O as OptionType, P as Platform, S as Services, p as parsePlatform } from './index-Dagy_c8G.js';
4
- import { Config } from './config.js';
5
- export { getScheduleTasks } from './schedules/index.js';
6
- export { botCommands } from './cmd/index.js';
7
- export { BeatleaderWSHandler } from './ws/beatleader.js';
8
- export { ScoresaberWSHandler } from './ws/scoresaber.js';
9
- export { BeatSaverWSHandler } from './ws/beatsaver.js';
10
- export { WSHandler } from './ws/handler.js';
11
- export { convertDiff, handleWSEventWithCache, sleep } from './utils/index.js';
12
- export { CFBrowserRendering, ImageRender, PuppeteerRendering, RemoteBrowserGetter, RenderConfig, getImageRender } from './infra/support/render/index.js';
13
- export { tran } from './infra/i18n/index.js';
14
- export { RelateAccount, RelateChannelInfo, Subscribe, SubscribeMember, UserPreference } from './interface/db/models.js';
15
- export { DB, SubDetailWithGroupRes, SubInfoRes, SubWithGroupRes } from './interface/db/index.js';
16
- export { Logger } from './interface/logger.js';
17
- export { BotService, Session } from './interface/bot.js';
18
- export { RenderOptions as PuppeteerOptions } from './infra/support/render/puppeteer.js';
19
- import './service/api/index.js';
20
- import './service/api/interfaces/scoresaber/item.js';
21
- import './service/api/interfaces/scoresaber/user.js';
22
- import './service/api/interfaces/beatleader/score.js';
23
- import './service/api/interfaces/beatleader/user.js';
24
- import './service/api/base/ssclient.js';
25
- import './infra/support/fetch/ofetch.js';
26
- import 'ofetch';
27
- import './service/api/interfaces/scoresaber/resp.js';
28
- import './service/api/interfaces/scoresaber/leaderboard.js';
29
- import './service/api/base/blclient.js';
30
- import './service/api/interfaces/index.js';
31
- import './service/api/interfaces/beatleader/req.js';
32
- import './service/api/base/aioclient.js';
33
- import './service/api/interfaces/aiosaber/index.js';
34
- import './service/api/base/bsclient.js';
35
- import './service/api/interfaces/beatsaver/bsmap.js';
36
- import './service/api/interfaces/beatsaver/resp.js';
37
- import './service/api/interfaces/beatsaver/user.js';
38
- import './service/preference.js';
39
- import './infra/s3/index.js';
40
- import './service/render/index.js';
41
- import './service/api/interfaces/beatsaver/ws.js';
42
- import 'puppeteer-core';
43
-
44
- declare const getBot: <T>(config: Config) => {
45
- commands: Command<T>[];
1
+ import * as ofetch from 'ofetch';
2
+ import { $Fetch, FetchOptions, ResponseType } from 'ofetch';
3
+ import { z } from 'zod/v4';
4
+ import { ScreenshotOptions, Viewport, Browser } from 'puppeteer-core';
5
+
6
+ interface Logger {
7
+ info(msg: string, ...args: any[]): void;
8
+ warn(msg: string, ...args: any[]): void;
9
+ error(msg: string, ...args: any[]): void;
10
+ debug(msg: string, ...args: any[]): void;
11
+ }
12
+
13
+ type User$1 = {
14
+ id: string;
15
+ name: string;
16
+ createdAt?: Date;
17
+ updatedAt?: Date;
18
+ };
19
+ type Channel$1 = {
20
+ id: string;
21
+ channelId: string;
22
+ providerId: string;
23
+ };
24
+ type SessionAgent = {
25
+ id: string;
26
+ providerId: string;
27
+ accountId: string;
28
+ status: string;
29
+ enabled: boolean;
30
+ };
31
+
32
+ type Message = string;
33
+ interface ISession {
34
+ sendImgBuffer(content: any, mimeType?: string): Promise<void>;
35
+ sendImgByUrl(url: string): Promise<void>;
36
+ sendAudioByUrl(url: string): Promise<void>;
37
+ send(msg: Message): Promise<void>;
38
+ sendQueued(msg: Message): Promise<void>;
39
+ sendQuote(msg: Message): Promise<void>;
40
+ text(path: string, args?: any): Message;
41
+ prompt(timeout?: number): Promise<Message | undefined>;
42
+ }
43
+ interface PassiveSession extends ISession {
44
+ user: User$1;
45
+ channel: Channel$1;
46
+ mentions: User$1[];
47
+ agent: SessionAgent;
48
+ }
49
+ interface AgentService {
50
+ getAgentSessionByChannelInfo(channel: Channel$1): PositiveSession;
51
+ }
52
+ interface PositiveSession extends ISession {
53
+ channel: Channel$1;
54
+ agent: SessionAgent;
55
+ }
56
+
57
+ interface CmdContext$1<Service, Cfg, OPT> {
58
+ logger: Logger;
59
+ session: PassiveSession;
60
+ config: Cfg;
61
+ services: Service;
62
+ options: OPT;
63
+ input?: string;
64
+ }
65
+ type CmdExecutor<Service, Cfg, OPT> = (c: CmdContext$1<Service, Cfg, OPT>) => Promise<void>;
66
+ interface CmdOption {
67
+ type: 'boolean' | 'number' | 'string';
68
+ name: string;
69
+ short?: string;
70
+ description?: string;
71
+ required?: boolean;
72
+ }
73
+ type CmdAlias = {
74
+ alias: string;
75
+ option?: {};
76
+ };
77
+ interface Command$1<Service, Cfg, OPT> {
78
+ name: string;
79
+ description: string;
80
+ aliases: CmdAlias[];
81
+ options: CmdOption[];
82
+ callback: CmdExecutor<Service, Cfg, OPT>;
83
+ }
84
+ type Extend<BASE extends {}, N extends string, D> = {
85
+ [P in N | keyof BASE]?: (P extends keyof BASE ? BASE[P] : unknown) & (P extends N ? D : unknown);
86
+ };
87
+ type ExtractType<T extends string> = T extends 'string' ? string : T extends 'boolean' ? boolean : T extends 'number' ? number : any;
88
+ type Nullable<T> = T | null;
89
+ type ExtractNullSafeType<T extends string> = T extends `${infer Type}?` ? Nullable<ExtractType<Type>> : ExtractType<T>;
90
+ type OptionType<T extends string> = T extends `${infer L}:${infer R}` ? ExtractNullSafeType<R> : unknown;
91
+
92
+ declare class CommandBuilder$1<Service, Config, OPT extends {} = {}> {
93
+ private name;
94
+ private description;
95
+ private options;
96
+ private aliases;
97
+ constructor();
98
+ addOption<N extends string, D extends string>(name: N, description: D): CommandBuilder$1<Service, Config, Extend<OPT, N, OptionType<D>>>;
99
+ addAlias(alias: string, option?: object): this;
100
+ setName<T extends string>(name: T): this;
101
+ setDescription(description: string): this;
102
+ setExecutor(executor: CmdExecutor<Service, Config, OPT>): {
103
+ name: string;
104
+ description: string;
105
+ aliases: CmdAlias[];
106
+ options: CmdOption[];
107
+ callback: (c: CmdContext$1<Service, Config, OPT>) => Promise<void>;
108
+ children: any[];
109
+ };
110
+ }
111
+
112
+ type EventHandlerCtx<Service, Config> = {
113
+ config: Config;
114
+ logger: Logger;
115
+ services: Service;
116
+ agentService: AgentService;
117
+ };
118
+
119
+ interface User {
120
+ id: string;
121
+ name: string;
122
+ createdAt: Date;
123
+ updatedAt: Date;
124
+ }
125
+ interface Channel {
126
+ id: string;
127
+ channelId: string;
128
+ providerId: string;
129
+ createdAt?: Date;
130
+ updatedAt?: Date;
131
+ }
132
+ interface Account<T = any> {
133
+ id: string;
134
+ userId: string;
135
+ providerId: string;
136
+ accountId: string;
137
+ type: string;
138
+ providerUsername?: string;
139
+ scope?: string;
140
+ accessToken?: string;
141
+ accessTokenExpiresAt?: Date;
142
+ refreshToken?: string;
143
+ refreshTokenExpiresAt?: Date;
144
+ idToken?: string;
145
+ metadata?: T;
146
+ lastModifiedAt: Date;
147
+ lastRefreshAt: Date;
148
+ createdAt: Date;
149
+ }
150
+ interface Subscription {
151
+ id: string;
152
+ channelId: string;
153
+ type: string;
154
+ enabled: boolean;
155
+ data: any;
156
+ createdAt: Date;
157
+ updatedAt: Date;
158
+ }
159
+ interface SubscriptionMember {
160
+ subscribeId: string;
161
+ memberId: string;
162
+ subscribeData: any;
163
+ createdAt: Date;
164
+ updatedAt: Date;
165
+ }
166
+ type Preference<T = any> = {
167
+ userId: string;
168
+ channelId: string;
169
+ data: T;
170
+ createdAt: Date;
171
+ updatedAt: Date;
172
+ };
173
+
174
+ interface SubInfoRes {
175
+ subscription: Subscription;
176
+ memberCount: number;
177
+ me: any;
178
+ }
179
+ interface SubInfoRes {
180
+ subscription: Subscription;
181
+ memberCount: number;
182
+ me: any;
183
+ }
184
+ interface SubDetailWithGroupRes {
185
+ account: Account;
186
+ user: User$1;
187
+ channel: Channel$1;
188
+ subscriptionMember: SubscriptionMember;
189
+ subscription: Subscription;
190
+ }
191
+ interface SubWithGroupRes {
192
+ subscription: Subscription;
193
+ channel: Channel$1;
194
+ }
195
+ interface DB {
196
+ storeUserPreference<V = any>(uid: string, value: V): Promise<boolean>;
197
+ getUserPreference<V = any>(uid: string): Promise<V>;
198
+ getUserAccountsByUid(id: string): Promise<Record<string, Account>>;
199
+ addUserBindingInfo(account: Partial<Account>): Promise<void>;
200
+ upsertSubscription(data: Partial<Subscription>): Promise<void>;
201
+ getSubscriptionInfoByUGID(gid: string, uid: string): Promise<SubInfoRes[]>;
202
+ getSubscriptionsByGID(gid: string): Promise<Record<string, Subscription>>;
203
+ getIDSubscriptionByGID(gid: string): Promise<Subscription[]>;
204
+ getIDSubscriptionByType(type: string): Promise<SubWithGroupRes[]>;
205
+ removeIDSubscriptionByID(id: string): Promise<void>;
206
+ getIDSubscriptionByChannelIDAndType(gid: string, type: string): Promise<Subscription[]>;
207
+ getAllSubscriptionByUIDAndPlatform(id: string, type: string): Promise<SubDetailWithGroupRes[]>;
208
+ getSubscriptionsByType(type: string): Promise<SubWithGroupRes[]>;
209
+ addSubscribeMember(data: Partial<SubscriptionMember>): Promise<void>;
210
+ removeFromSubGroupBySubAndUid(subId: string, id: string): Promise<void>;
211
+ }
212
+
213
+ declare class I18nService {
214
+ translator: (path: string, params: any, lang: string) => string;
215
+ constructor(config?: any);
216
+ mergeConfig(lang: string, obj: any): void;
217
+ loadLang(lang: string): void;
218
+ tran(path: string, params?: {}, lang?: string): string;
219
+ }
220
+
221
+ interface ScoreSaberItem {
222
+ score: SSScore;
223
+ leaderboard: LeaderBoard;
224
+ mapId?: string;
225
+ }
226
+ interface SSScore {
227
+ id: number;
228
+ leaderboardPlayerInfo: LeaderboardPlayerInfo;
229
+ rank: number;
230
+ baseScore: number;
231
+ modifiedScore: number;
232
+ pp: number;
233
+ weight: number;
234
+ modifiers: string;
235
+ multiplier: number;
236
+ badCuts: number;
237
+ missedNotes: number;
238
+ maxCombo: number;
239
+ fullCombo: boolean;
240
+ hmd: number;
241
+ timeSet: string;
242
+ hasReplay: boolean;
243
+ deviceHmd: string;
244
+ deviceControllerLeft: string;
245
+ deviceControllerRight: string;
246
+ }
247
+ interface LeaderboardPlayerInfo {
248
+ id: string;
249
+ name: string;
250
+ profilePicture: string;
251
+ country: string;
252
+ permissions: number;
253
+ badges?: string;
254
+ role?: string;
255
+ }
256
+ interface LeaderBoard {
257
+ id: number;
258
+ songHash: string;
259
+ songName: string;
260
+ songSubName: string;
261
+ songAuthorName: string;
262
+ levelAuthorName: string;
263
+ difficulty: {
264
+ leaderboardId: number;
265
+ difficulty: number;
266
+ gameMode: string;
267
+ difficultyRaw: string;
268
+ };
269
+ maxScore: number;
270
+ createdDate: string;
271
+ rankedDate: string;
272
+ qualifiedDate: string;
273
+ lovedDate: any;
274
+ ranked: boolean;
275
+ qualified: boolean;
276
+ loved: boolean;
277
+ maxPP: number;
278
+ stars: number;
279
+ plays: number;
280
+ dailyPlays: number;
281
+ positiveModifiers: boolean;
282
+ playerScore: any;
283
+ coverImage: string;
284
+ difficulties: any;
285
+ }
286
+
287
+ interface ScoreSaberUserResponse {
288
+ playerScores: ScoreSaberItem[];
289
+ metadata: {
290
+ total: number;
291
+ page: number;
292
+ itemsPerPage: number;
293
+ };
294
+ }
295
+
296
+ interface ScoreSaberUser {
297
+ badges: Badge[];
298
+ banned: boolean;
299
+ bio: string;
300
+ country: string;
301
+ countryRank: number;
302
+ firstSeen: string;
303
+ histories: string;
304
+ id: string;
305
+ inactive: boolean;
306
+ name: string;
307
+ permissions: number;
308
+ pp: number;
309
+ profilePicture: string;
310
+ rank: number;
311
+ role: null;
312
+ scoreStats: ScoreStats;
313
+ [property: string]: any;
314
+ }
315
+ interface Badge {
316
+ description?: string;
317
+ image?: string;
318
+ [property: string]: any;
319
+ }
320
+ interface ScoreStats {
321
+ averageRankedAccuracy: number;
322
+ rankedPlayCount: number;
323
+ replaysWatched: number;
324
+ totalPlayCount: number;
325
+ totalRankedScore: number;
326
+ totalScore: number;
327
+ [property: string]: any;
328
+ }
329
+
330
+ interface Score {
331
+ accLeft: number;
332
+ accPP: number;
333
+ accRight: number;
334
+ accuracy: number;
335
+ badCuts: number;
336
+ baseScore: number;
337
+ bombCuts: number;
338
+ bonusPp: number;
339
+ contextExtensions: null;
340
+ controller: number;
341
+ country: null | string;
342
+ fcAccuracy: number;
343
+ fcPp: number;
344
+ fullCombo: boolean;
345
+ hmd: number;
346
+ id: number;
347
+ leaderboard: Leaderboard;
348
+ leaderboardId: string;
349
+ maxCombo: number;
350
+ maxStreak: number | null;
351
+ metadata: null;
352
+ missedNotes: number;
353
+ modifiedScore: number;
354
+ modifiers: string;
355
+ myScore: null;
356
+ offsets: Offsets;
357
+ passPP: number;
358
+ pauses: number;
359
+ platform: string;
360
+ playCount: number;
361
+ player: any;
362
+ playerId: string;
363
+ pp: number;
364
+ priority: number;
365
+ rank: number;
366
+ rankVoting: null;
367
+ replay: string;
368
+ replaysWatched: number;
369
+ scoreImprovement: ScoreImprovement;
370
+ techPP: number;
371
+ timepost: number;
372
+ timeset: string;
373
+ validContexts: number;
374
+ wallsHit: number;
375
+ weight: number;
376
+ [property: string]: any;
377
+ }
378
+ interface Leaderboard {
379
+ difficulty: Difficulty;
380
+ id: string;
381
+ song: Song;
382
+ [property: string]: any;
383
+ }
384
+ interface Difficulty {
385
+ accRating: number | null;
386
+ bombs: number;
387
+ difficultyName: string;
388
+ duration: number;
389
+ id: number;
390
+ maxScore: number;
391
+ mode: number;
392
+ modeName: string;
393
+ modifiersRating: null | ModifiersRating;
394
+ modifierValues: ModifierValues;
395
+ njs: number;
396
+ nominatedTime: number;
397
+ notes: number;
398
+ nps: number;
399
+ passRating: number | null;
400
+ predictedAcc: number;
401
+ qualifiedTime: number;
402
+ rankedTime: number;
403
+ requirements: number;
404
+ stars: number | null;
405
+ status: number;
406
+ techRating: number | null;
407
+ type: number;
408
+ value: number;
409
+ walls: number;
410
+ [property: string]: any;
411
+ }
412
+ interface ModifierValues {
413
+ da: number;
414
+ fs: number;
415
+ gn: number;
416
+ modifierId: number;
417
+ na: number;
418
+ nb: number;
419
+ nf: number;
420
+ no: number;
421
+ op: number;
422
+ pm: number;
423
+ sa: number;
424
+ sc: number;
425
+ sf: number;
426
+ ss: number;
427
+ [property: string]: any;
428
+ }
429
+ interface ModifiersRating {
430
+ fsAccRating: number;
431
+ fsPassRating: number;
432
+ fsPredictedAcc: number;
433
+ fsStars: number;
434
+ fsTechRating: number;
435
+ id: number;
436
+ sfAccRating: number;
437
+ sfPassRating: number;
438
+ sfPredictedAcc: number;
439
+ sfStars: number;
440
+ sfTechRating: number;
441
+ ssAccRating: number;
442
+ ssPassRating: number;
443
+ ssPredictedAcc: number;
444
+ ssStars: number;
445
+ ssTechRating: number;
446
+ [property: string]: any;
447
+ }
448
+ interface Song {
449
+ author: string;
450
+ bpm: number;
451
+ collaboratorIds: null;
452
+ coverImage: string;
453
+ duration: number;
454
+ fullCoverImage: string;
455
+ hash: string;
456
+ id: string;
457
+ mapper: string;
458
+ mapperId: number;
459
+ name: string;
460
+ subName: string;
461
+ [property: string]: any;
462
+ }
463
+ interface Offsets {
464
+ frames: number;
465
+ heights: number;
466
+ id: number;
467
+ notes: number;
468
+ pauses: number;
469
+ walls: number;
470
+ [property: string]: any;
471
+ }
472
+ interface ScoreImprovement {
473
+ accLeft: number;
474
+ accRight: number;
475
+ accuracy: number;
476
+ averageRankedAccuracy: number;
477
+ badCuts: number;
478
+ bombCuts: number;
479
+ bonusPp: number;
480
+ id: number;
481
+ missedNotes: number;
482
+ pauses: number;
483
+ pp: number;
484
+ rank: number;
485
+ score: number;
486
+ timeset: string;
487
+ totalPp: number;
488
+ totalRank: number;
489
+ wallsHit: number;
490
+ [property: string]: any;
491
+ }
492
+
493
+ interface BeatLeaderPlayerScoreRequest {
494
+ diff: string;
495
+ mode: string;
496
+ hash: string;
497
+ playerID: string;
498
+ leaderboardContext: string;
499
+ }
500
+ interface Metadata$1 {
501
+ itemsPerPage: number;
502
+ page: number;
503
+ total: number;
504
+ [property: string]: any;
505
+ }
506
+ interface BeadLeaderScoresResponse {
507
+ data: Score[];
508
+ metadata: Metadata$1;
509
+ [property: string]: any;
510
+ }
511
+
512
+ interface BeatLeaderUser {
513
+ accPp: number;
514
+ avatar: string;
515
+ badges: BLBadge[];
516
+ banDescription: null;
517
+ banned: boolean;
518
+ bot: boolean;
519
+ changes: BLChange[];
520
+ clanOrder: string;
521
+ clans: BLClan[];
522
+ contextExtensions: null;
523
+ country: string;
524
+ countryRank: number;
525
+ eventsParticipating: null;
526
+ externalProfileUrl: string;
527
+ history: null;
528
+ id: string;
529
+ inactive: boolean;
530
+ lastWeekCountryRank: number;
531
+ lastWeekPp: number;
532
+ lastWeekRank: number;
533
+ mapperId: number;
534
+ name: string;
535
+ passPp: number;
536
+ patreonFeatures: null;
537
+ pinnedScores: null;
538
+ platform: string;
539
+ pp: number;
540
+ profileSettings: BLProfileSettings;
541
+ rank: number;
542
+ role: string;
543
+ scoreStats: BLScoreStats;
544
+ socials: BLSocial[];
545
+ techPp: number;
546
+ topHMD: number;
547
+ sspPlays: number;
548
+ ssPlays: number;
549
+ spPlays: number;
550
+ sPlays: number;
551
+ aPlays: number;
552
+ [property: string]: any;
553
+ }
554
+ interface BLBadge {
555
+ description: string;
556
+ hidden: boolean;
557
+ id: number;
558
+ image: string;
559
+ link: string;
560
+ timeset: number;
561
+ [property: string]: any;
562
+ }
563
+ interface BLChange {
564
+ changer: null | string;
565
+ id: number;
566
+ newCountry: null | string;
567
+ newName: null | string;
568
+ oldCountry: string;
569
+ oldName: null | string;
570
+ playerId: string;
571
+ timestamp: number;
572
+ [property: string]: any;
573
+ }
574
+ interface BLClan {
575
+ color: string;
576
+ id: number;
577
+ name: null;
578
+ tag: string;
579
+ [property: string]: any;
580
+ }
581
+ interface BLProfileSettings {
582
+ bio: null;
583
+ effectName: string;
584
+ hue: number;
585
+ id: number;
586
+ leftSaberColor: string;
587
+ message: null;
588
+ profileAppearance: string;
589
+ profileCover: string;
590
+ rightSaberColor: string;
591
+ saturation: number;
592
+ showAllRatings: boolean;
593
+ showBots: boolean;
594
+ starredFriends: string;
595
+ [property: string]: any;
596
+ }
597
+ interface BLScoreStats {
598
+ anonimusReplayWatched: number;
599
+ aPlays: number;
600
+ authorizedReplayWatched: number;
601
+ averageAccuracy: number;
602
+ averageLeftTiming: number;
603
+ averageRank: number;
604
+ averageRankedAccuracy: number;
605
+ averageRankedRank: number;
606
+ averageRightTiming: number;
607
+ averageUnrankedAccuracy: number;
608
+ averageUnrankedRank: number;
609
+ averageWeightedRankedAccuracy: number;
610
+ averageWeightedRankedRank: number;
611
+ countryTopPercentile: number;
612
+ dailyImprovements: number;
613
+ id: number;
614
+ lastRankedScoreTime: number;
615
+ lastScoreTime: number;
616
+ lastUnrankedScoreTime: number;
617
+ maxStreak: number;
618
+ medianAccuracy: number;
619
+ medianRankedAccuracy: number;
620
+ peakRank: number;
621
+ rankedImprovementsCount: number;
622
+ rankedMaxStreak: number;
623
+ rankedPlayCount: number;
624
+ rankedTop1Count: number;
625
+ rankedTop1Score: number;
626
+ sPlays: number;
627
+ spPlays: number;
628
+ ssPlays: number;
629
+ sspPlays: number;
630
+ top1Count: number;
631
+ top1Score: number;
632
+ topAccPP: number;
633
+ topAccuracy: number;
634
+ topBonusPP: number;
635
+ topHMD: number;
636
+ topPassPP: number;
637
+ topPercentile: number;
638
+ topPlatform: string;
639
+ topPp: number;
640
+ topRankedAccuracy: number;
641
+ topTechPP: number;
642
+ topUnrankedAccuracy: number;
643
+ totalImprovementsCount: number;
644
+ totalPlayCount: number;
645
+ totalRankedScore: number;
646
+ totalScore: number;
647
+ totalUnrankedScore: number;
648
+ unrankedImprovementsCount: number;
649
+ unrankedMaxStreak: number;
650
+ unrankedPlayCount: number;
651
+ unrankedTop1Count: number;
652
+ unrankedTop1Score: number;
653
+ watchedReplays: number;
654
+ [property: string]: any;
655
+ }
656
+ interface BLSocial {
657
+ id: number;
658
+ link: string;
659
+ playerId: string;
660
+ service: string;
661
+ user: string;
662
+ userId: string;
663
+ [property: string]: any;
664
+ }
665
+
666
+ interface ScoresaberLeaderboardResp {
667
+ scores: SSScore[];
668
+ metadata: Metadata;
669
+ }
670
+ interface Metadata {
671
+ total: number;
672
+ page: number;
673
+ itemsPerPage: number;
674
+ }
675
+
676
+ type ExtendFetchOptions<R extends ResponseType = ResponseType, T = any> = {
677
+ form?: Record<string, any>;
678
+ } & FetchOptions<R, T>;
679
+ declare class Fetch {
680
+ private options?;
681
+ private ofetchInstance;
682
+ constructor(fetchInstance?: $Fetch, options?: FetchOptions);
683
+ fetch<T, R extends ResponseType>(request: string, options?: ExtendFetchOptions<R, T>): Promise<ofetch.MappedResponseType<R, T>>;
684
+ get<T = any, R extends ResponseType = 'json'>(request: string, options?: ExtendFetchOptions<R>): Promise<ofetch.MappedResponseType<R, T>>;
685
+ post<T = any, R extends ResponseType = 'json'>(request: string, options?: ExtendFetchOptions<R>): Promise<ofetch.MappedResponseType<R, T>>;
686
+ put<T = any, R extends ResponseType = 'json'>(request: string, options?: ExtendFetchOptions<R>): Promise<ofetch.MappedResponseType<R, any>>;
687
+ patch<T = any, R extends ResponseType = 'json'>(request: string, options?: ExtendFetchOptions<R>): Promise<ofetch.MappedResponseType<R, any>>;
688
+ delete<T = any, R extends ResponseType = 'json'>(request: string, options?: ExtendFetchOptions<R>): Promise<ofetch.MappedResponseType<R, any>>;
689
+ head(request: string, options?: FetchOptions): Promise<any>;
690
+ extend(options: FetchOptions): Fetch;
691
+ baseUrl(url: string): Fetch;
692
+ }
693
+
694
+ declare class ScoreSaberClient {
695
+ f: Fetch;
696
+ constructor(logger: Logger);
697
+ getScoreUserById(userId: string): Promise<ScoreSaberUser>;
698
+ getScoreItemsById(userId: string, page: number, pageSize?: number): Promise<ScoreSaberUserResponse>;
699
+ getScoreItemsByMapId(mapId: string, diff: string, mode: string, page: number, pageSize?: number): Promise<ScoresaberLeaderboardResp>;
700
+ }
701
+
702
+ interface OAuthTokenResponse {
703
+ access_token: string;
704
+ token_type: string;
705
+ expires_in: number;
706
+ refresh_token: string;
707
+ scope?: string;
708
+ }
709
+ interface OAuthTokenInfoResponse {
710
+ scope?: string[];
711
+ id: string;
712
+ name: string;
713
+ }
714
+
715
+ type ClientOptions$1 = {
716
+ client_id?: string;
717
+ client_secret?: string;
718
+ logger?: Logger;
719
+ };
720
+ declare class BeatLeaderClient {
721
+ f: Fetch;
722
+ opt?: ClientOptions$1;
723
+ constructor(opt?: ClientOptions$1);
724
+ getPlayerScore(req: BeatLeaderPlayerScoreRequest): Promise<Leaderboard>;
725
+ getTokenInfo(accessToken: string): Promise<OAuthTokenInfoResponse>;
726
+ refreshOAuthToken(refreshToken: string): Promise<OAuthTokenResponse>;
727
+ getPlayerInfo(accountId: string): Promise<BeatLeaderUser>;
728
+ getPlayerScores(accountId: string): Promise<BeadLeaderScoresResponse>;
729
+ getPlayerPinnedScores(accountId: string): Promise<Score[]>;
730
+ getBeatScore(scoreId: string): Promise<Score>;
731
+ getLeaderboard(leaderboardId: string, params?: Record<string, any>): Promise<any>;
732
+ }
733
+
734
+ interface AioOauthTokenResponse {
735
+ access_token: string;
736
+ token_type: string;
737
+ expires_in: number;
738
+ refresh_token: string;
739
+ scope?: string;
740
+ }
741
+
742
+ declare class AIOSaberClient {
743
+ f: Fetch;
744
+ constructor(logger: Logger);
745
+ getBSOAuthToken(key: string): Promise<AioOauthTokenResponse>;
746
+ getBLOAuthToken(key: string): Promise<AioOauthTokenResponse>;
747
+ }
748
+
749
+ interface BSMap {
750
+ id: string;
751
+ name: string;
752
+ description: string;
753
+ declaredAi: string;
754
+ uploader: {
755
+ id: number;
756
+ name: string;
757
+ avatar: string;
758
+ type: string;
759
+ [key: string]: any;
760
+ };
761
+ metadata: {
762
+ bpm: number;
763
+ duration: number;
764
+ songName: string;
765
+ songSubName: string;
766
+ songAuthorName: string;
767
+ levelAuthorName: string;
768
+ };
769
+ stats: {
770
+ plays: number;
771
+ downloads: number;
772
+ upvotes: number;
773
+ downvotes: number;
774
+ score: number;
775
+ reviews?: number;
776
+ [key: string]: any;
777
+ };
778
+ automapper: boolean;
779
+ versions: {
780
+ hash: string;
781
+ state: string;
782
+ createdAt: string;
783
+ downloadURL: string;
784
+ coverURL: string;
785
+ previewURL: string;
786
+ sageScore?: number;
787
+ diffs: {
788
+ notes: number;
789
+ bombs: number;
790
+ offset: number;
791
+ obstacles: number;
792
+ nps: number;
793
+ length: number;
794
+ characteristic: string;
795
+ difficulty: string;
796
+ events: number;
797
+ chroma: boolean;
798
+ me: boolean;
799
+ ne: boolean;
800
+ cinema: boolean;
801
+ seconds: number;
802
+ maxScore: number;
803
+ paritySummary: any;
804
+ star?: number;
805
+ blStar?: number;
806
+ [key: string]: any;
807
+ }[];
808
+ }[];
809
+ lastPublishedAt: string;
810
+ updatedAt: string;
811
+ createdAt: string;
812
+ tags: string[];
813
+ ranked?: boolean;
814
+ blRanked?: boolean;
815
+ [key: string]: any;
816
+ }
817
+
818
+ interface DeleteEvent {
819
+ type: 'MAP_DELETE';
820
+ msg: string;
821
+ }
822
+ interface UpdateEvent {
823
+ type: 'MAP_UPDATE';
824
+ msg: BSMap;
825
+ }
826
+ type BeatSaverWSEvent = DeleteEvent | UpdateEvent;
827
+
828
+ interface HashResponse {
829
+ [hash: string]: BSMap;
830
+ }
831
+ type HashReqResponse = BSMap | HashResponse;
832
+
833
+ interface BSUserResponse {
834
+ id: number;
835
+ name: string;
836
+ admin: boolean;
837
+ avatar: boolean;
838
+ curator: boolean;
839
+ description: string;
840
+ }
841
+
842
+ type ClientOptions = {
843
+ logger?: Logger;
844
+ host?: string;
845
+ client_id?: string;
846
+ client_secret?: string;
847
+ f?: Fetch;
848
+ };
849
+ declare class BeatSaverClient {
850
+ f: Fetch;
851
+ opt?: ClientOptions;
852
+ constructor(opt?: ClientOptions);
853
+ getBSMapperById(userId: string): Promise<BSUserResponse>;
854
+ getLatestMaps(pageSize?: number): Promise<BSMap[]>;
855
+ searchMapByKeyword(key: string, params?: Record<string, boolean | number | string>): Promise<BSMap[]>;
856
+ searchMapById(id: string): Promise<BSMap>;
857
+ getTokenInfo(ak: string): Promise<OAuthTokenInfoResponse>;
858
+ getMapsByHashes(hashes: string[]): Promise<HashReqResponse>;
859
+ refreshOAuthToken(rk: string): Promise<OAuthTokenResponse>;
860
+ }
861
+
862
+ declare const configSchema: z.ZodObject<{
863
+ s3: z.ZodOptional<z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
864
+ s3AccessKey: z.ZodString;
865
+ s3SecretKey: z.ZodString;
866
+ endpoint: z.ZodString;
867
+ baseURL: z.ZodString;
868
+ bucketName: z.ZodString;
869
+ region: z.ZodOptional<z.ZodString>;
870
+ keyPrefix: z.ZodOptional<z.ZodString>;
871
+ enabled: z.ZodLiteral<true>;
872
+ }, z.core.$strip>, z.ZodObject<{
873
+ enabled: z.ZodLiteral<false>;
874
+ }, z.core.$strip>]>>>;
875
+ render: z.ZodIntersection<z.ZodDiscriminatedUnion<[z.ZodObject<{
876
+ defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
877
+ waitTimeout: z.ZodOptional<z.ZodNumber>;
878
+ cfAccountId: z.ZodString;
879
+ cfAPIKey: z.ZodString;
880
+ mode: z.ZodLiteral<"cf">;
881
+ }, z.core.$strip>, z.ZodObject<{
882
+ defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
883
+ waitTimeout: z.ZodOptional<z.ZodNumber>;
884
+ puppeteerURL: z.ZodOptional<z.ZodString>;
885
+ mode: z.ZodLiteral<"puppeteer">;
886
+ }, z.core.$strip>, z.ZodObject<{
887
+ defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
888
+ waitTimeout: z.ZodOptional<z.ZodNumber>;
889
+ mode: z.ZodLiteral<"custom">;
890
+ }, z.core.$strip>]>, z.ZodObject<{
891
+ defaultWaitTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
892
+ waitTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
893
+ puppeteerURL: z.ZodOptional<z.ZodOptional<z.ZodString>>;
894
+ cfAccountId: z.ZodOptional<z.ZodString>;
895
+ cfAPIKey: z.ZodOptional<z.ZodString>;
896
+ }, z.core.$strip>>;
897
+ beatsaver: z.ZodOptional<z.ZodDefault<z.ZodObject<{
898
+ host: z.ZodOptional<z.ZodDefault<z.ZodString>>;
899
+ wsURL: z.ZodOptional<z.ZodDefault<z.ZodString>>;
900
+ oauthClientId: z.ZodOptional<z.ZodString>;
901
+ oauthClientSecret: z.ZodOptional<z.ZodString>;
902
+ }, z.core.$strip>>>;
903
+ beatleader: z.ZodOptional<z.ZodDefault<z.ZodObject<{
904
+ oauthClientId: z.ZodOptional<z.ZodString>;
905
+ oauthClientSecret: z.ZodOptional<z.ZodString>;
906
+ }, z.core.$strip>>>;
907
+ cron: z.ZodOptional<z.ZodDefault<z.ZodObject<{
908
+ temp: z.ZodDefault<z.ZodOptional<z.ZodObject<{
909
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
910
+ cron: z.ZodOptional<z.ZodString>;
911
+ }, z.core.$strip>>>;
912
+ }, z.core.$strip>>>;
913
+ }, z.core.$strip>;
914
+ type Config = z.infer<typeof configSchema>;
915
+
916
+ type MapDiffOption = {
917
+ difficulty?: string;
918
+ mode?: string;
919
+ };
920
+ declare class APIService {
921
+ BeatLeader: BeatLeaderClient;
922
+ ScoreSaber: ScoreSaberClient;
923
+ BeatSaver: BeatSaverClient;
924
+ AIOSaber: AIOSaberClient;
925
+ constructor(cfg: Config, logger: Logger);
926
+ getBLPlayerScoresWithUserInfo(accountId: string): Promise<{
927
+ scores: Score[];
928
+ userInfo: BeatLeaderUser;
929
+ }>;
930
+ getSSPlayerScoresWithUserInfo(accountId: string): Promise<void>;
931
+ getScoreByPlayerIdAndMapId(playerId: string, mapId: string, option?: MapDiffOption): Promise<Leaderboard | null>;
932
+ getAroundScoreAndRegionScoreByRankAndPage(leaderboardId: string, rank: number, regionCode: string): Promise<{
933
+ difficulties: any;
934
+ aroundScores: any;
935
+ regionTopScores: any;
936
+ }>;
937
+ getScoreAndBSMapByScoreId(scoreId: string): Promise<{
938
+ score: Score;
939
+ bsMap: BSMap;
940
+ statistic: any;
941
+ bsor: unknown;
942
+ }>;
943
+ getSSPlayerRecentScoreWithUserInfo(uid: string): Promise<{
944
+ scores: ScoreSaberItem[];
945
+ userInfo: ScoreSaberUser;
946
+ }>;
947
+ }
948
+
949
+ declare enum Platform {
950
+ SS = "scoresaber",
951
+ BS = "beatsaver",
952
+ BL = "beatleader"
953
+ }
954
+ declare const parsePlatform: (p: string) => Platform.SS | Platform.BL;
955
+
956
+ declare function checkBSORFile(file: any, completion: any): void;
957
+ declare function decode(arrayBuffer: any, completion: any): void;
958
+ declare function decodeAsync(arrayBuffer: any): Promise<{
959
+ info: {
960
+ version: string;
961
+ gameVersion: string;
962
+ timestamp: string;
963
+ playerID: string;
964
+ playerName: string;
965
+ platform: string;
966
+ trackingSystem: string;
967
+ hmd: string;
968
+ controller: string;
969
+ hash: string;
970
+ songName: string;
971
+ mapper: string;
972
+ difficulty: string;
973
+ score: any;
974
+ mode: string;
975
+ environment: string;
976
+ modifiers: string;
977
+ jumpDistance: any;
978
+ leftHanded: boolean;
979
+ height: any;
980
+ startTime: any;
981
+ failTime: any;
982
+ speed: any;
983
+ };
984
+ frames: {
985
+ time: any;
986
+ fps: any;
987
+ head: {
988
+ position: {
989
+ x: any;
990
+ y: any;
991
+ z: any;
992
+ };
993
+ rotation: {
994
+ x: any;
995
+ y: any;
996
+ z: any;
997
+ w: any;
998
+ };
999
+ };
1000
+ left: {
1001
+ position: {
1002
+ x: any;
1003
+ y: any;
1004
+ z: any;
1005
+ };
1006
+ rotation: {
1007
+ x: any;
1008
+ y: any;
1009
+ z: any;
1010
+ w: any;
1011
+ };
1012
+ };
1013
+ right: {
1014
+ position: {
1015
+ x: any;
1016
+ y: any;
1017
+ z: any;
1018
+ };
1019
+ rotation: {
1020
+ x: any;
1021
+ y: any;
1022
+ z: any;
1023
+ w: any;
1024
+ };
1025
+ };
1026
+ }[];
1027
+ notes: {
1028
+ noteID: any;
1029
+ eventTime: any;
1030
+ spawnTime: any;
1031
+ eventType: any;
1032
+ noteCutInfo: {
1033
+ speedOK: boolean;
1034
+ directionOK: boolean;
1035
+ saberTypeOK: boolean;
1036
+ wasCutTooSoon: boolean;
1037
+ saberSpeed: any;
1038
+ saberDir: {
1039
+ x: any;
1040
+ y: any;
1041
+ z: any;
1042
+ };
1043
+ saberType: any;
1044
+ timeDeviation: any;
1045
+ cutDirDeviation: any;
1046
+ cutPoint: {
1047
+ x: any;
1048
+ y: any;
1049
+ z: any;
1050
+ };
1051
+ cutNormal: {
1052
+ x: any;
1053
+ y: any;
1054
+ z: any;
1055
+ };
1056
+ cutDistanceToCenter: any;
1057
+ cutAngle: any;
1058
+ beforeCutRating: any;
1059
+ afterCutRating: any;
1060
+ };
1061
+ }[];
1062
+ walls: {
1063
+ wallID: any;
1064
+ energy: any;
1065
+ time: any;
1066
+ spawnTime: any;
1067
+ }[];
1068
+ heights: {
1069
+ height: any;
1070
+ time: any;
1071
+ }[];
1072
+ pauses: {
1073
+ duration: any;
1074
+ time: any;
1075
+ }[];
1076
+ }>;
1077
+ declare function DecodeInfo(dataView: any): {
1078
+ version: string;
1079
+ gameVersion: string;
1080
+ timestamp: string;
1081
+ playerID: string;
1082
+ playerName: string;
1083
+ platform: string;
1084
+ trackingSystem: string;
1085
+ hmd: string;
1086
+ controller: string;
1087
+ hash: string;
1088
+ songName: string;
1089
+ mapper: string;
1090
+ difficulty: string;
1091
+ score: any;
1092
+ mode: string;
1093
+ environment: string;
1094
+ modifiers: string;
1095
+ jumpDistance: any;
1096
+ leftHanded: boolean;
1097
+ height: any;
1098
+ startTime: any;
1099
+ failTime: any;
1100
+ speed: any;
1101
+ };
1102
+ declare function DecodeNotes(dataView: any): {
1103
+ noteID: any;
1104
+ eventTime: any;
1105
+ spawnTime: any;
1106
+ eventType: any;
1107
+ noteCutInfo: {
1108
+ speedOK: boolean;
1109
+ directionOK: boolean;
1110
+ saberTypeOK: boolean;
1111
+ wasCutTooSoon: boolean;
1112
+ saberSpeed: any;
1113
+ saberDir: {
1114
+ x: any;
1115
+ y: any;
1116
+ z: any;
1117
+ };
1118
+ saberType: any;
1119
+ timeDeviation: any;
1120
+ cutDirDeviation: any;
1121
+ cutPoint: {
1122
+ x: any;
1123
+ y: any;
1124
+ z: any;
1125
+ };
1126
+ cutNormal: {
1127
+ x: any;
1128
+ y: any;
1129
+ z: any;
1130
+ };
1131
+ cutDistanceToCenter: any;
1132
+ cutAngle: any;
1133
+ beforeCutRating: any;
1134
+ afterCutRating: any;
1135
+ };
1136
+ }[];
1137
+ declare namespace NoteEventType {
1138
+ let good: number;
1139
+ let bad: number;
1140
+ let miss: number;
1141
+ let bomb: number;
1142
+ }
1143
+
1144
+ declare const handleWSEventWithCache: (fnThat: any, fn: any, ttl: any, eventParser: any, eventFilter: any, eventIdSelector: any) => (event: any) => Promise<void>;
1145
+ declare const sleep: (millsec?: number) => Promise<void>;
1146
+ declare const convertDiff: (diff: string | null) => any;
1147
+
1148
+ /**
1149
+ * Extends Puppeteer's ScreenshotOptions to include an optional viewport setting
1150
+ * and a selector for element-specific screenshots.
1151
+ */
1152
+ interface RenderOptions$1 extends ScreenshotOptions {
1153
+ /**
1154
+ * Sets the viewport of the page.
1155
+ */
1156
+ viewport?: Viewport;
1157
+ /**
1158
+ * A CSS selector for an element to screenshot. If provided, the output
1159
+ * will be a screenshot of just this element.
1160
+ */
1161
+ selector?: string;
1162
+ /**
1163
+ * The maximum time in milliseconds to wait for the selector to appear.
1164
+ * If the element is not found within this time, an error will be thrown.
1165
+ * Defaults to Puppeteer's default (usually 30000ms).
1166
+ */
1167
+ timeout?: number;
1168
+ }
1169
+
1170
+ interface ImageRender {
1171
+ html2img: (html: string, opt: RenderOptions$1) => Promise<Buffer>;
1172
+ url2img: (url: string, opt: RenderOptions$1) => Promise<Buffer>;
1173
+ }
1174
+ declare const strictRenderConfig: z.ZodDiscriminatedUnion<[z.ZodObject<{
1175
+ defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
1176
+ waitTimeout: z.ZodOptional<z.ZodNumber>;
1177
+ cfAccountId: z.ZodString;
1178
+ cfAPIKey: z.ZodString;
1179
+ mode: z.ZodLiteral<"cf">;
1180
+ }, z.core.$strip>, z.ZodObject<{
1181
+ defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
1182
+ waitTimeout: z.ZodOptional<z.ZodNumber>;
1183
+ puppeteerURL: z.ZodOptional<z.ZodString>;
1184
+ mode: z.ZodLiteral<"puppeteer">;
1185
+ }, z.core.$strip>, z.ZodObject<{
1186
+ defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
1187
+ waitTimeout: z.ZodOptional<z.ZodNumber>;
1188
+ mode: z.ZodLiteral<"custom">;
1189
+ }, z.core.$strip>]>;
1190
+ declare const renderSchema: z.ZodIntersection<z.ZodDiscriminatedUnion<[z.ZodObject<{
1191
+ defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
1192
+ waitTimeout: z.ZodOptional<z.ZodNumber>;
1193
+ cfAccountId: z.ZodString;
1194
+ cfAPIKey: z.ZodString;
1195
+ mode: z.ZodLiteral<"cf">;
1196
+ }, z.core.$strip>, z.ZodObject<{
1197
+ defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
1198
+ waitTimeout: z.ZodOptional<z.ZodNumber>;
1199
+ puppeteerURL: z.ZodOptional<z.ZodString>;
1200
+ mode: z.ZodLiteral<"puppeteer">;
1201
+ }, z.core.$strip>, z.ZodObject<{
1202
+ defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
1203
+ waitTimeout: z.ZodOptional<z.ZodNumber>;
1204
+ mode: z.ZodLiteral<"custom">;
1205
+ }, z.core.$strip>]>, z.ZodObject<{
1206
+ defaultWaitTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
1207
+ waitTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
1208
+ puppeteerURL: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1209
+ cfAccountId: z.ZodOptional<z.ZodString>;
1210
+ cfAPIKey: z.ZodOptional<z.ZodString>;
1211
+ }, z.core.$strip>>;
1212
+ type RenderConfig = z.infer<typeof renderSchema>;
1213
+ type StrictRenderConfig = z.infer<typeof strictRenderConfig>;
1214
+ declare class CFBrowserRendering implements ImageRender {
1215
+ f: Fetch;
1216
+ constructor(accountId: string, cfAPIKey: string, logger: Logger);
1217
+ private post;
1218
+ html2img(html: string, opt: RenderOptions$1): Promise<Buffer>;
1219
+ url2img(url: string, opt: RenderOptions$1): Promise<Buffer>;
1220
+ }
1221
+ declare class PuppeteerRendering implements ImageRender {
1222
+ private browserGetter;
1223
+ constructor(browserGetter: () => Promise<Browser>);
1224
+ html2img(html: string, opt: RenderOptions$1): Promise<Buffer>;
1225
+ url2img(html: string, opt: RenderOptions$1): Promise<Buffer>;
1226
+ }
1227
+ declare const RemoteBrowserGetter: (addr: string) => () => Promise<Browser>;
1228
+ type ImageRenderCreateOptions = StrictRenderConfig & {
1229
+ logger: Logger;
1230
+ render?: ImageRender;
1231
+ browserGetter?: () => Promise<Browser>;
1232
+ };
1233
+ declare const getImageRender: (config: ImageRenderCreateOptions) => ImageRender;
1234
+ type CreateImageRenderOption = Parameters<typeof getImageRender>[0];
1235
+
1236
+ declare class UserPreferenceStore {
1237
+ private db;
1238
+ private uid;
1239
+ v: any;
1240
+ constructor(db: DB, uid: string);
1241
+ getUserPreference(uid: string): Promise<UserPreferenceStore>;
1242
+ set<T extends string | number | boolean>(key: string, value: T): Promise<boolean>;
1243
+ get<T extends string | number | boolean>(key: string): Promise<T | undefined>;
1244
+ configEntries(): Promise<Record<string, any>>;
1245
+ }
1246
+
1247
+ type RenderOption = RenderOptions & RenderOptions$1;
1248
+ type RenderOptions = {
1249
+ userPreference?: UserPreferenceStore;
1250
+ onRenderStart?: () => void;
1251
+ onRenderError?: (e: any) => void;
1252
+ };
1253
+ interface IRenderService {
1254
+ renderRank(accountId: string, platform: Platform, renderOpts?: RenderOption): Promise<Buffer>;
1255
+ renderScore(scoreId: string, renderOpts?: RenderOption): Promise<Buffer>;
1256
+ renderMapById(mapId: string, renderOpts?: RenderOption): Promise<Buffer>;
1257
+ renderMap(bsMap: BSMap, renderOpts?: RenderOption): Promise<Buffer>;
1258
+ renderUrl(url: string, renderOpts?: RenderOption): Promise<Buffer>;
1259
+ }
1260
+ declare class RenderService implements IRenderService {
1261
+ private api;
1262
+ private imageRender;
1263
+ private constructor();
1264
+ static create(imgRenderConfig: CreateImageRenderOption & {
1265
+ api: APIService;
1266
+ }): RenderService;
1267
+ renderRank(accountId: string, platform: Platform, renderOpts?: RenderOption): Promise<Buffer>;
1268
+ renderScore(scoreId: string, renderOpts?: RenderOption): Promise<Buffer>;
1269
+ renderMapById(mapId: string, renderOption: RenderOption): Promise<Buffer>;
1270
+ renderMap(bsMap: BSMap, renderOption?: RenderOption): Promise<Buffer>;
1271
+ renderUrl(url: string, renderOption?: RenderOption): Promise<Buffer>;
1272
+ }
1273
+
1274
+ interface S3Config {
1275
+ s3AccessKey: string;
1276
+ s3SecretKey: string;
1277
+ endpoint: string;
1278
+ region?: string;
1279
+ bucketName: string;
1280
+ keyPrefix?: string;
1281
+ baseURL: string;
1282
+ }
1283
+ declare const strictS3ConfigSchema: z.ZodObject<{
1284
+ s3AccessKey: z.ZodString;
1285
+ s3SecretKey: z.ZodString;
1286
+ endpoint: z.ZodString;
1287
+ baseURL: z.ZodString;
1288
+ bucketName: z.ZodString;
1289
+ region: z.ZodOptional<z.ZodString>;
1290
+ keyPrefix: z.ZodOptional<z.ZodString>;
1291
+ }, z.core.$strip>;
1292
+ declare const s3ConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1293
+ s3AccessKey: z.ZodString;
1294
+ s3SecretKey: z.ZodString;
1295
+ endpoint: z.ZodString;
1296
+ baseURL: z.ZodString;
1297
+ bucketName: z.ZodString;
1298
+ region: z.ZodOptional<z.ZodString>;
1299
+ keyPrefix: z.ZodOptional<z.ZodString>;
1300
+ enabled: z.ZodLiteral<true>;
1301
+ }, z.core.$strip>, z.ZodObject<{
1302
+ enabled: z.ZodLiteral<false>;
1303
+ }, z.core.$strip>]>;
1304
+ declare class S3Service {
1305
+ private s3Client;
1306
+ private readonly bucket;
1307
+ private readonly keyPrefix;
1308
+ private readonly baseURL;
1309
+ constructor(config: S3Config);
1310
+ uploadImgWithUrl(url: string, mimeType?: string): Promise<string>;
1311
+ uploadImg(buffer: Buffer, mimeType?: string): Promise<string>;
1312
+ }
1313
+
1314
+ type Services = {
1315
+ db: DB;
1316
+ api: APIService;
1317
+ render: RenderService;
1318
+ i18n: I18nService;
1319
+ s3: S3Service;
1320
+ };
1321
+ declare class CommandBuilder<T, OPT = unknown> extends CommandBuilder$1<Services, Config, OPT> {
1322
+ }
1323
+ type CmdContext<O = unknown> = CmdContext$1<Services, Config, O>;
1324
+ type Command<O = unknown> = Command$1<Services, Config, O>;
1325
+
1326
+ declare const getScheduleTasks: (config: Config) => {
1327
+ name: string;
1328
+ handler: (c: EventHandlerCtx<Services, Config>) => Promise<void>;
1329
+ cron: string;
1330
+ enabled: boolean;
1331
+ }[];
1332
+
1333
+ declare const botCommands: () => Command[];
1334
+
1335
+ interface WSHandler {
1336
+ wsUrl: string;
1337
+ onOpen?: () => void;
1338
+ onClose?: () => void;
1339
+ onEvent?: (event: any) => void;
1340
+ }
1341
+
1342
+ declare class BeatleaderWSHandler<T> implements WSHandler {
1343
+ private readonly logger;
1344
+ private render;
1345
+ private agentService;
1346
+ wsUrl: string;
1347
+ private db;
1348
+ config: Config;
1349
+ constructor(db: DB, render: RenderService, logger: Logger, config: Config, agentService: AgentService);
1350
+ onOpen(): void;
1351
+ onClose(): void;
1352
+ onEvent(event: any): Promise<void>;
1353
+ }
1354
+
1355
+ declare class BeatSaverWSHandler<T> implements WSHandler {
1356
+ private readonly logger;
1357
+ private render;
1358
+ private agentService;
1359
+ wsUrl: string;
1360
+ private db;
1361
+ config: Config;
1362
+ constructor(db: DB, render: RenderService, logger: Logger, config: Config, agentService: AgentService);
1363
+ onOpen(): void;
1364
+ onClose(): void;
1365
+ eventParser(event: any): BeatSaverWSEvent;
1366
+ eventFilter: (data: BeatSaverWSEvent) => boolean;
1367
+ eventIdSelector: (data: BeatSaverWSEvent) => string;
1368
+ BSWSHandler(data: BeatSaverWSEvent): Promise<void>;
1369
+ onEvent: (event: any) => Promise<void>;
1370
+ }
1371
+
1372
+ declare const getBot: (config: Config) => {
1373
+ commands: Command[];
46
1374
  schedule: {
47
1375
  name: string;
48
- handler: <T_1>(c: ScheduleTaskCtx<T_1>) => Promise<void>;
1376
+ handler: (c: EventHandlerCtx<Services, Config>) => Promise<void>;
49
1377
  cron: string;
50
- enable: boolean;
1378
+ enabled: boolean;
51
1379
  }[];
52
1380
  };
53
1381
 
54
- export { Command, Config, getBot };
1382
+ export { APIService, type Account, type AgentService, BeatSaverWSHandler, BeatleaderWSHandler, CFBrowserRendering, type Channel, type CmdContext, type Command, CommandBuilder, type Config, type CreateImageRenderOption, type DB, DecodeInfo, DecodeNotes, I18nService, type ISession, type ImageRender, type Logger, NoteEventType, type PassiveSession, Platform, type PositiveSession, type Preference, type RenderOptions$1 as PuppeteerOptions, PuppeteerRendering, RemoteBrowserGetter, type RenderConfig, RenderService, type S3Config, S3Service, type Services, type SessionAgent, type SubDetailWithGroupRes, type SubInfoRes, type SubWithGroupRes, type Subscription, type SubscriptionMember, type User, type WSHandler, botCommands, checkBSORFile, configSchema, convertDiff, decode, decodeAsync, getBot, getImageRender, getScheduleTasks, handleWSEventWithCache, parsePlatform, renderSchema, s3ConfigSchema, sleep, strictS3ConfigSchema };