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

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 (353) 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/blRequset.d.ts +12 -0
  5. package/lib/api/base/blRequset.js +68 -0
  6. package/lib/api/base/blRequset.js.map +1 -0
  7. package/lib/api/base/bsRequest.d.ts +24 -0
  8. package/lib/api/base/bsRequest.js +64 -0
  9. package/lib/api/base/bsRequest.js.map +1 -0
  10. package/lib/api/base/index.d.ts +12 -0
  11. package/lib/api/base/index.js +21 -0
  12. package/lib/api/base/index.js.map +1 -0
  13. package/lib/api/base/scRequest.d.ts +6 -0
  14. package/lib/api/base/scRequest.js +28 -0
  15. package/lib/api/base/scRequest.js.map +1 -0
  16. package/lib/api/composed/aiosaber.d.ts +7 -0
  17. package/lib/api/composed/aiosaber.js +16 -0
  18. package/lib/api/composed/aiosaber.js.map +1 -0
  19. package/lib/api/composed/beatleader.d.ts +27 -0
  20. package/lib/api/composed/beatleader.js +91 -0
  21. package/lib/api/composed/beatleader.js.map +1 -0
  22. package/lib/api/composed/beatsaver.d.ts +12 -0
  23. package/lib/api/composed/beatsaver.js +18 -0
  24. package/lib/api/composed/beatsaver.js.map +1 -0
  25. package/lib/api/composed/scoresaber.d.ts +14 -0
  26. package/lib/api/composed/scoresaber.js +67 -0
  27. package/lib/api/composed/scoresaber.js.map +1 -0
  28. package/lib/api/index.d.ts +31 -0
  29. package/lib/api/index.js +134 -0
  30. package/lib/api/index.js.map +1 -0
  31. package/lib/api/interfaces/aiosaber/index.d.ts +7 -0
  32. package/lib/api/interfaces/aiosaber/index.js +3 -0
  33. package/lib/api/interfaces/aiosaber/index.js.map +1 -0
  34. package/lib/api/interfaces/beatleader/bsor.d.ts +112 -0
  35. package/lib/api/interfaces/beatleader/bsor.js +3 -0
  36. package/lib/api/interfaces/beatleader/bsor.js.map +1 -0
  37. package/lib/api/interfaces/beatleader/index.d.ts +5 -0
  38. package/lib/api/interfaces/beatleader/index.js +22 -0
  39. package/lib/api/interfaces/beatleader/index.js.map +1 -0
  40. package/lib/api/interfaces/beatleader/req.d.ts +19 -0
  41. package/lib/api/interfaces/beatleader/req.js +3 -0
  42. package/lib/api/interfaces/beatleader/req.js.map +1 -0
  43. package/lib/api/interfaces/beatleader/score.d.ts +162 -0
  44. package/lib/api/interfaces/beatleader/score.js +3 -0
  45. package/lib/api/interfaces/beatleader/score.js.map +1 -0
  46. package/lib/api/interfaces/beatleader/user.d.ts +171 -0
  47. package/lib/api/interfaces/beatleader/user.js +3 -0
  48. package/lib/api/interfaces/beatleader/user.js.map +1 -0
  49. package/lib/api/interfaces/beatleader/ws.d.ts +87 -0
  50. package/lib/api/interfaces/beatleader/ws.js +3 -0
  51. package/lib/api/interfaces/beatleader/ws.js.map +1 -0
  52. package/lib/api/interfaces/beatsaver/alert.d.ts +18 -0
  53. package/lib/api/interfaces/beatsaver/alert.js +3 -0
  54. package/lib/api/interfaces/beatsaver/alert.js.map +1 -0
  55. package/lib/api/interfaces/beatsaver/bsmap.d.ts +66 -0
  56. package/lib/api/interfaces/beatsaver/bsmap.js +3 -0
  57. package/lib/api/interfaces/beatsaver/bsmap.js.map +1 -0
  58. package/lib/api/interfaces/beatsaver/index.d.ts +10 -0
  59. package/lib/api/interfaces/beatsaver/index.js +22 -0
  60. package/lib/api/interfaces/beatsaver/index.js.map +1 -0
  61. package/lib/api/interfaces/beatsaver/resp.d.ts +8 -0
  62. package/lib/api/interfaces/beatsaver/resp.js +3 -0
  63. package/lib/api/interfaces/beatsaver/resp.js.map +1 -0
  64. package/lib/api/interfaces/beatsaver/user.d.ts +8 -0
  65. package/lib/api/interfaces/beatsaver/user.js +3 -0
  66. package/lib/api/interfaces/beatsaver/user.js.map +1 -0
  67. package/lib/api/interfaces/beatsaver/ws.d.ts +5 -0
  68. package/lib/api/interfaces/beatsaver/ws.js +3 -0
  69. package/lib/api/interfaces/beatsaver/ws.js.map +1 -0
  70. package/lib/api/interfaces/scoresaber/index.d.ts +3 -0
  71. package/lib/api/interfaces/scoresaber/index.js +20 -0
  72. package/lib/api/interfaces/scoresaber/index.js.map +1 -0
  73. package/lib/api/interfaces/scoresaber/item.d.ts +57 -0
  74. package/lib/api/interfaces/scoresaber/item.js +3 -0
  75. package/lib/api/interfaces/scoresaber/item.js.map +1 -0
  76. package/lib/api/interfaces/scoresaber/resp.d.ts +9 -0
  77. package/lib/api/interfaces/scoresaber/resp.js +3 -0
  78. package/lib/api/interfaces/scoresaber/resp.js.map +1 -0
  79. package/lib/api/interfaces/scoresaber/user.d.ts +33 -0
  80. package/lib/api/interfaces/scoresaber/user.js +3 -0
  81. package/lib/api/interfaces/scoresaber/user.js.map +1 -0
  82. package/lib/api/interfaces/scoresaber/ws.d.ts +78 -0
  83. package/lib/api/interfaces/scoresaber/ws.js +3 -0
  84. package/lib/api/interfaces/scoresaber/ws.js.map +1 -0
  85. package/lib/api/netResult.d.ts +18 -0
  86. package/lib/api/netResult.js +42 -0
  87. package/lib/api/netResult.js.map +1 -0
  88. package/lib/api/sortScore.d.ts +2 -0
  89. package/lib/api/sortScore.js +31 -0
  90. package/lib/api/sortScore.js.map +1 -0
  91. package/lib/cmd/bind/bind-beatleader.d.ts +2 -0
  92. package/lib/cmd/bind/bind-beatleader.js +53 -0
  93. package/lib/cmd/bind/bind-beatleader.js.map +1 -0
  94. package/lib/cmd/bind/bind-beatsaver.d.ts +2 -0
  95. package/lib/cmd/bind/bind-beatsaver.js +55 -0
  96. package/lib/cmd/bind/bind-beatsaver.js.map +1 -0
  97. package/lib/cmd/bind/bind-id-beatleader.d.ts +2 -0
  98. package/lib/cmd/bind/bind-id-beatleader.js +55 -0
  99. package/lib/cmd/bind/bind-id-beatleader.js.map +1 -0
  100. package/lib/cmd/bind/bind-id-beatsaver.d.ts +2 -0
  101. package/lib/cmd/bind/bind-id-beatsaver.js +55 -0
  102. package/lib/cmd/bind/bind-id-beatsaver.js.map +1 -0
  103. package/lib/cmd/bind/bind-scoresaber.d.ts +2 -0
  104. package/lib/cmd/bind/bind-scoresaber.js +61 -0
  105. package/lib/cmd/bind/bind-scoresaber.js.map +1 -0
  106. package/lib/cmd/bind/index.d.ts +11 -0
  107. package/lib/cmd/bind/index.js +52 -0
  108. package/lib/cmd/bind/index.js.map +1 -0
  109. package/lib/cmd/bsmap/id-search.d.ts +9 -0
  110. package/lib/cmd/bsmap/id-search.js +35 -0
  111. package/lib/cmd/bsmap/id-search.js.map +1 -0
  112. package/lib/cmd/bsmap/key-search.d.ts +9 -0
  113. package/lib/cmd/bsmap/key-search.js +41 -0
  114. package/lib/cmd/bsmap/key-search.js.map +1 -0
  115. package/lib/cmd/bsmap/latest.d.ts +9 -0
  116. package/lib/cmd/bsmap/latest.js +36 -0
  117. package/lib/cmd/bsmap/latest.js.map +1 -0
  118. package/lib/cmd/builder.d.ts +27 -0
  119. package/lib/cmd/builder.js +41 -0
  120. package/lib/cmd/builder.js.map +1 -0
  121. package/lib/cmd/deprecated/cmp.d.ts +9 -0
  122. package/lib/cmd/deprecated/cmp.js +15 -0
  123. package/lib/cmd/deprecated/cmp.js.map +1 -0
  124. package/lib/cmd/deprecated/me.d.ts +13 -0
  125. package/lib/cmd/deprecated/me.js +66 -0
  126. package/lib/cmd/deprecated/me.js.map +1 -0
  127. package/lib/cmd/deprecated/tmp.d.ts +9 -0
  128. package/lib/cmd/deprecated/tmp.js +21 -0
  129. package/lib/cmd/deprecated/tmp.js.map +1 -0
  130. package/lib/cmd/deprecated/whois.d.ts +11 -0
  131. package/lib/cmd/deprecated/whois.js +40 -0
  132. package/lib/cmd/deprecated/whois.js.map +1 -0
  133. package/lib/cmd/help.d.ts +9 -0
  134. package/lib/cmd/help.js +14 -0
  135. package/lib/cmd/help.js.map +1 -0
  136. package/lib/cmd/index.d.ts +2 -0
  137. package/lib/cmd/index.js +23 -0
  138. package/lib/cmd/index.js.map +1 -0
  139. package/lib/cmd/rank.d.ts +11 -0
  140. package/lib/cmd/rank.js +53 -0
  141. package/lib/cmd/rank.js.map +1 -0
  142. package/lib/cmd/score.d.ts +13 -0
  143. package/lib/cmd/score.js +43 -0
  144. package/lib/cmd/score.js.map +1 -0
  145. package/lib/cmd/subscribe/beatleader.d.ts +2 -0
  146. package/lib/cmd/subscribe/beatleader.js +27 -0
  147. package/lib/cmd/subscribe/beatleader.js.map +1 -0
  148. package/lib/cmd/subscribe/beatsaver.d.ts +2 -0
  149. package/lib/cmd/subscribe/beatsaver.js +27 -0
  150. package/lib/cmd/subscribe/beatsaver.js.map +1 -0
  151. package/lib/cmd/subscribe/deprecated/alert.d.ts +0 -0
  152. package/lib/cmd/subscribe/deprecated/alert.js +86 -0
  153. package/lib/cmd/subscribe/deprecated/alert.js.map +1 -0
  154. package/lib/cmd/subscribe/deprecated/blfilters.d.ts +0 -0
  155. package/lib/cmd/subscribe/deprecated/blfilters.js +49 -0
  156. package/lib/cmd/subscribe/deprecated/blfilters.js.map +1 -0
  157. package/lib/cmd/subscribe/deprecated/scoresaber.d.ts +0 -0
  158. package/lib/cmd/subscribe/deprecated/scoresaber.js +43 -0
  159. package/lib/cmd/subscribe/deprecated/scoresaber.js.map +1 -0
  160. package/lib/cmd/subscribe/index.d.ts +11 -0
  161. package/lib/cmd/subscribe/index.js +45 -0
  162. package/lib/cmd/subscribe/index.js.map +1 -0
  163. package/lib/cmd/subscribe/subjoin.d.ts +11 -0
  164. package/lib/cmd/subscribe/subjoin.js +42 -0
  165. package/lib/cmd/subscribe/subjoin.js.map +1 -0
  166. package/lib/cmd/subscribe/subleave.d.ts +11 -0
  167. package/lib/cmd/subscribe/subleave.js +35 -0
  168. package/lib/cmd/subscribe/subleave.js.map +1 -0
  169. package/lib/cmd/subscribe/unsubscribe.d.ts +11 -0
  170. package/lib/cmd/subscribe/unsubscribe.js +41 -0
  171. package/lib/cmd/subscribe/unsubscribe.js.map +1 -0
  172. package/lib/config.d.ts +23 -0
  173. package/lib/config.js +3 -0
  174. package/lib/config.js.map +1 -0
  175. package/lib/db/index.d.ts +34 -0
  176. package/lib/db/index.js +3 -0
  177. package/lib/db/index.js.map +1 -0
  178. package/lib/errors/index.d.ts +53 -0
  179. package/lib/errors/index.js +113 -0
  180. package/lib/errors/index.js.map +1 -0
  181. package/lib/i18n/index.d.ts +2 -0
  182. package/lib/i18n/index.js +112 -0
  183. package/lib/i18n/index.js.map +1 -0
  184. package/lib/i18n/zh-cn.json +1 -0
  185. package/lib/img-render/components/base/avatar.d.ts +0 -0
  186. package/lib/img-render/components/base/avatar.js +1 -0
  187. package/lib/img-render/components/base/avatar.js.map +1 -0
  188. package/lib/img-render/components/blScoreItem.d.ts +6 -0
  189. package/lib/img-render/components/blScoreItem.js +14 -0
  190. package/lib/img-render/components/blScoreItem.js.map +1 -0
  191. package/lib/img-render/components/characteristic.d.ts +5 -0
  192. package/lib/img-render/components/characteristic.js +27 -0
  193. package/lib/img-render/components/characteristic.js.map +1 -0
  194. package/lib/img-render/components/flag.d.ts +5 -0
  195. package/lib/img-render/components/flag.js +39 -0
  196. package/lib/img-render/components/flag.js.map +1 -0
  197. package/lib/img-render/components/icons/BeatLeader.d.ts +3 -0
  198. package/lib/img-render/components/icons/BeatLeader.js +10 -0
  199. package/lib/img-render/components/icons/BeatLeader.js.map +1 -0
  200. package/lib/img-render/components/icons/RankIcon.d.ts +4 -0
  201. package/lib/img-render/components/icons/RankIcon.js +14 -0
  202. package/lib/img-render/components/icons/RankIcon.js.map +1 -0
  203. package/lib/img-render/components/icons/ScoreSaberIcon.d.ts +3 -0
  204. package/lib/img-render/components/icons/ScoreSaberIcon.js +8 -0
  205. package/lib/img-render/components/icons/ScoreSaberIcon.js.map +1 -0
  206. package/lib/img-render/components/progressbar.d.ts +4 -0
  207. package/lib/img-render/components/progressbar.js +9 -0
  208. package/lib/img-render/components/progressbar.js.map +1 -0
  209. package/lib/img-render/components/scoreItem.d.ts +4 -0
  210. package/lib/img-render/components/scoreItem.js +29 -0
  211. package/lib/img-render/components/scoreItem.js.map +1 -0
  212. package/lib/img-render/components/scoregraph.d.ts +8 -0
  213. package/lib/img-render/components/scoregraph.js +300 -0
  214. package/lib/img-render/components/scoregraph.js.map +1 -0
  215. package/lib/img-render/components/skill-graph.d.ts +5 -0
  216. package/lib/img-render/components/skill-graph.js +50 -0
  217. package/lib/img-render/components/skill-graph.js.map +1 -0
  218. package/lib/img-render/components/socre-badge.d.ts +5 -0
  219. package/lib/img-render/components/socre-badge.js +10 -0
  220. package/lib/img-render/components/socre-badge.js.map +1 -0
  221. package/lib/img-render/components/ssScoreItem.d.ts +4 -0
  222. package/lib/img-render/components/ssScoreItem.js +14 -0
  223. package/lib/img-render/components/ssScoreItem.js.map +1 -0
  224. package/lib/img-render/index.d.ts +22 -0
  225. package/lib/img-render/index.js +130 -0
  226. package/lib/img-render/index.js.map +1 -0
  227. package/lib/img-render/interfaces.d.ts +17 -0
  228. package/lib/img-render/interfaces.js +3 -0
  229. package/lib/img-render/interfaces.js.map +1 -0
  230. package/lib/img-render/remote/index.d.ts +0 -0
  231. package/lib/img-render/remote/index.js +56 -0
  232. package/lib/img-render/remote/index.js.map +1 -0
  233. package/lib/img-render/render.d.ts +7 -0
  234. package/lib/img-render/render.js +40 -0
  235. package/lib/img-render/render.js.map +1 -0
  236. package/lib/img-render/renderImg.d.ts +0 -0
  237. package/lib/img-render/renderImg.js +1 -0
  238. package/lib/img-render/renderImg.js.map +1 -0
  239. package/lib/img-render/result/bl-player.d.ts +7 -0
  240. package/lib/img-render/result/bl-player.js +44 -0
  241. package/lib/img-render/result/bl-player.js.map +1 -0
  242. package/lib/img-render/result/bl-score.d.ts +11 -0
  243. package/lib/img-render/result/bl-score.js +18 -0
  244. package/lib/img-render/result/bl-score.js.map +1 -0
  245. package/lib/img-render/result/bs-map.d.ts +8 -0
  246. package/lib/img-render/result/bs-map.js +26 -0
  247. package/lib/img-render/result/bs-map.js.map +1 -0
  248. package/lib/img-render/result/index.d.ts +7 -0
  249. package/lib/img-render/result/index.js +28 -0
  250. package/lib/img-render/result/index.js.map +1 -0
  251. package/lib/img-render/result/ss-player.d.ts +8 -0
  252. package/lib/img-render/result/ss-player.js +39 -0
  253. package/lib/img-render/result/ss-player.js.map +1 -0
  254. package/lib/img-render/utils/bl/beatleader.d.ts +13 -0
  255. package/lib/img-render/utils/bl/beatleader.js +38 -0
  256. package/lib/img-render/utils/bl/beatleader.js.map +1 -0
  257. package/lib/img-render/utils/bl/blheadset.d.ts +273 -0
  258. package/lib/img-render/utils/bl/blheadset.js +281 -0
  259. package/lib/img-render/utils/bl/blheadset.js.map +1 -0
  260. package/lib/img-render/utils/bl/bsorDecoder.d.ts +68 -0
  261. package/lib/img-render/utils/bl/bsorDecoder.js +286 -0
  262. package/lib/img-render/utils/bl/bsorDecoder.js.map +1 -0
  263. package/lib/img-render/utils/bl/bsorReplayAcc.d.ts +35 -0
  264. package/lib/img-render/utils/bl/bsorReplayAcc.js +590 -0
  265. package/lib/img-render/utils/bl/bsorReplayAcc.js.map +1 -0
  266. package/lib/img-render/utils/bl/getPart.d.ts +7 -0
  267. package/lib/img-render/utils/bl/getPart.js +31 -0
  268. package/lib/img-render/utils/bl/getPart.js.map +1 -0
  269. package/lib/img-render/utils/bl/stastic.d.ts +2 -0
  270. package/lib/img-render/utils/bl/stastic.js +53 -0
  271. package/lib/img-render/utils/bl/stastic.js.map +1 -0
  272. package/lib/img-render/utils/canvas.d.ts +5 -0
  273. package/lib/img-render/utils/canvas.js +70 -0
  274. package/lib/img-render/utils/canvas.js.map +1 -0
  275. package/lib/img-render/utils/format.d.ts +3 -0
  276. package/lib/img-render/utils/format.js +42 -0
  277. package/lib/img-render/utils/format.js.map +1 -0
  278. package/lib/img-render/utils/getMods.d.ts +2 -0
  279. package/lib/img-render/utils/getMods.js +22 -0
  280. package/lib/img-render/utils/getMods.js.map +1 -0
  281. package/lib/img-render/utils/index.d.ts +3 -0
  282. package/lib/img-render/utils/index.js +36 -0
  283. package/lib/img-render/utils/index.js.map +1 -0
  284. package/lib/img-render/utils/qrcode.d.ts +1 -0
  285. package/lib/img-render/utils/qrcode.js +43 -0
  286. package/lib/img-render/utils/qrcode.js.map +1 -0
  287. package/lib/img-render/utils/sleep.d.ts +1 -0
  288. package/lib/img-render/utils/sleep.js +10 -0
  289. package/lib/img-render/utils/sleep.js.map +1 -0
  290. package/lib/img-render/utils/tag-format.d.ts +1 -0
  291. package/lib/img-render/utils/tag-format.js +225 -0
  292. package/lib/img-render/utils/tag-format.js.map +1 -0
  293. package/lib/img-render/utils/tw-join.d.ts +4 -0
  294. package/lib/img-render/utils/tw-join.js +36 -0
  295. package/lib/img-render/utils/tw-join.js.map +1 -0
  296. package/lib/index.d.ts +8 -0
  297. package/lib/index.js +25 -0
  298. package/lib/index.js.map +1 -0
  299. package/lib/interface/bot.d.ts +20 -0
  300. package/lib/interface/bot.js +3 -0
  301. package/lib/interface/bot.js.map +1 -0
  302. package/lib/interface/cmd.d.ts +36 -0
  303. package/lib/interface/cmd.js +3 -0
  304. package/lib/interface/cmd.js.map +1 -0
  305. package/lib/interface/db.d.ts +34 -0
  306. package/lib/interface/db.js +3 -0
  307. package/lib/interface/db.js.map +1 -0
  308. package/lib/interface/index.d.ts +15 -0
  309. package/lib/interface/index.js +35 -0
  310. package/lib/interface/index.js.map +1 -0
  311. package/lib/interface/logger.d.ts +6 -0
  312. package/lib/interface/logger.js +3 -0
  313. package/lib/interface/logger.js.map +1 -0
  314. package/lib/interface/render.d.ts +21 -0
  315. package/lib/interface/render.js +3 -0
  316. package/lib/interface/render.js.map +1 -0
  317. package/lib/interface/tables.d.ts +0 -0
  318. package/lib/interface/tables.js +1 -0
  319. package/lib/interface/tables.js.map +1 -0
  320. package/lib/schedules/BeatSaverAlertMonitor.d.ts +0 -0
  321. package/lib/schedules/BeatSaverAlertMonitor.js +231 -0
  322. package/lib/schedules/BeatSaverAlertMonitor.js.map +1 -0
  323. package/lib/schedules/index.d.ts +2 -0
  324. package/lib/schedules/index.js +19 -0
  325. package/lib/schedules/index.js.map +1 -0
  326. package/lib/schedules/oauthTokenRefreshTask.d.ts +5 -0
  327. package/lib/schedules/oauthTokenRefreshTask.js +53 -0
  328. package/lib/schedules/oauthTokenRefreshTask.js.map +1 -0
  329. package/lib/schedules/temp.d.ts +1 -0
  330. package/lib/schedules/temp.js +28 -0
  331. package/lib/schedules/temp.js.map +1 -0
  332. package/lib/utils.d.ts +2 -0
  333. package/lib/utils.js +25 -0
  334. package/lib/utils.js.map +1 -0
  335. package/lib/ws/beatleader.d.ts +18 -0
  336. package/lib/ws/beatleader.js +56 -0
  337. package/lib/ws/beatleader.js.map +1 -0
  338. package/lib/ws/beatsaver.d.ts +18 -0
  339. package/lib/ws/beatsaver.js +56 -0
  340. package/lib/ws/beatsaver.js.map +1 -0
  341. package/lib/ws/bl-filter.d.ts +0 -0
  342. package/lib/ws/bl-filter.js +64 -0
  343. package/lib/ws/bl-filter.js.map +1 -0
  344. package/lib/ws/handler.d.ts +6 -0
  345. package/lib/ws/handler.js +3 -0
  346. package/lib/ws/handler.js.map +1 -0
  347. package/lib/ws/index.d.ts +4 -0
  348. package/lib/ws/index.js +21 -0
  349. package/lib/ws/index.js.map +1 -0
  350. package/lib/ws/scoresaber.d.ts +18 -0
  351. package/lib/ws/scoresaber.js +37 -0
  352. package/lib/ws/scoresaber.js.map +1 -0
  353. package/package.json +1 -1
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ function ScoreSaberIcon(props) {
5
+ return ((0, jsx_runtime_1.jsxs)("svg", { id: "ScoreSaber", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 50 50", ...props, children: [(0, jsx_runtime_1.jsx)("defs", {}), (0, jsx_runtime_1.jsxs)("g", { id: "Border", children: [(0, jsx_runtime_1.jsx)("rect", { id: "Bottom", className: "cls-1 fill-[#221f1c]", x: "9", y: "40", width: "32", height: "10" }), (0, jsx_runtime_1.jsx)("rect", { id: "Top", className: "cls-1 fill-[#221f1c]", x: "9", width: "32", height: "10" }), (0, jsx_runtime_1.jsx)("rect", { id: "Top_Left", "data-name": "Top Left", className: "cls-1 fill-[#221f1c]", x: "4", y: "4", width: "10", height: "10" }), (0, jsx_runtime_1.jsx)("rect", { id: "Top_Right", "data-name": "Top Right", className: "cls-1 fill-[#221f1c]", x: "36", y: "4", width: "10", height: "10" }), (0, jsx_runtime_1.jsx)("rect", { id: "Right", className: "cls-1 fill-[#221f1c]", x: "40", y: "9", width: "10", height: "32" }), (0, jsx_runtime_1.jsx)("rect", { id: "Left", className: "cls-1 fill-[#221f1c]", y: "9", width: "10", height: "32" }), (0, jsx_runtime_1.jsx)("rect", { id: "Bottom_Right", "data-name": "Bottom Right", className: "cls-1 fill-[#221f1c]", x: "38", y: "38", width: "8", height: "8" }), (0, jsx_runtime_1.jsx)("rect", { id: "Bottom_left", "data-name": "Bottom left", className: "cls-1 fill-[#221f1c]", x: "4", y: "36", width: "10", height: "10" })] }), (0, jsx_runtime_1.jsxs)("g", { id: "Base_Colour", "data-name": "Base Colour", children: [(0, jsx_runtime_1.jsx)("rect", { id: "Right-2", "data-name": "Right", className: "cls-2 fill-[#feec3e]", x: "25", y: "9", width: "21", height: "32" }), (0, jsx_runtime_1.jsx)("rect", { id: "Top-2", "data-name": "Top", className: "cls-2 fill-[#feec3e]", x: "9", y: "4", width: "32", height: "21" }), (0, jsx_runtime_1.jsx)("rect", { id: "Left-2", "data-name": "Left", className: "cls-3 fill-[#eabd01]", x: "4", y: "9", width: "21", height: "32" }), (0, jsx_runtime_1.jsx)("rect", { id: "Bottom-2", "data-name": "Bottom", className: "cls-3 fill-[#eabd01]", x: "9", y: "25", width: "32", height: "21" }), (0, jsx_runtime_1.jsx)("rect", { id: "Middle", className: "cls-4 fill-[#ffde18]", x: "9", y: "9", width: "32", height: "32" })] }), (0, jsx_runtime_1.jsxs)("g", { style: { opacity: 0 }, id: "Aww_Man", "data-name": "Aww Man", children: [(0, jsx_runtime_1.jsx)("rect", { id: "Aww_Man-2", "data-name": "Aww Man", className: "cls-3 fill-[#eabd01]", x: "21", y: "25", width: "8", height: "8" }), (0, jsx_runtime_1.jsx)("rect", { id: "Aww_Man-3", "data-name": "Aww Man", className: "cls-3 fill-[#eabd01]", x: "13", y: "13", width: "8", height: "8" }), (0, jsx_runtime_1.jsx)("rect", { id: "Aww_Man-4", "data-name": "Aww Man", className: "cls-3 fill-[#eabd01]", x: "29", y: "13", width: "8", height: "8" }), (0, jsx_runtime_1.jsx)("rect", { id: "Aww_Man-5", "data-name": "Aww Man", className: "cls-3 fill-[#eabd01]", x: "21", y: "21", width: "8", height: "4" }), (0, jsx_runtime_1.jsx)("rect", { id: "Aww_Man-6", "data-name": "Aww Man", className: "cls-3 fill-[#eabd01]", x: "17", y: "25", width: "4", height: "12" }), (0, jsx_runtime_1.jsx)("rect", { id: "Aww_Man-7", "data-name": "Aww Man", className: "cls-3 fill-[#eabd01]", x: "29", y: "25", width: "4", height: "12" })] }), (0, jsx_runtime_1.jsxs)("g", { id: "Arrow", children: [(0, jsx_runtime_1.jsx)("rect", { id: "Top-3", "data-name": "Top", className: "cls-5 fill-white", x: "18", y: "14", width: "14", height: "3" }), (0, jsx_runtime_1.jsx)("rect", { id: "Bottom-3", "data-name": "Bottom", className: "cls-5 fill-white", x: "22", y: "23", width: "6", height: "3" }), (0, jsx_runtime_1.jsx)("rect", { id: "Lower_Right", "data-name": "Lower Right", className: "cls-5 fill-white", x: "28", y: "20", width: "4", height: "3" }), (0, jsx_runtime_1.jsx)("rect", { id: "Lower_left", "data-name": "Lower left", className: "cls-5 fill-white", x: "18", y: "20", width: "4", height: "3" }), (0, jsx_runtime_1.jsx)("rect", { id: "Right-3", "data-name": "Right", className: "cls-5 fill-white", x: "32", y: "17", width: "4", height: "3" }), (0, jsx_runtime_1.jsx)("rect", { id: "Left-3", "data-name": "Left", className: "cls-5 fill-white", x: "14", y: "17", width: "4", height: "3" })] })] }));
6
+ }
7
+ exports.default = ScoreSaberIcon;
8
+ //# sourceMappingURL=ScoreSaberIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoreSaberIcon.js","sourceRoot":"","sources":["../../../../src/img-render/components/icons/ScoreSaberIcon.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** @jsxImportSource react */
2
+ export default function Progressbar({ value }: {
3
+ value: number;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ /** @jsxImportSource react */
5
+ function Progressbar({ value }) {
6
+ return ((0, jsx_runtime_1.jsx)("progress", { className: "[&::-webkit-progress-bar]:rounded-lg h-2 [&::-webkit-progress-bar]:h-2\n [&::-webkit-progress-value]:from-blue-300\n [&::-webkit-progress-value]:to-red-300 [&::-webkit-progress-value]:rounded-lg\n [&::-webkit-progress-value]:bg-gradient-to-r [&::-webkit-progress-bar]:bg-gray-100", max: "100", value: value }));
7
+ }
8
+ exports.default = Progressbar;
9
+ //# sourceMappingURL=progressbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progressbar.js","sourceRoot":"","sources":["../../../src/img-render/components/progressbar.tsx"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,SAAwB,WAAW,CAAC,EAAE,KAAK,EAAqB;IAC9D,OAAO,CACL,qCACE,SAAS,EAAC,+SAG6E,EACvF,GAAG,EAAC,KAAK,EACT,KAAK,EAAE,KAAK,GACZ,CACH,CAAA;AACH,CAAC;AAXD,8BAWC"}
@@ -0,0 +1,4 @@
1
+ import { ScoreSaberItem } from '../../api/interfaces/scoresaber';
2
+ export default function ScoreItem({ scoreItem, }: {
3
+ scoreItem: ScoreSaberItem;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ /** @jsxImportSource react */
5
+ const lucide_react_1 = require("lucide-react");
6
+ const diffConv = (diff) => {
7
+ if (diff.includes('ExpertPlus')) {
8
+ return 'E+';
9
+ }
10
+ else if (diff.includes('Expert')) {
11
+ return 'EX';
12
+ }
13
+ else if (diff.includes('Hard')) {
14
+ return 'H';
15
+ }
16
+ else if (diff.includes('Normal')) {
17
+ return 'N';
18
+ }
19
+ return 'E';
20
+ };
21
+ const getModifiers = (modifiers) => {
22
+ return modifiers ? modifiers.split(',') : [];
23
+ };
24
+ function ScoreItem({ scoreItem, }) {
25
+ return ((0, jsx_runtime_1.jsxs)("div", { className: 'relative', children: [(0, jsx_runtime_1.jsxs)("div", { className: 'rounded-lg flex bg-black/[.4] space-x-2 backdrop-blur-md overflow-hidden', children: [(0, jsx_runtime_1.jsx)("img", { loading: 'eager', src: scoreItem.leaderboard.coverImage, className: 'rounded-md h-20 w-20' }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex flex-col space-y-1 py-0.5', children: [(0, jsx_runtime_1.jsx)("div", { className: 'font-semibold text-xs text-ellipsis overflow-hidden line-clamp-1 break-all', children: scoreItem.leaderboard.songName }), (0, jsx_runtime_1.jsxs)("div", { className: 'text-xs flex items-center space-x-2 *:flex *:items-center *:space-x-1 ', children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.BarChart, { className: 'w-3 h-3' }) }), (0, jsx_runtime_1.jsx)("span", { children: diffConv(scoreItem.leaderboard.difficulty.difficultyRaw) })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Star, { className: 'w-3 h-3' }) }), (0, jsx_runtime_1.jsxs)("span", { children: [scoreItem.leaderboard.stars, " "] })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Key, { className: 'w-3 h-3' }) }), (0, jsx_runtime_1.jsx)("span", { children: scoreItem.mapId ?? 'unknown' })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex space-x-2 text-xs', children: [(0, jsx_runtime_1.jsxs)("span", { children: [((scoreItem.score.baseScore / scoreItem.leaderboard.maxScore) *
26
+ 100).toFixed(2), "%"] }), (0, jsx_runtime_1.jsxs)("span", { className: 'text-orange-200', children: [scoreItem.score.pp.toFixed(1), "PP"] })] }), getModifiers(scoreItem.score.modifiers).length > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: "text-xs flex flex-wrap space-x-2 items-center", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Wrench, { className: "h-3 w-3" }), getModifiers(scoreItem.score.modifiers).map((modifier) => ((0, jsx_runtime_1.jsx)("span", { children: modifier }, modifier)))] }))] })] }), (0, jsx_runtime_1.jsx)("div", { className: "absolute right-1 bottom-1 text-white flex text-xs space-x-1 items-center", children: scoreItem.score.fullCombo && ((0, jsx_runtime_1.jsx)("span", { className: "from-blue-300 to-red-300 bg-gradient-to-r bg-clip-text text-transparent", children: "FC" })) })] }));
27
+ }
28
+ exports.default = ScoreItem;
29
+ //# sourceMappingURL=scoreItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoreItem.js","sourceRoot":"","sources":["../../../src/img-render/components/scoreItem.tsx"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,+CAA0D;AAG1D,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;IAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,CAAA;IACZ,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AACD,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE;IACzC,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9C,CAAC,CAAA;AACD,SAAwB,SAAS,CAAC,EAChC,SAAS,GAGV;IACC,OAAO,CACL,iCAAK,SAAS,EAAE,UAAU,aACxB,iCACE,SAAS,EACP,2EAA2E,aAG7E,gCACE,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,SAAS,CAAC,WAAW,CAAC,UAAU,EACrC,SAAS,EAAE,sBAAsB,GACjC,EACF,iCAAK,SAAS,EAAE,gCAAgC,aAC9C,gCACE,SAAS,EACP,4EAA4E,YAG7E,SAAS,CAAC,WAAW,CAAC,QAAQ,GAC3B,EACN,iCACE,SAAS,EACP,wEAAwE,aAG1E,4CACE,2CACE,uBAAC,uBAAQ,IAAC,SAAS,EAAE,SAAS,GAAI,GAC7B,EACP,2CACG,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,GACpD,IACH,EACN,4CACE,2CACE,uBAAC,mBAAI,IAAC,SAAS,EAAE,SAAS,GAAI,GACzB,EACP,6CAAO,SAAS,CAAC,WAAW,CAAC,KAAK,SAAS,IACvC,EACN,4CACE,2CACE,uBAAC,kBAAG,IAAC,SAAS,EAAE,SAAS,GAAI,GACxB,EACP,2CAAO,SAAS,CAAC,KAAK,IAAI,SAAS,GAAQ,IACvC,IACF,EACN,iCAAK,SAAS,EAAE,wBAAwB,aACtC,6CACG,CACC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC;gDAC5D,GAAG,CACJ,CAAC,OAAO,CAAC,CAAC,CAAC,SAEP,EACP,kCAAM,SAAS,EAAE,iBAAiB,aAC/B,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,UAEzB,IACH,EACL,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CACrD,iCAAK,SAAS,EAAC,+CAA+C,aAC5D,uBAAC,qBAAM,IAAC,SAAS,EAAC,SAAS,GAAG,EAC7B,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACzD,2CAAsB,QAAQ,IAAnB,QAAQ,CAAmB,CACvC,CAAC,IACE,CACP,IACG,IACF,EACN,gCAAK,SAAS,EAAC,0EAA0E,YACtF,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,CAC5B,iCAAM,SAAS,EAAC,yEAAyE,mBAElF,CACR,GACG,IACF,CACP,CAAA;AACH,CAAC;AAnFD,4BAmFC"}
@@ -0,0 +1,8 @@
1
+ import { BSOR, Score } from '../../api/interfaces/beatleader';
2
+ export declare function formatNumber(num: number, digits?: number, addSign?: boolean, notANumber?: any): any;
3
+ export default function ScoreGraph({ scoreId, scoreInfo, statistic, bsor, }: {
4
+ scoreId: number;
5
+ scoreInfo: Score;
6
+ statistic: any;
7
+ bsor: BSOR;
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,300 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.formatNumber = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const bsorReplayAcc_1 = require("../utils/bl/bsorReplayAcc");
9
+ const beatleader_1 = require("../utils/bl/beatleader");
10
+ const stastic_1 = __importDefault(require("../utils/bl/stastic"));
11
+ const auto_1 = __importDefault(require("chart.js/auto"));
12
+ const canvas_1 = require("../utils/canvas");
13
+ function formatNumber(num, digits = 2, addSign = false, notANumber = null) {
14
+ if (!Number.isFinite(num)) {
15
+ return notANumber;
16
+ }
17
+ return ((addSign && num > 0 ? '+' : '') +
18
+ num.toLocaleString(navigator.language, {
19
+ minimumFractionDigits: digits,
20
+ maximumFractionDigits: digits,
21
+ }));
22
+ }
23
+ exports.formatNumber = formatNumber;
24
+ function timeToLabel(time) {
25
+ const minutes = Math.floor(time / 60);
26
+ const seconds = Math.floor(time % 60);
27
+ return minutes + ':' + seconds.toString().padStart(2, '0');
28
+ }
29
+ function processChartData(chartData, resolution, smoothPeriodPercentage, weightFunctionSteepness) {
30
+ const data = [];
31
+ if (chartData.length === 0 || resolution === 0)
32
+ return data;
33
+ const songDuration = chartData[chartData.length - 1][1];
34
+ const distanceWeightFunction = (0, beatleader_1.createDistanceWeightFunction)(songDuration * smoothPeriodPercentage, weightFunctionSteepness);
35
+ for (let i = 0.0; i < resolution; i += 1.0) {
36
+ const songTime = (songDuration * i) / (resolution - 1);
37
+ let sum = 0;
38
+ let divider = 0;
39
+ for (let j = 0.0; j < chartData.length; j += 1.0) {
40
+ const item = chartData[j];
41
+ const weight = distanceWeightFunction.getWeight(item[1] - songTime);
42
+ sum += item[0] * weight;
43
+ divider += weight;
44
+ }
45
+ if (divider === 0)
46
+ continue;
47
+ const value = 100 + (sum / divider) * 15;
48
+ data.push(value);
49
+ }
50
+ return data;
51
+ }
52
+ // get score Statics
53
+ function ScoreGraph({ scoreId, scoreInfo, statistic, bsor, }) {
54
+ const canvas = canvas_1.canvasHelper.createCanvas(400 * 4, 192 * 4);
55
+ const setupChart = (canvas, chartData, underswingsData, beatSavior) => {
56
+ if (!canvas || !chartData || !Object.keys(chartData).length)
57
+ return;
58
+ const title = underswingsData?.noUnderswingsScore > underswingsData?.score
59
+ ? `Lost by underswings: ${formatNumber(underswingsData.noUnderswingsScore - underswingsData.score, 0)}pts, ${formatNumber(underswingsData.noUnderswingsAcc - underswingsData.acc, 2)}% acc` +
60
+ (underswingsData?.noUnderswingsPp &&
61
+ underswingsData?.noUnderswingsPp > underswingsData?.pp
62
+ ? `, ${formatNumber(underswingsData.noUnderswingsPp - underswingsData.pp, 2)}pp`
63
+ : '')
64
+ : null;
65
+ const labels = chartData.times.map(timeToLabel);
66
+ const minMaxCounter = (0, beatleader_1.createMinMaxCounter)(0, 115, 1.0);
67
+ const hands = [];
68
+ if (beatSavior?.stats?.accLeft) {
69
+ hands.push('red');
70
+ }
71
+ if (beatSavior?.stats?.accRight) {
72
+ hands.push('blue');
73
+ }
74
+ if (hands.length == 2) {
75
+ hands.push('total');
76
+ }
77
+ for (let i = 0; i < chartData.times.length; i++) {
78
+ hands.forEach((saberType) => {
79
+ minMaxCounter.update(chartData.realScoreBySaber[saberType][i]);
80
+ minMaxCounter.update(chartData.fullSwingBySaber[saberType][i]);
81
+ });
82
+ }
83
+ let datasets = [];
84
+ if (beatSavior?.stats?.accLeft) {
85
+ datasets.push({
86
+ yAxisID: 'score',
87
+ label: 'Accuracy (left)',
88
+ data: chartData.fullSwingBySaber.red,
89
+ type: 'line',
90
+ borderColor: '#ee5555',
91
+ backgroundColor: '#ee5555',
92
+ borderWidth: 8,
93
+ pointRadius: 0,
94
+ cubicInterpolationMode: 'monotone',
95
+ tension: 0.4,
96
+ spanGaps: true,
97
+ order: 3,
98
+ });
99
+ datasets.push({
100
+ yAxisID: 'score',
101
+ label: 'Underswing (left)',
102
+ data: chartData.realScoreBySaber.red,
103
+ type: 'line',
104
+ fill: '-1',
105
+ borderColor: '#ee555555',
106
+ backgroundColor: '#ee555555',
107
+ borderWidth: 2,
108
+ pointRadius: 0,
109
+ cubicInterpolationMode: 'monotone',
110
+ tension: 0.4,
111
+ spanGaps: true,
112
+ order: 4,
113
+ });
114
+ }
115
+ if (beatSavior?.stats?.accRight) {
116
+ datasets.push({
117
+ yAxisID: 'score',
118
+ label: 'Accuracy (right)',
119
+ data: chartData.fullSwingBySaber.blue,
120
+ type: 'line',
121
+ borderColor: '#5555ee',
122
+ backgroundColor: '#5555ee',
123
+ borderWidth: 8,
124
+ pointRadius: 0,
125
+ cubicInterpolationMode: 'monotone',
126
+ tension: 0.4,
127
+ spanGaps: true,
128
+ order: 5,
129
+ });
130
+ datasets.push({
131
+ yAxisID: 'score',
132
+ label: 'Underswing (right)',
133
+ data: chartData.realScoreBySaber.blue,
134
+ type: 'line',
135
+ fill: '-1',
136
+ borderColor: '#5555ee55',
137
+ backgroundColor: '#5555ee55',
138
+ borderWidth: 2,
139
+ pointRadius: 0,
140
+ cubicInterpolationMode: 'monotone',
141
+ tension: 0.4,
142
+ spanGaps: true,
143
+ order: 6,
144
+ });
145
+ }
146
+ datasets = datasets.concat([
147
+ {
148
+ yAxisID: 'score',
149
+ label: 'Accuracy',
150
+ data: chartData.fullSwingBySaber.total,
151
+ type: 'line',
152
+ borderColor: 'white',
153
+ backgroundColor: 'white',
154
+ borderWidth: 8,
155
+ pointRadius: 0,
156
+ cubicInterpolationMode: 'monotone',
157
+ tension: 0.4,
158
+ spanGaps: true,
159
+ order: 1,
160
+ },
161
+ {
162
+ yAxisID: 'score',
163
+ label: 'Underswing',
164
+ data: chartData.realScoreBySaber.total,
165
+ type: 'line',
166
+ fill: '-1',
167
+ borderColor: '#aaaaaa55',
168
+ backgroundColor: '#aaaaaa55',
169
+ borderWidth: 2,
170
+ pointRadius: 0,
171
+ cubicInterpolationMode: 'monotone',
172
+ tension: 0.4,
173
+ spanGaps: true,
174
+ order: 2,
175
+ },
176
+ {
177
+ yAxisID: 'score',
178
+ label: 'Score',
179
+ data: chartData.realScoreBySaber.total,
180
+ type: 'line',
181
+ borderColor: '#aaaaaa',
182
+ backgroundColor: '#aaaaaa',
183
+ borderWidth: 8,
184
+ pointRadius: 0,
185
+ cubicInterpolationMode: 'monotone',
186
+ tension: 0.4,
187
+ spanGaps: true,
188
+ order: 0,
189
+ },
190
+ ]);
191
+ new auto_1.default(canvas, {
192
+ data: { labels, datasets },
193
+ options: {
194
+ responsive: false,
195
+ devicePixelRatio: 1,
196
+ maintainAspectRatio: false,
197
+ plugins: {
198
+ legend: {
199
+ display: false,
200
+ },
201
+ title: {
202
+ display: !!title?.length,
203
+ text: title,
204
+ color: 'white',
205
+ font: {
206
+ weight: 'normal',
207
+ size: 60,
208
+ },
209
+ position: 'bottom',
210
+ padding: { top: 5, bottom: 0 },
211
+ },
212
+ tooltip: {
213
+ callbacks: {
214
+ title(tooltipItems) {
215
+ const item = tooltipItems[0];
216
+ const labels = item.chart.data.labels;
217
+ return labels[item.dataIndex] + ' (10 seconds average)';
218
+ },
219
+ label(ctx) {
220
+ const datasetLabel = ctx.dataset.label;
221
+ let percentage;
222
+ let value;
223
+ switch (datasetLabel) {
224
+ case 'Underswing (left)':
225
+ value =
226
+ ctx.raw - chartData.fullSwingBySaber.red[ctx.dataIndex];
227
+ percentage = value / 115.0;
228
+ return `${datasetLabel}: ${formatNumber(value, 1)} (${formatNumber(percentage * 100, 2)}%)`;
229
+ case 'Underswing (right)':
230
+ value =
231
+ ctx.raw - chartData.fullSwingBySaber.blue[ctx.dataIndex];
232
+ percentage = value / 115.0;
233
+ return `${datasetLabel}: ${formatNumber(value, 1)} (${formatNumber(percentage * 100, 2)}%)`;
234
+ case 'Underswing':
235
+ value =
236
+ ctx.raw - chartData.fullSwingBySaber.total[ctx.dataIndex];
237
+ percentage = value / 115.0;
238
+ return `${datasetLabel}: ${formatNumber(value, 1)} (${formatNumber(percentage * 100, 2)}%)`;
239
+ case 'Score':
240
+ value = ctx.raw;
241
+ percentage = value / 115.0;
242
+ return `${datasetLabel}: ${formatNumber(value, 1)} (${formatNumber(percentage * 100, 2)}%)`;
243
+ default:
244
+ value = ctx.raw;
245
+ percentage = value / 115.0;
246
+ return `${datasetLabel}: ${formatNumber(value - 100.0, 1)} (${formatNumber(percentage * 100, 2)}%)`;
247
+ }
248
+ },
249
+ },
250
+ },
251
+ },
252
+ scales: {
253
+ x: {
254
+ ticks: {
255
+ autoSkip: true,
256
+ autoSkipPadding: 4,
257
+ color: 'white',
258
+ font: {
259
+ weight: 'normal',
260
+ size: 60,
261
+ },
262
+ },
263
+ },
264
+ y: {
265
+ display: true,
266
+ min: minMaxCounter.minValue,
267
+ max: minMaxCounter.maxValue,
268
+ ticks: {
269
+ autoSkip: true,
270
+ autoSkipPadding: 4,
271
+ color: 'white',
272
+ font: {
273
+ weight: 'normal',
274
+ size: 60,
275
+ },
276
+ },
277
+ },
278
+ score: {
279
+ display: false,
280
+ min: minMaxCounter.minValue,
281
+ max: minMaxCounter.maxValue,
282
+ ticks: {
283
+ autoSkip: true,
284
+ autoSkipPadding: 4,
285
+ color: 'white',
286
+ },
287
+ },
288
+ },
289
+ },
290
+ });
291
+ };
292
+ const beatSavior = (0, stastic_1.default)(scoreInfo, scoreId, statistic);
293
+ const replayAccGraphs = (0, bsorReplayAcc_1.processAccGraphs)(bsor);
294
+ const underswingsData = (0, bsorReplayAcc_1.processUnderswings)(bsor);
295
+ setupChart(canvas, replayAccGraphs, underswingsData, beatSavior);
296
+ const dataURL = canvas_1.canvasHelper.canvasToDataURL(canvas);
297
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)("div", { style: { height: '12em' }, children: (0, jsx_runtime_1.jsx)("img", { src: dataURL, width: 400, height: 192 }) }) }));
298
+ }
299
+ exports.default = ScoreGraph;
300
+ //# sourceMappingURL=scoregraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoregraph.js","sourceRoot":"","sources":["../../../src/img-render/components/scoregraph.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export default function SkillGraph({ factorA, factorB, factorC, }: {
2
+ factorA?: number;
3
+ factorB?: number;
4
+ factorC?: number;
5
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const getPoint = (center, edgePoint, edgeFactor, pointFactor) => {
5
+ const factorY = (center.y - edgePoint.y) / edgeFactor;
6
+ const factorX = (center.x - edgePoint.x) / edgeFactor;
7
+ return {
8
+ x: center.x - pointFactor * factorX,
9
+ y: center.y - pointFactor * factorY,
10
+ };
11
+ };
12
+ function SkillGraph({ factorA = 0.4, factorB = 0.2, factorC = 0.2, }) {
13
+ const base = 0.4;
14
+ const sqrt3 = Math.sqrt(3);
15
+ const centerPoint = {
16
+ x: 60,
17
+ y: 80 / sqrt3 + 10,
18
+ };
19
+ const edgePointA = {
20
+ x: 20,
21
+ y: 40 / sqrt3 + 10,
22
+ };
23
+ const edgePointB = {
24
+ x: 100,
25
+ y: 40 / sqrt3 + 10,
26
+ };
27
+ const edgePointC = {
28
+ x: 60,
29
+ y: 160 / sqrt3 + 10,
30
+ };
31
+ const PA = getPoint(centerPoint, edgePointA, base, factorA);
32
+ const PB = getPoint(centerPoint, edgePointB, base, factorB);
33
+ const PC = getPoint(centerPoint, edgePointC, base, factorC);
34
+ // 50,78 90,10 10,10
35
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)("svg", { height: "145", viewBox: `0 0 125 125`, xmlns: "http://www.w3.org/2000/svg", children: [(0, jsx_runtime_1.jsx)("circle", { cx: centerPoint.x, cy: centerPoint.y, r: 80 / sqrt3, className: "fill-gray-100/30", filter: "url(#blur)" }), (0, jsx_runtime_1.jsx)("circle", { cx: PA.x, cy: PA.y }), (0, jsx_runtime_1.jsx)("text", { x: edgePointA.x - 10, y: edgePointA.y, fill: "url(#gradient1)", className: "text-[8px] font-bold text-white", children: "Acc" }), (0, jsx_runtime_1.jsxs)("text", { x: edgePointA.x - 20, y: edgePointA.y + 10, fill: "url(#gradient1)", className: "text-[8px] font-bold text-white", children: [(factorA * 100).toFixed(2), "%"] }), (0, jsx_runtime_1.jsx)("text", { x: edgePointB.x - 6, y: edgePointB.y, fill: "url(#gradient1)", className: "text-[8px] font-bold text-white", children: "Tech" }), (0, jsx_runtime_1.jsxs)("text", { x: edgePointB.x - 6, y: edgePointB.y + 8, fill: "url(#gradient1)", className: "text-[8px] font-bold text-white", children: [(factorB * 100).toFixed(2), "%"] }), (0, jsx_runtime_1.jsx)("text", { x: edgePointC.x - 6, y: edgePointC.y + 2, fill: "url(#gradient1)", className: "text-[8px] font-bold text-white", children: "Pass" }), (0, jsx_runtime_1.jsxs)("text", { x: edgePointC.x - 8, y: edgePointC.y + 12, fill: "url(#gradient1)", className: "text-[8px] font-bold text-white", children: [(factorC * 100).toFixed(2), "%"] }), (0, jsx_runtime_1.jsx)("circle", { cx: PB.x, cy: PB.y }), (0, jsx_runtime_1.jsx)("circle", { cx: PC.x, cy: PC.y }), (0, jsx_runtime_1.jsx)("line", { x1: PA.x, y1: PA.y, x2: PC.x, y2: PC.y }), (0, jsx_runtime_1.jsx)("line", { x1: PA.x, y1: PA.y, x2: PB.x, y2: PB.y }), (0, jsx_runtime_1.jsx)("line", { x1: PC.x, y1: PC.y, x2: PB.x, y2: PB.y }), (0, jsx_runtime_1.jsx)("polygon", { points: `${PA.x},${PA.y} ${PB.x},${PB.y} ${PC.x},${PC.y}`, fill: "url(#gradient)" }), (0, jsx_runtime_1.jsxs)("defs", { children: [(0, jsx_runtime_1.jsxs)("linearGradient", { id: "gradient1", x1: "0%", y1: "0%", x2: "100%", y2: "100%", opacity: 0, children: [(0, jsx_runtime_1.jsx)("stop", { offset: "0%", style: {
36
+ stopColor: 'rgb(252 165 165)',
37
+ stopOpacity: 1,
38
+ } }), (0, jsx_runtime_1.jsx)("stop", { offset: "100%", style: {
39
+ stopColor: 'rgb(147 197 253)',
40
+ stopOpacity: 1,
41
+ } })] }), (0, jsx_runtime_1.jsxs)("linearGradient", { id: "gradient", x1: "0%", y1: "0%", x2: "100%", y2: "100%", opacity: 0, children: [(0, jsx_runtime_1.jsx)("stop", { offset: "0%", style: {
42
+ stopColor: 'red',
43
+ stopOpacity: 0.3,
44
+ } }), (0, jsx_runtime_1.jsx)("stop", { offset: "100%", style: {
45
+ stopColor: 'blue',
46
+ stopOpacity: 0.4,
47
+ } })] }), (0, jsx_runtime_1.jsx)("filter", { id: "blur", children: (0, jsx_runtime_1.jsx)("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "1" }) })] })] }) }));
48
+ }
49
+ exports.default = SkillGraph;
50
+ //# sourceMappingURL=skill-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-graph.js","sourceRoot":"","sources":["../../../src/img-render/components/skill-graph.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export default function ScoreBadge({ name, count, className, }: {
2
+ name: string;
3
+ count: string | number;
4
+ className?: string;
5
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ /** @jsxImportSource react */
5
+ const tw_join_1 = require("../utils/tw-join");
6
+ function ScoreBadge({ name, count, className, }) {
7
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)("div", { className: (0, tw_join_1.twJoin)('flex items-center self-center rounded-md w-18', 'bg-gradient-to-r bg-clip-text text-transparent from-blue-300 to-red-300', className), children: [(0, jsx_runtime_1.jsx)("span", { className: "border-r-0.5 font-semibold m-auto text-center rounded-l-lg w-8", children: name }), (0, jsx_runtime_1.jsx)("span", { className: "bg-transparent m-auto text-ellipsis line-clamp-1", children: count })] }) }));
8
+ }
9
+ exports.default = ScoreBadge;
10
+ //# sourceMappingURL=socre-badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socre-badge.js","sourceRoot":"","sources":["../../../src/img-render/components/socre-badge.tsx"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,8CAAyC;AAEzC,SAAwB,UAAU,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,SAAS,GAKV;IACC,OAAO,CACL,2DACE,iCACE,SAAS,EAAE,IAAA,gBAAM,EACf,iDAAiD,EACjD,yEAAyE,EACzE,SAAS,CACV,aAED,iCAAM,SAAS,EAAC,gEAAgE,YAC7E,IAAI,GACA,EACP,iCAAM,SAAS,EAAC,kDAAkD,YAC/D,KAAK,GACD,IACH,GACL,CACJ,CAAA;AACH,CAAC;AA3BD,6BA2BC"}
@@ -0,0 +1,4 @@
1
+ import { ScoreSaberItem } from '../../api/interfaces/scoresaber';
2
+ export default function SsScoreItem({ scoreItem, }: {
3
+ scoreItem: ScoreSaberItem;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const lucide_react_1 = require("lucide-react");
5
+ const utils_1 = require("../utils");
6
+ const getModifiers = (modifiers) => {
7
+ return modifiers ? modifiers.split(',') : [];
8
+ };
9
+ function SsScoreItem({ scoreItem, }) {
10
+ return ((0, jsx_runtime_1.jsxs)("div", { className: 'relative', children: [(0, jsx_runtime_1.jsxs)("div", { className: 'rounded-lg flex bg-black/[.4] space-x-2 backdrop-blur-md overflow-hidden', children: [(0, jsx_runtime_1.jsx)("img", { loading: 'eager', src: scoreItem.leaderboard.coverImage, className: 'rounded-md h-20 w-20' }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex flex-col space-y-1 py-0.5', children: [(0, jsx_runtime_1.jsx)("div", { className: 'font-semibold text-xs text-ellipsis overflow-hidden line-clamp-1 break-all', children: scoreItem.leaderboard.songName }), (0, jsx_runtime_1.jsxs)("div", { className: 'text-xs flex items-center space-x-2 *:flex *:items-center *:space-x-1 ', children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.BarChart, { className: 'w-3 h-3' }) }), (0, jsx_runtime_1.jsx)("span", { children: (0, utils_1.diffConv)(scoreItem.leaderboard.difficulty.difficultyRaw) })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Star, { className: 'w-3 h-3' }) }), (0, jsx_runtime_1.jsxs)("span", { children: [scoreItem.leaderboard.stars, " "] })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Key, { className: 'w-3 h-3' }) }), (0, jsx_runtime_1.jsx)("span", { children: scoreItem.mapId ?? 'unknown' })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex space-x-2 text-xs', children: [(0, jsx_runtime_1.jsxs)("span", { children: [((scoreItem.score.baseScore / scoreItem.leaderboard.maxScore) *
11
+ 100).toFixed(2), "%"] }), (0, jsx_runtime_1.jsxs)("span", { className: 'text-orange-200', children: [scoreItem.score.pp.toFixed(1), "PP"] })] }), getModifiers(scoreItem.score.modifiers).length > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: "text-xs flex flex-wrap space-x-2 items-center", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Wrench, { className: "h-3 w-3" }), getModifiers(scoreItem.score.modifiers).map((modifier) => ((0, jsx_runtime_1.jsx)("span", { children: modifier }, modifier)))] }))] })] }), (0, jsx_runtime_1.jsx)("div", { className: "absolute right-1 bottom-1 text-white flex text-xs space-x-1 items-center", children: scoreItem.score.fullCombo && ((0, jsx_runtime_1.jsx)("span", { className: "from-blue-300 to-red-300 bg-gradient-to-r bg-clip-text text-transparent", children: "FC" })) })] }));
12
+ }
13
+ exports.default = SsScoreItem;
14
+ //# sourceMappingURL=ssScoreItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssScoreItem.js","sourceRoot":"","sources":["../../../src/img-render/components/ssScoreItem.tsx"],"names":[],"mappings":";;;AAAA,+CAA0D;AAC1D,oCAAmC;AAInC,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE;IACzC,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9C,CAAC,CAAA;AACD,SAAwB,WAAW,CAAC,EAClC,SAAS,GAGV;IACC,OAAO,CACL,iCAAK,SAAS,EAAE,UAAU,aACxB,iCACE,SAAS,EACP,2EAA2E,aAG7E,gCACE,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,SAAS,CAAC,WAAW,CAAC,UAAU,EACrC,SAAS,EAAE,sBAAsB,GACjC,EACF,iCAAK,SAAS,EAAE,gCAAgC,aAC9C,gCACE,SAAS,EACP,4EAA4E,YAG7E,SAAS,CAAC,WAAW,CAAC,QAAQ,GAC3B,EACN,iCACE,SAAS,EACP,wEAAwE,aAG1E,4CACE,2CACE,uBAAC,uBAAQ,IAAC,SAAS,EAAE,SAAS,GAAI,GAC7B,EACP,2CACG,IAAA,gBAAQ,EAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,GACpD,IACH,EACN,4CACE,2CACE,uBAAC,mBAAI,IAAC,SAAS,EAAE,SAAS,GAAI,GACzB,EACP,6CAAO,SAAS,CAAC,WAAW,CAAC,KAAK,SAAS,IACvC,EACN,4CACE,2CACE,uBAAC,kBAAG,IAAC,SAAS,EAAE,SAAS,GAAI,GACxB,EACP,2CAAO,SAAS,CAAC,KAAK,IAAI,SAAS,GAAQ,IACvC,IACF,EACN,iCAAK,SAAS,EAAE,wBAAwB,aACtC,6CACG,CACC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC;gDAC5D,GAAG,CACJ,CAAC,OAAO,CAAC,CAAC,CAAC,SAEP,EACP,kCAAM,SAAS,EAAE,iBAAiB,aAC/B,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,UAEzB,IACH,EACL,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CACrD,iCAAK,SAAS,EAAC,+CAA+C,aAC5D,uBAAC,qBAAM,IAAC,SAAS,EAAC,SAAS,GAAG,EAC7B,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACzD,2CAAsB,QAAQ,IAAnB,QAAQ,CAAmB,CACvC,CAAC,IACE,CACP,IACG,IACF,EACN,gCAAK,SAAS,EAAC,0EAA0E,YACtF,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,CAC5B,iCAAM,SAAS,EAAC,yEAAyE,mBAElF,CACR,GACG,IACF,CACP,CAAA;AACH,CAAC;AAnFD,8BAmFC"}
@@ -0,0 +1,22 @@
1
+ import { APIService } from '../api';
2
+ import { RenderOption } from './interfaces';
3
+ import { Config } from '../config';
4
+ import { BSMap } from '../api/interfaces/beatsaver';
5
+ import { ImgRender, Platform } from '../interface';
6
+ type HtmlToImgBufferConverter = (html: string, onRenderStart?: () => void, onRenderError?: (e: any) => void) => Promise<any>;
7
+ export declare abstract class RenderService implements ImgRender {
8
+ config: Config;
9
+ api: APIService;
10
+ baseConfig: Partial<RenderOption>;
11
+ htmlToImgBufferConverter: HtmlToImgBufferConverter;
12
+ urlToImgBufferConverter: HtmlToImgBufferConverter;
13
+ renderRank(accountId: string, platform: Platform, onRenderStart?: () => void, onRenderError?: (e: any) => void): Promise<any>;
14
+ _renderRank: (accountId: string, platform: Platform, api: APIService, renderOpts: RenderOption) => Promise<any>;
15
+ renderScore(scoreId: string, platform: Platform, onRenderStart?: () => void, onRenderError?: (e: any) => void): Promise<any>;
16
+ _renderScore: (scoreId: string, platform: Platform, api: APIService, renderOpts: RenderOption) => Promise<any>;
17
+ renderMapById(mapId: string, onRenderStart?: () => void, onRenderError?: (e: any) => void): Promise<any>;
18
+ renderMap(map: BSMap, onRenderStart?: () => void, onRenderError?: (e: any) => void): Promise<any>;
19
+ renderUrl(url: string): Promise<any>;
20
+ _renderMap: (bsMap: BSMap, renderOpts: RenderOption) => Promise<any>;
21
+ }
22
+ export {};