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
@@ -1,18 +1,4 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- class UnexpectedError extends Error {
5
- constructor() {
6
- super("UnexpectedError");
7
- }
8
- }
9
- class BizError extends Error {
10
- constructor() {
11
- super(...arguments);
12
- __publicField(this, "id");
13
- __publicField(this, "params");
14
- }
15
- }
1
+ import { BizError } from "../../core/index.js";
16
2
  class ScoreNotFoundError extends BizError {
17
3
  constructor(params) {
18
4
  super("ScoreNotFoundError");
@@ -184,7 +170,6 @@ export {
184
170
  BLIDNotFoundError,
185
171
  BSIDNotFoundError,
186
172
  BSMapperSubscriptionNotExistError,
187
- BizError,
188
173
  EmptyPromptError,
189
174
  ImageRenderError,
190
175
  InvalidMapIdError,
@@ -200,7 +185,6 @@ export {
200
185
  SessionPromotionTimeoutError,
201
186
  SubscriptionExistError,
202
187
  SubscriptionNotExistError,
203
- UnexpectedError,
204
188
  UnknownUserIDError
205
189
  };
206
190
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/errors/index.ts"],"sourcesContent":["import { BizError } from \"@/core\"\n\n\nexport class ScoreNotFoundError extends BizError {\n constructor(params?: any) {\n super('ScoreNotFoundError')\n this.name = 'ScoreNotFoundError'\n this.id = 'commands.bsbot.me.score-not-found'\n this.params = params\n }\n}\n\nexport class AccountBindingNotFoundError extends BizError {\n constructor(params?: any) {\n super('AccountBindingNotFoundError')\n this.name = 'AccountBindingNotFoundError'\n this.id = 'commands.bsbot.score.not-bind'\n this.params = params\n }\n}\nexport class UnknownUserIDError extends BizError {\n constructor(params?: any) {\n super('UnknownUserIDError')\n this.name = 'UnknownUserIDError'\n this.id = 'commands.bsbot.me.not-found'\n this.params = params\n }\n}\nexport class InvalidMapIdError extends BizError {\n constructor(params?: any) {\n super('InvalidMapIdError')\n this.name = 'InvalidMapIdError'\n this.id = 'commands.bsbot.id.error-map-id'\n this.params = params\n }\n}\n\nexport class MapIdNotFoundError extends BizError {\n constructor(params?: any) {\n super('MapIdNotFoundError')\n this.name = 'MapIdNotFoundError'\n this.id = 'commands.bsbot.id.not-found'\n this.params = params\n }\n}\n\nexport class BLIDNotFoundError extends BizError {\n constructor(params?: any) {\n super('BLIDNotFoundError')\n this.name = 'BLIDNotFoundError'\n this.id = 'commands.bsbot.bl.account.not-found'\n this.params = params\n this.params = params\n }\n}\nexport class SSIDNotFoundError extends BizError {\n constructor(params?: any) {\n super('SSIDNotFoundError')\n this.name = 'SSIDNotFoundError'\n this.id = 'commands.bsbot.ss.account.not-found'\n this.params = params\n this.params = params\n }\n}\nexport class BSIDNotFoundError extends BizError {\n constructor(params?: any) {\n super('BSIDNotFoundError')\n this.name = 'BSIDNotFoundError'\n this.id = 'commands.bsbot.bs.account.not-found'\n this.params = params\n this.params = params\n }\n}\n\nexport class ScoreSaberIDNotFoundError extends BizError {\n constructor(params?: any) {\n super('ScoreSaberIdNotFoundError')\n this.name = 'ScoreSaberIdNotFoundError'\n this.id = 'commands.bsbot.bind.not-found'\n this.params = params\n this.params = params\n }\n}\n\nexport class SessionPromotionTimeoutError extends BizError {\n constructor(params?: any) {\n super('SessionPromotionTimeoutError')\n this.name = 'SessionPromotionTimeoutError'\n this.id = 'commands.bsbot.session-promotion-timeout'\n this.params = params\n }\n}\n\nexport class SessionPromotionCancelError extends BizError {\n constructor(params?: any) {\n const name = 'SessionPromotionCancelError'\n super(name)\n this.name = name\n this.id = 'commands.bsbot.bind.cancel'\n this.params = params\n }\n}\n\nexport class SubscriptionExistError extends BizError {\n constructor(params?: any) {\n super('SubscriptionExistError')\n this.params = params\n this.name = 'SubscriptionExistError'\n this.id = 'commands.bsbot.subscribe.exist'\n this.params = params\n }\n}\nexport class NoneSubscriptionExistError extends BizError {\n constructor(params?: any) {\n super('NoneSubscriptionExistError')\n this.name = 'NoneSubscriptionExistError'\n this.id = 'commands.bsbot.subscribe.info.none'\n this.params = params\n }\n}\n\nexport class SubscriptionNotExistError extends BizError {\n constructor(params?: any) {\n super('SubscriptionNotExistError')\n this.name = 'SubscriptionNotExistError'\n this.id = 'commands.bsbot.unsubscribe.nosub'\n this.params = params\n }\n}\n\nexport class BSMapperSubscriptionNotExistError extends BizError {\n constructor(params?: any) {\n super('BSMapperSubscriptionNotExistError')\n this.name = 'BSMapperSubscriptionNotExistError'\n this.id = 'commands.bsbot.unsubscribe.nosub.beatsaver-mapper'\n this.params = params\n }\n}\n\nexport class ImageRenderError extends BizError {\n constructor(params?: any) {\n super('ImageRenderError')\n this.name = 'ImageRenderError'\n this.id = 'commands.bsbot.render.error'\n this.params = params\n }\n}\nexport class RequestError extends BizError {\n constructor(params?: any) {\n super('RequestError')\n this.name = 'RequestError'\n this.id = 'commands.bsbot.request.error'\n this.params = params\n }\n}\n\nexport class ReachNetworkRetryLimitError extends BizError {\n constructor(params?: any) {\n super('ReachNetworkRetryLimitError')\n this.name = 'ReachNetworkRetryLimitError'\n this.id = 'commands.bsbot.common.error.reach-request-retry-limit'\n this.params = params\n }\n}\n\nexport class NotImplementedError extends BizError {\n constructor(params?: any) {\n super('NotImplementedError')\n this.name = 'NotImplementedError'\n this.id = 'commands.bsbot.common.error.not-implemented'\n this.params = params\n }\n}\n\nexport class EmptyPromptError extends BizError {\n constructor(params?: any) {\n super('EmptyPromptError')\n this.name = 'EmptyPromptError'\n this.id = 'commands.bsbot.common.error.empty-prompt'\n this.params = params\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,21 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
+ import { createTranslator } from "../../common/i18n/index.js";
5
+ class I18nService {
6
+ constructor(config) {
7
+ __publicField(this, "translator");
8
+ this.translator = createTranslator(config != null ? config : {});
9
+ }
10
+ mergeConfig(lang, obj) {
11
+ }
12
+ loadLang(lang) {
13
+ }
14
+ tran(path, params = {}, lang = "zh-cn") {
15
+ return this.translator(path, params, lang);
16
+ }
17
+ }
18
+ export {
19
+ I18nService
20
+ };
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/i18n/index.ts"],"sourcesContent":["import {createTranslator} from \"@/common/i18n\";\n\nexport class I18nService {\n translator: (path: string, params: any, lang: string) => string\n constructor(config?: any) {\n this.translator = createTranslator(config ?? {})\n }\n mergeConfig(lang: string, obj: any) {\n\n }\n\n loadLang(lang: string) {\n\n }\n\n tran(path: string, params = {}, lang = 'zh-cn'): string {\n return this.translator(path, params, lang)\n }\n}\n"],"mappings":";;;AAAA,SAAQ,wBAAuB;AAExB,MAAM,YAAY;AAAA,EAEvB,YAAY,QAAc;AAD1B;AAEE,SAAK,aAAa,iBAAiB,0BAAU,CAAC,CAAC;AAAA,EACjD;AAAA,EACA,YAAY,MAAc,KAAU;AAAA,EAEpC;AAAA,EAEA,SAAS,MAAc;AAAA,EAEvB;AAAA,EAEA,KAAK,MAAc,SAAS,CAAC,GAAG,OAAO,SAAiB;AACtD,WAAO,KAAK,WAAW,MAAM,QAAQ,IAAI;AAAA,EAC3C;AACF;","names":[]}
@@ -0,0 +1,9 @@
1
+ import { I18nService } from "./i18n/index.js";
2
+ import { APIService } from "./api/index.js";
3
+ import { RenderService } from "./render/index.js";
4
+ export {
5
+ APIService,
6
+ I18nService,
7
+ RenderService
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/index.ts"],"sourcesContent":["export { I18nService } from './i18n'\nexport { APIService } from './api'\nexport { RenderService } from './render'\n"],"mappings":"AAAA,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/preference.ts"],"sourcesContent":["import { DB } from '@/interface'\nimport { LRUCache } from 'lru-cache'\n\nconst cache = new LRUCache({\n max: 500,\n maxSize: 500,\n sizeCalculation: () => 1,\n ttl: 1000 * 60 * 60 * 24 * 7,\n allowStale: false,\n updateAgeOnGet: true,\n updateAgeOnHas: true,\n})\n\nexport class UserPreferenceStore {\n v: any = undefined\n constructor(\n private db: DB,\n private uid: string\n ) {}\n async getUserPreference(uid: string) {\n return new UserPreferenceStore(this.db, uid)\n }\n async set<T extends string | number | boolean>(\n key: string,\n value: T\n ): Promise<boolean> {\n if (!this.v) {\n this.v = (await this.db.getUserPreference(this.uid)) ?? {}\n }\n const cacheKey = `${this.uid}`\n const v = {\n ...this.v,\n [key]: value,\n }\n await this.db.storeUserPreference(this.uid, v)\n cache.set(cacheKey, v)\n this.v = v\n return true\n }\n async get<T extends string | number | boolean>(\n key: string\n ): Promise<T | undefined> {\n const cacheKey = `${this.uid}`\n const has = cache.has(cacheKey)\n if (has) {\n const v = cache.get(cacheKey) as T\n return v?.[key] ?? preferenceSchema[key]?.default\n }\n const value = (await this.db.getUserPreference(this.uid)) ?? {}\n cache.set(cacheKey, value)\n return (value?.[key] as T) ?? preferenceSchema[key]?.default\n }\n async configEntries(): Promise<Record<string, any>> {\n await this.get('')\n return cache.get(this.uid) as Record<string, any>\n }\n}\n\ntype PreferenceItem = {\n key: string\n i18nName: string\n valueType: 'img-url' | 'string' | 'number' | 'boolean'\n default: any\n}\n\nexport const preferenceKey = {\n blProfileRenderImg: {\n key: 'bl::profile::render::img',\n i18nName: 'BLProfile背景图片',\n },\n ssProfileRenderImg: {\n key: 'ss::profile::render::img',\n i18nName: 'SSProfile背景图片',\n },\n blScoreImg: {\n key: 'bl::score::render::img',\n i18nName: 'BLScore背景图片',\n },\n}\n\nexport const preferenceSchema: Record<string, PreferenceItem> = {\n 'bl::profile::render::img': {\n key: 'bl::profile::render::img',\n i18nName: 'BLProfile背景图片',\n valueType: 'img-url',\n default: 'https://www.loliapi.com/acg/pc/',\n },\n 'ss::profile::render::img': {\n key: 'ss::profile::render::img',\n i18nName: 'SSProfile背景图片',\n valueType: 'img-url',\n default: 'https://www.loliapi.com/acg/pc/',\n },\n 'bl::score::render::img': {\n key: 'bl::score::render::img',\n i18nName: 'BLScore背景图片',\n valueType: 'img-url',\n default: 'https://www.loliapi.com/acg/pc/',\n },\n}\n\nconst preferenceMap = new Map<string, PreferenceItem>()\n\nObject.entries(preferenceSchema).forEach(([key, value]) => {\n preferenceMap.set(value.i18nName, value)\n})\n\nexport const hasPreferenceSchemaByKeyOrName = (key: string) => {\n if (key in preferenceSchema) {\n return true\n }\n return preferenceMap.has(key)\n}\nexport const getPreferenceSchemaByKeyOrName = (key: string) => {\n if (key in preferenceSchema) {\n return preferenceSchema[key]\n }\n return preferenceMap.get(key)\n}\n"],"mappings":"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","names":[]}
@@ -14,6 +14,18 @@ var __spreadValues = (a, b) => {
14
14
  }
15
15
  return a;
16
16
  };
17
+ var __objRest = (source, exclude) => {
18
+ var target = {};
19
+ for (var prop in source)
20
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
21
+ target[prop] = source[prop];
22
+ if (source != null && __getOwnPropSymbols)
23
+ for (var prop of __getOwnPropSymbols(source)) {
24
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
25
+ target[prop] = source[prop];
26
+ }
27
+ return target;
28
+ };
17
29
  var __async = (__this, __arguments, generator) => {
18
30
  return new Promise((resolve, reject) => {
19
31
  var fulfilled = (value) => {
@@ -34,13 +46,14 @@ var __async = (__this, __arguments, generator) => {
34
46
  step((generator = generator.apply(__this, __arguments)).next());
35
47
  });
36
48
  };
37
- import { getHtml } from "../../components";
49
+ import { getHtml } from "../../components/index.js";
38
50
  import { PuppeteerError, TimeoutError } from "puppeteer-core";
39
- import { Platform } from "../../interface";
40
- import { getBLPlayerComp, getBLRankScoreComp, getBSMapComp, getSSPlayerComp } from "../../components/pages";
41
- import { preferenceKey } from "../../service/preference";
42
- import { ImageRenderError, RequestError } from "../../infra/errors";
43
- import createQrcode from "../../components/utils/qrcode";
51
+ import { Platform } from "../../utils/index.js";
52
+ import { BLPlayerComp, BLRankScoreComp, BSMapComp, SSPlayerComp } from "../../components/pages/index.js";
53
+ import { preferenceKey } from "../preference.js";
54
+ import { ImageRenderError, RequestError } from "../../services/errors/index.js";
55
+ import createQrcode from "../../components/utils/qrcode.js";
56
+ import { getImageRender } from "../../common/render/index.js";
44
57
  const getPreferenceKey = (platform) => {
45
58
  return platform == Platform.SS ? preferenceKey.ssProfileRenderImg.key : preferenceKey.blProfileRenderImg.key;
46
59
  };
@@ -49,6 +62,10 @@ class RenderService {
49
62
  this.api = api;
50
63
  this.imageRender = imageRender;
51
64
  }
65
+ static create(imgRenderConfig) {
66
+ const _a = imgRenderConfig, { api } = _a, config = __objRest(_a, ["api"]);
67
+ return new RenderService(api, getImageRender(config));
68
+ }
52
69
  renderRank(accountId, platform, renderOpts) {
53
70
  return __async(this, null, function* () {
54
71
  var _a;
@@ -58,10 +75,10 @@ class RenderService {
58
75
  let html;
59
76
  if (platform == Platform.BL) {
60
77
  const { scores, userInfo } = yield this.api.getBLPlayerScoresWithUserInfo(accountId);
61
- html = getHtml(getBLPlayerComp(scores, userInfo, bg));
78
+ html = getHtml(BLPlayerComp(scores, userInfo, bg));
62
79
  } else {
63
80
  const { scores, userInfo } = yield this.api.getSSPlayerRecentScoreWithUserInfo(accountId);
64
- html = getHtml(getSSPlayerComp(scores, userInfo, bg));
81
+ html = getHtml(SSPlayerComp(scores, userInfo, bg));
65
82
  }
66
83
  return this.imageRender.html2img(html, __spreadValues({ selector: "#render-result" }, renderOpts));
67
84
  } catch (e) {
@@ -84,7 +101,7 @@ class RenderService {
84
101
  score.player.country
85
102
  );
86
103
  return this.imageRender.html2img(
87
- getHtml(getBLRankScoreComp(score, aroundScores, regionTopScores, difficulties, bsMap, statistic, bsor, bg)),
104
+ getHtml(BLRankScoreComp(score, aroundScores, regionTopScores, difficulties, bsMap, statistic, bsor, bg)),
88
105
  __spreadValues({ selector: "#render-result" }, renderOpts)
89
106
  );
90
107
  } catch (e) {
@@ -106,14 +123,20 @@ class RenderService {
106
123
  const previewQrUrl = yield createQrcode(`https://allpoland.github.io/ArcViewer/?id=${bsMap.id}`);
107
124
  const bsMapQrUrl = yield createQrcode(`https://beatsaver.com/maps/${bsMap.id}`);
108
125
  return this.imageRender.html2img(
109
- getHtml(getBSMapComp(bsMap, bsMapQrUrl, previewQrUrl)),
126
+ getHtml(BSMapComp(bsMap, bsMapQrUrl, previewQrUrl)),
110
127
  __spreadValues({ selector: "#render-result" }, renderOption)
111
128
  );
112
129
  });
113
130
  }
114
131
  renderUrl(url, renderOption) {
115
132
  return __async(this, null, function* () {
116
- return this.imageRender.url2img(url, renderOption);
133
+ var _a, _b;
134
+ (_a = renderOption == null ? void 0 : renderOption.onRenderStart) == null ? void 0 : _a.call(renderOption);
135
+ try {
136
+ return this.imageRender.url2img(url, renderOption);
137
+ } catch (e) {
138
+ (_b = renderOption == null ? void 0 : renderOption.onRenderError) == null ? void 0 : _b.call(renderOption, e);
139
+ }
117
140
  });
118
141
  }
119
142
  }
@@ -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":[]}
@@ -0,0 +1,301 @@
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ function checkBSORFile(file, completion) {
22
+ var reader = new FileReader();
23
+ reader.onload = function(e) {
24
+ decode(e.target.result, completion);
25
+ };
26
+ reader.onerror = function(e) {
27
+ completion("Error: " + e.type);
28
+ };
29
+ reader.readAsArrayBuffer(file);
30
+ }
31
+ const StructType = {
32
+ info: 0,
33
+ frames: 1,
34
+ notes: 2,
35
+ walls: 3,
36
+ heights: 4,
37
+ pauses: 5
38
+ };
39
+ const NoteEventType = {
40
+ good: 0,
41
+ bad: 1,
42
+ miss: 2,
43
+ bomb: 3
44
+ };
45
+ const _decode = (arrayBuffer) => {
46
+ const dataView = new DataView(arrayBuffer);
47
+ dataView.pointer = 0;
48
+ const magic = DecodeInt(dataView);
49
+ const version = DecodeUint8(dataView);
50
+ let ok = false;
51
+ var replay = {};
52
+ if (version == 1 && magic == 1143815529) {
53
+ for (var a = 0; a < StructType.pauses + 1; a++) {
54
+ const type = DecodeUint8(dataView);
55
+ switch (type) {
56
+ case StructType.info:
57
+ replay.info = DecodeInfo(dataView);
58
+ break;
59
+ case StructType.frames:
60
+ replay.frames = DecodeFrames(dataView);
61
+ break;
62
+ case StructType.notes:
63
+ replay.notes = DecodeNotes(dataView);
64
+ break;
65
+ case StructType.walls:
66
+ replay.walls = DecodeWalls(dataView);
67
+ break;
68
+ case StructType.heights:
69
+ replay.heights = DecodeHeight(dataView);
70
+ break;
71
+ case StructType.pauses:
72
+ replay.pauses = DecodePauses(dataView);
73
+ break;
74
+ }
75
+ }
76
+ ok = true;
77
+ }
78
+ return { ok, replay };
79
+ };
80
+ function decode(arrayBuffer, completion) {
81
+ const { ok, replay } = _decode(arrayBuffer);
82
+ if (!ok) completion("Error: failed to decode replay");
83
+ completion(replay);
84
+ }
85
+ function decodeAsync(arrayBuffer) {
86
+ return __async(this, null, function* () {
87
+ const { ok, replay } = _decode(arrayBuffer);
88
+ if (!ok) throw new Error("failed to decode replay, not a target function");
89
+ return replay;
90
+ });
91
+ }
92
+ function DecodeInfo(dataView) {
93
+ var result = {};
94
+ result.version = DecodeString(dataView);
95
+ result.gameVersion = DecodeString(dataView);
96
+ result.timestamp = DecodeString(dataView);
97
+ result.playerID = DecodeString(dataView);
98
+ result.playerName = DecodeName(dataView);
99
+ result.platform = DecodeString(dataView);
100
+ result.trackingSystem = DecodeString(dataView);
101
+ result.hmd = DecodeString(dataView);
102
+ result.controller = DecodeString(dataView);
103
+ result.hash = DecodeString(dataView);
104
+ result.songName = DecodeString(dataView);
105
+ result.mapper = DecodeString(dataView);
106
+ result.difficulty = DecodeString(dataView);
107
+ result.score = DecodeInt(dataView);
108
+ result.mode = DecodeString(dataView);
109
+ result.environment = DecodeString(dataView);
110
+ result.modifiers = DecodeString(dataView);
111
+ result.jumpDistance = DecodeFloat(dataView);
112
+ result.leftHanded = DecodeBool(dataView);
113
+ result.height = DecodeFloat(dataView);
114
+ result.startTime = DecodeFloat(dataView);
115
+ result.failTime = DecodeFloat(dataView);
116
+ result.speed = DecodeFloat(dataView);
117
+ return result;
118
+ }
119
+ function DecodeFrames(dataView) {
120
+ const length = DecodeInt(dataView);
121
+ var result = [];
122
+ for (var i = 0; i < length; i++) {
123
+ var frame = DecodeFrame(dataView);
124
+ if (frame.time != 0 && (result.length == 0 || frame.time != result[result.length - 1].time)) {
125
+ result.push(frame);
126
+ }
127
+ }
128
+ return result;
129
+ }
130
+ function DecodeFrame(dataView) {
131
+ var result = {};
132
+ result.time = DecodeFloat(dataView);
133
+ result.fps = DecodeInt(dataView);
134
+ result.head = DecodeEuler(dataView);
135
+ result.left = DecodeEuler(dataView);
136
+ result.right = DecodeEuler(dataView);
137
+ return result;
138
+ }
139
+ function DecodeNotes(dataView) {
140
+ const length = DecodeInt(dataView);
141
+ var result = [];
142
+ for (var i = 0; i < length; i++) {
143
+ result.push(DecodeNote(dataView));
144
+ }
145
+ return result;
146
+ }
147
+ function DecodeWalls(dataView) {
148
+ const length = DecodeInt(dataView);
149
+ var result = [];
150
+ for (var i = 0; i < length; i++) {
151
+ var wall = {};
152
+ wall.wallID = DecodeInt(dataView);
153
+ wall.energy = DecodeFloat(dataView);
154
+ wall.time = DecodeFloat(dataView);
155
+ wall.spawnTime = DecodeFloat(dataView);
156
+ result.push(wall);
157
+ }
158
+ return result;
159
+ }
160
+ function DecodeHeight(dataView) {
161
+ const length = DecodeInt(dataView);
162
+ var result = [];
163
+ for (var i = 0; i < length; i++) {
164
+ var height = {};
165
+ height.height = DecodeFloat(dataView);
166
+ height.time = DecodeFloat(dataView);
167
+ result.push(height);
168
+ }
169
+ return result;
170
+ }
171
+ function DecodePauses(dataView) {
172
+ const length = DecodeInt(dataView);
173
+ var result = [];
174
+ for (var i = 0; i < length; i++) {
175
+ var pause = {};
176
+ pause.duration = DecodeLong(dataView);
177
+ pause.time = DecodeFloat(dataView);
178
+ result.push(pause);
179
+ }
180
+ return result;
181
+ }
182
+ function DecodeNote(dataView) {
183
+ var result = {};
184
+ result.noteID = DecodeInt(dataView);
185
+ result.eventTime = DecodeFloat(dataView);
186
+ result.spawnTime = DecodeFloat(dataView);
187
+ result.eventType = DecodeInt(dataView);
188
+ if (result.eventType == NoteEventType.good || result.eventType == NoteEventType.bad) {
189
+ result.noteCutInfo = DecodeCutInfo(dataView);
190
+ }
191
+ return result;
192
+ }
193
+ function DecodeCutInfo(dataView) {
194
+ var result = {};
195
+ result.speedOK = DecodeBool(dataView);
196
+ result.directionOK = DecodeBool(dataView);
197
+ result.saberTypeOK = DecodeBool(dataView);
198
+ result.wasCutTooSoon = DecodeBool(dataView);
199
+ result.saberSpeed = DecodeFloat(dataView);
200
+ result.saberDir = DecodeVector3(dataView);
201
+ result.saberType = DecodeInt(dataView);
202
+ result.timeDeviation = DecodeFloat(dataView);
203
+ result.cutDirDeviation = DecodeFloat(dataView);
204
+ result.cutPoint = DecodeVector3(dataView);
205
+ result.cutNormal = DecodeVector3(dataView);
206
+ result.cutDistanceToCenter = DecodeFloat(dataView);
207
+ result.cutAngle = DecodeFloat(dataView);
208
+ result.beforeCutRating = DecodeFloat(dataView);
209
+ result.afterCutRating = DecodeFloat(dataView);
210
+ return result;
211
+ }
212
+ function DecodeEuler(dataView) {
213
+ var result = {};
214
+ result.position = DecodeVector3(dataView);
215
+ result.rotation = DecodeQuaternion(dataView);
216
+ return result;
217
+ }
218
+ function DecodeVector3(dataView) {
219
+ var result = {};
220
+ result.x = DecodeFloat(dataView);
221
+ result.y = DecodeFloat(dataView);
222
+ result.z = DecodeFloat(dataView);
223
+ return result;
224
+ }
225
+ function DecodeQuaternion(dataView) {
226
+ var result = {};
227
+ result.x = DecodeFloat(dataView);
228
+ result.y = DecodeFloat(dataView);
229
+ result.z = DecodeFloat(dataView);
230
+ result.w = DecodeFloat(dataView);
231
+ return result;
232
+ }
233
+ function DecodeLong(dataView) {
234
+ const result = dataView.getBigInt64(dataView.pointer, true);
235
+ dataView.pointer += 8;
236
+ return result;
237
+ }
238
+ function DecodeInt(dataView) {
239
+ const result = dataView.getInt32(dataView.pointer, true);
240
+ dataView.pointer += 4;
241
+ return result;
242
+ }
243
+ function DecodeUint8(dataView) {
244
+ const result = dataView.getUint8(dataView.pointer, true);
245
+ dataView.pointer++;
246
+ return result;
247
+ }
248
+ function DecodeString(dataView) {
249
+ const length = dataView.getInt32(dataView.pointer, true);
250
+ if (length < 0 || length > 300) {
251
+ dataView.pointer += 1;
252
+ return DecodeString(dataView);
253
+ }
254
+ var enc = new TextDecoder("utf-8");
255
+ const string = enc.decode(
256
+ new Int8Array(
257
+ dataView.buffer.slice(dataView.pointer + 4, length + dataView.pointer + 4)
258
+ )
259
+ );
260
+ dataView.pointer += length + 4;
261
+ return string;
262
+ }
263
+ function DecodeName(dataView) {
264
+ const length = dataView.getInt32(dataView.pointer, true);
265
+ var enc = new TextDecoder("utf-8");
266
+ let lengthOffset = 0;
267
+ if (length > 0) {
268
+ 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) {
269
+ lengthOffset++;
270
+ }
271
+ }
272
+ const string = enc.decode(
273
+ new Int8Array(
274
+ dataView.buffer.slice(
275
+ dataView.pointer + 4,
276
+ length + dataView.pointer + 4 + lengthOffset
277
+ )
278
+ )
279
+ );
280
+ dataView.pointer += length + 4 + lengthOffset;
281
+ return string;
282
+ }
283
+ function DecodeFloat(dataView) {
284
+ const result = dataView.getFloat32(dataView.pointer, true);
285
+ dataView.pointer += 4;
286
+ return result;
287
+ }
288
+ function DecodeBool(dataView) {
289
+ const result = dataView.getUint8(dataView.pointer, true) != 0;
290
+ dataView.pointer++;
291
+ return result;
292
+ }
293
+ export {
294
+ DecodeInfo,
295
+ DecodeNotes,
296
+ NoteEventType,
297
+ checkBSORFile,
298
+ decode,
299
+ decodeAsync
300
+ };
301
+ //# 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":[]}
@@ -62,6 +62,8 @@ const convertDiff = (diff) => {
62
62
  }
63
63
  return diffMap[diff.toUpperCase()];
64
64
  };
65
+ export * from "./platform.js";
66
+ export * from "./bsorDecoder.js";
65
67
  export {
66
68
  convertDiff,
67
69
  handleWSEventWithCache,
@@ -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,SAAS,gBAAgB;AAElB,MAAM,yBAAyB,CACpC,QACA,IACA,KACA,aACA,aACA,oBACG;AAEH,QAAM,UAAU,IAAI,SAAS;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,SAAS,gBAAgB;AAElB,MAAM,yBAAyB,CACpC,QACA,IACA,KACA,aACA,aACA,oBACG;AAEH,QAAM,UAAU,IAAI,SAAS;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;AAEA,cAAc;AACd,cAAc;","names":[]}
@@ -0,0 +1,14 @@
1
+ var Platform = /* @__PURE__ */ ((Platform2) => {
2
+ Platform2["SS"] = "scoresaber";
3
+ Platform2["BS"] = "beatsaver";
4
+ Platform2["BL"] = "beatleader";
5
+ return Platform2;
6
+ })(Platform || {});
7
+ const parsePlatform = (p) => {
8
+ return p == "ss" ? "scoresaber" /* SS */ : "beatleader" /* BL */;
9
+ };
10
+ export {
11
+ Platform,
12
+ parsePlatform
13
+ };
14
+ //# 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":"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"]}