maidraw 0.6.4 → 0.7.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 (215) hide show
  1. package/assets/themes/maimai/chart/common/prism/jp/background.png +0 -0
  2. package/assets/themes/maimai/chart/common/versionless/logo/cn/200.png +0 -0
  3. package/assets/themes/maimai/chart/common/versionless/logo/cn/210.png +0 -0
  4. package/assets/themes/maimai/chart/common/versionless/logo/cn/220.png +0 -0
  5. package/assets/themes/maimai/chart/common/versionless/logo/cn/230.png +0 -0
  6. package/assets/themes/maimai/chart/common/versionless/logo/cn/240.png +0 -0
  7. package/assets/themes/maimai/chart/common/versionless/logo/intl/210.png +0 -0
  8. package/assets/themes/maimai/chart/common/versionless/logo/intl/215.png +0 -0
  9. package/assets/themes/maimai/chart/common/versionless/logo/jp/100.png +0 -0
  10. package/assets/themes/maimai/chart/common/versionless/logo/jp/110.png +0 -0
  11. package/assets/themes/maimai/chart/common/versionless/logo/jp/120.png +0 -0
  12. package/assets/themes/maimai/chart/common/versionless/logo/jp/130.png +0 -0
  13. package/assets/themes/maimai/chart/common/versionless/logo/jp/140.png +0 -0
  14. package/assets/themes/maimai/chart/common/versionless/logo/jp/150.png +0 -0
  15. package/assets/themes/maimai/chart/common/versionless/logo/jp/160.png +0 -0
  16. package/assets/themes/maimai/chart/common/versionless/logo/jp/170.png +0 -0
  17. package/assets/themes/maimai/chart/common/versionless/logo/jp/180.png +0 -0
  18. package/assets/themes/maimai/chart/common/versionless/logo/jp/185.png +0 -0
  19. package/assets/themes/maimai/chart/common/versionless/logo/jp/190.png +0 -0
  20. package/assets/themes/maimai/chart/common/versionless/logo/jp/195.png +0 -0
  21. package/assets/themes/maimai/chart/common/versionless/logo/jp/199.png +0 -0
  22. package/assets/themes/maimai/chart/common/versionless/logo/jp/200.png +0 -0
  23. package/assets/themes/maimai/chart/common/versionless/logo/jp/205.png +0 -0
  24. package/assets/themes/maimai/chart/common/versionless/logo/jp/210.png +0 -0
  25. package/assets/themes/maimai/chart/common/versionless/logo/jp/215.png +0 -0
  26. package/assets/themes/maimai/chart/common/versionless/logo/jp/220.png +0 -0
  27. package/assets/themes/maimai/chart/common/versionless/logo/jp/225.png +0 -0
  28. package/assets/themes/maimai/chart/common/versionless/logo/jp/230.png +0 -0
  29. package/assets/themes/maimai/chart/common/versionless/logo/jp/235.png +0 -0
  30. package/assets/themes/maimai/chart/common/versionless/logo/jp/240.png +0 -0
  31. package/assets/themes/maimai/chart/common/versionless/logo/jp/245.png +0 -0
  32. package/assets/themes/maimai/chart/common/versionless/logo/jp/250.png +0 -0
  33. package/assets/themes/maimai/chart/common/versionless/logo/jp/255.png +0 -0
  34. package/assets/themes/maimai/chart/jp/prism/manifest.json +167 -0
  35. package/dist/chu/bests/best50.d.ts +0 -2
  36. package/dist/chu/bests/best50.js +14 -61
  37. package/dist/chu/bests/best50.js.map +1 -1
  38. package/dist/chu/bests/type.d.ts +1 -1
  39. package/dist/geki/bests/best50.d.ts +0 -2
  40. package/dist/geki/bests/best50.js +14 -61
  41. package/dist/geki/bests/best50.js.map +1 -1
  42. package/dist/geki/bests/type.d.ts +1 -1
  43. package/dist/geki/chart/database.js +0 -1
  44. package/dist/geki/chart/database.js.map +1 -1
  45. package/dist/lib/util.d.ts +32 -0
  46. package/dist/lib/util.js +119 -0
  47. package/dist/lib/util.js.map +1 -0
  48. package/dist/mai/best50/index.d.ts +231 -38
  49. package/dist/mai/best50/index.js +115 -161
  50. package/dist/mai/best50/index.js.map +1 -1
  51. package/dist/mai/chart/database.d.ts +112 -2
  52. package/dist/mai/chart/index.d.ts +224 -0
  53. package/dist/mai/chart/index.js +1152 -1
  54. package/dist/mai/chart/index.js.map +1 -1
  55. package/dist/mai/{best50/lib → lib}/divingFish/index.d.ts +14 -6
  56. package/dist/mai/{best50/lib → lib}/divingFish/index.js +48 -28
  57. package/dist/mai/lib/divingFish/index.js.map +1 -0
  58. package/dist/mai/{best50/lib → lib}/index.d.ts +12 -4
  59. package/dist/mai/{best50/lib → lib}/index.js +2 -2
  60. package/dist/mai/lib/index.js.map +1 -0
  61. package/dist/mai/{best50/lib → lib}/kamaiTachi/index.d.ts +37 -29
  62. package/dist/mai/{best50/lib → lib}/kamaiTachi/index.js +74 -21
  63. package/dist/mai/lib/kamaiTachi/index.js.map +1 -0
  64. package/dist/mai/{best50/lib → lib}/lxns/index.d.ts +14 -6
  65. package/dist/mai/{best50/lib → lib}/lxns/index.js +47 -28
  66. package/dist/mai/lib/lxns/index.js.map +1 -0
  67. package/dist/mai/type.d.ts +0 -51
  68. package/dist/mai/type.js +1 -35
  69. package/dist/mai/type.js.map +1 -1
  70. package/package.json +5 -2
  71. package/dist/mai/best50/lib/divingFish/index.js.map +0 -1
  72. package/dist/mai/best50/lib/index.js.map +0 -1
  73. package/dist/mai/best50/lib/kamaiTachi/index.js.map +0 -1
  74. package/dist/mai/best50/lib/lxns/index.js.map +0 -1
  75. package/dist/mai/best50/type.d.ts +0 -145
  76. package/dist/mai/best50/type.js +0 -3
  77. package/dist/mai/best50/type.js.map +0 -1
  78. /package/assets/themes/maimai/{cn → best50/cn}/2024Landscape/manifest.json +0 -0
  79. /package/assets/themes/maimai/{cn → best50/cn}/2024Portrait/manifest.json +0 -0
  80. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/a.png +0 -0
  81. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/aa.png +0 -0
  82. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/aaa.png +0 -0
  83. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/b.png +0 -0
  84. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/bb.png +0 -0
  85. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/bbb.png +0 -0
  86. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/c.png +0 -0
  87. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/d.png +0 -0
  88. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/s.png +0 -0
  89. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/sp.png +0 -0
  90. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/ss.png +0 -0
  91. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/ssp.png +0 -0
  92. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/sss.png +0 -0
  93. /package/assets/themes/maimai/{common → best50/common}/buddies/achievement/sssp.png +0 -0
  94. /package/assets/themes/maimai/{common → best50/common}/buddies/cn/logo.png +0 -0
  95. /package/assets/themes/maimai/{common → best50/common}/buddies/jp/background.png +0 -0
  96. /package/assets/themes/maimai/{common → best50/common}/buddies/jp/chara.png +0 -0
  97. /package/assets/themes/maimai/{common → best50/common}/buddies/jp/laundry.png +0 -0
  98. /package/assets/themes/maimai/{common → best50/common}/buddies/jp/logo.png +0 -0
  99. /package/assets/themes/maimai/{common → best50/common}/buddies/plus/chara.png +0 -0
  100. /package/assets/themes/maimai/{common → best50/common}/buddies/plus/laundry.png +0 -0
  101. /package/assets/themes/maimai/{common → best50/common}/buddies/plus/logo.png +0 -0
  102. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/a.png +0 -0
  103. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/aa.png +0 -0
  104. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/aaa.png +0 -0
  105. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/b.png +0 -0
  106. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/c.png +0 -0
  107. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/d.png +0 -0
  108. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/e.png +0 -0
  109. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/f.png +0 -0
  110. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/s.png +0 -0
  111. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/sp.png +0 -0
  112. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/ss.png +0 -0
  113. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/ssp.png +0 -0
  114. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/sss.png +0 -0
  115. /package/assets/themes/maimai/{common → best50/common}/finale/achievement/sssp.png +0 -0
  116. /package/assets/themes/maimai/{common → best50/common}/finale/background.png +0 -0
  117. /package/assets/themes/maimai/{common → best50/common}/finale/background2.png +0 -0
  118. /package/assets/themes/maimai/{common → best50/common}/finale/logo.png +0 -0
  119. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/ap.png +0 -0
  120. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/app.png +0 -0
  121. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/fc.png +0 -0
  122. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/fcp.png +0 -0
  123. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/fdx.png +0 -0
  124. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/fdxp.png +0 -0
  125. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/fsp.png +0 -0
  126. /package/assets/themes/maimai/{common → best50/common}/finale/milestone/sync.png +0 -0
  127. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/a.png +0 -0
  128. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/aa.png +0 -0
  129. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/aaa.png +0 -0
  130. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/b.png +0 -0
  131. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/bb.png +0 -0
  132. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/bbb.png +0 -0
  133. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/c.png +0 -0
  134. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/d.png +0 -0
  135. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/s.png +0 -0
  136. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/sp.png +0 -0
  137. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/ss.png +0 -0
  138. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/ssp.png +0 -0
  139. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/sss.png +0 -0
  140. /package/assets/themes/maimai/{common → best50/common}/prism/achievement/sssp.png +0 -0
  141. /package/assets/themes/maimai/{common → best50/common}/prism/jp/background.png +0 -0
  142. /package/assets/themes/maimai/{common → best50/common}/prism/jp/chara.png +0 -0
  143. /package/assets/themes/maimai/{common → best50/common}/prism/jp/laundry.png +0 -0
  144. /package/assets/themes/maimai/{common → best50/common}/prism/jp/logo.png +0 -0
  145. /package/assets/themes/maimai/{common → best50/common}/prism/plus/chara.png +0 -0
  146. /package/assets/themes/maimai/{common → best50/common}/prism/plus/laundry.png +0 -0
  147. /package/assets/themes/maimai/{common → best50/common}/prism/plus/logo.png +0 -0
  148. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/blue.png +0 -0
  149. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/bronze.png +0 -0
  150. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/gold.png +0 -0
  151. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/green.png +0 -0
  152. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/platinum.png +0 -0
  153. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/purple.png +0 -0
  154. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/rainbow.png +0 -0
  155. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/red.png +0 -0
  156. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/silver.png +0 -0
  157. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/white.png +0 -0
  158. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/cn/yellow.png +0 -0
  159. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/blue.png +0 -0
  160. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/bronze.png +0 -0
  161. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/gold.png +0 -0
  162. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/green.png +0 -0
  163. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/platinum.png +0 -0
  164. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/purple.png +0 -0
  165. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/rainbow.png +0 -0
  166. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/red.png +0 -0
  167. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/silver.png +0 -0
  168. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/white.png +0 -0
  169. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/jp/yellow.png +0 -0
  170. /package/assets/themes/maimai/{common → best50/common}/versionless/dxRating/numberMap.png +0 -0
  171. /package/assets/themes/maimai/{common → best50/common}/versionless/icon.png +0 -0
  172. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/ap.png +0 -0
  173. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/app.png +0 -0
  174. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/fc.png +0 -0
  175. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/fcp.png +0 -0
  176. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/fdx.png +0 -0
  177. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/fdxp.png +0 -0
  178. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/fs.png +0 -0
  179. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/fsp.png +0 -0
  180. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/none.png +0 -0
  181. /package/assets/themes/maimai/{common → best50/common}/versionless/milestone/sync.png +0 -0
  182. /package/assets/themes/maimai/{common → best50/common}/versionless/mode/cn/dx.png +0 -0
  183. /package/assets/themes/maimai/{common → best50/common}/versionless/mode/cn/standard.png +0 -0
  184. /package/assets/themes/maimai/{common → best50/common}/versionless/mode/jp/dx.png +0 -0
  185. /package/assets/themes/maimai/{common → best50/common}/versionless/mode/jp/standard.png +0 -0
  186. /package/assets/themes/maimai/{common → best50/common}/versionless/nameplate.png +0 -0
  187. /package/assets/themes/maimai/{common → best50/common}/versionless/void.png +0 -0
  188. /package/assets/themes/maimai/{jp → best50/jp}/buddiesLandscape/manifest.json +0 -0
  189. /package/assets/themes/maimai/{jp → best50/jp}/buddiesPlusLandscape/manifest.json +0 -0
  190. /package/assets/themes/maimai/{jp → best50/jp}/buddiesPlusPortrait/manifest.json +0 -0
  191. /package/assets/themes/maimai/{jp → best50/jp}/buddiesPortrait/manifest.json +0 -0
  192. /package/assets/themes/maimai/{jp → best50/jp}/finaleLandscape/manifest.json +0 -0
  193. /package/assets/themes/maimai/{jp → best50/jp}/finalePortrait/manifest.json +0 -0
  194. /package/assets/themes/maimai/{jp → best50/jp}/prismLandscape/manifest.json +0 -0
  195. /package/assets/themes/maimai/{jp → best50/jp}/prismPlusLandscape/manifest.json +0 -0
  196. /package/assets/themes/maimai/{jp → best50/jp}/prismPlusPortrait/manifest.json +0 -0
  197. /package/assets/themes/maimai/{jp → best50/jp}/prismPortrait/manifest.json +0 -0
  198. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/a.png +0 -0
  199. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/aa.png +0 -0
  200. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/aaa.png +0 -0
  201. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/b.png +0 -0
  202. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/bb.png +0 -0
  203. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/bbb.png +0 -0
  204. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/c.png +0 -0
  205. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/d.png +0 -0
  206. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/s.png +0 -0
  207. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/sp.png +0 -0
  208. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/ss.png +0 -0
  209. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/ssp.png +0 -0
  210. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/sss.png +0 -0
  211. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/achievement/sssp.png +0 -0
  212. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/background.png +0 -0
  213. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/chara.png +0 -0
  214. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/image/logo.png +0 -0
  215. /package/assets/themes/maimai/{salt → best50/salt}/2026landscape/manifest.json +0 -0
@@ -1,4 +1,4 @@
1
- import { EDifficulty, IChart } from "../type";
1
+ import { EDifficulty } from "../type";
2
2
  export declare class Database {
3
3
  private static localDatabasePath;
4
4
  static setLocalDatabasePath(path: string): void;
@@ -7,5 +7,115 @@ export declare class Database {
7
7
  static cacheJackets(ids: number[]): Promise<void>;
8
8
  static fecthJacket(id: number): Promise<Buffer | null>;
9
9
  static downloadJacket(id: number): Promise<Buffer | null>;
10
- static getLocalChart(id: number, difficulty: EDifficulty): IChart | null;
10
+ static getLocalChart(id: number, difficulty: EDifficulty): Database.IChart | null;
11
+ }
12
+ export declare namespace Database {
13
+ interface IChart {
14
+ /**
15
+ * Unique Chart ID, i.e. a 6 digit number-like string.
16
+ * @example "001451" for Transcended Light standard. (Does not actually exist)
17
+ * @example "011451" for Transcended Light DX.
18
+ * @example "011804" for How To Make 音ゲ~曲!DX.
19
+ */
20
+ id: number;
21
+ /**
22
+ * Name of the song.
23
+ */
24
+ name: string;
25
+ /**
26
+ * Name of the artist.
27
+ */
28
+ artist: string;
29
+ /**
30
+ * BPM of the song.
31
+ */
32
+ bpm: number;
33
+ /**
34
+ * Difficulty category of the chart.
35
+ */
36
+ difficulty: EDifficulty;
37
+ /**
38
+ * Internal level of the chart as found in the latest version available.
39
+ */
40
+ level: number;
41
+ addVersion: {
42
+ DX?: IVersion;
43
+ EX?: IVersion;
44
+ CN?: IVersion;
45
+ };
46
+ /**
47
+ * Metadata of the chart.
48
+ */
49
+ meta: {
50
+ /**
51
+ * Note count of the chart.
52
+ */
53
+ notes: {
54
+ tap: number;
55
+ hold: number;
56
+ slide: number;
57
+ touch: number;
58
+ break: number;
59
+ };
60
+ maxDXScore: number;
61
+ };
62
+ /**
63
+ * Events that happened to the chart in versions.
64
+ */
65
+ events: Events[];
66
+ designer: {
67
+ id: number;
68
+ name: string;
69
+ };
70
+ }
71
+ namespace Events {
72
+ interface Base {
73
+ type: string;
74
+ data?: any;
75
+ version: IEventVersion;
76
+ }
77
+ export interface Existence extends Base {
78
+ type: "existence";
79
+ data: {
80
+ level: number;
81
+ };
82
+ }
83
+ export interface Absence extends Base {
84
+ type: "absence";
85
+ }
86
+ export interface Removal extends Base {
87
+ type: "removal";
88
+ }
89
+ export {};
90
+ }
91
+ type Events = Events.Existence | Events.Absence | Events.Removal;
92
+ interface IVersion {
93
+ /**
94
+ * Full name of the version.
95
+ * @example "maimai でらっくす PRiSM PLUS"
96
+ */
97
+ name: string;
98
+ /**
99
+ * Version number as it is used internally.
100
+ * Formatted as `{major}.{minor}.{patch}`.
101
+ *
102
+ * @example "1.55.0" for "1.55"
103
+ * @example "1.41.7" for "1.41-G"
104
+ */
105
+ gameVersion: {
106
+ isDX: boolean;
107
+ major: number;
108
+ minor: number;
109
+ release?: number;
110
+ };
111
+ }
112
+ interface IEventVersion extends IVersion {
113
+ gameVersion: {
114
+ isDX: boolean;
115
+ major: number;
116
+ minor: number;
117
+ release: number;
118
+ };
119
+ region: "DX" | "EX" | "CN";
120
+ }
11
121
  }
@@ -1,4 +1,228 @@
1
1
  import * as database from "./database";
2
+ import ScoreTrackerAdapter from "../lib";
3
+ import { Best50 } from "../best50";
4
+ export declare class Chart {
5
+ private static readonly DEFAULT_THEME;
6
+ private static primaryTheme;
7
+ private static get assetsPath();
8
+ private static themes;
9
+ static hasTheme(name: string): boolean;
10
+ private static validateManifest;
11
+ static loadTheme(path: string): boolean;
12
+ private static getTheme;
13
+ private static getThemeFile;
14
+ private static drawImageModule;
15
+ private static drawChartGridCard;
16
+ private static drawDetailInfoModule;
17
+ private static drawChartGridModule;
18
+ private static drawProfileModule;
19
+ private static drawTextModule;
20
+ static draw(name: string, rating: number, chartId: number, scores: (Best50.IScore | null)[], options?: {
21
+ scale?: number;
22
+ theme?: string;
23
+ profilePicture?: Buffer;
24
+ }): Promise<Buffer | null>;
25
+ static drawWithScoreSource(source: ScoreTrackerAdapter, username: string, chartId: number, options?: {
26
+ scale?: number;
27
+ theme?: string;
28
+ profilePicture?: Buffer | null;
29
+ }): Promise<Buffer | null>;
30
+ private static getRatingNumber;
31
+ }
2
32
  export declare namespace Chart {
3
33
  export import Database = database.Database;
34
+ interface ITheme {
35
+ manifest: IThemeManifest;
36
+ path: string;
37
+ }
38
+ interface IThemeManifest {
39
+ displayName: string;
40
+ name: string;
41
+ width: number;
42
+ height: number;
43
+ sprites: IThemeSprites;
44
+ elements: IThemeElements[];
45
+ }
46
+ interface IThemeSprites {
47
+ achievement: {
48
+ d: string;
49
+ c: string;
50
+ b: string;
51
+ bb: string;
52
+ bbb: string;
53
+ a: string;
54
+ aa: string;
55
+ aaa: string;
56
+ s: string;
57
+ sp: string;
58
+ ss: string;
59
+ ssp: string;
60
+ sss: string;
61
+ sssp: string;
62
+ };
63
+ mode: {
64
+ standard: string;
65
+ dx: string;
66
+ };
67
+ milestone: {
68
+ ap: string;
69
+ app: string;
70
+ fc: string;
71
+ fcp: string;
72
+ fdx: string;
73
+ fdxp: string;
74
+ fs: string;
75
+ fsp: string;
76
+ sync: string;
77
+ none: string;
78
+ };
79
+ dxRating: {
80
+ white: string;
81
+ blue: string;
82
+ green: string;
83
+ yellow: string;
84
+ red: string;
85
+ purple: string;
86
+ bronze: string;
87
+ silver: string;
88
+ gold: string;
89
+ platinum: string;
90
+ rainbow: string;
91
+ };
92
+ dxRatingNumberMap: string;
93
+ profile: {
94
+ icon: string;
95
+ nameplate: string;
96
+ };
97
+ versions: {
98
+ OLD: {
99
+ 0: string;
100
+ 10: string;
101
+ 20: string;
102
+ 30: string;
103
+ 40: string;
104
+ 50: string;
105
+ 60: string;
106
+ 70: string;
107
+ 80: string;
108
+ 85: string;
109
+ 90: string;
110
+ 95: string;
111
+ 99: string;
112
+ };
113
+ DX: {
114
+ 0: string;
115
+ 5: string;
116
+ 10: string;
117
+ 15: string;
118
+ 20: string;
119
+ 25: string;
120
+ 30: string;
121
+ 35: string;
122
+ 40: string;
123
+ 45: string;
124
+ 50: string;
125
+ 55: string;
126
+ };
127
+ EX: {
128
+ 10: string;
129
+ 15: string;
130
+ };
131
+ CN: {
132
+ 0: string;
133
+ 10: string;
134
+ 20: string;
135
+ 30: string;
136
+ 40: string;
137
+ };
138
+ };
139
+ }
140
+ type IThemeElements = IThemeProfileElement | IThemeChartGridElement | IThemeImageElement | IThemeTextElement | IThemeDetailInfoElement;
141
+ interface IThemeElement {
142
+ type: string;
143
+ x: number;
144
+ y: number;
145
+ }
146
+ interface IThemeProfileElement extends IThemeElement {
147
+ type: "profile";
148
+ height: number;
149
+ }
150
+ interface IThemeChartGridElement extends IThemeElement {
151
+ type: "chart-grid";
152
+ width: number;
153
+ height: number;
154
+ margin: number;
155
+ gap: number;
156
+ bubble: {
157
+ margin: number;
158
+ color: {
159
+ basic: string;
160
+ advanced: string;
161
+ expert: string;
162
+ master: string;
163
+ remaster: string;
164
+ utage: string;
165
+ };
166
+ };
167
+ color: {
168
+ card: string;
169
+ };
170
+ }
171
+ interface IThemeDetailInfoElement extends IThemeElement {
172
+ type: "detail-info";
173
+ width: number;
174
+ height: number;
175
+ margin: number;
176
+ color: {
177
+ card: string;
178
+ };
179
+ font?: string;
180
+ }
181
+ interface IThemeImageElement extends IThemeElement {
182
+ type: "image";
183
+ width: number;
184
+ height: number;
185
+ /**
186
+ * Relative path from the manifest file to the element file.
187
+ */
188
+ path: string;
189
+ }
190
+ interface IThemeTextElement extends IThemeElement {
191
+ type: "text";
192
+ size: number;
193
+ content: string;
194
+ /**
195
+ * If width is provied and the text is too long, it will be cut off.
196
+ */
197
+ width?: number;
198
+ /**
199
+ * If height is provied and the text is too big, it will be cut off.
200
+ */
201
+ height?: number;
202
+ /**
203
+ * If true, instead of cutting off the text, it will change to a new line.
204
+ * Height restrictions will still apply.
205
+ */
206
+ linebreak?: boolean;
207
+ /**
208
+ * Text alignment.
209
+ * Defaults to left.
210
+ */
211
+ align?: "left" | "center" | "right";
212
+ /**
213
+ * Text color.
214
+ * Defaults to white (#FFFFFF).
215
+ */
216
+ color?: string;
217
+ /**
218
+ * Text border color.
219
+ * Defaults a darker variant of `color`.
220
+ */
221
+ borderColor?: string;
222
+ /**
223
+ * Text font. Please make sure the font is available in the environment.
224
+ * Defaults to a preconfigured font macro. Check source code for more info.
225
+ */
226
+ font?: string;
227
+ }
4
228
  }