maidraw 0.5.5 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/assets/themes/maimai/salt/2026landscape/image/achievement/a.png +0 -0
  2. package/assets/themes/maimai/salt/2026landscape/image/achievement/aa.png +0 -0
  3. package/assets/themes/maimai/salt/2026landscape/image/achievement/aaa.png +0 -0
  4. package/assets/themes/maimai/salt/2026landscape/image/achievement/b.png +0 -0
  5. package/assets/themes/maimai/salt/2026landscape/image/achievement/bb.png +0 -0
  6. package/assets/themes/maimai/salt/2026landscape/image/achievement/bbb.png +0 -0
  7. package/assets/themes/maimai/salt/2026landscape/image/achievement/c.png +0 -0
  8. package/assets/themes/maimai/salt/2026landscape/image/achievement/d.png +0 -0
  9. package/assets/themes/maimai/salt/2026landscape/image/achievement/s.png +0 -0
  10. package/assets/themes/maimai/salt/2026landscape/image/achievement/sp.png +0 -0
  11. package/assets/themes/maimai/salt/2026landscape/image/achievement/ss.png +0 -0
  12. package/assets/themes/maimai/salt/2026landscape/image/achievement/ssp.png +0 -0
  13. package/assets/themes/maimai/salt/2026landscape/image/achievement/sss.png +0 -0
  14. package/assets/themes/maimai/salt/2026landscape/image/achievement/sssp.png +0 -0
  15. package/assets/themes/maimai/salt/2026landscape/image/background.png +0 -0
  16. package/assets/themes/maimai/salt/2026landscape/image/chara.png +0 -0
  17. package/assets/themes/maimai/salt/2026landscape/image/logo.png +0 -0
  18. package/assets/themes/maimai/salt/2026landscape/manifest.json +172 -0
  19. package/assets/themes/ongeki/common/refresh/achievement/a.png +0 -0
  20. package/assets/themes/ongeki/common/refresh/achievement/aa.png +0 -0
  21. package/assets/themes/ongeki/common/refresh/achievement/aaa.png +0 -0
  22. package/assets/themes/ongeki/common/refresh/achievement/b.png +0 -0
  23. package/assets/themes/ongeki/common/refresh/achievement/bb.png +0 -0
  24. package/assets/themes/ongeki/common/refresh/achievement/bbb.png +0 -0
  25. package/assets/themes/ongeki/common/refresh/achievement/c.png +0 -0
  26. package/assets/themes/ongeki/common/refresh/achievement/d.png +0 -0
  27. package/assets/themes/ongeki/common/refresh/achievement/s.png +0 -0
  28. package/assets/themes/ongeki/common/refresh/achievement/ss.png +0 -0
  29. package/assets/themes/ongeki/common/refresh/achievement/sss.png +0 -0
  30. package/assets/themes/ongeki/common/refresh/achievement/sssp.png +0 -0
  31. package/assets/themes/ongeki/common/refresh/jp/background.png +0 -0
  32. package/assets/themes/ongeki/common/refresh/jp/logo.png +0 -0
  33. package/assets/themes/ongeki/common/versionless/icon.png +0 -0
  34. package/assets/themes/ongeki/common/versionless/milestone/ab.png +0 -0
  35. package/assets/themes/ongeki/common/versionless/milestone/abp.png +0 -0
  36. package/assets/themes/ongeki/common/versionless/milestone/fb.png +0 -0
  37. package/assets/themes/ongeki/common/versionless/milestone/fc.png +0 -0
  38. package/assets/themes/ongeki/common/versionless/numberMap.png +0 -0
  39. package/assets/themes/ongeki/common/versionless/userplateAF2025.png +0 -0
  40. package/assets/themes/ongeki/common/versionless/userplateIchigeki.png +0 -0
  41. package/assets/themes/ongeki/common/versionless/void.png +0 -0
  42. package/assets/themes/ongeki/jp/refreshLandscape/refresh/manifest.json +173 -0
  43. package/dist/chu/bests/best50.d.ts +4 -2
  44. package/dist/chu/bests/best50.js +27 -2
  45. package/dist/chu/bests/best50.js.map +1 -1
  46. package/dist/chu/chart/index.d.ts +3 -3
  47. package/dist/chu/chart/index.js +28 -5
  48. package/dist/chu/chart/index.js.map +1 -1
  49. package/dist/chu/index.d.ts +6 -4
  50. package/dist/chu/index.js +29 -4
  51. package/dist/chu/index.js.map +1 -1
  52. package/dist/geki/bests/best50.d.ts +37 -0
  53. package/dist/geki/bests/best50.js +867 -0
  54. package/dist/geki/bests/best50.js.map +1 -0
  55. package/dist/geki/bests/index.d.ts +1 -0
  56. package/dist/geki/bests/index.js +6 -0
  57. package/dist/geki/bests/index.js.map +1 -0
  58. package/dist/geki/bests/lib/index.d.ts +34 -0
  59. package/dist/geki/bests/lib/index.js +60 -0
  60. package/dist/geki/bests/lib/index.js.map +1 -0
  61. package/dist/geki/bests/lib/kamaiTachi/index.d.ts +205 -0
  62. package/dist/geki/bests/lib/kamaiTachi/index.js +498 -0
  63. package/dist/geki/bests/lib/kamaiTachi/index.js.map +1 -0
  64. package/dist/geki/bests/type.d.ts +122 -0
  65. package/dist/geki/bests/type.js +3 -0
  66. package/dist/geki/bests/type.js.map +1 -0
  67. package/dist/geki/chart/database.d.ts +9 -0
  68. package/dist/geki/chart/database.js +66 -0
  69. package/dist/geki/chart/database.js.map +1 -0
  70. package/dist/geki/chart/index.d.ts +4 -0
  71. package/dist/geki/chart/index.js +32 -0
  72. package/dist/geki/chart/index.js.map +1 -0
  73. package/dist/geki/index.d.ts +10 -0
  74. package/dist/geki/index.js +70 -0
  75. package/dist/geki/index.js.map +1 -0
  76. package/dist/geki/type.d.ts +51 -0
  77. package/dist/geki/type.js +39 -0
  78. package/dist/geki/type.js.map +1 -0
  79. package/dist/index.d.ts +7 -5
  80. package/dist/index.js +32 -7
  81. package/dist/index.js.map +1 -1
  82. package/dist/mai/best50/index.d.ts +46 -6
  83. package/dist/mai/best50/index.js +127 -330
  84. package/dist/mai/best50/index.js.map +1 -1
  85. package/dist/mai/best50/lib/kamaiTachi/index.d.ts +10 -2
  86. package/dist/mai/best50/lib/kamaiTachi/index.js +34 -7
  87. package/dist/mai/best50/lib/kamaiTachi/index.js.map +1 -1
  88. package/dist/mai/chart/index.d.ts +3 -3
  89. package/dist/mai/chart/index.js +28 -5
  90. package/dist/mai/chart/index.js.map +1 -1
  91. package/dist/mai/index.d.ts +6 -4
  92. package/dist/mai/index.js +29 -4
  93. package/dist/mai/index.js.map +1 -1
  94. package/package.json +2 -2
@@ -0,0 +1,172 @@
1
+ {
2
+ "displayName": "maimai でらっくす FiNALE ULTRA, Landscape (April Fools 2026)",
3
+ "name": "salt-2026-landscape",
4
+ "width": 2560,
5
+ "height": 1440,
6
+ "sprites": {
7
+ "achievement": {
8
+ "d": "./image/achievement/d.png",
9
+ "c": "./image/achievement/c.png",
10
+ "b": "./image/achievement/b.png",
11
+ "bb": "./image/achievement/bb.png",
12
+ "bbb": "./image/achievement/bbb.png",
13
+ "a": "./image/achievement/a.png",
14
+ "aa": "./image/achievement/aa.png",
15
+ "aaa": "./image/achievement/aaa.png",
16
+ "s": "./image/achievement/s.png",
17
+ "sp": "./image/achievement/sp.png",
18
+ "ss": "./image/achievement/ss.png",
19
+ "ssp": "./image/achievement/ssp.png",
20
+ "sss": "./image/achievement/sss.png",
21
+ "sssp": "./image/achievement/sssp.png"
22
+ },
23
+ "mode": {
24
+ "standard": "../../common/versionless/mode/jp/standard.png",
25
+ "dx": "../../common/versionless/mode/jp/dx.png"
26
+ },
27
+ "milestone": {
28
+ "ap": "../../common/versionless/milestone/ap.png",
29
+ "app": "../../common/versionless/milestone/app.png",
30
+ "fc": "../../common/versionless/milestone/fc.png",
31
+ "fcp": "../../common/versionless/milestone/fcp.png",
32
+ "fdx": "../../common/versionless/milestone/fdx.png",
33
+ "fdxp": "../../common/versionless/milestone/fdxp.png",
34
+ "fs": "../../common/versionless/milestone/fs.png",
35
+ "fsp": "../../common/versionless/milestone/fsp.png",
36
+ "sync": "../../common/versionless/milestone/sync.png",
37
+ "none": "../../common/versionless/milestone/none.png"
38
+ },
39
+ "dxRating": {
40
+ "white": "../../common/versionless/dxRating/jp/white.png",
41
+ "blue": "../../common/versionless/dxRating/jp/blue.png",
42
+ "green": "../../common/versionless/dxRating/jp/green.png",
43
+ "yellow": "../../common/versionless/dxRating/jp/yellow.png",
44
+ "red": "../../common/versionless/dxRating/jp/red.png",
45
+ "purple": "../../common/versionless/dxRating/jp/purple.png",
46
+ "bronze": "../../common/versionless/dxRating/jp/bronze.png",
47
+ "silver": "../../common/versionless/dxRating/jp/silver.png",
48
+ "gold": "../../common/versionless/dxRating/jp/gold.png",
49
+ "platinum": "../../common/versionless/dxRating/jp/platinum.png",
50
+ "rainbow": "../../common/versionless/dxRating/jp/rainbow.png"
51
+ },
52
+ "dxRatingNumberMap": "../../common/versionless/dxRating/numberMap.png",
53
+ "profile": {
54
+ "nameplate": "../../common/versionless/nameplate.png",
55
+ "icon": "../../common/versionless/icon.png"
56
+ }
57
+ },
58
+ "elements": [
59
+ {
60
+ "type": "image",
61
+ "x": 0,
62
+ "y": -480,
63
+ "width": 2560,
64
+ "height": 1920,
65
+ "path": "./image/background.png"
66
+ },
67
+ {
68
+ "type": "image",
69
+ "x":484,
70
+ "y": 70,
71
+ "width": 690,
72
+ "height": 633,
73
+ "path": "./image/chara.png"
74
+ },
75
+ {
76
+ "type": "image",
77
+ "x": 215,
78
+ "y": 120,
79
+ "width": 470,
80
+ "height": 195,
81
+ "path": "./image/logo.png"
82
+ },
83
+ {
84
+ "type": "score-grid",
85
+ "x": 70,
86
+ "y": 500,
87
+ "horizontalSize": 3,
88
+ "verticalSize": 5,
89
+ "region": "new",
90
+ "index": 0,
91
+ "scoreBubble": {
92
+ "width": 280,
93
+ "height": 155,
94
+ "margin": 10,
95
+ "gap": 20,
96
+ "color": {
97
+ "basic": "#70E262",
98
+ "advanced": "#FFBB00",
99
+ "expert": "#FF4A5A",
100
+ "master": "#A04FDA",
101
+ "remaster": "#DDBDF5",
102
+ "utage": "#70E262"
103
+ }
104
+ }
105
+ },
106
+ {
107
+ "type": "score-grid",
108
+ "x": 1010,
109
+ "y": 150,
110
+ "horizontalSize": 5,
111
+ "verticalSize": 7,
112
+ "region": "old",
113
+ "index": 0,
114
+ "scoreBubble": {
115
+ "width": 280,
116
+ "height": 155,
117
+ "margin": 10,
118
+ "gap": 20,
119
+ "color": {
120
+ "basic": "#70E262",
121
+ "advanced": "#FFBB00",
122
+ "expert": "#FF4A5A",
123
+ "master": "#A04FDA",
124
+ "remaster": "#DDBDF5",
125
+ "utage": "#70E262"
126
+ }
127
+ }
128
+ },
129
+ {
130
+ "type": "profile",
131
+ "x": 110,
132
+ "y": 345,
133
+ "height": 129
134
+ },
135
+ {
136
+ "type": "text",
137
+ "size": 32,
138
+ "x": 2480,
139
+ "y": 1407,
140
+ "borderColor": "#226180",
141
+ "align": "right",
142
+ "content": "Generated by saltbot | maimaidx.cab/discord | maimaidx.cab/invite"
143
+ },
144
+ {
145
+ "type": "text",
146
+ "size": 24,
147
+ "x": 1030,
148
+ "y": 100,
149
+ "borderColor": "#226180",
150
+ "align": "left",
151
+ "content": "NEW\nOLD"
152
+ },
153
+ {
154
+ "type": "text",
155
+ "size": 24,
156
+ "x": 1095,
157
+ "y": 100,
158
+ "borderColor": "#226180",
159
+ "align": "left",
160
+ "content": "scores average: {newScoreRatingAvg}.\nscores average: {oldScoreRatingAvg}."
161
+ },
162
+ {
163
+ "type": "text",
164
+ "size": 24,
165
+ "x": 1355,
166
+ "y": 100,
167
+ "borderColor": "#226180",
168
+ "align": "left",
169
+ "content": "{newScoreMilestone}\n{oldScoreMilestone}"
170
+ }
171
+ ]
172
+ }
@@ -0,0 +1,173 @@
1
+ {
2
+ "displayName": "オンゲキ Re:Fresh, landscape",
3
+ "name": "jp-refresh-landscape-refresh",
4
+ "width": 2320,
5
+ "height": 2215,
6
+ "sprites": {
7
+ "achievement": {
8
+ "d": "../../../common/refresh/achievement/d.png",
9
+ "c": "../../../common/refresh/achievement/c.png",
10
+ "b": "../../../common/refresh/achievement/b.png",
11
+ "bb": "../../../common/refresh/achievement/bb.png",
12
+ "bbb": "../../../common/refresh/achievement/bbb.png",
13
+ "a": "../../../common/refresh/achievement/a.png",
14
+ "aa": "../../../common/refresh/achievement/aa.png",
15
+ "aaa": "../../../common/refresh/achievement/aaa.png",
16
+ "s": "../../../common/refresh/achievement/s.png",
17
+ "ss": "../../../common/refresh/achievement/ss.png",
18
+ "sss": "../../../common/refresh/achievement/sss.png",
19
+ "sssp": "../../../common/refresh/achievement/sssp.png"
20
+ },
21
+ "milestone": {
22
+ "ab": "../../../common/versionless/milestone/ab.png",
23
+ "abp": "../../../common/versionless/milestone/abp.png",
24
+ "fc": "../../../common/versionless/milestone/fc.png",
25
+ "fb": "../../../common/versionless/milestone/fb.png",
26
+ "none": "../../../common/versionless/void.png"
27
+ },
28
+ "ratingNumberMap": "../../../common/versionless/numberMap.png",
29
+ "profile": {
30
+ "userplate": "../../../common/versionless/userplateIchigeki.png",
31
+ "icon": "../../../common/versionless/icon.png"
32
+ }
33
+ },
34
+ "elements": [
35
+ {
36
+ "type": "image",
37
+ "x": 0,
38
+ "y": -1130,
39
+ "width": 2320,
40
+ "height": 4124,
41
+ "path": "../../../common/refresh/jp/background.png"
42
+ },
43
+ {
44
+ "type": "image",
45
+ "x": 1634,
46
+ "y": -100,
47
+ "width": 616,
48
+ "height": 500,
49
+ "path": "../../../common/refresh/jp/logo.png"
50
+ },
51
+ {
52
+ "type": "score-grid",
53
+ "x": 70,
54
+ "y": 600,
55
+ "horizontalSize": 2,
56
+ "verticalSize": 5,
57
+ "region": "new",
58
+ "index": 0,
59
+ "scoreBubble": {
60
+ "width": 290,
61
+ "height": 155,
62
+ "margin": 10,
63
+ "gap": 20,
64
+ "color": {
65
+ "basic": "#70E262",
66
+ "advanced": "#FFBB00",
67
+ "expert": "#FF4A5A",
68
+ "master": "#A04FDA",
69
+ "lunatic": "#591C28"
70
+ }
71
+ }
72
+ },
73
+ {
74
+ "type": "score-grid",
75
+ "x": 720,
76
+ "y": 425,
77
+ "horizontalSize": 5,
78
+ "verticalSize": 6,
79
+ "region": "old",
80
+ "index": 0,
81
+ "scoreBubble": {
82
+ "width": 290,
83
+ "height": 155,
84
+ "margin": 10,
85
+ "gap": 20,
86
+ "color": {
87
+ "basic": "#70E262",
88
+ "advanced": "#FFBB00",
89
+ "expert": "#FF4A5A",
90
+ "master": "#A04FDA",
91
+ "lunatic": "#591C28"
92
+ }
93
+ }
94
+ },
95
+ {
96
+ "type": "score-grid",
97
+ "x": 70,
98
+ "y": 1535,
99
+ "horizontalSize": 7,
100
+ "verticalSize": 2,
101
+ "region": "recent",
102
+ "index": 0,
103
+ "scoreBubble": {
104
+ "width": 290,
105
+ "height": 155,
106
+ "margin": 10,
107
+ "gap": {
108
+ "x": 25,
109
+ "y": 20
110
+ },
111
+ "color": {
112
+ "basic": "#70E262",
113
+ "advanced": "#FFBB00",
114
+ "expert": "#FF4A5A",
115
+ "master": "#A04FDA",
116
+ "lunatic": "#591C28"
117
+ }
118
+ }
119
+ },
120
+ {
121
+ "type": "profile",
122
+ "x": 0,
123
+ "y": 0
124
+ },
125
+ {
126
+ "type": "text",
127
+ "size": 32,
128
+ "x": 2240,
129
+ "y": 1932,
130
+ "borderColor": "#547318",
131
+ "align": "right",
132
+ "content": "Generated by saltbot | ongeki.cab/discord | ongeki.cab/invite"
133
+ },
134
+ {
135
+ "type": "text",
136
+ "size": 24,
137
+ "x": 80,
138
+ "y": 580,
139
+ "borderColor": "#547318",
140
+ "align": "left",
141
+ "content": "NEW scores average: {newScoreRatingAvg}"
142
+ },
143
+ {
144
+ "type": "text",
145
+ "size": 24,
146
+ "x": 730,
147
+ "y": 405,
148
+ "borderColor": "#547318",
149
+ "align": "left",
150
+ "content": "OLD scores average: {oldScoreRatingAvg}"
151
+ },
152
+ {
153
+ "type": "text",
154
+ "size": 24,
155
+ "x": 80,
156
+ "y": 1515,
157
+ "borderColor": "#547318",
158
+ "align": "left",
159
+ "content": "Top 14 PLATINUM bonus"
160
+ },
161
+ {
162
+ "type": "text",
163
+ "size": 24,
164
+ "x": 610,
165
+ "y": 277,
166
+ "color": "black",
167
+ "lineWidth": 0,
168
+ "borderColor": "rgba(255, 255, 255, 0)",
169
+ "align": "left",
170
+ "content": "NAIVE 45 average: {naiveBest45}"
171
+ }
172
+ ]
173
+ }
@@ -1,8 +1,7 @@
1
1
  import { IScore } from "../type";
2
2
  import ScoreTrackerAdapter from "./lib";
3
- import { KamaiTachi } from "./lib/kamaiTachi";
3
+ import * as kamaiTachi from "./lib/kamaiTachi";
4
4
  export declare class Best50 {
5
- static KamaiTachi: typeof KamaiTachi;
6
5
  private static readonly DEFAULT_THEME;
7
6
  private static primaryTheme;
8
7
  static loadTheme(path: string): boolean;
@@ -33,3 +32,6 @@ export declare class Best50 {
33
32
  }): Promise<Buffer | null>;
34
33
  private static getRatingNumber;
35
34
  }
35
+ export declare namespace Best50 {
36
+ export import KamaiTachi = kamaiTachi.KamaiTachi;
37
+ }
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
@@ -11,9 +34,9 @@ const canvas_1 = require("canvas");
11
34
  const color_1 = __importDefault(require("color"));
12
35
  const sharp_1 = __importDefault(require("sharp"));
13
36
  const glob_1 = require("glob");
14
- const kamaiTachi_1 = require("./lib/kamaiTachi");
15
37
  const string_template_1 = __importDefault(require("string-template"));
16
38
  const chart_1 = require("../chart");
39
+ const kamaiTachi = __importStar(require("./lib/kamaiTachi"));
17
40
  class HalfFullWidthConvert {
18
41
  static charsets = {
19
42
  latin: { halfRE: /[!-~]/g, fullRE: /[!-~]/g, delta: 0xfee0 },
@@ -48,7 +71,6 @@ class HalfFullWidthConvert {
48
71
  static toHalfWidth = (str0) => this.sets.reduce((str, set) => str.replace(this.re(set, "full"), this.toHalf(set)), str0);
49
72
  }
50
73
  class Best50 {
51
- static KamaiTachi = kamaiTachi_1.KamaiTachi;
52
74
  static DEFAULT_THEME = "jp-verse-landscape-new";
53
75
  static primaryTheme = null;
54
76
  static loadTheme(path) {
@@ -775,4 +797,7 @@ class Best50 {
775
797
  }
776
798
  }
777
799
  exports.Best50 = Best50;
800
+ (function (Best50) {
801
+ Best50.KamaiTachi = kamaiTachi.KamaiTachi;
802
+ })(Best50 || (exports.Best50 = Best50 = {}));
778
803
  //# sourceMappingURL=best50.js.map