beatsaber-bot-core 0.2.0-dev.2 → 0.2.0-dev.21

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 (428) hide show
  1. package/lib/api/base/aioRequest.d.ts +6 -0
  2. package/lib/api/base/aioRequest.js +24 -0
  3. package/lib/api/base/aioRequest.js.map +1 -0
  4. package/lib/api/base/aioclient.d.ts +10 -0
  5. package/lib/api/base/aioclient.js +25 -0
  6. package/lib/api/base/aioclient.js.map +1 -0
  7. package/lib/api/base/blRequset.d.ts +12 -0
  8. package/lib/api/base/blRequset.js +68 -0
  9. package/lib/api/base/blRequset.js.map +1 -0
  10. package/lib/api/base/blclient.d.ts +16 -0
  11. package/lib/api/base/blclient.js +60 -0
  12. package/lib/api/base/blclient.js.map +1 -0
  13. package/lib/api/base/bsRequest.d.ts +24 -0
  14. package/lib/api/base/bsRequest.js +64 -0
  15. package/lib/api/base/bsRequest.js.map +1 -0
  16. package/lib/api/base/bsclient.d.ts +16 -0
  17. package/lib/api/base/bsclient.js +69 -0
  18. package/lib/api/base/bsclient.js.map +1 -0
  19. package/lib/api/base/index.d.ts +4 -0
  20. package/lib/api/base/index.js +21 -0
  21. package/lib/api/base/index.js.map +1 -0
  22. package/lib/api/base/scRequest.d.ts +8 -0
  23. package/lib/api/base/scRequest.js +43 -0
  24. package/lib/api/base/scRequest.js.map +1 -0
  25. package/lib/api/base/ssclient.d.ts +12 -0
  26. package/lib/api/base/ssclient.js +43 -0
  27. package/lib/api/base/ssclient.js.map +1 -0
  28. package/lib/api/composed/aiosaber.d.ts +7 -0
  29. package/lib/api/composed/aiosaber.js +16 -0
  30. package/lib/api/composed/aiosaber.js.map +1 -0
  31. package/lib/api/composed/beatleader.d.ts +32 -0
  32. package/lib/api/composed/beatleader.js +112 -0
  33. package/lib/api/composed/beatleader.js.map +1 -0
  34. package/lib/api/composed/beatsaver.d.ts +11 -0
  35. package/lib/api/composed/beatsaver.js +19 -0
  36. package/lib/api/composed/beatsaver.js.map +1 -0
  37. package/lib/api/composed/scoresaber.d.ts +14 -0
  38. package/lib/api/composed/scoresaber.js +67 -0
  39. package/lib/api/composed/scoresaber.js.map +1 -0
  40. package/lib/api/helper.d.ts +19 -0
  41. package/lib/api/helper.js +99 -0
  42. package/lib/api/helper.js.map +1 -0
  43. package/lib/api/index.d.ts +14 -0
  44. package/lib/api/index.js +44 -0
  45. package/lib/api/index.js.map +1 -0
  46. package/lib/api/interfaces/aiosaber/index.d.ts +7 -0
  47. package/lib/api/interfaces/aiosaber/index.js +3 -0
  48. package/lib/api/interfaces/aiosaber/index.js.map +1 -0
  49. package/lib/api/interfaces/beatleader/bsor.d.ts +112 -0
  50. package/lib/api/interfaces/beatleader/bsor.js +3 -0
  51. package/lib/api/interfaces/beatleader/bsor.js.map +1 -0
  52. package/lib/api/interfaces/beatleader/index.d.ts +5 -0
  53. package/lib/api/interfaces/beatleader/index.js +22 -0
  54. package/lib/api/interfaces/beatleader/index.js.map +1 -0
  55. package/lib/api/interfaces/beatleader/req.d.ts +19 -0
  56. package/lib/api/interfaces/beatleader/req.js +3 -0
  57. package/lib/api/interfaces/beatleader/req.js.map +1 -0
  58. package/lib/api/interfaces/beatleader/score.d.ts +162 -0
  59. package/lib/api/interfaces/beatleader/score.js +3 -0
  60. package/lib/api/interfaces/beatleader/score.js.map +1 -0
  61. package/lib/api/interfaces/beatleader/user.d.ts +171 -0
  62. package/lib/api/interfaces/beatleader/user.js +3 -0
  63. package/lib/api/interfaces/beatleader/user.js.map +1 -0
  64. package/lib/api/interfaces/beatleader/ws.d.ts +87 -0
  65. package/lib/api/interfaces/beatleader/ws.js +3 -0
  66. package/lib/api/interfaces/beatleader/ws.js.map +1 -0
  67. package/lib/api/interfaces/beatsaver/alert.d.ts +18 -0
  68. package/lib/api/interfaces/beatsaver/alert.js +3 -0
  69. package/lib/api/interfaces/beatsaver/alert.js.map +1 -0
  70. package/lib/api/interfaces/beatsaver/bsmap.d.ts +68 -0
  71. package/lib/api/interfaces/beatsaver/bsmap.js +3 -0
  72. package/lib/api/interfaces/beatsaver/bsmap.js.map +1 -0
  73. package/lib/api/interfaces/beatsaver/index.d.ts +10 -0
  74. package/lib/api/interfaces/beatsaver/index.js +22 -0
  75. package/lib/api/interfaces/beatsaver/index.js.map +1 -0
  76. package/lib/api/interfaces/beatsaver/resp.d.ts +8 -0
  77. package/lib/api/interfaces/beatsaver/resp.js +3 -0
  78. package/lib/api/interfaces/beatsaver/resp.js.map +1 -0
  79. package/lib/api/interfaces/beatsaver/user.d.ts +8 -0
  80. package/lib/api/interfaces/beatsaver/user.js +3 -0
  81. package/lib/api/interfaces/beatsaver/user.js.map +1 -0
  82. package/lib/api/interfaces/beatsaver/ws.d.ts +11 -0
  83. package/lib/api/interfaces/beatsaver/ws.js +3 -0
  84. package/lib/api/interfaces/beatsaver/ws.js.map +1 -0
  85. package/lib/api/interfaces/index.d.ts +12 -0
  86. package/lib/api/interfaces/index.js +3 -0
  87. package/lib/api/interfaces/index.js.map +1 -0
  88. package/lib/api/interfaces/scoresaber/index.d.ts +3 -0
  89. package/lib/api/interfaces/scoresaber/index.js +20 -0
  90. package/lib/api/interfaces/scoresaber/index.js.map +1 -0
  91. package/lib/api/interfaces/scoresaber/item.d.ts +66 -0
  92. package/lib/api/interfaces/scoresaber/item.js +3 -0
  93. package/lib/api/interfaces/scoresaber/item.js.map +1 -0
  94. package/lib/api/interfaces/scoresaber/leaderboard.d.ts +10 -0
  95. package/lib/api/interfaces/scoresaber/leaderboard.js +3 -0
  96. package/lib/api/interfaces/scoresaber/leaderboard.js.map +1 -0
  97. package/lib/api/interfaces/scoresaber/resp.d.ts +9 -0
  98. package/lib/api/interfaces/scoresaber/resp.js +3 -0
  99. package/lib/api/interfaces/scoresaber/resp.js.map +1 -0
  100. package/lib/api/interfaces/scoresaber/user.d.ts +33 -0
  101. package/lib/api/interfaces/scoresaber/user.js +3 -0
  102. package/lib/api/interfaces/scoresaber/user.js.map +1 -0
  103. package/lib/api/interfaces/scoresaber/ws.d.ts +78 -0
  104. package/lib/api/interfaces/scoresaber/ws.js +3 -0
  105. package/lib/api/interfaces/scoresaber/ws.js.map +1 -0
  106. package/lib/api/netResult.d.ts +18 -0
  107. package/lib/api/netResult.js +42 -0
  108. package/lib/api/netResult.js.map +1 -0
  109. package/lib/api/sortScore.d.ts +2 -0
  110. package/lib/api/sortScore.js +31 -0
  111. package/lib/api/sortScore.js.map +1 -0
  112. package/lib/cmd/bind/bind-beatleader.d.ts +2 -0
  113. package/lib/cmd/bind/bind-beatleader.js +53 -0
  114. package/lib/cmd/bind/bind-beatleader.js.map +1 -0
  115. package/lib/cmd/bind/bind-beatsaver.d.ts +2 -0
  116. package/lib/cmd/bind/bind-beatsaver.js +55 -0
  117. package/lib/cmd/bind/bind-beatsaver.js.map +1 -0
  118. package/lib/cmd/bind/bind-id-beatleader.d.ts +2 -0
  119. package/lib/cmd/bind/bind-id-beatleader.js +55 -0
  120. package/lib/cmd/bind/bind-id-beatleader.js.map +1 -0
  121. package/lib/cmd/bind/bind-id-beatsaver.d.ts +2 -0
  122. package/lib/cmd/bind/bind-id-beatsaver.js +55 -0
  123. package/lib/cmd/bind/bind-id-beatsaver.js.map +1 -0
  124. package/lib/cmd/bind/bind-scoresaber.d.ts +2 -0
  125. package/lib/cmd/bind/bind-scoresaber.js +61 -0
  126. package/lib/cmd/bind/bind-scoresaber.js.map +1 -0
  127. package/lib/cmd/bind/index.d.ts +11 -0
  128. package/lib/cmd/bind/index.js +56 -0
  129. package/lib/cmd/bind/index.js.map +1 -0
  130. package/lib/cmd/bsmap/id-search.d.ts +9 -0
  131. package/lib/cmd/bsmap/id-search.js +35 -0
  132. package/lib/cmd/bsmap/id-search.js.map +1 -0
  133. package/lib/cmd/bsmap/key-search.d.ts +9 -0
  134. package/lib/cmd/bsmap/key-search.js +41 -0
  135. package/lib/cmd/bsmap/key-search.js.map +1 -0
  136. package/lib/cmd/bsmap/latest.d.ts +9 -0
  137. package/lib/cmd/bsmap/latest.js +44 -0
  138. package/lib/cmd/bsmap/latest.js.map +1 -0
  139. package/lib/cmd/builder.d.ts +27 -0
  140. package/lib/cmd/builder.js +60 -0
  141. package/lib/cmd/builder.js.map +1 -0
  142. package/lib/cmd/config/index.d.ts +12 -0
  143. package/lib/cmd/config/index.js +70 -0
  144. package/lib/cmd/config/index.js.map +1 -0
  145. package/lib/cmd/deprecated/cmp.d.ts +9 -0
  146. package/lib/cmd/deprecated/cmp.js +15 -0
  147. package/lib/cmd/deprecated/cmp.js.map +1 -0
  148. package/lib/cmd/deprecated/me.d.ts +13 -0
  149. package/lib/cmd/deprecated/me.js +66 -0
  150. package/lib/cmd/deprecated/me.js.map +1 -0
  151. package/lib/cmd/deprecated/tmp.d.ts +9 -0
  152. package/lib/cmd/deprecated/tmp.js +23 -0
  153. package/lib/cmd/deprecated/tmp.js.map +1 -0
  154. package/lib/cmd/deprecated/whois.d.ts +11 -0
  155. package/lib/cmd/deprecated/whois.js +40 -0
  156. package/lib/cmd/deprecated/whois.js.map +1 -0
  157. package/lib/cmd/help.d.ts +9 -0
  158. package/lib/cmd/help.js +14 -0
  159. package/lib/cmd/help.js.map +1 -0
  160. package/lib/cmd/index.d.ts +2 -0
  161. package/lib/cmd/index.js +25 -0
  162. package/lib/cmd/index.js.map +1 -0
  163. package/lib/cmd/rank.d.ts +11 -0
  164. package/lib/cmd/rank.js +56 -0
  165. package/lib/cmd/rank.js.map +1 -0
  166. package/lib/cmd/score.d.ts +13 -0
  167. package/lib/cmd/score.js +48 -0
  168. package/lib/cmd/score.js.map +1 -0
  169. package/lib/cmd/subscribe/beatleader.d.ts +2 -0
  170. package/lib/cmd/subscribe/beatleader.js +27 -0
  171. package/lib/cmd/subscribe/beatleader.js.map +1 -0
  172. package/lib/cmd/subscribe/beatsaver.d.ts +2 -0
  173. package/lib/cmd/subscribe/beatsaver.js +27 -0
  174. package/lib/cmd/subscribe/beatsaver.js.map +1 -0
  175. package/lib/cmd/subscribe/deprecated/alert.d.ts +0 -0
  176. package/lib/cmd/subscribe/deprecated/alert.js +86 -0
  177. package/lib/cmd/subscribe/deprecated/alert.js.map +1 -0
  178. package/lib/cmd/subscribe/deprecated/blfilters.d.ts +0 -0
  179. package/lib/cmd/subscribe/deprecated/blfilters.js +49 -0
  180. package/lib/cmd/subscribe/deprecated/blfilters.js.map +1 -0
  181. package/lib/cmd/subscribe/deprecated/scoresaber.d.ts +0 -0
  182. package/lib/cmd/subscribe/deprecated/scoresaber.js +43 -0
  183. package/lib/cmd/subscribe/deprecated/scoresaber.js.map +1 -0
  184. package/lib/cmd/subscribe/index.d.ts +11 -0
  185. package/lib/cmd/subscribe/index.js +45 -0
  186. package/lib/cmd/subscribe/index.js.map +1 -0
  187. package/lib/cmd/subscribe/subjoin.d.ts +11 -0
  188. package/lib/cmd/subscribe/subjoin.js +42 -0
  189. package/lib/cmd/subscribe/subjoin.js.map +1 -0
  190. package/lib/cmd/subscribe/subleave.d.ts +11 -0
  191. package/lib/cmd/subscribe/subleave.js +35 -0
  192. package/lib/cmd/subscribe/subleave.js.map +1 -0
  193. package/lib/cmd/subscribe/unsubscribe.d.ts +11 -0
  194. package/lib/cmd/subscribe/unsubscribe.js +41 -0
  195. package/lib/cmd/subscribe/unsubscribe.js.map +1 -0
  196. package/lib/config.d.ts +40 -0
  197. package/lib/config.js +3 -0
  198. package/lib/config.js.map +1 -0
  199. package/lib/db/index.d.ts +0 -0
  200. package/lib/db/index.js +1 -0
  201. package/lib/db/index.js.map +1 -0
  202. package/lib/errors/index.d.ts +55 -0
  203. package/lib/errors/index.js +162 -0
  204. package/lib/errors/index.js.map +1 -0
  205. package/lib/i18n/index.d.ts +2 -0
  206. package/lib/i18n/index.js +118 -0
  207. package/lib/i18n/index.js.map +1 -0
  208. package/lib/i18n/parser.d.ts +14 -0
  209. package/lib/i18n/parser.js +165 -0
  210. package/lib/i18n/parser.js.map +1 -0
  211. package/lib/i18n/zh-cn.json +1 -0
  212. package/lib/img-render/components/RankDifficulty.d.ts +6 -0
  213. package/lib/img-render/components/RankDifficulty.js +17 -0
  214. package/lib/img-render/components/RankDifficulty.js.map +1 -0
  215. package/lib/img-render/components/base/avatar.d.ts +7 -0
  216. package/lib/img-render/components/base/avatar.js +12 -0
  217. package/lib/img-render/components/base/avatar.js.map +1 -0
  218. package/lib/img-render/components/bl-rank-score-item.d.ts +18 -0
  219. package/lib/img-render/components/bl-rank-score-item.js +42 -0
  220. package/lib/img-render/components/bl-rank-score-item.js.map +1 -0
  221. package/lib/img-render/components/bl-score-item.d.ts +6 -0
  222. package/lib/img-render/components/bl-score-item.js +14 -0
  223. package/lib/img-render/components/bl-score-item.js.map +1 -0
  224. package/lib/img-render/components/blScoreItem.d.ts +6 -0
  225. package/lib/img-render/components/blScoreItem.js +14 -0
  226. package/lib/img-render/components/blScoreItem.js.map +1 -0
  227. package/lib/img-render/components/characteristic.d.ts +5 -0
  228. package/lib/img-render/components/characteristic.js +27 -0
  229. package/lib/img-render/components/characteristic.js.map +1 -0
  230. package/lib/img-render/components/flag.d.ts +5 -0
  231. package/lib/img-render/components/flag.js +39 -0
  232. package/lib/img-render/components/flag.js.map +1 -0
  233. package/lib/img-render/components/icons/BeatLeader.d.ts +3 -0
  234. package/lib/img-render/components/icons/BeatLeader.js +10 -0
  235. package/lib/img-render/components/icons/BeatLeader.js.map +1 -0
  236. package/lib/img-render/components/icons/RankIcon.d.ts +4 -0
  237. package/lib/img-render/components/icons/RankIcon.js +14 -0
  238. package/lib/img-render/components/icons/RankIcon.js.map +1 -0
  239. package/lib/img-render/components/icons/ScoreSaberIcon.d.ts +3 -0
  240. package/lib/img-render/components/icons/ScoreSaberIcon.js +8 -0
  241. package/lib/img-render/components/icons/ScoreSaberIcon.js.map +1 -0
  242. package/lib/img-render/components/progressbar.d.ts +4 -0
  243. package/lib/img-render/components/progressbar.js +9 -0
  244. package/lib/img-render/components/progressbar.js.map +1 -0
  245. package/lib/img-render/components/rankScoreItem.d.ts +18 -0
  246. package/lib/img-render/components/rankScoreItem.js +42 -0
  247. package/lib/img-render/components/rankScoreItem.js.map +1 -0
  248. package/lib/img-render/components/scoreItem.d.ts +4 -0
  249. package/lib/img-render/components/scoreItem.js +29 -0
  250. package/lib/img-render/components/scoreItem.js.map +1 -0
  251. package/lib/img-render/components/scoregraph.d.ts +10 -0
  252. package/lib/img-render/components/scoregraph.js +301 -0
  253. package/lib/img-render/components/scoregraph.js.map +1 -0
  254. package/lib/img-render/components/skill-graph.d.ts +5 -0
  255. package/lib/img-render/components/skill-graph.js +50 -0
  256. package/lib/img-render/components/skill-graph.js.map +1 -0
  257. package/lib/img-render/components/socre-badge.d.ts +5 -0
  258. package/lib/img-render/components/socre-badge.js +10 -0
  259. package/lib/img-render/components/socre-badge.js.map +1 -0
  260. package/lib/img-render/components/ss-rank-score-item.d.ts +18 -0
  261. package/lib/img-render/components/ss-rank-score-item.js +42 -0
  262. package/lib/img-render/components/ss-rank-score-item.js.map +1 -0
  263. package/lib/img-render/components/ss-score-item.d.ts +4 -0
  264. package/lib/img-render/components/ss-score-item.js +14 -0
  265. package/lib/img-render/components/ss-score-item.js.map +1 -0
  266. package/lib/img-render/components/ssScoreItem.d.ts +4 -0
  267. package/lib/img-render/components/ssScoreItem.js +14 -0
  268. package/lib/img-render/components/ssScoreItem.js.map +1 -0
  269. package/lib/img-render/index.d.ts +25 -0
  270. package/lib/img-render/index.js +142 -0
  271. package/lib/img-render/index.js.map +1 -0
  272. package/lib/img-render/interfaces.d.ts +19 -0
  273. package/lib/img-render/interfaces.js +3 -0
  274. package/lib/img-render/interfaces.js.map +1 -0
  275. package/lib/img-render/remote/index.d.ts +0 -0
  276. package/lib/img-render/remote/index.js +56 -0
  277. package/lib/img-render/remote/index.js.map +1 -0
  278. package/lib/img-render/render.d.ts +7 -0
  279. package/lib/img-render/render.js +65 -0
  280. package/lib/img-render/render.js.map +1 -0
  281. package/lib/img-render/renderImg.d.ts +0 -0
  282. package/lib/img-render/renderImg.js +1 -0
  283. package/lib/img-render/renderImg.js.map +1 -0
  284. package/lib/img-render/result/bl-player.d.ts +8 -0
  285. package/lib/img-render/result/bl-player.js +43 -0
  286. package/lib/img-render/result/bl-player.js.map +1 -0
  287. package/lib/img-render/result/bl-score-with-rank.d.ts +14 -0
  288. package/lib/img-render/result/bl-score-with-rank.js +32 -0
  289. package/lib/img-render/result/bl-score-with-rank.js.map +1 -0
  290. package/lib/img-render/result/bl-score.d.ts +11 -0
  291. package/lib/img-render/result/bl-score.js +18 -0
  292. package/lib/img-render/result/bl-score.js.map +1 -0
  293. package/lib/img-render/result/bs-map.d.ts +8 -0
  294. package/lib/img-render/result/bs-map.js +26 -0
  295. package/lib/img-render/result/bs-map.js.map +1 -0
  296. package/lib/img-render/result/bs-score-with-rank.d.ts +13 -0
  297. package/lib/img-render/result/bs-score-with-rank.js +33 -0
  298. package/lib/img-render/result/bs-score-with-rank.js.map +1 -0
  299. package/lib/img-render/result/index.d.ts +8 -0
  300. package/lib/img-render/result/index.js +33 -0
  301. package/lib/img-render/result/index.js.map +1 -0
  302. package/lib/img-render/result/ss-player.d.ts +9 -0
  303. package/lib/img-render/result/ss-player.js +38 -0
  304. package/lib/img-render/result/ss-player.js.map +1 -0
  305. package/lib/img-render/result/ss-score-with-rank.d.ts +0 -0
  306. package/lib/img-render/result/ss-score-with-rank.js +277 -0
  307. package/lib/img-render/result/ss-score-with-rank.js.map +1 -0
  308. package/lib/img-render/utils/bl/beatleader.d.ts +13 -0
  309. package/lib/img-render/utils/bl/beatleader.js +38 -0
  310. package/lib/img-render/utils/bl/beatleader.js.map +1 -0
  311. package/lib/img-render/utils/bl/blheadset.d.ts +273 -0
  312. package/lib/img-render/utils/bl/blheadset.js +281 -0
  313. package/lib/img-render/utils/bl/blheadset.js.map +1 -0
  314. package/lib/img-render/utils/bl/bsorDecoder.d.ts +68 -0
  315. package/lib/img-render/utils/bl/bsorDecoder.js +286 -0
  316. package/lib/img-render/utils/bl/bsorDecoder.js.map +1 -0
  317. package/lib/img-render/utils/bl/bsorReplayAcc.d.ts +35 -0
  318. package/lib/img-render/utils/bl/bsorReplayAcc.js +590 -0
  319. package/lib/img-render/utils/bl/bsorReplayAcc.js.map +1 -0
  320. package/lib/img-render/utils/bl/getPart.d.ts +7 -0
  321. package/lib/img-render/utils/bl/getPart.js +31 -0
  322. package/lib/img-render/utils/bl/getPart.js.map +1 -0
  323. package/lib/img-render/utils/bl/stastic.d.ts +2 -0
  324. package/lib/img-render/utils/bl/stastic.js +53 -0
  325. package/lib/img-render/utils/bl/stastic.js.map +1 -0
  326. package/lib/img-render/utils/canvas.d.ts +5 -0
  327. package/lib/img-render/utils/canvas.js +70 -0
  328. package/lib/img-render/utils/canvas.js.map +1 -0
  329. package/lib/img-render/utils/format.d.ts +6 -0
  330. package/lib/img-render/utils/format.js +66 -0
  331. package/lib/img-render/utils/format.js.map +1 -0
  332. package/lib/img-render/utils/getMods.d.ts +2 -0
  333. package/lib/img-render/utils/getMods.js +22 -0
  334. package/lib/img-render/utils/getMods.js.map +1 -0
  335. package/lib/img-render/utils/index.d.ts +3 -0
  336. package/lib/img-render/utils/index.js +36 -0
  337. package/lib/img-render/utils/index.js.map +1 -0
  338. package/lib/img-render/utils/qrcode.d.ts +1 -0
  339. package/lib/img-render/utils/qrcode.js +43 -0
  340. package/lib/img-render/utils/qrcode.js.map +1 -0
  341. package/lib/img-render/utils/sleep.d.ts +1 -0
  342. package/lib/img-render/utils/sleep.js +10 -0
  343. package/lib/img-render/utils/sleep.js.map +1 -0
  344. package/lib/img-render/utils/tag-format.d.ts +1 -0
  345. package/lib/img-render/utils/tag-format.js +225 -0
  346. package/lib/img-render/utils/tag-format.js.map +1 -0
  347. package/lib/img-render/utils/tw-join.d.ts +4 -0
  348. package/lib/img-render/utils/tw-join.js +36 -0
  349. package/lib/img-render/utils/tw-join.js.map +1 -0
  350. package/lib/index.d.ts +8 -0
  351. package/lib/index.js +25 -0
  352. package/lib/index.js.map +1 -0
  353. package/lib/interface/bot.d.ts +20 -0
  354. package/lib/interface/bot.js +3 -0
  355. package/lib/interface/bot.js.map +1 -0
  356. package/lib/interface/cmd.d.ts +39 -0
  357. package/lib/interface/cmd.js +3 -0
  358. package/lib/interface/cmd.js.map +1 -0
  359. package/lib/interface/db/index.d.ts +38 -0
  360. package/lib/interface/db/index.js +18 -0
  361. package/lib/interface/db/index.js.map +1 -0
  362. package/lib/interface/db/models.d.ts +39 -0
  363. package/lib/interface/db/models.js +3 -0
  364. package/lib/interface/db/models.js.map +1 -0
  365. package/lib/interface/index.d.ts +14 -0
  366. package/lib/interface/index.js +34 -0
  367. package/lib/interface/index.js.map +1 -0
  368. package/lib/interface/logger.d.ts +6 -0
  369. package/lib/interface/logger.js +3 -0
  370. package/lib/interface/logger.js.map +1 -0
  371. package/lib/interface/render.d.ts +23 -0
  372. package/lib/interface/render.js +3 -0
  373. package/lib/interface/render.js.map +1 -0
  374. package/lib/schedules/BeatSaverAlertMonitor.d.ts +0 -0
  375. package/lib/schedules/BeatSaverAlertMonitor.js +231 -0
  376. package/lib/schedules/BeatSaverAlertMonitor.js.map +1 -0
  377. package/lib/schedules/index.d.ts +7 -0
  378. package/lib/schedules/index.js +23 -0
  379. package/lib/schedules/index.js.map +1 -0
  380. package/lib/schedules/interface.d.ts +18 -0
  381. package/lib/schedules/interface.js +3 -0
  382. package/lib/schedules/interface.js.map +1 -0
  383. package/lib/schedules/oauthTokenRefreshTask.d.ts +2 -0
  384. package/lib/schedules/oauthTokenRefreshTask.js +53 -0
  385. package/lib/schedules/oauthTokenRefreshTask.js.map +1 -0
  386. package/lib/schedules/temp.d.ts +2 -0
  387. package/lib/schedules/temp.js +23 -0
  388. package/lib/schedules/temp.js.map +1 -0
  389. package/lib/utils/cache.d.ts +3 -0
  390. package/lib/utils/cache.js +30 -0
  391. package/lib/utils/cache.js.map +1 -0
  392. package/lib/utils/fetch/index.d.ts +3 -0
  393. package/lib/utils/fetch/index.js +21 -0
  394. package/lib/utils/fetch/index.js.map +1 -0
  395. package/lib/utils/fetch/ofetch.d.ts +22 -0
  396. package/lib/utils/fetch/ofetch.js +87 -0
  397. package/lib/utils/fetch/ofetch.js.map +1 -0
  398. package/lib/utils/index.d.ts +8 -0
  399. package/lib/utils/index.js +80 -0
  400. package/lib/utils/index.js.map +1 -0
  401. package/lib/utils/preference.d.ts +34 -0
  402. package/lib/utils/preference.js +112 -0
  403. package/lib/utils/preference.js.map +1 -0
  404. package/lib/utils/puppeteer.d.ts +20 -0
  405. package/lib/utils/puppeteer.js +79 -0
  406. package/lib/utils/puppeteer.js.map +1 -0
  407. package/lib/utils/s3.d.ts +11 -0
  408. package/lib/utils/s3.js +60 -0
  409. package/lib/utils/s3.js.map +1 -0
  410. package/lib/ws/beatleader.d.ts +18 -0
  411. package/lib/ws/beatleader.js +56 -0
  412. package/lib/ws/beatleader.js.map +1 -0
  413. package/lib/ws/beatsaver.d.ts +23 -0
  414. package/lib/ws/beatsaver.js +58 -0
  415. package/lib/ws/beatsaver.js.map +1 -0
  416. package/lib/ws/bl-filter.d.ts +0 -0
  417. package/lib/ws/bl-filter.js +64 -0
  418. package/lib/ws/bl-filter.js.map +1 -0
  419. package/lib/ws/handler.d.ts +6 -0
  420. package/lib/ws/handler.js +3 -0
  421. package/lib/ws/handler.js.map +1 -0
  422. package/lib/ws/index.d.ts +4 -0
  423. package/lib/ws/index.js +21 -0
  424. package/lib/ws/index.js.map +1 -0
  425. package/lib/ws/scoresaber.d.ts +18 -0
  426. package/lib/ws/scoresaber.js +37 -0
  427. package/lib/ws/scoresaber.js.map +1 -0
  428. package/package.json +5 -1
@@ -0,0 +1,590 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processUnderswings = exports.ColorType = exports.NoteLineLayer = exports.NoteCutDirection = exports.processSliceDetails = exports.processSliceSummary = exports.processAccGraphs = exports.processAccuracySpread = void 0;
4
+ const bsorDecoder_1 = require("./bsorDecoder");
5
+ const beatleader_1 = require("./beatleader");
6
+ const NoteScoringType = {
7
+ Ignore: -1,
8
+ NoScore: 0,
9
+ Normal: 1,
10
+ SliderHead: 2,
11
+ SliderTail: 3,
12
+ BurstSliderHead: 4,
13
+ BurstSliderElement: 5,
14
+ };
15
+ function processAccuracySpread(replay) {
16
+ if (replay == null)
17
+ return null;
18
+ const result = {
19
+ totalLeftCount: 0.0,
20
+ leftCount: [],
21
+ leftTD: [],
22
+ totalRightCount: 0.0,
23
+ rightCount: [],
24
+ rightTD: [],
25
+ timeDeviation: [],
26
+ maxCount: 0,
27
+ maxTD: 0.0,
28
+ maxTimeDeviation: 0.0,
29
+ };
30
+ if (!replay?.notes?.length)
31
+ return result;
32
+ const timings = [];
33
+ for (let i = 0; i <= 15; i++) {
34
+ result.leftCount.push(0.0);
35
+ result.leftTD.push(0.0);
36
+ result.rightCount.push(0.0);
37
+ result.rightTD.push(0.0);
38
+ result.timeDeviation.push(0.0);
39
+ timings.push([]);
40
+ }
41
+ for (let i = 0; i < replay.notes.length; i++) {
42
+ const note = replay.notes[i];
43
+ if (note.eventType !== bsorDecoder_1.NoteEventType.good)
44
+ continue;
45
+ const noteData = decodeNoteData(note.noteID);
46
+ if (noteData.scoringType !== NoteScoringType.Normal)
47
+ continue;
48
+ const acc = getAccForDistance(note.noteCutInfo.cutDistanceToCenter);
49
+ const td = Math.abs(note.noteCutInfo.cutNormal.z);
50
+ if (note.noteCutInfo.saberType === 0) {
51
+ result.totalLeftCount += 1.0;
52
+ result.leftCount[acc] += 1.0;
53
+ result.leftTD[acc] += td;
54
+ }
55
+ else {
56
+ result.totalRightCount += 1.0;
57
+ result.rightCount[acc] += 1.0;
58
+ result.rightTD[acc] += td;
59
+ }
60
+ result.timeDeviation[acc] += note.noteCutInfo.timeDeviation;
61
+ timings[acc].push(note.noteCutInfo.timeDeviation);
62
+ }
63
+ for (let i = 0; i <= 15; i++) {
64
+ //<-- Averages ---
65
+ const totalCount = result.rightCount[i] + result.leftCount[i];
66
+ result.leftTD[i] =
67
+ result.leftCount[i] > 0 ? result.leftTD[i] / result.leftCount[i] : null;
68
+ result.rightTD[i] =
69
+ result.rightCount[i] > 0
70
+ ? result.rightTD[i] / result.rightCount[i]
71
+ : null;
72
+ result.timeDeviation[i] =
73
+ totalCount > 0 ? result.timeDeviation[i] / totalCount : null;
74
+ result.leftCount[i] /= result.totalLeftCount;
75
+ result.rightCount[i] /= result.totalRightCount;
76
+ //<-- TimeDeviation ---
77
+ result.timeDeviation[i] = getStandardDeviation(timings[i], result.timeDeviation[i]);
78
+ //<-- Min / Max ---
79
+ if (result.leftCount[i] > result.maxCount)
80
+ result.maxCount = result.leftCount[i];
81
+ if (result.rightCount[i] > result.maxCount)
82
+ result.maxCount = result.rightCount[i];
83
+ if (result.leftTD[i] > result.maxTD)
84
+ result.maxTD = result.leftTD[i];
85
+ if (result.rightTD[i] > result.maxTD)
86
+ result.maxTD = result.rightTD[i];
87
+ if (result.timeDeviation[i] > result.maxTimeDeviation)
88
+ result.maxTimeDeviation = result.timeDeviation[i];
89
+ }
90
+ return result;
91
+ }
92
+ exports.processAccuracySpread = processAccuracySpread;
93
+ function decodeNoteData(noteId) {
94
+ const result = {};
95
+ result.cutDirection = Math.round(noteId % 10);
96
+ noteId /= 10;
97
+ result.colorType = Math.round(noteId % 10);
98
+ noteId /= 10;
99
+ result.noteLineLayer = Math.round(noteId % 10);
100
+ noteId /= 10;
101
+ result.lineIndex = Math.round(noteId % 10);
102
+ noteId /= 10;
103
+ result.scoringType = Math.round((noteId -= 2) < -1 ? noteId + 3 : noteId);
104
+ return result;
105
+ }
106
+ function getAccForDistance(cutDistanceToCenter) {
107
+ let mul = 1 - cutDistanceToCenter / 0.3;
108
+ if (mul > 1)
109
+ mul = 1;
110
+ if (mul < 0)
111
+ mul = 0;
112
+ return Math.round(15.0 * mul);
113
+ }
114
+ const SummaryGroup = {
115
+ Midlanes: 0,
116
+ Outerlanes: 1,
117
+ Crossovers: 2,
118
+ Forehands: 3,
119
+ Backhands: 4,
120
+ };
121
+ function getStandardDeviation(numArray, mean) {
122
+ if (numArray.length === 0)
123
+ return null;
124
+ let sqrSum = 0.0;
125
+ numArray.forEach((num) => {
126
+ sqrSum += Math.pow(num - mean, 2);
127
+ });
128
+ return Math.sqrt(sqrSum / numArray.length);
129
+ }
130
+ function getScore(noteCutInfo) {
131
+ let score = 0.0;
132
+ score += getAccForDistance(noteCutInfo.cutDistanceToCenter);
133
+ score += getPreSwingScore(noteCutInfo.beforeCutRating);
134
+ score += getPostSwingScore(noteCutInfo.afterCutRating);
135
+ return score;
136
+ }
137
+ function getPreSwingScore(preSwingRating) {
138
+ if (preSwingRating > 1)
139
+ preSwingRating = 1;
140
+ if (preSwingRating < 0)
141
+ preSwingRating = 0;
142
+ return Math.round(preSwingRating * 70);
143
+ }
144
+ function getPostSwingScore(postSwingRating) {
145
+ if (postSwingRating > 1)
146
+ postSwingRating = 1;
147
+ if (postSwingRating < 0)
148
+ postSwingRating = 0;
149
+ return Math.round(postSwingRating * 30);
150
+ }
151
+ const accGraphResolution = 100;
152
+ const smoothPeriodPercentage = 0.02;
153
+ const weightFunctionSteepness = 3.0;
154
+ function processAccGraphs(replay) {
155
+ if (replay == null)
156
+ return null;
157
+ const result = {
158
+ times: [],
159
+ fullSwingBySaber: {
160
+ red: [],
161
+ blue: [],
162
+ total: [],
163
+ },
164
+ realScoreBySaber: {
165
+ red: [],
166
+ blue: [],
167
+ total: [],
168
+ },
169
+ };
170
+ if (!replay?.notes?.length)
171
+ return result;
172
+ const lastNoteTime = replay.notes[replay.notes.length - 1].eventTime;
173
+ const distanceWeightFunction = (0, beatleader_1.createDistanceWeightFunction)(lastNoteTime * smoothPeriodPercentage, weightFunctionSteepness);
174
+ for (let i = 0.0; i < accGraphResolution; i += 1.0) {
175
+ const time = lastNoteTime * (i / (accGraphResolution - 1));
176
+ const sumsBySaber = {
177
+ red: [0.0, 0.0],
178
+ blue: [0.0, 0.0],
179
+ total: [0.0, 0.0],
180
+ };
181
+ const dividerBySaber = { red: 0.0, blue: 0.0, total: 0.0 };
182
+ for (let j = 0; j < replay.notes.length; j++) {
183
+ const note = replay.notes[j];
184
+ if (note.eventType !== bsorDecoder_1.NoteEventType.good)
185
+ continue;
186
+ const noteData = decodeNoteData(note.noteID);
187
+ if (noteData.scoringType !== NoteScoringType.Normal)
188
+ continue;
189
+ const weight = distanceWeightFunction.getWeight(note.eventTime - time);
190
+ const acc = getAccForDistance(note.noteCutInfo.cutDistanceToCenter);
191
+ const pre = getPreSwingScore(note.noteCutInfo.beforeCutRating);
192
+ const post = getPostSwingScore(note.noteCutInfo.afterCutRating);
193
+ const fullSwing = acc + 100;
194
+ const realScore = acc + pre + post;
195
+ sumsBySaber.total[0] += fullSwing * weight;
196
+ sumsBySaber.total[1] += realScore * weight;
197
+ dividerBySaber.total += weight;
198
+ const saberType = note.noteCutInfo.saberType === 0 ? "red" : "blue";
199
+ sumsBySaber[saberType][0] += fullSwing * weight;
200
+ sumsBySaber[saberType][1] += realScore * weight;
201
+ dividerBySaber[saberType] += weight;
202
+ }
203
+ result.times.push(time);
204
+ ["red", "blue", "total"].forEach((saberType) => {
205
+ result.fullSwingBySaber[saberType].push(dividerBySaber[saberType] === 0
206
+ ? 0.0
207
+ : sumsBySaber[saberType][0] / dividerBySaber[saberType]);
208
+ result.realScoreBySaber[saberType].push(dividerBySaber[saberType] === 0
209
+ ? 0.0
210
+ : sumsBySaber[saberType][1] / dividerBySaber[saberType]);
211
+ });
212
+ }
213
+ return result;
214
+ }
215
+ exports.processAccGraphs = processAccGraphs;
216
+ //endregion
217
+ //region SliceSummary
218
+ function processSliceSummary(replay) {
219
+ if (replay == null)
220
+ return null;
221
+ function createEmptySummary(label) {
222
+ return {
223
+ label,
224
+ left: { count: 0, averageScore: 0.0, averageTD: 0.0 },
225
+ right: { count: 0, averageScore: 0.0, averageTD: 0.0 },
226
+ };
227
+ }
228
+ const result = [
229
+ createEmptySummary("Midlanes"),
230
+ createEmptySummary("Outerlanes"),
231
+ createEmptySummary("Crossovers"),
232
+ createEmptySummary("Forehands"),
233
+ createEmptySummary("Backhands"),
234
+ ];
235
+ if (!replay?.notes?.length)
236
+ return result;
237
+ function getLaneSummaryEntry(noteLineIndex, saberType) {
238
+ const summaryGroup = getLaneSummaryGroup(noteLineIndex, saberType);
239
+ return saberType === 0
240
+ ? result[summaryGroup].left
241
+ : result[summaryGroup].right;
242
+ }
243
+ function getParitySummaryEntry(noteCutInfo, saberType) {
244
+ const summaryGroup = getParitySummaryGroup(noteCutInfo);
245
+ return saberType === 0
246
+ ? result[summaryGroup].left
247
+ : result[summaryGroup].right;
248
+ }
249
+ function addScore(handSummary, score, td) {
250
+ handSummary.count += 1;
251
+ handSummary.averageScore += score;
252
+ handSummary.averageTD += td;
253
+ }
254
+ function applyAverage(handSummary) {
255
+ if (handSummary.count === 0)
256
+ return;
257
+ handSummary.averageScore /= handSummary.count;
258
+ handSummary.averageTD /= handSummary.count;
259
+ }
260
+ for (let i = 0; i < replay.notes.length; i++) {
261
+ const note = replay.notes[i];
262
+ if (note.eventType !== bsorDecoder_1.NoteEventType.good)
263
+ continue;
264
+ const noteData = decodeNoteData(note.noteID);
265
+ if (noteData.scoringType !== NoteScoringType.Normal)
266
+ continue;
267
+ const laneSummaryEntry = getLaneSummaryEntry(noteData.lineIndex, note.noteCutInfo.saberType);
268
+ const paritySummaryEntry = getParitySummaryEntry(note.noteCutInfo, note.noteCutInfo.saberType);
269
+ const score = getScore(note.noteCutInfo);
270
+ const td = Math.abs(note.noteCutInfo.cutNormal.z);
271
+ addScore(laneSummaryEntry, score, td);
272
+ addScore(paritySummaryEntry, score, td);
273
+ }
274
+ result.forEach((summary) => {
275
+ applyAverage(summary.left);
276
+ applyAverage(summary.right);
277
+ });
278
+ return result;
279
+ }
280
+ exports.processSliceSummary = processSliceSummary;
281
+ //endregion
282
+ //region SliceDetails
283
+ function processSliceDetails(replay) {
284
+ if (replay == null)
285
+ return null;
286
+ const result = {
287
+ mainGrid: [],
288
+ summaryGrids: [],
289
+ };
290
+ for (let i = 0; i < 12; i++) {
291
+ const mainGridCell = {
292
+ count: 0,
293
+ averageScore: 0.0,
294
+ left: [],
295
+ right: [],
296
+ };
297
+ for (let j = 0; j < 9; j++) {
298
+ mainGridCell.left.push({ count: 0, averageScore: 0.0 });
299
+ mainGridCell.right.push({ count: 0, averageScore: 0.0 });
300
+ }
301
+ result.mainGrid.push(mainGridCell);
302
+ }
303
+ for (let summaryGroup = 0; summaryGroup < 5; summaryGroup++) {
304
+ const summaryGrid = [];
305
+ for (let i = 0; i < 12; i++) {
306
+ summaryGrid.push({ count: 0, averageScore: 0.0 });
307
+ }
308
+ result.summaryGrids.push(summaryGrid);
309
+ }
310
+ if (!replay?.notes?.length)
311
+ return result;
312
+ function addScore(cell, score) {
313
+ cell.count += 1;
314
+ cell.averageScore += score;
315
+ }
316
+ function applyAverageScore(cell) {
317
+ if (cell.count === 0)
318
+ return;
319
+ cell.averageScore /= cell.count;
320
+ }
321
+ for (let i = 0; i < replay.notes.length; i++) {
322
+ const note = replay.notes[i];
323
+ if (note.eventType !== bsorDecoder_1.NoteEventType.good)
324
+ continue;
325
+ const noteData = decodeNoteData(note.noteID);
326
+ if (noteData.scoringType !== NoteScoringType.Normal)
327
+ continue;
328
+ const mainGridIndex = getMainGridIndex(noteData.noteLineLayer, noteData.lineIndex);
329
+ const secondaryGridIndex = getSecondaryGridIndex(noteData.cutDirection);
330
+ const laneSummaryGroup = getLaneSummaryGroup(noteData.lineIndex, note.noteCutInfo.saberType);
331
+ const paritySummaryGroup = getParitySummaryGroup(note.noteCutInfo);
332
+ const mainCell = result.mainGrid[mainGridIndex];
333
+ let secondaryCell;
334
+ if (note.noteCutInfo.saberType === 0) {
335
+ secondaryCell = mainCell.left[secondaryGridIndex];
336
+ }
337
+ else {
338
+ secondaryCell = mainCell.right[secondaryGridIndex];
339
+ }
340
+ const laneSummaryCell = result.summaryGrids[laneSummaryGroup][mainGridIndex];
341
+ const paritySummaryCell = result.summaryGrids[paritySummaryGroup][mainGridIndex];
342
+ const score = getScore(note.noteCutInfo);
343
+ addScore(mainCell, score);
344
+ addScore(secondaryCell, score);
345
+ addScore(laneSummaryCell, score);
346
+ addScore(paritySummaryCell, score);
347
+ }
348
+ for (let i = 0; i < 12; i++) {
349
+ const mainCell = result.mainGrid[i];
350
+ applyAverageScore(mainCell);
351
+ for (let j = 0; j < 9; j++) {
352
+ applyAverageScore(mainCell.left[j]);
353
+ applyAverageScore(mainCell.right[j]);
354
+ }
355
+ }
356
+ for (let summaryGroup = 0; summaryGroup < 5; summaryGroup++) {
357
+ const summaryGrid = result.summaryGrids[summaryGroup];
358
+ for (let i = 0; i < 12; i++) {
359
+ applyAverageScore(summaryGrid[i]);
360
+ }
361
+ }
362
+ return result;
363
+ }
364
+ exports.processSliceDetails = processSliceDetails;
365
+ exports.NoteCutDirection = {
366
+ Up: 0,
367
+ Down: 1,
368
+ Left: 2,
369
+ Right: 3,
370
+ UpLeft: 4,
371
+ UpRight: 5,
372
+ DownLeft: 6,
373
+ DownRight: 7,
374
+ Any: 8,
375
+ None: 9,
376
+ };
377
+ exports.NoteLineLayer = {
378
+ Base: 0,
379
+ Upper: 1,
380
+ Top: 2,
381
+ };
382
+ exports.ColorType = {
383
+ None: -1,
384
+ ColorA: 0,
385
+ ColorB: 1,
386
+ };
387
+ function getMainGridIndex(noteLineLayer, noteLineIndex) {
388
+ switch (noteLineLayer) {
389
+ case exports.NoteLineLayer.Top:
390
+ return noteLineIndex;
391
+ case exports.NoteLineLayer.Upper:
392
+ return noteLineIndex + 4;
393
+ case exports.NoteLineLayer.Base:
394
+ return noteLineIndex + 8;
395
+ }
396
+ return -1;
397
+ }
398
+ function getSecondaryGridIndex(noteCutDirection) {
399
+ switch (noteCutDirection) {
400
+ case exports.NoteCutDirection.UpLeft:
401
+ return 0;
402
+ case exports.NoteCutDirection.Up:
403
+ return 1;
404
+ case exports.NoteCutDirection.UpRight:
405
+ return 2;
406
+ case exports.NoteCutDirection.Left:
407
+ return 3;
408
+ case exports.NoteCutDirection.Any:
409
+ return 4;
410
+ case exports.NoteCutDirection.Right:
411
+ return 5;
412
+ case exports.NoteCutDirection.DownLeft:
413
+ return 6;
414
+ case exports.NoteCutDirection.Down:
415
+ return 7;
416
+ case exports.NoteCutDirection.DownRight:
417
+ return 8;
418
+ }
419
+ return -1;
420
+ }
421
+ //endregion
422
+ //region Utils
423
+ function getParitySummaryGroup(noteCutInfo) {
424
+ const isForehand = noteCutInfo.cutNormal.x < 0;
425
+ return isForehand ? SummaryGroup.Forehands : SummaryGroup.Backhands;
426
+ }
427
+ function getLaneSummaryGroup(noteLineIndex, saberType) {
428
+ switch (saberType) {
429
+ case 0:
430
+ if (noteLineIndex >= 2)
431
+ return SummaryGroup.Crossovers;
432
+ break;
433
+ case 1:
434
+ if (noteLineIndex <= 1)
435
+ return SummaryGroup.Crossovers;
436
+ break;
437
+ }
438
+ if (noteLineIndex === 1 || noteLineIndex === 2)
439
+ return SummaryGroup.Midlanes;
440
+ return SummaryGroup.Outerlanes;
441
+ }
442
+ //endregion
443
+ const createMultiplierCounter = () => {
444
+ const MAX_MULTIPLIER = 8;
445
+ let value = 1;
446
+ let progress = 1;
447
+ const inc = () => {
448
+ if (value >= MAX_MULTIPLIER)
449
+ return MAX_MULTIPLIER;
450
+ if (progress + 1 >= value * 2) {
451
+ value *= 2;
452
+ progress = 0;
453
+ }
454
+ else {
455
+ progress++;
456
+ }
457
+ return value;
458
+ };
459
+ const dec = () => {
460
+ if (value > 1) {
461
+ value /= 2;
462
+ }
463
+ progress = 1;
464
+ return value;
465
+ };
466
+ return {
467
+ get: () => value,
468
+ inc,
469
+ dec,
470
+ };
471
+ };
472
+ const clamp = (num, min, max) => Math.min(Math.max(num, min), max);
473
+ const getNoteType = (noteId) => {
474
+ if (!Number.isFinite(noteId) || noteId >= 80000)
475
+ return null;
476
+ return Math.floor(noteId / 10000);
477
+ };
478
+ const getNoteScore = (noteData, noteCutInfo) => {
479
+ let beforeCut = 0, accuracy = 0, afterCut = 0;
480
+ if (noteData.scoringType === NoteScoringType.SliderTail) {
481
+ beforeCut = 70;
482
+ }
483
+ else if (noteData.scoringType !== NoteScoringType.BurstSliderElement) {
484
+ beforeCut = Math.round(clamp(noteCutInfo.beforeCutRating * 70, 0, 70));
485
+ }
486
+ if (noteData.scoringType === NoteScoringType.SliderHead) {
487
+ afterCut = 30;
488
+ }
489
+ else if (![
490
+ NoteScoringType.BurstSliderElement,
491
+ NoteScoringType.BurstSliderHead,
492
+ ].includes(noteData.scoringType)) {
493
+ afterCut = Math.round(clamp(noteCutInfo.afterCutRating * 30, 0, 30));
494
+ }
495
+ if (noteData.scoringType === NoteScoringType.BurstSliderElement) {
496
+ accuracy = 20;
497
+ }
498
+ else {
499
+ accuracy = Math.round(15 * (1 - clamp(noteCutInfo.cutDistanceToCenter / 0.3, 0, 1)));
500
+ }
501
+ return beforeCut + accuracy + afterCut;
502
+ };
503
+ function processUnderswings(replay) {
504
+ if (!replay)
505
+ return null;
506
+ if (!replay?.notes?.length)
507
+ return {
508
+ count: 0,
509
+ acc: 0,
510
+ fcAcc: 0,
511
+ noUnderswingsAcc: 0,
512
+ noUnderswingsFcAcc: 0,
513
+ score: 0,
514
+ fcScore: 0,
515
+ noUnderswingsScore: 0,
516
+ noUnderswingsFcScore: 0,
517
+ maxCutScore: 0,
518
+ maxSongScore: 0,
519
+ };
520
+ const multiplier = createMultiplierCounter();
521
+ const fcMultiplier = createMultiplierCounter();
522
+ const result = [...replay.notes, ...(replay.walls ?? [])]
523
+ .map((e, idx) => ({ ...e, idx, eventTime: e?.eventTime ?? e?.time }))
524
+ .sort((a, b) => a.eventTime === b.eventTime ? a.idx - b.idx : a.eventTime - b.eventTime)
525
+ .reduce((acc, event) => {
526
+ if (!Number.isFinite(event?.eventType) ||
527
+ bsorDecoder_1.NoteEventType.bomb === event.eventType) {
528
+ acc.multiplier.dec();
529
+ return acc;
530
+ }
531
+ const noteData = decodeNoteData(event.noteID);
532
+ if (noteData < NoteScoringType.Normal)
533
+ return acc;
534
+ const maxNoteScore = getNoteScore(noteData, {
535
+ cutDistanceToCenter: 0,
536
+ beforeCutRating: 1,
537
+ afterCutRating: 1,
538
+ });
539
+ switch (event.eventType) {
540
+ case bsorDecoder_1.NoteEventType.good:
541
+ const realScore = getNoteScore(noteData, event.noteCutInfo);
542
+ const fullSwing = getNoteScore(noteData, {
543
+ cutDistanceToCenter: event.noteCutInfo.cutDistanceToCenter,
544
+ beforeCutRating: 1,
545
+ afterCutRating: 1,
546
+ });
547
+ acc.count++;
548
+ acc.score += realScore * multiplier.get();
549
+ acc.noUnderswingsScore += fullSwing * multiplier.get();
550
+ acc.fcScore += realScore * fcMultiplier.get();
551
+ acc.noUnderswingsFcScore += fullSwing * fcMultiplier.get();
552
+ acc.maxCutScore += maxNoteScore * fcMultiplier.get();
553
+ acc.multiplier.inc();
554
+ break;
555
+ case bsorDecoder_1.NoteEventType.bad:
556
+ case bsorDecoder_1.NoteEventType.miss:
557
+ acc.multiplier.dec();
558
+ break;
559
+ }
560
+ acc.maxSongScore += maxNoteScore * fcMultiplier.get();
561
+ acc.fcMultiplier.inc();
562
+ return acc;
563
+ }, {
564
+ count: 0,
565
+ maxCutScore: 0,
566
+ maxSongScore: 0,
567
+ score: 0,
568
+ fcScore: 0,
569
+ noUnderswingsScore: 0,
570
+ noUnderswingsFcScore: 0,
571
+ multiplier,
572
+ fcMultiplier,
573
+ });
574
+ const { multiplier: foo, fcMultiplier: bar, ...rest } = result;
575
+ return {
576
+ ...rest,
577
+ maxCutScore: result.maxCutScore,
578
+ maxSongScore: result.maxSongScore,
579
+ acc: result.maxSongScore ? (result.score / result.maxSongScore) * 100 : 0,
580
+ fcAcc: result.maxCutScore ? (result.fcScore / result.maxCutScore) * 100 : 0,
581
+ noUnderswingsAcc: result.maxSongScore
582
+ ? (result.noUnderswingsScore / result.maxSongScore) * 100
583
+ : 0,
584
+ noUnderswingsFcAcc: result.maxCutScore
585
+ ? (result.noUnderswingsFcScore / result.maxCutScore) * 100
586
+ : 0,
587
+ };
588
+ }
589
+ exports.processUnderswings = processUnderswings;
590
+ //# sourceMappingURL=bsorReplayAcc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bsorReplayAcc.js","sourceRoot":"","sources":["../../../../src/img-render/utils/bl/bsorReplayAcc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { BeatLeaderUser } from '../../../api/interfaces/beatleader';
2
+ declare const getPart: (playerInfo: BeatLeaderUser) => {
3
+ techPpPart: number;
4
+ accPpPart: number;
5
+ passPpPart: number;
6
+ };
7
+ export default getPart;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const DEFAULT_MAX_TECH_PP = 1300;
4
+ const DEFAULT_MAX_ACC_PP = 15000;
5
+ const DEFAULT_MAX_PASS_PP = 6000;
6
+ const getPart = (playerInfo) => {
7
+ const techPp = playerInfo.techPp;
8
+ const accPp = playerInfo.accPp;
9
+ const passPp = playerInfo.passPp;
10
+ const techScale = techPp > DEFAULT_MAX_TECH_PP ? techPp / DEFAULT_MAX_TECH_PP : 1;
11
+ const accScale = accPp > DEFAULT_MAX_ACC_PP ? accPp / DEFAULT_MAX_ACC_PP : 1;
12
+ const passScale = passPp > DEFAULT_MAX_PASS_PP ? passPp / DEFAULT_MAX_PASS_PP : 1;
13
+ const triangleScale = Math.max(techScale, Math.max(accScale, passScale));
14
+ const maxTechPp = DEFAULT_MAX_TECH_PP * triangleScale;
15
+ const maxAccPp = DEFAULT_MAX_ACC_PP * triangleScale;
16
+ const maxPassPp = DEFAULT_MAX_PASS_PP * triangleScale;
17
+ const totalNormalizedPp = techPp * (maxAccPp / maxTechPp) + accPp + passPp * (maxAccPp / maxPassPp);
18
+ const normalizedTechPp = techPp / maxTechPp;
19
+ const normalizedAccPp = accPp / maxAccPp;
20
+ const normalizedPassPp = passPp / maxPassPp;
21
+ const techPpPart = (techPp * (maxAccPp / maxTechPp)) / totalNormalizedPp;
22
+ const accPpPart = accPp / totalNormalizedPp;
23
+ const passPpPart = (passPp * (maxAccPp / maxPassPp)) / totalNormalizedPp;
24
+ return {
25
+ techPpPart,
26
+ accPpPart,
27
+ passPpPart,
28
+ };
29
+ };
30
+ exports.default = getPart;
31
+ //# sourceMappingURL=getPart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPart.js","sourceRoot":"","sources":["../../../../src/img-render/utils/bl/getPart.ts"],"names":[],"mappings":";;AAEA,MAAM,mBAAmB,GAAG,IAAI,CAAA;AAChC,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAChC,MAAM,mBAAmB,GAAG,IAAI,CAAA;AAEhC,MAAM,OAAO,GAAG,CAAC,UAA0B,EAAE,EAAE;IAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IAChC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IAChC,MAAM,SAAS,GACb,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,MAAM,QAAQ,GAAG,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5E,MAAM,SAAS,GACb,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAA;IAExE,MAAM,SAAS,GAAG,mBAAmB,GAAG,aAAa,CAAA;IACrD,MAAM,QAAQ,GAAG,kBAAkB,GAAG,aAAa,CAAA;IACnD,MAAM,SAAS,GAAG,mBAAmB,GAAG,aAAa,CAAA;IAErD,MAAM,iBAAiB,GACrB,MAAM,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA;IAC3E,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAA;IAC3C,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,CAAA;IACxC,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAA;IAE3C,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,GAAG,iBAAiB,CAAA;IACxE,MAAM,SAAS,GAAG,KAAK,GAAG,iBAAiB,CAAA;IAC3C,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,GAAG,iBAAiB,CAAA;IAExE,OAAO;QACL,UAAU;QACV,SAAS;QACT,UAAU;KACX,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,OAAO,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const getStatistic: (data: any, scoreId: number, statistic: any) => any;
2
+ export default getStatistic;