beatsaber-bot-core 0.2.0-rc.9 → 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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/events/schedules/temp.ts"],"sourcesContent":["import { EventHandlerCtx } from \"@/core\";\nimport { Config } from \"@/config\";\nimport {Services} from \"@/interface\";\n\nexport const LBScoreMonitor = async (c: EventHandlerCtx<Services, Config>) => {\n const channels = await c.services.db.getSubscriptionsByType('lb-rank')\n if (channels.length <= 0) {\n return\n }\n const [hitbuf, scorebuf] = await Promise.all([\n c.services.render.renderUrl('https://aiobs.ktlab.io/tmp/lb/hitcnt', {\n selector: '#render-result',\n }),\n c.services.render.renderUrl('https://aiobs.ktlab.io/tmp/lb/score', {\n selector: '#render-result',\n }),\n ])\n for (const group of channels) {\n // 获取一个带有 Agent 的 Service\n const session = c.agentService.getAgentSessionByChannelInfo(group.channel)\n if (!session) {\n continue\n }\n await session.sendImgBuffer(hitbuf, 'image/png')\n await session.sendImgBuffer(scorebuf, 'image/png')\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,MAAM,iBAAiB,CAAO,MAAyC;AAC5E,QAAM,WAAW,MAAM,EAAE,SAAS,GAAG,uBAAuB,SAAS;AACrE,MAAI,SAAS,UAAU,GAAG;AACxB;AAAA,EACF;AACA,QAAM,CAAC,QAAQ,QAAQ,IAAI,MAAM,QAAQ,IAAI;AAAA,IAC3C,EAAE,SAAS,OAAO,UAAU,wCAAwC;AAAA,MAClE,UAAU;AAAA,IACZ,CAAC;AAAA,IACD,EAAE,SAAS,OAAO,UAAU,uCAAuC;AAAA,MACjE,UAAU;AAAA,IACZ,CAAC;AAAA,EACH,CAAC;AACD,aAAW,SAAS,UAAU;AAE5B,UAAM,UAAU,EAAE,aAAa,6BAA6B,MAAM,OAAO;AACzE,QAAI,CAAC,SAAS;AACZ;AAAA,IACF;AACA,UAAM,QAAQ,cAAc,QAAQ,WAAW;AAC/C,UAAM,QAAQ,cAAc,UAAU,WAAW;AAAA,EACnD;AACF;","names":[]}
@@ -43,16 +43,16 @@ __export(beatleader_exports, {
43
43
  });
44
44
  module.exports = __toCommonJS(beatleader_exports);
45
45
  class BeatleaderWSHandler {
46
- constructor(db, render, logger, config, botService) {
46
+ constructor(db, render, logger, config, agentService) {
47
47
  __publicField(this, "logger");
48
48
  __publicField(this, "render");
49
- __publicField(this, "botService");
49
+ __publicField(this, "agentService");
50
50
  __publicField(this, "wsUrl", "wss://sockets.api.beatleader.xyz/scores");
51
51
  __publicField(this, "db");
52
52
  __publicField(this, "config");
53
53
  this.logger = logger;
54
54
  this.render = render;
55
- this.botService = botService;
55
+ this.agentService = agentService;
56
56
  this.config = config;
57
57
  this.db = db;
58
58
  }
@@ -68,17 +68,17 @@ class BeatleaderWSHandler {
68
68
  const playerId = data.player.id;
69
69
  const subscriptions = yield this.db.getAllSubscriptionByUIDAndPlatform(playerId, "beatleader");
70
70
  const restSub = subscriptions.filter(
71
- (it) => it.subscribe.type == "beatleader-score" && it.subscribe.enable == true
71
+ (it) => it.subscription.type == "beatleader-score" && it.subscription.enabled == true
72
72
  );
73
73
  if (restSub.length === 0) return;
74
74
  const img = yield this.render.renderScore(data.id.toString());
75
75
  for (const item of restSub) {
76
- const session = this.botService.getSessionByChannelInfo(item.groupChannel);
76
+ const session = this.agentService.getAgentSessionByChannelInfo(item.channel);
77
77
  if (!session) {
78
78
  continue;
79
79
  }
80
80
  yield session.send(
81
- `\u606D\u559C <at id="${item.account.uid}"/> \u521A\u521A\u5728\u8C31\u9762\u300C${data.leaderboard.song.name}\u300D\u4E2D\u6253\u51FA\u4E86 ${(data.accuracy * 100).toFixed(2)}% \u7684\u597D\u6210\u7EE9`
81
+ `\u606D\u559C <at id="${item.account.userId}"/> \u521A\u521A\u5728\u8C31\u9762\u300C${data.leaderboard.song.name}\u300D\u4E2D\u6253\u51FA\u4E86 ${(data.accuracy * 100).toFixed(2)}% \u7684\u597D\u6210\u7EE9`
82
82
  );
83
83
  yield session.sendImgBuffer(img);
84
84
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/events/ws/beatleader.ts"],"sourcesContent":["import { WSHandler } from './handler'\nimport { AgentService, Logger } from '@/core'\nimport { Config } from '@/config'\nimport { DB } from '@/interface/db'\nimport {RenderService} from \"@/services\";\nimport { BeatLeaderWSEvent } from \"@/services/api/interfaces/beatleader\";\n\nexport class BeatleaderWSHandler<T> implements WSHandler {\n private readonly logger: Logger\n private render: RenderService\n private agentService: AgentService\n wsUrl: string = 'wss://sockets.api.beatleader.xyz/scores'\n private db: DB\n config: Config\n constructor(\n db: DB,\n render: RenderService,\n logger: Logger,\n config: Config,\n agentService: AgentService\n ) {\n this.logger = logger\n this.render = render\n this.agentService = agentService\n this.config = config\n this.db = db\n }\n\n onOpen() {\n this.logger.info('BeatleaderWS opened')\n }\n\n onClose() {\n this.logger.info('BeatleaderWS closed')\n }\n\n async onEvent(event: any) {\n const data = JSON.parse(event.toString()) as BeatLeaderWSEvent\n const playerId = data.player.id\n // const ok = BeatLeaderFilter(data, ...this.config.BLScoreFilters)\n // if (!ok) {\n // return\n // }\n // logger.info('Received beatleader message',data.id, data.player.id);\n // cache all playerId\n const subscriptions = await this.db.getAllSubscriptionByUIDAndPlatform(playerId, 'beatleader')\n // .filter(item=> {\n // const channelFilters = item.sub.data as BLScoreFilter[]\n // const memberFilters = item.member.subscribeData\n // return BeatLeaderFilter(data, ...channelFilters, ...memberFilters)\n // })\n const restSub = subscriptions.filter((it) =>\n it.subscription.type == 'beatleader-score' && it.subscription.enabled == true\n )\n // cacheService\n if (restSub.length === 0) return\n const img = await this.render.renderScore(data.id.toString())\n for (const item of restSub) {\n const session = this.agentService.getAgentSessionByChannelInfo(item.channel)\n if (!session) {\n continue\n }\n await session.send(\n `恭喜 <at id=\"${item.account.userId}\"/> 刚刚在谱面「${data.leaderboard.song.name}」中打出了 ${(data.accuracy * 100).toFixed(2)}% 的好成绩`\n )\n await session.sendImgBuffer(img)\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,MAAM,oBAA4C;AAAA,EAOvD,YACE,IACA,QACA,QACA,QACA,cACA;AAZF,wBAAiB;AACjB,wBAAQ;AACR,wBAAQ;AACR,iCAAgB;AAChB,wBAAQ;AACR;AAQE,SAAK,SAAS;AACd,SAAK,SAAS;AACd,SAAK,eAAe;AACpB,SAAK,SAAS;AACd,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,SAAS;AACP,SAAK,OAAO,KAAK,qBAAqB;AAAA,EACxC;AAAA,EAEA,UAAU;AACR,SAAK,OAAO,KAAK,qBAAqB;AAAA,EACxC;AAAA,EAEM,QAAQ,OAAY;AAAA;AACxB,YAAM,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AACxC,YAAM,WAAW,KAAK,OAAO;AAO7B,YAAM,gBAAgB,MAAM,KAAK,GAAG,mCAAmC,UAAU,YAAY;AAM7F,YAAM,UAAU,cAAc;AAAA,QAAO,CAAC,OACpC,GAAG,aAAa,QAAQ,sBAAsB,GAAG,aAAa,WAAW;AAAA,MAC3E;AAEA,UAAI,QAAQ,WAAW,EAAG;AAC1B,YAAM,MAAM,MAAM,KAAK,OAAO,YAAY,KAAK,GAAG,SAAS,CAAC;AAC5D,iBAAW,QAAQ,SAAS;AAC1B,cAAM,UAAU,KAAK,aAAa,6BAA6B,KAAK,OAAO;AAC3E,YAAI,CAAC,SAAS;AACZ;AAAA,QACF;AACA,cAAM,QAAQ;AAAA,UACZ,wBAAc,KAAK,QAAQ,MAAM,2CAAa,KAAK,YAAY,KAAK,IAAI,mCAAU,KAAK,WAAW,KAAK,QAAQ,CAAC,CAAC;AAAA,QACnH;AACA,cAAM,QAAQ,cAAc,GAAG;AAAA,MACjC;AAAA,IACF;AAAA;AACF;","names":[]}
@@ -42,12 +42,12 @@ __export(beatsaver_exports, {
42
42
  BeatSaverWSHandler: () => BeatSaverWSHandler
43
43
  });
44
44
  module.exports = __toCommonJS(beatsaver_exports);
45
- var import_utils = require("../utils");
45
+ var import_utils = require("../../utils/index.js");
46
46
  class BeatSaverWSHandler {
47
- constructor(db, render, logger, config, botService) {
47
+ constructor(db, render, logger, config, agentService) {
48
48
  __publicField(this, "logger");
49
49
  __publicField(this, "render");
50
- __publicField(this, "botService");
50
+ __publicField(this, "agentService");
51
51
  __publicField(this, "wsUrl", "wss://ws.beatsaver.com/maps");
52
52
  __publicField(this, "db");
53
53
  __publicField(this, "config");
@@ -65,7 +65,7 @@ class BeatSaverWSHandler {
65
65
  ));
66
66
  this.logger = logger;
67
67
  this.render = render;
68
- this.botService = botService;
68
+ this.agentService = agentService;
69
69
  this.config = config;
70
70
  this.db = db;
71
71
  }
@@ -83,35 +83,35 @@ class BeatSaverWSHandler {
83
83
  const bsmap = data.msg;
84
84
  const userId = bsmap.uploader.id;
85
85
  const subscriptions = yield this.db.getAllSubscriptionByUIDAndPlatform(
86
- userId,
86
+ String(userId),
87
87
  "beatsaver"
88
88
  );
89
89
  const restSub = subscriptions.filter(
90
- (it) => it.subscribe.type == "beatsaver-map" && it.subscribe.enable == true
90
+ (it) => it.subscription.type == "beatsaver-map" && it.subscription.enabled == true
91
91
  );
92
- const gids = restSub.map((it) => it.groupChannel.id);
92
+ const gids = restSub.map((it) => it.channel.id);
93
93
  const groupSubs = yield this.db.getIDSubscriptionByType("id-beatsaver-map");
94
94
  const restGroupSubs = groupSubs.filter(
95
95
  (it) => {
96
96
  var _a, _b;
97
- return !gids.includes(it.groupChannel.id) && ((_b = (_a = it.subscribe.data) == null ? void 0 : _a.mapperId) == null ? void 0 : _b.toString()) === userId.toString();
97
+ return !gids.includes(it.channel.id) && ((_b = (_a = it.subscription.data) == null ? void 0 : _a.mapperId) == null ? void 0 : _b.toString()) === userId.toString();
98
98
  }
99
99
  );
100
100
  if (restSub.length === 0 && restGroupSubs) return;
101
101
  const image = this.render.renderMap(bsmap);
102
102
  for (const item of restSub) {
103
- const session = this.botService.getSessionByChannelInfo(item.groupChannel);
103
+ const session = this.agentService.getAgentSessionByChannelInfo(item.channel);
104
104
  if (!session) {
105
105
  continue;
106
106
  }
107
107
  yield session.send(
108
- `\u672C\u7FA4\u8C31\u5E08 \u300C<at id="${item.account.uid}"/> (${bsmap.uploader.name})\u300D\u521A\u521A\u53D1\u5E03\u4E86\u65B0\u8C31\u9762\uFF0C\u300C${bsmap.name}\u300D`
108
+ `\u672C\u7FA4\u8C31\u5E08 \u300C<at id="${item.account.userId}"/> (${bsmap.uploader.name})\u300D\u521A\u521A\u53D1\u5E03\u4E86\u65B0\u8C31\u9762\uFF0C\u300C${bsmap.name}\u300D`
109
109
  );
110
110
  yield session.sendImgBuffer(yield image);
111
111
  yield session.sendAudioByUrl(bsmap.versions[0].previewURL);
112
112
  }
113
113
  for (const item of restGroupSubs) {
114
- const session = this.botService.getSessionByChannelInfo(item.groupChannel);
114
+ const session = this.agentService.getAgentSessionByChannelInfo(item.channel);
115
115
  if (!session) {
116
116
  continue;
117
117
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/events/ws/beatsaver.ts"],"sourcesContent":["import { WSHandler } from './handler'\nimport {AgentService, EventHandlerCtx, Logger} from '@/core'\nimport { Config } from '@/config'\nimport { DB } from '@/interface/db'\nimport { handleWSEventWithCache } from '@/utils'\nimport {BeatSaverWSEvent, BSMap} from \"@/services/api/interfaces/beatsaver\";\nimport {RenderService} from \"@/services\";\nimport {Services} from \"@/interface\";\nexport class BeatSaverWSHandler<T> implements WSHandler {\n private readonly logger: Logger\n private render: RenderService\n private agentService: AgentService\n wsUrl: string = 'wss://ws.beatsaver.com/maps'\n private db: DB\n config: Config\n constructor(\n db: DB,\n render: RenderService,\n logger: Logger,\n config: Config,\n agentService: AgentService\n ) {\n this.logger = logger\n this.render = render\n this.agentService = agentService\n this.config = config\n this.db = db\n }\n\n onOpen() {\n this.logger.info('BeatsaverWS opened')\n }\n\n onClose() {\n this.logger.info('BeatsaverWS closed')\n }\n\n eventParser(event) {\n return JSON.parse(event.toString()) as BeatSaverWSEvent\n }\n\n eventFilter = (data: BeatSaverWSEvent) => {\n return (\n data.type === 'MAP_UPDATE' &&\n data.msg.versions.some((it) => it.state == 'Published') &&\n data.msg.declaredAi === 'None'\n )\n }\n eventIdSelector = (data: BeatSaverWSEvent) =>\n `ws.bs.${data.type === 'MAP_DELETE' ? data.msg : data.msg.id}.${data.type}`\n\n async BSWSHandler(data: BeatSaverWSEvent) {\n // this.logger.info('Beatsaver message received', data.type, data?.msg?.id)\n\n const bsmap = data.msg as BSMap\n const userId = bsmap.uploader.id\n const subscriptions = await this.db.getAllSubscriptionByUIDAndPlatform(\n String(userId),\n 'beatsaver'\n )\n\n const restSub = subscriptions.filter(\n (it) =>\n it.subscription.type == 'beatsaver-map' && it.subscription.enabled == true\n )\n const gids = restSub.map((it) => it.channel.id)\n const groupSubs = await this.db.getIDSubscriptionByType('id-beatsaver-map')\n const restGroupSubs = groupSubs.filter(\n (it) =>\n !gids.includes(it.channel.id) &&\n it.subscription.data?.mapperId?.toString() === userId.toString()\n )\n\n // cacheService\n if (restSub.length === 0 && restGroupSubs) return\n const image = this.render.renderMap(bsmap)\n for (const item of restSub) {\n const session = this.agentService.getAgentSessionByChannelInfo(item.channel)\n if (!session) {\n continue\n }\n await session.send(\n `本群谱师 「<at id=\"${item.account.userId}\"/> (${bsmap.uploader.name})」刚刚发布了新谱面,「${bsmap.name}」`\n )\n // text + mention element\n await session.sendImgBuffer(await image)\n await session.sendAudioByUrl(bsmap.versions[0].previewURL)\n }\n for (const item of restGroupSubs) {\n const session = this.agentService.getAgentSessionByChannelInfo(item.channel)\n if (!session) {\n continue\n }\n await session.send(\n `谱师「${bsmap.uploader.name}」刚刚发布了新谱面,「${bsmap.name}」`\n )\n // text + mention element\n await session.sendImgBuffer(await image)\n await session.sendAudioByUrl(bsmap.versions[0].previewURL)\n }\n }\n\n onEvent = handleWSEventWithCache(\n this,\n this.BSWSHandler,\n 1000 * 60 * 15,\n this.eventParser,\n this.eventFilter,\n this.eventIdSelector\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,mBAAuC;AAIhC,MAAM,mBAA2C;AAAA,EAOtD,YACE,IACA,QACA,QACA,QACA,cACA;AAZF,wBAAiB;AACjB,wBAAQ;AACR,wBAAQ;AACR,iCAAgB;AAChB,wBAAQ;AACR;AA2BA,uCAAc,CAAC,SAA2B;AACxC,aACE,KAAK,SAAS,gBACd,KAAK,IAAI,SAAS,KAAK,CAAC,OAAO,GAAG,SAAS,WAAW,KACtD,KAAK,IAAI,eAAe;AAAA,IAE5B;AACA,2CAAkB,CAAC,SACjB,SAAS,KAAK,SAAS,eAAe,KAAK,MAAM,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI;AAqD3E,uCAAU;AAAA,MACR;AAAA,MACA,KAAK;AAAA,MACL,MAAO,KAAK;AAAA,MACZ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAvFE,SAAK,SAAS;AACd,SAAK,SAAS;AACd,SAAK,eAAe;AACpB,SAAK,SAAS;AACd,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,SAAS;AACP,SAAK,OAAO,KAAK,oBAAoB;AAAA,EACvC;AAAA,EAEA,UAAU;AACR,SAAK,OAAO,KAAK,oBAAoB;AAAA,EACvC;AAAA,EAEA,YAAY,OAAO;AACjB,WAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAAA,EACpC;AAAA,EAYM,YAAY,MAAwB;AAAA;AAGxC,YAAM,QAAQ,KAAK;AACnB,YAAM,SAAS,MAAM,SAAS;AAC9B,YAAM,gBAAgB,MAAM,KAAK,GAAG;AAAA,QAClC,OAAO,MAAM;AAAA,QACb;AAAA,MACF;AAEA,YAAM,UAAU,cAAc;AAAA,QAC5B,CAAC,OACC,GAAG,aAAa,QAAQ,mBAAmB,GAAG,aAAa,WAAW;AAAA,MAC1E;AACA,YAAM,OAAO,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE;AAC9C,YAAM,YAAY,MAAM,KAAK,GAAG,wBAAwB,kBAAkB;AAC1E,YAAM,gBAAgB,UAAU;AAAA,QAC9B,CAAC,OAAI;AApEX;AAqEQ,kBAAC,KAAK,SAAS,GAAG,QAAQ,EAAE,OAC5B,cAAG,aAAa,SAAhB,mBAAsB,aAAtB,mBAAgC,gBAAe,OAAO,SAAS;AAAA;AAAA,MACnE;AAGA,UAAI,QAAQ,WAAW,KAAK,cAAe;AAC3C,YAAM,QAAQ,KAAK,OAAO,UAAU,KAAK;AACzC,iBAAW,QAAQ,SAAS;AAC1B,cAAM,UAAU,KAAK,aAAa,6BAA6B,KAAK,OAAO;AAC3E,YAAI,CAAC,SAAS;AACZ;AAAA,QACF;AACA,cAAM,QAAQ;AAAA,UACZ,0CAAiB,KAAK,QAAQ,MAAM,QAAQ,MAAM,SAAS,IAAI,sEAAe,MAAM,IAAI;AAAA,QAC1F;AAEA,cAAM,QAAQ,cAAc,MAAM,KAAK;AACvC,cAAM,QAAQ,eAAe,MAAM,SAAS,CAAC,EAAE,UAAU;AAAA,MAC3D;AACA,iBAAW,QAAQ,eAAe;AAChC,cAAM,UAAU,KAAK,aAAa,6BAA6B,KAAK,OAAO;AAC3E,YAAI,CAAC,SAAS;AACZ;AAAA,QACF;AACA,cAAM,QAAQ;AAAA,UACZ,qBAAM,MAAM,SAAS,IAAI,qEAAc,MAAM,IAAI;AAAA,QACnD;AAEA,cAAM,QAAQ,cAAc,MAAM,KAAK;AACvC,cAAM,QAAQ,eAAe,MAAM,SAAS,CAAC,EAAE,UAAU;AAAA,MAC3D;AAAA,IACF;AAAA;AAUF;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/events/ws/handler.ts"],"sourcesContent":["export interface WSHandler {\n wsUrl: string\n onOpen?: () => void\n onClose?: () => void\n onEvent?: (event: any) => void\n}\n\n//EventHandlerCtx\n"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -14,15 +14,13 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
14
14
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
15
  var ws_exports = {};
16
16
  module.exports = __toCommonJS(ws_exports);
17
- __reExport(ws_exports, require("./beatleader"), module.exports);
18
- __reExport(ws_exports, require("./scoresaber"), module.exports);
19
- __reExport(ws_exports, require("./beatsaver"), module.exports);
20
- __reExport(ws_exports, require("./handler"), module.exports);
17
+ __reExport(ws_exports, require("./beatleader.js"), module.exports);
18
+ __reExport(ws_exports, require("./beatsaver.js"), module.exports);
19
+ __reExport(ws_exports, require("./handler.js"), module.exports);
21
20
  // Annotate the CommonJS export names for ESM import in node:
22
21
  0 && (module.exports = {
23
- ...require("./beatleader"),
24
- ...require("./scoresaber"),
25
- ...require("./beatsaver"),
26
- ...require("./handler")
22
+ ...require("./beatleader.js"),
23
+ ...require("./beatsaver.js"),
24
+ ...require("./handler.js")
27
25
  });
28
26
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/events/ws/index.ts"],"sourcesContent":["export * from './beatleader'\nexport * from './beatsaver'\nexport * from './handler'\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;AAAA,uBAAc,yBAAd;AACA,uBAAc,wBADd;AAEA,uBAAc,sBAFd;","names":[]}
package/dist/cjs/index.js CHANGED
@@ -18,33 +18,42 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var index_exports = {};
20
20
  __export(index_exports, {
21
+ SessionAgent: () => import_domain.SessionAgent,
21
22
  getBot: () => getBot
22
23
  });
23
24
  module.exports = __toCommonJS(index_exports);
24
- var import_cmd = require("./cmd");
25
- var import_schedules = require("./schedules");
26
- __reExport(index_exports, require("./interface"), module.exports);
27
- __reExport(index_exports, require("./schedules"), module.exports);
28
- __reExport(index_exports, require("./config"), module.exports);
29
- __reExport(index_exports, require("./cmd"), module.exports);
30
- __reExport(index_exports, require("./ws"), module.exports);
31
- __reExport(index_exports, require("./utils"), module.exports);
32
- __reExport(index_exports, require("./service"), module.exports);
33
- __reExport(index_exports, require("./infra"), module.exports);
25
+ var import_cmd = require("./cmd/index.js");
26
+ var import_schedules = require("./events/schedules/index.js");
27
+ __reExport(index_exports, require("./interface/index.js"), module.exports);
28
+ __reExport(index_exports, require("./events/schedules/index.js"), module.exports);
29
+ __reExport(index_exports, require("./config.js"), module.exports);
30
+ __reExport(index_exports, require("./cmd/index.js"), module.exports);
31
+ __reExport(index_exports, require("./events/ws/index.js"), module.exports);
32
+ __reExport(index_exports, require("./utils/index.js"), module.exports);
33
+ __reExport(index_exports, require("./services/index.js"), module.exports);
34
+ __reExport(index_exports, require("./common/s3/index.js"), module.exports);
35
+ __reExport(index_exports, require("./common/render/index.js"), module.exports);
36
+ __reExport(index_exports, require("./core/session.js"), module.exports);
37
+ __reExport(index_exports, require("./core/logger.js"), module.exports);
38
+ var import_domain = require("./core/domain.js");
34
39
  const getBot = (config) => ({
35
40
  commands: (0, import_cmd.botCommands)(),
36
41
  schedule: (0, import_schedules.getScheduleTasks)(config)
37
42
  });
38
43
  // Annotate the CommonJS export names for ESM import in node:
39
44
  0 && (module.exports = {
45
+ SessionAgent,
40
46
  getBot,
41
- ...require("./interface"),
42
- ...require("./schedules"),
43
- ...require("./config"),
44
- ...require("./cmd"),
45
- ...require("./ws"),
46
- ...require("./utils"),
47
- ...require("./service"),
48
- ...require("./infra")
47
+ ...require("./interface/index.js"),
48
+ ...require("./events/schedules/index.js"),
49
+ ...require("./config.js"),
50
+ ...require("./cmd/index.js"),
51
+ ...require("./events/ws/index.js"),
52
+ ...require("./utils/index.js"),
53
+ ...require("./services/index.js"),
54
+ ...require("./common/s3/index.js"),
55
+ ...require("./common/render/index.js"),
56
+ ...require("./core/session.js"),
57
+ ...require("./core/logger.js")
49
58
  });
50
59
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import {botCommands} from \"@/cmd\";\nimport {getScheduleTasks} from \"@/schedules\";\nimport {Config} from \"@/config\";\n\nexport * from './interface'\nexport * from './schedules'\nexport * from './config'\nexport * from './cmd'\nexport * from './ws'\nexport * from './utils'\nexport * from './service'\nexport * from './infra'\n\nexport const getBot = <T>(config: Config) => ({\n commands: botCommands<T>(),\n schedule: getScheduleTasks(config),\n})\n\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA0B;AAC1B,uBAA+B;AAG/B,0BAAc,wBAJd;AAKA,0BAAc,wBALd;AAMA,0BAAc,qBANd;AAOA,0BAAc,kBAPd;AAQA,0BAAc,iBARd;AASA,0BAAc,oBATd;AAUA,0BAAc,sBAVd;AAWA,0BAAc,oBAXd;AAaO,MAAM,SAAS,CAAI,YAAoB;AAAA,EAC5C,cAAU,wBAAe;AAAA,EACzB,cAAU,mCAAiB,MAAM;AACnC;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import {botCommands} from \"./cmd\";\nimport type {Config} from \"./config\";\nimport {getScheduleTasks} from \"./events/schedules\";\nexport * from './interface'\nexport * from './events/schedules'\nexport * from './config'\nexport * from './cmd'\nexport * from './events/ws'\nexport * from './utils'\nexport * from './services'\nexport * from '@/common/s3'\nexport * from '@/common/render'\nexport * from '@/core/session'\nexport * from '@/core/logger'\nexport { SessionAgent } from '@/core/domain'\n\nexport const getBot = (config: Config) => ({\n commands: botCommands(),\n schedule: getScheduleTasks(config),\n})\n\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA0B;AAE1B,uBAA+B;AAC/B,0BAAc,wBAHd;AAIA,0BAAc,+BAJd;AAKA,0BAAc,qBALd;AAMA,0BAAc,kBANd;AAOA,0BAAc,wBAPd;AAQA,0BAAc,oBARd;AASA,0BAAc,uBATd;AAUA,0BAAc,wBAVd;AAWA,0BAAc,4BAXd;AAYA,0BAAc,2BAZd;AAaA,0BAAc,0BAbd;AAcA,oBAA6B;AAEtB,MAAM,SAAS,CAAC,YAAoB;AAAA,EACzC,cAAU,wBAAY;AAAA,EACtB,cAAU,mCAAiB,MAAM;AACnC;","names":[]}
@@ -10,13 +10,7 @@ var __copyProps = (to, from, except, desc) => {
10
10
  }
11
11
  return to;
12
12
  };
13
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
13
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
14
  var db_exports = {};
16
15
  module.exports = __toCommonJS(db_exports);
17
- __reExport(db_exports, require("./models"), module.exports);
18
- // Annotate the CommonJS export names for ESM import in node:
19
- 0 && (module.exports = {
20
- ...require("./models")
21
- });
22
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/interface/db/index.ts"],"sourcesContent":["import {\n RelateAccount,\n RelateChannelInfo,\n Subscribe,\n SubscribeMember,\n} from './models'\n\nexport * from './models'\n\nexport interface SubInfoRes {\n subscribe: Subscribe\n memberCount: number\n me: any\n}\n\nexport interface SubInfoRes {\n subscribe: Subscribe\n memberCount: number\n me: any\n}\n\nexport interface SubDetailWithGroupRes<T> {\n account: RelateAccount\n accountChannel: RelateChannelInfo<T>\n subscribeMember: SubscribeMember\n subscribe: Subscribe\n groupChannel: RelateChannelInfo<T>\n}\n\nexport interface SubWithGroupRes<T> {\n subscribe: Subscribe\n groupChannel: RelateChannelInfo<T>\n}\n\nexport interface DB<T> {\n storeUserPreference<V = any>(\n uid: number,\n // channelId: string | undefined,\n value: V\n ): Promise<boolean>\n getUserPreference<V = any>(\n uid: number\n // channelId: string | undefined,\n // value: V\n ): Promise<V>\n getUserAccountsByUid(id: number): Promise<Record<string, RelateAccount>>\n\n batchGetOrCreateUBySessionInfo(s: T[]): Promise<RelateChannelInfo<T>[]>\n getUAndGBySessionInfo(\n s: T\n ): Promise<[RelateChannelInfo<T>, RelateChannelInfo<T>]>\n\n // binding\n addUserBindingInfo(account: Partial<RelateAccount>): Promise<void>\n\n // subscription\n upsertSubscription(data: Partial<Subscribe>): Promise<void>\n\n getSubscriptionInfoByUGID(gid: number, uid: number): Promise<SubInfoRes[]>\n getSubscriptionsByGID(gid: number): Promise<Record<string, Subscribe>>\n // group subscription\n getIDSubscriptionByGID(gid: number): Promise<Subscribe[]>\n getIDSubscriptionByType(type: string): Promise<SubWithGroupRes<T>[]>\n removeIDSubscriptionByID(id: number): Promise<void>\n getIDSubscriptionByGIDAndType(gid: number, type: string): Promise<Subscribe[]>\n getAllSubscriptionByUIDAndPlatform(\n id: string | number,\n type: string\n ): Promise<SubDetailWithGroupRes<T>[]>\n\n getSubscriptionsByType(type: string): Promise<SubDetailWithGroupRes<T>[]>\n addSubscribeMember(data: Partial<SubscribeMember>): Promise<void>\n removeFromSubGroupBySubAndUid(subId: number, id: number): Promise<void>\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;AAOA,uBAAc,qBAPd;","names":[]}
1
+ {"version":3,"sources":["../../../../src/interface/db/index.ts"],"sourcesContent":["import type {\n Account,\n Subscription,\n SubscriptionMember,\n} from './models'\nimport {Channel, User} from \"@/core\";\n\nexport type {\n User,\n Channel,\n Account,\n Subscription,\n SubscriptionMember,\n Preference\n} from './models'\n\nexport interface SubInfoRes {\n subscription: Subscription\n memberCount: number\n me: any\n}\n\nexport interface SubInfoRes {\n subscription: Subscription\n memberCount: number\n me: any\n}\n\nexport interface SubDetailWithGroupRes {\n account: Account\n user: User\n channel: Channel\n subscriptionMember: SubscriptionMember\n subscription: Subscription\n}\n\nexport interface SubWithGroupRes {\n subscription: Subscription\n channel: Channel\n}\n\nexport interface DB {\n // preference\n storeUserPreference<V = any>(uid: string, value: V): Promise<boolean>\n getUserPreference<V = any>(uid: string): Promise<V>\n // user account\n getUserAccountsByUid(id: string): Promise<Record<string, Account>>\n addUserBindingInfo(account: Partial<Account>): Promise<void>\n // subscription\n upsertSubscription(data: Partial<Subscription>): Promise<void>\n getSubscriptionInfoByUGID(gid: string, uid: string): Promise<SubInfoRes[]>\n getSubscriptionsByGID(gid: string): Promise<Record<string, Subscription>>\n getIDSubscriptionByGID(gid: string): Promise<Subscription[]>\n getIDSubscriptionByType(type: string): Promise<SubWithGroupRes[]>\n removeIDSubscriptionByID(id: string): Promise<void>\n getIDSubscriptionByChannelIDAndType(gid: string, type: string): Promise<Subscription[]>\n getAllSubscriptionByUIDAndPlatform(id: string, type: string): Promise<SubDetailWithGroupRes[]>\n getSubscriptionsByType(type: string): Promise<SubWithGroupRes[]>\n addSubscribeMember(data: Partial<SubscriptionMember>): Promise<void>\n removeFromSubGroupBySubAndUid(subId: string, id: string): Promise<void>\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/interface/db/models.ts"],"sourcesContent":["export interface RelateAccount {\n id: number\n uid: number\n type: string // oauth | id-public\n platform: string\n platformUname: string\n platformUid: string\n platformScope: string // oauth-scope\n accessToken: string\n refreshToken: string\n otherPlatformInfo: any\n lastModifiedAt: Date\n lastRefreshAt: Date\n status: string\n}\n\nexport interface SubscribeMember {\n subscribeId: number\n memberUid: number\n subscribeData: any\n joinedAt: Date\n}\n\nexport interface Subscribe {\n id: number\n gid: number\n type: string\n time: Date\n enable: boolean\n data: any\n}\n\nexport type RelateChannelInfo<CHANNEL> = {\n id: number\n name: string\n type: 'user' | 'group' | string\n // enable: boolean\n} & CHANNEL\n\nexport type UserPreference<T = any> = {\n uid: number\n gid: number\n data: T\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../../../src/interface/db/models.ts"],"sourcesContent":["export interface User {\n id: string\n name: string\n createdAt: Date\n updatedAt: Date\n}\n\nexport interface Channel {\n id: string\n // provider channel id\n channelId: string;\n providerId: string;\n createdAt?: Date\n updatedAt?: Date\n}\n\n// agent 是易失的,应该存储在内存中?不,应该放在存储中,然后用状态字段进行区分。\n// agent 与 Channel 的关系也是易变的。\n// agent, agent2channel\nexport interface Agent {\n id: string;\n providerId: string;\n accountId: string;\n status: string;\n enabled: boolean;\n}\nexport interface Agent2Channel {\n agentId: string;\n channelId: string;\n}\n\nexport interface Account<T = any> {\n id: string\n userId: string\n providerId: string\n // provider account id\n accountId: string\n // oauth | id\n type: string\n providerUsername?: string\n scope?: string\n accessToken?: string\n accessTokenExpiresAt?: Date\n refreshToken?: string\n refreshTokenExpiresAt?: Date\n idToken?: string\n metadata?: T\n lastModifiedAt: Date\n lastRefreshAt: Date\n createdAt: Date\n}\n\nexport interface Subscription {\n id: string\n channelId: string\n type: string\n enabled: boolean\n data: any\n createdAt: Date\n updatedAt: Date\n}\n\nexport interface SubscriptionMember {\n subscribeId: string\n memberId: string\n subscribeData: any\n createdAt: Date\n updatedAt: Date\n}\n\n\n\nexport type Preference<T = any> = {\n userId: string\n channelId: string\n data: T\n createdAt: Date\n updatedAt: Date\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -18,30 +18,21 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var interface_exports = {};
20
20
  __export(interface_exports, {
21
- Platform: () => Platform,
22
- parsePlatform: () => parsePlatform
21
+ CommandBuilder: () => CommandBuilder
23
22
  });
24
23
  module.exports = __toCommonJS(interface_exports);
25
- __reExport(interface_exports, require("./db"), module.exports);
26
- __reExport(interface_exports, require("./logger"), module.exports);
27
- __reExport(interface_exports, require("./bot"), module.exports);
28
- __reExport(interface_exports, require("./cmd/type"), module.exports);
29
- var Platform = /* @__PURE__ */ ((Platform2) => {
30
- Platform2["SS"] = "scoresaber";
31
- Platform2["BS"] = "beatsaver";
32
- Platform2["BL"] = "beatleader";
33
- return Platform2;
34
- })(Platform || {});
35
- const parsePlatform = (p) => {
36
- return p == "ss" ? "scoresaber" /* SS */ : "beatleader" /* BL */;
37
- };
24
+ var import_core = require("../core/index.js");
25
+ __reExport(interface_exports, require("./db/index.js"), module.exports);
26
+ __reExport(interface_exports, require("../core/session.js"), module.exports);
27
+ class CommandBuilder extends import_core.CommandBuilder {
28
+ // static create(name: string) {
29
+ // return _CommandBuilder.create<Services<any>, Config, {}>(name)
30
+ // }
31
+ }
38
32
  // Annotate the CommonJS export names for ESM import in node:
39
33
  0 && (module.exports = {
40
- Platform,
41
- parsePlatform,
42
- ...require("./db"),
43
- ...require("./logger"),
44
- ...require("./bot"),
45
- ...require("./cmd/type")
34
+ CommandBuilder,
35
+ ...require("./db/index.js"),
36
+ ...require("../core/session.js")
46
37
  });
47
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/interface/index.ts"],"sourcesContent":["export * from './db'\nexport * from './logger'\nexport * from './bot'\nexport enum Platform {\n SS = 'scoresaber',\n BS = 'beatsaver',\n BL = 'beatleader',\n}\n\nexport const parsePlatform = (p: string) => {\n return p == 'ss' ? Platform.SS : Platform.BL\n}\n\nexport * from './cmd/type'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAc,iBAAd;AACA,8BAAc,qBADd;AAEA,8BAAc,kBAFd;AAaA,8BAAc,uBAbd;AAGO,IAAK,WAAL,kBAAKA,cAAL;AACL,EAAAA,UAAA,QAAK;AACL,EAAAA,UAAA,QAAK;AACL,EAAAA,UAAA,QAAK;AAHK,SAAAA;AAAA,GAAA;AAML,MAAM,gBAAgB,CAAC,MAAc;AAC1C,SAAO,KAAK,OAAO,wBAAc;AACnC;","names":["Platform"]}
1
+ {"version":3,"sources":["../../../src/interface/index.ts"],"sourcesContent":["import {DB} from \"@/interface/db\";\nimport {APIService, I18nService, RenderService} from \"@/services\";\nimport {CommandBuilder as _CommandBuilder, CmdContext as _CmdContext, Command as _Command} from \"@/core\";\nimport {Config} from \"@/config\";\nimport {S3Service} from \"@/common/s3\";\nexport * from './db'\n\nexport type Services = {\n db: DB,\n api: APIService,\n render: RenderService,\n i18n: I18nService,\n s3: S3Service\n}\n\nexport class CommandBuilder<T, OPT = unknown> extends _CommandBuilder<Services, Config, OPT> {\n // static create(name: string) {\n // return _CommandBuilder.create<Services<any>, Config, {}>(name)\n // }\n}\n\nexport type CmdContext<O = unknown> = _CmdContext<Services, Config, O>\n\nexport type Command<O = unknown> = _Command<Services, Config, O>\nexport * from '@/core/session'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,kBAAgG;AAGhG,8BAAc,iBALd;AAwBA,8BAAc,2BAxBd;AAeO,MAAM,uBAAyC,YAAAA,eAAuC;AAAA;AAAA;AAAA;AAI7F;","names":["_CommandBuilder"]}
@@ -42,7 +42,7 @@ __export(aioclient_exports, {
42
42
  AIOSaberClient: () => AIOSaberClient
43
43
  });
44
44
  module.exports = __toCommonJS(aioclient_exports);
45
- var import_fetch = require("../../../infra/support/fetch");
45
+ var import_fetch = require("../../../common/fetch/index.js");
46
46
  class AIOSaberClient {
47
47
  constructor(logger) {
48
48
  __publicField(this, "f");
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/services/api/base/aioclient.ts"],"sourcesContent":["import { createFetch, Fetch } from '@/common/fetch'\nimport { Logger } from '@/core'\nimport { AioOauthTokenResponse } from '../interfaces/aiosaber'\n\nexport class AIOSaberClient {\n f: Fetch\n constructor(logger: Logger) {\n this.f = createFetch(logger).baseUrl('https://abs.ktlab.io')\n }\n async getBSOAuthToken(key: string) {\n return this.f.get<AioOauthTokenResponse>(\n `/api/oauth/beatsaver/token/${key}`\n )\n }\n async getBLOAuthToken(key: string) {\n return this.f.get<AioOauthTokenResponse>(\n `/api/oauth/beatleader/token/${key}`\n )\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAmC;AAI5B,MAAM,eAAe;AAAA,EAE1B,YAAY,QAAgB;AAD5B;AAEE,SAAK,QAAI,0BAAY,MAAM,EAAE,QAAQ,sBAAsB;AAAA,EAC7D;AAAA,EACM,gBAAgB,KAAa;AAAA;AACjC,aAAO,KAAK,EAAE;AAAA,QACZ,8BAA8B,GAAG;AAAA,MACnC;AAAA,IACF;AAAA;AAAA,EACM,gBAAgB,KAAa;AAAA;AACjC,aAAO,KAAK,EAAE;AAAA,QACZ,+BAA+B,GAAG;AAAA,MACpC;AAAA,IACF;AAAA;AACF;","names":[]}
@@ -42,7 +42,7 @@ __export(blclient_exports, {
42
42
  BeatLeaderClient: () => BeatLeaderClient
43
43
  });
44
44
  module.exports = __toCommonJS(blclient_exports);
45
- var import_fetch = require("../../../infra/support/fetch");
45
+ var import_fetch = require("../../../common/fetch/index.js");
46
46
  class BeatLeaderClient {
47
47
  constructor(opt) {
48
48
  __publicField(this, "f");
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/services/api/base/blclient.ts"],"sourcesContent":["import { OAuthTokenInfoResponse, OAuthTokenResponse } from '../interfaces'\nimport { createFetch, Fetch } from '@/common/fetch'\nimport { Logger } from '@/core'\nimport {\n BeadLeaderScoresResponse,\n BeatLeaderPlayerScoreRequest,\n BeatLeaderUser,\n Leaderboard,\n Score,\n} from '../interfaces/beatleader'\n\ntype ClientOptions = {\n client_id?: string\n client_secret?: string\n logger?: Logger\n}\n\nexport class BeatLeaderClient {\n f: Fetch\n opt?: ClientOptions\n constructor(opt?: ClientOptions) {\n this.f = createFetch(opt?.logger).baseUrl('https://api.beatleader.xyz').extend({\n ignoreResponseError: false,\n })\n }\n async getPlayerScore(req: BeatLeaderPlayerScoreRequest) {\n const res = await this.f.get<Leaderboard>(\n `/score/${req.leaderboardContext}/${req.playerID}/${req.hash}/${req.diff}/${req.mode}`\n )\n return res\n }\n\n async getTokenInfo(accessToken: string) {\n return this.f.get<OAuthTokenInfoResponse>(`/oauth2/identity`, {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n })\n }\n\n async refreshOAuthToken(refreshToken: string) {\n return this.f.post<OAuthTokenResponse>(\n 'https://beatsaver.com/api/oauth2/token',\n {\n form: {\n client_id: this.opt.client_id,\n client_secret: this.opt.client_secret,\n grant_type: 'refresh_token',\n refresh_token: refreshToken,\n },\n }\n )\n }\n\n async getPlayerInfo(accountId: string) {\n return this.f.get<BeatLeaderUser>(`/player/${accountId}`)\n }\n\n async getPlayerScores(accountId: string) {\n return this.f.get<BeadLeaderScoresResponse>(\n `/player/${accountId}/scores?count=24&sortBy=pp`\n )\n }\n async getPlayerPinnedScores(accountId: string) {\n return this.f.get<Score[]>(`/player/${accountId}/pinnedScores`)\n }\n\n async getBeatScore(scoreId: string) {\n return this.f.get<Score>(`/score/${scoreId}`)\n }\n\n async getLeaderboard(leaderboardId: string, params?: Record<string, any>) {\n return this.f.get(`/leaderboard/${leaderboardId}`, { query: params })\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAmC;AAgB5B,MAAM,iBAAiB;AAAA,EAG5B,YAAY,KAAqB;AAFjC;AACA;AAEE,SAAK,QAAI,0BAAY,2BAAK,MAAM,EAAE,QAAQ,4BAA4B,EAAE,OAAO;AAAA,MAC7E,qBAAqB;AAAA,IACvB,CAAC;AAAA,EACH;AAAA,EACM,eAAe,KAAmC;AAAA;AACtD,YAAM,MAAM,MAAM,KAAK,EAAE;AAAA,QACvB,UAAU,IAAI,kBAAkB,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,MACtF;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EAEM,aAAa,aAAqB;AAAA;AACtC,aAAO,KAAK,EAAE,IAA4B,oBAAoB;AAAA,QAC5D,SAAS;AAAA,UACP,eAAe,UAAU,WAAW;AAAA,QACtC;AAAA,MACF,CAAC;AAAA,IACH;AAAA;AAAA,EAEM,kBAAkB,cAAsB;AAAA;AAC5C,aAAO,KAAK,EAAE;AAAA,QACZ;AAAA,QACA;AAAA,UACE,MAAM;AAAA,YACJ,WAAW,KAAK,IAAI;AAAA,YACpB,eAAe,KAAK,IAAI;AAAA,YACxB,YAAY;AAAA,YACZ,eAAe;AAAA,UACjB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA;AAAA,EAEM,cAAc,WAAmB;AAAA;AACrC,aAAO,KAAK,EAAE,IAAoB,WAAW,SAAS,EAAE;AAAA,IAC1D;AAAA;AAAA,EAEM,gBAAgB,WAAmB;AAAA;AACvC,aAAO,KAAK,EAAE;AAAA,QACZ,WAAW,SAAS;AAAA,MACtB;AAAA,IACF;AAAA;AAAA,EACM,sBAAsB,WAAmB;AAAA;AAC7C,aAAO,KAAK,EAAE,IAAa,WAAW,SAAS,eAAe;AAAA,IAChE;AAAA;AAAA,EAEM,aAAa,SAAiB;AAAA;AAClC,aAAO,KAAK,EAAE,IAAW,UAAU,OAAO,EAAE;AAAA,IAC9C;AAAA;AAAA,EAEM,eAAe,eAAuB,QAA8B;AAAA;AACxE,aAAO,KAAK,EAAE,IAAI,gBAAgB,aAAa,IAAI,EAAE,OAAO,OAAO,CAAC;AAAA,IACtE;AAAA;AACF;","names":[]}
@@ -55,8 +55,8 @@ __export(bsclient_exports, {
55
55
  BeatSaverClient: () => BeatSaverClient
56
56
  });
57
57
  module.exports = __toCommonJS(bsclient_exports);
58
- var import_fetch = require("../../../infra/support/fetch");
59
- var import_error = require("../../../infra/support/fetch/error");
58
+ var import_fetch = require("../../../common/fetch/index.js");
59
+ var import_error = require("../../../common/fetch/error.js");
60
60
  class BeatSaverClient {
61
61
  constructor(opt) {
62
62
  __publicField(this, "f");
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/services/api/base/bsclient.ts"],"sourcesContent":["import { OAuthTokenInfoResponse, OAuthTokenResponse } from '../interfaces'\nimport { createFetch, Fetch } from '@/common/fetch'\nimport { Logger } from '@/core'\n\nimport {\n BSMap,\n BSMapLatestResponse,\n BSUserResponse,\n HashReqResponse,\n} from '../interfaces/beatsaver'\nimport {NotFoundError} from \"@/common/fetch/error\";\n\ntype ClientOptions = {\n logger?: Logger,\n host?: string,\n client_id?: string,\n client_secret?: string\n f?: Fetch\n}\n\nexport class BeatSaverClient {\n f: Fetch\n opt?: ClientOptions\n constructor(opt?: ClientOptions) {\n this.opt = opt\n this.f = opt.f || createFetch(opt.logger)\n .baseUrl(opt.host ?? 'https://api.beatsaver.com')\n .extend({\n ignoreResponseError: false,\n onResponseError: (context) => {\n if (\n context.response.status === 404 ||\n context.response.status === 400\n ) {\n throw new NotFoundError()\n }\n },\n })\n }\n async getBSMapperById(userId: string) {\n return this.f.get<BSUserResponse>(`/users/id/${userId}`)\n }\n\n async getLatestMaps(pageSize: number = 5) {\n return this.f\n .get<BSMapLatestResponse>(`/maps/latest`, {\n query: {\n sort: 'FIRST_PUBLISHED',\n pageSize,\n },\n })\n .then((res) => res.docs)\n }\n\n async searchMapByKeyword(\n key: string,\n params?: Record<string, boolean | number | string>\n ) {\n return this.f\n .get<BSMapLatestResponse>(`/search/text/0`, {\n query: {\n q: key,\n ...params,\n },\n })\n .then((res) => res.docs)\n }\n\n async searchMapById(id: string) {\n return this.f.get<BSMap>(`/maps/id/${id}`)\n }\n async getTokenInfo(ak: string) {\n return this.f.get<OAuthTokenInfoResponse>(`/oauth2/identity`, {\n headers: {\n Authorization: `Bearer ${ak}`,\n },\n })\n }\n\n async getMapsByHashes(hashes: string[]) {\n return this.f.get<HashReqResponse>(`/maps/hash/${hashes.join(',')}`)\n }\n\n async refreshOAuthToken(rk: string) {\n return this.f.post<OAuthTokenResponse>(\n 'https://beatsaver.com/api/oauth2/token',\n {\n form: {\n client_id: this.opt.client_id,\n client_secret: this.opt.client_secret,\n grant_type: 'refresh_token',\n refresh_token: rk,\n },\n }\n )\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAmC;AASnC,mBAA4B;AAUrB,MAAM,gBAAgB;AAAA,EAG3B,YAAY,KAAqB;AAFjC;AACA;AAtBF;AAwBI,SAAK,MAAM;AACX,SAAK,IAAI,IAAI,SAAK,0BAAY,IAAI,MAAM,EACrC,SAAQ,SAAI,SAAJ,YAAY,2BAA2B,EAC/C,OAAO;AAAA,MACN,qBAAqB;AAAA,MACrB,iBAAiB,CAAC,YAAY;AAC5B,YACE,QAAQ,SAAS,WAAW,OAC5B,QAAQ,SAAS,WAAW,KAC5B;AACA,gBAAM,IAAI,2BAAc;AAAA,QAC1B;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACL;AAAA,EACM,gBAAgB,QAAgB;AAAA;AACpC,aAAO,KAAK,EAAE,IAAoB,aAAa,MAAM,EAAE;AAAA,IACzD;AAAA;AAAA,EAEM,cAAc,WAAmB,GAAG;AAAA;AACxC,aAAO,KAAK,EACT,IAAyB,gBAAgB;AAAA,QACxC,OAAO;AAAA,UACL,MAAM;AAAA,UACN;AAAA,QACF;AAAA,MACF,CAAC,EACA,KAAK,CAAC,QAAQ,IAAI,IAAI;AAAA,IAC3B;AAAA;AAAA,EAEM,mBACJ,KACA,QACA;AAAA;AACA,aAAO,KAAK,EACT,IAAyB,kBAAkB;AAAA,QAC1C,OAAO;AAAA,UACL,GAAG;AAAA,WACA;AAAA,MAEP,CAAC,EACA,KAAK,CAAC,QAAQ,IAAI,IAAI;AAAA,IAC3B;AAAA;AAAA,EAEM,cAAc,IAAY;AAAA;AAC9B,aAAO,KAAK,EAAE,IAAW,YAAY,EAAE,EAAE;AAAA,IAC3C;AAAA;AAAA,EACM,aAAa,IAAY;AAAA;AAC7B,aAAO,KAAK,EAAE,IAA4B,oBAAoB;AAAA,QAC5D,SAAS;AAAA,UACP,eAAe,UAAU,EAAE;AAAA,QAC7B;AAAA,MACF,CAAC;AAAA,IACH;AAAA;AAAA,EAEM,gBAAgB,QAAkB;AAAA;AACtC,aAAO,KAAK,EAAE,IAAqB,cAAc,OAAO,KAAK,GAAG,CAAC,EAAE;AAAA,IACrE;AAAA;AAAA,EAEM,kBAAkB,IAAY;AAAA;AAClC,aAAO,KAAK,EAAE;AAAA,QACZ;AAAA,QACA;AAAA,UACE,MAAM;AAAA,YACJ,WAAW,KAAK,IAAI;AAAA,YACpB,eAAe,KAAK,IAAI;AAAA,YACxB,YAAY;AAAA,YACZ,eAAe;AAAA,UACjB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA;AACF;","names":[]}
@@ -14,15 +14,15 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
14
14
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
15
  var base_exports = {};
16
16
  module.exports = __toCommonJS(base_exports);
17
- __reExport(base_exports, require("./ssclient"), module.exports);
18
- __reExport(base_exports, require("./blclient"), module.exports);
19
- __reExport(base_exports, require("./aioclient"), module.exports);
20
- __reExport(base_exports, require("./bsclient"), module.exports);
17
+ __reExport(base_exports, require("./ssclient.js"), module.exports);
18
+ __reExport(base_exports, require("./blclient.js"), module.exports);
19
+ __reExport(base_exports, require("./aioclient.js"), module.exports);
20
+ __reExport(base_exports, require("./bsclient.js"), module.exports);
21
21
  // Annotate the CommonJS export names for ESM import in node:
22
22
  0 && (module.exports = {
23
- ...require("./ssclient"),
24
- ...require("./blclient"),
25
- ...require("./aioclient"),
26
- ...require("./bsclient")
23
+ ...require("./ssclient.js"),
24
+ ...require("./blclient.js"),
25
+ ...require("./aioclient.js"),
26
+ ...require("./bsclient.js")
27
27
  });
28
28
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/services/api/base/index.ts"],"sourcesContent":["export * from './ssclient'\nexport * from './blclient'\nexport * from './aioclient'\nexport * from './bsclient'\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;AAAA,yBAAc,uBAAd;AACA,yBAAc,uBADd;AAEA,yBAAc,wBAFd;AAGA,yBAAc,uBAHd;","names":[]}
@@ -42,8 +42,8 @@ __export(ssclient_exports, {
42
42
  ScoreSaberClient: () => ScoreSaberClient
43
43
  });
44
44
  module.exports = __toCommonJS(ssclient_exports);
45
- var import_fetch = require("../../../infra/support/fetch");
46
- var import_error = require("../../../infra/support/fetch/error");
45
+ var import_fetch = require("../../../common/fetch/index.js");
46
+ var import_error = require("../../../common/fetch/error.js");
47
47
  class ScoreSaberClient {
48
48
  constructor(logger) {
49
49
  __publicField(this, "f");
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/services/api/base/ssclient.ts"],"sourcesContent":["import {\n ScoreSaberUser,\n ScoreSaberUserResponse,\n} from '../interfaces/scoresaber'\nimport { ScoresaberLeaderboardResp } from '../interfaces/scoresaber/leaderboard'\nimport { createFetch, Fetch } from '@/common/fetch'\nimport { Logger } from '@/core'\nimport {NotFoundError} from \"@/common/fetch/error\";\nexport class ScoreSaberClient {\n f: Fetch\n constructor(logger: Logger) {\n this.f = createFetch(logger).extend({\n baseURL: 'https://scoresaber.com',\n ignoreResponseError: false,\n onResponseError: (context) => {\n if (\n context.response.status === 500 ||\n context.response.status === 404\n ) {\n throw new NotFoundError()\n }\n },\n })\n }\n async getScoreUserById(userId: string) {\n return this.f.get<ScoreSaberUser>(`/api/player/${userId}/full`)\n }\n\n async getScoreItemsById(userId: string, page: number, pageSize: number = 8) {\n return this.f.get<ScoreSaberUserResponse>(`/api/player/${userId}/scores`, {\n query: {\n sort: 'top',\n page: page,\n limit: pageSize,\n },\n })\n }\n async getScoreItemsByMapId(\n mapId: string,\n diff: string,\n mode: string,\n page: number,\n pageSize: number = 8\n ): Promise<ScoresaberLeaderboardResp> {\n const id = convertToLeaderboardId(mapId, diff, mode)\n return this.f.get(`/api/leaderboard/by-id/${id}/scores`, {\n query: {\n page: page,\n limit: pageSize,\n },\n })\n }\n}\n\nconst convertToLeaderboardId = (mapid: string, diff: string, mode: string) => {\n return mapid\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,mBAAmC;AAEnC,mBAA4B;AACrB,MAAM,iBAAiB;AAAA,EAE5B,YAAY,QAAgB;AAD5B;AAEE,SAAK,QAAI,0BAAY,MAAM,EAAE,OAAO;AAAA,MAClC,SAAS;AAAA,MACT,qBAAqB;AAAA,MACrB,iBAAiB,CAAC,YAAY;AAC5B,YACE,QAAQ,SAAS,WAAW,OAC5B,QAAQ,SAAS,WAAW,KAC5B;AACA,gBAAM,IAAI,2BAAc;AAAA,QAC1B;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACM,iBAAiB,QAAgB;AAAA;AACrC,aAAO,KAAK,EAAE,IAAoB,eAAe,MAAM,OAAO;AAAA,IAChE;AAAA;AAAA,EAEM,kBAAkB,QAAgB,MAAc,WAAmB,GAAG;AAAA;AAC1E,aAAO,KAAK,EAAE,IAA4B,eAAe,MAAM,WAAW;AAAA,QACxE,OAAO;AAAA,UACL,MAAM;AAAA,UACN;AAAA,UACA,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACH;AAAA;AAAA,EACM,qBACJ,OACA,MACA,MACA,MACA,WAAmB,GACiB;AAAA;AACpC,YAAM,KAAK,uBAAuB,OAAO,MAAM,IAAI;AACnD,aAAO,KAAK,EAAE,IAAI,0BAA0B,EAAE,WAAW;AAAA,QACvD,OAAO;AAAA,UACL;AAAA,UACA,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACH;AAAA;AACF;AAEA,MAAM,yBAAyB,CAAC,OAAe,MAAc,SAAiB;AAC5E,SAAO;AACT;","names":[]}
@@ -55,19 +55,27 @@ __export(api_exports, {
55
55
  APIService: () => APIService
56
56
  });
57
57
  module.exports = __toCommonJS(api_exports);
58
- var import_base = require("./base");
59
- var import_errors = require("../../infra/errors");
60
- var import_error = require("../../infra/support/fetch/error");
61
- var import_sortScore = require("../../service/api/sortScore");
62
- var import_bsorDecoder = require("../../components/utils/bl/bsorDecoder");
58
+ var import_base = require("./base/index.js");
59
+ var import_errors = require("../errors/index.js");
60
+ var import_sortScore = require("./sortScore.js");
61
+ var import_utils = require("../../utils/index.js");
63
62
  class APIService {
64
63
  constructor(cfg, logger) {
65
64
  __publicField(this, "BeatLeader");
66
65
  __publicField(this, "ScoreSaber");
67
66
  __publicField(this, "BeatSaver");
68
67
  __publicField(this, "AIOSaber");
69
- this.BeatSaver = new import_base.BeatSaverClient({ logger });
70
- this.BeatLeader = new import_base.BeatLeaderClient({ logger });
68
+ this.BeatSaver = new import_base.BeatSaverClient({
69
+ logger,
70
+ host: cfg.beatsaver.host,
71
+ client_id: cfg.beatsaver.oauthClientId,
72
+ client_secret: cfg.beatsaver.oauthClientSecret
73
+ });
74
+ this.BeatLeader = new import_base.BeatLeaderClient({
75
+ logger,
76
+ client_id: cfg.beatleader.oauthClientId,
77
+ client_secret: cfg.beatleader.oauthClientSecret
78
+ });
71
79
  this.ScoreSaber = new import_base.ScoreSaberClient(logger);
72
80
  this.AIOSaber = new import_base.AIOSaberClient(logger);
73
81
  }
@@ -120,7 +128,7 @@ class APIService {
120
128
  ));
121
129
  const scores = res.filter((item) => item.status === "fulfilled").map((it) => it.value);
122
130
  if (scores.length < 1) {
123
- throw new import_error.NotFoundError();
131
+ return null;
124
132
  }
125
133
  scores.sort(import_sortScore.sortScore);
126
134
  return scores[0];
@@ -164,7 +172,7 @@ class APIService {
164
172
  const bsorLink = res.replay;
165
173
  const bsorContent = yield fetch(bsorLink);
166
174
  const bsor = yield new Promise((resolve, reject) => {
167
- bsorContent.arrayBuffer().then((res2) => (0, import_bsorDecoder.decode)(res2, resolve));
175
+ bsorContent.arrayBuffer().then((res2) => (0, import_utils.decode)(res2, resolve));
168
176
  setTimeout(() => reject("timeout exceed"), 5e3);
169
177
  });
170
178
  const statistic = yield fetch(
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/api/index.ts"],"sourcesContent":["import {AIOSaberClient, BeatLeaderClient, BeatSaverClient, ScoreSaberClient} from \"./base\";\nimport {Config} from \"@/config\";\nimport { Logger } from \"@/core\";\nimport {BLIDNotFoundError, MapIdNotFoundError, SSIDNotFoundError} from \"../errors\";\nimport {BSMap, HashResponse} from \"./interfaces/beatsaver\";\nimport {ScoreSaberItem} from \"./interfaces/scoresaber\";\nimport {Leaderboard} from \"./interfaces/beatleader\";\nimport {sortScore} from \"./sortScore\";\nimport { decode } from \"@/utils\";\n\ntype MapDiffOption = {\n difficulty?: string\n mode?: string\n}\n\n\nexport class APIService {\n BeatLeader: BeatLeaderClient\n ScoreSaber: ScoreSaberClient\n BeatSaver: BeatSaverClient\n AIOSaber: AIOSaberClient\n constructor(cfg: Config, logger: Logger) {\n this.BeatSaver = new BeatSaverClient({\n logger,\n host: cfg.beatsaver.host,\n client_id: cfg.beatsaver.oauthClientId,\n client_secret: cfg.beatsaver.oauthClientSecret\n })\n this.BeatLeader = new BeatLeaderClient({\n logger,\n client_id: cfg.beatleader.oauthClientId,\n client_secret: cfg.beatleader.oauthClientSecret\n })\n this.ScoreSaber = new ScoreSaberClient(logger)\n this.AIOSaber = new AIOSaberClient(logger)\n }\n async getBLPlayerScoresWithUserInfo(accountId: string) {\n const [userInfo, playerScores, pinnedScores] = await Promise.all([\n this.BeatLeader.getPlayerInfo(accountId),\n this.BeatLeader.getPlayerScores(accountId),\n this.BeatLeader.getPlayerPinnedScores(accountId),\n ])\n if (!(userInfo && playerScores)) {\n throw new BLIDNotFoundError({ accountId })\n }\n const filteredScores = playerScores.data.filter(\n (item) => !pinnedScores.some((pinned) => pinned.id === item.id)\n )\n const scores = pinnedScores.concat(filteredScores).slice(0, 24)\n return {\n scores: scores,\n userInfo: userInfo,\n }\n }\n async getSSPlayerScoresWithUserInfo(accountId: string) {\n\n }\n async getScoreByPlayerIdAndMapId(\n playerId: string,\n mapId: string,\n option?: MapDiffOption\n ): Promise<Leaderboard | null> {\n const map = await this.BeatSaver.searchMapById(mapId)\n if (!map) {\n throw new MapIdNotFoundError()\n }\n const hash = map.versions[0].hash\n let reqs = map.versions[0].diffs.map((it) => ({\n diff: it.difficulty,\n mode: it.characteristic,\n hash: hash,\n playerID: playerId,\n leaderboardContext: 'general',\n }))\n if (option && option.difficulty) {\n reqs = reqs.filter((item) => item.diff == option.difficulty)\n }\n if (option && option.mode) {\n reqs = reqs.filter((item) => item.mode == option.mode)\n }\n const res = await Promise.allSettled(reqs.map(\n (it) => this.BeatLeader.getPlayerScore(it)))\n const scores = res\n .filter((item) => item.status === 'fulfilled')\n .map(<T>(it: PromiseFulfilledResult<T>) => it.value)\n if (scores.length < 1) {\n return null\n }\n scores.sort(sortScore)\n return scores[0]\n }\n\n async getAroundScoreAndRegionScoreByRankAndPage(\n leaderboardId: string,\n rank: number,\n regionCode: string\n ) {\n const page = Math.ceil(rank / 10)\n const rest = rank % 10\n let startIndex = 0\n if (rest > 7) {\n startIndex = 2\n }\n const [regionScore, aroundScore] = await Promise.all([\n this.BeatLeader.getLeaderboard(leaderboardId, {\n leaderboardContext: 'general',\n page: 1,\n sortBy: 'rank',\n order: 'desc',\n countries: regionCode,\n }),\n this.BeatLeader.getLeaderboard(leaderboardId, {\n leaderboardContext: 'general',\n page: page,\n sortBy: 'rank',\n order: 'desc',\n }),\n ])\n const difficulties = regionScore.song.difficulties\n return {\n difficulties: difficulties,\n aroundScores: aroundScore.scores.slice(startIndex, startIndex + 7),\n regionTopScores: regionScore.scores,\n }\n }\n async getScoreAndBSMapByScoreId(scoreId: string) {\n const res = await this.BeatLeader.getBeatScore(scoreId)\n const bsorLink = res.replay\n const bsorContent = await fetch(bsorLink)\n const bsor = await new Promise((resolve, reject) => {\n bsorContent.arrayBuffer().then((res) => decode(res, resolve))\n setTimeout(() => reject('timeout exceed'), 5000)\n })\n const statistic = await fetch(\n `https://cdn.scorestats.beatleader.xyz/${scoreId}.json`\n ).then((res) => res.json())\n const id = res.song.id.split('x')?.[0]\n const bsMap = await this.BeatSaver.searchMapById(id)\n return {\n score: res,\n bsMap: bsMap,\n statistic: statistic,\n bsor: bsor,\n }\n }\n async getSSPlayerRecentScoreWithUserInfo(uid: string) {\n const [userInfo, scores] = await Promise.all([\n this.ScoreSaber.getScoreUserById(uid),\n this.ScoreSaber.getScoreItemsById(uid, 1, 24)\n .then((res) => res?.playerScores),\n ])\n if (!scores || !userInfo) {\n throw new SSIDNotFoundError({ accountId: uid })\n }\n const hashes = scores.map((it) => it.leaderboard.songHash)\n\n let hashInfo = await this.BeatSaver.getMapsByHashes(hashes)\n if (hashInfo.id) {\n const map = hashInfo as BSMap\n hashInfo = {} as HashResponse\n hashInfo[map.versions[0].hash] = map\n }\n const res = scores.map(\n (it) =>\n ({\n mapId: (hashInfo as HashResponse)[\n it.leaderboard.songHash.toLowerCase()\n ]?.id,\n ...it,\n }) as ScoreSaberItem\n )\n return {\n scores: res,\n userInfo: userInfo,\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAkF;AAGlF,oBAAuE;AAIvE,uBAAwB;AACxB,mBAAuB;AAQhB,MAAM,WAAW;AAAA,EAKtB,YAAY,KAAa,QAAgB;AAJzC;AACA;AACA;AACA;AAEE,SAAK,YAAY,IAAI,4BAAgB;AAAA,MACnC;AAAA,MACA,MAAM,IAAI,UAAU;AAAA,MACpB,WAAW,IAAI,UAAU;AAAA,MACzB,eAAe,IAAI,UAAU;AAAA,IAC/B,CAAC;AACD,SAAK,aAAa,IAAI,6BAAiB;AAAA,MACrC;AAAA,MACA,WAAW,IAAI,WAAW;AAAA,MAC1B,eAAe,IAAI,WAAW;AAAA,IAChC,CAAC;AACD,SAAK,aAAa,IAAI,6BAAiB,MAAM;AAC7C,SAAK,WAAW,IAAI,2BAAe,MAAM;AAAA,EAC3C;AAAA,EACM,8BAA8B,WAAmB;AAAA;AACrD,YAAM,CAAC,UAAU,cAAc,YAAY,IAAI,MAAM,QAAQ,IAAI;AAAA,QAC/D,KAAK,WAAW,cAAc,SAAS;AAAA,QACvC,KAAK,WAAW,gBAAgB,SAAS;AAAA,QACzC,KAAK,WAAW,sBAAsB,SAAS;AAAA,MACjD,CAAC;AACD,UAAI,EAAE,YAAY,eAAe;AAC/B,cAAM,IAAI,gCAAkB,EAAE,UAAU,CAAC;AAAA,MAC3C;AACA,YAAM,iBAAiB,aAAa,KAAK;AAAA,QACvC,CAAC,SAAS,CAAC,aAAa,KAAK,CAAC,WAAW,OAAO,OAAO,KAAK,EAAE;AAAA,MAChE;AACA,YAAM,SAAS,aAAa,OAAO,cAAc,EAAE,MAAM,GAAG,EAAE;AAC9D,aAAO;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA;AAAA,EACM,8BAA8B,WAAmB;AAAA;AAAA,IAEvD;AAAA;AAAA,EACM,2BACJ,UACA,OACA,QAC6B;AAAA;AAC7B,YAAM,MAAM,MAAM,KAAK,UAAU,cAAc,KAAK;AACpD,UAAI,CAAC,KAAK;AACR,cAAM,IAAI,iCAAmB;AAAA,MAC/B;AACA,YAAM,OAAO,IAAI,SAAS,CAAC,EAAE;AAC7B,UAAI,OAAO,IAAI,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC,QAAQ;AAAA,QAC5C,MAAM,GAAG;AAAA,QACT,MAAM,GAAG;AAAA,QACT;AAAA,QACA,UAAU;AAAA,QACV,oBAAoB;AAAA,MACtB,EAAE;AACF,UAAI,UAAU,OAAO,YAAY;AAC/B,eAAO,KAAK,OAAO,CAAC,SAAS,KAAK,QAAQ,OAAO,UAAU;AAAA,MAC7D;AACA,UAAI,UAAU,OAAO,MAAM;AACzB,eAAO,KAAK,OAAO,CAAC,SAAS,KAAK,QAAQ,OAAO,IAAI;AAAA,MACvD;AACA,YAAM,MAAM,MAAM,QAAQ,WAAW,KAAK;AAAA,QACxC,CAAC,OAAO,KAAK,WAAW,eAAe,EAAE;AAAA,MAAC,CAAC;AAC7C,YAAM,SAAS,IACZ,OAAO,CAAC,SAAS,KAAK,WAAW,WAAW,EAC5C,IAAI,CAAI,OAAkC,GAAG,KAAK;AACrD,UAAI,OAAO,SAAS,GAAG;AACrB,eAAO;AAAA,MACT;AACA,aAAO,KAAK,0BAAS;AACrB,aAAO,OAAO,CAAC;AAAA,IACjB;AAAA;AAAA,EAEM,0CACJ,eACA,MACA,YACA;AAAA;AACA,YAAM,OAAO,KAAK,KAAK,OAAO,EAAE;AAChC,YAAM,OAAO,OAAO;AACpB,UAAI,aAAa;AACjB,UAAI,OAAO,GAAG;AACZ,qBAAa;AAAA,MACf;AACA,YAAM,CAAC,aAAa,WAAW,IAAI,MAAM,QAAQ,IAAI;AAAA,QACnD,KAAK,WAAW,eAAe,eAAe;AAAA,UAC5C,oBAAoB;AAAA,UACpB,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,WAAW;AAAA,QACb,CAAC;AAAA,QACD,KAAK,WAAW,eAAe,eAAe;AAAA,UAC5C,oBAAoB;AAAA,UACpB;AAAA,UACA,QAAQ;AAAA,UACR,OAAO;AAAA,QACT,CAAC;AAAA,MACH,CAAC;AACD,YAAM,eAAe,YAAY,KAAK;AACtC,aAAO;AAAA,QACL;AAAA,QACA,cAAc,YAAY,OAAO,MAAM,YAAY,aAAa,CAAC;AAAA,QACjE,iBAAiB,YAAY;AAAA,MAC/B;AAAA,IACF;AAAA;AAAA,EACM,0BAA0B,SAAiB;AAAA;AA7HnD;AA8HI,YAAM,MAAM,MAAM,KAAK,WAAW,aAAa,OAAO;AACtD,YAAM,WAAW,IAAI;AACrB,YAAM,cAAc,MAAM,MAAM,QAAQ;AACxC,YAAM,OAAO,MAAM,IAAI,QAAQ,CAAC,SAAS,WAAW;AAClD,oBAAY,YAAY,EAAE,KAAK,CAACA,aAAQ,qBAAOA,MAAK,OAAO,CAAC;AAC5D,mBAAW,MAAM,OAAO,gBAAgB,GAAG,GAAI;AAAA,MACjD,CAAC;AACD,YAAM,YAAY,MAAM;AAAA,QACtB,yCAAyC,OAAO;AAAA,MAClD,EAAE,KAAK,CAACA,SAAQA,KAAI,KAAK,CAAC;AAC1B,YAAM,MAAK,SAAI,KAAK,GAAG,MAAM,GAAG,MAArB,mBAAyB;AACpC,YAAM,QAAQ,MAAM,KAAK,UAAU,cAAc,EAAE;AACnD,aAAO;AAAA,QACL,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA;AAAA,EACM,mCAAmC,KAAa;AAAA;AACpD,YAAM,CAAC,UAAU,MAAM,IAAI,MAAM,QAAQ,IAAI;AAAA,QAC3C,KAAK,WAAW,iBAAiB,GAAG;AAAA,QACpC,KAAK,WAAW,kBAAkB,KAAK,GAAG,EAAE,EACzC,KAAK,CAACA,SAAQA,QAAA,gBAAAA,KAAK,YAAY;AAAA,MACpC,CAAC;AACD,UAAI,CAAC,UAAU,CAAC,UAAU;AACxB,cAAM,IAAI,gCAAkB,EAAE,WAAW,IAAI,CAAC;AAAA,MAChD;AACA,YAAM,SAAS,OAAO,IAAI,CAAC,OAAO,GAAG,YAAY,QAAQ;AAEzD,UAAI,WAAW,MAAM,KAAK,UAAU,gBAAgB,MAAM;AAC1D,UAAI,SAAS,IAAI;AACf,cAAM,MAAM;AACZ,mBAAW,CAAC;AACZ,iBAAS,IAAI,SAAS,CAAC,EAAE,IAAI,IAAI;AAAA,MACnC;AACA,YAAM,MAAM,OAAO;AAAA,QACjB,CAAC,OAAI;AAnKX;AAoKS;AAAA,YACC,QAAQ,cACN,GAAG,YAAY,SAAS,YAAY,CACpC,MAFM,mBAEH;AAAA,aACF;AAAA;AAAA,MAET;AACA,aAAO;AAAA,QACL,QAAQ;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA;AACF;","names":["res"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/services/api/interfaces/aiosaber/index.ts"],"sourcesContent":["export interface AioOauthTokenResponse {\n access_token: string\n token_type: string\n expires_in: number\n refresh_token: string\n scope?: string\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/services/api/interfaces/beatleader/bsor.ts"],"sourcesContent":["export interface BSOR {\n frames: BSORFrame[]\n heights: BSORHeight[]\n info: BSORInfo\n notes: BSORNote[]\n pauses: BSORPauses[]\n walls: BSORWall[]\n}\n\ninterface position {\n x: number\n y: number\n z: number\n}\ninterface rotation {\n w: number\n x: number\n y: number\n z: number\n}\n\ninterface Pos {\n position: position\n rotation: rotation\n}\n\ninterface BSORFrame {\n fps: number\n head: Pos\n left: Pos\n right: Pos\n time: number\n}\n\ntype BSORHeight = {\n [key: string]: any\n}\n\ninterface BSORInfo {\n controller: string\n difficulty: string\n environment: string\n failTime: number\n gameVersion: string\n hash: string\n height: number\n hmd: string\n jumpDistance: string\n leftHanded: boolean\n mapper: string\n mode: string\n modifiers: string\n platform: string\n playerID: string\n playerName: string\n score: number\n songName: string\n speed: number\n startTime: number\n timestamp: string\n trackingSysytem: string\n version: string\n [key: string]: any\n}\n\nexport interface BSORNote {\n eventTime: number\n eventType: number\n noteCutInfo: NoteCutInfo\n noteID: number\n spawnTime: number\n [key: string]: any\n}\n\ninterface BSORPauses {\n duration: any\n time: number\n [key: string]: any\n}\n\ninterface BSORWall {\n [key: string]: any\n}\n\nexport interface NoteCutInfo {\n afterCutRating: number\n beforeCutRating: number\n cutAngle: number\n cutDirDeviation: number\n cutDistanceToCenter: number\n cutNormal: CutNormal\n cutPoint: CutPoint\n directionOK: boolean\n saberDir: SaberDir\n saberSpeed: number\n saberType: number\n saberTypeOK: boolean\n speedOK: boolean\n timeDeviation: number\n wasCutTooSoon: boolean\n [property: string]: any\n}\n\nexport interface CutNormal {\n x: number\n y: number\n z: number\n [property: string]: any\n}\n\nexport interface CutPoint {\n x: number\n y: number\n z: number\n [property: string]: any\n}\n\nexport interface SaberDir {\n x: number\n y: number\n z: number\n [property: string]: any\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -14,17 +14,17 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
14
14
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
15
  var beatleader_exports = {};
16
16
  module.exports = __toCommonJS(beatleader_exports);
17
- __reExport(beatleader_exports, require("./bsor"), module.exports);
18
- __reExport(beatleader_exports, require("./req"), module.exports);
19
- __reExport(beatleader_exports, require("./score"), module.exports);
20
- __reExport(beatleader_exports, require("./user"), module.exports);
21
- __reExport(beatleader_exports, require("./ws"), module.exports);
17
+ __reExport(beatleader_exports, require("./bsor.js"), module.exports);
18
+ __reExport(beatleader_exports, require("./req.js"), module.exports);
19
+ __reExport(beatleader_exports, require("./score.js"), module.exports);
20
+ __reExport(beatleader_exports, require("./user.js"), module.exports);
21
+ __reExport(beatleader_exports, require("./ws.js"), module.exports);
22
22
  // Annotate the CommonJS export names for ESM import in node:
23
23
  0 && (module.exports = {
24
- ...require("./bsor"),
25
- ...require("./req"),
26
- ...require("./score"),
27
- ...require("./user"),
28
- ...require("./ws")
24
+ ...require("./bsor.js"),
25
+ ...require("./req.js"),
26
+ ...require("./score.js"),
27
+ ...require("./user.js"),
28
+ ...require("./ws.js")
29
29
  });
30
30
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/services/api/interfaces/beatleader/index.ts"],"sourcesContent":["export * from './bsor'\nexport * from './req'\nexport * from './score'\nexport * from './user'\nexport * from './ws'\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;AAAA,+BAAc,mBAAd;AACA,+BAAc,kBADd;AAEA,+BAAc,oBAFd;AAGA,+BAAc,mBAHd;AAIA,+BAAc,iBAJd;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/services/api/interfaces/beatleader/req.ts"],"sourcesContent":["import { Score } from './score'\n\nexport interface BeatLeaderPlayerScoreRequest {\n diff: string\n mode: string\n hash: string\n playerID: string\n leaderboardContext: string\n}\n\nexport interface Metadata {\n itemsPerPage: number\n page: number\n total: number\n [property: string]: any\n}\n\nexport interface BeadLeaderScoresResponse {\n data: Score[]\n metadata: Metadata\n [property: string]: any\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/services/api/interfaces/beatleader/score.ts"],"sourcesContent":["export interface Score {\n accLeft: number\n accPP: number\n accRight: number\n accuracy: number\n badCuts: number\n baseScore: number\n bombCuts: number\n bonusPp: number\n contextExtensions: null\n controller: number\n country: null | string\n fcAccuracy: number\n fcPp: number\n fullCombo: boolean\n hmd: number\n id: number\n leaderboard: Leaderboard\n leaderboardId: string\n maxCombo: number\n maxStreak: number | null\n metadata: null\n missedNotes: number\n modifiedScore: number\n modifiers: string\n myScore: null\n offsets: Offsets\n passPP: number\n pauses: number\n platform: string\n playCount: number\n player: any\n playerId: string\n pp: number\n priority: number\n rank: number\n rankVoting: null\n replay: string\n replaysWatched: number\n scoreImprovement: ScoreImprovement\n techPP: number\n timepost: number\n timeset: string\n validContexts: number\n wallsHit: number\n weight: number\n [property: string]: any\n}\n\nexport interface Leaderboard {\n difficulty: Difficulty\n id: string\n song: Song\n [property: string]: any\n}\n\nexport interface Difficulty {\n accRating: number | null\n bombs: number\n difficultyName: string\n duration: number\n id: number\n maxScore: number\n mode: number\n modeName: string\n modifiersRating: null | ModifiersRating\n modifierValues: ModifierValues\n njs: number\n nominatedTime: number\n notes: number\n nps: number\n passRating: number | null\n predictedAcc: number\n qualifiedTime: number\n rankedTime: number\n requirements: number\n stars: number | null\n status: number\n techRating: number | null\n type: number\n value: number\n walls: number\n [property: string]: any\n}\n\nexport interface ModifierValues {\n da: number\n fs: number\n gn: number\n modifierId: number\n na: number\n nb: number\n nf: number\n no: number\n op: number\n pm: number\n sa: number\n sc: number\n sf: number\n ss: number\n [property: string]: any\n}\n\nexport interface ModifiersRating {\n fsAccRating: number\n fsPassRating: number\n fsPredictedAcc: number\n fsStars: number\n fsTechRating: number\n id: number\n sfAccRating: number\n sfPassRating: number\n sfPredictedAcc: number\n sfStars: number\n sfTechRating: number\n ssAccRating: number\n ssPassRating: number\n ssPredictedAcc: number\n ssStars: number\n ssTechRating: number\n [property: string]: any\n}\n\nexport interface Song {\n author: string\n bpm: number\n collaboratorIds: null\n coverImage: string\n duration: number\n fullCoverImage: string\n hash: string\n id: string\n mapper: string\n mapperId: number\n name: string\n subName: string\n [property: string]: any\n}\n\nexport interface Offsets {\n frames: number\n heights: number\n id: number\n notes: number\n pauses: number\n walls: number\n [property: string]: any\n}\n\nexport interface ScoreImprovement {\n accLeft: number\n accRight: number\n accuracy: number\n averageRankedAccuracy: number\n badCuts: number\n bombCuts: number\n bonusPp: number\n id: number\n missedNotes: number\n pauses: number\n pp: number\n rank: number\n score: number\n timeset: string\n totalPp: number\n totalRank: number\n wallsHit: number\n [property: string]: any\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;","names":[]}