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,301 @@
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('zh-CN', {
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, height, width, }) {
54
+ // 400 192
55
+ const canvas = canvas_1.canvasHelper.createCanvas(width * 4, height * 4);
56
+ const setupChart = (canvas, chartData, underswingsData, beatSavior) => {
57
+ if (!canvas || !chartData || !Object.keys(chartData).length)
58
+ return;
59
+ const title = underswingsData?.noUnderswingsScore > underswingsData?.score
60
+ ? `Lost by underswings: ${formatNumber(underswingsData.noUnderswingsScore - underswingsData.score, 0)}pts, ${formatNumber(underswingsData.noUnderswingsAcc - underswingsData.acc, 2)}% acc` +
61
+ (underswingsData?.noUnderswingsPp &&
62
+ underswingsData?.noUnderswingsPp > underswingsData?.pp
63
+ ? `, ${formatNumber(underswingsData.noUnderswingsPp - underswingsData.pp, 2)}pp`
64
+ : '')
65
+ : null;
66
+ const labels = chartData.times.map(timeToLabel);
67
+ const minMaxCounter = (0, beatleader_1.createMinMaxCounter)(0, 115, 1.0);
68
+ const hands = [];
69
+ if (beatSavior?.stats?.accLeft) {
70
+ hands.push('red');
71
+ }
72
+ if (beatSavior?.stats?.accRight) {
73
+ hands.push('blue');
74
+ }
75
+ if (hands.length == 2) {
76
+ hands.push('total');
77
+ }
78
+ for (let i = 0; i < chartData.times.length; i++) {
79
+ hands.forEach((saberType) => {
80
+ minMaxCounter.update(chartData.realScoreBySaber[saberType][i]);
81
+ minMaxCounter.update(chartData.fullSwingBySaber[saberType][i]);
82
+ });
83
+ }
84
+ let datasets = [];
85
+ if (beatSavior?.stats?.accLeft) {
86
+ datasets.push({
87
+ yAxisID: 'score',
88
+ label: 'Accuracy (left)',
89
+ data: chartData.fullSwingBySaber.red,
90
+ type: 'line',
91
+ borderColor: '#ee5555',
92
+ backgroundColor: '#ee5555',
93
+ borderWidth: 8,
94
+ pointRadius: 0,
95
+ cubicInterpolationMode: 'monotone',
96
+ tension: 0.4,
97
+ spanGaps: true,
98
+ order: 3,
99
+ });
100
+ datasets.push({
101
+ yAxisID: 'score',
102
+ label: 'Underswing (left)',
103
+ data: chartData.realScoreBySaber.red,
104
+ type: 'line',
105
+ fill: '-1',
106
+ borderColor: '#ee555555',
107
+ backgroundColor: '#ee555555',
108
+ borderWidth: 2,
109
+ pointRadius: 0,
110
+ cubicInterpolationMode: 'monotone',
111
+ tension: 0.4,
112
+ spanGaps: true,
113
+ order: 4,
114
+ });
115
+ }
116
+ if (beatSavior?.stats?.accRight) {
117
+ datasets.push({
118
+ yAxisID: 'score',
119
+ label: 'Accuracy (right)',
120
+ data: chartData.fullSwingBySaber.blue,
121
+ type: 'line',
122
+ borderColor: '#5555ee',
123
+ backgroundColor: '#5555ee',
124
+ borderWidth: 8,
125
+ pointRadius: 0,
126
+ cubicInterpolationMode: 'monotone',
127
+ tension: 0.4,
128
+ spanGaps: true,
129
+ order: 5,
130
+ });
131
+ datasets.push({
132
+ yAxisID: 'score',
133
+ label: 'Underswing (right)',
134
+ data: chartData.realScoreBySaber.blue,
135
+ type: 'line',
136
+ fill: '-1',
137
+ borderColor: '#5555ee55',
138
+ backgroundColor: '#5555ee55',
139
+ borderWidth: 2,
140
+ pointRadius: 0,
141
+ cubicInterpolationMode: 'monotone',
142
+ tension: 0.4,
143
+ spanGaps: true,
144
+ order: 6,
145
+ });
146
+ }
147
+ datasets = datasets.concat([
148
+ {
149
+ yAxisID: 'score',
150
+ label: 'Accuracy',
151
+ data: chartData.fullSwingBySaber.total,
152
+ type: 'line',
153
+ borderColor: 'white',
154
+ backgroundColor: 'white',
155
+ borderWidth: 8,
156
+ pointRadius: 0,
157
+ cubicInterpolationMode: 'monotone',
158
+ tension: 0.4,
159
+ spanGaps: true,
160
+ order: 1,
161
+ },
162
+ {
163
+ yAxisID: 'score',
164
+ label: 'Underswing',
165
+ data: chartData.realScoreBySaber.total,
166
+ type: 'line',
167
+ fill: '-1',
168
+ borderColor: '#aaaaaa55',
169
+ backgroundColor: '#aaaaaa55',
170
+ borderWidth: 2,
171
+ pointRadius: 0,
172
+ cubicInterpolationMode: 'monotone',
173
+ tension: 0.4,
174
+ spanGaps: true,
175
+ order: 2,
176
+ },
177
+ {
178
+ yAxisID: 'score',
179
+ label: 'Score',
180
+ data: chartData.realScoreBySaber.total,
181
+ type: 'line',
182
+ borderColor: '#aaaaaa',
183
+ backgroundColor: '#aaaaaa',
184
+ borderWidth: 8,
185
+ pointRadius: 0,
186
+ cubicInterpolationMode: 'monotone',
187
+ tension: 0.4,
188
+ spanGaps: true,
189
+ order: 0,
190
+ },
191
+ ]);
192
+ new auto_1.default(canvas, {
193
+ data: { labels, datasets },
194
+ options: {
195
+ responsive: false,
196
+ devicePixelRatio: 1,
197
+ maintainAspectRatio: false,
198
+ plugins: {
199
+ legend: {
200
+ display: false,
201
+ },
202
+ title: {
203
+ display: !!title?.length,
204
+ text: title,
205
+ color: 'white',
206
+ font: {
207
+ weight: 'normal',
208
+ size: 60,
209
+ },
210
+ position: 'bottom',
211
+ padding: { top: 5, bottom: 0 },
212
+ },
213
+ tooltip: {
214
+ callbacks: {
215
+ title(tooltipItems) {
216
+ const item = tooltipItems[0];
217
+ const labels = item.chart.data.labels;
218
+ return labels[item.dataIndex] + ' (10 seconds average)';
219
+ },
220
+ label(ctx) {
221
+ const datasetLabel = ctx.dataset.label;
222
+ let percentage;
223
+ let value;
224
+ switch (datasetLabel) {
225
+ case 'Underswing (left)':
226
+ value =
227
+ ctx.raw - chartData.fullSwingBySaber.red[ctx.dataIndex];
228
+ percentage = value / 115.0;
229
+ return `${datasetLabel}: ${formatNumber(value, 1)} (${formatNumber(percentage * 100, 2)}%)`;
230
+ case 'Underswing (right)':
231
+ value =
232
+ ctx.raw - chartData.fullSwingBySaber.blue[ctx.dataIndex];
233
+ percentage = value / 115.0;
234
+ return `${datasetLabel}: ${formatNumber(value, 1)} (${formatNumber(percentage * 100, 2)}%)`;
235
+ case 'Underswing':
236
+ value =
237
+ ctx.raw - chartData.fullSwingBySaber.total[ctx.dataIndex];
238
+ percentage = value / 115.0;
239
+ return `${datasetLabel}: ${formatNumber(value, 1)} (${formatNumber(percentage * 100, 2)}%)`;
240
+ case 'Score':
241
+ value = ctx.raw;
242
+ percentage = value / 115.0;
243
+ return `${datasetLabel}: ${formatNumber(value, 1)} (${formatNumber(percentage * 100, 2)}%)`;
244
+ default:
245
+ value = ctx.raw;
246
+ percentage = value / 115.0;
247
+ return `${datasetLabel}: ${formatNumber(value - 100.0, 1)} (${formatNumber(percentage * 100, 2)}%)`;
248
+ }
249
+ },
250
+ },
251
+ },
252
+ },
253
+ scales: {
254
+ x: {
255
+ ticks: {
256
+ autoSkip: true,
257
+ autoSkipPadding: 4,
258
+ color: 'white',
259
+ font: {
260
+ weight: 'normal',
261
+ size: 60,
262
+ },
263
+ },
264
+ },
265
+ y: {
266
+ display: true,
267
+ min: minMaxCounter.minValue,
268
+ max: minMaxCounter.maxValue,
269
+ ticks: {
270
+ autoSkip: true,
271
+ autoSkipPadding: 4,
272
+ color: 'white',
273
+ font: {
274
+ weight: 'normal',
275
+ size: 60,
276
+ },
277
+ },
278
+ },
279
+ score: {
280
+ display: false,
281
+ min: minMaxCounter.minValue,
282
+ max: minMaxCounter.maxValue,
283
+ ticks: {
284
+ autoSkip: true,
285
+ autoSkipPadding: 4,
286
+ color: 'white',
287
+ },
288
+ },
289
+ },
290
+ },
291
+ });
292
+ };
293
+ const beatSavior = (0, stastic_1.default)(scoreInfo, scoreId, statistic);
294
+ const replayAccGraphs = (0, bsorReplayAcc_1.processAccGraphs)(bsor);
295
+ const underswingsData = (0, bsorReplayAcc_1.processUnderswings)(bsor);
296
+ setupChart(canvas, replayAccGraphs, underswingsData, beatSavior);
297
+ const dataURL = canvas_1.canvasHelper.canvasToDataURL(canvas);
298
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)("img", { src: dataURL, width: width, height: height }) }) }));
299
+ }
300
+ exports.default = ScoreGraph;
301
+ //# 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":";;;AAMA,MAAM,QAAQ,GAAG,CACf,MAAa,EACb,SAAgB,EAChB,UAAkB,EAClB,WAAmB,EACnB,EAAE;IACF,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;IACrD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;IACrD,OAAO;QACL,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,WAAW,GAAG,OAAO;QACnC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,WAAW,GAAG,OAAO;KACpC,CAAA;AACH,CAAC,CAAA;AAED,SAAwB,UAAU,CAAC,EACjC,OAAO,GAAG,GAAG,EACb,OAAO,GAAG,GAAG,EACb,OAAO,GAAG,GAAG,GAKd;IACC,MAAM,IAAI,GAAG,GAAG,CAAA;IAChB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1B,MAAM,WAAW,GAAG;QAClB,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,EAAE;KACnB,CAAA;IACD,MAAM,UAAU,GAAG;QACjB,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,EAAE;KACnB,CAAA;IAED,MAAM,UAAU,GAAG;QACjB,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,EAAE;KACnB,CAAA;IAED,MAAM,UAAU,GAAG;QACjB,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,GAAG,GAAG,KAAK,GAAG,EAAE;KACpB,CAAA;IAED,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAC3D,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAC3D,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAC3D,oBAAoB;IACpB,OAAO,CACL,2DACE,iCACE,MAAM,EAAC,KAAK,EACZ,OAAO,EAAE,aAAa,EACtB,KAAK,EAAC,4BAA4B,aAElC,mCACE,EAAE,EAAE,WAAW,CAAC,CAAC,EACjB,EAAE,EAAE,WAAW,CAAC,CAAC,EACjB,CAAC,EAAE,EAAE,GAAG,KAAK,EACb,SAAS,EAAC,kBAAkB,EAC5B,MAAM,EAAC,YAAY,GACnB,EAIF,mCAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAI,EAC9B,iCACE,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,EAAE,EACpB,CAAC,EAAE,UAAU,CAAC,CAAC,EACf,IAAI,EAAC,iBAAiB,EACtB,SAAS,EAAC,iCAAiC,oBAGtC,EACP,kCACE,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,EAAE,EACpB,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,EAAE,EACpB,IAAI,EAAC,iBAAiB,EACtB,SAAS,EAAC,iCAAiC,aAE1C,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SACtB,EACP,iCACE,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,EACnB,CAAC,EAAE,UAAU,CAAC,CAAC,EACf,IAAI,EAAC,iBAAiB,EACtB,SAAS,EAAC,iCAAiC,qBAGtC,EACP,kCACE,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,EACnB,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,EACnB,IAAI,EAAC,iBAAiB,EACtB,SAAS,EAAC,iCAAiC,aAE1C,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SACtB,EACP,iCACE,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,EACnB,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,EACnB,IAAI,EAAC,iBAAiB,EACtB,SAAS,EAAC,iCAAiC,qBAGtC,EACP,kCACE,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,EACnB,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,EAAE,EACpB,IAAI,EAAC,iBAAiB,EACtB,SAAS,EAAC,iCAAiC,aAE1C,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SACtB,EAEP,mCAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAI,EAE9B,mCAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAI,EAE9B,iCAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAI,EAChD,iCAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAI,EAChD,iCAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAI,EAChD,oCACE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EACzD,IAAI,EAAC,gBAAgB,GACrB,EACF,6CACE,4CACE,EAAE,EAAC,WAAW,EACd,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,MAAM,EACT,EAAE,EAAC,MAAM,EACT,OAAO,EAAE,CAAC,aAEV,iCACE,MAAM,EAAC,IAAI,EACX,KAAK,EAAE;wCACL,SAAS,EAAE,kBAAkB;wCAC7B,WAAW,EAAE,CAAC;qCACf,GACD,EACF,iCACE,MAAM,EAAC,MAAM,EACb,KAAK,EAAE;wCACL,SAAS,EAAE,kBAAkB;wCAC7B,WAAW,EAAE,CAAC;qCACf,GACD,IACa,EACjB,4CACE,EAAE,EAAC,UAAU,EACb,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,MAAM,EACT,EAAE,EAAC,MAAM,EACT,OAAO,EAAE,CAAC,aAEV,iCACE,MAAM,EAAC,IAAI,EACX,KAAK,EAAE;wCACL,SAAS,EAAE,KAAK;wCAChB,WAAW,EAAE,GAAG;qCACjB,GACD,EACF,iCACE,MAAM,EAAC,MAAM,EACb,KAAK,EAAE;wCACL,SAAS,EAAE,MAAM;wCACjB,WAAW,EAAE,GAAG;qCACjB,GACD,IACa,EACjB,mCAAQ,EAAE,EAAC,MAAM,YACf,2CAAgB,EAAE,EAAC,eAAe,EAAC,YAAY,EAAC,GAAG,GAAG,GAC/C,IACJ,IACH,GACL,CACJ,CAAA;AACH,CAAC;AAtKD,6BAsKC"}
@@ -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,18 @@
1
+ interface ScoreItemProps {
2
+ name: string;
3
+ avatar: string;
4
+ globalRank: number;
5
+ countryCode: string;
6
+ isRegionRank: boolean;
7
+ score: number;
8
+ modifiers: string;
9
+ acc: number;
10
+ pp: number;
11
+ date: number;
12
+ self: boolean;
13
+ }
14
+ export declare function SSRankScoreItem(props: ScoreItemProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function ScoreItemSkeleton({ isRegionRank }: {
16
+ isRegionRank: boolean;
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ export {};
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.ScoreItemSkeleton = exports.SSRankScoreItem = void 0;
30
+ const jsx_runtime_1 = require("react/jsx-runtime");
31
+ const dayjs_1 = __importDefault(require("dayjs"));
32
+ const flag_1 = __importStar(require("../../img-render/components/flag"));
33
+ const utils_1 = require("../../img-render/utils");
34
+ function SSRankScoreItem(props) {
35
+ return ((0, jsx_runtime_1.jsx)("div", { className: `${props.self ? 'gradient-border' : ''} bs-bg-gradient shadow-xl rounded-lg -skew-x-12 w-80 h-20 text-white font-bold flex flex-col p-1 z-10 relative max-w-[300px]`, children: (0, jsx_runtime_1.jsxs)("div", { className: "skew-x-12 relative", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center translate-x-2 justify-between", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex gap-2", children: [(0, jsx_runtime_1.jsxs)("div", { className: 'w-12 h-12 relative', children: [(0, jsx_runtime_1.jsx)("img", { src: props.avatar, className: "shadow-lg w-12 h-12 rounded-full object-cover" }), (0, jsx_runtime_1.jsx)("div", { className: 'w-3 h-3 absolute bottom-0 right-3', children: (0, jsx_runtime_1.jsx)(flag_1.default, { flagNationCode: props.countryCode }) })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: 'line-clamp-1 text-ellipsis max-w-[100px]', children: props.name }), (0, jsx_runtime_1.jsxs)("span", { className: "flex items-center space-x-1", children: [!props.isRegionRank && (0, jsx_runtime_1.jsx)(flag_1.EarchIcon, {}), (0, jsx_runtime_1.jsxs)("span", { children: ["# ", props.globalRank] })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-end -translate-x-2 -skew-x-3", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(props.acc * 100).toFixed(2), " %"] }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex gap-2', children: [(0, jsx_runtime_1.jsx)("div", { className: 'space-x-1', children: props.modifiers.split(',').map((it) => ((0, jsx_runtime_1.jsx)("span", { children: it }, it))) }), (0, jsx_runtime_1.jsx)("div", { children: (0, utils_1.numberWithCommas)(props.score) })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between mt-0 px-4 -translate-x-4", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex gap-2", children: (0, jsx_runtime_1.jsx)("div", { className: "flex gap-1 items-center justify-start -skew-x-2 text-xs opacity-60", children: (0, jsx_runtime_1.jsx)("div", { children: (0, utils_1.formatDate)((0, dayjs_1.default)(props.date * 1000).toDate(), 'YY 年 MM 月 DD 日') }) }) }), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)("div", { className: "flex gap-1 items-center justify-start translate-x-6 text-xl font-bold text-green-300", children: (0, jsx_runtime_1.jsxs)("div", { children: [" ", props.pp.toFixed(2), " PP"] }) }) })] })] }) }));
36
+ }
37
+ exports.SSRankScoreItem = SSRankScoreItem;
38
+ function ScoreItemSkeleton({ isRegionRank }) {
39
+ return ((0, jsx_runtime_1.jsx)("div", { className: `bs-bg-gradient shadow-xl rounded-lg -skew-x-12 w-80 h-20 text-white font-bold flex flex-col p-1 z-10 relative max-w-[300px]`, children: (0, jsx_runtime_1.jsxs)("div", { className: "skew-x-12 relative", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center translate-x-2 justify-between", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex gap-2", children: [(0, jsx_runtime_1.jsx)("div", { className: 'w-12 h-12 relative', children: (0, jsx_runtime_1.jsx)("img", { src: `https://avatar.iran.liara.run/public`, className: "shadow-lg w-12 h-12 rounded-full object-cover" }) }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: 'line-clamp-1 text-ellipsis max-w-[100px]', children: "\u865A\u4F4D\u4EE5\u5F85" }), (0, jsx_runtime_1.jsxs)("span", { className: "flex items-center space-x-1", children: [!isRegionRank && (0, jsx_runtime_1.jsx)(flag_1.EarchIcon, {}), (0, jsx_runtime_1.jsx)("span", { children: "# 0 " })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-end -translate-x-2 -skew-x-3", children: [(0, jsx_runtime_1.jsx)("div", { children: "0.00 %" }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex gap-2', children: [(0, jsx_runtime_1.jsx)("div", { className: 'space-x-1', children: " " }), (0, jsx_runtime_1.jsx)("div", { children: "000,000" })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between mt-0 px-4 -translate-x-4", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex gap-1 items-center justify-start -skew-x-2 text-xs opacity-60", children: (0, jsx_runtime_1.jsx)("div", { children: "00 \u5E74 00 \u6708 00 \u65E5" }) }), (0, jsx_runtime_1.jsx)("div", { className: "flex gap-1 items-center justify-start translate-x-6 text-xl font-bold text-green-300", children: (0, jsx_runtime_1.jsx)("div", { children: " 0.00 PP" }) })] })] }) }));
40
+ }
41
+ exports.ScoreItemSkeleton = ScoreItemSkeleton;
42
+ //# sourceMappingURL=ss-rank-score-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ss-rank-score-item.js","sourceRoot":"","sources":["../../../src/img-render/components/ss-rank-score-item.tsx"],"names":[],"mappings":"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"}
@@ -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"] }), (0, jsx_runtime_1.jsx)("span", { className: 'opacity-70', children: (0, utils_1.formatRelativeTimeByDay)(scoreItem.score.timeSet) })] }), 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=ss-score-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ss-score-item.js","sourceRoot":"","sources":["../../../src/img-render/components/ss-score-item.tsx"],"names":[],"mappings":";;;AAAA,+CAA0D;AAC1D,oCAA4D;AAI5D,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,EACP,iCAAM,SAAS,EAAE,YAAY,YAC1B,IAAA,+BAAuB,EAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAC5C,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;AAtFD,8BAsFC"}
@@ -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"] }), (0, jsx_runtime_1.jsx)("span", { className: 'opacity-70', children: (0, utils_1.formatRelativeTimeByDay)(scoreItem.score.timeSet) })] }), 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,oCAA4D;AAI5D,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,EACP,iCAAM,SAAS,EAAE,YAAY,YAC1B,IAAA,+BAAuB,EAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAC5C,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;AAtFD,8BAsFC"}
@@ -0,0 +1,25 @@
1
+ /// <reference types="node" />
2
+ import { APIService } from '../api';
3
+ import { RenderOption } from './interfaces';
4
+ import { Config } from '../config';
5
+ import { BSMap } from '../api/interfaces/beatsaver';
6
+ import { ImgRender, Platform } from '../interface';
7
+ import { UserPreferenceStore } from '../utils';
8
+ type HtmlToImgBufferConverter = (html: string, onRenderStart?: () => void, onRenderError?: (e: any) => void) => Promise<Buffer>;
9
+ type UrlToImgBufferConverter = HtmlToImgBufferConverter;
10
+ export declare abstract class RenderService implements ImgRender {
11
+ config: Config;
12
+ api: APIService;
13
+ baseConfig: Partial<RenderOption>;
14
+ htmlToImgBufferConverter: HtmlToImgBufferConverter;
15
+ urlToImgBufferConverter: UrlToImgBufferConverter;
16
+ renderRank(accountId: string, platform: Platform, userPreference?: UserPreferenceStore, onRenderStart?: () => void, onRenderError?: (e: any) => void): Promise<Buffer>;
17
+ _renderRank: (accountId: string, platform: Platform, api: APIService, renderOpts: RenderOption) => Promise<Buffer>;
18
+ renderScore(scoreId: string, platform: Platform, userPreference?: UserPreferenceStore, onRenderStart?: () => void, onRenderError?: (e: any) => void): Promise<Buffer>;
19
+ _renderScore: (scoreId: string, platform: Platform, api: APIService, renderOpts: RenderOption) => Promise<Buffer>;
20
+ renderMapById(mapId: string, userPreference?: UserPreferenceStore, onRenderStart?: () => void, onRenderError?: (e: any) => void): Promise<Buffer>;
21
+ renderMap(map: BSMap, userPreference?: UserPreferenceStore, onRenderStart?: () => void, onRenderError?: (e: any) => void): Promise<Buffer>;
22
+ renderUrl(url: string, onRenderStart?: () => void): Promise<Buffer>;
23
+ _renderMap: (bsMap: BSMap, renderOpts: RenderOption) => Promise<Buffer>;
24
+ }
25
+ export {};