beatsaber-bot-core 0.2.0-rc.9 → 0.3.0-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (678) hide show
  1. package/dist/cjs/cmd/bind/bind-beatleader.js +9 -12
  2. package/dist/cjs/cmd/bind/bind-beatleader.js.map +1 -1
  3. package/dist/cjs/cmd/bind/bind-beatsaver.js +7 -12
  4. package/dist/cjs/cmd/bind/bind-beatsaver.js.map +1 -1
  5. package/dist/cjs/cmd/bind/bind-id-beatleader.js +10 -13
  6. package/dist/cjs/cmd/bind/bind-id-beatleader.js.map +1 -1
  7. package/dist/cjs/cmd/bind/bind-id-beatsaver.js +9 -13
  8. package/dist/cjs/cmd/bind/bind-id-beatsaver.js.map +1 -1
  9. package/dist/cjs/cmd/bind/bind-scoresaber.js +10 -15
  10. package/dist/cjs/cmd/bind/bind-scoresaber.js.map +1 -1
  11. package/dist/cjs/cmd/bind/index.js +12 -12
  12. package/dist/cjs/cmd/bind/index.js.map +1 -1
  13. package/dist/cjs/cmd/bsmap/id-search.js +3 -3
  14. package/dist/cjs/cmd/bsmap/id-search.js.map +1 -1
  15. package/dist/cjs/cmd/bsmap/key-search.js +2 -2
  16. package/dist/cjs/cmd/bsmap/key-search.js.map +1 -1
  17. package/dist/cjs/cmd/bsmap/latest.js +2 -2
  18. package/dist/cjs/cmd/bsmap/latest.js.map +1 -1
  19. package/dist/cjs/cmd/deprecated/tmp.js +4 -4
  20. package/dist/cjs/cmd/deprecated/tmp.js.map +1 -1
  21. package/dist/cjs/cmd/index.js +11 -11
  22. package/dist/cjs/cmd/index.js.map +1 -1
  23. package/dist/cjs/cmd/rank.js +8 -8
  24. package/dist/cjs/cmd/rank.js.map +1 -1
  25. package/dist/cjs/cmd/score.js +17 -21
  26. package/dist/cjs/cmd/score.js.map +1 -1
  27. package/dist/cjs/cmd/subscribe/beatleader.js +4 -4
  28. package/dist/cjs/cmd/subscribe/beatleader.js.map +1 -1
  29. package/dist/cjs/cmd/subscribe/beatsaver.js +4 -4
  30. package/dist/cjs/cmd/subscribe/beatsaver.js.map +1 -1
  31. package/dist/cjs/cmd/subscribe/id-beatleader-score.js +5 -5
  32. package/dist/cjs/cmd/subscribe/id-beatleader-score.js.map +1 -1
  33. package/dist/cjs/cmd/subscribe/id-beatsaver-mapper.js +5 -5
  34. package/dist/cjs/cmd/subscribe/id-beatsaver-mapper.js.map +1 -1
  35. package/dist/cjs/cmd/subscribe/index.js +12 -12
  36. package/dist/cjs/cmd/subscribe/index.js.map +1 -1
  37. package/dist/cjs/cmd/subscribe/subjoin.js +6 -6
  38. package/dist/cjs/cmd/subscribe/subjoin.js.map +1 -1
  39. package/dist/cjs/cmd/subscribe/subleave.js +10 -10
  40. package/dist/cjs/cmd/subscribe/subleave.js.map +1 -1
  41. package/dist/cjs/cmd/subscribe/unsubscribe.js +8 -8
  42. package/dist/cjs/cmd/subscribe/unsubscribe.js.map +1 -1
  43. package/dist/cjs/common/cache.js.map +1 -0
  44. package/dist/cjs/common/fetch/error.js.map +1 -0
  45. package/dist/cjs/{infra/support → common}/fetch/index.js +16 -14
  46. package/dist/cjs/common/fetch/index.js.map +1 -0
  47. package/dist/cjs/{infra/support → common}/fetch/ofetch.js +5 -12
  48. package/dist/cjs/common/fetch/ofetch.js.map +1 -0
  49. package/dist/cjs/common/i18n/index.js +55 -0
  50. package/dist/cjs/common/i18n/index.js.map +1 -0
  51. package/dist/cjs/common/i18n/parser.js.map +1 -0
  52. package/dist/cjs/{infra/i18n/index.js → common/i18n/util.js} +10 -71
  53. package/dist/cjs/common/i18n/util.js.map +1 -0
  54. package/dist/cjs/{infra/support → common}/render/index.js +55 -15
  55. package/dist/cjs/common/render/index.js.map +1 -0
  56. package/dist/cjs/common/render/puppeteer.js.map +1 -0
  57. package/dist/cjs/{infra → common}/s3/index.js +34 -13
  58. package/dist/cjs/common/s3/index.js.map +1 -0
  59. package/dist/cjs/components/components/RankDifficulty.js +71 -84
  60. package/dist/cjs/components/components/RankDifficulty.js.map +1 -1
  61. package/dist/cjs/components/components/base/avatar.js +12 -2
  62. package/dist/cjs/components/components/base/avatar.js.map +1 -1
  63. package/dist/cjs/components/components/bl-rank-score-item.js +26 -87
  64. package/dist/cjs/components/components/bl-rank-score-item.js.map +1 -1
  65. package/dist/cjs/components/components/bl-score-item.js +39 -69
  66. package/dist/cjs/components/components/bl-score-item.js.map +1 -1
  67. package/dist/cjs/components/components/characteristic.js +117 -118
  68. package/dist/cjs/components/components/characteristic.js.map +1 -1
  69. package/dist/cjs/components/components/flag.js +7 -14
  70. package/dist/cjs/components/components/flag.js.map +1 -1
  71. package/dist/cjs/components/components/icons/BeatLeader.js +66 -71
  72. package/dist/cjs/components/components/icons/BeatLeader.js.map +1 -1
  73. package/dist/cjs/components/components/icons/RankIcon.js +3 -7
  74. package/dist/cjs/components/components/icons/RankIcon.js.map +1 -1
  75. package/dist/cjs/components/components/icons/ScoreSaberIcon.js +276 -312
  76. package/dist/cjs/components/components/icons/ScoreSaberIcon.js.map +1 -1
  77. package/dist/cjs/components/components/progressbar.js +12 -2
  78. package/dist/cjs/components/components/progressbar.js.map +1 -1
  79. package/dist/cjs/components/components/scoreItem.js +37 -63
  80. package/dist/cjs/components/components/scoreItem.js.map +1 -1
  81. package/dist/cjs/components/components/scoregraph.js +5 -5
  82. package/dist/cjs/components/components/scoregraph.js.map +1 -1
  83. package/dist/cjs/components/components/skill-graph.js +158 -164
  84. package/dist/cjs/components/components/skill-graph.js.map +1 -1
  85. package/dist/cjs/components/components/socre-badge.js +18 -10
  86. package/dist/cjs/components/components/socre-badge.js.map +1 -1
  87. package/dist/cjs/components/components/ss-rank-score-item.js +26 -87
  88. package/dist/cjs/components/components/ss-rank-score-item.js.map +1 -1
  89. package/dist/cjs/components/components/ss-score-item.js +38 -65
  90. package/dist/cjs/components/components/ss-score-item.js.map +1 -1
  91. package/dist/cjs/components/index.js +3 -43
  92. package/dist/cjs/components/index.js.map +1 -1
  93. package/dist/cjs/components/pages/bl-player.js +91 -136
  94. package/dist/cjs/components/pages/bl-player.js.map +1 -1
  95. package/dist/cjs/components/pages/bl-score-with-rank.js +114 -221
  96. package/dist/cjs/components/pages/bl-score-with-rank.js.map +1 -1
  97. package/dist/cjs/components/pages/bl-score.js +67 -169
  98. package/dist/cjs/components/pages/bl-score.js.map +1 -1
  99. package/dist/cjs/components/pages/bs-map.js +95 -166
  100. package/dist/cjs/components/pages/bs-map.js.map +1 -1
  101. package/dist/cjs/components/pages/index.js +26 -26
  102. package/dist/cjs/components/pages/index.js.map +1 -1
  103. package/dist/cjs/components/pages/ss-player.js +48 -77
  104. package/dist/cjs/components/pages/ss-player.js.map +1 -1
  105. package/dist/cjs/components/utils/bl/bsorReplayAcc.js +2 -2
  106. package/dist/cjs/components/utils/bl/bsorReplayAcc.js.map +1 -1
  107. package/dist/cjs/components/utils/bl/getPart.js.map +1 -1
  108. package/dist/cjs/components/utils/bl/stastic.js.map +1 -1
  109. package/dist/cjs/components/utils/format.js +3 -3
  110. package/dist/cjs/components/utils/format.js.map +1 -1
  111. package/dist/cjs/components/utils/getMods.js.map +1 -1
  112. package/dist/cjs/components/utils/index.js +4 -4
  113. package/dist/cjs/config.js +40 -0
  114. package/dist/cjs/config.js.map +1 -1
  115. package/dist/cjs/{interface → core}/cmd/builder.js +5 -5
  116. package/dist/cjs/core/cmd/builder.js.map +1 -0
  117. package/dist/cjs/core/cmd/type.js.map +1 -0
  118. package/dist/cjs/core/domain.js +16 -0
  119. package/dist/cjs/core/domain.js.map +1 -0
  120. package/dist/cjs/core/error.js +38 -0
  121. package/dist/cjs/core/error.js.map +1 -0
  122. package/dist/cjs/{interface/bot.js → core/event.js} +3 -3
  123. package/dist/cjs/core/event.js.map +1 -0
  124. package/dist/cjs/core/index.js +39 -0
  125. package/dist/cjs/core/index.js.map +1 -0
  126. package/dist/cjs/core/logger.js.map +1 -0
  127. package/dist/cjs/core/session.js +16 -0
  128. package/dist/cjs/core/session.js.map +1 -0
  129. package/dist/cjs/{schedules → events/schedules}/index.js +4 -3
  130. package/dist/cjs/events/schedules/index.js.map +1 -0
  131. package/dist/cjs/{schedules → events/schedules}/temp.js +7 -3
  132. package/dist/cjs/events/schedules/temp.js.map +1 -0
  133. package/dist/cjs/{ws → events/ws}/beatleader.js +6 -6
  134. package/dist/cjs/events/ws/beatleader.js.map +1 -0
  135. package/dist/cjs/{ws → events/ws}/beatsaver.js +11 -11
  136. package/dist/cjs/events/ws/beatsaver.js.map +1 -0
  137. package/dist/cjs/events/ws/handler.js.map +1 -0
  138. package/dist/cjs/{ws → events/ws}/index.js +6 -8
  139. package/dist/cjs/events/ws/index.js.map +1 -0
  140. package/dist/cjs/index.js +27 -18
  141. package/dist/cjs/index.js.map +1 -1
  142. package/dist/cjs/interface/db/index.js +0 -6
  143. package/dist/cjs/interface/db/index.js.map +1 -1
  144. package/dist/cjs/interface/db/models.js.map +1 -1
  145. package/dist/cjs/interface/index.js +12 -21
  146. package/dist/cjs/interface/index.js.map +1 -1
  147. package/dist/cjs/{service → services}/api/base/aioclient.js +1 -1
  148. package/dist/cjs/services/api/base/aioclient.js.map +1 -0
  149. package/dist/cjs/{service → services}/api/base/blclient.js +1 -1
  150. package/dist/cjs/services/api/base/blclient.js.map +1 -0
  151. package/dist/cjs/{service → services}/api/base/bsclient.js +2 -2
  152. package/dist/cjs/services/api/base/bsclient.js.map +1 -0
  153. package/dist/cjs/{service → services}/api/base/index.js +8 -8
  154. package/dist/cjs/services/api/base/index.js.map +1 -0
  155. package/dist/cjs/{service → services}/api/base/ssclient.js +2 -2
  156. package/dist/cjs/services/api/base/ssclient.js.map +1 -0
  157. package/dist/cjs/{service → services}/api/index.js +17 -9
  158. package/dist/cjs/services/api/index.js.map +1 -0
  159. package/dist/cjs/services/api/interfaces/aiosaber/index.js.map +1 -0
  160. package/dist/cjs/services/api/interfaces/beatleader/bsor.js.map +1 -0
  161. package/dist/cjs/{service → services}/api/interfaces/beatleader/index.js +10 -10
  162. package/dist/cjs/services/api/interfaces/beatleader/index.js.map +1 -0
  163. package/dist/cjs/services/api/interfaces/beatleader/req.js.map +1 -0
  164. package/dist/cjs/services/api/interfaces/beatleader/score.js.map +1 -0
  165. package/dist/cjs/services/api/interfaces/beatleader/user.js.map +1 -0
  166. package/dist/cjs/services/api/interfaces/beatleader/ws.js.map +1 -0
  167. package/dist/cjs/services/api/interfaces/beatsaver/alert.js.map +1 -0
  168. package/dist/cjs/services/api/interfaces/beatsaver/bsmap.js.map +1 -0
  169. package/dist/cjs/{service → services}/api/interfaces/beatsaver/index.js +10 -10
  170. package/dist/cjs/services/api/interfaces/beatsaver/index.js.map +1 -0
  171. package/dist/cjs/services/api/interfaces/beatsaver/resp.js.map +1 -0
  172. package/dist/cjs/services/api/interfaces/beatsaver/user.js.map +1 -0
  173. package/dist/cjs/services/api/interfaces/beatsaver/ws.js.map +1 -0
  174. package/dist/cjs/services/api/interfaces/index.js.map +1 -0
  175. package/dist/cjs/{service → services}/api/interfaces/scoresaber/index.js +6 -6
  176. package/dist/cjs/services/api/interfaces/scoresaber/index.js.map +1 -0
  177. package/dist/cjs/services/api/interfaces/scoresaber/item.js.map +1 -0
  178. package/dist/cjs/services/api/interfaces/scoresaber/leaderboard.js.map +1 -0
  179. package/dist/cjs/services/api/interfaces/scoresaber/resp.js.map +1 -0
  180. package/dist/cjs/services/api/interfaces/scoresaber/user.js.map +1 -0
  181. package/dist/cjs/services/api/interfaces/scoresaber/ws.js.map +1 -0
  182. package/dist/cjs/services/api/sortScore.js.map +1 -0
  183. package/dist/cjs/{infra → services}/errors/index.js +21 -38
  184. package/dist/cjs/services/errors/index.js.map +1 -0
  185. package/dist/cjs/services/i18n/index.js +43 -0
  186. package/dist/cjs/services/i18n/index.js.map +1 -0
  187. package/dist/cjs/{infra → services}/i18n/zh-cn.json +1 -1
  188. package/dist/cjs/{infra → services}/index.js +12 -9
  189. package/dist/cjs/services/index.js.map +1 -0
  190. package/dist/cjs/services/preference.js.map +1 -0
  191. package/dist/cjs/{service → services}/render/index.js +36 -13
  192. package/dist/cjs/services/render/index.js.map +1 -0
  193. package/dist/cjs/utils/bsorDecoder.js +329 -0
  194. package/dist/cjs/utils/bsorDecoder.js.map +1 -0
  195. package/dist/cjs/utils/index.js +6 -1
  196. package/dist/cjs/utils/index.js.map +1 -1
  197. package/dist/cjs/utils/platform.js +38 -0
  198. package/dist/cjs/utils/platform.js.map +1 -0
  199. package/dist/esm/cmd/bind/bind-beatleader.js +9 -12
  200. package/dist/esm/cmd/bind/bind-beatleader.js.map +1 -1
  201. package/dist/esm/cmd/bind/bind-beatsaver.js +7 -12
  202. package/dist/esm/cmd/bind/bind-beatsaver.js.map +1 -1
  203. package/dist/esm/cmd/bind/bind-id-beatleader.js +10 -13
  204. package/dist/esm/cmd/bind/bind-id-beatleader.js.map +1 -1
  205. package/dist/esm/cmd/bind/bind-id-beatsaver.js +9 -13
  206. package/dist/esm/cmd/bind/bind-id-beatsaver.js.map +1 -1
  207. package/dist/esm/cmd/bind/bind-scoresaber.js +10 -15
  208. package/dist/esm/cmd/bind/bind-scoresaber.js.map +1 -1
  209. package/dist/esm/cmd/bind/index.js +5 -5
  210. package/dist/esm/cmd/bind/index.js.map +1 -1
  211. package/dist/esm/cmd/bsmap/id-search.js +2 -2
  212. package/dist/esm/cmd/bsmap/id-search.js.map +1 -1
  213. package/dist/esm/cmd/bsmap/key-search.js +1 -1
  214. package/dist/esm/cmd/bsmap/key-search.js.map +1 -1
  215. package/dist/esm/cmd/bsmap/latest.js +2 -2
  216. package/dist/esm/cmd/bsmap/latest.js.map +1 -1
  217. package/dist/esm/cmd/deprecated/tmp.js +3 -3
  218. package/dist/esm/cmd/deprecated/tmp.js.map +1 -1
  219. package/dist/esm/cmd/index.js +11 -11
  220. package/dist/esm/cmd/index.js.map +1 -1
  221. package/dist/esm/cmd/rank.js +7 -7
  222. package/dist/esm/cmd/rank.js.map +1 -1
  223. package/dist/esm/cmd/score.js +14 -18
  224. package/dist/esm/cmd/score.js.map +1 -1
  225. package/dist/esm/cmd/subscribe/beatleader.js +4 -4
  226. package/dist/esm/cmd/subscribe/beatleader.js.map +1 -1
  227. package/dist/esm/cmd/subscribe/beatsaver.js +4 -4
  228. package/dist/esm/cmd/subscribe/beatsaver.js.map +1 -1
  229. package/dist/esm/cmd/subscribe/id-beatleader-score.js +5 -5
  230. package/dist/esm/cmd/subscribe/id-beatleader-score.js.map +1 -1
  231. package/dist/esm/cmd/subscribe/id-beatsaver-mapper.js +5 -5
  232. package/dist/esm/cmd/subscribe/id-beatsaver-mapper.js.map +1 -1
  233. package/dist/esm/cmd/subscribe/index.js +11 -11
  234. package/dist/esm/cmd/subscribe/index.js.map +1 -1
  235. package/dist/esm/cmd/subscribe/subjoin.js +5 -5
  236. package/dist/esm/cmd/subscribe/subjoin.js.map +1 -1
  237. package/dist/esm/cmd/subscribe/subleave.js +9 -9
  238. package/dist/esm/cmd/subscribe/subleave.js.map +1 -1
  239. package/dist/esm/cmd/subscribe/unsubscribe.js +7 -7
  240. package/dist/esm/cmd/subscribe/unsubscribe.js.map +1 -1
  241. package/dist/esm/common/cache.js.map +1 -0
  242. package/dist/esm/common/fetch/error.js.map +1 -0
  243. package/dist/esm/common/fetch/index.js +35 -0
  244. package/dist/esm/common/fetch/index.js.map +1 -0
  245. package/dist/esm/{infra/support → common}/fetch/ofetch.js +4 -10
  246. package/dist/esm/common/fetch/ofetch.js.map +1 -0
  247. package/dist/esm/common/i18n/index.js +32 -0
  248. package/dist/esm/common/i18n/index.js.map +1 -0
  249. package/dist/esm/common/i18n/parser.js.map +1 -0
  250. package/dist/esm/{infra/i18n/index.js → common/i18n/util.js} +4 -56
  251. package/dist/esm/common/i18n/util.js.map +1 -0
  252. package/dist/esm/{infra/support → common}/render/index.js +53 -13
  253. package/dist/esm/common/render/index.js.map +1 -0
  254. package/dist/esm/common/render/puppeteer.js.map +1 -0
  255. package/dist/esm/{infra → common}/s3/index.js +32 -12
  256. package/dist/esm/common/s3/index.js.map +1 -0
  257. package/dist/esm/components/components/RankDifficulty.js +61 -84
  258. package/dist/esm/components/components/RankDifficulty.js.map +1 -1
  259. package/dist/esm/components/components/base/avatar.js +2 -2
  260. package/dist/esm/components/components/base/avatar.js.map +1 -1
  261. package/dist/esm/components/components/bl-rank-score-item.js +26 -87
  262. package/dist/esm/components/components/bl-rank-score-item.js.map +1 -1
  263. package/dist/esm/components/components/bl-score-item.js +29 -69
  264. package/dist/esm/components/components/bl-score-item.js.map +1 -1
  265. package/dist/esm/components/components/characteristic.js +107 -118
  266. package/dist/esm/components/components/characteristic.js.map +1 -1
  267. package/dist/esm/components/components/flag.js +7 -14
  268. package/dist/esm/components/components/flag.js.map +1 -1
  269. package/dist/esm/components/components/icons/BeatLeader.js +56 -71
  270. package/dist/esm/components/components/icons/BeatLeader.js.map +1 -1
  271. package/dist/esm/components/components/icons/RankIcon.js +3 -7
  272. package/dist/esm/components/components/icons/RankIcon.js.map +1 -1
  273. package/dist/esm/components/components/icons/ScoreSaberIcon.js +276 -312
  274. package/dist/esm/components/components/icons/ScoreSaberIcon.js.map +1 -1
  275. package/dist/esm/components/components/progressbar.js +2 -2
  276. package/dist/esm/components/components/progressbar.js.map +1 -1
  277. package/dist/esm/components/components/scoreItem.js +27 -63
  278. package/dist/esm/components/components/scoreItem.js.map +1 -1
  279. package/dist/esm/components/components/scoregraph.js +5 -5
  280. package/dist/esm/components/components/scoregraph.js.map +1 -1
  281. package/dist/esm/components/components/skill-graph.js +148 -164
  282. package/dist/esm/components/components/skill-graph.js.map +1 -1
  283. package/dist/esm/components/components/socre-badge.js +8 -10
  284. package/dist/esm/components/components/socre-badge.js.map +1 -1
  285. package/dist/esm/components/components/ss-rank-score-item.js +26 -87
  286. package/dist/esm/components/components/ss-rank-score-item.js.map +1 -1
  287. package/dist/esm/components/components/ss-score-item.js +28 -65
  288. package/dist/esm/components/components/ss-score-item.js.map +1 -1
  289. package/dist/esm/components/index.js +3 -43
  290. package/dist/esm/components/index.js.map +1 -1
  291. package/dist/esm/components/pages/bl-player.js +91 -136
  292. package/dist/esm/components/pages/bl-player.js.map +1 -1
  293. package/dist/esm/components/pages/bl-score-with-rank.js +114 -221
  294. package/dist/esm/components/pages/bl-score-with-rank.js.map +1 -1
  295. package/dist/esm/components/pages/bl-score.js +67 -169
  296. package/dist/esm/components/pages/bl-score.js.map +1 -1
  297. package/dist/esm/components/pages/bs-map.js +95 -166
  298. package/dist/esm/components/pages/bs-map.js.map +1 -1
  299. package/dist/esm/components/pages/index.js +21 -21
  300. package/dist/esm/components/pages/index.js.map +1 -1
  301. package/dist/esm/components/pages/ss-player.js +48 -77
  302. package/dist/esm/components/pages/ss-player.js.map +1 -1
  303. package/dist/esm/components/utils/bl/bsorReplayAcc.js +2 -2
  304. package/dist/esm/components/utils/bl/bsorReplayAcc.js.map +1 -1
  305. package/dist/esm/components/utils/bl/getPart.js.map +1 -1
  306. package/dist/esm/components/utils/bl/stastic.js.map +1 -1
  307. package/dist/esm/components/utils/format.js +3 -3
  308. package/dist/esm/components/utils/format.js.map +1 -1
  309. package/dist/esm/components/utils/getMods.js.map +1 -1
  310. package/dist/esm/components/utils/index.js +2 -2
  311. package/dist/esm/config.js +32 -0
  312. package/dist/esm/config.js.map +1 -1
  313. package/dist/esm/{interface → core}/cmd/builder.js +4 -4
  314. package/dist/esm/core/cmd/builder.js.map +1 -0
  315. package/dist/esm/core/domain.js +1 -0
  316. package/dist/esm/core/error.js +16 -0
  317. package/dist/esm/core/error.js.map +1 -0
  318. package/dist/esm/core/event.js +1 -0
  319. package/dist/esm/core/index.js +10 -0
  320. package/dist/esm/core/index.js.map +1 -0
  321. package/dist/esm/core/session.js +1 -0
  322. package/dist/esm/events/schedules/index.js +16 -0
  323. package/dist/esm/events/schedules/index.js.map +1 -0
  324. package/dist/esm/{schedules → events/schedules}/temp.js +7 -3
  325. package/dist/esm/events/schedules/temp.js.map +1 -0
  326. package/dist/esm/{ws → events/ws}/beatleader.js +6 -6
  327. package/dist/esm/events/ws/beatleader.js.map +1 -0
  328. package/dist/esm/{ws → events/ws}/beatsaver.js +11 -11
  329. package/dist/esm/events/ws/beatsaver.js.map +1 -0
  330. package/dist/esm/events/ws/index.js +4 -0
  331. package/dist/esm/events/ws/index.js.map +1 -0
  332. package/dist/esm/index.js +15 -10
  333. package/dist/esm/index.js.map +1 -1
  334. package/dist/esm/interface/db/index.js +0 -1
  335. package/dist/esm/interface/db/index.js.map +1 -1
  336. package/dist/esm/interface/index.js +9 -15
  337. package/dist/esm/interface/index.js.map +1 -1
  338. package/dist/esm/{service → services}/api/base/aioclient.js +1 -1
  339. package/dist/esm/services/api/base/aioclient.js.map +1 -0
  340. package/dist/esm/{service → services}/api/base/blclient.js +1 -1
  341. package/dist/esm/services/api/base/blclient.js.map +1 -0
  342. package/dist/esm/{service → services}/api/base/bsclient.js +2 -2
  343. package/dist/esm/services/api/base/bsclient.js.map +1 -0
  344. package/dist/esm/services/api/base/index.js +5 -0
  345. package/dist/esm/services/api/base/index.js.map +1 -0
  346. package/dist/esm/{service → services}/api/base/ssclient.js +2 -2
  347. package/dist/esm/services/api/base/ssclient.js.map +1 -0
  348. package/dist/esm/{service → services}/api/index.js +16 -8
  349. package/dist/esm/services/api/index.js.map +1 -0
  350. package/dist/esm/services/api/interfaces/beatleader/index.js +6 -0
  351. package/dist/esm/services/api/interfaces/beatleader/index.js.map +1 -0
  352. package/dist/esm/services/api/interfaces/beatsaver/index.js +6 -0
  353. package/dist/esm/services/api/interfaces/beatsaver/index.js.map +1 -0
  354. package/dist/esm/services/api/interfaces/scoresaber/index.js +4 -0
  355. package/dist/esm/services/api/interfaces/scoresaber/index.js.map +1 -0
  356. package/dist/esm/services/api/sortScore.js.map +1 -0
  357. package/dist/esm/{infra → services}/errors/index.js +1 -17
  358. package/dist/esm/services/errors/index.js.map +1 -0
  359. package/dist/esm/services/i18n/index.js +21 -0
  360. package/dist/esm/services/i18n/index.js.map +1 -0
  361. package/dist/esm/services/index.js +9 -0
  362. package/dist/esm/services/index.js.map +1 -0
  363. package/dist/esm/services/preference.js.map +1 -0
  364. package/dist/esm/{service → services}/render/index.js +34 -11
  365. package/dist/esm/services/render/index.js.map +1 -0
  366. package/dist/esm/utils/bsorDecoder.js +301 -0
  367. package/dist/esm/utils/bsorDecoder.js.map +1 -0
  368. package/dist/esm/utils/index.js +2 -0
  369. package/dist/esm/utils/index.js.map +1 -1
  370. package/dist/esm/utils/platform.js +14 -0
  371. package/dist/esm/utils/platform.js.map +1 -0
  372. package/dist/types/index.d.ts +1376 -48
  373. package/package.json +20 -20
  374. package/dist/cjs/components/utils/canvas.js +0 -2
  375. package/dist/cjs/components/utils/canvas.js.map +0 -1
  376. package/dist/cjs/infra/errors/index.js.map +0 -1
  377. package/dist/cjs/infra/i18n/index.js.map +0 -1
  378. package/dist/cjs/infra/i18n/parser.js.map +0 -1
  379. package/dist/cjs/infra/index.js.map +0 -1
  380. package/dist/cjs/infra/s3/index.js.map +0 -1
  381. package/dist/cjs/infra/support/cache.js.map +0 -1
  382. package/dist/cjs/infra/support/fetch/error.js.map +0 -1
  383. package/dist/cjs/infra/support/fetch/index.js.map +0 -1
  384. package/dist/cjs/infra/support/fetch/ofetch.js.map +0 -1
  385. package/dist/cjs/infra/support/render/index.js.map +0 -1
  386. package/dist/cjs/infra/support/render/puppeteer.js.map +0 -1
  387. package/dist/cjs/interface/bot.js.map +0 -1
  388. package/dist/cjs/interface/cmd/builder.js.map +0 -1
  389. package/dist/cjs/interface/cmd/type.js.map +0 -1
  390. package/dist/cjs/interface/logger.js.map +0 -1
  391. package/dist/cjs/schedules/index.js.map +0 -1
  392. package/dist/cjs/schedules/interface.js +0 -16
  393. package/dist/cjs/schedules/interface.js.map +0 -1
  394. package/dist/cjs/schedules/temp.js.map +0 -1
  395. package/dist/cjs/service/api/base/aioclient.js.map +0 -1
  396. package/dist/cjs/service/api/base/blclient.js.map +0 -1
  397. package/dist/cjs/service/api/base/bsclient.js.map +0 -1
  398. package/dist/cjs/service/api/base/index.js.map +0 -1
  399. package/dist/cjs/service/api/base/ssclient.js.map +0 -1
  400. package/dist/cjs/service/api/index.js.map +0 -1
  401. package/dist/cjs/service/api/interfaces/aiosaber/index.js.map +0 -1
  402. package/dist/cjs/service/api/interfaces/beatleader/bsor.js.map +0 -1
  403. package/dist/cjs/service/api/interfaces/beatleader/index.js.map +0 -1
  404. package/dist/cjs/service/api/interfaces/beatleader/req.js.map +0 -1
  405. package/dist/cjs/service/api/interfaces/beatleader/score.js.map +0 -1
  406. package/dist/cjs/service/api/interfaces/beatleader/user.js.map +0 -1
  407. package/dist/cjs/service/api/interfaces/beatleader/ws.js.map +0 -1
  408. package/dist/cjs/service/api/interfaces/beatsaver/alert.js.map +0 -1
  409. package/dist/cjs/service/api/interfaces/beatsaver/bsmap.js.map +0 -1
  410. package/dist/cjs/service/api/interfaces/beatsaver/index.js.map +0 -1
  411. package/dist/cjs/service/api/interfaces/beatsaver/resp.js.map +0 -1
  412. package/dist/cjs/service/api/interfaces/beatsaver/user.js.map +0 -1
  413. package/dist/cjs/service/api/interfaces/beatsaver/ws.js.map +0 -1
  414. package/dist/cjs/service/api/interfaces/index.js.map +0 -1
  415. package/dist/cjs/service/api/interfaces/scoresaber/index.js.map +0 -1
  416. package/dist/cjs/service/api/interfaces/scoresaber/item.js.map +0 -1
  417. package/dist/cjs/service/api/interfaces/scoresaber/leaderboard.js.map +0 -1
  418. package/dist/cjs/service/api/interfaces/scoresaber/resp.js.map +0 -1
  419. package/dist/cjs/service/api/interfaces/scoresaber/user.js.map +0 -1
  420. package/dist/cjs/service/api/interfaces/scoresaber/ws.js.map +0 -1
  421. package/dist/cjs/service/api/sortScore.js.map +0 -1
  422. package/dist/cjs/service/index.js +0 -16
  423. package/dist/cjs/service/index.js.map +0 -1
  424. package/dist/cjs/service/preference.js.map +0 -1
  425. package/dist/cjs/service/render/index.js.map +0 -1
  426. package/dist/cjs/service/render/interfaces.js +0 -16
  427. package/dist/cjs/service/render/interfaces.js.map +0 -1
  428. package/dist/cjs/ws/beatleader.js.map +0 -1
  429. package/dist/cjs/ws/beatsaver.js.map +0 -1
  430. package/dist/cjs/ws/bl-filter.js +0 -1
  431. package/dist/cjs/ws/handler.js.map +0 -1
  432. package/dist/cjs/ws/index.js.map +0 -1
  433. package/dist/cjs/ws/scoresaber.js +0 -75
  434. package/dist/cjs/ws/scoresaber.js.map +0 -1
  435. package/dist/esm/components/utils/canvas.js +0 -2
  436. package/dist/esm/components/utils/canvas.js.map +0 -1
  437. package/dist/esm/infra/errors/index.js.map +0 -1
  438. package/dist/esm/infra/i18n/index.js.map +0 -1
  439. package/dist/esm/infra/i18n/parser.js.map +0 -1
  440. package/dist/esm/infra/index.js +0 -6
  441. package/dist/esm/infra/index.js.map +0 -1
  442. package/dist/esm/infra/s3/index.js.map +0 -1
  443. package/dist/esm/infra/support/cache.js.map +0 -1
  444. package/dist/esm/infra/support/fetch/error.js.map +0 -1
  445. package/dist/esm/infra/support/fetch/index.js +0 -33
  446. package/dist/esm/infra/support/fetch/index.js.map +0 -1
  447. package/dist/esm/infra/support/fetch/ofetch.js.map +0 -1
  448. package/dist/esm/infra/support/render/index.js.map +0 -1
  449. package/dist/esm/infra/support/render/puppeteer.js.map +0 -1
  450. package/dist/esm/interface/bot.js +0 -1
  451. package/dist/esm/interface/cmd/builder.js.map +0 -1
  452. package/dist/esm/schedules/index.js +0 -15
  453. package/dist/esm/schedules/index.js.map +0 -1
  454. package/dist/esm/schedules/interface.js +0 -1
  455. package/dist/esm/schedules/temp.js.map +0 -1
  456. package/dist/esm/service/api/base/aioclient.js.map +0 -1
  457. package/dist/esm/service/api/base/blclient.js.map +0 -1
  458. package/dist/esm/service/api/base/bsclient.js.map +0 -1
  459. package/dist/esm/service/api/base/index.js +0 -5
  460. package/dist/esm/service/api/base/index.js.map +0 -1
  461. package/dist/esm/service/api/base/ssclient.js.map +0 -1
  462. package/dist/esm/service/api/index.js.map +0 -1
  463. package/dist/esm/service/api/interfaces/beatleader/index.js +0 -6
  464. package/dist/esm/service/api/interfaces/beatleader/index.js.map +0 -1
  465. package/dist/esm/service/api/interfaces/beatsaver/index.js +0 -6
  466. package/dist/esm/service/api/interfaces/beatsaver/index.js.map +0 -1
  467. package/dist/esm/service/api/interfaces/scoresaber/index.js +0 -4
  468. package/dist/esm/service/api/interfaces/scoresaber/index.js.map +0 -1
  469. package/dist/esm/service/api/sortScore.js.map +0 -1
  470. package/dist/esm/service/index.js +0 -1
  471. package/dist/esm/service/index.js.map +0 -1
  472. package/dist/esm/service/preference.js.map +0 -1
  473. package/dist/esm/service/render/index.js.map +0 -1
  474. package/dist/esm/service/render/interfaces.js +0 -1
  475. package/dist/esm/service/render/interfaces.js.map +0 -1
  476. package/dist/esm/ws/beatleader.js.map +0 -1
  477. package/dist/esm/ws/beatsaver.js.map +0 -1
  478. package/dist/esm/ws/bl-filter.js +0 -1
  479. package/dist/esm/ws/bl-filter.js.map +0 -1
  480. package/dist/esm/ws/index.js +0 -5
  481. package/dist/esm/ws/index.js.map +0 -1
  482. package/dist/esm/ws/scoresaber.js +0 -53
  483. package/dist/esm/ws/scoresaber.js.map +0 -1
  484. package/dist/types/cmd/bind/bind-beatleader.d.ts +0 -34
  485. package/dist/types/cmd/bind/bind-beatsaver.d.ts +0 -34
  486. package/dist/types/cmd/bind/bind-id-beatleader.d.ts +0 -34
  487. package/dist/types/cmd/bind/bind-id-beatsaver.d.ts +0 -34
  488. package/dist/types/cmd/bind/bind-scoresaber.d.ts +0 -34
  489. package/dist/types/cmd/bind/index.d.ts +0 -41
  490. package/dist/types/cmd/bsmap/id-search.d.ts +0 -41
  491. package/dist/types/cmd/bsmap/key-search.d.ts +0 -41
  492. package/dist/types/cmd/bsmap/latest.d.ts +0 -41
  493. package/dist/types/cmd/config/index.d.ts +0 -2
  494. package/dist/types/cmd/deprecated/tmp.d.ts +0 -41
  495. package/dist/types/cmd/index.d.ts +0 -34
  496. package/dist/types/cmd/rank.d.ts +0 -41
  497. package/dist/types/cmd/score.d.ts +0 -41
  498. package/dist/types/cmd/subscribe/beatleader.d.ts +0 -34
  499. package/dist/types/cmd/subscribe/beatsaver.d.ts +0 -34
  500. package/dist/types/cmd/subscribe/id-beatleader-score.d.ts +0 -34
  501. package/dist/types/cmd/subscribe/id-beatsaver-mapper.d.ts +0 -34
  502. package/dist/types/cmd/subscribe/index.d.ts +0 -41
  503. package/dist/types/cmd/subscribe/subjoin.d.ts +0 -41
  504. package/dist/types/cmd/subscribe/subleave.d.ts +0 -41
  505. package/dist/types/cmd/subscribe/unsubscribe.d.ts +0 -41
  506. package/dist/types/components/components/RankDifficulty.d.ts +0 -10
  507. package/dist/types/components/components/base/avatar.d.ts +0 -10
  508. package/dist/types/components/components/bl-rank-score-item.d.ts +0 -21
  509. package/dist/types/components/components/bl-score-item.d.ts +0 -10
  510. package/dist/types/components/components/characteristic.d.ts +0 -9
  511. package/dist/types/components/components/flag.d.ts +0 -9
  512. package/dist/types/components/components/icons/BeatLeader.d.ts +0 -6
  513. package/dist/types/components/components/icons/RankIcon.d.ts +0 -8
  514. package/dist/types/components/components/icons/ScoreSaberIcon.d.ts +0 -6
  515. package/dist/types/components/components/progressbar.d.ts +0 -8
  516. package/dist/types/components/components/scoreItem.d.ts +0 -8
  517. package/dist/types/components/components/scoregraph.d.ts +0 -15
  518. package/dist/types/components/components/skill-graph.d.ts +0 -9
  519. package/dist/types/components/components/socre-badge.d.ts +0 -9
  520. package/dist/types/components/components/ss-rank-score-item.d.ts +0 -21
  521. package/dist/types/components/components/ss-score-item.d.ts +0 -8
  522. package/dist/types/components/index.d.ts +0 -5
  523. package/dist/types/components/pages/bl-player.d.ts +0 -11
  524. package/dist/types/components/pages/bl-score-with-rank.d.ts +0 -18
  525. package/dist/types/components/pages/bl-score.d.ts +0 -15
  526. package/dist/types/components/pages/bs-map.d.ts +0 -11
  527. package/dist/types/components/pages/index.d.ts +0 -14
  528. package/dist/types/components/pages/ss-player.d.ts +0 -13
  529. package/dist/types/components/utils/bl/beatleader.d.ts +0 -15
  530. package/dist/types/components/utils/bl/blheadset.d.ts +0 -275
  531. package/dist/types/components/utils/bl/bsorDecoder.d.ts +0 -189
  532. package/dist/types/components/utils/bl/bsorReplayAcc.d.ts +0 -38
  533. package/dist/types/components/utils/bl/getPart.d.ts +0 -9
  534. package/dist/types/components/utils/bl/stastic.d.ts +0 -3
  535. package/dist/types/components/utils/canvas.d.ts +0 -2
  536. package/dist/types/components/utils/format.d.ts +0 -8
  537. package/dist/types/components/utils/getMods.d.ts +0 -5
  538. package/dist/types/components/utils/index.d.ts +0 -6
  539. package/dist/types/components/utils/qrcode.d.ts +0 -3
  540. package/dist/types/components/utils/sleep.d.ts +0 -3
  541. package/dist/types/components/utils/tag-format.d.ts +0 -3
  542. package/dist/types/components/utils/tw-join.d.ts +0 -5
  543. package/dist/types/config.d.ts +0 -30
  544. package/dist/types/index-Dagy_c8G.d.ts +0 -74
  545. package/dist/types/infra/errors/index.d.ts +0 -69
  546. package/dist/types/infra/i18n/index.d.ts +0 -4
  547. package/dist/types/infra/i18n/parser.d.ts +0 -16
  548. package/dist/types/infra/index.d.ts +0 -6
  549. package/dist/types/infra/s3/index.d.ts +0 -20
  550. package/dist/types/infra/support/cache.d.ts +0 -6
  551. package/dist/types/infra/support/fetch/error.d.ts +0 -11
  552. package/dist/types/infra/support/fetch/index.d.ts +0 -7
  553. package/dist/types/infra/support/fetch/ofetch.d.ts +0 -24
  554. package/dist/types/infra/support/render/index.d.ts +0 -38
  555. package/dist/types/infra/support/render/puppeteer.d.ts +0 -43
  556. package/dist/types/interface/bot.d.ts +0 -22
  557. package/dist/types/interface/cmd/builder.d.ts +0 -53
  558. package/dist/types/interface/cmd/type.d.ts +0 -30
  559. package/dist/types/interface/db/index.d.ts +0 -45
  560. package/dist/types/interface/db/models.d.ts +0 -41
  561. package/dist/types/interface/index.d.ts +0 -30
  562. package/dist/types/interface/logger.d.ts +0 -8
  563. package/dist/types/schedules/index.d.ts +0 -40
  564. package/dist/types/schedules/interface.d.ts +0 -45
  565. package/dist/types/schedules/temp.d.ts +0 -35
  566. package/dist/types/service/api/base/aioclient.d.ts +0 -13
  567. package/dist/types/service/api/base/blclient.d.ts +0 -28
  568. package/dist/types/service/api/base/bsclient.d.ts +0 -29
  569. package/dist/types/service/api/base/index.d.ts +0 -19
  570. package/dist/types/service/api/base/ssclient.d.ts +0 -17
  571. package/dist/types/service/api/index.d.ts +0 -59
  572. package/dist/types/service/api/interfaces/aiosaber/index.d.ts +0 -9
  573. package/dist/types/service/api/interfaces/beatleader/bsor.d.ts +0 -113
  574. package/dist/types/service/api/interfaces/beatleader/index.d.ts +0 -5
  575. package/dist/types/service/api/interfaces/beatleader/req.d.ts +0 -22
  576. package/dist/types/service/api/interfaces/beatleader/score.d.ts +0 -164
  577. package/dist/types/service/api/interfaces/beatleader/user.d.ts +0 -173
  578. package/dist/types/service/api/interfaces/beatleader/ws.d.ts +0 -90
  579. package/dist/types/service/api/interfaces/beatsaver/alert.d.ts +0 -20
  580. package/dist/types/service/api/interfaces/beatsaver/bsmap.d.ts +0 -70
  581. package/dist/types/service/api/interfaces/beatsaver/index.d.ts +0 -13
  582. package/dist/types/service/api/interfaces/beatsaver/resp.d.ts +0 -11
  583. package/dist/types/service/api/interfaces/beatsaver/user.d.ts +0 -10
  584. package/dist/types/service/api/interfaces/beatsaver/ws.d.ts +0 -13
  585. package/dist/types/service/api/interfaces/index.d.ts +0 -14
  586. package/dist/types/service/api/interfaces/scoresaber/index.d.ts +0 -3
  587. package/dist/types/service/api/interfaces/scoresaber/item.d.ts +0 -67
  588. package/dist/types/service/api/interfaces/scoresaber/leaderboard.d.ts +0 -13
  589. package/dist/types/service/api/interfaces/scoresaber/resp.d.ts +0 -12
  590. package/dist/types/service/api/interfaces/scoresaber/user.d.ts +0 -35
  591. package/dist/types/service/api/interfaces/scoresaber/ws.d.ts +0 -80
  592. package/dist/types/service/api/sortScore.d.ts +0 -5
  593. package/dist/types/service/index.d.ts +0 -30
  594. package/dist/types/service/preference.d.ts +0 -38
  595. package/dist/types/service/render/index.d.ts +0 -43
  596. package/dist/types/service/render/interfaces.d.ts +0 -30
  597. package/dist/types/utils/index.d.ts +0 -5
  598. package/dist/types/ws/beatleader.d.ts +0 -47
  599. package/dist/types/ws/beatsaver.d.ts +0 -52
  600. package/dist/types/ws/bl-filter.d.ts +0 -2
  601. package/dist/types/ws/handler.d.ts +0 -8
  602. package/dist/types/ws/index.d.ts +0 -36
  603. package/dist/types/ws/scoresaber.d.ts +0 -47
  604. /package/dist/cjs/{infra/support → common}/cache.js +0 -0
  605. /package/dist/cjs/{infra/support → common}/fetch/error.js +0 -0
  606. /package/dist/cjs/{infra → common}/i18n/parser.js +0 -0
  607. /package/dist/cjs/{infra/support → common}/render/puppeteer.js +0 -0
  608. /package/dist/cjs/{interface → core}/cmd/type.js +0 -0
  609. /package/dist/cjs/{interface → core}/logger.js +0 -0
  610. /package/dist/cjs/{ws → events/ws}/handler.js +0 -0
  611. /package/dist/cjs/{service → services}/api/interfaces/aiosaber/index.js +0 -0
  612. /package/dist/cjs/{service → services}/api/interfaces/beatleader/bsor.js +0 -0
  613. /package/dist/cjs/{service → services}/api/interfaces/beatleader/req.js +0 -0
  614. /package/dist/cjs/{service → services}/api/interfaces/beatleader/score.js +0 -0
  615. /package/dist/cjs/{service → services}/api/interfaces/beatleader/user.js +0 -0
  616. /package/dist/cjs/{service → services}/api/interfaces/beatleader/ws.js +0 -0
  617. /package/dist/cjs/{service → services}/api/interfaces/beatsaver/alert.js +0 -0
  618. /package/dist/cjs/{service → services}/api/interfaces/beatsaver/bsmap.js +0 -0
  619. /package/dist/cjs/{service → services}/api/interfaces/beatsaver/resp.js +0 -0
  620. /package/dist/cjs/{service → services}/api/interfaces/beatsaver/user.js +0 -0
  621. /package/dist/cjs/{service → services}/api/interfaces/beatsaver/ws.js +0 -0
  622. /package/dist/cjs/{service → services}/api/interfaces/index.js +0 -0
  623. /package/dist/cjs/{service → services}/api/interfaces/scoresaber/item.js +0 -0
  624. /package/dist/cjs/{service → services}/api/interfaces/scoresaber/leaderboard.js +0 -0
  625. /package/dist/cjs/{service → services}/api/interfaces/scoresaber/resp.js +0 -0
  626. /package/dist/cjs/{service → services}/api/interfaces/scoresaber/user.js +0 -0
  627. /package/dist/cjs/{service → services}/api/interfaces/scoresaber/ws.js +0 -0
  628. /package/dist/cjs/{service → services}/api/sortScore.js +0 -0
  629. /package/dist/cjs/{service → services}/preference.js +0 -0
  630. /package/dist/esm/{infra/support → common}/cache.js +0 -0
  631. /package/dist/esm/{infra/support → common}/fetch/error.js +0 -0
  632. /package/dist/esm/{infra → common}/i18n/parser.js +0 -0
  633. /package/dist/esm/{infra/support → common}/render/puppeteer.js +0 -0
  634. /package/dist/esm/{interface → core}/cmd/type.js +0 -0
  635. /package/dist/esm/{interface → core}/cmd/type.js.map +0 -0
  636. /package/dist/{cjs/ws/bl-filter.js.map → esm/core/domain.js.map} +0 -0
  637. /package/dist/esm/{interface/bot.js.map → core/event.js.map} +0 -0
  638. /package/dist/esm/{interface → core}/logger.js +0 -0
  639. /package/dist/esm/{interface → core}/logger.js.map +0 -0
  640. /package/dist/esm/{schedules/interface.js.map → core/session.js.map} +0 -0
  641. /package/dist/esm/{ws → events/ws}/handler.js +0 -0
  642. /package/dist/esm/{ws → events/ws}/handler.js.map +0 -0
  643. /package/dist/esm/{service → services}/api/interfaces/aiosaber/index.js +0 -0
  644. /package/dist/esm/{service → services}/api/interfaces/aiosaber/index.js.map +0 -0
  645. /package/dist/esm/{service → services}/api/interfaces/beatleader/bsor.js +0 -0
  646. /package/dist/esm/{service → services}/api/interfaces/beatleader/bsor.js.map +0 -0
  647. /package/dist/esm/{service → services}/api/interfaces/beatleader/req.js +0 -0
  648. /package/dist/esm/{service → services}/api/interfaces/beatleader/req.js.map +0 -0
  649. /package/dist/esm/{service → services}/api/interfaces/beatleader/score.js +0 -0
  650. /package/dist/esm/{service → services}/api/interfaces/beatleader/score.js.map +0 -0
  651. /package/dist/esm/{service → services}/api/interfaces/beatleader/user.js +0 -0
  652. /package/dist/esm/{service → services}/api/interfaces/beatleader/user.js.map +0 -0
  653. /package/dist/esm/{service → services}/api/interfaces/beatleader/ws.js +0 -0
  654. /package/dist/esm/{service → services}/api/interfaces/beatleader/ws.js.map +0 -0
  655. /package/dist/esm/{service → services}/api/interfaces/beatsaver/alert.js +0 -0
  656. /package/dist/esm/{service → services}/api/interfaces/beatsaver/alert.js.map +0 -0
  657. /package/dist/esm/{service → services}/api/interfaces/beatsaver/bsmap.js +0 -0
  658. /package/dist/esm/{service → services}/api/interfaces/beatsaver/bsmap.js.map +0 -0
  659. /package/dist/esm/{service → services}/api/interfaces/beatsaver/resp.js +0 -0
  660. /package/dist/esm/{service → services}/api/interfaces/beatsaver/resp.js.map +0 -0
  661. /package/dist/esm/{service → services}/api/interfaces/beatsaver/user.js +0 -0
  662. /package/dist/esm/{service → services}/api/interfaces/beatsaver/user.js.map +0 -0
  663. /package/dist/esm/{service → services}/api/interfaces/beatsaver/ws.js +0 -0
  664. /package/dist/esm/{service → services}/api/interfaces/beatsaver/ws.js.map +0 -0
  665. /package/dist/esm/{service → services}/api/interfaces/index.js +0 -0
  666. /package/dist/esm/{service → services}/api/interfaces/index.js.map +0 -0
  667. /package/dist/esm/{service → services}/api/interfaces/scoresaber/item.js +0 -0
  668. /package/dist/esm/{service → services}/api/interfaces/scoresaber/item.js.map +0 -0
  669. /package/dist/esm/{service → services}/api/interfaces/scoresaber/leaderboard.js +0 -0
  670. /package/dist/esm/{service → services}/api/interfaces/scoresaber/leaderboard.js.map +0 -0
  671. /package/dist/esm/{service → services}/api/interfaces/scoresaber/resp.js +0 -0
  672. /package/dist/esm/{service → services}/api/interfaces/scoresaber/resp.js.map +0 -0
  673. /package/dist/esm/{service → services}/api/interfaces/scoresaber/user.js +0 -0
  674. /package/dist/esm/{service → services}/api/interfaces/scoresaber/user.js.map +0 -0
  675. /package/dist/esm/{service → services}/api/interfaces/scoresaber/ws.js +0 -0
  676. /package/dist/esm/{service → services}/api/interfaces/scoresaber/ws.js.map +0 -0
  677. /package/dist/esm/{service → services}/api/sortScore.js +0 -0
  678. /package/dist/esm/{service → services}/preference.js +0 -0
@@ -17,6 +17,18 @@ var __spreadValues = (a, b) => {
17
17
  return a;
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
20
32
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
21
33
  var __async = (__this, __arguments, generator) => {
22
34
  return new Promise((resolve, reject) => {
@@ -38,15 +50,31 @@ var __async = (__this, __arguments, generator) => {
38
50
  step((generator = generator.apply(__this, __arguments)).next());
39
51
  });
40
52
  };
41
- import { html2imgBuffer, RenderOptions, url2imgBuffer } from "./puppeteer";
53
+ import { html2imgBuffer, url2imgBuffer } from "./puppeteer.js";
42
54
  import { Puppeteer } from "puppeteer-core";
43
- import { Fetch } from "../../../infra/support/fetch";
55
+ import { createFetch } from "../fetch/index.js";
56
+ import { z } from "zod/v4";
57
+ const common = z.object({
58
+ defaultWaitTimeout: z.number().optional(),
59
+ waitTimeout: z.number().optional()
60
+ });
61
+ const cfConfig = z.object({
62
+ cfAccountId: z.string().min(1, "Cloudflare account id is required"),
63
+ cfAPIKey: z.string().min(1, "Cloudflare API key is required")
64
+ });
65
+ const puppeteerConfig = z.object({
66
+ puppeteerURL: z.string().describe("remote puppeteer url, eg: wss://browserless/xxx, https://browserless/xxx").optional()
67
+ });
68
+ const strictRenderConfig = z.discriminatedUnion("mode", [
69
+ z.object(__spreadValues(__spreadValues({ mode: z.literal("cf") }, cfConfig.shape), common.shape)),
70
+ z.object(__spreadValues(__spreadValues({ mode: z.literal("puppeteer") }, puppeteerConfig.shape), common.shape)),
71
+ z.object(__spreadValues({ mode: z.literal("custom") }, common.shape))
72
+ ]);
73
+ const renderSchema = strictRenderConfig.and(z.object(__spreadValues(__spreadValues(__spreadValues({}, cfConfig.shape), puppeteerConfig.shape), common.shape)).partial());
44
74
  class CFBrowserRendering {
45
- constructor(accountId, cfAPIKey) {
46
- this.accountId = accountId;
47
- this.cfAPIKey = cfAPIKey;
75
+ constructor(accountId, cfAPIKey, logger) {
48
76
  __publicField(this, "f");
49
- this.f = new Fetch().baseUrl(`https://api.cloudflare.com/client/v4/accounts/${accountId}`).extend({
77
+ this.f = createFetch(logger).baseUrl(`https://api.cloudflare.com/client/v4/accounts/${accountId}`).extend({
50
78
  headers: {
51
79
  Authorization: `Bearer ${cfAPIKey}`
52
80
  }
@@ -55,7 +83,12 @@ class CFBrowserRendering {
55
83
  post(body) {
56
84
  return this.f.post("/browser-rendering/screenshot", {
57
85
  responseType: "arrayBuffer",
58
- body: __spreadProps(__spreadValues({}, body), {
86
+ body: __spreadProps(__spreadValues({
87
+ "screenshotOptions": {
88
+ quality: 90,
89
+ type: "webp"
90
+ }
91
+ }, body), {
59
92
  "viewport": {
60
93
  "width": 3840,
61
94
  "height": 2160,
@@ -106,22 +139,29 @@ const RemoteBrowserGetter = (addr) => {
106
139
  }
107
140
  return () => p.connect(opt);
108
141
  };
109
- const getImageRender = (cfg) => {
142
+ const getImageRender = (config) => {
143
+ const _a = config, { logger, render, browserGetter } = _a, _cfg = __objRest(_a, ["logger", "render", "browserGetter"]);
144
+ const cfg = strictRenderConfig.parse(_cfg);
110
145
  if (cfg.mode === "cf") {
111
- return new CFBrowserRendering(cfg.cfAccountId, cfg.cfAPIKey);
146
+ return new CFBrowserRendering(cfg.cfAccountId, cfg.cfAPIKey, logger);
147
+ }
148
+ if (cfg.mode === "custom") {
149
+ if (!render) throw new Error("please provide custom img render");
150
+ return render;
112
151
  }
113
152
  if (cfg.puppeteerURL) {
114
153
  return new PuppeteerRendering(RemoteBrowserGetter(cfg.puppeteerURL));
115
154
  }
116
- if (cfg.browserGetter) {
117
- return new PuppeteerRendering(cfg.browserGetter);
155
+ if (browserGetter) {
156
+ return new PuppeteerRendering(browserGetter);
118
157
  }
158
+ return null;
119
159
  };
120
160
  export {
121
161
  CFBrowserRendering,
122
- RenderOptions as PuppeteerOptions,
123
162
  PuppeteerRendering,
124
163
  RemoteBrowserGetter,
125
- getImageRender
164
+ getImageRender,
165
+ renderSchema
126
166
  };
127
167
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/common/render/index.ts"],"sourcesContent":["import {html2imgBuffer, type RenderOptions, url2imgBuffer} from \"./puppeteer\";\nimport {Browser, Puppeteer} from \"puppeteer-core\";\nimport {Fetch, createFetch} from \"../fetch\";\nimport { Logger } from \"@/core\";\nimport {z} from \"zod/v4\";\nexport type { RenderOptions as PuppeteerOptions }\n\nexport interface ImageRender {\n html2img: (html: string, opt: RenderOptions) => Promise<Buffer>\n url2img: (url: string, opt: RenderOptions) => Promise<Buffer>\n}\n\nconst common = z.object({\n defaultWaitTimeout: z.number().optional(),\n waitTimeout: z.number().optional(),\n})\n\nconst cfConfig = z.object({\n cfAccountId: z.string().min(1, \"Cloudflare account id is required\"),\n cfAPIKey: z.string().min(1, \"Cloudflare API key is required\"),\n})\n\nconst puppeteerConfig = z.object({\n puppeteerURL: z.string().describe(\"remote puppeteer url, eg: wss://browserless/xxx, https://browserless/xxx\").optional(),\n})\n\nconst strictRenderConfig = z.discriminatedUnion('mode', [\n z.object({ mode: z.literal('cf'), ...cfConfig.shape, ...common.shape }),\n z.object({ mode: z.literal('puppeteer'), ...puppeteerConfig.shape, ...common.shape }),\n z.object({ mode: z.literal('custom'), ...common.shape }),\n])\n\nexport const renderSchema = strictRenderConfig\n .and(z.object({\n ...cfConfig.shape,\n ...puppeteerConfig.shape,\n ...common.shape\n }).partial())\n\nexport type RenderConfig = z.infer<typeof renderSchema>\n\ntype StrictRenderConfig = z.infer<typeof strictRenderConfig>\n\n\n\n\nexport class CFBrowserRendering implements ImageRender {\n f: Fetch\n constructor(accountId: string, cfAPIKey: string, logger: Logger) {\n this.f = createFetch(logger)\n .baseUrl(`https://api.cloudflare.com/client/v4/accounts/${accountId}`)\n .extend({\n headers: {\n Authorization: `Bearer ${cfAPIKey}`\n },\n })\n }\n private post(body) {\n return this.f.post('/browser-rendering/screenshot', {\n responseType: 'arrayBuffer',\n body: {\n \"screenshotOptions\": {\n quality: 90,\n type: 'webp'\n },\n ...body,\n \"viewport\": {\n \"width\": 3840,\n \"height\": 2160,\n \"deviceScaleFactor\": 2,\n },\n \"gotoOptions\": {\n \"waitUntil\": \"networkidle0\",\n \"timeout\": 30000\n },\n }\n })\n }\n\n\n\n async html2img (html: string, opt: RenderOptions) {\n const buf = await this.post({html: html, ...opt})\n return Buffer.from(buf)\n }\n async url2img (url: string, opt: RenderOptions) {\n const buf = await this.post({url: url, ...opt})\n return Buffer.from(buf)\n }\n}\n\nexport class PuppeteerRendering implements ImageRender {\n constructor(private browserGetter: () => Promise<Browser>) {\n }\n async html2img (html: string, opt: RenderOptions) {\n return html2imgBuffer(this.browserGetter, html, opt)\n }\n async url2img (html: string, opt: RenderOptions) {\n return url2imgBuffer(this.browserGetter, html, opt)\n }\n}\n\n\nexport const RemoteBrowserGetter = (addr: string) => {\n const p = new Puppeteer()\n let opt = {}\n if(addr.startsWith('ws')) {\n opt = { browserWSEndpoint: addr }\n }else if(addr.startsWith('http')) {\n opt = { browserURL: addr }\n }\n return () => p.connect(opt)\n}\n\ntype ImageRenderCreateOptions = StrictRenderConfig & {\n logger: Logger,\n render?: ImageRender,\n browserGetter?: () => Promise<Browser>\n}\n\n\nexport const getImageRender = (config: ImageRenderCreateOptions) => {\n const { logger, render, browserGetter, ..._cfg} = config\n const cfg = strictRenderConfig.parse(_cfg)\n if(cfg.mode === 'cf') {\n return new CFBrowserRendering(cfg.cfAccountId, cfg.cfAPIKey, logger)\n }\n if(cfg.mode === 'custom') {\n if(!render) throw new Error(\"please provide custom img render\")\n return render\n }\n if(cfg.puppeteerURL) {\n return new PuppeteerRendering(RemoteBrowserGetter(cfg.puppeteerURL))\n }\n if(browserGetter) {\n return new PuppeteerRendering(browserGetter)\n }\n return null\n}\n\nexport type CreateImageRenderOption = Parameters<typeof getImageRender>[0]\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAQ,gBAAoC,qBAAoB;AAChE,SAAiB,iBAAgB;AACjC,SAAe,mBAAkB;AAEjC,SAAQ,SAAQ;AAQhB,MAAM,SAAS,EAAE,OAAO;AAAA,EACtB,oBAAoB,EAAE,OAAO,EAAE,SAAS;AAAA,EACxC,aAAa,EAAE,OAAO,EAAE,SAAS;AACnC,CAAC;AAED,MAAM,WAAW,EAAE,OAAO;AAAA,EACxB,aAAa,EAAE,OAAO,EAAE,IAAI,GAAG,mCAAmC;AAAA,EAClE,UAAU,EAAE,OAAO,EAAE,IAAI,GAAG,gCAAgC;AAC9D,CAAC;AAED,MAAM,kBAAkB,EAAE,OAAO;AAAA,EAC/B,cAAc,EAAE,OAAO,EAAE,SAAS,0EAA0E,EAAE,SAAS;AACzH,CAAC;AAED,MAAM,qBAAqB,EAAE,mBAAmB,QAAQ;AAAA,EACtD,EAAE,OAAO,gCAAE,MAAM,EAAE,QAAQ,IAAI,KAAM,SAAS,QAAU,OAAO,MAAO;AAAA,EACtE,EAAE,OAAO,gCAAE,MAAM,EAAE,QAAQ,WAAW,KAAM,gBAAgB,QAAU,OAAO,MAAO;AAAA,EACpF,EAAE,OAAO,iBAAE,MAAM,EAAE,QAAQ,QAAQ,KAAM,OAAO,MAAO;AACzD,CAAC;AAEM,MAAM,eAAe,mBACzB,IAAI,EAAE,OAAO,iDACT,SAAS,QACT,gBAAgB,QAChB,OAAO,MACX,EAAE,QAAQ,CAAC;AASP,MAAM,mBAA0C;AAAA,EAErD,YAAY,WAAmB,UAAkB,QAAgB;AADjE;AAEE,SAAK,IAAI,YAAY,MAAM,EACxB,QAAQ,iDAAiD,SAAS,EAAE,EACpE,OAAO;AAAA,MACN,SAAS;AAAA,QACP,eAAe,UAAU,QAAQ;AAAA,MACnC;AAAA,IACF,CAAC;AAAA,EACL;AAAA,EACQ,KAAK,MAAM;AACjB,WAAO,KAAK,EAAE,KAAK,iCAAiC;AAAA,MAClD,cAAc;AAAA,MACd,MAAM;AAAA,QACJ,qBAAqB;AAAA,UACnB,SAAS;AAAA,UACT,MAAM;AAAA,QACR;AAAA,SACG,OALC;AAAA,QAMJ,YAAY;AAAA,UACV,SAAS;AAAA,UACT,UAAU;AAAA,UACV,qBAAqB;AAAA,QACvB;AAAA,QACA,eAAe;AAAA,UACb,aAAa;AAAA,UACb,WAAW;AAAA,QACb;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAIM,SAAU,MAAc,KAAoB;AAAA;AAChD,YAAM,MAAM,MAAM,KAAK,KAAK,iBAAC,QAAe,IAAI;AAChD,aAAO,OAAO,KAAK,GAAG;AAAA,IACxB;AAAA;AAAA,EACM,QAAS,KAAa,KAAoB;AAAA;AAC9C,YAAM,MAAM,MAAM,KAAK,KAAK,iBAAC,OAAa,IAAI;AAC9C,aAAO,OAAO,KAAK,GAAG;AAAA,IACxB;AAAA;AACF;AAEO,MAAM,mBAA0C;AAAA,EACrD,YAAoB,eAAuC;AAAvC;AAAA,EACpB;AAAA,EACM,SAAU,MAAc,KAAoB;AAAA;AAChD,aAAO,eAAe,KAAK,eAAe,MAAM,GAAG;AAAA,IACrD;AAAA;AAAA,EACM,QAAS,MAAc,KAAoB;AAAA;AAC/C,aAAO,cAAc,KAAK,eAAe,MAAM,GAAG;AAAA,IACpD;AAAA;AACF;AAGO,MAAM,sBAAsB,CAAC,SAAiB;AACnD,QAAM,IAAI,IAAI,UAAU;AACxB,MAAI,MAAM,CAAC;AACX,MAAG,KAAK,WAAW,IAAI,GAAG;AACxB,UAAM,EAAE,mBAAmB,KAAK;AAAA,EAClC,WAAS,KAAK,WAAW,MAAM,GAAG;AAChC,UAAM,EAAE,YAAY,KAAK;AAAA,EAC3B;AACA,SAAO,MAAM,EAAE,QAAQ,GAAG;AAC5B;AASO,MAAM,iBAAiB,CAAC,WAAqC;AAClE,QAAkD,aAA1C,UAAQ,QAAQ,cA1H1B,IA0HoD,IAAR,iBAAQ,IAAR,CAAlC,UAAQ,UAAQ;AACxB,QAAM,MAAM,mBAAmB,MAAM,IAAI;AACzC,MAAG,IAAI,SAAS,MAAM;AACpB,WAAO,IAAI,mBAAmB,IAAI,aAAa,IAAI,UAAU,MAAM;AAAA,EACrE;AACA,MAAG,IAAI,SAAS,UAAU;AACxB,QAAG,CAAC,OAAQ,OAAM,IAAI,MAAM,kCAAkC;AAC9D,WAAO;AAAA,EACT;AACA,MAAG,IAAI,cAAc;AACnB,WAAO,IAAI,mBAAmB,oBAAoB,IAAI,YAAY,CAAC;AAAA,EACrE;AACA,MAAG,eAAe;AAChB,WAAO,IAAI,mBAAmB,aAAa;AAAA,EAC7C;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/common/render/puppeteer.ts"],"sourcesContent":["import type {Browser, Page, ScreenshotOptions, Viewport} from 'puppeteer-core';\n\n/**\n * Extends Puppeteer's ScreenshotOptions to include an optional viewport setting\n * and a selector for element-specific screenshots.\n */\nexport interface RenderOptions extends ScreenshotOptions {\n /**\n * Sets the viewport of the page.\n */\n viewport?: Viewport;\n /**\n * A CSS selector for an element to screenshot. If provided, the output\n * will be a screenshot of just this element.\n */\n selector?: string;\n /**\n * The maximum time in milliseconds to wait for the selector to appear.\n * If the element is not found within this time, an error will be thrown.\n * Defaults to Puppeteer's default (usually 30000ms).\n */\n timeout?: number;\n}\n\n/**\n * Core rendering function that handles the common logic for taking a screenshot.\n * It's designed to be called by the public-facing wrapper functions.\n * @private\n */\nasync function _renderPageToBuffer(\n browser: Browser | (() => Promise<Browser>),\n options: RenderOptions | undefined,\n loadContent: (page: Page) => Promise<any>,\n defaultScreenshotOptions: ScreenshotOptions,\n defaultViewport: Viewport,\n errorContext?: string,\n): Promise<Buffer> {\n let page: Page | undefined;\n try {\n let b : Browser\n if(typeof browser === \"function\") {\n b = await browser()\n }\n page = await b.newPage();\n\n const viewport = options?.viewport ?? defaultViewport;\n await page.setViewport(viewport);\n\n // The content loading strategy is passed in as a callback.\n await loadContent(page);\n\n const {viewport: _, selector, timeout, ...screenshotOptions} = options || {};\n\n if (selector) {\n const element = await page.waitForSelector(selector, {timeout});\n if (!element) {\n const timeoutMsg = `within the ${timeout || 'default'}ms timeout.`;\n const contextMsg = errorContext ? ` on ${errorContext}` : '';\n throw new Error(`Could not find element with selector: \"${selector}\"${contextMsg} ${timeoutMsg}`);\n }\n return Buffer.from(await element.screenshot(screenshotOptions));\n }\n\n return Buffer.from(await page.screenshot({\n ...defaultScreenshotOptions,\n ...screenshotOptions,\n }))\n } finally {\n if (page) {\n await page.close();\n }\n }\n}\n\n/**\n * Renders an HTML string into an image buffer using a provided Puppeteer browser instance.\n *\n * @param browser The active Puppeteer Browser instance.\n * @param html The HTML content to render.\n * @param options Configuration for the rendering process.\n * @returns A Promise that resolves to a Buffer containing the screenshot image.\n */\nexport async function html2imgBuffer(\n browser: Browser | (() => Promise<Browser>),\n html: string,\n options?: RenderOptions,\n): Promise<Buffer> {\n return _renderPageToBuffer(\n browser,\n options,\n (page) => page.setContent(html, {waitUntil: 'networkidle0'}),\n {fullPage: true},\n {width: 3840, height: 2160, deviceScaleFactor: 2},\n );\n}\n\n/**\n * Captures a screenshot of a given URL and returns it as an image buffer.\n *\n * @param browser The active Puppeteer Browser instance.\n * @param url The URL of the webpage to capture.\n * @param options Configuration for the rendering process.\n * @returns A Promise that resolves to a Buffer containing the screenshot image.\n */\nexport async function url2imgBuffer(\n browser: Browser | (() => Promise<Browser>),\n url: string,\n options?: RenderOptions,\n): Promise<Buffer> {\n return _renderPageToBuffer(\n browser,\n options,\n (page) => page.goto(url, {waitUntil: 'networkidle0'}),\n {fullPage: false},\n {width: 3840, height: 2160, deviceScaleFactor: 2},\n `page: ${url}`,\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAe,oBACb,SACA,SACA,aACA,0BACA,iBACA,cACiB;AAAA;AApCnB;AAqCE,QAAI;AACJ,QAAI;AACF,UAAI;AACJ,UAAG,OAAO,YAAY,YAAY;AAChC,YAAI,MAAM,QAAQ;AAAA,MACpB;AACA,aAAO,MAAM,EAAE,QAAQ;AAEvB,YAAM,YAAW,wCAAS,aAAT,YAAqB;AACtC,YAAM,KAAK,YAAY,QAAQ;AAG/B,YAAM,YAAY,IAAI;AAEtB,YAA+D,gBAAW,CAAC,GAApE,YAAU,GAAG,UAAU,QAnDlC,IAmDmE,IAArB,8BAAqB,IAArB,CAAnC,YAAa,YAAU;AAE9B,UAAI,UAAU;AACZ,cAAM,UAAU,MAAM,KAAK,gBAAgB,UAAU,EAAC,QAAO,CAAC;AAC9D,YAAI,CAAC,SAAS;AACZ,gBAAM,aAAa,cAAc,WAAW,SAAS;AACrD,gBAAM,aAAa,eAAe,OAAO,YAAY,KAAK;AAC1D,gBAAM,IAAI,MAAM,0CAA0C,QAAQ,IAAI,UAAU,IAAI,UAAU,EAAE;AAAA,QAClG;AACA,eAAO,OAAO,KAAK,MAAM,QAAQ,WAAW,iBAAiB,CAAC;AAAA,MAChE;AAEA,aAAO,OAAO,KAAK,MAAM,KAAK,WAAW,kCACpC,2BACA,kBACJ,CAAC;AAAA,IACJ,UAAE;AACA,UAAI,MAAM;AACR,cAAM,KAAK,MAAM;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA;AAUA,SAAsB,eACpB,SACA,MACA,SACiB;AAAA;AACjB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,CAAC,SAAS,KAAK,WAAW,MAAM,EAAC,WAAW,eAAc,CAAC;AAAA,MAC3D,EAAC,UAAU,KAAI;AAAA,MACf,EAAC,OAAO,MAAM,QAAQ,MAAM,mBAAmB,EAAC;AAAA,IAClD;AAAA,EACF;AAAA;AAUA,SAAsB,cACpB,SACA,KACA,SACiB;AAAA;AACjB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,CAAC,SAAS,KAAK,KAAK,KAAK,EAAC,WAAW,eAAc,CAAC;AAAA,MACpD,EAAC,UAAU,MAAK;AAAA,MAChB,EAAC,OAAO,MAAM,QAAQ,MAAM,mBAAmB,EAAC;AAAA,MAChD,SAAS,GAAG;AAAA,IACd;AAAA,EACF;AAAA;","names":[]}
@@ -1,5 +1,19 @@
1
1
  var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
2
5
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
3
17
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
18
  var __async = (__this, __arguments, generator) => {
5
19
  return new Promise((resolve, reject) => {
@@ -23,6 +37,20 @@ var __async = (__this, __arguments, generator) => {
23
37
  };
24
38
  import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
25
39
  import crypto from "crypto";
40
+ import { z } from "zod/v4";
41
+ const strictS3ConfigSchema = z.object({
42
+ s3AccessKey: z.string(),
43
+ s3SecretKey: z.string(),
44
+ endpoint: z.string(),
45
+ baseURL: z.string(),
46
+ bucketName: z.string(),
47
+ region: z.string().optional(),
48
+ keyPrefix: z.string().optional()
49
+ });
50
+ const s3ConfigSchema = z.discriminatedUnion("enabled", [
51
+ z.object(__spreadValues({ enabled: z.literal(true) }, strictS3ConfigSchema.shape)),
52
+ z.object({ enabled: z.literal(false) })
53
+ ]);
26
54
  class S3Service {
27
55
  constructor(config) {
28
56
  __publicField(this, "s3Client");
@@ -47,17 +75,7 @@ class S3Service {
47
75
  return __async(this, null, function* () {
48
76
  const res = yield fetch(url).then((it) => it.arrayBuffer());
49
77
  const buf = Buffer.from(res);
50
- const md5 = crypto.createHash("md5").update(buf).digest("hex");
51
- const key = this.keyPrefix ? `${this.keyPrefix}-${md5}` : md5;
52
- const params = {
53
- Bucket: this.bucket,
54
- Key: key,
55
- Body: buf,
56
- ContentType: mimeType != null ? mimeType : "image/png"
57
- };
58
- const command = new PutObjectCommand(params);
59
- const data = yield this.s3Client.send(command);
60
- return `${this.baseURL}${key}`;
78
+ return this.uploadImg(buf, mimeType);
61
79
  });
62
80
  }
63
81
  uploadImg(buffer, mimeType) {
@@ -77,6 +95,8 @@ class S3Service {
77
95
  }
78
96
  }
79
97
  export {
80
- S3Service
98
+ S3Service,
99
+ s3ConfigSchema,
100
+ strictS3ConfigSchema
81
101
  };
82
102
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/common/s3/index.ts"],"sourcesContent":["import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3'\nimport crypto from 'crypto'\nimport {z} from \"zod/v4\";\n\nexport interface S3Config {\n s3AccessKey: string\n s3SecretKey: string\n endpoint: string\n region?: string\n bucketName: string\n keyPrefix?: string\n baseURL: string\n}\n\n\nexport const strictS3ConfigSchema = z.object({\n s3AccessKey: z.string(),\n s3SecretKey: z.string(),\n endpoint: z.string(),\n baseURL: z.string(),\n bucketName: z.string(),\n region: z.string().optional(),\n keyPrefix: z.string().optional(),\n})\n\nexport const s3ConfigSchema = z.discriminatedUnion('enabled', [\n z.object({ enabled: z.literal(true), ...strictS3ConfigSchema.shape }),\n z.object({ enabled: z.literal(false),}),\n])\n\nexport class S3Service {\n private s3Client: S3Client\n private readonly bucket: string\n private readonly keyPrefix: string = ''\n private readonly baseURL: string = ''\n constructor(config: S3Config) {\n const s3 = new S3Client({\n region: config.region ?? 'auto',\n endpoint: config.endpoint,\n credentials: {\n accessKeyId: config.s3AccessKey,\n secretAccessKey: config.s3SecretKey,\n },\n })\n this.bucket = config.bucketName\n this.keyPrefix = config.keyPrefix\n this.baseURL = config.baseURL\n this.s3Client = s3\n }\n async uploadImgWithUrl(url: string, mimeType?: string): Promise<string> {\n const res = await fetch(url).then((it) => it.arrayBuffer())\n const buf = Buffer.from(res)\n return this.uploadImg(buf, mimeType)\n }\n\n async uploadImg(buffer: Buffer, mimeType?: string): Promise<string> {\n // @ts-ignore\n const md5 = crypto.createHash('md5').update(buffer).digest('hex')\n const key = this.keyPrefix ? `${this.keyPrefix}-${md5}` : md5\n const params = {\n Bucket: this.bucket,\n Key: key,\n Body: buffer,\n ContentType: mimeType ?? 'image/png',\n }\n const command = new PutObjectCommand(params)\n const data = await this.s3Client.send(command)\n return `${this.baseURL}${key}`\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,UAAU,wBAAwB;AAC3C,OAAO,YAAY;AACnB,SAAQ,SAAQ;AAaT,MAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,aAAa,EAAE,OAAO;AAAA,EACtB,aAAa,EAAE,OAAO;AAAA,EACtB,UAAU,EAAE,OAAO;AAAA,EACnB,SAAS,EAAE,OAAO;AAAA,EAClB,YAAY,EAAE,OAAO;AAAA,EACrB,QAAQ,EAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,WAAW,EAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAEM,MAAM,iBAAiB,EAAE,mBAAmB,WAAW;AAAA,EAC5D,EAAE,OAAO,iBAAE,SAAS,EAAE,QAAQ,IAAI,KAAM,qBAAqB,MAAO;AAAA,EACpE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,EAAE,CAAC;AACxC,CAAC;AAEM,MAAM,UAAU;AAAA,EAKrB,YAAY,QAAkB;AAJ9B,wBAAQ;AACR,wBAAiB;AACjB,wBAAiB,aAAoB;AACrC,wBAAiB,WAAkB;AAlCrC;AAoCI,UAAM,KAAK,IAAI,SAAS;AAAA,MACtB,SAAQ,YAAO,WAAP,YAAiB;AAAA,MACzB,UAAU,OAAO;AAAA,MACjB,aAAa;AAAA,QACX,aAAa,OAAO;AAAA,QACpB,iBAAiB,OAAO;AAAA,MAC1B;AAAA,IACF,CAAC;AACD,SAAK,SAAS,OAAO;AACrB,SAAK,YAAY,OAAO;AACxB,SAAK,UAAU,OAAO;AACtB,SAAK,WAAW;AAAA,EAClB;AAAA,EACM,iBAAiB,KAAa,UAAoC;AAAA;AACtE,YAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC;AAC1D,YAAM,MAAM,OAAO,KAAK,GAAG;AAC3B,aAAO,KAAK,UAAU,KAAK,QAAQ;AAAA,IACrC;AAAA;AAAA,EAEM,UAAU,QAAgB,UAAoC;AAAA;AAElE,YAAM,MAAM,OAAO,WAAW,KAAK,EAAE,OAAO,MAAM,EAAE,OAAO,KAAK;AAChE,YAAM,MAAM,KAAK,YAAY,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK;AAC1D,YAAM,SAAS;AAAA,QACb,QAAQ,KAAK;AAAA,QACb,KAAK;AAAA,QACL,MAAM;AAAA,QACN,aAAa,8BAAY;AAAA,MAC3B;AACA,YAAM,UAAU,IAAI,iBAAiB,MAAM;AAC3C,YAAM,OAAO,MAAM,KAAK,SAAS,KAAK,OAAO;AAC7C,aAAO,GAAG,KAAK,OAAO,GAAG,GAAG;AAAA,IAC9B;AAAA;AACF;","names":[]}
@@ -17,9 +17,9 @@ var __spreadValues = (a, b) => {
17
17
  return a;
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- import { jsx, jsxs } from "react/jsx-runtime";
21
20
  import { BarChart } from "lucide-react";
22
- import { diffConv } from "../../components/utils";
21
+ import { diffConv } from "../../components/utils/index.js";
22
+ import React from "react";
23
23
  function RankDifficulty({
24
24
  difficulty,
25
25
  star,
@@ -27,108 +27,85 @@ function RankDifficulty({
27
27
  current
28
28
  }) {
29
29
  var _a, _b;
30
- return /* @__PURE__ */ jsxs(
30
+ return /* @__PURE__ */ React.createElement(
31
31
  "div",
32
32
  {
33
- className: `p-2 rounded-lg bs-bg-gradient ${current ? `gradient-border opacity-100` : "opacity-60"} `,
34
- children: [
35
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
36
- /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(BarChart, { className: "w-4 h-4" }) }),
37
- /* @__PURE__ */ jsx("span", { children: diffConv(difficulty) })
38
- ] }),
39
- star && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
40
- /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(SSStar, { className: "w-4 h-4" }) }),
41
- /* @__PURE__ */ jsxs("span", { children: [
42
- (_a = star == null ? void 0 : star.toFixed(2)) != null ? _a : "none",
43
- " "
44
- ] })
45
- ] }),
46
- blStar && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
47
- /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(BLStar, { className: "w-4 h-4" }) }),
48
- /* @__PURE__ */ jsxs("span", { children: [
49
- (_b = blStar == null ? void 0 : blStar.toFixed(2)) != null ? _b : "none",
50
- " "
51
- ] })
52
- ] })
53
- ]
54
- }
33
+ className: `p-2 rounded-lg bs-bg-gradient ${current ? `gradient-border opacity-100` : "opacity-60"} `
34
+ },
35
+ /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React.createElement("span", null, /* @__PURE__ */ React.createElement(BarChart, { className: "w-4 h-4" })), /* @__PURE__ */ React.createElement("span", null, diffConv(difficulty))),
36
+ star && /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React.createElement("span", null, /* @__PURE__ */ React.createElement(SSStar, { className: "w-4 h-4" })), /* @__PURE__ */ React.createElement("span", null, (_a = star == null ? void 0 : star.toFixed(2)) != null ? _a : "none", " ")),
37
+ blStar && /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React.createElement("span", null, /* @__PURE__ */ React.createElement(BLStar, { className: "w-4 h-4" })), /* @__PURE__ */ React.createElement("span", null, (_b = blStar == null ? void 0 : blStar.toFixed(2)) != null ? _b : "none", " "))
55
38
  );
56
39
  }
57
40
  const BLStar = (props) => {
58
- return /* @__PURE__ */ jsxs(
41
+ return /* @__PURE__ */ React.createElement(
59
42
  "svg",
60
43
  __spreadProps(__spreadValues({}, props), {
61
44
  width: "16",
62
45
  height: "16",
63
46
  viewBox: "0 0 16 16",
64
47
  fill: "none",
65
- xmlns: "http://www.w3.org/2000/svg",
66
- children: [
67
- /* @__PURE__ */ jsx(
68
- "path",
69
- {
70
- d: "M14.6431 7.17815L11.8306 9.60502L12.6875 13.2344C12.7348 13.4314 12.7226 13.638 12.6525 13.8281C12.5824 14.0182 12.4576 14.1833 12.2937 14.3025C12.1299 14.4217 11.9344 14.4896 11.7319 14.4977C11.5295 14.5059 11.3292 14.4538 11.1563 14.3481L8.00002 12.4056L4.8419 14.3481C4.66904 14.4532 4.46896 14.5048 4.26686 14.4963C4.06476 14.4879 3.86966 14.4199 3.70615 14.3008C3.54263 14.1817 3.41801 14.0169 3.34796 13.8272C3.27792 13.6374 3.26559 13.4312 3.31252 13.2344L4.17252 9.60502L1.36002 7.17815C1.20708 7.04596 1.09648 6.87166 1.04201 6.67699C0.987547 6.48232 0.991641 6.27592 1.05378 6.08356C1.11592 5.89121 1.23336 5.72142 1.39142 5.59541C1.54948 5.4694 1.74116 5.39274 1.94252 5.37502L5.63002 5.07752L7.05252 1.63502C7.12952 1.44741 7.26057 1.28693 7.429 1.17398C7.59744 1.06104 7.79566 1.00073 7.99846 1.00073C8.20126 1.00073 8.39948 1.06104 8.56791 1.17398C8.73635 1.28693 8.8674 1.44741 8.9444 1.63502L10.3663 5.07752L14.0538 5.37502C14.2555 5.39208 14.4478 5.46831 14.6064 5.59415C14.765 5.71999 14.883 5.88984 14.9455 6.08243C15.0081 6.27502 15.0124 6.48178 14.9579 6.6768C14.9035 6.87182 14.7927 7.04644 14.6394 7.17877L14.6431 7.17815Z",
71
- fill: "url(#paint0_linear_36_531)"
72
- }
73
- ),
74
- /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "2", fill: "#D9D9D9" }),
75
- /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
76
- "linearGradient",
77
- {
78
- id: "paint0_linear_36_531",
79
- x1: "3.50006",
80
- y1: "14",
81
- x2: "15.0001",
82
- y2: "1.00003",
83
- gradientUnits: "userSpaceOnUse",
84
- children: [
85
- /* @__PURE__ */ jsx("stop", { stopColor: "#2A79F8" }),
86
- /* @__PURE__ */ jsx("stop", { offset: "0.5", stopColor: "#F41AFF" }),
87
- /* @__PURE__ */ jsx("stop", { offset: "1", stopColor: "#FF0303" })
88
- ]
89
- }
90
- ) })
91
- ]
92
- })
48
+ xmlns: "http://www.w3.org/2000/svg"
49
+ }),
50
+ /* @__PURE__ */ React.createElement(
51
+ "path",
52
+ {
53
+ d: "M14.6431 7.17815L11.8306 9.60502L12.6875 13.2344C12.7348 13.4314 12.7226 13.638 12.6525 13.8281C12.5824 14.0182 12.4576 14.1833 12.2937 14.3025C12.1299 14.4217 11.9344 14.4896 11.7319 14.4977C11.5295 14.5059 11.3292 14.4538 11.1563 14.3481L8.00002 12.4056L4.8419 14.3481C4.66904 14.4532 4.46896 14.5048 4.26686 14.4963C4.06476 14.4879 3.86966 14.4199 3.70615 14.3008C3.54263 14.1817 3.41801 14.0169 3.34796 13.8272C3.27792 13.6374 3.26559 13.4312 3.31252 13.2344L4.17252 9.60502L1.36002 7.17815C1.20708 7.04596 1.09648 6.87166 1.04201 6.67699C0.987547 6.48232 0.991641 6.27592 1.05378 6.08356C1.11592 5.89121 1.23336 5.72142 1.39142 5.59541C1.54948 5.4694 1.74116 5.39274 1.94252 5.37502L5.63002 5.07752L7.05252 1.63502C7.12952 1.44741 7.26057 1.28693 7.429 1.17398C7.59744 1.06104 7.79566 1.00073 7.99846 1.00073C8.20126 1.00073 8.39948 1.06104 8.56791 1.17398C8.73635 1.28693 8.8674 1.44741 8.9444 1.63502L10.3663 5.07752L14.0538 5.37502C14.2555 5.39208 14.4478 5.46831 14.6064 5.59415C14.765 5.71999 14.883 5.88984 14.9455 6.08243C15.0081 6.27502 15.0124 6.48178 14.9579 6.6768C14.9035 6.87182 14.7927 7.04644 14.6394 7.17877L14.6431 7.17815Z",
54
+ fill: "url(#paint0_linear_36_531)"
55
+ }
56
+ ),
57
+ /* @__PURE__ */ React.createElement("circle", { cx: "8", cy: "8", r: "2", fill: "#D9D9D9" }),
58
+ /* @__PURE__ */ React.createElement("defs", null, /* @__PURE__ */ React.createElement(
59
+ "linearGradient",
60
+ {
61
+ id: "paint0_linear_36_531",
62
+ x1: "3.50006",
63
+ y1: "14",
64
+ x2: "15.0001",
65
+ y2: "1.00003",
66
+ gradientUnits: "userSpaceOnUse"
67
+ },
68
+ /* @__PURE__ */ React.createElement("stop", { stopColor: "#2A79F8" }),
69
+ /* @__PURE__ */ React.createElement("stop", { offset: "0.5", stopColor: "#F41AFF" }),
70
+ /* @__PURE__ */ React.createElement("stop", { offset: "1", stopColor: "#FF0303" })
71
+ ))
93
72
  );
94
73
  };
95
74
  const SSStar = (props) => {
96
- return /* @__PURE__ */ jsxs(
75
+ return /* @__PURE__ */ React.createElement(
97
76
  "svg",
98
77
  __spreadProps(__spreadValues({}, props), {
99
78
  width: "16",
100
79
  height: "16",
101
80
  viewBox: "0 0 16 16",
102
81
  fill: "none",
103
- xmlns: "http://www.w3.org/2000/svg",
104
- children: [
105
- /* @__PURE__ */ jsx(
106
- "path",
107
- {
108
- d: "M14.6431 7.17815L11.8306 9.60502L12.6875 13.2344C12.7348 13.4314 12.7226 13.638 12.6525 13.8281C12.5824 14.0182 12.4576 14.1833 12.2937 14.3025C12.1299 14.4217 11.9344 14.4896 11.7319 14.4977C11.5295 14.5059 11.3292 14.4538 11.1563 14.3481L8.00002 12.4056L4.8419 14.3481C4.66904 14.4532 4.46896 14.5048 4.26686 14.4963C4.06476 14.4879 3.86966 14.4199 3.70615 14.3008C3.54263 14.1817 3.41801 14.0169 3.34796 13.8272C3.27792 13.6374 3.26559 13.4312 3.31252 13.2344L4.17252 9.60502L1.36002 7.17815C1.20708 7.04596 1.09648 6.87166 1.04201 6.67699C0.987547 6.48232 0.991641 6.27592 1.05378 6.08356C1.11592 5.89121 1.23336 5.72142 1.39142 5.59541C1.54948 5.4694 1.74116 5.39274 1.94252 5.37502L5.63002 5.07752L7.05252 1.63502C7.12952 1.44741 7.26057 1.28693 7.429 1.17398C7.59744 1.06104 7.79566 1.00073 7.99846 1.00073C8.20126 1.00073 8.39948 1.06104 8.56791 1.17398C8.73635 1.28693 8.8674 1.44741 8.9444 1.63502L10.3663 5.07752L14.0538 5.37502C14.2555 5.39208 14.4478 5.46831 14.6064 5.59415C14.765 5.71999 14.883 5.88984 14.9455 6.08243C15.0081 6.27502 15.0124 6.48178 14.9579 6.6768C14.9035 6.87182 14.7927 7.04644 14.6394 7.17877L14.6431 7.17815Z",
109
- fill: "url(#paint0_linear_36_522)"
110
- }
111
- ),
112
- /* @__PURE__ */ jsx("path", { d: "M9.90888 6H6.0907V7H9.90888V6Z", fill: "white" }),
113
- /* @__PURE__ */ jsx("path", { d: "M8.81825 9H7.18188V10H8.81825V9Z", fill: "white" }),
114
- /* @__PURE__ */ jsx("path", { d: "M9.90902 8H8.81812V9H9.90902V8Z", fill: "white" }),
115
- /* @__PURE__ */ jsx("path", { d: "M7.18161 8H6.0907V9H7.18161V8Z", fill: "white" }),
116
- /* @__PURE__ */ jsx("path", { d: "M11.0002 7H9.9093V8H11.0002V7Z", fill: "white" }),
117
- /* @__PURE__ */ jsx("path", { d: "M6.09091 7H5V8H6.09091V7Z", fill: "white" }),
118
- /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx(
119
- "linearGradient",
120
- {
121
- id: "paint0_linear_36_522",
122
- x1: "3.50006",
123
- y1: "14",
124
- x2: "34.5001",
125
- y2: "-12",
126
- gradientUnits: "userSpaceOnUse",
127
- children: /* @__PURE__ */ jsx("stop", { stopColor: "#FFDE18" })
128
- }
129
- ) })
130
- ]
131
- })
82
+ xmlns: "http://www.w3.org/2000/svg"
83
+ }),
84
+ /* @__PURE__ */ React.createElement(
85
+ "path",
86
+ {
87
+ d: "M14.6431 7.17815L11.8306 9.60502L12.6875 13.2344C12.7348 13.4314 12.7226 13.638 12.6525 13.8281C12.5824 14.0182 12.4576 14.1833 12.2937 14.3025C12.1299 14.4217 11.9344 14.4896 11.7319 14.4977C11.5295 14.5059 11.3292 14.4538 11.1563 14.3481L8.00002 12.4056L4.8419 14.3481C4.66904 14.4532 4.46896 14.5048 4.26686 14.4963C4.06476 14.4879 3.86966 14.4199 3.70615 14.3008C3.54263 14.1817 3.41801 14.0169 3.34796 13.8272C3.27792 13.6374 3.26559 13.4312 3.31252 13.2344L4.17252 9.60502L1.36002 7.17815C1.20708 7.04596 1.09648 6.87166 1.04201 6.67699C0.987547 6.48232 0.991641 6.27592 1.05378 6.08356C1.11592 5.89121 1.23336 5.72142 1.39142 5.59541C1.54948 5.4694 1.74116 5.39274 1.94252 5.37502L5.63002 5.07752L7.05252 1.63502C7.12952 1.44741 7.26057 1.28693 7.429 1.17398C7.59744 1.06104 7.79566 1.00073 7.99846 1.00073C8.20126 1.00073 8.39948 1.06104 8.56791 1.17398C8.73635 1.28693 8.8674 1.44741 8.9444 1.63502L10.3663 5.07752L14.0538 5.37502C14.2555 5.39208 14.4478 5.46831 14.6064 5.59415C14.765 5.71999 14.883 5.88984 14.9455 6.08243C15.0081 6.27502 15.0124 6.48178 14.9579 6.6768C14.9035 6.87182 14.7927 7.04644 14.6394 7.17877L14.6431 7.17815Z",
88
+ fill: "url(#paint0_linear_36_522)"
89
+ }
90
+ ),
91
+ /* @__PURE__ */ React.createElement("path", { d: "M9.90888 6H6.0907V7H9.90888V6Z", fill: "white" }),
92
+ /* @__PURE__ */ React.createElement("path", { d: "M8.81825 9H7.18188V10H8.81825V9Z", fill: "white" }),
93
+ /* @__PURE__ */ React.createElement("path", { d: "M9.90902 8H8.81812V9H9.90902V8Z", fill: "white" }),
94
+ /* @__PURE__ */ React.createElement("path", { d: "M7.18161 8H6.0907V9H7.18161V8Z", fill: "white" }),
95
+ /* @__PURE__ */ React.createElement("path", { d: "M11.0002 7H9.9093V8H11.0002V7Z", fill: "white" }),
96
+ /* @__PURE__ */ React.createElement("path", { d: "M6.09091 7H5V8H6.09091V7Z", fill: "white" }),
97
+ /* @__PURE__ */ React.createElement("defs", null, /* @__PURE__ */ React.createElement(
98
+ "linearGradient",
99
+ {
100
+ id: "paint0_linear_36_522",
101
+ x1: "3.50006",
102
+ y1: "14",
103
+ x2: "34.5001",
104
+ y2: "-12",
105
+ gradientUnits: "userSpaceOnUse"
106
+ },
107
+ /* @__PURE__ */ React.createElement("stop", { stopColor: "#FFDE18" })
108
+ ))
132
109
  );
133
110
  };
134
111
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/components/RankDifficulty.tsx"],"sourcesContent":["import { BarChart, Star } from 'lucide-react'\nimport { diffConv } from '@/components/utils'\nimport { HTMLProps } from 'react'\n\nexport function RankDifficulty({\n difficulty,\n star,\n blStar,\n current,\n}: {\n difficulty: string\n star: number | undefined\n blStar: number | undefined\n current: boolean\n}) {\n return (\n <div\n className={`p-2 rounded-lg bs-bg-gradient ${current ? `gradient-border opacity-100` : 'opacity-60'} `}\n >\n <div className={'flex items-center gap-2'}>\n <span>\n <BarChart className={'w-4 h-4'} />\n </span>\n <span>{diffConv(difficulty)}</span>\n </div>\n {star && (\n <div className={'flex items-center gap-2'}>\n <span>\n <SSStar className={'w-4 h-4'} />\n </span>\n <span>{star?.toFixed(2) ?? 'none'} </span>\n </div>\n )}\n {blStar && (\n <div className={'flex items-center gap-2'}>\n <span>\n <BLStar className={'w-4 h-4'} />\n </span>\n <span>{blStar?.toFixed(2) ?? 'none'} </span>\n </div>\n )}\n </div>\n )\n}\n\nconst BLStar = (props: HTMLProps<SVGSVGElement>) => {\n return (\n <svg\n {...props}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M14.6431 7.17815L11.8306 9.60502L12.6875 13.2344C12.7348 13.4314 12.7226 13.638 12.6525 13.8281C12.5824 14.0182 12.4576 14.1833 12.2937 14.3025C12.1299 14.4217 11.9344 14.4896 11.7319 14.4977C11.5295 14.5059 11.3292 14.4538 11.1563 14.3481L8.00002 12.4056L4.8419 14.3481C4.66904 14.4532 4.46896 14.5048 4.26686 14.4963C4.06476 14.4879 3.86966 14.4199 3.70615 14.3008C3.54263 14.1817 3.41801 14.0169 3.34796 13.8272C3.27792 13.6374 3.26559 13.4312 3.31252 13.2344L4.17252 9.60502L1.36002 7.17815C1.20708 7.04596 1.09648 6.87166 1.04201 6.67699C0.987547 6.48232 0.991641 6.27592 1.05378 6.08356C1.11592 5.89121 1.23336 5.72142 1.39142 5.59541C1.54948 5.4694 1.74116 5.39274 1.94252 5.37502L5.63002 5.07752L7.05252 1.63502C7.12952 1.44741 7.26057 1.28693 7.429 1.17398C7.59744 1.06104 7.79566 1.00073 7.99846 1.00073C8.20126 1.00073 8.39948 1.06104 8.56791 1.17398C8.73635 1.28693 8.8674 1.44741 8.9444 1.63502L10.3663 5.07752L14.0538 5.37502C14.2555 5.39208 14.4478 5.46831 14.6064 5.59415C14.765 5.71999 14.883 5.88984 14.9455 6.08243C15.0081 6.27502 15.0124 6.48178 14.9579 6.6768C14.9035 6.87182 14.7927 7.04644 14.6394 7.17877L14.6431 7.17815Z\"\n fill=\"url(#paint0_linear_36_531)\"\n />\n <circle cx=\"8\" cy=\"8\" r=\"2\" fill=\"#D9D9D9\" />\n <defs>\n <linearGradient\n id=\"paint0_linear_36_531\"\n x1=\"3.50006\"\n y1=\"14\"\n x2=\"15.0001\"\n y2=\"1.00003\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#2A79F8\" />\n <stop offset=\"0.5\" stopColor=\"#F41AFF\" />\n <stop offset=\"1\" stopColor=\"#FF0303\" />\n </linearGradient>\n </defs>\n </svg>\n )\n}\n\nconst SSStar = (props: HTMLProps<SVGSVGElement>) => {\n return (\n <svg\n {...props}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M14.6431 7.17815L11.8306 9.60502L12.6875 13.2344C12.7348 13.4314 12.7226 13.638 12.6525 13.8281C12.5824 14.0182 12.4576 14.1833 12.2937 14.3025C12.1299 14.4217 11.9344 14.4896 11.7319 14.4977C11.5295 14.5059 11.3292 14.4538 11.1563 14.3481L8.00002 12.4056L4.8419 14.3481C4.66904 14.4532 4.46896 14.5048 4.26686 14.4963C4.06476 14.4879 3.86966 14.4199 3.70615 14.3008C3.54263 14.1817 3.41801 14.0169 3.34796 13.8272C3.27792 13.6374 3.26559 13.4312 3.31252 13.2344L4.17252 9.60502L1.36002 7.17815C1.20708 7.04596 1.09648 6.87166 1.04201 6.67699C0.987547 6.48232 0.991641 6.27592 1.05378 6.08356C1.11592 5.89121 1.23336 5.72142 1.39142 5.59541C1.54948 5.4694 1.74116 5.39274 1.94252 5.37502L5.63002 5.07752L7.05252 1.63502C7.12952 1.44741 7.26057 1.28693 7.429 1.17398C7.59744 1.06104 7.79566 1.00073 7.99846 1.00073C8.20126 1.00073 8.39948 1.06104 8.56791 1.17398C8.73635 1.28693 8.8674 1.44741 8.9444 1.63502L10.3663 5.07752L14.0538 5.37502C14.2555 5.39208 14.4478 5.46831 14.6064 5.59415C14.765 5.71999 14.883 5.88984 14.9455 6.08243C15.0081 6.27502 15.0124 6.48178 14.9579 6.6768C14.9035 6.87182 14.7927 7.04644 14.6394 7.17877L14.6431 7.17815Z\"\n fill=\"url(#paint0_linear_36_522)\"\n />\n <path d=\"M9.90888 6H6.0907V7H9.90888V6Z\" fill=\"white\" />\n <path d=\"M8.81825 9H7.18188V10H8.81825V9Z\" fill=\"white\" />\n <path d=\"M9.90902 8H8.81812V9H9.90902V8Z\" fill=\"white\" />\n <path d=\"M7.18161 8H6.0907V9H7.18161V8Z\" fill=\"white\" />\n <path d=\"M11.0002 7H9.9093V8H11.0002V7Z\" fill=\"white\" />\n <path d=\"M6.09091 7H5V8H6.09091V7Z\" fill=\"white\" />\n <defs>\n <linearGradient\n id=\"paint0_linear_36_522\"\n x1=\"3.50006\"\n y1=\"14\"\n x2=\"34.5001\"\n y2=\"-12\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FFDE18\" />\n </linearGradient>\n </defs>\n </svg>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAmBM,SAEI,KAFJ;AAnBN,SAAS,gBAAsB;AAC/B,SAAS,gBAAgB;AAGlB,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AAdH;AAeE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,kCAAkC,UAAU,gCAAgC,YAAY;AAAA,MAEnG;AAAA,6BAAC,SAAI,WAAW,2BACd;AAAA,8BAAC,UACC,8BAAC,YAAS,WAAW,WAAW,GAClC;AAAA,UACA,oBAAC,UAAM,mBAAS,UAAU,GAAE;AAAA,WAC9B;AAAA,QACC,QACC,qBAAC,SAAI,WAAW,2BACd;AAAA,8BAAC,UACC,8BAAC,UAAO,WAAW,WAAW,GAChC;AAAA,UACA,qBAAC,UAAM;AAAA,+CAAM,QAAQ,OAAd,YAAoB;AAAA,YAAO;AAAA,aAAC;AAAA,WACrC;AAAA,QAED,UACC,qBAAC,SAAI,WAAW,2BACd;AAAA,8BAAC,UACC,8BAAC,UAAO,WAAW,WAAW,GAChC;AAAA,UACA,qBAAC,UAAM;AAAA,mDAAQ,QAAQ,OAAhB,YAAsB;AAAA,YAAO;AAAA,aAAC;AAAA,WACvC;AAAA;AAAA;AAAA,EAEJ;AAEJ;AAEA,MAAM,SAAS,CAAC,UAAoC;AAClD,SACE;AAAA,IAAC;AAAA,qCACK,QADL;AAAA,MAEC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MAEN;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAK;AAAA;AAAA,QACP;AAAA,QACA,oBAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,QAC3C,oBAAC,UACC;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,eAAc;AAAA,YAEd;AAAA,kCAAC,UAAK,WAAU,WAAU;AAAA,cAC1B,oBAAC,UAAK,QAAO,OAAM,WAAU,WAAU;AAAA,cACvC,oBAAC,UAAK,QAAO,KAAI,WAAU,WAAU;AAAA;AAAA;AAAA,QACvC,GACF;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,MAAM,SAAS,CAAC,UAAoC;AAClD,SACE;AAAA,IAAC;AAAA,qCACK,QADL;AAAA,MAEC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MAEN;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAK;AAAA;AAAA,QACP;AAAA,QACA,oBAAC,UAAK,GAAE,kCAAiC,MAAK,SAAQ;AAAA,QACtD,oBAAC,UAAK,GAAE,oCAAmC,MAAK,SAAQ;AAAA,QACxD,oBAAC,UAAK,GAAE,mCAAkC,MAAK,SAAQ;AAAA,QACvD,oBAAC,UAAK,GAAE,kCAAiC,MAAK,SAAQ;AAAA,QACtD,oBAAC,UAAK,GAAE,kCAAiC,MAAK,SAAQ;AAAA,QACtD,oBAAC,UAAK,GAAE,6BAA4B,MAAK,SAAQ;AAAA,QACjD,oBAAC,UACC;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,eAAc;AAAA,YAEd,8BAAC,UAAK,WAAU,WAAU;AAAA;AAAA,QAC5B,GACF;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/components/RankDifficulty.tsx"],"sourcesContent":["import { BarChart } from 'lucide-react'\nimport { diffConv } from '@/components/utils'\nimport { HTMLProps } from 'react'\nimport React from 'react'\n\nexport function RankDifficulty({\n difficulty,\n star,\n blStar,\n current,\n}: {\n difficulty: string\n star: number | undefined\n blStar: number | undefined\n current: boolean\n}) {\n return (\n <div\n className={`p-2 rounded-lg bs-bg-gradient ${current ? `gradient-border opacity-100` : 'opacity-60'} `}\n >\n <div className={'flex items-center gap-2'}>\n <span>\n <BarChart className={'w-4 h-4'} />\n </span>\n <span>{diffConv(difficulty)}</span>\n </div>\n {star && (\n <div className={'flex items-center gap-2'}>\n <span>\n <SSStar className={'w-4 h-4'} />\n </span>\n <span>{star?.toFixed(2) ?? 'none'} </span>\n </div>\n )}\n {blStar && (\n <div className={'flex items-center gap-2'}>\n <span>\n <BLStar className={'w-4 h-4'} />\n </span>\n <span>{blStar?.toFixed(2) ?? 'none'} </span>\n </div>\n )}\n </div>\n )\n}\n\nconst BLStar = (props: HTMLProps<SVGSVGElement>) => {\n return (\n <svg\n {...props}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M14.6431 7.17815L11.8306 9.60502L12.6875 13.2344C12.7348 13.4314 12.7226 13.638 12.6525 13.8281C12.5824 14.0182 12.4576 14.1833 12.2937 14.3025C12.1299 14.4217 11.9344 14.4896 11.7319 14.4977C11.5295 14.5059 11.3292 14.4538 11.1563 14.3481L8.00002 12.4056L4.8419 14.3481C4.66904 14.4532 4.46896 14.5048 4.26686 14.4963C4.06476 14.4879 3.86966 14.4199 3.70615 14.3008C3.54263 14.1817 3.41801 14.0169 3.34796 13.8272C3.27792 13.6374 3.26559 13.4312 3.31252 13.2344L4.17252 9.60502L1.36002 7.17815C1.20708 7.04596 1.09648 6.87166 1.04201 6.67699C0.987547 6.48232 0.991641 6.27592 1.05378 6.08356C1.11592 5.89121 1.23336 5.72142 1.39142 5.59541C1.54948 5.4694 1.74116 5.39274 1.94252 5.37502L5.63002 5.07752L7.05252 1.63502C7.12952 1.44741 7.26057 1.28693 7.429 1.17398C7.59744 1.06104 7.79566 1.00073 7.99846 1.00073C8.20126 1.00073 8.39948 1.06104 8.56791 1.17398C8.73635 1.28693 8.8674 1.44741 8.9444 1.63502L10.3663 5.07752L14.0538 5.37502C14.2555 5.39208 14.4478 5.46831 14.6064 5.59415C14.765 5.71999 14.883 5.88984 14.9455 6.08243C15.0081 6.27502 15.0124 6.48178 14.9579 6.6768C14.9035 6.87182 14.7927 7.04644 14.6394 7.17877L14.6431 7.17815Z\"\n fill=\"url(#paint0_linear_36_531)\"\n />\n <circle cx=\"8\" cy=\"8\" r=\"2\" fill=\"#D9D9D9\" />\n <defs>\n <linearGradient\n id=\"paint0_linear_36_531\"\n x1=\"3.50006\"\n y1=\"14\"\n x2=\"15.0001\"\n y2=\"1.00003\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#2A79F8\" />\n <stop offset=\"0.5\" stopColor=\"#F41AFF\" />\n <stop offset=\"1\" stopColor=\"#FF0303\" />\n </linearGradient>\n </defs>\n </svg>\n )\n}\n\nconst SSStar = (props: HTMLProps<SVGSVGElement>) => {\n return (\n <svg\n {...props}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M14.6431 7.17815L11.8306 9.60502L12.6875 13.2344C12.7348 13.4314 12.7226 13.638 12.6525 13.8281C12.5824 14.0182 12.4576 14.1833 12.2937 14.3025C12.1299 14.4217 11.9344 14.4896 11.7319 14.4977C11.5295 14.5059 11.3292 14.4538 11.1563 14.3481L8.00002 12.4056L4.8419 14.3481C4.66904 14.4532 4.46896 14.5048 4.26686 14.4963C4.06476 14.4879 3.86966 14.4199 3.70615 14.3008C3.54263 14.1817 3.41801 14.0169 3.34796 13.8272C3.27792 13.6374 3.26559 13.4312 3.31252 13.2344L4.17252 9.60502L1.36002 7.17815C1.20708 7.04596 1.09648 6.87166 1.04201 6.67699C0.987547 6.48232 0.991641 6.27592 1.05378 6.08356C1.11592 5.89121 1.23336 5.72142 1.39142 5.59541C1.54948 5.4694 1.74116 5.39274 1.94252 5.37502L5.63002 5.07752L7.05252 1.63502C7.12952 1.44741 7.26057 1.28693 7.429 1.17398C7.59744 1.06104 7.79566 1.00073 7.99846 1.00073C8.20126 1.00073 8.39948 1.06104 8.56791 1.17398C8.73635 1.28693 8.8674 1.44741 8.9444 1.63502L10.3663 5.07752L14.0538 5.37502C14.2555 5.39208 14.4478 5.46831 14.6064 5.59415C14.765 5.71999 14.883 5.88984 14.9455 6.08243C15.0081 6.27502 15.0124 6.48178 14.9579 6.6768C14.9035 6.87182 14.7927 7.04644 14.6394 7.17877L14.6431 7.17815Z\"\n fill=\"url(#paint0_linear_36_522)\"\n />\n <path d=\"M9.90888 6H6.0907V7H9.90888V6Z\" fill=\"white\" />\n <path d=\"M8.81825 9H7.18188V10H8.81825V9Z\" fill=\"white\" />\n <path d=\"M9.90902 8H8.81812V9H9.90902V8Z\" fill=\"white\" />\n <path d=\"M7.18161 8H6.0907V9H7.18161V8Z\" fill=\"white\" />\n <path d=\"M11.0002 7H9.9093V8H11.0002V7Z\" fill=\"white\" />\n <path d=\"M6.09091 7H5V8H6.09091V7Z\" fill=\"white\" />\n <defs>\n <linearGradient\n id=\"paint0_linear_36_522\"\n x1=\"3.50006\"\n y1=\"14\"\n x2=\"34.5001\"\n y2=\"-12\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FFDE18\" />\n </linearGradient>\n </defs>\n </svg>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAEzB,OAAO,WAAW;AAEX,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AAfH;AAgBE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,kCAAkC,UAAU,gCAAgC,YAAY;AAAA;AAAA,IAEnG,oCAAC,SAAI,WAAW,6BACd,oCAAC,cACC,oCAAC,YAAS,WAAW,WAAW,CAClC,GACA,oCAAC,cAAM,SAAS,UAAU,CAAE,CAC9B;AAAA,IACC,QACC,oCAAC,SAAI,WAAW,6BACd,oCAAC,cACC,oCAAC,UAAO,WAAW,WAAW,CAChC,GACA,oCAAC,eAAM,kCAAM,QAAQ,OAAd,YAAoB,QAAO,GAAC,CACrC;AAAA,IAED,UACC,oCAAC,SAAI,WAAW,6BACd,oCAAC,cACC,oCAAC,UAAO,WAAW,WAAW,CAChC,GACA,oCAAC,eAAM,sCAAQ,QAAQ,OAAhB,YAAsB,QAAO,GAAC,CACvC;AAAA,EAEJ;AAEJ;AAEA,MAAM,SAAS,CAAC,UAAoC;AAClD,SACE;AAAA,IAAC;AAAA,qCACK,QADL;AAAA,MAEC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA;AAAA,IAEN;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,IACA,oCAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,IAC3C,oCAAC,cACC;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,IAAG;AAAA,QACH,IAAG;AAAA,QACH,IAAG;AAAA,QACH,IAAG;AAAA,QACH,eAAc;AAAA;AAAA,MAEd,oCAAC,UAAK,WAAU,WAAU;AAAA,MAC1B,oCAAC,UAAK,QAAO,OAAM,WAAU,WAAU;AAAA,MACvC,oCAAC,UAAK,QAAO,KAAI,WAAU,WAAU;AAAA,IACvC,CACF;AAAA,EACF;AAEJ;AAEA,MAAM,SAAS,CAAC,UAAoC;AAClD,SACE;AAAA,IAAC;AAAA,qCACK,QADL;AAAA,MAEC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA;AAAA,IAEN;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA,IACA,oCAAC,UAAK,GAAE,kCAAiC,MAAK,SAAQ;AAAA,IACtD,oCAAC,UAAK,GAAE,oCAAmC,MAAK,SAAQ;AAAA,IACxD,oCAAC,UAAK,GAAE,mCAAkC,MAAK,SAAQ;AAAA,IACvD,oCAAC,UAAK,GAAE,kCAAiC,MAAK,SAAQ;AAAA,IACtD,oCAAC,UAAK,GAAE,kCAAiC,MAAK,SAAQ;AAAA,IACtD,oCAAC,UAAK,GAAE,6BAA4B,MAAK,SAAQ;AAAA,IACjD,oCAAC,cACC;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,IAAG;AAAA,QACH,IAAG;AAAA,QACH,IAAG;AAAA,QACH,IAAG;AAAA,QACH,eAAc;AAAA;AAAA,MAEd,oCAAC,UAAK,WAAU,WAAU;AAAA,IAC5B,CACF;AAAA,EACF;AAEJ;","names":[]}
@@ -1,6 +1,6 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ import React from "react";
2
2
  function Avatar({ src, fallback, className }) {
3
- return /* @__PURE__ */ jsx("img", { className, src });
3
+ return /* @__PURE__ */ React.createElement("img", { className, src });
4
4
  }
5
5
  export {
6
6
  Avatar
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/components/base/avatar.tsx"],"sourcesContent":["interface AvatarProps {\n className?: string\n src: string\n fallback?: string\n}\nexport function Avatar({ src, fallback, className }: AvatarProps) {\n // className={'h-4 w-4 rounded-full'}\n // src={beatmap.uploader.avatar}\n // fallback={score.song.mapper.slice(0, 1)}\n return <img className={className} src={src} />\n}\n"],"mappings":"AASS;AAJF,SAAS,OAAO,EAAE,KAAK,UAAU,UAAU,GAAgB;AAIhE,SAAO,oBAAC,SAAI,WAAsB,KAAU;AAC9C;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/components/components/base/avatar.tsx"],"sourcesContent":["import React from 'react'\n\ninterface AvatarProps {\n className?: string\n src: string\n fallback?: string\n}\nexport function Avatar({ src, fallback, className }: AvatarProps) {\n // className={'h-4 w-4 rounded-full'}\n // src={beatmap.uploader.avatar}\n // fallback={score.song.mapper.slice(0, 1)}\n return <img className={className} src={src} />\n}\n"],"mappings":"AAAA,OAAO,WAAW;AAOX,SAAS,OAAO,EAAE,KAAK,UAAU,UAAU,GAAgB;AAIhE,SAAO,oCAAC,SAAI,WAAsB,KAAU;AAC9C;","names":[]}
@@ -1,99 +1,38 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
1
  import dayjs from "dayjs";
3
- import Flags, { EarchIcon } from "../../components/components/flag";
4
- import { formatDate, numberWithCommas } from "../../components/utils";
2
+ import Flags, { EarchIcon } from "../../components/components/flag.js";
3
+ import React from "react";
4
+ import { formatDate, numberWithCommas } from "../../components/utils/index.js";
5
5
  function BlRankScoreItem(props) {
6
- return /* @__PURE__ */ jsx(
6
+ return /* @__PURE__ */ React.createElement(
7
7
  "div",
8
8
  {
9
- 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]`,
10
- children: /* @__PURE__ */ jsxs("div", { className: "skew-x-12 relative", children: [
11
- /* @__PURE__ */ jsxs("div", { className: "flex items-center translate-x-2 justify-between", children: [
12
- /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
13
- /* @__PURE__ */ jsxs("div", { className: "w-12 h-12 relative", children: [
14
- /* @__PURE__ */ jsx(
15
- "img",
16
- {
17
- src: props.avatar,
18
- className: "shadow-lg w-12 h-12 rounded-full object-cover"
19
- }
20
- ),
21
- /* @__PURE__ */ jsx("div", { className: "w-3 h-3 absolute bottom-0 right-3", children: /* @__PURE__ */ jsx(Flags, { flagNationCode: props.countryCode }) })
22
- ] }),
23
- /* @__PURE__ */ jsxs("div", { children: [
24
- /* @__PURE__ */ jsx("div", { className: "line-clamp-1 text-ellipsis max-w-[100px]", children: props.name }),
25
- /* @__PURE__ */ jsxs("span", { className: "flex items-center space-x-1", children: [
26
- !props.isRegionRank && /* @__PURE__ */ jsx(EarchIcon, {}),
27
- /* @__PURE__ */ jsxs("span", { children: [
28
- "# ",
29
- props.globalRank
30
- ] })
31
- ] })
32
- ] })
33
- ] }),
34
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-end -translate-x-2 -skew-x-3", children: [
35
- /* @__PURE__ */ jsxs("div", { children: [
36
- (props.acc * 100).toFixed(2),
37
- " %"
38
- ] }),
39
- /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
40
- /* @__PURE__ */ jsx("div", { className: "space-x-1", children: props.modifiers.split(",").map((it) => /* @__PURE__ */ jsx("span", { children: it }, it)) }),
41
- /* @__PURE__ */ jsx("div", { children: numberWithCommas(props.score) })
42
- ] })
43
- ] })
44
- ] }),
45
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mt-0 px-4 -translate-x-4", children: [
46
- /* @__PURE__ */ jsx("div", { className: "flex gap-2", children: /* @__PURE__ */ jsx("div", { className: "flex gap-1 items-center justify-start -skew-x-2 text-xs opacity-60", children: /* @__PURE__ */ jsx("div", { children: formatDate(
47
- dayjs(props.date * 1e3).toDate(),
48
- "YY \u5E74 MM \u6708 DD \u65E5"
49
- ) }) }) }),
50
- /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("div", { className: "flex gap-1 items-center justify-start translate-x-6 text-xl font-bold text-green-300", children: /* @__PURE__ */ jsxs("div", { children: [
51
- " ",
52
- props.pp.toFixed(2),
53
- " PP"
54
- ] }) }) })
55
- ] })
56
- ] })
57
- }
9
+ 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]`
10
+ },
11
+ /* @__PURE__ */ React.createElement("div", { className: "skew-x-12 relative" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center translate-x-2 justify-between" }, /* @__PURE__ */ React.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React.createElement("div", { className: "w-12 h-12 relative" }, /* @__PURE__ */ React.createElement(
12
+ "img",
13
+ {
14
+ src: props.avatar,
15
+ className: "shadow-lg w-12 h-12 rounded-full object-cover"
16
+ }
17
+ ), /* @__PURE__ */ React.createElement("div", { className: "w-3 h-3 absolute bottom-0 right-3" }, /* @__PURE__ */ React.createElement(Flags, { flagNationCode: props.countryCode }))), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("div", { className: "line-clamp-1 text-ellipsis max-w-[100px]" }, props.name), /* @__PURE__ */ React.createElement("span", { className: "flex items-center space-x-1" }, !props.isRegionRank && /* @__PURE__ */ React.createElement(EarchIcon, null), /* @__PURE__ */ React.createElement("span", null, "# ", props.globalRank)))), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col items-end -translate-x-2 -skew-x-3" }, /* @__PURE__ */ React.createElement("div", null, (props.acc * 100).toFixed(2), " %"), /* @__PURE__ */ React.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React.createElement("div", { className: "space-x-1" }, props.modifiers.split(",").map((it) => /* @__PURE__ */ React.createElement("span", { key: it }, it))), /* @__PURE__ */ React.createElement("div", null, numberWithCommas(props.score))))), /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-between mt-0 px-4 -translate-x-4" }, /* @__PURE__ */ React.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React.createElement("div", { className: "flex gap-1 items-center justify-start -skew-x-2 text-xs opacity-60" }, /* @__PURE__ */ React.createElement("div", null, formatDate(
18
+ dayjs(props.date * 1e3).toDate(),
19
+ "YY \u5E74 MM \u6708 DD \u65E5"
20
+ )))), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("div", { className: "flex gap-1 items-center justify-start translate-x-6 text-xl font-bold text-green-300" }, /* @__PURE__ */ React.createElement("div", null, " ", props.pp.toFixed(2), " PP")))))
58
21
  );
59
22
  }
60
23
  function ScoreItemSkeleton({ isRegionRank }) {
61
- return /* @__PURE__ */ jsx(
24
+ return /* @__PURE__ */ React.createElement(
62
25
  "div",
63
26
  {
64
- 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]`,
65
- children: /* @__PURE__ */ jsxs("div", { className: "skew-x-12 relative", children: [
66
- /* @__PURE__ */ jsxs("div", { className: "flex items-center translate-x-2 justify-between", children: [
67
- /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
68
- /* @__PURE__ */ jsx("div", { className: "w-12 h-12 relative", children: /* @__PURE__ */ jsx(
69
- "img",
70
- {
71
- src: `https://avatar.iran.liara.run/public`,
72
- className: "shadow-lg w-12 h-12 rounded-full object-cover"
73
- }
74
- ) }),
75
- /* @__PURE__ */ jsxs("div", { children: [
76
- /* @__PURE__ */ jsx("div", { className: "line-clamp-1 text-ellipsis max-w-[100px]", children: "\u865A\u4F4D\u4EE5\u5F85" }),
77
- /* @__PURE__ */ jsxs("span", { className: "flex items-center space-x-1", children: [
78
- !isRegionRank && /* @__PURE__ */ jsx(EarchIcon, {}),
79
- /* @__PURE__ */ jsx("span", { children: "# 0 " })
80
- ] })
81
- ] })
82
- ] }),
83
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-end -translate-x-2 -skew-x-3", children: [
84
- /* @__PURE__ */ jsx("div", { children: "0.00 %" }),
85
- /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
86
- /* @__PURE__ */ jsx("div", { className: "space-x-1", children: " " }),
87
- /* @__PURE__ */ jsx("div", { children: "000,000" })
88
- ] })
89
- ] })
90
- ] }),
91
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mt-0 px-4 -translate-x-4", children: [
92
- /* @__PURE__ */ jsx("div", { className: "flex gap-1 items-center justify-start -skew-x-2 text-xs opacity-60", children: /* @__PURE__ */ jsx("div", { children: "00 \u5E74 00 \u6708 00 \u65E5" }) }),
93
- /* @__PURE__ */ jsx("div", { className: "flex gap-1 items-center justify-start translate-x-6 text-xl font-bold text-green-300", children: /* @__PURE__ */ jsx("div", { children: " 0.00 PP" }) })
94
- ] })
95
- ] })
96
- }
27
+ 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]`
28
+ },
29
+ /* @__PURE__ */ React.createElement("div", { className: "skew-x-12 relative" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center translate-x-2 justify-between" }, /* @__PURE__ */ React.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React.createElement("div", { className: "w-12 h-12 relative" }, /* @__PURE__ */ React.createElement(
30
+ "img",
31
+ {
32
+ src: `https://avatar.iran.liara.run/public`,
33
+ className: "shadow-lg w-12 h-12 rounded-full object-cover"
34
+ }
35
+ )), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("div", { className: "line-clamp-1 text-ellipsis max-w-[100px]" }, "\u865A\u4F4D\u4EE5\u5F85"), /* @__PURE__ */ React.createElement("span", { className: "flex items-center space-x-1" }, !isRegionRank && /* @__PURE__ */ React.createElement(EarchIcon, null), /* @__PURE__ */ React.createElement("span", null, "# 0 ")))), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col items-end -translate-x-2 -skew-x-3" }, /* @__PURE__ */ React.createElement("div", null, "0.00 %"), /* @__PURE__ */ React.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React.createElement("div", { className: "space-x-1" }, " "), /* @__PURE__ */ React.createElement("div", null, "000,000")))), /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-between mt-0 px-4 -translate-x-4" }, /* @__PURE__ */ React.createElement("div", { className: "flex gap-1 items-center justify-start -skew-x-2 text-xs opacity-60" }, /* @__PURE__ */ React.createElement("div", null, "00 \u5E74 00 \u6708 00 \u65E5")), /* @__PURE__ */ React.createElement("div", { className: "flex gap-1 items-center justify-start translate-x-6 text-xl font-bold text-green-300" }, /* @__PURE__ */ React.createElement("div", null, " 0.00 PP"))))
97
36
  );
98
37
  }
99
38
  export {