maidraw 0.12.20 → 0.13.0
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/assets/themes/chunithm/best/luminous/new/manifest.json +1 -4
- package/assets/themes/chunithm/best/luminous/recents/manifest.json +1 -4
- package/assets/themes/chunithm/best/luminousplus/new/manifest.json +1 -4
- package/assets/themes/chunithm/best/luminousplus/recents/manifest.json +1 -4
- package/assets/themes/chunithm/best/paradiselost/new/manifest.json +1 -4
- package/assets/themes/chunithm/best/paradiselost/recents/manifest.json +1 -4
- package/assets/themes/chunithm/best/verse/new/manifest.json +1 -4
- package/assets/themes/chunithm/best/verse/recents/manifest.json +1 -4
- package/assets/themes/chunithm/best/xverse/new/manifest.json +1 -4
- package/assets/themes/chunithm/best/xverse/recents/manifest.json +1 -4
- package/assets/themes/chunithm/best/xversex/new/manifest.json +1 -4
- package/assets/themes/chunithm/best/xversex/recents/manifest.json +1 -4
- package/assets/themes/chunithm/chart/verse/manifest.json +1 -4
- package/assets/themes/chunithm/chart/xverse/manifest.json +1 -4
- package/assets/themes/chunithm/chart/xversex/manifest.json +1 -4
- package/assets/themes/maimai/best50/2024/landscape/manifest.json +1 -4
- package/assets/themes/maimai/best50/2024/portrait/manifest.json +1 -4
- package/assets/themes/maimai/best50/2025/landscape/manifest.json +1 -4
- package/assets/themes/maimai/best50/2025/portrait/manifest.json +1 -4
- package/assets/themes/maimai/best50/2026/landscape/manifest.json +1 -4
- package/assets/themes/maimai/best50/2026/portrait/manifest.json +1 -4
- package/assets/themes/maimai/best50/buddies/landscape/manifest.json +1 -4
- package/assets/themes/maimai/best50/buddies/portrait/manifest.json +1 -4
- package/assets/themes/maimai/best50/buddiesplus/landscape/manifest.json +1 -4
- package/assets/themes/maimai/best50/buddiesplus/portrait/manifest.json +1 -4
- package/assets/themes/maimai/best50/circle/landscape/manifest.json +1 -4
- package/assets/themes/maimai/best50/circle/portrait/manifest.json +1 -4
- package/assets/themes/maimai/best50/circleplus/landscape/manifest.json +1 -4
- package/assets/themes/maimai/best50/circleplus/portrait/manifest.json +1 -4
- package/assets/themes/maimai/best50/finale/landscape/manifest.json +1 -4
- package/assets/themes/maimai/best50/finale/portrait/manifest.json +1 -4
- package/assets/themes/maimai/best50/prism/landscape/manifest.json +1 -4
- package/assets/themes/maimai/best50/prism/portrait/manifest.json +1 -4
- package/assets/themes/maimai/best50/prismplus/landscape/manifest.json +1 -4
- package/assets/themes/maimai/best50/prismplus/portrait/manifest.json +1 -4
- package/assets/themes/maimai/best50/salt2026/landscape/manifest.json +1 -4
- package/assets/themes/maimai/best50/salt2026/portrait/manifest.json +1 -4
- package/assets/themes/maimai/chart/circle/manifest.json +1 -4
- package/assets/themes/maimai/chart/circleplus/manifest.json +1 -4
- package/assets/themes/maimai/chart/prism/manifest.json +1 -4
- package/assets/themes/maimai/chart/prismplus/manifest.json +1 -4
- package/assets/themes/ongeki/best/brightmemory/classic/manifest.json +1 -4
- package/assets/themes/ongeki/best/brightmemory/refresh/manifest.json +1 -4
- package/assets/themes/ongeki/best/refresh/classic/manifest.json +1 -4
- package/assets/themes/ongeki/best/refresh/refresh/manifest.json +1 -4
- package/assets/themes/ongeki/chart/brightMemory/manifest.json +1 -4
- package/assets/themes/ongeki/chart/refresh/manifest.json +1 -4
- package/dist/chunithm/index.d.ts +4 -0
- package/dist/chunithm/index.js +13 -0
- package/dist/chunithm/index.js.map +1 -0
- package/dist/chunithm/lib/adapter.d.ts +20 -0
- package/dist/{geki/lib/adapter/index.js → chunithm/lib/adapter.js} +1 -1
- package/dist/chunithm/lib/adapter.js.map +1 -0
- package/dist/chunithm/lib/calculateParadiseLostRating.d.ts +7 -0
- package/dist/chunithm/lib/calculateParadiseLostRating.js +48 -0
- package/dist/chunithm/lib/calculateParadiseLostRating.js.map +1 -0
- package/dist/chunithm/lib/types.d.ts +47 -0
- package/dist/chunithm/lib/types.js +44 -0
- package/dist/chunithm/lib/types.js.map +1 -0
- package/dist/chunithm/lib/version.d.ts +8 -0
- package/dist/chunithm/lib/version.js +47 -0
- package/dist/chunithm/lib/version.js.map +1 -0
- package/dist/{chu/painter/best50/index.d.ts → chunithm/painter/best.d.ts} +41 -50
- package/dist/chunithm/painter/best.js +81 -0
- package/dist/chunithm/painter/best.js.map +1 -0
- package/dist/{chu/painter/chart/index.d.ts → chunithm/painter/chart.d.ts} +45 -52
- package/dist/chunithm/painter/chart.js +95 -0
- package/dist/chunithm/painter/chart.js.map +1 -0
- package/dist/chunithm/painter/modules/chartGrid.d.ts +83 -0
- package/dist/chunithm/painter/modules/chartGrid.js +560 -0
- package/dist/chunithm/painter/modules/chartGrid.js.map +1 -0
- package/dist/chunithm/painter/modules/detailInfo.d.ts +29 -0
- package/dist/chunithm/painter/modules/detailInfo.js +117 -0
- package/dist/chunithm/painter/modules/detailInfo.js.map +1 -0
- package/dist/chunithm/painter/modules/profile.d.ts +38 -0
- package/dist/chunithm/painter/modules/profile.js +238 -0
- package/dist/chunithm/painter/modules/profile.js.map +1 -0
- package/dist/chunithm/painter/modules/scoreGrid.d.ts +86 -0
- package/dist/chunithm/painter/modules/scoreGrid.js +283 -0
- package/dist/chunithm/painter/modules/scoreGrid.js.map +1 -0
- package/dist/chunithm/painter/painter.d.ts +12 -0
- package/dist/chunithm/painter/painter.js +11 -0
- package/dist/chunithm/painter/painter.js.map +1 -0
- package/dist/{lib → common}/adapter.d.ts +5 -6
- package/dist/{lib → common}/adapter.js +13 -24
- package/dist/common/adapter.js.map +1 -0
- package/dist/{lib → common}/cache.js +11 -5
- package/dist/common/cache.js.map +1 -0
- package/dist/{lib → common}/error.d.ts +3 -3
- package/dist/{lib → common}/error.js +2 -2
- package/dist/common/error.js.map +1 -0
- package/dist/common/logger.d.ts +2 -0
- package/dist/common/logger.js +17 -0
- package/dist/common/logger.js.map +1 -0
- package/dist/common/painter/modules/hitokoto.d.ts +33 -0
- package/dist/common/painter/modules/hitokoto.js +59 -0
- package/dist/common/painter/modules/hitokoto.js.map +1 -0
- package/dist/common/painter/modules/image.d.ts +16 -0
- package/dist/common/painter/modules/image.js +98 -0
- package/dist/common/painter/modules/image.js.map +1 -0
- package/dist/common/painter/modules/text.d.ts +29 -0
- package/dist/common/painter/modules/text.js +61 -0
- package/dist/common/painter/modules/text.js.map +1 -0
- package/dist/common/painter/painter.d.ts +36 -0
- package/dist/common/painter/painter.js +66 -0
- package/dist/common/painter/painter.js.map +1 -0
- package/dist/common/painter/theme.d.ts +39 -0
- package/dist/common/painter/theme.js +100 -0
- package/dist/common/painter/theme.js.map +1 -0
- package/dist/common/types/score.d.ts +5 -0
- package/dist/{chu/lib/adapter/index.js → common/types/score.js} +1 -1
- package/dist/common/types/score.js.map +1 -0
- package/dist/common/utils/ctxWrapper.d.ts +6 -0
- package/dist/common/utils/ctxWrapper.js +60 -0
- package/dist/common/utils/ctxWrapper.js.map +1 -0
- package/dist/common/utils/getBpmRange.d.ts +1 -0
- package/dist/common/utils/getBpmRange.js +20 -0
- package/dist/common/utils/getBpmRange.js.map +1 -0
- package/dist/common/utils/halfFullWidthConvert.d.ts +2 -0
- package/dist/common/utils/halfFullWidthConvert.js +39 -0
- package/dist/common/utils/halfFullWidthConvert.js.map +1 -0
- package/dist/{lib → common}/utils/loadImage.d.ts +2 -1
- package/dist/{lib → common}/utils/loadImage.js +14 -10
- package/dist/common/utils/loadImage.js.map +1 -0
- package/dist/common/utils/misc.d.ts +18 -0
- package/dist/{lib → common}/utils/misc.js +4 -0
- package/dist/common/utils/misc.js.map +1 -0
- package/dist/common/utils/number.js.map +1 -0
- package/dist/common/utils/textDraw/drawEmojiOrGlyphs.d.ts +9 -0
- package/dist/common/utils/textDraw/drawEmojiOrGlyphs.js +17 -0
- package/dist/common/utils/textDraw/drawEmojiOrGlyphs.js.map +1 -0
- package/dist/common/utils/textDraw/drawText.d.ts +22 -0
- package/dist/common/utils/textDraw/drawText.js +99 -0
- package/dist/common/utils/textDraw/drawText.js.map +1 -0
- package/dist/common/utils/textDraw/drawVerticalText.d.ts +6 -0
- package/dist/common/utils/textDraw/drawVerticalText.js +49 -0
- package/dist/common/utils/textDraw/drawVerticalText.js.map +1 -0
- package/dist/common/utils/textDraw/utils.d.ts +5 -0
- package/dist/common/utils/textDraw/utils.js +42 -0
- package/dist/common/utils/textDraw/utils.js.map +1 -0
- package/dist/common/utils/zod.js.map +1 -0
- package/dist/exports/chunithm.d.ts +1 -0
- package/dist/exports/chunithm.js +18 -0
- package/dist/exports/chunithm.js.map +1 -0
- package/dist/exports/common.d.ts +2 -0
- package/dist/exports/common.js +21 -0
- package/dist/exports/common.js.map +1 -0
- package/dist/exports/maimai.d.ts +1 -0
- package/dist/exports/maimai.js +18 -0
- package/dist/exports/maimai.js.map +1 -0
- package/dist/exports/ongeki.d.ts +1 -0
- package/dist/exports/ongeki.js +18 -0
- package/dist/exports/ongeki.js.map +1 -0
- package/dist/maimai/index.d.ts +5 -0
- package/dist/maimai/index.js +14 -0
- package/dist/maimai/index.js.map +1 -0
- package/dist/maimai/lib/adapter.d.ts +18 -0
- package/dist/{mai/lib/adapter/index.js → maimai/lib/adapter.js} +1 -1
- package/dist/maimai/lib/adapter.js.map +1 -0
- package/dist/maimai/lib/types.d.ts +42 -0
- package/dist/maimai/lib/types.js +38 -0
- package/dist/maimai/lib/types.js.map +1 -0
- package/dist/maimai/lib/version.d.ts +7 -0
- package/dist/maimai/lib/version.js +45 -0
- package/dist/maimai/lib/version.js.map +1 -0
- package/dist/{mai/painter/best50/index.d.ts → maimai/painter/best50.d.ts} +44 -41
- package/dist/maimai/painter/best50.js +80 -0
- package/dist/maimai/painter/best50.js.map +1 -0
- package/dist/{mai/painter/chart/index.d.ts → maimai/painter/chart.d.ts} +38 -33
- package/dist/maimai/painter/chart.js +93 -0
- package/dist/maimai/painter/chart.js.map +1 -0
- package/dist/{mai/painter/level50/index.d.ts → maimai/painter/level50.d.ts} +12 -9
- package/dist/maimai/painter/level50.js +88 -0
- package/dist/maimai/painter/level50.js.map +1 -0
- package/dist/maimai/painter/modules/chartGrid.d.ts +92 -0
- package/dist/maimai/painter/modules/chartGrid.js +635 -0
- package/dist/maimai/painter/modules/chartGrid.js.map +1 -0
- package/dist/maimai/painter/modules/detailInfo.d.ts +35 -0
- package/dist/maimai/painter/modules/detailInfo.js +143 -0
- package/dist/maimai/painter/modules/detailInfo.js.map +1 -0
- package/dist/maimai/painter/modules/profile.d.ts +42 -0
- package/dist/maimai/painter/modules/profile.js +167 -0
- package/dist/maimai/painter/modules/profile.js.map +1 -0
- package/dist/maimai/painter/modules/scoreGrid.d.ts +98 -0
- package/dist/maimai/painter/modules/scoreGrid.js +316 -0
- package/dist/maimai/painter/modules/scoreGrid.js.map +1 -0
- package/dist/maimai/painter/painter.d.ts +12 -0
- package/dist/maimai/painter/painter.js +11 -0
- package/dist/maimai/painter/painter.js.map +1 -0
- package/dist/ongeki/index.d.ts +4 -0
- package/dist/ongeki/index.js +12 -0
- package/dist/ongeki/index.js.map +1 -0
- package/dist/ongeki/lib/adapter.d.ts +23 -0
- package/dist/ongeki/lib/adapter.js +3 -0
- package/dist/ongeki/lib/adapter.js.map +1 -0
- package/dist/ongeki/lib/types.d.ts +36 -0
- package/dist/ongeki/lib/types.js +31 -0
- package/dist/ongeki/lib/types.js.map +1 -0
- package/dist/ongeki/lib/util.d.ts +8 -0
- package/dist/ongeki/lib/util.js +28 -0
- package/dist/ongeki/lib/util.js.map +1 -0
- package/dist/ongeki/lib/version.d.ts +6 -0
- package/dist/ongeki/lib/version.js +39 -0
- package/dist/ongeki/lib/version.js.map +1 -0
- package/dist/{geki/painter/best50/index.d.ts → ongeki/painter/best.d.ts} +65 -74
- package/dist/ongeki/painter/best.js +137 -0
- package/dist/ongeki/painter/best.js.map +1 -0
- package/dist/{geki/painter/chart/index.d.ts → ongeki/painter/chart.d.ts} +68 -75
- package/dist/ongeki/painter/chart.js +100 -0
- package/dist/ongeki/painter/chart.js.map +1 -0
- package/dist/ongeki/painter/modules/characterInfo.d.ts +28 -0
- package/dist/ongeki/painter/modules/characterInfo.js +90 -0
- package/dist/ongeki/painter/modules/characterInfo.js.map +1 -0
- package/dist/ongeki/painter/modules/chartGrid.d.ts +83 -0
- package/dist/ongeki/painter/modules/chartGrid.js +483 -0
- package/dist/ongeki/painter/modules/chartGrid.js.map +1 -0
- package/dist/ongeki/painter/modules/detailInfo.d.ts +31 -0
- package/dist/ongeki/painter/modules/detailInfo.js +102 -0
- package/dist/ongeki/painter/modules/detailInfo.js.map +1 -0
- package/dist/ongeki/painter/modules/profile.d.ts +59 -0
- package/dist/ongeki/painter/modules/profile.js +281 -0
- package/dist/ongeki/painter/modules/profile.js.map +1 -0
- package/dist/ongeki/painter/modules/scoreGrid.d.ts +74 -0
- package/dist/ongeki/painter/modules/scoreGrid.js +337 -0
- package/dist/ongeki/painter/modules/scoreGrid.js.map +1 -0
- package/dist/ongeki/painter/painter.d.ts +12 -0
- package/dist/ongeki/painter/painter.js +11 -0
- package/dist/ongeki/painter/painter.js.map +1 -0
- package/package.json +30 -14
- package/.github/workflows/publish.yml +0 -35
- package/.vscode/settings.json +0 -16
- package/biome.json +0 -59
- package/dist/chu/index.d.ts +0 -20
- package/dist/chu/index.js +0 -48
- package/dist/chu/index.js.map +0 -1
- package/dist/chu/lib/adapter/index.d.ts +0 -26
- package/dist/chu/lib/adapter/index.js.map +0 -1
- package/dist/chu/lib/adapter/kamaiTachi/index.d.ts +0 -263
- package/dist/chu/lib/adapter/kamaiTachi/index.js +0 -747
- package/dist/chu/lib/adapter/kamaiTachi/index.js.map +0 -1
- package/dist/chu/lib/adapter/lxns/index.d.ts +0 -243
- package/dist/chu/lib/adapter/lxns/index.js +0 -295
- package/dist/chu/lib/adapter/lxns/index.js.map +0 -1
- package/dist/chu/lib/database.d.ts +0 -96
- package/dist/chu/lib/database.js +0 -122
- package/dist/chu/lib/database.js.map +0 -1
- package/dist/chu/lib/util.d.ts +0 -163
- package/dist/chu/lib/util.js +0 -323
- package/dist/chu/lib/util.js.map +0 -1
- package/dist/chu/painter/best50/index.js +0 -211
- package/dist/chu/painter/best50/index.js.map +0 -1
- package/dist/chu/painter/chart/index.js +0 -167
- package/dist/chu/painter/chart/index.js.map +0 -1
- package/dist/chu/painter/index.d.ts +0 -168
- package/dist/chu/painter/index.js +0 -1339
- package/dist/chu/painter/index.js.map +0 -1
- package/dist/chu/type.d.ts +0 -52
- package/dist/chu/type.js +0 -43
- package/dist/chu/type.js.map +0 -1
- package/dist/geki/index.d.ts +0 -22
- package/dist/geki/index.js +0 -82
- package/dist/geki/index.js.map +0 -1
- package/dist/geki/lib/adapter/index.d.ts +0 -28
- package/dist/geki/lib/adapter/index.js.map +0 -1
- package/dist/geki/lib/adapter/kamaiTachi/index.d.ts +0 -275
- package/dist/geki/lib/adapter/kamaiTachi/index.js +0 -545
- package/dist/geki/lib/adapter/kamaiTachi/index.js.map +0 -1
- package/dist/geki/lib/database.d.ts +0 -140
- package/dist/geki/lib/database.js +0 -156
- package/dist/geki/lib/database.js.map +0 -1
- package/dist/geki/lib/util.d.ts +0 -100
- package/dist/geki/lib/util.js +0 -271
- package/dist/geki/lib/util.js.map +0 -1
- package/dist/geki/painter/best50/index.js +0 -226
- package/dist/geki/painter/best50/index.js.map +0 -1
- package/dist/geki/painter/chart/index.js +0 -162
- package/dist/geki/painter/chart/index.js.map +0 -1
- package/dist/geki/painter/index.d.ts +0 -211
- package/dist/geki/painter/index.js +0 -1650
- package/dist/geki/painter/index.js.map +0 -1
- package/dist/geki/type.d.ts +0 -52
- package/dist/geki/type.js +0 -39
- package/dist/geki/type.js.map +0 -1
- package/dist/index.d.ts +0 -12
- package/dist/index.js +0 -40
- package/dist/index.js.map +0 -1
- package/dist/lib/adapter.js.map +0 -1
- package/dist/lib/cache.js.map +0 -1
- package/dist/lib/error.js.map +0 -1
- package/dist/lib/logger.d.ts +0 -4
- package/dist/lib/logger.js +0 -49
- package/dist/lib/logger.js.map +0 -1
- package/dist/lib/painter.d.ts +0 -123
- package/dist/lib/painter.js +0 -383
- package/dist/lib/painter.js.map +0 -1
- package/dist/lib/utils/halfFullWidthConvert.d.ts +0 -9
- package/dist/lib/utils/halfFullWidthConvert.js +0 -38
- package/dist/lib/utils/halfFullWidthConvert.js.map +0 -1
- package/dist/lib/utils/loadImage.js.map +0 -1
- package/dist/lib/utils/logger.d.ts +0 -2
- package/dist/lib/utils/logger.js +0 -40
- package/dist/lib/utils/logger.js.map +0 -1
- package/dist/lib/utils/misc.d.ts +0 -1
- package/dist/lib/utils/misc.js.map +0 -1
- package/dist/lib/utils/number.js.map +0 -1
- package/dist/lib/utils/textDraw.d.ts +0 -34
- package/dist/lib/utils/textDraw.js +0 -158
- package/dist/lib/utils/textDraw.js.map +0 -1
- package/dist/lib/utils/zod.js.map +0 -1
- package/dist/mai/index.d.ts +0 -30
- package/dist/mai/index.js +0 -90
- package/dist/mai/index.js.map +0 -1
- package/dist/mai/lib/adapter/divingFish/index.d.ts +0 -104
- package/dist/mai/lib/adapter/divingFish/index.js +0 -231
- package/dist/mai/lib/adapter/divingFish/index.js.map +0 -1
- package/dist/mai/lib/adapter/index.d.ts +0 -24
- package/dist/mai/lib/adapter/index.js.map +0 -1
- package/dist/mai/lib/adapter/kamaiTachi/index.d.ts +0 -422
- package/dist/mai/lib/adapter/kamaiTachi/index.js +0 -847
- package/dist/mai/lib/adapter/kamaiTachi/index.js.map +0 -1
- package/dist/mai/lib/adapter/lxns/index.d.ts +0 -270
- package/dist/mai/lib/adapter/lxns/index.js +0 -390
- package/dist/mai/lib/adapter/lxns/index.js.map +0 -1
- package/dist/mai/lib/adapter/maishift/index.d.ts +0 -70
- package/dist/mai/lib/adapter/maishift/index.js +0 -388
- package/dist/mai/lib/adapter/maishift/index.js.map +0 -1
- package/dist/mai/lib/database.d.ts +0 -129
- package/dist/mai/lib/database.js +0 -132
- package/dist/mai/lib/database.js.map +0 -1
- package/dist/mai/lib/util.d.ts +0 -135
- package/dist/mai/lib/util.js +0 -270
- package/dist/mai/lib/util.js.map +0 -1
- package/dist/mai/painter/best50/index.js +0 -221
- package/dist/mai/painter/best50/index.js.map +0 -1
- package/dist/mai/painter/chart/index.js +0 -157
- package/dist/mai/painter/chart/index.js.map +0 -1
- package/dist/mai/painter/index.d.ts +0 -202
- package/dist/mai/painter/index.js +0 -1541
- package/dist/mai/painter/index.js.map +0 -1
- package/dist/mai/painter/level50/index.js +0 -170
- package/dist/mai/painter/level50/index.js.map +0 -1
- package/dist/mai/type.d.ts +0 -118
- package/dist/mai/type.js +0 -85
- package/dist/mai/type.js.map +0 -1
- package/tsconfig.json +0 -33
- /package/dist/{lib → common}/cache.d.ts +0 -0
- /package/dist/{lib → common}/utils/number.d.ts +0 -0
- /package/dist/{lib → common}/utils/number.js +0 -0
- /package/dist/{lib → common}/utils/zod.d.ts +0 -0
- /package/dist/{lib → common}/utils/zod.js +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChartPainter = exports.BestPainter = exports.ComboLamp = exports.ClearLamp = exports.ChainLamp = exports.AchievementTypes = void 0;
|
|
4
|
+
var types_1 = require("./lib/types");
|
|
5
|
+
Object.defineProperty(exports, "AchievementTypes", { enumerable: true, get: function () { return types_1.AchievementTypes; } });
|
|
6
|
+
Object.defineProperty(exports, "ChainLamp", { enumerable: true, get: function () { return types_1.ChainLamp; } });
|
|
7
|
+
Object.defineProperty(exports, "ClearLamp", { enumerable: true, get: function () { return types_1.ClearLamp; } });
|
|
8
|
+
Object.defineProperty(exports, "ComboLamp", { enumerable: true, get: function () { return types_1.ComboLamp; } });
|
|
9
|
+
var best_1 = require("./painter/best");
|
|
10
|
+
Object.defineProperty(exports, "BestPainter", { enumerable: true, get: function () { return best_1.BestPainter; } });
|
|
11
|
+
var chart_1 = require("./painter/chart");
|
|
12
|
+
Object.defineProperty(exports, "ChartPainter", { enumerable: true, get: function () { return chart_1.ChartPainter; } });
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chunithm/index.ts"],"names":[],"mappings":";;;AAEA,6CAA+F;AAAtF,yGAAA,gBAAgB,OAAA;AAAE,kGAAA,SAAS,OAAA;AAAE,kGAAA,SAAS,OAAA;AAAE,kGAAA,SAAS,OAAA;AAE1D,+CAAqD;AAA5C,mGAAA,WAAW,OAAA;AACpB,iDAAuD;AAA9C,qGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Score } from "../lib/types";
|
|
2
|
+
import type { DataOrError } from "../../common/error";
|
|
3
|
+
import type { Difficulty } from "gcm-database/chunithm";
|
|
4
|
+
export interface ChunithmScoreAdapter {
|
|
5
|
+
getPlayerRecent40(username: string): Promise<DataOrError<{
|
|
6
|
+
recent: Score[];
|
|
7
|
+
best: Score[];
|
|
8
|
+
}>>;
|
|
9
|
+
getPlayerBest50(username: string): Promise<DataOrError<{
|
|
10
|
+
new: Score[];
|
|
11
|
+
old: Score[];
|
|
12
|
+
best?: Score[];
|
|
13
|
+
}>>;
|
|
14
|
+
getPlayerInfo(username: string, type: "new" | "recents"): Promise<DataOrError<{
|
|
15
|
+
name: string;
|
|
16
|
+
rating: number;
|
|
17
|
+
}>>;
|
|
18
|
+
getPlayerProfilePicture(username: string): Promise<DataOrError<Buffer>>;
|
|
19
|
+
getPlayerScore(username: string, chartIdentifier: string): Promise<DataOrError<Record<Difficulty, Score | null>>>;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/chunithm/lib/adapter.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculate the rating of a score.
|
|
3
|
+
* @param internalLevel Internal level of the chart.
|
|
4
|
+
* @param score Score, range between 0 to 1010000.
|
|
5
|
+
* @returns Raw decimal rating value.
|
|
6
|
+
*/
|
|
7
|
+
export declare function calculateParadiseLostRating(internalLevel: number, score: number): number;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calculateParadiseLostRating = calculateParadiseLostRating;
|
|
4
|
+
const number_1 = require("../../common/utils/number");
|
|
5
|
+
/**
|
|
6
|
+
* Calculate the rating of a score.
|
|
7
|
+
* @param internalLevel Internal level of the chart.
|
|
8
|
+
* @param score Score, range between 0 to 1010000.
|
|
9
|
+
* @returns Raw decimal rating value.
|
|
10
|
+
*/
|
|
11
|
+
function calculateParadiseLostRating(internalLevel, score) {
|
|
12
|
+
let bonus = 0;
|
|
13
|
+
switch (true) {
|
|
14
|
+
case score >= 1007500: {
|
|
15
|
+
bonus = 2;
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
case score >= 1005000: {
|
|
19
|
+
bonus = 1.5 + (0, number_1.truncateNumber)((score - 1005000) / 50, 0) * 0.01;
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
case score >= 1000000: {
|
|
23
|
+
bonus = 1 + (0, number_1.truncateNumber)((score - 1000000) / 100, 0) * 0.01;
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
case score >= 975000: {
|
|
27
|
+
bonus = 0 + (0, number_1.truncateNumber)((score - 975000) / 250, 0) * 0.01;
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
case score >= 900000: {
|
|
31
|
+
bonus = -0.0 - ((975000 - score) / 75000) * 5.0;
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
case score >= 800000: {
|
|
35
|
+
bonus = -5.0 - ((900000 - score) / 100000) * ((internalLevel - 5.0) / 2);
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
case score >= 500000: {
|
|
39
|
+
bonus = -5.0 - (internalLevel - 5.0) / 2 - ((800000 - score) / 300000) * ((internalLevel - 5.0) / 2);
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
default: {
|
|
43
|
+
bonus = -internalLevel;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return internalLevel + bonus;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=calculateParadiseLostRating.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateParadiseLostRating.js","sourceRoot":"","sources":["../../../src/chunithm/lib/calculateParadiseLostRating.ts"],"names":[],"mappings":";;AAQA,kEAoCC;AA5CD,iDAAsD;AAEtD;;;;;GAKG;AACH,SAAgB,2BAA2B,CAAC,aAAqB,EAAE,KAAa;IAC5E,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC;YACpB,KAAK,GAAG,CAAC,CAAC;YACV,MAAM;QACV,CAAC;QACD,KAAK,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC;YACpB,KAAK,GAAG,GAAG,GAAG,IAAA,uBAAc,EAAC,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/D,MAAM;QACV,CAAC;QACD,KAAK,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC;YACpB,KAAK,GAAG,CAAC,GAAG,IAAA,uBAAc,EAAC,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC9D,MAAM;QACV,CAAC;QACD,KAAK,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC;YACnB,KAAK,GAAG,CAAC,GAAG,IAAA,uBAAc,EAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YAC7D,MAAM;QACV,CAAC;QACD,KAAK,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC;YACnB,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;YAChD,MAAM;QACV,CAAC;QACD,KAAK,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC;YACnB,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACzE,MAAM;QACV,CAAC;QACD,KAAK,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC;YACnB,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACrG,MAAM;QACV,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACN,KAAK,GAAG,CAAC,aAAa,CAAC;QAC3B,CAAC;IACL,CAAC;IACD,OAAO,aAAa,GAAG,KAAK,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { BaseScore } from "../../common/types/score";
|
|
2
|
+
import type { Chart } from "gcm-database/chunithm";
|
|
3
|
+
export declare enum ComboLamp {
|
|
4
|
+
NONE = "none",
|
|
5
|
+
FULL_COMBO = "full_combo",
|
|
6
|
+
ALL_JUSTICE = "all_justice",
|
|
7
|
+
ALL_JUSTICE_CRITICAL = "all_justice_critical"
|
|
8
|
+
}
|
|
9
|
+
export declare enum ClearLamp {
|
|
10
|
+
NONE = "none",
|
|
11
|
+
FAILED = "failed",
|
|
12
|
+
CLEAR = "clear",
|
|
13
|
+
HARD = "hard",
|
|
14
|
+
BRAVE = "brave",
|
|
15
|
+
ABSOLUTE = "absolute",
|
|
16
|
+
CATASTROPHY = "catastrophy"
|
|
17
|
+
}
|
|
18
|
+
export declare enum ChainLamp {
|
|
19
|
+
NONE = "none",
|
|
20
|
+
FULL_CHAIN = "full_chain",
|
|
21
|
+
FULL_CHAIN_JUSTICE = "full_chain_justice"
|
|
22
|
+
}
|
|
23
|
+
export declare enum AchievementTypes {
|
|
24
|
+
D = "d",
|
|
25
|
+
C = "C",
|
|
26
|
+
B = "b",
|
|
27
|
+
BB = "bb",
|
|
28
|
+
BBB = "bbb",
|
|
29
|
+
A = "a",
|
|
30
|
+
AA = "aa",
|
|
31
|
+
AAA = "aaa",
|
|
32
|
+
S = "s",
|
|
33
|
+
SP = "s_plus",
|
|
34
|
+
SS = "ss",
|
|
35
|
+
SSP = "ss_plus",
|
|
36
|
+
SSS = "sss",
|
|
37
|
+
SSSP = "sss_plus"
|
|
38
|
+
}
|
|
39
|
+
export interface Score extends BaseScore {
|
|
40
|
+
chart: Chart;
|
|
41
|
+
combo: ComboLamp;
|
|
42
|
+
chain: ChainLamp;
|
|
43
|
+
clear: ClearLamp;
|
|
44
|
+
score: number;
|
|
45
|
+
rank: AchievementTypes;
|
|
46
|
+
rating: number;
|
|
47
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AchievementTypes = exports.ChainLamp = exports.ClearLamp = exports.ComboLamp = void 0;
|
|
4
|
+
var ComboLamp;
|
|
5
|
+
(function (ComboLamp) {
|
|
6
|
+
ComboLamp["NONE"] = "none";
|
|
7
|
+
ComboLamp["FULL_COMBO"] = "full_combo";
|
|
8
|
+
ComboLamp["ALL_JUSTICE"] = "all_justice";
|
|
9
|
+
ComboLamp["ALL_JUSTICE_CRITICAL"] = "all_justice_critical";
|
|
10
|
+
})(ComboLamp || (exports.ComboLamp = ComboLamp = {}));
|
|
11
|
+
var ClearLamp;
|
|
12
|
+
(function (ClearLamp) {
|
|
13
|
+
ClearLamp["NONE"] = "none";
|
|
14
|
+
ClearLamp["FAILED"] = "failed";
|
|
15
|
+
ClearLamp["CLEAR"] = "clear";
|
|
16
|
+
ClearLamp["HARD"] = "hard";
|
|
17
|
+
ClearLamp["BRAVE"] = "brave";
|
|
18
|
+
ClearLamp["ABSOLUTE"] = "absolute";
|
|
19
|
+
ClearLamp["CATASTROPHY"] = "catastrophy";
|
|
20
|
+
})(ClearLamp || (exports.ClearLamp = ClearLamp = {}));
|
|
21
|
+
var ChainLamp;
|
|
22
|
+
(function (ChainLamp) {
|
|
23
|
+
ChainLamp["NONE"] = "none";
|
|
24
|
+
ChainLamp["FULL_CHAIN"] = "full_chain";
|
|
25
|
+
ChainLamp["FULL_CHAIN_JUSTICE"] = "full_chain_justice";
|
|
26
|
+
})(ChainLamp || (exports.ChainLamp = ChainLamp = {}));
|
|
27
|
+
var AchievementTypes;
|
|
28
|
+
(function (AchievementTypes) {
|
|
29
|
+
AchievementTypes["D"] = "d";
|
|
30
|
+
AchievementTypes["C"] = "C";
|
|
31
|
+
AchievementTypes["B"] = "b";
|
|
32
|
+
AchievementTypes["BB"] = "bb";
|
|
33
|
+
AchievementTypes["BBB"] = "bbb";
|
|
34
|
+
AchievementTypes["A"] = "a";
|
|
35
|
+
AchievementTypes["AA"] = "aa";
|
|
36
|
+
AchievementTypes["AAA"] = "aaa";
|
|
37
|
+
AchievementTypes["S"] = "s";
|
|
38
|
+
AchievementTypes["SP"] = "s_plus";
|
|
39
|
+
AchievementTypes["SS"] = "ss";
|
|
40
|
+
AchievementTypes["SSP"] = "ss_plus";
|
|
41
|
+
AchievementTypes["SSS"] = "sss";
|
|
42
|
+
AchievementTypes["SSSP"] = "sss_plus";
|
|
43
|
+
})(AchievementTypes || (exports.AchievementTypes = AchievementTypes = {}));
|
|
44
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/chunithm/lib/types.ts"],"names":[],"mappings":";;;AAGA,IAAY,SAKX;AALD,WAAY,SAAS;IACjB,0BAAa,CAAA;IACb,sCAAyB,CAAA;IACzB,wCAA2B,CAAA;IAC3B,0DAA6C,CAAA;AACjD,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB;AAED,IAAY,SAQX;AARD,WAAY,SAAS;IACjB,0BAAa,CAAA;IACb,8BAAiB,CAAA;IACjB,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,kCAAqB,CAAA;IACrB,wCAA2B,CAAA;AAC/B,CAAC,EARW,SAAS,yBAAT,SAAS,QAQpB;AAED,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,0BAAa,CAAA;IACb,sCAAyB,CAAA;IACzB,sDAAyC,CAAA;AAC7C,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAED,IAAY,gBAeX;AAfD,WAAY,gBAAgB;IACxB,2BAAO,CAAA;IACP,2BAAO,CAAA;IACP,2BAAO,CAAA;IACP,6BAAS,CAAA;IACT,+BAAW,CAAA;IACX,2BAAO,CAAA;IACP,6BAAS,CAAA;IACT,+BAAW,CAAA;IACX,2BAAO,CAAA;IACP,iCAAa,CAAA;IACb,6BAAS,CAAA;IACT,mCAAe,CAAA;IACf,+BAAW,CAAA;IACX,qCAAiB,CAAA;AACrB,CAAC,EAfW,gBAAgB,gCAAhB,gBAAgB,QAe3B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Regions } from "gcm-database-local/chunithm";
|
|
2
|
+
export declare const JPN_LATEST = 245;
|
|
3
|
+
export declare const INT_LATEST = 140;
|
|
4
|
+
export declare const CHN_LATEST = 120;
|
|
5
|
+
export declare function getNumberVersion(major: number, minor: number): number;
|
|
6
|
+
export declare function findVersion(major: number, minor: number, region: Regions): 245 | 140 | 120 | 240 | 230 | 225 | 220 | 215 | 210 | 205 | 200 | 155 | 150 | 145 | 135 | 130 | 125 | 115 | 110 | 105 | 100 | null;
|
|
7
|
+
export declare function findNewerVersion(major: number, minor: number, region: Regions): 245 | 140 | 120 | 240 | 230 | 225 | 220 | 215 | 210 | 205 | 200 | 155 | 150 | 145 | 135 | 130 | 125 | 115 | 110 | 105 | 100 | null;
|
|
8
|
+
export declare function findOlderMinorVersion(major: number, minor: number, region: Regions): 245 | 140 | 120 | 240 | 230 | 225 | 220 | 215 | 210 | 205 | 200 | 155 | 150 | 145 | 135 | 130 | 125 | 115 | 110 | 105 | 100 | null;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CHN_LATEST = exports.INT_LATEST = exports.JPN_LATEST = void 0;
|
|
4
|
+
exports.getNumberVersion = getNumberVersion;
|
|
5
|
+
exports.findVersion = findVersion;
|
|
6
|
+
exports.findNewerVersion = findNewerVersion;
|
|
7
|
+
exports.findOlderMinorVersion = findOlderMinorVersion;
|
|
8
|
+
exports.JPN_LATEST = 245;
|
|
9
|
+
exports.INT_LATEST = 140;
|
|
10
|
+
exports.CHN_LATEST = 120;
|
|
11
|
+
const CHUNITHM_VERSIONS = [245, 240, 230, 225, 220, 215, 210, 205, 200, 155, 150, 145, 140, 135, 130, 125, 120, 115, 110, 105, 100];
|
|
12
|
+
const CHUNITHM_INT_VERSIONS = [140, 135, 130, 125, 120, 115, 110, 105, 100];
|
|
13
|
+
const ZHONGERJIEZOU_VERSIONS = [120, 110, 100];
|
|
14
|
+
const targetMap = {
|
|
15
|
+
// biome-ignore lint/style/useNamingConvention: region code
|
|
16
|
+
JPN: CHUNITHM_VERSIONS,
|
|
17
|
+
// biome-ignore lint/style/useNamingConvention: region code
|
|
18
|
+
INT: CHUNITHM_INT_VERSIONS,
|
|
19
|
+
// biome-ignore lint/style/useNamingConvention: region code
|
|
20
|
+
CHN: ZHONGERJIEZOU_VERSIONS,
|
|
21
|
+
};
|
|
22
|
+
function getTargetFromRegion(region) {
|
|
23
|
+
return targetMap[region];
|
|
24
|
+
}
|
|
25
|
+
function getNumberVersion(major, minor) {
|
|
26
|
+
return major * 100 + minor;
|
|
27
|
+
}
|
|
28
|
+
function findVersion(major, minor, region) {
|
|
29
|
+
return getTargetFromRegion(region).find((v) => getNumberVersion(major, minor) >= v) ?? null;
|
|
30
|
+
}
|
|
31
|
+
function findNewerVersion(major, minor, region) {
|
|
32
|
+
const target = getTargetFromRegion(region);
|
|
33
|
+
const adjustedMinor = findVersion(major, minor, region);
|
|
34
|
+
if (!adjustedMinor)
|
|
35
|
+
return null;
|
|
36
|
+
const indexOfCurrentVersion = target.indexOf(adjustedMinor);
|
|
37
|
+
return target[indexOfCurrentVersion - 1] ?? null;
|
|
38
|
+
}
|
|
39
|
+
function findOlderMinorVersion(major, minor, region) {
|
|
40
|
+
const target = getTargetFromRegion(region);
|
|
41
|
+
const adjustedMinor = findVersion(major, minor, region);
|
|
42
|
+
if (!adjustedMinor)
|
|
43
|
+
return null;
|
|
44
|
+
const indexOfCurrentVersion = target.indexOf(adjustedMinor);
|
|
45
|
+
return target[indexOfCurrentVersion + 1] ?? null;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/chunithm/lib/version.ts"],"names":[],"mappings":";;;AAuBA,4CAEC;AAED,kCAEC;AAED,4CAMC;AAED,sDAMC;AA3CY,QAAA,UAAU,GAAG,GAAG,CAAC;AACjB,QAAA,UAAU,GAAG,GAAG,CAAC;AACjB,QAAA,UAAU,GAAG,GAAG,CAAC;AAE9B,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAC7I,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AACrF,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAExD,MAAM,SAAS,GAAG;IACd,2DAA2D;IAC3D,GAAG,EAAE,iBAAiB;IACtB,2DAA2D;IAC3D,GAAG,EAAE,qBAAqB;IAC1B,2DAA2D;IAC3D,GAAG,EAAE,sBAAsB;CAC9B,CAAC;AAEF,SAAS,mBAAmB,CAAoB,MAAS;IACrD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAa,EAAE,KAAa;IACzD,OAAO,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC;AAC/B,CAAC;AAED,SAAgB,WAAW,CAAC,KAAa,EAAE,KAAa,EAAE,MAAe;IACrE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;AAChG,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAa,EAAE,KAAa,EAAE,MAAe;IAC1E,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,qBAAqB,GAAI,MAA8B,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACrF,OAAO,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AACrD,CAAC;AAED,SAAgB,qBAAqB,CAAC,KAAa,EAAE,KAAa,EAAE,MAAe;IAC/E,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,qBAAqB,GAAI,MAA8B,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACrF,OAAO,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AACrD,CAAC"}
|
|
@@ -1,35 +1,16 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
1
|
+
import type { Score } from "../lib/types";
|
|
2
|
+
import type { DataOrError } from "../../common/error";
|
|
3
|
+
import type { Chart, Database } from "gcm-database/chunithm";
|
|
3
4
|
import { z } from "zod/v4";
|
|
4
|
-
import type { ChunithmScoreAdapter } from "
|
|
5
|
-
import { ChunithmPainter } from "
|
|
6
|
-
export declare class
|
|
7
|
-
static readonly
|
|
5
|
+
import type { ChunithmScoreAdapter } from "../lib/adapter";
|
|
6
|
+
import { ChunithmPainter } from "./painter";
|
|
7
|
+
export declare class BestPainter extends ChunithmPainter<typeof BestPainter.THEME> {
|
|
8
|
+
static readonly THEME: z.ZodObject<{
|
|
8
9
|
name: z.ZodString;
|
|
9
10
|
displayName: z.ZodString;
|
|
10
11
|
width: z.ZodNumber;
|
|
11
12
|
height: z.ZodNumber;
|
|
12
|
-
elements: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
13
|
-
x: z.ZodNumber;
|
|
14
|
-
y: z.ZodNumber;
|
|
15
|
-
type: z.ZodLiteral<"profile">;
|
|
16
|
-
height: z.ZodNumber;
|
|
17
|
-
sprites: z.ZodObject<{
|
|
18
|
-
ratingNumberMap: z.ZodObject<{
|
|
19
|
-
white: z.ZodString;
|
|
20
|
-
bronze: z.ZodString;
|
|
21
|
-
silver: z.ZodString;
|
|
22
|
-
gold: z.ZodString;
|
|
23
|
-
platinum: z.ZodString;
|
|
24
|
-
rainbow: z.ZodString;
|
|
25
|
-
kiwami: z.ZodString;
|
|
26
|
-
}, z.core.$strip>;
|
|
27
|
-
profile: z.ZodObject<{
|
|
28
|
-
nameplate: z.ZodString;
|
|
29
|
-
icon: z.ZodString;
|
|
30
|
-
}, z.core.$strip>;
|
|
31
|
-
}, z.core.$strip>;
|
|
32
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
13
|
+
elements: z.ZodArray<z.ZodDiscriminatedUnion<readonly [z.ZodObject<{
|
|
33
14
|
x: z.ZodNumber;
|
|
34
15
|
y: z.ZodNumber;
|
|
35
16
|
type: z.ZodLiteral<"score-grid">;
|
|
@@ -79,6 +60,26 @@ export declare class Best50Painter extends ChunithmPainter<typeof Best50Painter.
|
|
|
79
60
|
none: z.ZodString;
|
|
80
61
|
}, z.core.$strip>;
|
|
81
62
|
}, z.core.$strip>;
|
|
63
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
64
|
+
x: z.ZodNumber;
|
|
65
|
+
y: z.ZodNumber;
|
|
66
|
+
type: z.ZodLiteral<"profile">;
|
|
67
|
+
height: z.ZodNumber;
|
|
68
|
+
sprites: z.ZodObject<{
|
|
69
|
+
ratingNumberMap: z.ZodObject<{
|
|
70
|
+
white: z.ZodString;
|
|
71
|
+
bronze: z.ZodString;
|
|
72
|
+
silver: z.ZodString;
|
|
73
|
+
gold: z.ZodString;
|
|
74
|
+
platinum: z.ZodString;
|
|
75
|
+
rainbow: z.ZodString;
|
|
76
|
+
kiwami: z.ZodString;
|
|
77
|
+
}, z.core.$strip>;
|
|
78
|
+
profile: z.ZodObject<{
|
|
79
|
+
nameplate: z.ZodString;
|
|
80
|
+
icon: z.ZodString;
|
|
81
|
+
}, z.core.$strip>;
|
|
82
|
+
}, z.core.$strip>;
|
|
82
83
|
}, z.core.$strip>, z.ZodObject<{
|
|
83
84
|
x: z.ZodNumber;
|
|
84
85
|
y: z.ZodNumber;
|
|
@@ -97,8 +98,8 @@ export declare class Best50Painter extends ChunithmPainter<typeof Best50Painter.
|
|
|
97
98
|
height: z.ZodOptional<z.ZodNumber>;
|
|
98
99
|
linebreak: z.ZodOptional<z.ZodBoolean>;
|
|
99
100
|
align: z.ZodOptional<z.ZodEnum<{
|
|
100
|
-
left: "left";
|
|
101
101
|
center: "center";
|
|
102
|
+
left: "left";
|
|
102
103
|
right: "right";
|
|
103
104
|
}>>;
|
|
104
105
|
color: z.ZodOptional<z.ZodString>;
|
|
@@ -107,43 +108,39 @@ export declare class Best50Painter extends ChunithmPainter<typeof Best50Painter.
|
|
|
107
108
|
}, z.core.$strip>, z.ZodObject<{
|
|
108
109
|
x: z.ZodNumber;
|
|
109
110
|
y: z.ZodNumber;
|
|
110
|
-
type: z.ZodLiteral<"hitokoto">;
|
|
111
|
-
size: z.ZodNumber;
|
|
112
111
|
width: z.ZodOptional<z.ZodNumber>;
|
|
113
112
|
height: z.ZodOptional<z.ZodNumber>;
|
|
113
|
+
borderColor: z.ZodOptional<z.ZodString>;
|
|
114
|
+
font: z.ZodOptional<z.ZodString>;
|
|
115
|
+
size: z.ZodNumber;
|
|
114
116
|
linebreak: z.ZodOptional<z.ZodBoolean>;
|
|
115
117
|
align: z.ZodOptional<z.ZodEnum<{
|
|
116
|
-
left: "left";
|
|
117
118
|
center: "center";
|
|
119
|
+
left: "left";
|
|
118
120
|
right: "right";
|
|
119
121
|
}>>;
|
|
120
122
|
color: z.ZodOptional<z.ZodString>;
|
|
121
|
-
|
|
123
|
+
type: z.ZodLiteral<"hitokoto">;
|
|
122
124
|
probability: z.ZodOptional<z.ZodNumber>;
|
|
123
125
|
customLines: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
124
126
|
}, z.core.$strip>], "type">>;
|
|
125
127
|
}, z.core.$strip>;
|
|
126
|
-
constructor();
|
|
127
128
|
private static readonly DEFAULT_THEME;
|
|
129
|
+
private modules;
|
|
130
|
+
constructor(database: Database<Chart>);
|
|
128
131
|
draw(variables: {
|
|
129
132
|
username: string;
|
|
130
133
|
rating: number;
|
|
131
|
-
newScores:
|
|
132
|
-
oldScores:
|
|
134
|
+
newScores: Score[];
|
|
135
|
+
oldScores: Score[];
|
|
133
136
|
}, options: {
|
|
134
137
|
scale?: number;
|
|
135
138
|
theme?: string;
|
|
136
139
|
profilePicture?: Buffer;
|
|
137
|
-
bestScores?:
|
|
140
|
+
bestScores?: Score[];
|
|
138
141
|
type?: "new" | "recents";
|
|
139
142
|
version?: "chunithm" | "crystal" | "new" | "verse";
|
|
140
|
-
}): Promise<
|
|
141
|
-
data: Buffer;
|
|
142
|
-
err?: undefined;
|
|
143
|
-
} | {
|
|
144
|
-
err: MissingThemeError;
|
|
145
|
-
data?: undefined;
|
|
146
|
-
}>;
|
|
143
|
+
}): Promise<DataOrError<Buffer>>;
|
|
147
144
|
drawWithScoreSource(source: ChunithmScoreAdapter, variables: {
|
|
148
145
|
username: string;
|
|
149
146
|
}, options: {
|
|
@@ -152,11 +149,5 @@ export declare class Best50Painter extends ChunithmPainter<typeof Best50Painter.
|
|
|
152
149
|
profilePicture?: Buffer | null;
|
|
153
150
|
type?: "new" | "recents";
|
|
154
151
|
version?: "chunithm" | "crystal" | "new" | "verse";
|
|
155
|
-
}): Promise<
|
|
156
|
-
data: Buffer;
|
|
157
|
-
err?: undefined;
|
|
158
|
-
} | {
|
|
159
|
-
err: MissingThemeError;
|
|
160
|
-
data?: undefined;
|
|
161
|
-
}>;
|
|
152
|
+
}): Promise<DataOrError<Buffer<ArrayBufferLike>>>;
|
|
162
153
|
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BestPainter = void 0;
|
|
7
|
+
const profile_1 = require("../painter/modules/profile");
|
|
8
|
+
const hitokoto_1 = require("../../common/painter/modules/hitokoto");
|
|
9
|
+
const image_1 = require("../../common/painter/modules/image");
|
|
10
|
+
const text_1 = require("../../common/painter/modules/text");
|
|
11
|
+
const theme_1 = require("../../common/painter/theme");
|
|
12
|
+
const halfFullWidthConvert_1 = require("../../common/utils/halfFullWidthConvert");
|
|
13
|
+
const number_1 = require("../../common/utils/number");
|
|
14
|
+
const upath_1 = __importDefault(require("upath"));
|
|
15
|
+
const v4_1 = require("zod/v4");
|
|
16
|
+
const scoreGrid_1 = require("./modules/scoreGrid");
|
|
17
|
+
const painter_1 = require("./painter");
|
|
18
|
+
const LOADED_SCHEMAS = [scoreGrid_1.ScoreGridModule, profile_1.ProfileModule, image_1.ImageModule, text_1.TextModule, hitokoto_1.HitokotoModule];
|
|
19
|
+
class BestPainter extends painter_1.ChunithmPainter {
|
|
20
|
+
static THEME = theme_1.ThemeManager.BASE_THEME.extend({
|
|
21
|
+
elements: v4_1.z.array(v4_1.z.discriminatedUnion("type", LOADED_SCHEMAS.map((v) => v.SCHEMA))),
|
|
22
|
+
});
|
|
23
|
+
static DEFAULT_THEME = "jp-xversex-landscape-new";
|
|
24
|
+
modules;
|
|
25
|
+
constructor(database) {
|
|
26
|
+
super({
|
|
27
|
+
theme: {
|
|
28
|
+
schema: BestPainter.THEME,
|
|
29
|
+
searchPaths: [upath_1.default.join(BestPainter.assetsPath, "themes", "chunithm", "best")],
|
|
30
|
+
defaultTheme: BestPainter.DEFAULT_THEME,
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
this.modules = Object.fromEntries(LOADED_SCHEMAS.map((v) => [v.SCHEMA.shape.type.value, new v(database)]));
|
|
34
|
+
}
|
|
35
|
+
async draw(variables, options) {
|
|
36
|
+
return this.wrapPainter(async (ctx, currentTheme) => {
|
|
37
|
+
for (const element of currentTheme.content.elements) {
|
|
38
|
+
await this.modules[element.type].draw(ctx, currentTheme, element, {
|
|
39
|
+
username: variables.username,
|
|
40
|
+
rating: variables.rating,
|
|
41
|
+
profilePicture: options?.profilePicture,
|
|
42
|
+
scores: {
|
|
43
|
+
new: variables.newScores,
|
|
44
|
+
old: variables.oldScores,
|
|
45
|
+
},
|
|
46
|
+
type: options.version ?? (options.type === "new" ? "verse" : "new"),
|
|
47
|
+
variables: {
|
|
48
|
+
username: (0, halfFullWidthConvert_1.toFullWidth)(variables.username),
|
|
49
|
+
rating: (0, number_1.truncate)(variables.rating, 0),
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}, options ?? {});
|
|
54
|
+
}
|
|
55
|
+
async drawWithScoreSource(source, variables, options) {
|
|
56
|
+
const { data: profile, err: perr } = await source.getPlayerInfo(variables.username, options.type ?? "new");
|
|
57
|
+
if (perr)
|
|
58
|
+
return { err: perr };
|
|
59
|
+
const { data: score, err: serr } = await source.getPlayerBest50(variables.username);
|
|
60
|
+
if (serr)
|
|
61
|
+
return { err: serr };
|
|
62
|
+
return this.draw({
|
|
63
|
+
username: profile.name,
|
|
64
|
+
rating: profile.rating,
|
|
65
|
+
newScores: score.new,
|
|
66
|
+
oldScores: score.old,
|
|
67
|
+
}, {
|
|
68
|
+
...options,
|
|
69
|
+
profilePicture: await (async () => {
|
|
70
|
+
if (options?.profilePicture)
|
|
71
|
+
return options?.profilePicture;
|
|
72
|
+
const { data: pfp, err: pfperr } = await source.getPlayerProfilePicture(variables.username);
|
|
73
|
+
if (pfperr)
|
|
74
|
+
return undefined;
|
|
75
|
+
return pfp;
|
|
76
|
+
})(),
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.BestPainter = BestPainter;
|
|
81
|
+
//# sourceMappingURL=best.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"best.js","sourceRoot":"","sources":["../../../src/chunithm/painter/best.ts"],"names":[],"mappings":"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"}
|