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.
- package/dist/cjs/cmd/bind/bind-beatleader.js +9 -12
- package/dist/cjs/cmd/bind/bind-beatleader.js.map +1 -1
- package/dist/cjs/cmd/bind/bind-beatsaver.js +7 -12
- package/dist/cjs/cmd/bind/bind-beatsaver.js.map +1 -1
- package/dist/cjs/cmd/bind/bind-id-beatleader.js +10 -13
- package/dist/cjs/cmd/bind/bind-id-beatleader.js.map +1 -1
- package/dist/cjs/cmd/bind/bind-id-beatsaver.js +9 -13
- package/dist/cjs/cmd/bind/bind-id-beatsaver.js.map +1 -1
- package/dist/cjs/cmd/bind/bind-scoresaber.js +10 -15
- package/dist/cjs/cmd/bind/bind-scoresaber.js.map +1 -1
- package/dist/cjs/cmd/bind/index.js +12 -12
- package/dist/cjs/cmd/bind/index.js.map +1 -1
- package/dist/cjs/cmd/bsmap/id-search.js +3 -3
- package/dist/cjs/cmd/bsmap/id-search.js.map +1 -1
- package/dist/cjs/cmd/bsmap/key-search.js +2 -2
- package/dist/cjs/cmd/bsmap/key-search.js.map +1 -1
- package/dist/cjs/cmd/bsmap/latest.js +2 -2
- package/dist/cjs/cmd/bsmap/latest.js.map +1 -1
- package/dist/cjs/cmd/deprecated/tmp.js +4 -4
- package/dist/cjs/cmd/deprecated/tmp.js.map +1 -1
- package/dist/cjs/cmd/index.js +11 -11
- package/dist/cjs/cmd/index.js.map +1 -1
- package/dist/cjs/cmd/rank.js +8 -8
- package/dist/cjs/cmd/rank.js.map +1 -1
- package/dist/cjs/cmd/score.js +17 -21
- package/dist/cjs/cmd/score.js.map +1 -1
- package/dist/cjs/cmd/subscribe/beatleader.js +4 -4
- package/dist/cjs/cmd/subscribe/beatleader.js.map +1 -1
- package/dist/cjs/cmd/subscribe/beatsaver.js +4 -4
- package/dist/cjs/cmd/subscribe/beatsaver.js.map +1 -1
- package/dist/cjs/cmd/subscribe/id-beatleader-score.js +5 -5
- package/dist/cjs/cmd/subscribe/id-beatleader-score.js.map +1 -1
- package/dist/cjs/cmd/subscribe/id-beatsaver-mapper.js +5 -5
- package/dist/cjs/cmd/subscribe/id-beatsaver-mapper.js.map +1 -1
- package/dist/cjs/cmd/subscribe/index.js +12 -12
- package/dist/cjs/cmd/subscribe/index.js.map +1 -1
- package/dist/cjs/cmd/subscribe/subjoin.js +6 -6
- package/dist/cjs/cmd/subscribe/subjoin.js.map +1 -1
- package/dist/cjs/cmd/subscribe/subleave.js +10 -10
- package/dist/cjs/cmd/subscribe/subleave.js.map +1 -1
- package/dist/cjs/cmd/subscribe/unsubscribe.js +8 -8
- package/dist/cjs/cmd/subscribe/unsubscribe.js.map +1 -1
- package/dist/cjs/common/cache.js.map +1 -0
- package/dist/cjs/common/fetch/error.js.map +1 -0
- package/dist/cjs/{infra/support → common}/fetch/index.js +16 -14
- package/dist/cjs/common/fetch/index.js.map +1 -0
- package/dist/cjs/{infra/support → common}/fetch/ofetch.js +5 -12
- package/dist/cjs/common/fetch/ofetch.js.map +1 -0
- package/dist/cjs/common/i18n/index.js +55 -0
- package/dist/cjs/common/i18n/index.js.map +1 -0
- package/dist/cjs/common/i18n/parser.js.map +1 -0
- package/dist/cjs/{infra/i18n/index.js → common/i18n/util.js} +10 -71
- package/dist/cjs/common/i18n/util.js.map +1 -0
- package/dist/cjs/{infra/support → common}/render/index.js +55 -15
- package/dist/cjs/common/render/index.js.map +1 -0
- package/dist/cjs/common/render/puppeteer.js.map +1 -0
- package/dist/cjs/{infra → common}/s3/index.js +34 -13
- package/dist/cjs/common/s3/index.js.map +1 -0
- package/dist/cjs/components/components/RankDifficulty.js +71 -84
- package/dist/cjs/components/components/RankDifficulty.js.map +1 -1
- package/dist/cjs/components/components/base/avatar.js +12 -2
- package/dist/cjs/components/components/base/avatar.js.map +1 -1
- package/dist/cjs/components/components/bl-rank-score-item.js +26 -87
- package/dist/cjs/components/components/bl-rank-score-item.js.map +1 -1
- package/dist/cjs/components/components/bl-score-item.js +39 -69
- package/dist/cjs/components/components/bl-score-item.js.map +1 -1
- package/dist/cjs/components/components/characteristic.js +117 -118
- package/dist/cjs/components/components/characteristic.js.map +1 -1
- package/dist/cjs/components/components/flag.js +7 -14
- package/dist/cjs/components/components/flag.js.map +1 -1
- package/dist/cjs/components/components/icons/BeatLeader.js +66 -71
- package/dist/cjs/components/components/icons/BeatLeader.js.map +1 -1
- package/dist/cjs/components/components/icons/RankIcon.js +3 -7
- package/dist/cjs/components/components/icons/RankIcon.js.map +1 -1
- package/dist/cjs/components/components/icons/ScoreSaberIcon.js +276 -312
- package/dist/cjs/components/components/icons/ScoreSaberIcon.js.map +1 -1
- package/dist/cjs/components/components/progressbar.js +12 -2
- package/dist/cjs/components/components/progressbar.js.map +1 -1
- package/dist/cjs/components/components/scoreItem.js +37 -63
- package/dist/cjs/components/components/scoreItem.js.map +1 -1
- package/dist/cjs/components/components/scoregraph.js +5 -5
- package/dist/cjs/components/components/scoregraph.js.map +1 -1
- package/dist/cjs/components/components/skill-graph.js +158 -164
- package/dist/cjs/components/components/skill-graph.js.map +1 -1
- package/dist/cjs/components/components/socre-badge.js +18 -10
- package/dist/cjs/components/components/socre-badge.js.map +1 -1
- package/dist/cjs/components/components/ss-rank-score-item.js +26 -87
- package/dist/cjs/components/components/ss-rank-score-item.js.map +1 -1
- package/dist/cjs/components/components/ss-score-item.js +38 -65
- package/dist/cjs/components/components/ss-score-item.js.map +1 -1
- package/dist/cjs/components/index.js +3 -43
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/pages/bl-player.js +91 -136
- package/dist/cjs/components/pages/bl-player.js.map +1 -1
- package/dist/cjs/components/pages/bl-score-with-rank.js +114 -221
- package/dist/cjs/components/pages/bl-score-with-rank.js.map +1 -1
- package/dist/cjs/components/pages/bl-score.js +67 -169
- package/dist/cjs/components/pages/bl-score.js.map +1 -1
- package/dist/cjs/components/pages/bs-map.js +95 -166
- package/dist/cjs/components/pages/bs-map.js.map +1 -1
- package/dist/cjs/components/pages/index.js +26 -26
- package/dist/cjs/components/pages/index.js.map +1 -1
- package/dist/cjs/components/pages/ss-player.js +48 -77
- package/dist/cjs/components/pages/ss-player.js.map +1 -1
- package/dist/cjs/components/utils/bl/bsorReplayAcc.js +2 -2
- package/dist/cjs/components/utils/bl/bsorReplayAcc.js.map +1 -1
- package/dist/cjs/components/utils/bl/getPart.js.map +1 -1
- package/dist/cjs/components/utils/bl/stastic.js.map +1 -1
- package/dist/cjs/components/utils/format.js +3 -3
- package/dist/cjs/components/utils/format.js.map +1 -1
- package/dist/cjs/components/utils/getMods.js.map +1 -1
- package/dist/cjs/components/utils/index.js +4 -4
- package/dist/cjs/config.js +40 -0
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/{interface → core}/cmd/builder.js +5 -5
- package/dist/cjs/core/cmd/builder.js.map +1 -0
- package/dist/cjs/core/cmd/type.js.map +1 -0
- package/dist/cjs/core/domain.js +16 -0
- package/dist/cjs/core/domain.js.map +1 -0
- package/dist/cjs/core/error.js +38 -0
- package/dist/cjs/core/error.js.map +1 -0
- package/dist/cjs/{interface/bot.js → core/event.js} +3 -3
- package/dist/cjs/core/event.js.map +1 -0
- package/dist/cjs/core/index.js +39 -0
- package/dist/cjs/core/index.js.map +1 -0
- package/dist/cjs/core/logger.js.map +1 -0
- package/dist/cjs/core/session.js +16 -0
- package/dist/cjs/core/session.js.map +1 -0
- package/dist/cjs/{schedules → events/schedules}/index.js +4 -3
- package/dist/cjs/events/schedules/index.js.map +1 -0
- package/dist/cjs/{schedules → events/schedules}/temp.js +7 -3
- package/dist/cjs/events/schedules/temp.js.map +1 -0
- package/dist/cjs/{ws → events/ws}/beatleader.js +6 -6
- package/dist/cjs/events/ws/beatleader.js.map +1 -0
- package/dist/cjs/{ws → events/ws}/beatsaver.js +11 -11
- package/dist/cjs/events/ws/beatsaver.js.map +1 -0
- package/dist/cjs/events/ws/handler.js.map +1 -0
- package/dist/cjs/{ws → events/ws}/index.js +6 -8
- package/dist/cjs/events/ws/index.js.map +1 -0
- package/dist/cjs/index.js +27 -18
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interface/db/index.js +0 -6
- package/dist/cjs/interface/db/index.js.map +1 -1
- package/dist/cjs/interface/db/models.js.map +1 -1
- package/dist/cjs/interface/index.js +12 -21
- package/dist/cjs/interface/index.js.map +1 -1
- package/dist/cjs/{service → services}/api/base/aioclient.js +1 -1
- package/dist/cjs/services/api/base/aioclient.js.map +1 -0
- package/dist/cjs/{service → services}/api/base/blclient.js +1 -1
- package/dist/cjs/services/api/base/blclient.js.map +1 -0
- package/dist/cjs/{service → services}/api/base/bsclient.js +2 -2
- package/dist/cjs/services/api/base/bsclient.js.map +1 -0
- package/dist/cjs/{service → services}/api/base/index.js +8 -8
- package/dist/cjs/services/api/base/index.js.map +1 -0
- package/dist/cjs/{service → services}/api/base/ssclient.js +2 -2
- package/dist/cjs/services/api/base/ssclient.js.map +1 -0
- package/dist/cjs/{service → services}/api/index.js +17 -9
- package/dist/cjs/services/api/index.js.map +1 -0
- package/dist/cjs/services/api/interfaces/aiosaber/index.js.map +1 -0
- package/dist/cjs/services/api/interfaces/beatleader/bsor.js.map +1 -0
- package/dist/cjs/{service → services}/api/interfaces/beatleader/index.js +10 -10
- package/dist/cjs/services/api/interfaces/beatleader/index.js.map +1 -0
- package/dist/cjs/services/api/interfaces/beatleader/req.js.map +1 -0
- package/dist/cjs/services/api/interfaces/beatleader/score.js.map +1 -0
- package/dist/cjs/services/api/interfaces/beatleader/user.js.map +1 -0
- package/dist/cjs/services/api/interfaces/beatleader/ws.js.map +1 -0
- package/dist/cjs/services/api/interfaces/beatsaver/alert.js.map +1 -0
- package/dist/cjs/services/api/interfaces/beatsaver/bsmap.js.map +1 -0
- package/dist/cjs/{service → services}/api/interfaces/beatsaver/index.js +10 -10
- package/dist/cjs/services/api/interfaces/beatsaver/index.js.map +1 -0
- package/dist/cjs/services/api/interfaces/beatsaver/resp.js.map +1 -0
- package/dist/cjs/services/api/interfaces/beatsaver/user.js.map +1 -0
- package/dist/cjs/services/api/interfaces/beatsaver/ws.js.map +1 -0
- package/dist/cjs/services/api/interfaces/index.js.map +1 -0
- package/dist/cjs/{service → services}/api/interfaces/scoresaber/index.js +6 -6
- package/dist/cjs/services/api/interfaces/scoresaber/index.js.map +1 -0
- package/dist/cjs/services/api/interfaces/scoresaber/item.js.map +1 -0
- package/dist/cjs/services/api/interfaces/scoresaber/leaderboard.js.map +1 -0
- package/dist/cjs/services/api/interfaces/scoresaber/resp.js.map +1 -0
- package/dist/cjs/services/api/interfaces/scoresaber/user.js.map +1 -0
- package/dist/cjs/services/api/interfaces/scoresaber/ws.js.map +1 -0
- package/dist/cjs/services/api/sortScore.js.map +1 -0
- package/dist/cjs/{infra → services}/errors/index.js +21 -38
- package/dist/cjs/services/errors/index.js.map +1 -0
- package/dist/cjs/services/i18n/index.js +43 -0
- package/dist/cjs/services/i18n/index.js.map +1 -0
- package/dist/cjs/{infra → services}/i18n/zh-cn.json +1 -1
- package/dist/cjs/{infra → services}/index.js +12 -9
- package/dist/cjs/services/index.js.map +1 -0
- package/dist/cjs/services/preference.js.map +1 -0
- package/dist/cjs/{service → services}/render/index.js +36 -13
- package/dist/cjs/services/render/index.js.map +1 -0
- package/dist/cjs/utils/bsorDecoder.js +329 -0
- package/dist/cjs/utils/bsorDecoder.js.map +1 -0
- package/dist/cjs/utils/index.js +6 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/platform.js +38 -0
- package/dist/cjs/utils/platform.js.map +1 -0
- package/dist/esm/cmd/bind/bind-beatleader.js +9 -12
- package/dist/esm/cmd/bind/bind-beatleader.js.map +1 -1
- package/dist/esm/cmd/bind/bind-beatsaver.js +7 -12
- package/dist/esm/cmd/bind/bind-beatsaver.js.map +1 -1
- package/dist/esm/cmd/bind/bind-id-beatleader.js +10 -13
- package/dist/esm/cmd/bind/bind-id-beatleader.js.map +1 -1
- package/dist/esm/cmd/bind/bind-id-beatsaver.js +9 -13
- package/dist/esm/cmd/bind/bind-id-beatsaver.js.map +1 -1
- package/dist/esm/cmd/bind/bind-scoresaber.js +10 -15
- package/dist/esm/cmd/bind/bind-scoresaber.js.map +1 -1
- package/dist/esm/cmd/bind/index.js +5 -5
- package/dist/esm/cmd/bind/index.js.map +1 -1
- package/dist/esm/cmd/bsmap/id-search.js +2 -2
- package/dist/esm/cmd/bsmap/id-search.js.map +1 -1
- package/dist/esm/cmd/bsmap/key-search.js +1 -1
- package/dist/esm/cmd/bsmap/key-search.js.map +1 -1
- package/dist/esm/cmd/bsmap/latest.js +2 -2
- package/dist/esm/cmd/bsmap/latest.js.map +1 -1
- package/dist/esm/cmd/deprecated/tmp.js +3 -3
- package/dist/esm/cmd/deprecated/tmp.js.map +1 -1
- package/dist/esm/cmd/index.js +11 -11
- package/dist/esm/cmd/index.js.map +1 -1
- package/dist/esm/cmd/rank.js +7 -7
- package/dist/esm/cmd/rank.js.map +1 -1
- package/dist/esm/cmd/score.js +14 -18
- package/dist/esm/cmd/score.js.map +1 -1
- package/dist/esm/cmd/subscribe/beatleader.js +4 -4
- package/dist/esm/cmd/subscribe/beatleader.js.map +1 -1
- package/dist/esm/cmd/subscribe/beatsaver.js +4 -4
- package/dist/esm/cmd/subscribe/beatsaver.js.map +1 -1
- package/dist/esm/cmd/subscribe/id-beatleader-score.js +5 -5
- package/dist/esm/cmd/subscribe/id-beatleader-score.js.map +1 -1
- package/dist/esm/cmd/subscribe/id-beatsaver-mapper.js +5 -5
- package/dist/esm/cmd/subscribe/id-beatsaver-mapper.js.map +1 -1
- package/dist/esm/cmd/subscribe/index.js +11 -11
- package/dist/esm/cmd/subscribe/index.js.map +1 -1
- package/dist/esm/cmd/subscribe/subjoin.js +5 -5
- package/dist/esm/cmd/subscribe/subjoin.js.map +1 -1
- package/dist/esm/cmd/subscribe/subleave.js +9 -9
- package/dist/esm/cmd/subscribe/subleave.js.map +1 -1
- package/dist/esm/cmd/subscribe/unsubscribe.js +7 -7
- package/dist/esm/cmd/subscribe/unsubscribe.js.map +1 -1
- package/dist/esm/common/cache.js.map +1 -0
- package/dist/esm/common/fetch/error.js.map +1 -0
- package/dist/esm/common/fetch/index.js +35 -0
- package/dist/esm/common/fetch/index.js.map +1 -0
- package/dist/esm/{infra/support → common}/fetch/ofetch.js +4 -10
- package/dist/esm/common/fetch/ofetch.js.map +1 -0
- package/dist/esm/common/i18n/index.js +32 -0
- package/dist/esm/common/i18n/index.js.map +1 -0
- package/dist/esm/common/i18n/parser.js.map +1 -0
- package/dist/esm/{infra/i18n/index.js → common/i18n/util.js} +4 -56
- package/dist/esm/common/i18n/util.js.map +1 -0
- package/dist/esm/{infra/support → common}/render/index.js +53 -13
- package/dist/esm/common/render/index.js.map +1 -0
- package/dist/esm/common/render/puppeteer.js.map +1 -0
- package/dist/esm/{infra → common}/s3/index.js +32 -12
- package/dist/esm/common/s3/index.js.map +1 -0
- package/dist/esm/components/components/RankDifficulty.js +61 -84
- package/dist/esm/components/components/RankDifficulty.js.map +1 -1
- package/dist/esm/components/components/base/avatar.js +2 -2
- package/dist/esm/components/components/base/avatar.js.map +1 -1
- package/dist/esm/components/components/bl-rank-score-item.js +26 -87
- package/dist/esm/components/components/bl-rank-score-item.js.map +1 -1
- package/dist/esm/components/components/bl-score-item.js +29 -69
- package/dist/esm/components/components/bl-score-item.js.map +1 -1
- package/dist/esm/components/components/characteristic.js +107 -118
- package/dist/esm/components/components/characteristic.js.map +1 -1
- package/dist/esm/components/components/flag.js +7 -14
- package/dist/esm/components/components/flag.js.map +1 -1
- package/dist/esm/components/components/icons/BeatLeader.js +56 -71
- package/dist/esm/components/components/icons/BeatLeader.js.map +1 -1
- package/dist/esm/components/components/icons/RankIcon.js +3 -7
- package/dist/esm/components/components/icons/RankIcon.js.map +1 -1
- package/dist/esm/components/components/icons/ScoreSaberIcon.js +276 -312
- package/dist/esm/components/components/icons/ScoreSaberIcon.js.map +1 -1
- package/dist/esm/components/components/progressbar.js +2 -2
- package/dist/esm/components/components/progressbar.js.map +1 -1
- package/dist/esm/components/components/scoreItem.js +27 -63
- package/dist/esm/components/components/scoreItem.js.map +1 -1
- package/dist/esm/components/components/scoregraph.js +5 -5
- package/dist/esm/components/components/scoregraph.js.map +1 -1
- package/dist/esm/components/components/skill-graph.js +148 -164
- package/dist/esm/components/components/skill-graph.js.map +1 -1
- package/dist/esm/components/components/socre-badge.js +8 -10
- package/dist/esm/components/components/socre-badge.js.map +1 -1
- package/dist/esm/components/components/ss-rank-score-item.js +26 -87
- package/dist/esm/components/components/ss-rank-score-item.js.map +1 -1
- package/dist/esm/components/components/ss-score-item.js +28 -65
- package/dist/esm/components/components/ss-score-item.js.map +1 -1
- package/dist/esm/components/index.js +3 -43
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/pages/bl-player.js +91 -136
- package/dist/esm/components/pages/bl-player.js.map +1 -1
- package/dist/esm/components/pages/bl-score-with-rank.js +114 -221
- package/dist/esm/components/pages/bl-score-with-rank.js.map +1 -1
- package/dist/esm/components/pages/bl-score.js +67 -169
- package/dist/esm/components/pages/bl-score.js.map +1 -1
- package/dist/esm/components/pages/bs-map.js +95 -166
- package/dist/esm/components/pages/bs-map.js.map +1 -1
- package/dist/esm/components/pages/index.js +21 -21
- package/dist/esm/components/pages/index.js.map +1 -1
- package/dist/esm/components/pages/ss-player.js +48 -77
- package/dist/esm/components/pages/ss-player.js.map +1 -1
- package/dist/esm/components/utils/bl/bsorReplayAcc.js +2 -2
- package/dist/esm/components/utils/bl/bsorReplayAcc.js.map +1 -1
- package/dist/esm/components/utils/bl/getPart.js.map +1 -1
- package/dist/esm/components/utils/bl/stastic.js.map +1 -1
- package/dist/esm/components/utils/format.js +3 -3
- package/dist/esm/components/utils/format.js.map +1 -1
- package/dist/esm/components/utils/getMods.js.map +1 -1
- package/dist/esm/components/utils/index.js +2 -2
- package/dist/esm/config.js +32 -0
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/{interface → core}/cmd/builder.js +4 -4
- package/dist/esm/core/cmd/builder.js.map +1 -0
- package/dist/esm/core/domain.js +1 -0
- package/dist/esm/core/error.js +16 -0
- package/dist/esm/core/error.js.map +1 -0
- package/dist/esm/core/event.js +1 -0
- package/dist/esm/core/index.js +10 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/core/session.js +1 -0
- package/dist/esm/events/schedules/index.js +16 -0
- package/dist/esm/events/schedules/index.js.map +1 -0
- package/dist/esm/{schedules → events/schedules}/temp.js +7 -3
- package/dist/esm/events/schedules/temp.js.map +1 -0
- package/dist/esm/{ws → events/ws}/beatleader.js +6 -6
- package/dist/esm/events/ws/beatleader.js.map +1 -0
- package/dist/esm/{ws → events/ws}/beatsaver.js +11 -11
- package/dist/esm/events/ws/beatsaver.js.map +1 -0
- package/dist/esm/events/ws/index.js +4 -0
- package/dist/esm/events/ws/index.js.map +1 -0
- package/dist/esm/index.js +15 -10
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interface/db/index.js +0 -1
- package/dist/esm/interface/db/index.js.map +1 -1
- package/dist/esm/interface/index.js +9 -15
- package/dist/esm/interface/index.js.map +1 -1
- package/dist/esm/{service → services}/api/base/aioclient.js +1 -1
- package/dist/esm/services/api/base/aioclient.js.map +1 -0
- package/dist/esm/{service → services}/api/base/blclient.js +1 -1
- package/dist/esm/services/api/base/blclient.js.map +1 -0
- package/dist/esm/{service → services}/api/base/bsclient.js +2 -2
- package/dist/esm/services/api/base/bsclient.js.map +1 -0
- package/dist/esm/services/api/base/index.js +5 -0
- package/dist/esm/services/api/base/index.js.map +1 -0
- package/dist/esm/{service → services}/api/base/ssclient.js +2 -2
- package/dist/esm/services/api/base/ssclient.js.map +1 -0
- package/dist/esm/{service → services}/api/index.js +16 -8
- package/dist/esm/services/api/index.js.map +1 -0
- package/dist/esm/services/api/interfaces/beatleader/index.js +6 -0
- package/dist/esm/services/api/interfaces/beatleader/index.js.map +1 -0
- package/dist/esm/services/api/interfaces/beatsaver/index.js +6 -0
- package/dist/esm/services/api/interfaces/beatsaver/index.js.map +1 -0
- package/dist/esm/services/api/interfaces/scoresaber/index.js +4 -0
- package/dist/esm/services/api/interfaces/scoresaber/index.js.map +1 -0
- package/dist/esm/services/api/sortScore.js.map +1 -0
- package/dist/esm/{infra → services}/errors/index.js +1 -17
- package/dist/esm/services/errors/index.js.map +1 -0
- package/dist/esm/services/i18n/index.js +21 -0
- package/dist/esm/services/i18n/index.js.map +1 -0
- package/dist/esm/services/index.js +9 -0
- package/dist/esm/services/index.js.map +1 -0
- package/dist/esm/services/preference.js.map +1 -0
- package/dist/esm/{service → services}/render/index.js +34 -11
- package/dist/esm/services/render/index.js.map +1 -0
- package/dist/esm/utils/bsorDecoder.js +301 -0
- package/dist/esm/utils/bsorDecoder.js.map +1 -0
- package/dist/esm/utils/index.js +2 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/platform.js +14 -0
- package/dist/esm/utils/platform.js.map +1 -0
- package/dist/types/index.d.ts +1376 -48
- package/package.json +20 -20
- package/dist/cjs/components/utils/canvas.js +0 -2
- package/dist/cjs/components/utils/canvas.js.map +0 -1
- package/dist/cjs/infra/errors/index.js.map +0 -1
- package/dist/cjs/infra/i18n/index.js.map +0 -1
- package/dist/cjs/infra/i18n/parser.js.map +0 -1
- package/dist/cjs/infra/index.js.map +0 -1
- package/dist/cjs/infra/s3/index.js.map +0 -1
- package/dist/cjs/infra/support/cache.js.map +0 -1
- package/dist/cjs/infra/support/fetch/error.js.map +0 -1
- package/dist/cjs/infra/support/fetch/index.js.map +0 -1
- package/dist/cjs/infra/support/fetch/ofetch.js.map +0 -1
- package/dist/cjs/infra/support/render/index.js.map +0 -1
- package/dist/cjs/infra/support/render/puppeteer.js.map +0 -1
- package/dist/cjs/interface/bot.js.map +0 -1
- package/dist/cjs/interface/cmd/builder.js.map +0 -1
- package/dist/cjs/interface/cmd/type.js.map +0 -1
- package/dist/cjs/interface/logger.js.map +0 -1
- package/dist/cjs/schedules/index.js.map +0 -1
- package/dist/cjs/schedules/interface.js +0 -16
- package/dist/cjs/schedules/interface.js.map +0 -1
- package/dist/cjs/schedules/temp.js.map +0 -1
- package/dist/cjs/service/api/base/aioclient.js.map +0 -1
- package/dist/cjs/service/api/base/blclient.js.map +0 -1
- package/dist/cjs/service/api/base/bsclient.js.map +0 -1
- package/dist/cjs/service/api/base/index.js.map +0 -1
- package/dist/cjs/service/api/base/ssclient.js.map +0 -1
- package/dist/cjs/service/api/index.js.map +0 -1
- package/dist/cjs/service/api/interfaces/aiosaber/index.js.map +0 -1
- package/dist/cjs/service/api/interfaces/beatleader/bsor.js.map +0 -1
- package/dist/cjs/service/api/interfaces/beatleader/index.js.map +0 -1
- package/dist/cjs/service/api/interfaces/beatleader/req.js.map +0 -1
- package/dist/cjs/service/api/interfaces/beatleader/score.js.map +0 -1
- package/dist/cjs/service/api/interfaces/beatleader/user.js.map +0 -1
- package/dist/cjs/service/api/interfaces/beatleader/ws.js.map +0 -1
- package/dist/cjs/service/api/interfaces/beatsaver/alert.js.map +0 -1
- package/dist/cjs/service/api/interfaces/beatsaver/bsmap.js.map +0 -1
- package/dist/cjs/service/api/interfaces/beatsaver/index.js.map +0 -1
- package/dist/cjs/service/api/interfaces/beatsaver/resp.js.map +0 -1
- package/dist/cjs/service/api/interfaces/beatsaver/user.js.map +0 -1
- package/dist/cjs/service/api/interfaces/beatsaver/ws.js.map +0 -1
- package/dist/cjs/service/api/interfaces/index.js.map +0 -1
- package/dist/cjs/service/api/interfaces/scoresaber/index.js.map +0 -1
- package/dist/cjs/service/api/interfaces/scoresaber/item.js.map +0 -1
- package/dist/cjs/service/api/interfaces/scoresaber/leaderboard.js.map +0 -1
- package/dist/cjs/service/api/interfaces/scoresaber/resp.js.map +0 -1
- package/dist/cjs/service/api/interfaces/scoresaber/user.js.map +0 -1
- package/dist/cjs/service/api/interfaces/scoresaber/ws.js.map +0 -1
- package/dist/cjs/service/api/sortScore.js.map +0 -1
- package/dist/cjs/service/index.js +0 -16
- package/dist/cjs/service/index.js.map +0 -1
- package/dist/cjs/service/preference.js.map +0 -1
- package/dist/cjs/service/render/index.js.map +0 -1
- package/dist/cjs/service/render/interfaces.js +0 -16
- package/dist/cjs/service/render/interfaces.js.map +0 -1
- package/dist/cjs/ws/beatleader.js.map +0 -1
- package/dist/cjs/ws/beatsaver.js.map +0 -1
- package/dist/cjs/ws/bl-filter.js +0 -1
- package/dist/cjs/ws/handler.js.map +0 -1
- package/dist/cjs/ws/index.js.map +0 -1
- package/dist/cjs/ws/scoresaber.js +0 -75
- package/dist/cjs/ws/scoresaber.js.map +0 -1
- package/dist/esm/components/utils/canvas.js +0 -2
- package/dist/esm/components/utils/canvas.js.map +0 -1
- package/dist/esm/infra/errors/index.js.map +0 -1
- package/dist/esm/infra/i18n/index.js.map +0 -1
- package/dist/esm/infra/i18n/parser.js.map +0 -1
- package/dist/esm/infra/index.js +0 -6
- package/dist/esm/infra/index.js.map +0 -1
- package/dist/esm/infra/s3/index.js.map +0 -1
- package/dist/esm/infra/support/cache.js.map +0 -1
- package/dist/esm/infra/support/fetch/error.js.map +0 -1
- package/dist/esm/infra/support/fetch/index.js +0 -33
- package/dist/esm/infra/support/fetch/index.js.map +0 -1
- package/dist/esm/infra/support/fetch/ofetch.js.map +0 -1
- package/dist/esm/infra/support/render/index.js.map +0 -1
- package/dist/esm/infra/support/render/puppeteer.js.map +0 -1
- package/dist/esm/interface/bot.js +0 -1
- package/dist/esm/interface/cmd/builder.js.map +0 -1
- package/dist/esm/schedules/index.js +0 -15
- package/dist/esm/schedules/index.js.map +0 -1
- package/dist/esm/schedules/interface.js +0 -1
- package/dist/esm/schedules/temp.js.map +0 -1
- package/dist/esm/service/api/base/aioclient.js.map +0 -1
- package/dist/esm/service/api/base/blclient.js.map +0 -1
- package/dist/esm/service/api/base/bsclient.js.map +0 -1
- package/dist/esm/service/api/base/index.js +0 -5
- package/dist/esm/service/api/base/index.js.map +0 -1
- package/dist/esm/service/api/base/ssclient.js.map +0 -1
- package/dist/esm/service/api/index.js.map +0 -1
- package/dist/esm/service/api/interfaces/beatleader/index.js +0 -6
- package/dist/esm/service/api/interfaces/beatleader/index.js.map +0 -1
- package/dist/esm/service/api/interfaces/beatsaver/index.js +0 -6
- package/dist/esm/service/api/interfaces/beatsaver/index.js.map +0 -1
- package/dist/esm/service/api/interfaces/scoresaber/index.js +0 -4
- package/dist/esm/service/api/interfaces/scoresaber/index.js.map +0 -1
- package/dist/esm/service/api/sortScore.js.map +0 -1
- package/dist/esm/service/index.js +0 -1
- package/dist/esm/service/index.js.map +0 -1
- package/dist/esm/service/preference.js.map +0 -1
- package/dist/esm/service/render/index.js.map +0 -1
- package/dist/esm/service/render/interfaces.js +0 -1
- package/dist/esm/service/render/interfaces.js.map +0 -1
- package/dist/esm/ws/beatleader.js.map +0 -1
- package/dist/esm/ws/beatsaver.js.map +0 -1
- package/dist/esm/ws/bl-filter.js +0 -1
- package/dist/esm/ws/bl-filter.js.map +0 -1
- package/dist/esm/ws/index.js +0 -5
- package/dist/esm/ws/index.js.map +0 -1
- package/dist/esm/ws/scoresaber.js +0 -53
- package/dist/esm/ws/scoresaber.js.map +0 -1
- package/dist/types/cmd/bind/bind-beatleader.d.ts +0 -34
- package/dist/types/cmd/bind/bind-beatsaver.d.ts +0 -34
- package/dist/types/cmd/bind/bind-id-beatleader.d.ts +0 -34
- package/dist/types/cmd/bind/bind-id-beatsaver.d.ts +0 -34
- package/dist/types/cmd/bind/bind-scoresaber.d.ts +0 -34
- package/dist/types/cmd/bind/index.d.ts +0 -41
- package/dist/types/cmd/bsmap/id-search.d.ts +0 -41
- package/dist/types/cmd/bsmap/key-search.d.ts +0 -41
- package/dist/types/cmd/bsmap/latest.d.ts +0 -41
- package/dist/types/cmd/config/index.d.ts +0 -2
- package/dist/types/cmd/deprecated/tmp.d.ts +0 -41
- package/dist/types/cmd/index.d.ts +0 -34
- package/dist/types/cmd/rank.d.ts +0 -41
- package/dist/types/cmd/score.d.ts +0 -41
- package/dist/types/cmd/subscribe/beatleader.d.ts +0 -34
- package/dist/types/cmd/subscribe/beatsaver.d.ts +0 -34
- package/dist/types/cmd/subscribe/id-beatleader-score.d.ts +0 -34
- package/dist/types/cmd/subscribe/id-beatsaver-mapper.d.ts +0 -34
- package/dist/types/cmd/subscribe/index.d.ts +0 -41
- package/dist/types/cmd/subscribe/subjoin.d.ts +0 -41
- package/dist/types/cmd/subscribe/subleave.d.ts +0 -41
- package/dist/types/cmd/subscribe/unsubscribe.d.ts +0 -41
- package/dist/types/components/components/RankDifficulty.d.ts +0 -10
- package/dist/types/components/components/base/avatar.d.ts +0 -10
- package/dist/types/components/components/bl-rank-score-item.d.ts +0 -21
- package/dist/types/components/components/bl-score-item.d.ts +0 -10
- package/dist/types/components/components/characteristic.d.ts +0 -9
- package/dist/types/components/components/flag.d.ts +0 -9
- package/dist/types/components/components/icons/BeatLeader.d.ts +0 -6
- package/dist/types/components/components/icons/RankIcon.d.ts +0 -8
- package/dist/types/components/components/icons/ScoreSaberIcon.d.ts +0 -6
- package/dist/types/components/components/progressbar.d.ts +0 -8
- package/dist/types/components/components/scoreItem.d.ts +0 -8
- package/dist/types/components/components/scoregraph.d.ts +0 -15
- package/dist/types/components/components/skill-graph.d.ts +0 -9
- package/dist/types/components/components/socre-badge.d.ts +0 -9
- package/dist/types/components/components/ss-rank-score-item.d.ts +0 -21
- package/dist/types/components/components/ss-score-item.d.ts +0 -8
- package/dist/types/components/index.d.ts +0 -5
- package/dist/types/components/pages/bl-player.d.ts +0 -11
- package/dist/types/components/pages/bl-score-with-rank.d.ts +0 -18
- package/dist/types/components/pages/bl-score.d.ts +0 -15
- package/dist/types/components/pages/bs-map.d.ts +0 -11
- package/dist/types/components/pages/index.d.ts +0 -14
- package/dist/types/components/pages/ss-player.d.ts +0 -13
- package/dist/types/components/utils/bl/beatleader.d.ts +0 -15
- package/dist/types/components/utils/bl/blheadset.d.ts +0 -275
- package/dist/types/components/utils/bl/bsorDecoder.d.ts +0 -189
- package/dist/types/components/utils/bl/bsorReplayAcc.d.ts +0 -38
- package/dist/types/components/utils/bl/getPart.d.ts +0 -9
- package/dist/types/components/utils/bl/stastic.d.ts +0 -3
- package/dist/types/components/utils/canvas.d.ts +0 -2
- package/dist/types/components/utils/format.d.ts +0 -8
- package/dist/types/components/utils/getMods.d.ts +0 -5
- package/dist/types/components/utils/index.d.ts +0 -6
- package/dist/types/components/utils/qrcode.d.ts +0 -3
- package/dist/types/components/utils/sleep.d.ts +0 -3
- package/dist/types/components/utils/tag-format.d.ts +0 -3
- package/dist/types/components/utils/tw-join.d.ts +0 -5
- package/dist/types/config.d.ts +0 -30
- package/dist/types/index-Dagy_c8G.d.ts +0 -74
- package/dist/types/infra/errors/index.d.ts +0 -69
- package/dist/types/infra/i18n/index.d.ts +0 -4
- package/dist/types/infra/i18n/parser.d.ts +0 -16
- package/dist/types/infra/index.d.ts +0 -6
- package/dist/types/infra/s3/index.d.ts +0 -20
- package/dist/types/infra/support/cache.d.ts +0 -6
- package/dist/types/infra/support/fetch/error.d.ts +0 -11
- package/dist/types/infra/support/fetch/index.d.ts +0 -7
- package/dist/types/infra/support/fetch/ofetch.d.ts +0 -24
- package/dist/types/infra/support/render/index.d.ts +0 -38
- package/dist/types/infra/support/render/puppeteer.d.ts +0 -43
- package/dist/types/interface/bot.d.ts +0 -22
- package/dist/types/interface/cmd/builder.d.ts +0 -53
- package/dist/types/interface/cmd/type.d.ts +0 -30
- package/dist/types/interface/db/index.d.ts +0 -45
- package/dist/types/interface/db/models.d.ts +0 -41
- package/dist/types/interface/index.d.ts +0 -30
- package/dist/types/interface/logger.d.ts +0 -8
- package/dist/types/schedules/index.d.ts +0 -40
- package/dist/types/schedules/interface.d.ts +0 -45
- package/dist/types/schedules/temp.d.ts +0 -35
- package/dist/types/service/api/base/aioclient.d.ts +0 -13
- package/dist/types/service/api/base/blclient.d.ts +0 -28
- package/dist/types/service/api/base/bsclient.d.ts +0 -29
- package/dist/types/service/api/base/index.d.ts +0 -19
- package/dist/types/service/api/base/ssclient.d.ts +0 -17
- package/dist/types/service/api/index.d.ts +0 -59
- package/dist/types/service/api/interfaces/aiosaber/index.d.ts +0 -9
- package/dist/types/service/api/interfaces/beatleader/bsor.d.ts +0 -113
- package/dist/types/service/api/interfaces/beatleader/index.d.ts +0 -5
- package/dist/types/service/api/interfaces/beatleader/req.d.ts +0 -22
- package/dist/types/service/api/interfaces/beatleader/score.d.ts +0 -164
- package/dist/types/service/api/interfaces/beatleader/user.d.ts +0 -173
- package/dist/types/service/api/interfaces/beatleader/ws.d.ts +0 -90
- package/dist/types/service/api/interfaces/beatsaver/alert.d.ts +0 -20
- package/dist/types/service/api/interfaces/beatsaver/bsmap.d.ts +0 -70
- package/dist/types/service/api/interfaces/beatsaver/index.d.ts +0 -13
- package/dist/types/service/api/interfaces/beatsaver/resp.d.ts +0 -11
- package/dist/types/service/api/interfaces/beatsaver/user.d.ts +0 -10
- package/dist/types/service/api/interfaces/beatsaver/ws.d.ts +0 -13
- package/dist/types/service/api/interfaces/index.d.ts +0 -14
- package/dist/types/service/api/interfaces/scoresaber/index.d.ts +0 -3
- package/dist/types/service/api/interfaces/scoresaber/item.d.ts +0 -67
- package/dist/types/service/api/interfaces/scoresaber/leaderboard.d.ts +0 -13
- package/dist/types/service/api/interfaces/scoresaber/resp.d.ts +0 -12
- package/dist/types/service/api/interfaces/scoresaber/user.d.ts +0 -35
- package/dist/types/service/api/interfaces/scoresaber/ws.d.ts +0 -80
- package/dist/types/service/api/sortScore.d.ts +0 -5
- package/dist/types/service/index.d.ts +0 -30
- package/dist/types/service/preference.d.ts +0 -38
- package/dist/types/service/render/index.d.ts +0 -43
- package/dist/types/service/render/interfaces.d.ts +0 -30
- package/dist/types/utils/index.d.ts +0 -5
- package/dist/types/ws/beatleader.d.ts +0 -47
- package/dist/types/ws/beatsaver.d.ts +0 -52
- package/dist/types/ws/bl-filter.d.ts +0 -2
- package/dist/types/ws/handler.d.ts +0 -8
- package/dist/types/ws/index.d.ts +0 -36
- package/dist/types/ws/scoresaber.d.ts +0 -47
- /package/dist/cjs/{infra/support → common}/cache.js +0 -0
- /package/dist/cjs/{infra/support → common}/fetch/error.js +0 -0
- /package/dist/cjs/{infra → common}/i18n/parser.js +0 -0
- /package/dist/cjs/{infra/support → common}/render/puppeteer.js +0 -0
- /package/dist/cjs/{interface → core}/cmd/type.js +0 -0
- /package/dist/cjs/{interface → core}/logger.js +0 -0
- /package/dist/cjs/{ws → events/ws}/handler.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/aiosaber/index.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/beatleader/bsor.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/beatleader/req.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/beatleader/score.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/beatleader/user.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/beatleader/ws.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/beatsaver/alert.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/beatsaver/bsmap.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/beatsaver/resp.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/beatsaver/user.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/beatsaver/ws.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/index.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/scoresaber/item.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/scoresaber/leaderboard.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/scoresaber/resp.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/scoresaber/user.js +0 -0
- /package/dist/cjs/{service → services}/api/interfaces/scoresaber/ws.js +0 -0
- /package/dist/cjs/{service → services}/api/sortScore.js +0 -0
- /package/dist/cjs/{service → services}/preference.js +0 -0
- /package/dist/esm/{infra/support → common}/cache.js +0 -0
- /package/dist/esm/{infra/support → common}/fetch/error.js +0 -0
- /package/dist/esm/{infra → common}/i18n/parser.js +0 -0
- /package/dist/esm/{infra/support → common}/render/puppeteer.js +0 -0
- /package/dist/esm/{interface → core}/cmd/type.js +0 -0
- /package/dist/esm/{interface → core}/cmd/type.js.map +0 -0
- /package/dist/{cjs/ws/bl-filter.js.map → esm/core/domain.js.map} +0 -0
- /package/dist/esm/{interface/bot.js.map → core/event.js.map} +0 -0
- /package/dist/esm/{interface → core}/logger.js +0 -0
- /package/dist/esm/{interface → core}/logger.js.map +0 -0
- /package/dist/esm/{schedules/interface.js.map → core/session.js.map} +0 -0
- /package/dist/esm/{ws → events/ws}/handler.js +0 -0
- /package/dist/esm/{ws → events/ws}/handler.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/aiosaber/index.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/aiosaber/index.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatleader/bsor.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatleader/bsor.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatleader/req.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatleader/req.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatleader/score.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatleader/score.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatleader/user.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatleader/user.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatleader/ws.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatleader/ws.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatsaver/alert.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatsaver/alert.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatsaver/bsmap.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatsaver/bsmap.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatsaver/resp.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatsaver/resp.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatsaver/user.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatsaver/user.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatsaver/ws.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/beatsaver/ws.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/index.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/index.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/scoresaber/item.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/scoresaber/item.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/scoresaber/leaderboard.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/scoresaber/leaderboard.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/scoresaber/resp.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/scoresaber/resp.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/scoresaber/user.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/scoresaber/user.js.map +0 -0
- /package/dist/esm/{service → services}/api/interfaces/scoresaber/ws.js +0 -0
- /package/dist/esm/{service → services}/api/interfaces/scoresaber/ws.js.map +0 -0
- /package/dist/esm/{service → services}/api/sortScore.js +0 -0
- /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,
|
53
|
+
import { html2imgBuffer, url2imgBuffer } from "./puppeteer.js";
|
42
54
|
import { Puppeteer } from "puppeteer-core";
|
43
|
-
import {
|
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 =
|
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({
|
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 = (
|
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 (
|
117
|
-
return new PuppeteerRendering(
|
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
|
-
|
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__ */
|
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
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
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__ */
|
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
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
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__ */
|
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
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
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
|
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
|
1
|
+
import React from "react";
|
2
2
|
function Avatar({ src, fallback, className }) {
|
3
|
-
return /* @__PURE__ */
|
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":["
|
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
|
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__ */
|
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
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
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__ */
|
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
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
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 {
|