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
@@ -18,6 +18,18 @@ var __spreadValues = (a, b) => {
18
18
  }
19
19
  return a;
20
20
  };
21
+ var __objRest = (source, exclude) => {
22
+ var target = {};
23
+ for (var prop in source)
24
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
25
+ target[prop] = source[prop];
26
+ if (source != null && __getOwnPropSymbols)
27
+ for (var prop of __getOwnPropSymbols(source)) {
28
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
29
+ target[prop] = source[prop];
30
+ }
31
+ return target;
32
+ };
21
33
  var __export = (target, all) => {
22
34
  for (var name in all)
23
35
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -64,21 +76,26 @@ __export(render_exports, {
64
76
  RenderService: () => RenderService
65
77
  });
66
78
  module.exports = __toCommonJS(render_exports);
67
- var import_components = require("../../components");
79
+ var import_components = require("../../components/index.js");
68
80
  var import_puppeteer_core = require("puppeteer-core");
69
- var import_interface = require("../../interface");
70
- var import_pages = require("../../components/pages");
71
- var import_preference = require("../../service/preference");
72
- var import_errors = require("../../infra/errors");
73
- var import_qrcode = __toESM(require("../../components/utils/qrcode"));
81
+ var import_utils = require("../../utils/index.js");
82
+ var import_pages = require("../../components/pages/index.js");
83
+ var import_preference = require("../preference.js");
84
+ var import_errors = require("../../services/errors/index.js");
85
+ var import_qrcode = __toESM(require("../../components/utils/qrcode.js"));
86
+ var import_render = require("../../common/render/index.js");
74
87
  const getPreferenceKey = (platform) => {
75
- return platform == import_interface.Platform.SS ? import_preference.preferenceKey.ssProfileRenderImg.key : import_preference.preferenceKey.blProfileRenderImg.key;
88
+ return platform == import_utils.Platform.SS ? import_preference.preferenceKey.ssProfileRenderImg.key : import_preference.preferenceKey.blProfileRenderImg.key;
76
89
  };
77
90
  class RenderService {
78
91
  constructor(api, imageRender) {
79
92
  this.api = api;
80
93
  this.imageRender = imageRender;
81
94
  }
95
+ static create(imgRenderConfig) {
96
+ const _a = imgRenderConfig, { api } = _a, config = __objRest(_a, ["api"]);
97
+ return new RenderService(api, (0, import_render.getImageRender)(config));
98
+ }
82
99
  renderRank(accountId, platform, renderOpts) {
83
100
  return __async(this, null, function* () {
84
101
  var _a;
@@ -86,12 +103,12 @@ class RenderService {
86
103
  let bg = yield (_a = renderOpts == null ? void 0 : renderOpts.userPreference) == null ? void 0 : _a.get(getPreferenceKey(platform));
87
104
  bg = bg || "https://www.loliapi.com/acg/pc/";
88
105
  let html;
89
- if (platform == import_interface.Platform.BL) {
106
+ if (platform == import_utils.Platform.BL) {
90
107
  const { scores, userInfo } = yield this.api.getBLPlayerScoresWithUserInfo(accountId);
91
- html = (0, import_components.getHtml)((0, import_pages.getBLPlayerComp)(scores, userInfo, bg));
108
+ html = (0, import_components.getHtml)((0, import_pages.BLPlayerComp)(scores, userInfo, bg));
92
109
  } else {
93
110
  const { scores, userInfo } = yield this.api.getSSPlayerRecentScoreWithUserInfo(accountId);
94
- html = (0, import_components.getHtml)((0, import_pages.getSSPlayerComp)(scores, userInfo, bg));
111
+ html = (0, import_components.getHtml)((0, import_pages.SSPlayerComp)(scores, userInfo, bg));
95
112
  }
96
113
  return this.imageRender.html2img(html, __spreadValues({ selector: "#render-result" }, renderOpts));
97
114
  } catch (e) {
@@ -114,7 +131,7 @@ class RenderService {
114
131
  score.player.country
115
132
  );
116
133
  return this.imageRender.html2img(
117
- (0, import_components.getHtml)((0, import_pages.getBLRankScoreComp)(score, aroundScores, regionTopScores, difficulties, bsMap, statistic, bsor, bg)),
134
+ (0, import_components.getHtml)((0, import_pages.BLRankScoreComp)(score, aroundScores, regionTopScores, difficulties, bsMap, statistic, bsor, bg)),
118
135
  __spreadValues({ selector: "#render-result" }, renderOpts)
119
136
  );
120
137
  } catch (e) {
@@ -136,14 +153,20 @@ class RenderService {
136
153
  const previewQrUrl = yield (0, import_qrcode.default)(`https://allpoland.github.io/ArcViewer/?id=${bsMap.id}`);
137
154
  const bsMapQrUrl = yield (0, import_qrcode.default)(`https://beatsaver.com/maps/${bsMap.id}`);
138
155
  return this.imageRender.html2img(
139
- (0, import_components.getHtml)((0, import_pages.getBSMapComp)(bsMap, bsMapQrUrl, previewQrUrl)),
156
+ (0, import_components.getHtml)((0, import_pages.BSMapComp)(bsMap, bsMapQrUrl, previewQrUrl)),
140
157
  __spreadValues({ selector: "#render-result" }, renderOption)
141
158
  );
142
159
  });
143
160
  }
144
161
  renderUrl(url, renderOption) {
145
162
  return __async(this, null, function* () {
146
- return this.imageRender.url2img(url, renderOption);
163
+ var _a, _b;
164
+ (_a = renderOption == null ? void 0 : renderOption.onRenderStart) == null ? void 0 : _a.call(renderOption);
165
+ try {
166
+ return this.imageRender.url2img(url, renderOption);
167
+ } catch (e) {
168
+ (_b = renderOption == null ? void 0 : renderOption.onRenderError) == null ? void 0 : _b.call(renderOption, e);
169
+ }
147
170
  });
148
171
  }
149
172
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/render/index.ts"],"sourcesContent":["import { getHtml } from '@/components'\nimport { PuppeteerError, TimeoutError } from 'puppeteer-core'\nimport { Platform } from '@/utils'\nimport { BLPlayerComp, BLRankScoreComp, BSMapComp, SSPlayerComp } from '@/components/pages'\nimport {preferenceKey} from \"../preference\";\nimport {ImageRenderError, RequestError} from \"@/services/errors\";\nimport createQrcode from \"@/components/utils/qrcode\";\nimport {APIService} from \"../api\";\nimport { BSMap } from \"../api/interfaces/beatsaver\";\nimport { type CreateImageRenderOption, getImageRender, ImageRender } from \"@/common/render\";\nimport {UserPreferenceStore} from \"../preference\";\nimport {PuppeteerOptions} from \"@/common/render\";\nexport type RenderOption = RenderOptions & PuppeteerOptions\n\ntype RenderOptions = {\n userPreference?: UserPreferenceStore,\n onRenderStart?: () => void,\n onRenderError?: (e) => void\n}\n\nexport interface IRenderService {\n renderRank(accountId: string, platform: Platform, renderOpts?: RenderOption): Promise<Buffer>\n renderScore(scoreId: string, renderOpts?: RenderOption): Promise<Buffer>\n renderMapById(mapId: string, renderOpts?: RenderOption): Promise<Buffer>\n renderMap(bsMap: BSMap, renderOpts?: RenderOption): Promise<Buffer>\n renderUrl(url: string, renderOpts?: RenderOption): Promise<Buffer>\n}\n\nconst getPreferenceKey = (platform: string) => {\n return platform == Platform.SS\n ? preferenceKey.ssProfileRenderImg.key\n : preferenceKey.blProfileRenderImg.key\n}\n\nexport class RenderService implements IRenderService {\n private constructor(\n private api: APIService,\n private imageRender: ImageRender\n ) {}\n\n static create(imgRenderConfig: CreateImageRenderOption & { api: APIService }) {\n const { api, ...config} = imgRenderConfig\n return new RenderService(api, getImageRender(config))\n }\n\n async renderRank(\n accountId: string,\n platform: Platform,\n renderOpts?: RenderOption\n ) {\n try {\n let bg = (await renderOpts?.userPreference?.get<string>(getPreferenceKey(platform)))\n bg = bg || 'https://www.loliapi.com/acg/pc/'\n let html: string\n if (platform == Platform.BL) {\n const { scores, userInfo } = await this.api.getBLPlayerScoresWithUserInfo(accountId)\n html = getHtml(BLPlayerComp(scores, userInfo, bg))\n } else {\n const { scores, userInfo } = await this.api.getSSPlayerRecentScoreWithUserInfo(accountId)\n html = getHtml(SSPlayerComp(scores, userInfo, bg))\n }\n return this.imageRender.html2img(html, {selector: '#render-result', ...renderOpts})\n }catch (e) {\n if (e instanceof TimeoutError || e instanceof PuppeteerError) {\n throw new ImageRenderError()\n }\n throw e\n }\n }\n\n async renderScore(\n scoreId: string,\n renderOpts?: RenderOption\n ) {\n const bg = (await renderOpts?.userPreference?.get<string>(preferenceKey.blScoreImg.key))\n ?? 'https://www.loliapi.com/acg/pc/'\n try {\n const { score, statistic, bsor, bsMap } =\n await this.api.getScoreAndBSMapByScoreId(scoreId)\n\n const { aroundScores, regionTopScores, difficulties } =\n await this.api.getAroundScoreAndRegionScoreByRankAndPage(\n score.leaderboardId,\n score.rank,\n score.player.country\n )\n return this.imageRender.html2img(\n getHtml(BLRankScoreComp(score, aroundScores, regionTopScores, difficulties, bsMap, statistic, bsor, bg)),\n {selector: '#render-result', ...renderOpts}\n )\n }catch (e) {\n if (e instanceof RequestError) {\n throw e\n }\n throw new ImageRenderError()\n }\n }\n\n async renderMapById(\n mapId: string,\n renderOption: RenderOption\n ) {\n const map = await this.api.BeatSaver.searchMapById(mapId)\n return this.renderMap(map, renderOption)\n }\n\n async renderMap(\n bsMap: BSMap,\n renderOption?: RenderOption\n ) {\n const previewQrUrl = await createQrcode(`https://allpoland.github.io/ArcViewer/?id=${bsMap.id}`)\n const bsMapQrUrl = await createQrcode(`https://beatsaver.com/maps/${bsMap.id}`)\n return this.imageRender.html2img(\n getHtml(BSMapComp(bsMap, bsMapQrUrl, previewQrUrl)), {selector: '#render-result', ...renderOption}\n )\n }\n\n async renderUrl(url: string, renderOption?: RenderOption) {\n renderOption?.onRenderStart?.()\n try {\n return this.imageRender.url2img(url, renderOption)\n }catch (e) {\n renderOption?.onRenderError?.(e)\n }\n }\n}\n"],"mappings":"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","names":["createQrcode"]}
@@ -0,0 +1,329 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var __async = (__this, __arguments, generator) => {
19
+ return new Promise((resolve, reject) => {
20
+ var fulfilled = (value) => {
21
+ try {
22
+ step(generator.next(value));
23
+ } catch (e) {
24
+ reject(e);
25
+ }
26
+ };
27
+ var rejected = (value) => {
28
+ try {
29
+ step(generator.throw(value));
30
+ } catch (e) {
31
+ reject(e);
32
+ }
33
+ };
34
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
35
+ step((generator = generator.apply(__this, __arguments)).next());
36
+ });
37
+ };
38
+ var bsorDecoder_exports = {};
39
+ __export(bsorDecoder_exports, {
40
+ DecodeInfo: () => DecodeInfo,
41
+ DecodeNotes: () => DecodeNotes,
42
+ NoteEventType: () => NoteEventType,
43
+ checkBSORFile: () => checkBSORFile,
44
+ decode: () => decode,
45
+ decodeAsync: () => decodeAsync
46
+ });
47
+ module.exports = __toCommonJS(bsorDecoder_exports);
48
+ function checkBSORFile(file, completion) {
49
+ var reader = new FileReader();
50
+ reader.onload = function(e) {
51
+ decode(e.target.result, completion);
52
+ };
53
+ reader.onerror = function(e) {
54
+ completion("Error: " + e.type);
55
+ };
56
+ reader.readAsArrayBuffer(file);
57
+ }
58
+ const StructType = {
59
+ info: 0,
60
+ frames: 1,
61
+ notes: 2,
62
+ walls: 3,
63
+ heights: 4,
64
+ pauses: 5
65
+ };
66
+ const NoteEventType = {
67
+ good: 0,
68
+ bad: 1,
69
+ miss: 2,
70
+ bomb: 3
71
+ };
72
+ const _decode = (arrayBuffer) => {
73
+ const dataView = new DataView(arrayBuffer);
74
+ dataView.pointer = 0;
75
+ const magic = DecodeInt(dataView);
76
+ const version = DecodeUint8(dataView);
77
+ let ok = false;
78
+ var replay = {};
79
+ if (version == 1 && magic == 1143815529) {
80
+ for (var a = 0; a < StructType.pauses + 1; a++) {
81
+ const type = DecodeUint8(dataView);
82
+ switch (type) {
83
+ case StructType.info:
84
+ replay.info = DecodeInfo(dataView);
85
+ break;
86
+ case StructType.frames:
87
+ replay.frames = DecodeFrames(dataView);
88
+ break;
89
+ case StructType.notes:
90
+ replay.notes = DecodeNotes(dataView);
91
+ break;
92
+ case StructType.walls:
93
+ replay.walls = DecodeWalls(dataView);
94
+ break;
95
+ case StructType.heights:
96
+ replay.heights = DecodeHeight(dataView);
97
+ break;
98
+ case StructType.pauses:
99
+ replay.pauses = DecodePauses(dataView);
100
+ break;
101
+ }
102
+ }
103
+ ok = true;
104
+ }
105
+ return { ok, replay };
106
+ };
107
+ function decode(arrayBuffer, completion) {
108
+ const { ok, replay } = _decode(arrayBuffer);
109
+ if (!ok) completion("Error: failed to decode replay");
110
+ completion(replay);
111
+ }
112
+ function decodeAsync(arrayBuffer) {
113
+ return __async(this, null, function* () {
114
+ const { ok, replay } = _decode(arrayBuffer);
115
+ if (!ok) throw new Error("failed to decode replay, not a target function");
116
+ return replay;
117
+ });
118
+ }
119
+ function DecodeInfo(dataView) {
120
+ var result = {};
121
+ result.version = DecodeString(dataView);
122
+ result.gameVersion = DecodeString(dataView);
123
+ result.timestamp = DecodeString(dataView);
124
+ result.playerID = DecodeString(dataView);
125
+ result.playerName = DecodeName(dataView);
126
+ result.platform = DecodeString(dataView);
127
+ result.trackingSystem = DecodeString(dataView);
128
+ result.hmd = DecodeString(dataView);
129
+ result.controller = DecodeString(dataView);
130
+ result.hash = DecodeString(dataView);
131
+ result.songName = DecodeString(dataView);
132
+ result.mapper = DecodeString(dataView);
133
+ result.difficulty = DecodeString(dataView);
134
+ result.score = DecodeInt(dataView);
135
+ result.mode = DecodeString(dataView);
136
+ result.environment = DecodeString(dataView);
137
+ result.modifiers = DecodeString(dataView);
138
+ result.jumpDistance = DecodeFloat(dataView);
139
+ result.leftHanded = DecodeBool(dataView);
140
+ result.height = DecodeFloat(dataView);
141
+ result.startTime = DecodeFloat(dataView);
142
+ result.failTime = DecodeFloat(dataView);
143
+ result.speed = DecodeFloat(dataView);
144
+ return result;
145
+ }
146
+ function DecodeFrames(dataView) {
147
+ const length = DecodeInt(dataView);
148
+ var result = [];
149
+ for (var i = 0; i < length; i++) {
150
+ var frame = DecodeFrame(dataView);
151
+ if (frame.time != 0 && (result.length == 0 || frame.time != result[result.length - 1].time)) {
152
+ result.push(frame);
153
+ }
154
+ }
155
+ return result;
156
+ }
157
+ function DecodeFrame(dataView) {
158
+ var result = {};
159
+ result.time = DecodeFloat(dataView);
160
+ result.fps = DecodeInt(dataView);
161
+ result.head = DecodeEuler(dataView);
162
+ result.left = DecodeEuler(dataView);
163
+ result.right = DecodeEuler(dataView);
164
+ return result;
165
+ }
166
+ function DecodeNotes(dataView) {
167
+ const length = DecodeInt(dataView);
168
+ var result = [];
169
+ for (var i = 0; i < length; i++) {
170
+ result.push(DecodeNote(dataView));
171
+ }
172
+ return result;
173
+ }
174
+ function DecodeWalls(dataView) {
175
+ const length = DecodeInt(dataView);
176
+ var result = [];
177
+ for (var i = 0; i < length; i++) {
178
+ var wall = {};
179
+ wall.wallID = DecodeInt(dataView);
180
+ wall.energy = DecodeFloat(dataView);
181
+ wall.time = DecodeFloat(dataView);
182
+ wall.spawnTime = DecodeFloat(dataView);
183
+ result.push(wall);
184
+ }
185
+ return result;
186
+ }
187
+ function DecodeHeight(dataView) {
188
+ const length = DecodeInt(dataView);
189
+ var result = [];
190
+ for (var i = 0; i < length; i++) {
191
+ var height = {};
192
+ height.height = DecodeFloat(dataView);
193
+ height.time = DecodeFloat(dataView);
194
+ result.push(height);
195
+ }
196
+ return result;
197
+ }
198
+ function DecodePauses(dataView) {
199
+ const length = DecodeInt(dataView);
200
+ var result = [];
201
+ for (var i = 0; i < length; i++) {
202
+ var pause = {};
203
+ pause.duration = DecodeLong(dataView);
204
+ pause.time = DecodeFloat(dataView);
205
+ result.push(pause);
206
+ }
207
+ return result;
208
+ }
209
+ function DecodeNote(dataView) {
210
+ var result = {};
211
+ result.noteID = DecodeInt(dataView);
212
+ result.eventTime = DecodeFloat(dataView);
213
+ result.spawnTime = DecodeFloat(dataView);
214
+ result.eventType = DecodeInt(dataView);
215
+ if (result.eventType == NoteEventType.good || result.eventType == NoteEventType.bad) {
216
+ result.noteCutInfo = DecodeCutInfo(dataView);
217
+ }
218
+ return result;
219
+ }
220
+ function DecodeCutInfo(dataView) {
221
+ var result = {};
222
+ result.speedOK = DecodeBool(dataView);
223
+ result.directionOK = DecodeBool(dataView);
224
+ result.saberTypeOK = DecodeBool(dataView);
225
+ result.wasCutTooSoon = DecodeBool(dataView);
226
+ result.saberSpeed = DecodeFloat(dataView);
227
+ result.saberDir = DecodeVector3(dataView);
228
+ result.saberType = DecodeInt(dataView);
229
+ result.timeDeviation = DecodeFloat(dataView);
230
+ result.cutDirDeviation = DecodeFloat(dataView);
231
+ result.cutPoint = DecodeVector3(dataView);
232
+ result.cutNormal = DecodeVector3(dataView);
233
+ result.cutDistanceToCenter = DecodeFloat(dataView);
234
+ result.cutAngle = DecodeFloat(dataView);
235
+ result.beforeCutRating = DecodeFloat(dataView);
236
+ result.afterCutRating = DecodeFloat(dataView);
237
+ return result;
238
+ }
239
+ function DecodeEuler(dataView) {
240
+ var result = {};
241
+ result.position = DecodeVector3(dataView);
242
+ result.rotation = DecodeQuaternion(dataView);
243
+ return result;
244
+ }
245
+ function DecodeVector3(dataView) {
246
+ var result = {};
247
+ result.x = DecodeFloat(dataView);
248
+ result.y = DecodeFloat(dataView);
249
+ result.z = DecodeFloat(dataView);
250
+ return result;
251
+ }
252
+ function DecodeQuaternion(dataView) {
253
+ var result = {};
254
+ result.x = DecodeFloat(dataView);
255
+ result.y = DecodeFloat(dataView);
256
+ result.z = DecodeFloat(dataView);
257
+ result.w = DecodeFloat(dataView);
258
+ return result;
259
+ }
260
+ function DecodeLong(dataView) {
261
+ const result = dataView.getBigInt64(dataView.pointer, true);
262
+ dataView.pointer += 8;
263
+ return result;
264
+ }
265
+ function DecodeInt(dataView) {
266
+ const result = dataView.getInt32(dataView.pointer, true);
267
+ dataView.pointer += 4;
268
+ return result;
269
+ }
270
+ function DecodeUint8(dataView) {
271
+ const result = dataView.getUint8(dataView.pointer, true);
272
+ dataView.pointer++;
273
+ return result;
274
+ }
275
+ function DecodeString(dataView) {
276
+ const length = dataView.getInt32(dataView.pointer, true);
277
+ if (length < 0 || length > 300) {
278
+ dataView.pointer += 1;
279
+ return DecodeString(dataView);
280
+ }
281
+ var enc = new TextDecoder("utf-8");
282
+ const string = enc.decode(
283
+ new Int8Array(
284
+ dataView.buffer.slice(dataView.pointer + 4, length + dataView.pointer + 4)
285
+ )
286
+ );
287
+ dataView.pointer += length + 4;
288
+ return string;
289
+ }
290
+ function DecodeName(dataView) {
291
+ const length = dataView.getInt32(dataView.pointer, true);
292
+ var enc = new TextDecoder("utf-8");
293
+ let lengthOffset = 0;
294
+ if (length > 0) {
295
+ while (dataView.getInt32(length + dataView.pointer + 4 + lengthOffset, true) != 6 && dataView.getInt32(length + dataView.pointer + 4 + lengthOffset, true) != 5 && dataView.getInt32(length + dataView.pointer + 4 + lengthOffset, true) != 8) {
296
+ lengthOffset++;
297
+ }
298
+ }
299
+ const string = enc.decode(
300
+ new Int8Array(
301
+ dataView.buffer.slice(
302
+ dataView.pointer + 4,
303
+ length + dataView.pointer + 4 + lengthOffset
304
+ )
305
+ )
306
+ );
307
+ dataView.pointer += length + 4 + lengthOffset;
308
+ return string;
309
+ }
310
+ function DecodeFloat(dataView) {
311
+ const result = dataView.getFloat32(dataView.pointer, true);
312
+ dataView.pointer += 4;
313
+ return result;
314
+ }
315
+ function DecodeBool(dataView) {
316
+ const result = dataView.getUint8(dataView.pointer, true) != 0;
317
+ dataView.pointer++;
318
+ return result;
319
+ }
320
+ // Annotate the CommonJS export names for ESM import in node:
321
+ 0 && (module.exports = {
322
+ DecodeInfo,
323
+ DecodeNotes,
324
+ NoteEventType,
325
+ checkBSORFile,
326
+ decode,
327
+ decodeAsync
328
+ });
329
+ //# sourceMappingURL=bsorDecoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/bsorDecoder.js"],"sourcesContent":["\nexport function checkBSORFile(file, completion) {\n var reader = new FileReader()\n // (await fetch(\"\")).arrayBuffer()\n reader.onload = function (e) {\n decode(e.target.result, completion)\n }\n reader.onerror = function (e) {\n // error occurred\n completion('Error: ' + e.type)\n }\n reader.readAsArrayBuffer(file)\n}\n\nconst StructType = {\n info: 0,\n frames: 1,\n notes: 2,\n walls: 3,\n heights: 4,\n pauses: 5,\n}\n\nexport const NoteEventType = {\n good: 0,\n bad: 1,\n miss: 2,\n bomb: 3,\n}\n\n\nconst _decode = (arrayBuffer) => {\n const dataView = new DataView(arrayBuffer)\n dataView.pointer = 0\n\n const magic = DecodeInt(dataView)\n const version = DecodeUint8(dataView)\n\n let ok = false\n var replay = {}\n if (version == 1 && magic == 0x442d3d69) {\n for (var a = 0; a < StructType.pauses + 1; a++) {\n const type = DecodeUint8(dataView)\n switch (type) {\n case StructType.info:\n replay.info = DecodeInfo(dataView)\n break\n case StructType.frames:\n replay.frames = DecodeFrames(dataView)\n break\n case StructType.notes:\n replay.notes = DecodeNotes(dataView)\n break\n case StructType.walls:\n replay.walls = DecodeWalls(dataView)\n break\n case StructType.heights:\n replay.heights = DecodeHeight(dataView)\n break\n case StructType.pauses:\n replay.pauses = DecodePauses(dataView)\n break\n }\n }\n ok = true\n }\n return {ok, replay}\n}\n\nexport function decode(arrayBuffer, completion) {\n const {ok, replay} = _decode(arrayBuffer)\n if (!ok) completion('Error: failed to decode replay')\n completion(replay)\n}\n\nexport async function decodeAsync(arrayBuffer) {\n const {ok, replay} = _decode(arrayBuffer)\n if (!ok) throw new Error(\"failed to decode replay, not a target function\")\n return replay\n}\nexport function DecodeInfo(dataView) {\n var result = {}\n\n result.version = DecodeString(dataView)\n result.gameVersion = DecodeString(dataView)\n result.timestamp = DecodeString(dataView)\n\n result.playerID = DecodeString(dataView)\n result.playerName = DecodeName(dataView)\n result.platform = DecodeString(dataView)\n\n result.trackingSystem = DecodeString(dataView)\n result.hmd = DecodeString(dataView)\n result.controller = DecodeString(dataView)\n\n result.hash = DecodeString(dataView)\n result.songName = DecodeString(dataView)\n result.mapper = DecodeString(dataView)\n result.difficulty = DecodeString(dataView)\n\n result.score = DecodeInt(dataView)\n result.mode = DecodeString(dataView)\n result.environment = DecodeString(dataView)\n result.modifiers = DecodeString(dataView)\n result.jumpDistance = DecodeFloat(dataView)\n result.leftHanded = DecodeBool(dataView)\n result.height = DecodeFloat(dataView)\n\n result.startTime = DecodeFloat(dataView)\n result.failTime = DecodeFloat(dataView)\n result.speed = DecodeFloat(dataView)\n\n return result\n}\n\nfunction DecodeFrames(dataView) {\n const length = DecodeInt(dataView)\n var result = []\n for (var i = 0; i < length; i++) {\n var frame = DecodeFrame(dataView)\n if (\n frame.time != 0 &&\n (result.length == 0 || frame.time != result[result.length - 1].time)\n ) {\n result.push(frame)\n }\n }\n return result\n}\n\nfunction DecodeFrame(dataView) {\n var result = {}\n result.time = DecodeFloat(dataView)\n result.fps = DecodeInt(dataView)\n result.head = DecodeEuler(dataView)\n result.left = DecodeEuler(dataView)\n result.right = DecodeEuler(dataView)\n\n return result\n}\n\nexport function DecodeNotes(dataView) {\n const length = DecodeInt(dataView)\n var result = []\n for (var i = 0; i < length; i++) {\n result.push(DecodeNote(dataView))\n }\n return result\n}\n\nfunction DecodeWalls(dataView) {\n const length = DecodeInt(dataView)\n var result = []\n for (var i = 0; i < length; i++) {\n var wall = {}\n wall.wallID = DecodeInt(dataView)\n wall.energy = DecodeFloat(dataView)\n wall.time = DecodeFloat(dataView)\n wall.spawnTime = DecodeFloat(dataView)\n result.push(wall)\n }\n return result\n}\n\nfunction DecodeHeight(dataView) {\n const length = DecodeInt(dataView)\n var result = []\n for (var i = 0; i < length; i++) {\n var height = {}\n height.height = DecodeFloat(dataView)\n height.time = DecodeFloat(dataView)\n result.push(height)\n }\n return result\n}\n\nfunction DecodePauses(dataView) {\n const length = DecodeInt(dataView)\n var result = []\n for (var i = 0; i < length; i++) {\n var pause = {}\n pause.duration = DecodeLong(dataView)\n pause.time = DecodeFloat(dataView)\n result.push(pause)\n }\n return result\n}\n\nfunction DecodeNote(dataView) {\n var result = {}\n\n result.noteID = DecodeInt(dataView)\n result.eventTime = DecodeFloat(dataView)\n result.spawnTime = DecodeFloat(dataView)\n result.eventType = DecodeInt(dataView)\n if (\n result.eventType == NoteEventType.good ||\n result.eventType == NoteEventType.bad\n ) {\n result.noteCutInfo = DecodeCutInfo(dataView)\n }\n\n return result\n}\n\nfunction DecodeCutInfo(dataView) {\n var result = {}\n\n result.speedOK = DecodeBool(dataView)\n result.directionOK = DecodeBool(dataView)\n result.saberTypeOK = DecodeBool(dataView)\n result.wasCutTooSoon = DecodeBool(dataView)\n result.saberSpeed = DecodeFloat(dataView)\n result.saberDir = DecodeVector3(dataView)\n result.saberType = DecodeInt(dataView)\n result.timeDeviation = DecodeFloat(dataView)\n result.cutDirDeviation = DecodeFloat(dataView)\n result.cutPoint = DecodeVector3(dataView)\n result.cutNormal = DecodeVector3(dataView)\n result.cutDistanceToCenter = DecodeFloat(dataView)\n result.cutAngle = DecodeFloat(dataView)\n result.beforeCutRating = DecodeFloat(dataView)\n result.afterCutRating = DecodeFloat(dataView)\n\n return result\n}\n\nfunction DecodeEuler(dataView) {\n var result = {}\n result.position = DecodeVector3(dataView)\n result.rotation = DecodeQuaternion(dataView)\n\n return result\n}\n\nfunction DecodeVector3(dataView) {\n var result = {}\n\n result.x = DecodeFloat(dataView)\n result.y = DecodeFloat(dataView)\n result.z = DecodeFloat(dataView)\n\n return result\n}\n\nfunction DecodeQuaternion(dataView) {\n var result = {}\n\n result.x = DecodeFloat(dataView)\n result.y = DecodeFloat(dataView)\n result.z = DecodeFloat(dataView)\n result.w = DecodeFloat(dataView)\n\n return result\n}\n\nfunction DecodeLong(dataView) {\n const result = dataView.getBigInt64(dataView.pointer, true)\n dataView.pointer += 8\n return result\n}\n\nfunction DecodeInt(dataView) {\n const result = dataView.getInt32(dataView.pointer, true)\n dataView.pointer += 4\n return result\n}\n\nfunction DecodeUint8(dataView) {\n const result = dataView.getUint8(dataView.pointer, true)\n dataView.pointer++\n return result\n}\n\nfunction DecodeString(dataView) {\n const length = dataView.getInt32(dataView.pointer, true)\n if (length < 0 || length > 300) {\n dataView.pointer += 1\n return DecodeString(dataView)\n }\n var enc = new TextDecoder('utf-8')\n const string = enc.decode(\n new Int8Array(\n dataView.buffer.slice(dataView.pointer + 4, length + dataView.pointer + 4)\n )\n )\n dataView.pointer += length + 4\n return string\n}\n\nfunction DecodeName(dataView) {\n const length = dataView.getInt32(dataView.pointer, true)\n var enc = new TextDecoder('utf-8')\n let lengthOffset = 0\n if (length > 0) {\n while (\n dataView.getInt32(length + dataView.pointer + 4 + lengthOffset, true) !=\n 6 &&\n dataView.getInt32(length + dataView.pointer + 4 + lengthOffset, true) !=\n 5 &&\n dataView.getInt32(length + dataView.pointer + 4 + lengthOffset, true) != 8\n ) {\n lengthOffset++\n }\n }\n\n const string = enc.decode(\n new Int8Array(\n dataView.buffer.slice(\n dataView.pointer + 4,\n length + dataView.pointer + 4 + lengthOffset\n )\n )\n )\n dataView.pointer += length + 4 + lengthOffset\n return string\n}\n\nfunction DecodeFloat(dataView) {\n const result = dataView.getFloat32(dataView.pointer, true)\n dataView.pointer += 4\n return result\n}\n\nfunction DecodeBool(dataView) {\n const result = dataView.getUint8(dataView.pointer, true) != 0\n dataView.pointer++\n return result\n}\n"],"mappings":"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","names":[]}
@@ -14,6 +14,7 @@ var __copyProps = (to, from, except, desc) => {
14
14
  }
15
15
  return to;
16
16
  };
17
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
17
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
19
  var __async = (__this, __arguments, generator) => {
19
20
  return new Promise((resolve, reject) => {
@@ -43,6 +44,8 @@ __export(utils_exports, {
43
44
  });
44
45
  module.exports = __toCommonJS(utils_exports);
45
46
  var import_lru_cache = require("lru-cache");
47
+ __reExport(utils_exports, require("./platform.js"), module.exports);
48
+ __reExport(utils_exports, require("./bsorDecoder.js"), module.exports);
46
49
  const handleWSEventWithCache = (fnThat, fn, ttl, eventParser, eventFilter, eventIdSelector) => {
47
50
  const WSCache = new import_lru_cache.LRUCache({
48
51
  max: 500,
@@ -90,6 +93,8 @@ const convertDiff = (diff) => {
90
93
  0 && (module.exports = {
91
94
  convertDiff,
92
95
  handleWSEventWithCache,
93
- sleep
96
+ sleep,
97
+ ...require("./platform.js"),
98
+ ...require("./bsorDecoder.js")
94
99
  });
95
100
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/index.ts"],"sourcesContent":["import { LRUCache } from 'lru-cache'\n\nexport const handleWSEventWithCache = (\n fnThat,\n fn,\n ttl,\n eventParser,\n eventFilter,\n eventIdSelector\n) => {\n\n const WSCache = new LRUCache({\n max: 500,\n size: 50,\n sizeCalculation: (value, key) => 1,\n // for use with tracking overall storage size\n maxSize: 5000,\n allowStale: false,\n updateAgeOnGet: false,\n noUpdateTTL: true,\n ttl: ttl,\n })\n return async function (event: any) {\n const data = eventParser(event)\n const key = eventIdSelector(data)\n if (!eventFilter(data) || WSCache.get(key)) {\n return\n }\n WSCache.set(key, true)\n await fn.apply(fnThat, [data])\n }\n}\n\nexport const sleep = async (millsec: number = 5000) => {\n await new Promise<void>((resolve, reject) => {\n setTimeout(resolve, millsec)\n })\n}\n\nconst diffMap = {\n E: 'Easy',\n N: 'Normal',\n H: 'Hard',\n EX: 'Expert',\n EP: 'ExpertPlus',\n 'EX+': 'ExpertPlus',\n}\n\nexport const convertDiff = (diff: string | null) => {\n if (!diff) {\n return diff\n }\n return diffMap[diff.toUpperCase()]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAyB;AAElB,MAAM,yBAAyB,CACpC,QACA,IACA,KACA,aACA,aACA,oBACG;AAEH,QAAM,UAAU,IAAI,0BAAS;AAAA,IAC3B,KAAK;AAAA,IACL,MAAM;AAAA,IACN,iBAAiB,CAAC,OAAO,QAAQ;AAAA;AAAA,IAEjC,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb;AAAA,EACF,CAAC;AACD,SAAO,SAAgB,OAAY;AAAA;AACjC,YAAM,OAAO,YAAY,KAAK;AAC9B,YAAM,MAAM,gBAAgB,IAAI;AAChC,UAAI,CAAC,YAAY,IAAI,KAAK,QAAQ,IAAI,GAAG,GAAG;AAC1C;AAAA,MACF;AACA,cAAQ,IAAI,KAAK,IAAI;AACrB,YAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;AAAA,IAC/B;AAAA;AACF;AAEO,MAAM,QAAQ,CAAO,UAAkB,QAAS;AACrD,QAAM,IAAI,QAAc,CAAC,SAAS,WAAW;AAC3C,eAAW,SAAS,OAAO;AAAA,EAC7B,CAAC;AACH;AAEA,MAAM,UAAU;AAAA,EACd,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AACT;AAEO,MAAM,cAAc,CAAC,SAAwB;AAClD,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,SAAO,QAAQ,KAAK,YAAY,CAAC;AACnC;","names":[]}
1
+ {"version":3,"sources":["../../../src/utils/index.ts"],"sourcesContent":["import { LRUCache } from 'lru-cache'\n\nexport const handleWSEventWithCache = (\n fnThat,\n fn,\n ttl,\n eventParser,\n eventFilter,\n eventIdSelector\n) => {\n\n const WSCache = new LRUCache({\n max: 500,\n size: 50,\n sizeCalculation: (value, key) => 1,\n // for use with tracking overall storage size\n maxSize: 5000,\n allowStale: false,\n updateAgeOnGet: false,\n noUpdateTTL: true,\n ttl: ttl,\n })\n return async function (event: any) {\n const data = eventParser(event)\n const key = eventIdSelector(data)\n if (!eventFilter(data) || WSCache.get(key)) {\n return\n }\n WSCache.set(key, true)\n await fn.apply(fnThat, [data])\n }\n}\n\nexport const sleep = async (millsec: number = 5000) => {\n await new Promise<void>((resolve, reject) => {\n setTimeout(resolve, millsec)\n })\n}\n\nconst diffMap = {\n E: 'Easy',\n N: 'Normal',\n H: 'Hard',\n EX: 'Expert',\n EP: 'ExpertPlus',\n 'EX+': 'ExpertPlus',\n}\n\nexport const convertDiff = (diff: string | null) => {\n if (!diff) {\n return diff\n }\n return diffMap[diff.toUpperCase()]\n}\n\nexport * from './platform'\nexport * from './bsorDecoder.js'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAyB;AAuDzB,0BAAc,uBAvDd;AAwDA,0BAAc,6BAxDd;AAEO,MAAM,yBAAyB,CACpC,QACA,IACA,KACA,aACA,aACA,oBACG;AAEH,QAAM,UAAU,IAAI,0BAAS;AAAA,IAC3B,KAAK;AAAA,IACL,MAAM;AAAA,IACN,iBAAiB,CAAC,OAAO,QAAQ;AAAA;AAAA,IAEjC,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb;AAAA,EACF,CAAC;AACD,SAAO,SAAgB,OAAY;AAAA;AACjC,YAAM,OAAO,YAAY,KAAK;AAC9B,YAAM,MAAM,gBAAgB,IAAI;AAChC,UAAI,CAAC,YAAY,IAAI,KAAK,QAAQ,IAAI,GAAG,GAAG;AAC1C;AAAA,MACF;AACA,cAAQ,IAAI,KAAK,IAAI;AACrB,YAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;AAAA,IAC/B;AAAA;AACF;AAEO,MAAM,QAAQ,CAAO,UAAkB,QAAS;AACrD,QAAM,IAAI,QAAc,CAAC,SAAS,WAAW;AAC3C,eAAW,SAAS,OAAO;AAAA,EAC7B,CAAC;AACH;AAEA,MAAM,UAAU;AAAA,EACd,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AACT;AAEO,MAAM,cAAc,CAAC,SAAwB;AAClD,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,SAAO,QAAQ,KAAK,YAAY,CAAC;AACnC;","names":[]}
@@ -0,0 +1,38 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var platform_exports = {};
19
+ __export(platform_exports, {
20
+ Platform: () => Platform,
21
+ parsePlatform: () => parsePlatform
22
+ });
23
+ module.exports = __toCommonJS(platform_exports);
24
+ var Platform = /* @__PURE__ */ ((Platform2) => {
25
+ Platform2["SS"] = "scoresaber";
26
+ Platform2["BS"] = "beatsaver";
27
+ Platform2["BL"] = "beatleader";
28
+ return Platform2;
29
+ })(Platform || {});
30
+ const parsePlatform = (p) => {
31
+ return p == "ss" ? "scoresaber" /* SS */ : "beatleader" /* BL */;
32
+ };
33
+ // Annotate the CommonJS export names for ESM import in node:
34
+ 0 && (module.exports = {
35
+ Platform,
36
+ parsePlatform
37
+ });
38
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/platform.ts"],"sourcesContent":["export 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"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,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"]}
@@ -46,9 +46,9 @@ const handleBeatLeaderBind = (c) => __async(null, null, function* () {
46
46
  }
47
47
  }
48
48
  const now = /* @__PURE__ */ new Date();
49
- const { blAccount } = yield c.services.db.getUserAccountsByUid(c.session.u.id);
49
+ const { blAccount } = yield c.services.db.getUserAccountsByUid(c.session.user.id);
50
50
  const account = {
51
- uid: c.session.u.id,
51
+ uid: c.session.user.id,
52
52
  platform: "beatleader",
53
53
  platformScope: "profile clan offline_access",
54
54
  platformUid: self.id,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cmd/bind/bind-beatleader.ts"],"sourcesContent":["import {CmdContext, RelateAccount} from '@/interface'\n\nexport const handleBeatLeaderBind = async <T, C>(c: CmdContext<T, C>) => {\n const tokenInfo = await c.services.api.AIOSaber.getBLOAuthToken(c.input)\n if (!tokenInfo) {\n c.session.sendQuote(c.session.text('commands.bsbot.bl.account.not-found'))\n return\n }\n let token = tokenInfo\n let self = await c.services.api.BeatLeader.getTokenInfo(token.access_token)\n if (!self) {\n const refreshToken = await c.services.api.BeatLeader.refreshOAuthToken(\n token.refresh_token\n )\n if (!refreshToken) {\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bl.invalid-token')\n )\n return\n }\n token = refreshToken\n self = await c.services.api.BeatLeader.getTokenInfo(token.access_token)\n if (!self) {\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bl.unknown-error')\n )\n return\n }\n }\n const now = new Date()\n const { blAccount } = await c.services.db.getUserAccountsByUid(c.session.u.id)\n const account: Partial<RelateAccount> = {\n uid: c.session.u.id,\n platform: 'beatleader',\n platformScope: 'profile clan offline_access',\n platformUid: self.id,\n platformUname: self.name,\n otherPlatformInfo: {},\n accessToken: token.access_token,\n refreshToken: token.refresh_token,\n lastModifiedAt: now,\n lastRefreshAt: now,\n type: 'oauth',\n status: 'ok',\n }\n if (blAccount) {\n account.id = blAccount.id\n }\n\n await c.services.db.addUserBindingInfo(account)\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bl.success', {\n name: self.name,\n id: self.id,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEO,MAAM,uBAAuB,CAAa,MAAwB;AACvE,QAAM,YAAY,MAAM,EAAE,SAAS,IAAI,SAAS,gBAAgB,EAAE,KAAK;AACvE,MAAI,CAAC,WAAW;AACd,MAAE,QAAQ,UAAU,EAAE,QAAQ,KAAK,qCAAqC,CAAC;AACzE;AAAA,EACF;AACA,MAAI,QAAQ;AACZ,MAAI,OAAO,MAAM,EAAE,SAAS,IAAI,WAAW,aAAa,MAAM,YAAY;AAC1E,MAAI,CAAC,MAAM;AACT,UAAM,eAAe,MAAM,EAAE,SAAS,IAAI,WAAW;AAAA,MACnD,MAAM;AAAA,IACR;AACA,QAAI,CAAC,cAAc;AACjB,QAAE,QAAQ;AAAA,QACR,EAAE,QAAQ,KAAK,sCAAsC;AAAA,MACvD;AACA;AAAA,IACF;AACA,YAAQ;AACR,WAAO,MAAM,EAAE,SAAS,IAAI,WAAW,aAAa,MAAM,YAAY;AACtE,QAAI,CAAC,MAAM;AACT,QAAE,QAAQ;AAAA,QACR,EAAE,QAAQ,KAAK,sCAAsC;AAAA,MACvD;AACA;AAAA,IACF;AAAA,EACF;AACA,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,EAAE,UAAU,IAAI,MAAM,EAAE,SAAS,GAAG,qBAAqB,EAAE,QAAQ,EAAE,EAAE;AAC7E,QAAM,UAAkC;AAAA,IACtC,KAAK,EAAE,QAAQ,EAAE;AAAA,IACjB,UAAU;AAAA,IACV,eAAe;AAAA,IACf,aAAa,KAAK;AAAA,IAClB,eAAe,KAAK;AAAA,IACpB,mBAAmB,CAAC;AAAA,IACpB,aAAa,MAAM;AAAA,IACnB,cAAc,MAAM;AAAA,IACpB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AACA,MAAI,WAAW;AACb,YAAQ,KAAK,UAAU;AAAA,EACzB;AAEA,QAAM,EAAE,SAAS,GAAG,mBAAmB,OAAO;AAC9C,IAAE,QAAQ;AAAA,IACR,EAAE,QAAQ,KAAK,kCAAkC;AAAA,MAC/C,MAAM,KAAK;AAAA,MACX,IAAI,KAAK;AAAA,IACX,CAAC;AAAA,EACH;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cmd/bind/bind-beatleader.ts"],"sourcesContent":["import { RelateAccount } from '@/interface'\nimport {CmdContext} from \"@/interface\";\n\nexport const handleBeatLeaderBind = async (c: CmdContext) => {\n const tokenInfo = await c.services.api.AIOSaber.getBLOAuthToken(c.input)\n if (!tokenInfo) {\n c.session.sendQuote(c.session.text('commands.bsbot.bl.account.not-found'))\n return\n }\n let token = tokenInfo\n let self = await c.services.api.BeatLeader.getTokenInfo(token.access_token)\n if (!self) {\n const refreshToken = await c.services.api.BeatLeader.refreshOAuthToken(\n token.refresh_token\n )\n if (!refreshToken) {\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bl.invalid-token')\n )\n return\n }\n token = refreshToken\n self = await c.services.api.BeatLeader.getTokenInfo(token.access_token)\n if (!self) {\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bl.unknown-error')\n )\n return\n }\n }\n const now = new Date()\n const { blAccount } = await c.services.db.getUserAccountsByUid(c.session.user.id)\n const account: Partial<RelateAccount> = {\n uid: c.session.user.id,\n platform: 'beatleader',\n platformScope: 'profile clan offline_access',\n platformUid: self.id,\n platformUname: self.name,\n otherPlatformInfo: {},\n accessToken: token.access_token,\n refreshToken: token.refresh_token,\n lastModifiedAt: now,\n lastRefreshAt: now,\n type: 'oauth',\n status: 'ok',\n }\n if (blAccount) {\n account.id = blAccount.id\n }\n\n await c.services.db.addUserBindingInfo(account)\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bl.success', {\n name: self.name,\n id: self.id,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAGO,MAAM,uBAAuB,CAAO,MAAkB;AAC3D,QAAM,YAAY,MAAM,EAAE,SAAS,IAAI,SAAS,gBAAgB,EAAE,KAAK;AACvE,MAAI,CAAC,WAAW;AACd,MAAE,QAAQ,UAAU,EAAE,QAAQ,KAAK,qCAAqC,CAAC;AACzE;AAAA,EACF;AACA,MAAI,QAAQ;AACZ,MAAI,OAAO,MAAM,EAAE,SAAS,IAAI,WAAW,aAAa,MAAM,YAAY;AAC1E,MAAI,CAAC,MAAM;AACT,UAAM,eAAe,MAAM,EAAE,SAAS,IAAI,WAAW;AAAA,MACnD,MAAM;AAAA,IACR;AACA,QAAI,CAAC,cAAc;AACjB,QAAE,QAAQ;AAAA,QACR,EAAE,QAAQ,KAAK,sCAAsC;AAAA,MACvD;AACA;AAAA,IACF;AACA,YAAQ;AACR,WAAO,MAAM,EAAE,SAAS,IAAI,WAAW,aAAa,MAAM,YAAY;AACtE,QAAI,CAAC,MAAM;AACT,QAAE,QAAQ;AAAA,QACR,EAAE,QAAQ,KAAK,sCAAsC;AAAA,MACvD;AACA;AAAA,IACF;AAAA,EACF;AACA,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,EAAE,UAAU,IAAI,MAAM,EAAE,SAAS,GAAG,qBAAqB,EAAE,QAAQ,KAAK,EAAE;AAChF,QAAM,UAAkC;AAAA,IACtC,KAAK,EAAE,QAAQ,KAAK;AAAA,IACpB,UAAU;AAAA,IACV,eAAe;AAAA,IACf,aAAa,KAAK;AAAA,IAClB,eAAe,KAAK;AAAA,IACpB,mBAAmB,CAAC;AAAA,IACpB,aAAa,MAAM;AAAA,IACnB,cAAc,MAAM;AAAA,IACpB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AACA,MAAI,WAAW;AACb,YAAQ,KAAK,UAAU;AAAA,EACzB;AAEA,QAAM,EAAE,SAAS,GAAG,mBAAmB,OAAO;AAC9C,IAAE,QAAQ;AAAA,IACR,EAAE,QAAQ,KAAK,kCAAkC;AAAA,MAC/C,MAAM,KAAK;AAAA,MACX,IAAI,KAAK;AAAA,IACX,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -40,9 +40,9 @@ const handleBeatSaverBind = (c) => __async(null, null, function* () {
40
40
  self = yield c.services.api.BeatSaver.getTokenInfo(token.access_token);
41
41
  }
42
42
  const now = /* @__PURE__ */ new Date();
43
- const { bsAccount } = yield c.services.db.getUserAccountsByUid(c.session.u.id);
43
+ const { bsAccount } = yield c.services.db.getUserAccountsByUid(c.session.user.id);
44
44
  const account = {
45
- uid: c.session.u.id,
45
+ uid: c.session.user.id,
46
46
  platform: "beatsaver",
47
47
  platformUid: self.id,
48
48
  platformUname: self.name,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cmd/bind/bind-beatsaver.ts"],"sourcesContent":["import { CmdContext, RelateAccount } from '@/interface'\n\nexport const handleBeatSaverBind = async <T, C>(c: CmdContext<T, C>) => {\n const tokenInfo = await c.services.api.AIOSaber.getBSOAuthToken(c.input)\n if (!tokenInfo) {\n c.session.sendQuote(c.session.text('commands.bsbot.bind.bs.not-found'))\n return\n }\n let token = tokenInfo\n let self = await c.services.api.BeatSaver.getTokenInfo(token.access_token)\n if (!self) {\n const refreshToken = await c.services.api.BeatSaver.refreshOAuthToken(\n token.refresh_token\n )\n if (!refreshToken) {\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bs.invalid-token')\n )\n return\n }\n token = refreshToken\n self = await c.services.api.BeatSaver.getTokenInfo(token.access_token)\n }\n const now = new Date()\n const { bsAccount } = await c.services.db.getUserAccountsByUid(c.session.u.id)\n const account: Partial<RelateAccount> = {\n uid: c.session.u.id,\n platform: 'beatsaver',\n platformUid: self.id,\n platformUname: self.name,\n otherPlatformInfo: {},\n platformScope: 'identity,alerts',\n accessToken: token.access_token,\n refreshToken: token.refresh_token,\n lastModifiedAt: now,\n lastRefreshAt: now,\n type: 'oauth',\n status: 'ok',\n }\n if (bsAccount) {\n account.id = bsAccount.id\n }\n await c.services.db.addUserBindingInfo(account)\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bs.success', {\n name: self.name,\n id: self.id,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEO,MAAM,sBAAsB,CAAa,MAAwB;AACtE,QAAM,YAAY,MAAM,EAAE,SAAS,IAAI,SAAS,gBAAgB,EAAE,KAAK;AACvE,MAAI,CAAC,WAAW;AACd,MAAE,QAAQ,UAAU,EAAE,QAAQ,KAAK,kCAAkC,CAAC;AACtE;AAAA,EACF;AACA,MAAI,QAAQ;AACZ,MAAI,OAAO,MAAM,EAAE,SAAS,IAAI,UAAU,aAAa,MAAM,YAAY;AACzE,MAAI,CAAC,MAAM;AACT,UAAM,eAAe,MAAM,EAAE,SAAS,IAAI,UAAU;AAAA,MAClD,MAAM;AAAA,IACR;AACA,QAAI,CAAC,cAAc;AACjB,QAAE,QAAQ;AAAA,QACR,EAAE,QAAQ,KAAK,sCAAsC;AAAA,MACvD;AACA;AAAA,IACF;AACA,YAAQ;AACR,WAAO,MAAM,EAAE,SAAS,IAAI,UAAU,aAAa,MAAM,YAAY;AAAA,EACvE;AACA,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,EAAE,UAAU,IAAI,MAAM,EAAE,SAAS,GAAG,qBAAqB,EAAE,QAAQ,EAAE,EAAE;AAC7E,QAAM,UAAkC;AAAA,IACtC,KAAK,EAAE,QAAQ,EAAE;AAAA,IACjB,UAAU;AAAA,IACV,aAAa,KAAK;AAAA,IAClB,eAAe,KAAK;AAAA,IACpB,mBAAmB,CAAC;AAAA,IACpB,eAAe;AAAA,IACf,aAAa,MAAM;AAAA,IACnB,cAAc,MAAM;AAAA,IACpB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AACA,MAAI,WAAW;AACb,YAAQ,KAAK,UAAU;AAAA,EACzB;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,OAAO;AAC9C,IAAE,QAAQ;AAAA,IACR,EAAE,QAAQ,KAAK,kCAAkC;AAAA,MAC/C,MAAM,KAAK;AAAA,MACX,IAAI,KAAK;AAAA,IACX,CAAC;AAAA,EACH;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cmd/bind/bind-beatsaver.ts"],"sourcesContent":["import { CmdContext, RelateAccount } from '@/interface'\n\nexport const handleBeatSaverBind = async (c: CmdContext) => {\n const tokenInfo = await c.services.api.AIOSaber.getBSOAuthToken(c.input)\n if (!tokenInfo) {\n c.session.sendQuote(c.session.text('commands.bsbot.bind.bs.not-found'))\n return\n }\n let token = tokenInfo\n let self = await c.services.api.BeatSaver.getTokenInfo(token.access_token)\n if (!self) {\n const refreshToken = await c.services.api.BeatSaver.refreshOAuthToken(\n token.refresh_token\n )\n if (!refreshToken) {\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bs.invalid-token')\n )\n return\n }\n token = refreshToken\n self = await c.services.api.BeatSaver.getTokenInfo(token.access_token)\n }\n const now = new Date()\n const { bsAccount } = await c.services.db.getUserAccountsByUid(c.session.user.id)\n const account: Partial<RelateAccount> = {\n uid: c.session.user.id,\n platform: 'beatsaver',\n platformUid: self.id,\n platformUname: self.name,\n otherPlatformInfo: {},\n platformScope: 'identity,alerts',\n accessToken: token.access_token,\n refreshToken: token.refresh_token,\n lastModifiedAt: now,\n lastRefreshAt: now,\n type: 'oauth',\n status: 'ok',\n }\n if (bsAccount) {\n account.id = bsAccount.id\n }\n await c.services.db.addUserBindingInfo(account)\n c.session.sendQuote(\n c.session.text('commands.bsbot.bind.bs.success', {\n name: self.name,\n id: self.id,\n })\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEO,MAAM,sBAAsB,CAAO,MAAkB;AAC1D,QAAM,YAAY,MAAM,EAAE,SAAS,IAAI,SAAS,gBAAgB,EAAE,KAAK;AACvE,MAAI,CAAC,WAAW;AACd,MAAE,QAAQ,UAAU,EAAE,QAAQ,KAAK,kCAAkC,CAAC;AACtE;AAAA,EACF;AACA,MAAI,QAAQ;AACZ,MAAI,OAAO,MAAM,EAAE,SAAS,IAAI,UAAU,aAAa,MAAM,YAAY;AACzE,MAAI,CAAC,MAAM;AACT,UAAM,eAAe,MAAM,EAAE,SAAS,IAAI,UAAU;AAAA,MAClD,MAAM;AAAA,IACR;AACA,QAAI,CAAC,cAAc;AACjB,QAAE,QAAQ;AAAA,QACR,EAAE,QAAQ,KAAK,sCAAsC;AAAA,MACvD;AACA;AAAA,IACF;AACA,YAAQ;AACR,WAAO,MAAM,EAAE,SAAS,IAAI,UAAU,aAAa,MAAM,YAAY;AAAA,EACvE;AACA,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,EAAE,UAAU,IAAI,MAAM,EAAE,SAAS,GAAG,qBAAqB,EAAE,QAAQ,KAAK,EAAE;AAChF,QAAM,UAAkC;AAAA,IACtC,KAAK,EAAE,QAAQ,KAAK;AAAA,IACpB,UAAU;AAAA,IACV,aAAa,KAAK;AAAA,IAClB,eAAe,KAAK;AAAA,IACpB,mBAAmB,CAAC;AAAA,IACpB,eAAe;AAAA,IACf,aAAa,MAAM;AAAA,IACnB,cAAc,MAAM;AAAA,IACpB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AACA,MAAI,WAAW;AACb,YAAQ,KAAK,UAAU;AAAA,EACzB;AACA,QAAM,EAAE,SAAS,GAAG,mBAAmB,OAAO;AAC9C,IAAE,QAAQ;AAAA,IACR,EAAE,QAAQ,KAAK,kCAAkC;AAAA,MAC/C,MAAM,KAAK;AAAA,MACX,IAAI,KAAK;AAAA,IACX,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -22,14 +22,14 @@ import {
22
22
  BLIDNotFoundError,
23
23
  SessionPromotionCancelError,
24
24
  SessionPromotionTimeoutError
25
- } from "../../infra/errors";
25
+ } from "../../services/errors/index.js";
26
26
  const handleBeatLeaderIDBind = (c) => __async(null, null, function* () {
27
27
  const player = yield c.services.api.BeatLeader.getPlayerInfo(c.input);
28
28
  if (!player) {
29
29
  throw new BLIDNotFoundError({ accountId: c.input });
30
30
  }
31
31
  const now = /* @__PURE__ */ new Date();
32
- const { blAccount } = yield c.services.db.getUserAccountsByUid(c.session.u.id);
32
+ const { blAccount } = yield c.services.db.getUserAccountsByUid(c.session.user.id);
33
33
  const text = c.session.text("commands.bsbot.bind.ack-prompt", {
34
34
  user: `${player.name}(${player.id})`
35
35
  }) + (blAccount ? "," + c.session.text("commands.bsbot.bind.exist", {
@@ -41,7 +41,7 @@ const handleBeatLeaderIDBind = (c) => __async(null, null, function* () {
41
41
  throw prompt ? new SessionPromotionCancelError() : new SessionPromotionTimeoutError();
42
42
  }
43
43
  const account = {
44
- uid: c.session.u.id,
44
+ uid: c.session.user.id,
45
45
  platform: "beatleader",
46
46
  platformUid: player.id.toString(),
47
47
  platformUname: player.name,