beatsaber-bot-core 0.2.0-rc.13 → 0.2.0-rc.15
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 → bind-beatleader.cjs} +1 -1
- package/dist/cjs/cmd/bind/{bind-beatsaver.js → bind-beatsaver.cjs} +1 -1
- package/dist/cjs/cmd/bind/{bind-id-beatleader.js → bind-id-beatleader.cjs} +2 -2
- package/dist/cjs/cmd/bind/{bind-id-beatsaver.js → bind-id-beatsaver.cjs} +2 -2
- package/dist/cjs/cmd/bind/{bind-scoresaber.js → bind-scoresaber.cjs} +2 -2
- package/dist/cjs/cmd/bind/{index.js → index.cjs} +5 -5
- package/dist/cjs/cmd/bsmap/{id-search.js → id-search.cjs} +3 -3
- package/dist/cjs/cmd/bsmap/{key-search.js → key-search.cjs} +2 -2
- package/dist/cjs/cmd/bsmap/{latest.js → latest.cjs} +2 -2
- package/dist/cjs/cmd/config/index.cjs +1 -0
- package/dist/cjs/cmd/deprecated/{tmp.js → tmp.cjs} +2 -2
- package/dist/cjs/cmd/{index.js → index.cjs} +12 -12
- package/dist/cjs/cmd/index.cjs.map +1 -0
- package/dist/cjs/cmd/{rank.js → rank.cjs} +4 -4
- package/dist/cjs/cmd/{score.js → score.cjs} +6 -6
- package/dist/cjs/cmd/subscribe/{beatleader.js → beatleader.cjs} +2 -2
- package/dist/cjs/cmd/subscribe/{beatsaver.js → beatsaver.cjs} +2 -2
- package/dist/cjs/cmd/subscribe/{id-beatleader-score.js → id-beatleader-score.cjs} +2 -2
- package/dist/cjs/cmd/subscribe/{id-beatsaver-mapper.js → id-beatsaver-mapper.cjs} +2 -2
- package/dist/cjs/cmd/subscribe/{index.js → index.cjs} +6 -6
- package/dist/cjs/cmd/subscribe/{subjoin.js → subjoin.cjs} +3 -3
- package/dist/cjs/cmd/subscribe/{subleave.js → subleave.cjs} +2 -2
- package/dist/cjs/cmd/subscribe/{unsubscribe.js → unsubscribe.cjs} +3 -3
- package/dist/cjs/components/components/{RankDifficulty.js → RankDifficulty.cjs} +2 -2
- package/dist/cjs/components/components/base/{avatar.js → avatar.cjs} +1 -1
- package/dist/cjs/components/components/{bl-rank-score-item.js → bl-rank-score-item.cjs} +4 -4
- package/dist/cjs/components/components/{bl-score-item.js → bl-score-item.cjs} +2 -2
- package/dist/cjs/components/components/bl-score-item.cjs.map +1 -0
- package/dist/cjs/components/components/{characteristic.js → characteristic.cjs} +1 -1
- package/dist/cjs/components/components/{flag.js → flag.cjs} +2 -2
- package/dist/cjs/components/components/icons/{BeatLeader.js → BeatLeader.cjs} +1 -1
- package/dist/cjs/components/components/icons/{RankIcon.js → RankIcon.cjs} +3 -3
- package/dist/cjs/components/components/icons/{ScoreSaberIcon.js → ScoreSaberIcon.cjs} +1 -1
- package/dist/cjs/components/components/{progressbar.js → progressbar.cjs} +1 -1
- package/dist/cjs/components/components/{scoreItem.js → scoreItem.cjs} +2 -2
- package/dist/cjs/components/components/scoreItem.cjs.map +1 -0
- package/dist/cjs/components/components/{scoregraph.js → scoregraph.cjs} +3 -3
- package/dist/cjs/components/components/{skill-graph.js → skill-graph.cjs} +1 -1
- package/dist/cjs/components/components/{socre-badge.js → socre-badge.cjs} +1 -1
- package/dist/cjs/components/components/{ss-rank-score-item.js → ss-rank-score-item.cjs} +4 -4
- package/dist/cjs/components/components/{ss-score-item.js → ss-score-item.cjs} +2 -2
- package/dist/cjs/components/components/ss-score-item.cjs.map +1 -0
- package/dist/cjs/components/{index.js → index.cjs} +2 -2
- package/dist/cjs/components/pages/{bl-player.js → bl-player.cjs} +6 -6
- package/dist/cjs/components/pages/{bl-score-with-rank.js → bl-score-with-rank.cjs} +7 -7
- package/dist/cjs/components/pages/{bl-score.js → bl-score.cjs} +3 -3
- package/dist/cjs/components/pages/{bs-map.js → bs-map.cjs} +4 -4
- package/dist/cjs/components/pages/{index.js → index.cjs} +5 -5
- package/dist/cjs/components/pages/{ss-player.js → ss-player.cjs} +3 -3
- package/dist/cjs/components/utils/bl/{beatleader.js → beatleader.cjs} +1 -1
- package/dist/cjs/components/utils/bl/{blheadset.js → blheadset.cjs} +1 -1
- package/dist/cjs/components/utils/bl/{bsorDecoder.js → bsorDecoder.cjs} +1 -1
- package/dist/cjs/components/utils/bl/{bsorReplayAcc.js → bsorReplayAcc.cjs} +1 -1
- package/dist/cjs/components/utils/bl/{getPart.js → getPart.cjs} +1 -1
- package/dist/cjs/components/utils/bl/{stastic.js → stastic.cjs} +1 -1
- package/dist/cjs/components/utils/{canvas.js → canvas.cjs} +1 -1
- package/dist/cjs/components/utils/{format.js → format.cjs} +5 -5
- package/dist/cjs/components/utils/format.cjs.map +1 -0
- package/dist/cjs/components/utils/{getMods.js → getMods.cjs} +1 -1
- package/dist/cjs/components/utils/{index.js → index.cjs} +1 -1
- package/dist/cjs/components/utils/{qrcode.js → qrcode.cjs} +1 -1
- package/dist/cjs/components/utils/{sleep.js → sleep.cjs} +1 -1
- package/dist/cjs/components/utils/{tag-format.js → tag-format.cjs} +1 -1
- package/dist/cjs/components/utils/{tw-join.js → tw-join.cjs} +1 -1
- package/dist/cjs/config.cjs +55 -0
- package/dist/cjs/config.cjs.map +1 -0
- package/dist/cjs/{index.js → index.cjs} +1 -1
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/infra/errors/{index.js → index.cjs} +1 -1
- package/dist/cjs/infra/i18n/{default.js → default.cjs} +1 -1
- package/dist/cjs/infra/i18n/{index.js → index.cjs} +1 -1
- package/dist/cjs/infra/i18n/{parser.js → parser.cjs} +1 -1
- package/dist/cjs/infra/i18n/{util.js → util.cjs} +1 -1
- package/dist/cjs/infra/{index.js → index.cjs} +4 -4
- package/dist/cjs/infra/index.cjs.map +1 -0
- package/dist/cjs/infra/s3/{index.js → index.cjs} +35 -4
- package/dist/cjs/infra/s3/index.cjs.map +1 -0
- package/dist/cjs/infra/support/{cache.js → cache.cjs} +1 -1
- package/dist/cjs/infra/support/fetch/{error.js → error.cjs} +1 -1
- package/dist/cjs/infra/support/fetch/{index.js → index.cjs} +14 -5
- package/dist/cjs/infra/support/fetch/index.cjs.map +1 -0
- package/dist/cjs/infra/support/fetch/{ofetch.js → ofetch.cjs} +6 -13
- package/dist/cjs/infra/support/fetch/ofetch.cjs.map +1 -0
- package/dist/cjs/infra/support/render/{index.js → index.cjs} +49 -15
- package/dist/cjs/infra/support/render/index.cjs.map +1 -0
- package/dist/cjs/infra/support/render/{puppeteer.js → puppeteer.cjs} +1 -1
- package/dist/cjs/interface/{bot.js → bot.cjs} +1 -1
- package/dist/cjs/interface/cmd/{builder.js → builder.cjs} +2 -2
- package/dist/cjs/interface/cmd/{type.js → type.cjs} +1 -1
- package/dist/cjs/interface/db/{index.js → index.cjs} +1 -1
- package/dist/cjs/interface/db/{models.js → models.cjs} +1 -1
- package/dist/cjs/interface/{index.js → index.cjs} +1 -1
- package/dist/cjs/interface/{logger.js → logger.cjs} +1 -1
- package/dist/cjs/schedules/{index.js → index.cjs} +4 -3
- package/dist/cjs/schedules/index.cjs.map +1 -0
- package/dist/cjs/schedules/{interface.js → interface.cjs} +1 -1
- package/dist/cjs/schedules/{temp.js → temp.cjs} +1 -1
- package/dist/cjs/service/api/base/{aioclient.js → aioclient.cjs} +2 -2
- package/dist/cjs/service/api/base/{blclient.js → blclient.cjs} +2 -2
- package/dist/cjs/service/api/base/{bsclient.js → bsclient.cjs} +3 -3
- package/dist/cjs/service/api/base/{index.js → index.cjs} +1 -1
- package/dist/cjs/service/api/base/{ssclient.js → ssclient.cjs} +3 -3
- package/dist/cjs/service/api/{index.js → index.cjs} +15 -6
- package/dist/cjs/service/api/index.cjs.map +1 -0
- package/dist/cjs/service/api/interfaces/aiosaber/{index.js → index.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/beatleader/{bsor.js → bsor.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/beatleader/{index.js → index.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/beatleader/{req.js → req.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/beatleader/{score.js → score.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/beatleader/{user.js → user.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/{beatsaver/ws.js → beatleader/ws.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/beatsaver/{alert.js → alert.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/beatsaver/{bsmap.js → bsmap.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/beatsaver/{index.js → index.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/beatsaver/{resp.js → resp.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/beatsaver/{user.js → user.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/{scoresaber/ws.js → beatsaver/ws.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/{index.js → index.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/scoresaber/{index.js → index.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/scoresaber/{item.js → item.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/scoresaber/{leaderboard.js → leaderboard.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/scoresaber/{resp.js → resp.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/scoresaber/{user.js → user.cjs} +1 -1
- package/dist/cjs/service/api/interfaces/{beatleader/ws.js → scoresaber/ws.cjs} +1 -1
- package/dist/cjs/service/api/{sortScore.js → sortScore.cjs} +1 -1
- package/dist/cjs/service/{index.js → index.cjs} +1 -1
- package/dist/cjs/service/{preference.js → preference.cjs} +1 -1
- package/dist/cjs/service/render/{index.js → index.cjs} +22 -9
- package/dist/cjs/service/render/index.cjs.map +1 -0
- package/dist/cjs/service/render/{interfaces.js → interfaces.cjs} +1 -1
- package/dist/cjs/utils/{index.js → index.cjs} +1 -1
- package/dist/cjs/ws/{beatleader.js → beatleader.cjs} +1 -1
- package/dist/cjs/ws/{beatsaver.js → beatsaver.cjs} +2 -2
- package/dist/cjs/ws/bl-filter.cjs +1 -0
- package/dist/cjs/ws/{handler.js → handler.cjs} +1 -1
- package/dist/cjs/ws/{index.js → index.cjs} +1 -1
- package/dist/esm/cmd/bind/bind-id-beatleader.js +1 -1
- package/dist/esm/cmd/bind/bind-id-beatsaver.js +1 -1
- package/dist/esm/cmd/bind/bind-scoresaber.js +1 -1
- package/dist/esm/cmd/bind/index.js +5 -5
- package/dist/esm/cmd/bsmap/id-search.js +2 -2
- package/dist/esm/cmd/bsmap/key-search.js +1 -1
- package/dist/esm/cmd/bsmap/latest.js +1 -1
- package/dist/esm/cmd/deprecated/tmp.js +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 +3 -3
- package/dist/esm/cmd/score.js +5 -5
- package/dist/esm/cmd/subscribe/beatleader.js +1 -1
- package/dist/esm/cmd/subscribe/beatsaver.js +1 -1
- package/dist/esm/cmd/subscribe/id-beatleader-score.js +1 -1
- package/dist/esm/cmd/subscribe/id-beatsaver-mapper.js +1 -1
- package/dist/esm/cmd/subscribe/index.js +5 -5
- package/dist/esm/cmd/subscribe/subjoin.js +2 -2
- package/dist/esm/cmd/subscribe/subleave.js +1 -1
- package/dist/esm/cmd/subscribe/unsubscribe.js +2 -2
- package/dist/esm/components/components/RankDifficulty.js +1 -1
- package/dist/esm/components/components/bl-rank-score-item.js +2 -2
- package/dist/esm/components/components/bl-score-item.js +2 -2
- package/dist/esm/components/components/bl-score-item.js.map +1 -1
- package/dist/esm/components/components/icons/RankIcon.js +2 -2
- package/dist/esm/components/components/scoreItem.js +1 -1
- package/dist/esm/components/components/scoreItem.js.map +1 -1
- package/dist/esm/components/components/scoregraph.js +3 -3
- package/dist/esm/components/components/socre-badge.js +1 -1
- package/dist/esm/components/components/ss-rank-score-item.js +2 -2
- package/dist/esm/components/components/ss-score-item.js +2 -2
- package/dist/esm/components/components/ss-score-item.js.map +1 -1
- package/dist/esm/components/pages/bl-player.js +7 -7
- package/dist/esm/components/pages/bl-score-with-rank.js +6 -6
- package/dist/esm/components/pages/bl-score.js +3 -3
- package/dist/esm/components/pages/bs-map.js +5 -5
- package/dist/esm/components/pages/index.js +5 -5
- package/dist/esm/components/pages/ss-player.js +3 -3
- package/dist/esm/components/utils/bl/bsorReplayAcc.js +2 -2
- package/dist/esm/components/utils/format.js +3 -3
- package/dist/esm/components/utils/format.js.map +1 -1
- package/dist/esm/components/utils/index.js +2 -2
- package/dist/esm/config.js +31 -0
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/index.js +10 -10
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/infra/i18n/index.js +2 -2
- package/dist/esm/infra/index.js +5 -5
- package/dist/esm/infra/index.js.map +1 -1
- package/dist/esm/infra/s3/index.js +31 -1
- package/dist/esm/infra/s3/index.js.map +1 -1
- package/dist/esm/infra/support/fetch/index.js +16 -7
- package/dist/esm/infra/support/fetch/index.js.map +1 -1
- package/dist/esm/infra/support/fetch/ofetch.js +4 -10
- package/dist/esm/infra/support/fetch/ofetch.js.map +1 -1
- package/dist/esm/infra/support/render/index.js +47 -13
- package/dist/esm/infra/support/render/index.js.map +1 -1
- package/dist/esm/interface/cmd/builder.js +1 -1
- package/dist/esm/interface/index.js +4 -4
- package/dist/esm/schedules/index.js +4 -3
- package/dist/esm/schedules/index.js.map +1 -1
- package/dist/esm/service/api/base/aioclient.js +1 -1
- package/dist/esm/service/api/base/blclient.js +1 -1
- package/dist/esm/service/api/base/bsclient.js +2 -2
- package/dist/esm/service/api/base/index.js +4 -4
- package/dist/esm/service/api/base/ssclient.js +2 -2
- package/dist/esm/service/api/index.js +16 -7
- package/dist/esm/service/api/index.js.map +1 -1
- package/dist/esm/service/api/interfaces/beatleader/index.js +5 -5
- package/dist/esm/service/api/interfaces/beatsaver/index.js +5 -5
- package/dist/esm/service/api/interfaces/scoresaber/index.js +3 -3
- package/dist/esm/service/index.js +2 -2
- package/dist/esm/service/render/index.js +22 -9
- package/dist/esm/service/render/index.js.map +1 -1
- package/dist/esm/ws/beatsaver.js +1 -1
- package/dist/esm/ws/index.js +3 -3
- package/dist/types/index.d.ts +205 -123
- package/package.json +27 -17
- package/dist/cjs/cmd/config/index.js +0 -1
- package/dist/cjs/cmd/index.js.map +0 -1
- package/dist/cjs/components/components/bl-score-item.js.map +0 -1
- package/dist/cjs/components/components/scoreItem.js.map +0 -1
- package/dist/cjs/components/components/ss-score-item.js.map +0 -1
- package/dist/cjs/components/utils/format.js.map +0 -1
- package/dist/cjs/config.js +0 -16
- package/dist/cjs/config.js.map +0 -1
- package/dist/cjs/index.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/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/schedules/index.js.map +0 -1
- package/dist/cjs/service/api/index.js.map +0 -1
- package/dist/cjs/service/render/index.js.map +0 -1
- package/dist/cjs/ws/bl-filter.js +0 -1
- /package/dist/cjs/cmd/bind/{bind-beatleader.js.map → bind-beatleader.cjs.map} +0 -0
- /package/dist/cjs/cmd/bind/{bind-beatsaver.js.map → bind-beatsaver.cjs.map} +0 -0
- /package/dist/cjs/cmd/bind/{bind-id-beatleader.js.map → bind-id-beatleader.cjs.map} +0 -0
- /package/dist/cjs/cmd/bind/{bind-id-beatsaver.js.map → bind-id-beatsaver.cjs.map} +0 -0
- /package/dist/cjs/cmd/bind/{bind-scoresaber.js.map → bind-scoresaber.cjs.map} +0 -0
- /package/dist/cjs/cmd/bind/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/cmd/bsmap/{id-search.js.map → id-search.cjs.map} +0 -0
- /package/dist/cjs/cmd/bsmap/{key-search.js.map → key-search.cjs.map} +0 -0
- /package/dist/cjs/cmd/bsmap/{latest.js.map → latest.cjs.map} +0 -0
- /package/dist/cjs/cmd/config/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/cmd/deprecated/{tmp.js.map → tmp.cjs.map} +0 -0
- /package/dist/cjs/cmd/{rank.js.map → rank.cjs.map} +0 -0
- /package/dist/cjs/cmd/{score.js.map → score.cjs.map} +0 -0
- /package/dist/cjs/cmd/subscribe/{beatleader.js.map → beatleader.cjs.map} +0 -0
- /package/dist/cjs/cmd/subscribe/{beatsaver.js.map → beatsaver.cjs.map} +0 -0
- /package/dist/cjs/cmd/subscribe/{id-beatleader-score.js.map → id-beatleader-score.cjs.map} +0 -0
- /package/dist/cjs/cmd/subscribe/{id-beatsaver-mapper.js.map → id-beatsaver-mapper.cjs.map} +0 -0
- /package/dist/cjs/cmd/subscribe/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/cmd/subscribe/{subjoin.js.map → subjoin.cjs.map} +0 -0
- /package/dist/cjs/cmd/subscribe/{subleave.js.map → subleave.cjs.map} +0 -0
- /package/dist/cjs/cmd/subscribe/{unsubscribe.js.map → unsubscribe.cjs.map} +0 -0
- /package/dist/cjs/components/components/{RankDifficulty.js.map → RankDifficulty.cjs.map} +0 -0
- /package/dist/cjs/components/components/base/{avatar.js.map → avatar.cjs.map} +0 -0
- /package/dist/cjs/components/components/{bl-rank-score-item.js.map → bl-rank-score-item.cjs.map} +0 -0
- /package/dist/cjs/components/components/{characteristic.js.map → characteristic.cjs.map} +0 -0
- /package/dist/cjs/components/components/{flag.js.map → flag.cjs.map} +0 -0
- /package/dist/cjs/components/components/icons/{BeatLeader.js.map → BeatLeader.cjs.map} +0 -0
- /package/dist/cjs/components/components/icons/{RankIcon.js.map → RankIcon.cjs.map} +0 -0
- /package/dist/cjs/components/components/icons/{ScoreSaberIcon.js.map → ScoreSaberIcon.cjs.map} +0 -0
- /package/dist/cjs/components/components/{progressbar.js.map → progressbar.cjs.map} +0 -0
- /package/dist/cjs/components/components/{scoregraph.js.map → scoregraph.cjs.map} +0 -0
- /package/dist/cjs/components/components/{skill-graph.js.map → skill-graph.cjs.map} +0 -0
- /package/dist/cjs/components/components/{socre-badge.js.map → socre-badge.cjs.map} +0 -0
- /package/dist/cjs/components/components/{ss-rank-score-item.js.map → ss-rank-score-item.cjs.map} +0 -0
- /package/dist/cjs/components/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/components/pages/{bl-player.js.map → bl-player.cjs.map} +0 -0
- /package/dist/cjs/components/pages/{bl-score-with-rank.js.map → bl-score-with-rank.cjs.map} +0 -0
- /package/dist/cjs/components/pages/{bl-score.js.map → bl-score.cjs.map} +0 -0
- /package/dist/cjs/components/pages/{bs-map.js.map → bs-map.cjs.map} +0 -0
- /package/dist/cjs/components/pages/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/components/pages/{ss-player.js.map → ss-player.cjs.map} +0 -0
- /package/dist/cjs/components/utils/bl/{beatleader.js.map → beatleader.cjs.map} +0 -0
- /package/dist/cjs/components/utils/bl/{blheadset.js.map → blheadset.cjs.map} +0 -0
- /package/dist/cjs/components/utils/bl/{bsorDecoder.js.map → bsorDecoder.cjs.map} +0 -0
- /package/dist/cjs/components/utils/bl/{bsorReplayAcc.js.map → bsorReplayAcc.cjs.map} +0 -0
- /package/dist/cjs/components/utils/bl/{getPart.js.map → getPart.cjs.map} +0 -0
- /package/dist/cjs/components/utils/bl/{stastic.js.map → stastic.cjs.map} +0 -0
- /package/dist/cjs/components/utils/{canvas.js.map → canvas.cjs.map} +0 -0
- /package/dist/cjs/components/utils/{getMods.js.map → getMods.cjs.map} +0 -0
- /package/dist/cjs/components/utils/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/components/utils/{qrcode.js.map → qrcode.cjs.map} +0 -0
- /package/dist/cjs/components/utils/{sleep.js.map → sleep.cjs.map} +0 -0
- /package/dist/cjs/components/utils/{tag-format.js.map → tag-format.cjs.map} +0 -0
- /package/dist/cjs/components/utils/{tw-join.js.map → tw-join.cjs.map} +0 -0
- /package/dist/cjs/infra/errors/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/infra/i18n/{default.js.map → default.cjs.map} +0 -0
- /package/dist/cjs/infra/i18n/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/infra/i18n/{parser.js.map → parser.cjs.map} +0 -0
- /package/dist/cjs/infra/i18n/{util.js.map → util.cjs.map} +0 -0
- /package/dist/cjs/infra/support/{cache.js.map → cache.cjs.map} +0 -0
- /package/dist/cjs/infra/support/fetch/{error.js.map → error.cjs.map} +0 -0
- /package/dist/cjs/infra/support/render/{puppeteer.js.map → puppeteer.cjs.map} +0 -0
- /package/dist/cjs/interface/{bot.js.map → bot.cjs.map} +0 -0
- /package/dist/cjs/interface/cmd/{builder.js.map → builder.cjs.map} +0 -0
- /package/dist/cjs/interface/cmd/{type.js.map → type.cjs.map} +0 -0
- /package/dist/cjs/interface/db/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/interface/db/{models.js.map → models.cjs.map} +0 -0
- /package/dist/cjs/interface/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/interface/{logger.js.map → logger.cjs.map} +0 -0
- /package/dist/cjs/schedules/{interface.js.map → interface.cjs.map} +0 -0
- /package/dist/cjs/schedules/{temp.js.map → temp.cjs.map} +0 -0
- /package/dist/cjs/service/api/base/{aioclient.js.map → aioclient.cjs.map} +0 -0
- /package/dist/cjs/service/api/base/{blclient.js.map → blclient.cjs.map} +0 -0
- /package/dist/cjs/service/api/base/{bsclient.js.map → bsclient.cjs.map} +0 -0
- /package/dist/cjs/service/api/base/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/service/api/base/{ssclient.js.map → ssclient.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/aiosaber/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/beatleader/{bsor.js.map → bsor.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/beatleader/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/beatleader/{req.js.map → req.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/beatleader/{score.js.map → score.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/beatleader/{user.js.map → user.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/beatleader/{ws.js.map → ws.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/beatsaver/{alert.js.map → alert.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/beatsaver/{bsmap.js.map → bsmap.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/beatsaver/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/beatsaver/{resp.js.map → resp.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/beatsaver/{user.js.map → user.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/beatsaver/{ws.js.map → ws.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/scoresaber/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/scoresaber/{item.js.map → item.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/scoresaber/{leaderboard.js.map → leaderboard.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/scoresaber/{resp.js.map → resp.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/scoresaber/{user.js.map → user.cjs.map} +0 -0
- /package/dist/cjs/service/api/interfaces/scoresaber/{ws.js.map → ws.cjs.map} +0 -0
- /package/dist/cjs/service/api/{sortScore.js.map → sortScore.cjs.map} +0 -0
- /package/dist/cjs/service/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/service/{preference.js.map → preference.cjs.map} +0 -0
- /package/dist/cjs/service/render/{interfaces.js.map → interfaces.cjs.map} +0 -0
- /package/dist/cjs/utils/{index.js.map → index.cjs.map} +0 -0
- /package/dist/cjs/ws/{beatleader.js.map → beatleader.cjs.map} +0 -0
- /package/dist/cjs/ws/{beatsaver.js.map → beatsaver.cjs.map} +0 -0
- /package/dist/cjs/ws/{bl-filter.js.map → bl-filter.cjs.map} +0 -0
- /package/dist/cjs/ws/{handler.js.map → handler.cjs.map} +0 -0
- /package/dist/cjs/ws/{index.js.map → index.cjs.map} +0 -0
@@ -35,8 +35,8 @@ var __async = (__this, __arguments, generator) => {
|
|
35
35
|
step((generator = generator.apply(__this, __arguments)).next());
|
36
36
|
});
|
37
37
|
};
|
38
|
-
import { createFetch } from "../../../infra/support/fetch";
|
39
|
-
import { NotFoundError } from "../../../infra/support/fetch/error";
|
38
|
+
import { createFetch } from "../../../infra/support/fetch/index.js";
|
39
|
+
import { NotFoundError } from "../../../infra/support/fetch/error.js";
|
40
40
|
class BeatSaverClient {
|
41
41
|
constructor(opt) {
|
42
42
|
__publicField(this, "f");
|
@@ -1,5 +1,5 @@
|
|
1
|
-
export * from "./ssclient";
|
2
|
-
export * from "./blclient";
|
3
|
-
export * from "./aioclient";
|
4
|
-
export * from "./bsclient";
|
1
|
+
export * from "./ssclient.js";
|
2
|
+
export * from "./blclient.js";
|
3
|
+
export * from "./aioclient.js";
|
4
|
+
export * from "./bsclient.js";
|
5
5
|
//# sourceMappingURL=index.js.map
|
@@ -21,8 +21,8 @@ var __async = (__this, __arguments, generator) => {
|
|
21
21
|
step((generator = generator.apply(__this, __arguments)).next());
|
22
22
|
});
|
23
23
|
};
|
24
|
-
import { createFetch } from "../../../infra/support/fetch";
|
25
|
-
import { NotFoundError } from "../../../infra/support/fetch/error";
|
24
|
+
import { createFetch } from "../../../infra/support/fetch/index.js";
|
25
|
+
import { NotFoundError } from "../../../infra/support/fetch/error.js";
|
26
26
|
class ScoreSaberClient {
|
27
27
|
constructor(logger) {
|
28
28
|
__publicField(this, "f");
|
@@ -35,19 +35,28 @@ var __async = (__this, __arguments, generator) => {
|
|
35
35
|
step((generator = generator.apply(__this, __arguments)).next());
|
36
36
|
});
|
37
37
|
};
|
38
|
-
import { AIOSaberClient, BeatLeaderClient, BeatSaverClient, ScoreSaberClient } from "./base";
|
39
|
-
import { BLIDNotFoundError, MapIdNotFoundError, SSIDNotFoundError } from "../../infra/errors";
|
40
|
-
import { NotFoundError } from "../../infra/support/fetch/error";
|
41
|
-
import { sortScore } from "./sortScore";
|
42
|
-
import { decode } from "../../components/utils/bl/bsorDecoder";
|
38
|
+
import { AIOSaberClient, BeatLeaderClient, BeatSaverClient, ScoreSaberClient } from "./base/index.js";
|
39
|
+
import { BLIDNotFoundError, MapIdNotFoundError, SSIDNotFoundError } from "../../infra/errors/index.js";
|
40
|
+
import { NotFoundError } from "../../infra/support/fetch/error.js";
|
41
|
+
import { sortScore } from "./sortScore.js";
|
42
|
+
import { decode } from "../../components/utils/bl/bsorDecoder.js";
|
43
43
|
class APIService {
|
44
44
|
constructor(cfg, logger) {
|
45
45
|
__publicField(this, "BeatLeader");
|
46
46
|
__publicField(this, "ScoreSaber");
|
47
47
|
__publicField(this, "BeatSaver");
|
48
48
|
__publicField(this, "AIOSaber");
|
49
|
-
this.BeatSaver = new BeatSaverClient({
|
50
|
-
|
49
|
+
this.BeatSaver = new BeatSaverClient({
|
50
|
+
logger,
|
51
|
+
host: cfg.beatsaver.host,
|
52
|
+
client_id: cfg.beatsaver.oauthClientId,
|
53
|
+
client_secret: cfg.beatsaver.oauthClientSecret
|
54
|
+
});
|
55
|
+
this.BeatLeader = new BeatLeaderClient({
|
56
|
+
logger,
|
57
|
+
client_id: cfg.beatleader.oauthClientId,
|
58
|
+
client_secret: cfg.beatleader.oauthClientSecret
|
59
|
+
});
|
51
60
|
this.ScoreSaber = new ScoreSaberClient(logger);
|
52
61
|
this.AIOSaber = new AIOSaberClient(logger);
|
53
62
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/service/api/index.ts"],"sourcesContent":["import {AIOSaberClient, BeatLeaderClient, BeatSaverClient, ScoreSaberClient} from \"./base\";\nimport {Config} from \"@/config\";\nimport {Logger} from \"@/interface\";\nimport {BLIDNotFoundError, MapIdNotFoundError, SSIDNotFoundError} from \"@/infra/errors\";\nimport {BSMap, HashResponse} from \"./interfaces/beatsaver\";\nimport {ScoreSaberItem} from \"./interfaces/scoresaber\";\nimport {Leaderboard} from \"./interfaces/beatleader\";\nimport {NotFoundError} from \"@/infra/support/fetch/error\";\nimport {sortScore} from \"./sortScore\";\nimport {decode} from \"@/components/utils/bl/bsorDecoder\";\n\ntype MapDiffOption = {\n difficulty?: string\n mode?: string\n}\n\n\nexport class APIService {\n BeatLeader: BeatLeaderClient\n ScoreSaber: ScoreSaberClient\n BeatSaver: BeatSaverClient\n AIOSaber: AIOSaberClient\n constructor(cfg: Config, logger: Logger) {\n this.BeatSaver = new BeatSaverClient({logger})\n this.BeatLeader = new BeatLeaderClient({logger})\n this.ScoreSaber = new ScoreSaberClient(logger)\n this.AIOSaber = new AIOSaberClient(logger)\n }\n async getBLPlayerScoresWithUserInfo(accountId: string) {\n const [userInfo, playerScores, pinnedScores] = await Promise.all([\n this.BeatLeader.getPlayerInfo(accountId),\n this.BeatLeader.getPlayerScores(accountId),\n this.BeatLeader.getPlayerPinnedScores(accountId),\n ])\n if (!(userInfo && playerScores)) {\n throw new BLIDNotFoundError({ accountId })\n }\n const filteredScores = playerScores.data.filter(\n (item) => !pinnedScores.some((pinned) => pinned.id === item.id)\n )\n const scores = pinnedScores.concat(filteredScores).slice(0, 24)\n return {\n scores: scores,\n userInfo: userInfo,\n }\n }\n async getSSPlayerScoresWithUserInfo(accountId: string) {\n\n }\n async getScoreByPlayerIdAndMapId(\n playerId: string,\n mapId: string,\n option?: MapDiffOption\n ): Promise<Leaderboard> {\n const map = await this.BeatSaver.searchMapById(mapId)\n if (!map) {\n throw new MapIdNotFoundError()\n }\n const hash = map.versions[0].hash\n let reqs = map.versions[0].diffs.map((it) => ({\n diff: it.difficulty,\n mode: it.characteristic,\n hash: hash,\n playerID: playerId,\n leaderboardContext: 'general',\n }))\n if (option && option.difficulty) {\n reqs = reqs.filter((item) => item.diff == option.difficulty)\n }\n if (option && option.mode) {\n reqs = reqs.filter((item) => item.mode == option.mode)\n }\n const res = await Promise.allSettled(reqs.map(\n (it) => this.BeatLeader.getPlayerScore(it)))\n const scores = res\n .filter((item) => item.status === 'fulfilled')\n .map(<T>(it: PromiseFulfilledResult<T>) => it.value)\n if (scores.length < 1) {\n throw new NotFoundError()\n }\n scores.sort(sortScore)\n return scores[0]\n }\n\n async getAroundScoreAndRegionScoreByRankAndPage(\n leaderboardId: string,\n rank: number,\n regionCode: string\n ) {\n const page = Math.ceil(rank / 10)\n const rest = rank % 10\n let startIndex = 0\n if (rest > 7) {\n startIndex = 2\n }\n const [regionScore, aroundScore] = await Promise.all([\n this.BeatLeader.getLeaderboard(leaderboardId, {\n leaderboardContext: 'general',\n page: 1,\n sortBy: 'rank',\n order: 'desc',\n countries: regionCode,\n }),\n this.BeatLeader.getLeaderboard(leaderboardId, {\n leaderboardContext: 'general',\n page: page,\n sortBy: 'rank',\n order: 'desc',\n }),\n ])\n const difficulties = regionScore.song.difficulties\n return {\n difficulties: difficulties,\n aroundScores: aroundScore.scores.slice(startIndex, startIndex + 7),\n regionTopScores: regionScore.scores,\n }\n }\n async getScoreAndBSMapByScoreId(scoreId: string) {\n const res = await this.BeatLeader.getBeatScore(scoreId)\n const bsorLink = res.replay\n const bsorContent = await fetch(bsorLink)\n const bsor = await new Promise((resolve, reject) => {\n bsorContent.arrayBuffer().then((res) => decode(res, resolve))\n setTimeout(() => reject('timeout exceed'), 5000)\n })\n const statistic = await fetch(\n `https://cdn.scorestats.beatleader.xyz/${scoreId}.json`\n ).then((res) => res.json())\n const id = res.song.id.split('x')?.[0]\n const bsMap = await this.BeatSaver.searchMapById(id)\n return {\n score: res,\n bsMap: bsMap,\n statistic: statistic,\n bsor: bsor,\n }\n }\n async getSSPlayerRecentScoreWithUserInfo(uid: string) {\n const [userInfo, scores] = await Promise.all([\n this.ScoreSaber.getScoreUserById(uid),\n this.ScoreSaber.getScoreItemsById(uid, 1, 24)\n .then((res) => res?.playerScores),\n ])\n if (!scores || !userInfo) {\n throw new SSIDNotFoundError({ accountId: uid })\n }\n const hashes = scores.map((it) => it.leaderboard.songHash)\n\n let hashInfo = await this.BeatSaver.getMapsByHashes(hashes)\n if (hashInfo.id) {\n const map = hashInfo as BSMap\n hashInfo = {} as HashResponse\n hashInfo[map.versions[0].hash] = map\n }\n const res = scores.map(\n (it) =>\n ({\n mapId: (hashInfo as HashResponse)[\n it.leaderboard.songHash.toLowerCase()\n ]?.id,\n ...it,\n }) as ScoreSaberItem\n )\n return {\n scores: res,\n userInfo: userInfo,\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAQ,gBAAgB,kBAAkB,iBAAiB,wBAAuB;AAGlF,SAAQ,mBAAmB,oBAAoB,yBAAwB;AAIvE,SAAQ,qBAAoB;AAC5B,SAAQ,iBAAgB;AACxB,SAAQ,cAAa;AAQd,MAAM,WAAW;AAAA,EAKtB,YAAY,KAAa,QAAgB;AAJzC;AACA;AACA;AACA;AAEE,SAAK,YAAY,IAAI,gBAAgB,
|
1
|
+
{"version":3,"sources":["../../../../src/service/api/index.ts"],"sourcesContent":["import {AIOSaberClient, BeatLeaderClient, BeatSaverClient, ScoreSaberClient} from \"./base\";\nimport {Config} from \"@/config\";\nimport {Logger} from \"@/interface\";\nimport {BLIDNotFoundError, MapIdNotFoundError, SSIDNotFoundError} from \"@/infra/errors\";\nimport {BSMap, HashResponse} from \"./interfaces/beatsaver\";\nimport {ScoreSaberItem} from \"./interfaces/scoresaber\";\nimport {Leaderboard} from \"./interfaces/beatleader\";\nimport {NotFoundError} from \"@/infra/support/fetch/error\";\nimport {sortScore} from \"./sortScore\";\nimport {decode} from \"@/components/utils/bl/bsorDecoder\";\n\ntype MapDiffOption = {\n difficulty?: string\n mode?: string\n}\n\n\nexport class APIService {\n BeatLeader: BeatLeaderClient\n ScoreSaber: ScoreSaberClient\n BeatSaver: BeatSaverClient\n AIOSaber: AIOSaberClient\n constructor(cfg: Config, logger: Logger) {\n this.BeatSaver = new BeatSaverClient({\n logger,\n host: cfg.beatsaver.host,\n client_id: cfg.beatsaver.oauthClientId,\n client_secret: cfg.beatsaver.oauthClientSecret\n })\n this.BeatLeader = new BeatLeaderClient({\n logger,\n client_id: cfg.beatleader.oauthClientId,\n client_secret: cfg.beatleader.oauthClientSecret\n })\n this.ScoreSaber = new ScoreSaberClient(logger)\n this.AIOSaber = new AIOSaberClient(logger)\n }\n async getBLPlayerScoresWithUserInfo(accountId: string) {\n const [userInfo, playerScores, pinnedScores] = await Promise.all([\n this.BeatLeader.getPlayerInfo(accountId),\n this.BeatLeader.getPlayerScores(accountId),\n this.BeatLeader.getPlayerPinnedScores(accountId),\n ])\n if (!(userInfo && playerScores)) {\n throw new BLIDNotFoundError({ accountId })\n }\n const filteredScores = playerScores.data.filter(\n (item) => !pinnedScores.some((pinned) => pinned.id === item.id)\n )\n const scores = pinnedScores.concat(filteredScores).slice(0, 24)\n return {\n scores: scores,\n userInfo: userInfo,\n }\n }\n async getSSPlayerScoresWithUserInfo(accountId: string) {\n\n }\n async getScoreByPlayerIdAndMapId(\n playerId: string,\n mapId: string,\n option?: MapDiffOption\n ): Promise<Leaderboard> {\n const map = await this.BeatSaver.searchMapById(mapId)\n if (!map) {\n throw new MapIdNotFoundError()\n }\n const hash = map.versions[0].hash\n let reqs = map.versions[0].diffs.map((it) => ({\n diff: it.difficulty,\n mode: it.characteristic,\n hash: hash,\n playerID: playerId,\n leaderboardContext: 'general',\n }))\n if (option && option.difficulty) {\n reqs = reqs.filter((item) => item.diff == option.difficulty)\n }\n if (option && option.mode) {\n reqs = reqs.filter((item) => item.mode == option.mode)\n }\n const res = await Promise.allSettled(reqs.map(\n (it) => this.BeatLeader.getPlayerScore(it)))\n const scores = res\n .filter((item) => item.status === 'fulfilled')\n .map(<T>(it: PromiseFulfilledResult<T>) => it.value)\n if (scores.length < 1) {\n throw new NotFoundError()\n }\n scores.sort(sortScore)\n return scores[0]\n }\n\n async getAroundScoreAndRegionScoreByRankAndPage(\n leaderboardId: string,\n rank: number,\n regionCode: string\n ) {\n const page = Math.ceil(rank / 10)\n const rest = rank % 10\n let startIndex = 0\n if (rest > 7) {\n startIndex = 2\n }\n const [regionScore, aroundScore] = await Promise.all([\n this.BeatLeader.getLeaderboard(leaderboardId, {\n leaderboardContext: 'general',\n page: 1,\n sortBy: 'rank',\n order: 'desc',\n countries: regionCode,\n }),\n this.BeatLeader.getLeaderboard(leaderboardId, {\n leaderboardContext: 'general',\n page: page,\n sortBy: 'rank',\n order: 'desc',\n }),\n ])\n const difficulties = regionScore.song.difficulties\n return {\n difficulties: difficulties,\n aroundScores: aroundScore.scores.slice(startIndex, startIndex + 7),\n regionTopScores: regionScore.scores,\n }\n }\n async getScoreAndBSMapByScoreId(scoreId: string) {\n const res = await this.BeatLeader.getBeatScore(scoreId)\n const bsorLink = res.replay\n const bsorContent = await fetch(bsorLink)\n const bsor = await new Promise((resolve, reject) => {\n bsorContent.arrayBuffer().then((res) => decode(res, resolve))\n setTimeout(() => reject('timeout exceed'), 5000)\n })\n const statistic = await fetch(\n `https://cdn.scorestats.beatleader.xyz/${scoreId}.json`\n ).then((res) => res.json())\n const id = res.song.id.split('x')?.[0]\n const bsMap = await this.BeatSaver.searchMapById(id)\n return {\n score: res,\n bsMap: bsMap,\n statistic: statistic,\n bsor: bsor,\n }\n }\n async getSSPlayerRecentScoreWithUserInfo(uid: string) {\n const [userInfo, scores] = await Promise.all([\n this.ScoreSaber.getScoreUserById(uid),\n this.ScoreSaber.getScoreItemsById(uid, 1, 24)\n .then((res) => res?.playerScores),\n ])\n if (!scores || !userInfo) {\n throw new SSIDNotFoundError({ accountId: uid })\n }\n const hashes = scores.map((it) => it.leaderboard.songHash)\n\n let hashInfo = await this.BeatSaver.getMapsByHashes(hashes)\n if (hashInfo.id) {\n const map = hashInfo as BSMap\n hashInfo = {} as HashResponse\n hashInfo[map.versions[0].hash] = map\n }\n const res = scores.map(\n (it) =>\n ({\n mapId: (hashInfo as HashResponse)[\n it.leaderboard.songHash.toLowerCase()\n ]?.id,\n ...it,\n }) as ScoreSaberItem\n )\n return {\n scores: res,\n userInfo: userInfo,\n }\n }\n}\n"],"mappings":"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","names":["res"]}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
export * from "./bsor";
|
2
|
-
export * from "./req";
|
3
|
-
export * from "./score";
|
4
|
-
export * from "./user";
|
5
|
-
export * from "./ws";
|
1
|
+
export * from "./bsor.js";
|
2
|
+
export * from "./req.js";
|
3
|
+
export * from "./score.js";
|
4
|
+
export * from "./user.js";
|
5
|
+
export * from "./ws.js";
|
6
6
|
//# sourceMappingURL=index.js.map
|
@@ -1,6 +1,6 @@
|
|
1
|
-
export * from "./ws";
|
2
|
-
export * from "./bsmap";
|
3
|
-
export * from "./resp";
|
4
|
-
export * from "./user";
|
5
|
-
export * from "./alert";
|
1
|
+
export * from "./ws.js";
|
2
|
+
export * from "./bsmap.js";
|
3
|
+
export * from "./resp.js";
|
4
|
+
export * from "./user.js";
|
5
|
+
export * from "./alert.js";
|
6
6
|
//# sourceMappingURL=index.js.map
|
@@ -1,4 +1,4 @@
|
|
1
|
-
export * from "./item";
|
2
|
-
export * from "./resp";
|
3
|
-
export * from "./user";
|
1
|
+
export * from "./item.js";
|
2
|
+
export * from "./resp.js";
|
3
|
+
export * from "./user.js";
|
4
4
|
//# sourceMappingURL=index.js.map
|
@@ -14,6 +14,18 @@ var __spreadValues = (a, b) => {
|
|
14
14
|
}
|
15
15
|
return a;
|
16
16
|
};
|
17
|
+
var __objRest = (source, exclude) => {
|
18
|
+
var target = {};
|
19
|
+
for (var prop in source)
|
20
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
21
|
+
target[prop] = source[prop];
|
22
|
+
if (source != null && __getOwnPropSymbols)
|
23
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
24
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
25
|
+
target[prop] = source[prop];
|
26
|
+
}
|
27
|
+
return target;
|
28
|
+
};
|
17
29
|
var __async = (__this, __arguments, generator) => {
|
18
30
|
return new Promise((resolve, reject) => {
|
19
31
|
var fulfilled = (value) => {
|
@@ -34,14 +46,14 @@ var __async = (__this, __arguments, generator) => {
|
|
34
46
|
step((generator = generator.apply(__this, __arguments)).next());
|
35
47
|
});
|
36
48
|
};
|
37
|
-
import { getHtml } from "../../components";
|
49
|
+
import { getHtml } from "../../components/index.js";
|
38
50
|
import { PuppeteerError, TimeoutError } from "puppeteer-core";
|
39
|
-
import { Platform } from "../../interface";
|
40
|
-
import { getBLPlayerComp, getBLRankScoreComp, getBSMapComp, getSSPlayerComp } from "../../components/pages";
|
41
|
-
import { preferenceKey } from "../preference";
|
42
|
-
import { ImageRenderError, RequestError } from "../../infra/errors";
|
43
|
-
import createQrcode from "../../components/utils/qrcode";
|
44
|
-
import { getImageRender } from "../../infra/support/render";
|
51
|
+
import { Platform } from "../../interface/index.js";
|
52
|
+
import { getBLPlayerComp, getBLRankScoreComp, getBSMapComp, getSSPlayerComp } from "../../components/pages/index.js";
|
53
|
+
import { preferenceKey } from "../preference.js";
|
54
|
+
import { ImageRenderError, RequestError } from "../../infra/errors/index.js";
|
55
|
+
import createQrcode from "../../components/utils/qrcode.js";
|
56
|
+
import { getImageRender } from "../../infra/support/render/index.js";
|
45
57
|
const getPreferenceKey = (platform) => {
|
46
58
|
return platform == Platform.SS ? preferenceKey.ssProfileRenderImg.key : preferenceKey.blProfileRenderImg.key;
|
47
59
|
};
|
@@ -50,8 +62,9 @@ class RenderService {
|
|
50
62
|
this.api = api;
|
51
63
|
this.imageRender = imageRender;
|
52
64
|
}
|
53
|
-
static create(imgRenderConfig
|
54
|
-
|
65
|
+
static create(imgRenderConfig) {
|
66
|
+
const _a = imgRenderConfig, { api } = _a, config = __objRest(_a, ["api"]);
|
67
|
+
return new RenderService(api, getImageRender(config));
|
55
68
|
}
|
56
69
|
renderRank(accountId, platform, renderOpts) {
|
57
70
|
return __async(this, null, function* () {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/service/render/index.ts"],"sourcesContent":["import {IRenderService, RenderOption} from './interfaces'\nimport { getHtml } from '@/components'\nimport { PuppeteerError, TimeoutError } from 'puppeteer-core'\nimport { Platform } from '@/interface'\nimport {getBLPlayerComp, getBLRankScoreComp, getBSMapComp, getSSPlayerComp} from '@/components/pages'\nimport {preferenceKey} from \"../preference\";\nimport {ImageRenderError, RequestError} from \"@/infra/errors\";\nimport createQrcode from \"@/components/utils/qrcode\";\nimport {APIService} from \"../api\";\nimport {BSMap} from \"../api/interfaces/beatsaver\";\nimport {CreateImageRenderOption, getImageRender, ImageRender} from \"@/infra/support/render\";\n\n\nconst getPreferenceKey = (platform: string) => {\n return platform == Platform.SS\n ? preferenceKey.ssProfileRenderImg.key\n : preferenceKey.blProfileRenderImg.key\n}\n\nexport class RenderService implements IRenderService {\n constructor(\n private api: APIService,\n private imageRender: ImageRender\n ) {}\n\n static create(imgRenderConfig: CreateImageRenderOption
|
1
|
+
{"version":3,"sources":["../../../../src/service/render/index.ts"],"sourcesContent":["import {IRenderService, RenderOption} from './interfaces'\nimport { getHtml } from '@/components'\nimport { PuppeteerError, TimeoutError } from 'puppeteer-core'\nimport { Platform } from '@/interface'\nimport {getBLPlayerComp, getBLRankScoreComp, getBSMapComp, getSSPlayerComp} from '@/components/pages'\nimport {preferenceKey} from \"../preference\";\nimport {ImageRenderError, RequestError} from \"@/infra/errors\";\nimport createQrcode from \"@/components/utils/qrcode\";\nimport {APIService} from \"../api\";\nimport {BSMap} from \"../api/interfaces/beatsaver\";\nimport {CreateImageRenderOption, getImageRender, ImageRender} from \"@/infra/support/render\";\n\n\nconst getPreferenceKey = (platform: string) => {\n return platform == Platform.SS\n ? preferenceKey.ssProfileRenderImg.key\n : preferenceKey.blProfileRenderImg.key\n}\n\nexport class RenderService implements IRenderService {\n private constructor(\n private api: APIService,\n private imageRender: ImageRender\n ) {}\n\n static create(imgRenderConfig: CreateImageRenderOption & { api: APIService }) {\n const { api, ...config} = imgRenderConfig\n return new RenderService(api, getImageRender(config))\n }\n\n async renderRank(\n accountId: string,\n platform: Platform,\n renderOpts?: RenderOption\n ) {\n try {\n let bg = (await renderOpts?.userPreference?.get<string>(getPreferenceKey(platform)))\n bg = bg || 'https://www.loliapi.com/acg/pc/'\n let html: string\n if (platform == Platform.BL) {\n const { scores, userInfo } = await this.api.getBLPlayerScoresWithUserInfo(accountId)\n html = getHtml(getBLPlayerComp(scores, userInfo, bg))\n } else {\n const { scores, userInfo } = await this.api.getSSPlayerRecentScoreWithUserInfo(accountId)\n html = getHtml(getSSPlayerComp(scores, userInfo, bg))\n }\n return this.imageRender.html2img(html, {selector: '#render-result', ...renderOpts})\n }catch (e) {\n if (e instanceof TimeoutError || e instanceof PuppeteerError) {\n throw new ImageRenderError()\n }\n throw e\n }\n }\n\n async renderScore(\n scoreId: string,\n renderOpts?: RenderOption\n ) {\n const bg = (await renderOpts?.userPreference?.get<string>(preferenceKey.blScoreImg.key))\n ?? 'https://www.loliapi.com/acg/pc/'\n try {\n const { score, statistic, bsor, bsMap } =\n await this.api.getScoreAndBSMapByScoreId(scoreId)\n\n const { aroundScores, regionTopScores, difficulties } =\n await this.api.getAroundScoreAndRegionScoreByRankAndPage(\n score.leaderboardId,\n score.rank,\n score.player.country\n )\n return this.imageRender.html2img(\n getHtml(getBLRankScoreComp(score, aroundScores, regionTopScores, difficulties, bsMap, statistic, bsor, bg)),\n {selector: '#render-result', ...renderOpts}\n )\n }catch (e) {\n if (e instanceof RequestError) {\n throw e\n }\n throw new ImageRenderError()\n }\n }\n\n async renderMapById(\n mapId: string,\n renderOption: RenderOption\n ) {\n const map = await this.api.BeatSaver.searchMapById(mapId)\n return this.renderMap(map, renderOption)\n }\n\n async renderMap(\n bsMap: BSMap,\n renderOption?: RenderOption\n ) {\n const previewQrUrl = await createQrcode(`https://allpoland.github.io/ArcViewer/?id=${bsMap.id}`)\n const bsMapQrUrl = await createQrcode(`https://beatsaver.com/maps/${bsMap.id}`)\n return this.imageRender.html2img(\n getHtml(getBSMapComp(bsMap, bsMapQrUrl, previewQrUrl)), {selector: '#render-result', ...renderOption}\n )\n }\n\n async renderUrl(url: string, renderOption?: RenderOption) {\n renderOption.onRenderStart?.()\n try {\n return this.imageRender.url2img(url, renderOption)\n }catch (e) {\n renderOption?.onRenderError?.(e)\n }\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/esm/ws/beatsaver.js
CHANGED
@@ -21,7 +21,7 @@ var __async = (__this, __arguments, generator) => {
|
|
21
21
|
step((generator = generator.apply(__this, __arguments)).next());
|
22
22
|
});
|
23
23
|
};
|
24
|
-
import { handleWSEventWithCache } from "../utils";
|
24
|
+
import { handleWSEventWithCache } from "../utils/index.js";
|
25
25
|
class BeatSaverWSHandler {
|
26
26
|
constructor(db, render, logger, config, botService) {
|
27
27
|
__publicField(this, "logger");
|
package/dist/esm/ws/index.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
export * from "./beatleader";
|
2
|
-
export * from "./beatsaver";
|
3
|
-
export * from "./handler";
|
1
|
+
export * from "./beatleader.js";
|
2
|
+
export * from "./beatsaver.js";
|
3
|
+
export * from "./handler.js";
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.d.ts
CHANGED
@@ -1,46 +1,61 @@
|
|
1
|
-
import {
|
1
|
+
import { z } from 'zod/v4';
|
2
2
|
import * as ofetch from 'ofetch';
|
3
3
|
import { $Fetch, FetchOptions, ResponseType } from 'ofetch';
|
4
|
+
import { ScreenshotOptions, Viewport, Browser } from 'puppeteer-core';
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
}
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
6
|
+
declare const configSchema: z.ZodObject<{
|
7
|
+
s3: z.ZodOptional<z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
8
|
+
s3AccessKey: z.ZodString;
|
9
|
+
s3SecretKey: z.ZodString;
|
10
|
+
endpoint: z.ZodString;
|
11
|
+
baseURL: z.ZodString;
|
12
|
+
bucketName: z.ZodString;
|
13
|
+
region: z.ZodOptional<z.ZodString>;
|
14
|
+
keyPrefix: z.ZodOptional<z.ZodString>;
|
15
|
+
enabled: z.ZodLiteral<true>;
|
16
|
+
}, z.core.$strip>, z.ZodObject<{
|
17
|
+
enabled: z.ZodLiteral<false>;
|
18
|
+
}, z.core.$strip>]>>>;
|
19
|
+
render: z.ZodIntersection<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
20
|
+
defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
|
21
|
+
waitTimeout: z.ZodOptional<z.ZodNumber>;
|
22
|
+
cfAccountId: z.ZodString;
|
23
|
+
cfAPIKey: z.ZodString;
|
24
|
+
mode: z.ZodLiteral<"cf">;
|
25
|
+
}, z.core.$strip>, z.ZodObject<{
|
26
|
+
defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
|
27
|
+
waitTimeout: z.ZodOptional<z.ZodNumber>;
|
28
|
+
puppeteerURL: z.ZodOptional<z.ZodString>;
|
29
|
+
mode: z.ZodLiteral<"puppeteer">;
|
30
|
+
}, z.core.$strip>, z.ZodObject<{
|
31
|
+
defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
|
32
|
+
waitTimeout: z.ZodOptional<z.ZodNumber>;
|
33
|
+
mode: z.ZodLiteral<"custom">;
|
34
|
+
}, z.core.$strip>]>, z.ZodObject<{
|
35
|
+
defaultWaitTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
36
|
+
waitTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
37
|
+
puppeteerURL: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
38
|
+
cfAccountId: z.ZodOptional<z.ZodString>;
|
39
|
+
cfAPIKey: z.ZodOptional<z.ZodString>;
|
40
|
+
}, z.core.$strip>>;
|
41
|
+
beatsaver: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
42
|
+
host: z.ZodOptional<z.ZodDefault<z.ZodString>>;
|
43
|
+
wsURL: z.ZodOptional<z.ZodDefault<z.ZodString>>;
|
44
|
+
oauthClientId: z.ZodOptional<z.ZodString>;
|
45
|
+
oauthClientSecret: z.ZodOptional<z.ZodString>;
|
46
|
+
}, z.core.$strip>>>;
|
47
|
+
beatleader: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
48
|
+
oauthClientId: z.ZodOptional<z.ZodString>;
|
49
|
+
oauthClientSecret: z.ZodOptional<z.ZodString>;
|
50
|
+
}, z.core.$strip>>>;
|
51
|
+
cron: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
52
|
+
temp: z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
53
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
54
|
+
cron: z.ZodOptional<z.ZodString>;
|
55
|
+
}, z.core.$strip>>>;
|
56
|
+
}, z.core.$strip>>>;
|
57
|
+
}, z.core.$strip>;
|
58
|
+
type Config = z.infer<typeof configSchema>;
|
44
59
|
|
45
60
|
interface ScoreSaberItem {
|
46
61
|
score: SSScore;
|
@@ -487,6 +502,24 @@ interface BLSocial {
|
|
487
502
|
[property: string]: any;
|
488
503
|
}
|
489
504
|
|
505
|
+
type ExtendFetchOptions<R extends ResponseType = ResponseType, T = any> = {
|
506
|
+
form?: Record<string, any>;
|
507
|
+
} & FetchOptions<R, T>;
|
508
|
+
declare class Fetch {
|
509
|
+
private options?;
|
510
|
+
private ofetchInstance;
|
511
|
+
constructor(fetchInstance?: $Fetch, options?: FetchOptions);
|
512
|
+
fetch<T, R extends ResponseType>(request: string, options?: ExtendFetchOptions<R, T>): Promise<ofetch.MappedResponseType<R, T>>;
|
513
|
+
get<T = any, R extends ResponseType = 'json'>(request: string, options?: ExtendFetchOptions<R>): Promise<ofetch.MappedResponseType<R, T>>;
|
514
|
+
post<T = any, R extends ResponseType = 'json'>(request: string, options?: ExtendFetchOptions<R>): Promise<ofetch.MappedResponseType<R, T>>;
|
515
|
+
put<T = any, R extends ResponseType = 'json'>(request: string, options?: ExtendFetchOptions<R>): Promise<ofetch.MappedResponseType<R, any>>;
|
516
|
+
patch<T = any, R extends ResponseType = 'json'>(request: string, options?: ExtendFetchOptions<R>): Promise<ofetch.MappedResponseType<R, any>>;
|
517
|
+
delete<T = any, R extends ResponseType = 'json'>(request: string, options?: ExtendFetchOptions<R>): Promise<ofetch.MappedResponseType<R, any>>;
|
518
|
+
head(request: string, options?: FetchOptions): Promise<any>;
|
519
|
+
extend(options: FetchOptions): Fetch;
|
520
|
+
baseUrl(url: string): Fetch;
|
521
|
+
}
|
522
|
+
|
490
523
|
interface ScoresaberLeaderboardResp {
|
491
524
|
scores: SSScore[];
|
492
525
|
metadata: Metadata;
|
@@ -709,6 +742,94 @@ declare class UserPreferenceStore {
|
|
709
742
|
configEntries(): Promise<Record<string, any>>;
|
710
743
|
}
|
711
744
|
|
745
|
+
/**
|
746
|
+
* Extends Puppeteer's ScreenshotOptions to include an optional viewport setting
|
747
|
+
* and a selector for element-specific screenshots.
|
748
|
+
*/
|
749
|
+
interface RenderOptions$1 extends ScreenshotOptions {
|
750
|
+
/**
|
751
|
+
* Sets the viewport of the page.
|
752
|
+
*/
|
753
|
+
viewport?: Viewport;
|
754
|
+
/**
|
755
|
+
* A CSS selector for an element to screenshot. If provided, the output
|
756
|
+
* will be a screenshot of just this element.
|
757
|
+
*/
|
758
|
+
selector?: string;
|
759
|
+
/**
|
760
|
+
* The maximum time in milliseconds to wait for the selector to appear.
|
761
|
+
* If the element is not found within this time, an error will be thrown.
|
762
|
+
* Defaults to Puppeteer's default (usually 30000ms).
|
763
|
+
*/
|
764
|
+
timeout?: number;
|
765
|
+
}
|
766
|
+
|
767
|
+
interface ImageRender {
|
768
|
+
html2img: (html: string, opt: RenderOptions$1) => Promise<Buffer>;
|
769
|
+
url2img: (url: string, opt: RenderOptions$1) => Promise<Buffer>;
|
770
|
+
}
|
771
|
+
declare const strictRenderConfig: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
772
|
+
defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
|
773
|
+
waitTimeout: z.ZodOptional<z.ZodNumber>;
|
774
|
+
cfAccountId: z.ZodString;
|
775
|
+
cfAPIKey: z.ZodString;
|
776
|
+
mode: z.ZodLiteral<"cf">;
|
777
|
+
}, z.core.$strip>, z.ZodObject<{
|
778
|
+
defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
|
779
|
+
waitTimeout: z.ZodOptional<z.ZodNumber>;
|
780
|
+
puppeteerURL: z.ZodOptional<z.ZodString>;
|
781
|
+
mode: z.ZodLiteral<"puppeteer">;
|
782
|
+
}, z.core.$strip>, z.ZodObject<{
|
783
|
+
defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
|
784
|
+
waitTimeout: z.ZodOptional<z.ZodNumber>;
|
785
|
+
mode: z.ZodLiteral<"custom">;
|
786
|
+
}, z.core.$strip>]>;
|
787
|
+
declare const renderSchema: z.ZodIntersection<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
788
|
+
defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
|
789
|
+
waitTimeout: z.ZodOptional<z.ZodNumber>;
|
790
|
+
cfAccountId: z.ZodString;
|
791
|
+
cfAPIKey: z.ZodString;
|
792
|
+
mode: z.ZodLiteral<"cf">;
|
793
|
+
}, z.core.$strip>, z.ZodObject<{
|
794
|
+
defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
|
795
|
+
waitTimeout: z.ZodOptional<z.ZodNumber>;
|
796
|
+
puppeteerURL: z.ZodOptional<z.ZodString>;
|
797
|
+
mode: z.ZodLiteral<"puppeteer">;
|
798
|
+
}, z.core.$strip>, z.ZodObject<{
|
799
|
+
defaultWaitTimeout: z.ZodOptional<z.ZodNumber>;
|
800
|
+
waitTimeout: z.ZodOptional<z.ZodNumber>;
|
801
|
+
mode: z.ZodLiteral<"custom">;
|
802
|
+
}, z.core.$strip>]>, z.ZodObject<{
|
803
|
+
defaultWaitTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
804
|
+
waitTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
805
|
+
puppeteerURL: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
806
|
+
cfAccountId: z.ZodOptional<z.ZodString>;
|
807
|
+
cfAPIKey: z.ZodOptional<z.ZodString>;
|
808
|
+
}, z.core.$strip>>;
|
809
|
+
type RenderConfig = z.infer<typeof renderSchema>;
|
810
|
+
type StrictRenderConfig = z.infer<typeof strictRenderConfig>;
|
811
|
+
declare class CFBrowserRendering implements ImageRender {
|
812
|
+
f: Fetch;
|
813
|
+
constructor(accountId: string, cfAPIKey: string, logger: Logger);
|
814
|
+
private post;
|
815
|
+
html2img(html: string, opt: RenderOptions$1): Promise<Buffer>;
|
816
|
+
url2img(url: string, opt: RenderOptions$1): Promise<Buffer>;
|
817
|
+
}
|
818
|
+
declare class PuppeteerRendering implements ImageRender {
|
819
|
+
private browserGetter;
|
820
|
+
constructor(browserGetter: () => Promise<Browser>);
|
821
|
+
html2img(html: string, opt: RenderOptions$1): Promise<Buffer>;
|
822
|
+
url2img(html: string, opt: RenderOptions$1): Promise<Buffer>;
|
823
|
+
}
|
824
|
+
declare const RemoteBrowserGetter: (addr: string) => () => Promise<Browser>;
|
825
|
+
type ImageRenderCreateOptions = StrictRenderConfig & {
|
826
|
+
logger: Logger;
|
827
|
+
render?: ImageRender;
|
828
|
+
browserGetter?: () => Promise<Browser>;
|
829
|
+
};
|
830
|
+
declare const getImageRender: (config: ImageRenderCreateOptions) => ImageRender;
|
831
|
+
type CreateImageRenderOption = Parameters<typeof getImageRender>[0];
|
832
|
+
|
712
833
|
type RenderOption = RenderOptions & RenderOptions$1;
|
713
834
|
type RenderOptions = {
|
714
835
|
userPreference?: UserPreferenceStore;
|
@@ -726,8 +847,10 @@ interface IRenderService {
|
|
726
847
|
declare class RenderService implements IRenderService {
|
727
848
|
private api;
|
728
849
|
private imageRender;
|
729
|
-
constructor(
|
730
|
-
static create(imgRenderConfig: CreateImageRenderOption
|
850
|
+
private constructor();
|
851
|
+
static create(imgRenderConfig: CreateImageRenderOption & {
|
852
|
+
api: APIService;
|
853
|
+
}): RenderService;
|
731
854
|
renderRank(accountId: string, platform: Platform, renderOpts?: RenderOption): Promise<Buffer>;
|
732
855
|
renderScore(scoreId: string, renderOpts?: RenderOption): Promise<Buffer>;
|
733
856
|
renderMapById(mapId: string, renderOption: RenderOption): Promise<Buffer>;
|
@@ -890,86 +1013,6 @@ type Services<T> = {
|
|
890
1013
|
db: DB<T>;
|
891
1014
|
};
|
892
1015
|
|
893
|
-
interface ImageRender {
|
894
|
-
html2img: (html: string, opt: RenderOptions$1) => Promise<Buffer>;
|
895
|
-
url2img: (url: string, opt: RenderOptions$1) => Promise<Buffer>;
|
896
|
-
}
|
897
|
-
type RenderConfig = {
|
898
|
-
mode: 'cf' | 'puppeteer' | 'custom';
|
899
|
-
puppeteerURL?: string;
|
900
|
-
defaultWaitTimeout?: number;
|
901
|
-
waitTimeout?: number;
|
902
|
-
cfAccountId?: string;
|
903
|
-
cfAPIKey?: string;
|
904
|
-
};
|
905
|
-
declare class CFBrowserRendering implements ImageRender {
|
906
|
-
f: Fetch;
|
907
|
-
constructor(accountId: string, cfAPIKey: string);
|
908
|
-
private post;
|
909
|
-
html2img(html: string, opt: RenderOptions$1): Promise<Buffer>;
|
910
|
-
url2img(url: string, opt: RenderOptions$1): Promise<Buffer>;
|
911
|
-
}
|
912
|
-
declare class PuppeteerRendering implements ImageRender {
|
913
|
-
private browserGetter;
|
914
|
-
constructor(browserGetter: () => Promise<Browser>);
|
915
|
-
html2img(html: string, opt: RenderOptions$1): Promise<Buffer>;
|
916
|
-
url2img(html: string, opt: RenderOptions$1): Promise<Buffer>;
|
917
|
-
}
|
918
|
-
declare const RemoteBrowserGetter: (addr: string) => () => Promise<Browser>;
|
919
|
-
declare const getImageRender: (cfg: RenderConfig & {
|
920
|
-
render?: ImageRender;
|
921
|
-
browserGetter?: () => Promise<Browser>;
|
922
|
-
}) => ImageRender;
|
923
|
-
type CreateImageRenderOption = Parameters<typeof getImageRender>[0];
|
924
|
-
|
925
|
-
declare class I18nService {
|
926
|
-
obj: any;
|
927
|
-
constructor(config?: any);
|
928
|
-
mergeConfig(lang: string, obj: any): void;
|
929
|
-
loadLang(lang: string): void;
|
930
|
-
tran(path: string, params?: {}, lang?: string): string;
|
931
|
-
}
|
932
|
-
|
933
|
-
interface S3Config {
|
934
|
-
s3AccessKey: string;
|
935
|
-
s3SecretKey: string;
|
936
|
-
endpoint: string;
|
937
|
-
region: string | undefined;
|
938
|
-
bucketName: string;
|
939
|
-
keyPrefix: string;
|
940
|
-
baseURL: string;
|
941
|
-
}
|
942
|
-
declare class S3Service {
|
943
|
-
private s3Client;
|
944
|
-
private readonly bucket;
|
945
|
-
private readonly keyPrefix;
|
946
|
-
private readonly baseURL;
|
947
|
-
constructor(config: S3Config);
|
948
|
-
uploadImgWithUrl(url: string, mimeType?: string): Promise<string>;
|
949
|
-
uploadImg(buffer: Buffer, mimeType?: string): Promise<string>;
|
950
|
-
}
|
951
|
-
|
952
|
-
interface Config {
|
953
|
-
s3: {
|
954
|
-
enabled: boolean;
|
955
|
-
} & S3Config;
|
956
|
-
render: RenderConfig;
|
957
|
-
minRawMatchMapIdLength: number;
|
958
|
-
beatSaverHost: string;
|
959
|
-
beatSaverWSURL: string;
|
960
|
-
bsOauthClientId: string;
|
961
|
-
bsOauthClientSecret: string;
|
962
|
-
blOauthClientId: string;
|
963
|
-
blOauthClientSecret: string;
|
964
|
-
bsNotifyMonitorCron: ScheduleTaskConfig;
|
965
|
-
tokenRefreshCron: ScheduleTaskConfig;
|
966
|
-
tempCron: ScheduleTaskConfig;
|
967
|
-
}
|
968
|
-
interface ScheduleTaskConfig {
|
969
|
-
cron: string;
|
970
|
-
enabled: boolean;
|
971
|
-
}
|
972
|
-
|
973
1016
|
type ScheduleTaskCtx<T> = {
|
974
1017
|
config: Config;
|
975
1018
|
logger: Logger;
|
@@ -1027,6 +1070,45 @@ declare const handleWSEventWithCache: (fnThat: any, fn: any, ttl: any, eventPars
|
|
1027
1070
|
declare const sleep: (millsec?: number) => Promise<void>;
|
1028
1071
|
declare const convertDiff: (diff: string | null) => any;
|
1029
1072
|
|
1073
|
+
declare class I18nService {
|
1074
|
+
obj: any;
|
1075
|
+
constructor(config?: any);
|
1076
|
+
mergeConfig(lang: string, obj: any): void;
|
1077
|
+
loadLang(lang: string): void;
|
1078
|
+
tran(path: string, params?: {}, lang?: string): string;
|
1079
|
+
}
|
1080
|
+
|
1081
|
+
interface S3Config {
|
1082
|
+
s3AccessKey: string;
|
1083
|
+
s3SecretKey: string;
|
1084
|
+
endpoint: string;
|
1085
|
+
region?: string;
|
1086
|
+
bucketName: string;
|
1087
|
+
keyPrefix?: string;
|
1088
|
+
baseURL: string;
|
1089
|
+
}
|
1090
|
+
declare const s3ConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
1091
|
+
s3AccessKey: z.ZodString;
|
1092
|
+
s3SecretKey: z.ZodString;
|
1093
|
+
endpoint: z.ZodString;
|
1094
|
+
baseURL: z.ZodString;
|
1095
|
+
bucketName: z.ZodString;
|
1096
|
+
region: z.ZodOptional<z.ZodString>;
|
1097
|
+
keyPrefix: z.ZodOptional<z.ZodString>;
|
1098
|
+
enabled: z.ZodLiteral<true>;
|
1099
|
+
}, z.core.$strip>, z.ZodObject<{
|
1100
|
+
enabled: z.ZodLiteral<false>;
|
1101
|
+
}, z.core.$strip>]>;
|
1102
|
+
declare class S3Service {
|
1103
|
+
private s3Client;
|
1104
|
+
private readonly bucket;
|
1105
|
+
private readonly keyPrefix;
|
1106
|
+
private readonly baseURL;
|
1107
|
+
constructor(config: S3Config);
|
1108
|
+
uploadImgWithUrl(url: string, mimeType?: string): Promise<string>;
|
1109
|
+
uploadImg(buffer: Buffer, mimeType?: string): Promise<string>;
|
1110
|
+
}
|
1111
|
+
|
1030
1112
|
declare const getBot: <T>(config: Config) => {
|
1031
1113
|
commands: Command<T>[];
|
1032
1114
|
schedule: {
|
@@ -1037,4 +1119,4 @@ declare const getBot: <T>(config: Config) => {
|
|
1037
1119
|
}[];
|
1038
1120
|
};
|
1039
1121
|
|
1040
|
-
export { APIService, BeatSaverWSHandler, BeatleaderWSHandler, type BotService, CFBrowserRendering, type CmdAlias, type CmdContext, type CmdExecutor, type CmdOption, type Command, type Config, type CreateImageRenderOption, type DB, type Extend, I18nService, type ImageRender, type Logger, type OptionType, Platform, type RenderOptions$1 as PuppeteerOptions, PuppeteerRendering, type RelateAccount, type RelateChannelInfo, RemoteBrowserGetter, type RenderConfig, RenderService, type S3Config, S3Service, type Services, type Session, type SubDetailWithGroupRes, type SubInfoRes, type SubWithGroupRes, type Subscribe, type SubscribeMember, type UserPreference, type WSHandler, botCommands, convertDiff, getBot, getImageRender, getScheduleTasks, handleWSEventWithCache, parsePlatform, sleep };
|
1122
|
+
export { APIService, BeatSaverWSHandler, BeatleaderWSHandler, type BotService, CFBrowserRendering, type CmdAlias, type CmdContext, type CmdExecutor, type CmdOption, type Command, type Config, type CreateImageRenderOption, type DB, type Extend, I18nService, type ImageRender, type Logger, type OptionType, Platform, type RenderOptions$1 as PuppeteerOptions, PuppeteerRendering, type RelateAccount, type RelateChannelInfo, RemoteBrowserGetter, type RenderConfig, RenderService, type S3Config, S3Service, type Services, type Session, type SubDetailWithGroupRes, type SubInfoRes, type SubWithGroupRes, type Subscribe, type SubscribeMember, type UserPreference, type WSHandler, botCommands, configSchema, convertDiff, getBot, getImageRender, getScheduleTasks, handleWSEventWithCache, parsePlatform, renderSchema, s3ConfigSchema, sleep };
|