@sonolus/core 7.14.2 → 7.15.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 (42) hide show
  1. package/dist/common/core/background/item.d.ts +2 -0
  2. package/dist/common/core/effect/item.d.ts +2 -0
  3. package/dist/common/core/engine/configuration/configuration.d.ts +2 -0
  4. package/dist/common/core/engine/item.d.ts +2 -0
  5. package/dist/common/core/engine/playData/archetype.d.ts +1 -0
  6. package/dist/common/core/engine/previewData/archetype.d.ts +1 -0
  7. package/dist/common/core/engine/watchData/archetype.d.ts +1 -0
  8. package/dist/common/core/icon.d.ts +27 -0
  9. package/dist/common/core/icon.js +27 -0
  10. package/dist/common/core/index.d.ts +1 -0
  11. package/dist/common/core/index.js +1 -0
  12. package/dist/common/core/itemType.d.ts +1 -1
  13. package/dist/common/core/level/item.d.ts +2 -0
  14. package/dist/common/core/particle/item.d.ts +2 -0
  15. package/dist/common/core/playlist/item.d.ts +2 -0
  16. package/dist/common/core/post/item.d.ts +2 -0
  17. package/dist/common/core/replay/configuration.d.ts +2 -0
  18. package/dist/common/core/replay/item.d.ts +2 -0
  19. package/dist/common/core/room/item.d.ts +2 -0
  20. package/dist/common/core/runtimes/function.d.ts +1 -0
  21. package/dist/common/core/runtimes/function.js +1 -0
  22. package/dist/common/core/server/info.d.ts +16 -2
  23. package/dist/common/core/server/items/community/comment/comment.d.ts +2 -0
  24. package/dist/common/core/server/items/info.d.ts +3 -0
  25. package/dist/common/core/server/items/leaderboard/record/record.d.ts +2 -0
  26. package/dist/common/core/server/items/list.d.ts +3 -0
  27. package/dist/common/core/server/items/section.d.ts +2 -1
  28. package/dist/common/core/server/option.d.ts +34 -0
  29. package/dist/common/core/skin/item.d.ts +2 -0
  30. package/dist/common/core/tag.d.ts +1 -1
  31. package/dist/common/core/text.d.ts +99 -25
  32. package/dist/common/core/text.js +99 -25
  33. package/dist/common/core/user/index.d.ts +1 -0
  34. package/dist/common/core/user/index.js +1 -0
  35. package/dist/common/core/user/item.d.ts +8 -0
  36. package/dist/common/core/user/item.js +1 -0
  37. package/dist/common/database/tag.d.ts +1 -1
  38. package/dist/common/version.js +2 -2
  39. package/dist/node/core/resource/compress.d.ts +2 -2
  40. package/dist/node/core/resource/decompress.d.ts +3 -2
  41. package/dist/node/core/resource/hash.d.ts +2 -1
  42. package/package.json +8 -8
@@ -1,5 +1,6 @@
1
1
  import { Srl } from '../srl.js';
2
2
  import { Tag } from '../tag.js';
3
+ import { UserItem } from '../user/item.js';
3
4
  export type BackgroundItem = {
4
5
  name: string;
5
6
  source?: string;
@@ -7,6 +8,7 @@ export type BackgroundItem = {
7
8
  title: string;
8
9
  subtitle: string;
9
10
  author: string;
11
+ authorUser?: UserItem;
10
12
  tags: Tag[];
11
13
  thumbnail: Srl;
12
14
  data: Srl;
@@ -1,5 +1,6 @@
1
1
  import { Srl } from '../srl.js';
2
2
  import { Tag } from '../tag.js';
3
+ import { UserItem } from '../user/item.js';
3
4
  export type EffectItem = {
4
5
  name: string;
5
6
  source?: string;
@@ -7,6 +8,7 @@ export type EffectItem = {
7
8
  title: string;
8
9
  subtitle: string;
9
10
  author: string;
11
+ authorUser?: UserItem;
10
12
  tags: Tag[];
11
13
  thumbnail: Srl;
12
14
  data: Srl;
@@ -1,6 +1,8 @@
1
+ import { Text } from '../../text.js';
1
2
  import { EngineConfigurationOption } from './option.js';
2
3
  import { EngineConfigurationUI } from './ui.js';
3
4
  export type EngineConfiguration = {
4
5
  options: EngineConfigurationOption[];
5
6
  ui: EngineConfigurationUI;
7
+ replayFallbackOptionNames?: (Text | (string & {}))[];
6
8
  };
@@ -4,6 +4,7 @@ import { ParticleItem } from '../particle/item.js';
4
4
  import { SkinItem } from '../skin/item.js';
5
5
  import { Srl } from '../srl.js';
6
6
  import { Tag } from '../tag.js';
7
+ import { UserItem } from '../user/item.js';
7
8
  export type EngineItem = {
8
9
  name: string;
9
10
  source?: string;
@@ -11,6 +12,7 @@ export type EngineItem = {
11
12
  title: string;
12
13
  subtitle: string;
13
14
  author: string;
15
+ authorUser?: UserItem;
14
16
  tags: Tag[];
15
17
  skin: SkinItem;
16
18
  background: BackgroundItem;
@@ -14,6 +14,7 @@ export type EnginePlayDataArchetype = {
14
14
  imports: {
15
15
  name: EngineArchetypeDataName | (string & {});
16
16
  index: number;
17
+ def?: number;
17
18
  }[];
18
19
  exports: (EngineArchetypeDataName | (string & {}))[];
19
20
  };
@@ -7,6 +7,7 @@ export type EnginePreviewDataArchetype = {
7
7
  imports: {
8
8
  name: EngineArchetypeDataName | (string & {});
9
9
  index: number;
10
+ def?: number;
10
11
  }[];
11
12
  };
12
13
  export type EnginePreviewDataArchetypeCallback = {
@@ -13,6 +13,7 @@ export type EngineWatchDataArchetype = {
13
13
  imports: {
14
14
  name: EngineArchetypeDataName | (string & {});
15
15
  index: number;
16
+ def?: number;
16
17
  }[];
17
18
  };
18
19
  export type EngineWatchDataArchetypeCallback = {
@@ -8,16 +8,22 @@ export declare const Icon: {
8
8
  readonly AnglesRight: "anglesRight";
9
9
  readonly AnglesUp: "anglesUp";
10
10
  readonly AngleUp: "angleUp";
11
+ readonly Announcement: "announcement";
11
12
  readonly ArrowDown: "arrowDown";
12
13
  readonly ArrowLeft: "arrowLeft";
13
14
  readonly ArrowRight: "arrowRight";
15
+ readonly ArrowsLeftRight: "arrowsLeftRight";
16
+ readonly ArrowsUpDown: "arrowsUpDown";
17
+ readonly ArrowsUpLeft: "arrowsUpLeft";
14
18
  readonly ArrowUp: "arrowUp";
15
19
  readonly Award: "award";
16
20
  readonly Background: "background";
17
21
  readonly Bell: "bell";
18
22
  readonly BellSlash: "bellSlash";
23
+ readonly Book: "book";
19
24
  readonly Bookmark: "bookmark";
20
25
  readonly BookmarkHollow: "bookmarkHollow";
26
+ readonly Broom: "broom";
21
27
  readonly Check: "check";
22
28
  readonly Clock: "clock";
23
29
  readonly Comment: "comment";
@@ -29,10 +35,13 @@ export declare const Icon: {
29
35
  readonly Engine: "engine";
30
36
  readonly Envelope: "envelope";
31
37
  readonly EnvelopeOpen: "envelopeOpen";
38
+ readonly Filter: "filter";
32
39
  readonly Globe: "globe";
40
+ readonly Hand: "hand";
33
41
  readonly Heart: "heart";
34
42
  readonly HeartHollow: "heartHollow";
35
43
  readonly Hide: "hide";
44
+ readonly IceCream: "iceCream";
36
45
  readonly Information: "information";
37
46
  readonly Level: "level";
38
47
  readonly Lock: "lock";
@@ -52,11 +61,27 @@ export declare const Icon: {
52
61
  readonly Reply: "reply";
53
62
  readonly Restore: "restore";
54
63
  readonly Room: "room";
64
+ readonly Scissors: "scissors";
55
65
  readonly Search: "search";
56
66
  readonly Settings: "settings";
57
67
  readonly Show: "show";
58
68
  readonly Shuffle: "shuffle";
59
69
  readonly Skin: "skin";
70
+ readonly Sort: "sort";
71
+ readonly SortDown: "sortDown";
72
+ readonly SortDown19: "sortDown19";
73
+ readonly SortDown91: "sortDown91";
74
+ readonly SortDownAZ: "sortDownAZ";
75
+ readonly SortDownShortWide: "sortDownShortWide";
76
+ readonly SortDownWideShort: "sortDownWideShort";
77
+ readonly SortDownZA: "sortDownZA";
78
+ readonly SortUp: "sortUp";
79
+ readonly SortUp19: "sortUp19";
80
+ readonly SortUp91: "sortUp91";
81
+ readonly SortUpAZ: "sortUpAZ";
82
+ readonly SortUpShortWide: "sortUpShortWide";
83
+ readonly SortUpWideShort: "sortUpWideShort";
84
+ readonly SortUpZA: "sortUpZA";
60
85
  readonly Star: "star";
61
86
  readonly StarHalf: "starHalf";
62
87
  readonly StarHollow: "starHollow";
@@ -68,6 +93,8 @@ export declare const Icon: {
68
93
  readonly ThumbsUpHollow: "thumbsUpHollow";
69
94
  readonly Trophy: "trophy";
70
95
  readonly Unlock: "unlock";
96
+ readonly User: "user";
97
+ readonly Warning: "warning";
71
98
  readonly XMark: "xMark";
72
99
  };
73
100
  export type Icon = (typeof Icon)[keyof typeof Icon];
@@ -8,16 +8,22 @@ export const Icon = {
8
8
  AnglesRight: 'anglesRight',
9
9
  AnglesUp: 'anglesUp',
10
10
  AngleUp: 'angleUp',
11
+ Announcement: 'announcement',
11
12
  ArrowDown: 'arrowDown',
12
13
  ArrowLeft: 'arrowLeft',
13
14
  ArrowRight: 'arrowRight',
15
+ ArrowsLeftRight: 'arrowsLeftRight',
16
+ ArrowsUpDown: 'arrowsUpDown',
17
+ ArrowsUpLeft: 'arrowsUpLeft',
14
18
  ArrowUp: 'arrowUp',
15
19
  Award: 'award',
16
20
  Background: 'background',
17
21
  Bell: 'bell',
18
22
  BellSlash: 'bellSlash',
23
+ Book: 'book',
19
24
  Bookmark: 'bookmark',
20
25
  BookmarkHollow: 'bookmarkHollow',
26
+ Broom: 'broom',
21
27
  Check: 'check',
22
28
  Clock: 'clock',
23
29
  Comment: 'comment',
@@ -29,10 +35,13 @@ export const Icon = {
29
35
  Engine: 'engine',
30
36
  Envelope: 'envelope',
31
37
  EnvelopeOpen: 'envelopeOpen',
38
+ Filter: 'filter',
32
39
  Globe: 'globe',
40
+ Hand: 'hand',
33
41
  Heart: 'heart',
34
42
  HeartHollow: 'heartHollow',
35
43
  Hide: 'hide',
44
+ IceCream: 'iceCream',
36
45
  Information: 'information',
37
46
  Level: 'level',
38
47
  Lock: 'lock',
@@ -52,11 +61,27 @@ export const Icon = {
52
61
  Reply: 'reply',
53
62
  Restore: 'restore',
54
63
  Room: 'room',
64
+ Scissors: 'scissors',
55
65
  Search: 'search',
56
66
  Settings: 'settings',
57
67
  Show: 'show',
58
68
  Shuffle: 'shuffle',
59
69
  Skin: 'skin',
70
+ Sort: 'sort',
71
+ SortDown: 'sortDown',
72
+ SortDown19: 'sortDown19',
73
+ SortDown91: 'sortDown91',
74
+ SortDownAZ: 'sortDownAZ',
75
+ SortDownShortWide: 'sortDownShortWide',
76
+ SortDownWideShort: 'sortDownWideShort',
77
+ SortDownZA: 'sortDownZA',
78
+ SortUp: 'sortUp',
79
+ SortUp19: 'sortUp19',
80
+ SortUp91: 'sortUp91',
81
+ SortUpAZ: 'sortUpAZ',
82
+ SortUpShortWide: 'sortUpShortWide',
83
+ SortUpWideShort: 'sortUpWideShort',
84
+ SortUpZA: 'sortUpZA',
60
85
  Star: 'star',
61
86
  StarHalf: 'starHalf',
62
87
  StarHollow: 'starHollow',
@@ -68,5 +93,7 @@ export const Icon = {
68
93
  ThumbsUpHollow: 'thumbsUpHollow',
69
94
  Trophy: 'trophy',
70
95
  Unlock: 'unlock',
96
+ User: 'user',
97
+ Warning: 'warning',
71
98
  XMark: 'xMark',
72
99
  };
@@ -21,3 +21,4 @@ export * from './skin/index.js';
21
21
  export { Srl } from './srl.js';
22
22
  export { Tag } from './tag.js';
23
23
  export { Text } from './text.js';
24
+ export * from './user/index.js';
@@ -15,3 +15,4 @@ export * from './server/index.js';
15
15
  export * from './service/index.js';
16
16
  export * from './skin/index.js';
17
17
  export { Text } from './text.js';
18
+ export * from './user/index.js';
@@ -1 +1 @@
1
- export type ItemType = 'post' | 'playlist' | 'level' | 'skin' | 'background' | 'effect' | 'particle' | 'engine' | 'replay' | 'room';
1
+ export type ItemType = 'post' | 'playlist' | 'level' | 'skin' | 'background' | 'effect' | 'particle' | 'engine' | 'replay' | 'room' | 'user';
@@ -5,6 +5,7 @@ import { ParticleItem } from '../particle/item.js';
5
5
  import { SkinItem } from '../skin/item.js';
6
6
  import { Srl } from '../srl.js';
7
7
  import { Tag } from '../tag.js';
8
+ import { UserItem } from '../user/item.js';
8
9
  export type UseItem<T> = {
9
10
  useDefault: true;
10
11
  } | {
@@ -19,6 +20,7 @@ export type LevelItem = {
19
20
  title: string;
20
21
  artists: string;
21
22
  author: string;
23
+ authorUser?: UserItem;
22
24
  tags: Tag[];
23
25
  engine: EngineItem;
24
26
  useSkin: UseItem<SkinItem>;
@@ -1,5 +1,6 @@
1
1
  import { Srl } from '../srl.js';
2
2
  import { Tag } from '../tag.js';
3
+ import { UserItem } from '../user/item.js';
3
4
  export type ParticleItem = {
4
5
  name: string;
5
6
  source?: string;
@@ -7,6 +8,7 @@ export type ParticleItem = {
7
8
  title: string;
8
9
  subtitle: string;
9
10
  author: string;
11
+ authorUser?: UserItem;
10
12
  tags: Tag[];
11
13
  thumbnail: Srl;
12
14
  data: Srl;
@@ -1,6 +1,7 @@
1
1
  import { LevelItem } from '../level/item.js';
2
2
  import { Srl } from '../srl.js';
3
3
  import { Tag } from '../tag.js';
4
+ import { UserItem } from '../user/item.js';
4
5
  export type PlaylistItem = {
5
6
  name: string;
6
7
  source?: string;
@@ -8,6 +9,7 @@ export type PlaylistItem = {
8
9
  title: string;
9
10
  subtitle: string;
10
11
  author: string;
12
+ authorUser?: UserItem;
11
13
  tags: Tag[];
12
14
  levels: LevelItem[];
13
15
  thumbnail?: Srl;
@@ -1,5 +1,6 @@
1
1
  import { Srl } from '../srl.js';
2
2
  import { Tag } from '../tag.js';
3
+ import { UserItem } from '../user/item.js';
3
4
  export type PostItem = {
4
5
  name: string;
5
6
  source?: string;
@@ -7,6 +8,7 @@ export type PostItem = {
7
8
  title: string;
8
9
  time: number;
9
10
  author: string;
11
+ authorUser?: UserItem;
10
12
  tags: Tag[];
11
13
  thumbnail?: Srl;
12
14
  };
@@ -1,3 +1,5 @@
1
+ import { Text } from '../text.js';
1
2
  export type ReplayConfiguration = {
2
3
  options: number[];
4
+ optionNames?: (Text | (string & {}))[];
3
5
  };
@@ -1,6 +1,7 @@
1
1
  import { LevelItem } from '../level/item.js';
2
2
  import { Srl } from '../srl.js';
3
3
  import { Tag } from '../tag.js';
4
+ import { UserItem } from '../user/item.js';
4
5
  export type ReplayItem = {
5
6
  name: string;
6
7
  source?: string;
@@ -8,6 +9,7 @@ export type ReplayItem = {
8
9
  title: string;
9
10
  subtitle: string;
10
11
  author: string;
12
+ authorUser?: UserItem;
11
13
  tags: Tag[];
12
14
  level: LevelItem;
13
15
  data: Srl;
@@ -1,10 +1,12 @@
1
1
  import { Srl } from '../srl.js';
2
2
  import { Tag } from '../tag.js';
3
+ import { UserItem } from '../user/item.js';
3
4
  export type RoomItem = {
4
5
  name: string;
5
6
  title: string;
6
7
  subtitle: string;
7
8
  master: string;
9
+ masterUser?: UserItem;
8
10
  tags: Tag[];
9
11
  cover?: Srl;
10
12
  bgm?: Srl;
@@ -1,6 +1,7 @@
1
1
  export declare const RuntimeFunction: {
2
2
  readonly Abs: "Abs";
3
3
  readonly Add: "Add";
4
+ readonly AddLifeScheduled: "AddLifeScheduled";
4
5
  readonly And: "And";
5
6
  readonly Arccos: "Arccos";
6
7
  readonly Arcsin: "Arcsin";
@@ -1,6 +1,7 @@
1
1
  export const RuntimeFunction = {
2
2
  Abs: 'Abs',
3
3
  Add: 'Add',
4
+ AddLifeScheduled: 'AddLifeScheduled',
4
5
  And: 'And',
5
6
  Arccos: 'Arccos',
6
7
  Arcsin: 'Arcsin',
@@ -1,4 +1,6 @@
1
+ import { Icon } from '../icon.js';
1
2
  import { Srl } from '../srl.js';
3
+ import { Text } from '../text.js';
2
4
  import { ServerConfiguration } from './configuration.js';
3
5
  export type ServerInfo = {
4
6
  title: string;
@@ -7,6 +9,18 @@ export type ServerInfo = {
7
9
  configuration: ServerConfiguration;
8
10
  banner?: Srl;
9
11
  };
10
- export type ServerInfoButton = {
11
- type: 'authentication' | 'multiplayer' | 'post' | 'playlist' | 'level' | 'replay' | 'skin' | 'background' | 'effect' | 'particle' | 'engine' | 'configuration';
12
+ export type ServerInfoButton = ServerInfoAuthenticationButton | ServerInfoItemButton | ServerInfoConfigurationButton;
13
+ export type ServerInfoAuthenticationButton = {
14
+ type: 'authentication';
15
+ };
16
+ export type ServerInfoItemButton = {
17
+ type: 'room' | 'post' | 'playlist' | 'level' | 'replay' | 'skin' | 'background' | 'effect' | 'particle' | 'engine' | 'user' | 'configuration';
18
+ title?: Text | (string & {});
19
+ icon?: Icon | (string & {});
20
+ badgeCount?: number;
21
+ infoType?: string;
22
+ itemName?: string;
23
+ };
24
+ export type ServerInfoConfigurationButton = {
25
+ type: 'configuration';
12
26
  };
@@ -1,7 +1,9 @@
1
+ import { UserItem } from '../../../../user/item.js';
1
2
  import { ServerForm } from '../../../form.js';
2
3
  export type ServerItemCommunityComment = {
3
4
  name: string;
4
5
  author: string;
6
+ authorUser?: UserItem;
5
7
  time: number;
6
8
  content: string;
7
9
  actions: ServerForm[];
@@ -1,9 +1,12 @@
1
1
  import { Srl } from '../../srl.js';
2
+ import { Text } from '../../text.js';
2
3
  import { ServerForm } from '../form.js';
3
4
  import { ServerItemSection } from './section.js';
4
5
  export type ServerItemInfo = {
6
+ title?: Text | (string & {});
5
7
  creates?: ServerForm[];
6
8
  searches?: ServerForm[];
9
+ quickSearchValues?: string;
7
10
  sections: ServerItemSection[];
8
11
  banner?: Srl;
9
12
  };
@@ -1,7 +1,9 @@
1
1
  import { Text } from '../../../../text.js';
2
+ import { UserItem } from '../../../../user/item.js';
2
3
  export type ServerItemLeaderboardRecord = {
3
4
  name: string;
4
5
  rank: Text | (string & {});
5
6
  player: string;
7
+ playerUser?: UserItem;
6
8
  value: Text | (string & {});
7
9
  };
@@ -1,7 +1,10 @@
1
+ import { Text } from '../../text.js';
1
2
  import { ServerForm } from '../form.js';
2
3
  export type ServerItemList<T> = {
4
+ title?: Text | (string & {});
3
5
  pageCount: number;
4
6
  cursor?: string;
5
7
  items: T[];
6
8
  searches?: ServerForm[];
9
+ quickSearchValues?: string;
7
10
  };
@@ -10,8 +10,9 @@ import { ReplayItem } from '../../replay/item.js';
10
10
  import { RoomItem } from '../../room/item.js';
11
11
  import { SkinItem } from '../../skin/item.js';
12
12
  import { Text } from '../../text.js';
13
+ import { UserItem } from '../../user/item.js';
13
14
  import { ServerForm } from '../form.js';
14
- export type ServerItemSection = ServerItemSectionTyped<'post', PostItem> | ServerItemSectionTyped<'playlist', PlaylistItem> | ServerItemSectionTyped<'level', LevelItem> | ServerItemSectionTyped<'skin', SkinItem> | ServerItemSectionTyped<'background', BackgroundItem> | ServerItemSectionTyped<'effect', EffectItem> | ServerItemSectionTyped<'particle', ParticleItem> | ServerItemSectionTyped<'engine', EngineItem> | ServerItemSectionTyped<'replay', ReplayItem> | ServerItemSectionTyped<'room', RoomItem>;
15
+ export type ServerItemSection = ServerItemSectionTyped<'post', PostItem> | ServerItemSectionTyped<'playlist', PlaylistItem> | ServerItemSectionTyped<'level', LevelItem> | ServerItemSectionTyped<'skin', SkinItem> | ServerItemSectionTyped<'background', BackgroundItem> | ServerItemSectionTyped<'effect', EffectItem> | ServerItemSectionTyped<'particle', ParticleItem> | ServerItemSectionTyped<'engine', EngineItem> | ServerItemSectionTyped<'replay', ReplayItem> | ServerItemSectionTyped<'room', RoomItem> | ServerItemSectionTyped<'user', UserItem>;
15
16
  export type ServerItemSectionTyped<TItemType, TItem> = {
16
17
  title: Text | (string & {});
17
18
  icon?: Icon | (string & {});
@@ -75,6 +75,7 @@ export type ServerServerItemOption = {
75
75
  required: boolean;
76
76
  type: 'serverItem';
77
77
  itemType: ItemType;
78
+ infoType?: string;
78
79
  def: Sil | null;
79
80
  allowOtherServers: boolean;
80
81
  };
@@ -85,6 +86,7 @@ export type ServerServerItemsOption = {
85
86
  required: boolean;
86
87
  type: 'serverItems';
87
88
  itemType: ItemType;
89
+ infoType?: string;
88
90
  def: Sil[];
89
91
  allowOtherServers: boolean;
90
92
  limit: number;
@@ -104,4 +106,36 @@ export type ServerFileOption = {
104
106
  required: boolean;
105
107
  type: 'file';
106
108
  def: string;
109
+ validation?: ServerFileOptionValidationFile<'file'> | ServerFileOptionValidationImage<'image'> | ServerFileOptionValidationAudio<'audio'> | ServerFileOptionValidationZip<'zip'> | ServerFileOptionValidationImage<'serverBanner'> | ServerFileOptionValidationImage<'postThumbnail'> | ServerFileOptionValidationImage<'playlistThumbnail'> | ServerFileOptionValidationImage<'levelCover'> | ServerFileOptionValidationAudio<'levelBgm'> | ServerFileOptionValidationAudio<'levelPreview'> | ServerFileOptionValidationJson<'levelData'> | ServerFileOptionValidationImage<'skinThumbnail'> | ServerFileOptionValidationJson<'skinData'> | ServerFileOptionValidationImage<'skinTexture'> | ServerFileOptionValidationImage<'backgroundThumbnail'> | ServerFileOptionValidationImage<'backgroundImage'> | ServerFileOptionValidationJson<'backgroundData'> | ServerFileOptionValidationJson<'backgroundConfiguration'> | ServerFileOptionValidationImage<'effectThumbnail'> | ServerFileOptionValidationJson<'effectData'> | ServerFileOptionValidationZip<'effectAudio'> | ServerFileOptionValidationImage<'particleThumbnail'> | ServerFileOptionValidationJson<'particleData'> | ServerFileOptionValidationImage<'particleTexture'> | ServerFileOptionValidationImage<'engineThumbnail'> | ServerFileOptionValidationJson<'enginePlayData'> | ServerFileOptionValidationJson<'engineWatchData'> | ServerFileOptionValidationJson<'enginePreviewData'> | ServerFileOptionValidationJson<'engineTutorialData'> | ServerFileOptionValidationFile<'engineRom'> | ServerFileOptionValidationJson<'engineConfiguration'> | ServerFileOptionValidationJson<'replayData'> | ServerFileOptionValidationJson<'replayConfiguration'> | ServerFileOptionValidationImage<'roomCover'> | ServerFileOptionValidationAudio<'roomBgm'> | ServerFileOptionValidationAudio<'roomPreview'>;
110
+ };
111
+ export type ServerFileOptionValidationFile<T> = {
112
+ type: T;
113
+ minSize?: number;
114
+ maxSize?: number;
115
+ };
116
+ export type ServerFileOptionValidationImage<T> = {
117
+ type: T;
118
+ minSize?: number;
119
+ maxSize?: number;
120
+ minWidth?: number;
121
+ maxWidth?: number;
122
+ minHeight?: number;
123
+ maxHeight?: number;
124
+ };
125
+ export type ServerFileOptionValidationAudio<T> = {
126
+ type: T;
127
+ minSize?: number;
128
+ maxSize?: number;
129
+ minLength?: number;
130
+ maxLength?: number;
131
+ };
132
+ export type ServerFileOptionValidationZip<T> = {
133
+ type: T;
134
+ minSize?: number;
135
+ maxSize?: number;
136
+ };
137
+ export type ServerFileOptionValidationJson<T> = {
138
+ type: T;
139
+ minSize?: number;
140
+ maxSize?: number;
107
141
  };
@@ -1,5 +1,6 @@
1
1
  import { Srl } from '../srl.js';
2
2
  import { Tag } from '../tag.js';
3
+ import { UserItem } from '../user/item.js';
3
4
  export type SkinItem = {
4
5
  name: string;
5
6
  source?: string;
@@ -7,6 +8,7 @@ export type SkinItem = {
7
8
  title: string;
8
9
  subtitle: string;
9
10
  author: string;
11
+ authorUser?: UserItem;
10
12
  tags: Tag[];
11
13
  thumbnail: Srl;
12
14
  data: Srl;
@@ -1,6 +1,6 @@
1
1
  import { Icon } from './icon.js';
2
2
  import { Text } from './text.js';
3
3
  export type Tag = {
4
- title: Text | (string & {});
4
+ title?: Text | (string & {});
5
5
  icon?: Icon | (string & {});
6
6
  };
@@ -35,6 +35,8 @@ export declare const Text: {
35
35
  readonly Engine: "#ENGINE";
36
36
  /** en: Replay */
37
37
  readonly Replay: "#REPLAY";
38
+ /** en: User */
39
+ readonly User: "#USER";
38
40
  /** en: Room */
39
41
  readonly Room: "#ROOM";
40
42
  /** en: Thumbnail */
@@ -115,6 +117,10 @@ export declare const Text: {
115
117
  readonly Good: "#GOOD";
116
118
  /** en: Miss */
117
119
  readonly Miss: "#MISS";
120
+ /** en: Judgment */
121
+ readonly Judgment: "#JUDGMENT";
122
+ /** en: Accuracy */
123
+ readonly Accuracy: "#ACCURACY";
118
124
  /** en: Filter */
119
125
  readonly Filter: "#FILTER";
120
126
  /** en: Sort */
@@ -123,6 +129,8 @@ export declare const Text: {
123
129
  readonly Keywords: "#KEYWORDS";
124
130
  /** en: Name */
125
131
  readonly Name: "#NAME";
132
+ /** en: Source */
133
+ readonly Source: "#SOURCE";
126
134
  /** en: Rating */
127
135
  readonly Rating: "#RATING";
128
136
  /** en: Minimum Rating */
@@ -139,6 +147,10 @@ export declare const Text: {
139
147
  readonly Time: "#TIME";
140
148
  /** en: Author */
141
149
  readonly Author: "#AUTHOR";
150
+ /** en: Coauthor */
151
+ readonly Coauthor: "#COAUTHOR";
152
+ /** en: Collaborator */
153
+ readonly Collaborator: "#COLLABORATOR";
142
154
  /** en: Description */
143
155
  readonly Description: "#DESCRIPTION";
144
156
  /** en: Genre */
@@ -169,6 +181,10 @@ export declare const Text: {
169
181
  readonly Region: "#REGION";
170
182
  /** en: Tag */
171
183
  readonly Tag: "#TAG";
184
+ /** en: Include Tag */
185
+ readonly IncludeTag: "#INCLUDE_TAG";
186
+ /** en: Exclude Tag */
187
+ readonly ExcludeTag: "#EXCLUDE_TAG";
172
188
  /** en: Content */
173
189
  readonly Content: "#CONTENT";
174
190
  /** en: Comment */
@@ -181,8 +197,6 @@ export declare const Text: {
181
197
  readonly Role: "#ROLE";
182
198
  /** en: Permission */
183
199
  readonly Permission: "#PERMISSION";
184
- /** en: User */
185
- readonly User: "#USER";
186
200
  /** en: Level Speed */
187
201
  readonly Speed: "#SPEED";
188
202
  /** en: Mirror Level */
@@ -197,6 +211,8 @@ export declare const Text: {
197
211
  readonly JudgmentLoose: "#JUDGMENT_LOOSE";
198
212
  /** en: Auto SFX */
199
213
  readonly EffectAuto: "#EFFECT_AUTO";
214
+ /** en: Haptic */
215
+ readonly Haptic: "#HAPTIC";
200
216
  /** en: Stage */
201
217
  readonly Stage: "#STAGE";
202
218
  /** en: Stage Position */
@@ -411,6 +427,20 @@ export declare const Text: {
411
427
  readonly PreviewMeasure: "#PREVIEW_MEASURE";
412
428
  /** en: Preview Combo */
413
429
  readonly PreviewCombo: "#PREVIEW_COMBO";
430
+ /** en: UI */
431
+ readonly Ui: "#UI";
432
+ /** en: UI Metric */
433
+ readonly UiMetric: "#UI_METRIC";
434
+ /** en: UI Primary Metric */
435
+ readonly UiPrimaryMetric: "#UI_PRIMARY_METRIC";
436
+ /** en: UI Secondary Metric */
437
+ readonly UiSecondaryMetric: "#UI_SECONDARY_METRIC";
438
+ /** en: UI Judgment */
439
+ readonly UiJudgment: "#UI_JUDGMENT";
440
+ /** en: UI Combo */
441
+ readonly UiCombo: "#UI_Combo";
442
+ /** en: UI Menu */
443
+ readonly UiMenu: "#UI_Menu";
414
444
  /** en: ON */
415
445
  readonly On: "#ON";
416
446
  /** en: OFF */
@@ -517,6 +547,28 @@ export declare const Text: {
517
547
  readonly Special: "#SPECIAL";
518
548
  /** en: Append */
519
549
  readonly Append: "#APPEND";
550
+ /** en: Enter post... */
551
+ readonly PostPlaceholder: "#POST_PLACEHOLDER";
552
+ /** en: Enter playlist... */
553
+ readonly PlaylistPlaceholder: "#PLAYLIST_PLACEHOLDER";
554
+ /** en: Enter level... */
555
+ readonly LevelPlaceholder: "#LEVEL_PLACEHOLDER";
556
+ /** en: Enter skin... */
557
+ readonly SkinPlaceholder: "#SKIN_PLACEHOLDER";
558
+ /** en: Enter background... */
559
+ readonly BackgroundPlaceholder: "#BACKGROUND_PLACEHOLDER";
560
+ /** en: Enter SFX... */
561
+ readonly EffectPlaceholder: "#EFFECT_PLACEHOLDER";
562
+ /** en: Enter particle... */
563
+ readonly ParticlePlaceholder: "#PARTICLE_PLACEHOLDER";
564
+ /** en: Enter engine... */
565
+ readonly EnginePlaceholder: "#ENGINE_PLACEHOLDER";
566
+ /** en: Enter replay... */
567
+ readonly ReplayPlaceholder: "#REPLAY_PLACEHOLDER";
568
+ /** en: Enter user... */
569
+ readonly UserPlaceholder: "#USER_PLACEHOLDER";
570
+ /** en: Enter room... */
571
+ readonly RoomPlaceholder: "#ROOM_PLACEHOLDER";
520
572
  /** en: Enter keywords... */
521
573
  readonly KeywordsPlaceholder: "#KEYWORDS_PLACEHOLDER";
522
574
  /** en: Enter name... */
@@ -537,6 +589,10 @@ export declare const Text: {
537
589
  readonly TimePlaceholder: "#TIME_PLACEHOLDER";
538
590
  /** en: Enter author... */
539
591
  readonly AuthorPlaceholder: "#AUTHOR_PLACEHOLDER";
592
+ /** en: Enter coauthor... */
593
+ readonly CoauthorPlaceholder: "#COAUTHOR_PLACEHOLDER";
594
+ /** en: Enter collaborator... */
595
+ readonly CollaboratorPlaceholder: "#COLLABORATOR_PLACEHOLDER";
540
596
  /** en: Enter description... */
541
597
  readonly DescriptionPlaceholder: "#DESCRIPTION_PLACEHOLDER";
542
598
  /** en: Enter genre... */
@@ -575,51 +631,49 @@ export declare const Text: {
575
631
  readonly RolePlaceholder: "#ROLE_PLACEHOLDER";
576
632
  /** en: Enter permission... */
577
633
  readonly PermissionPlaceholder: "#PERMISSION_PLACEHOLDER";
578
- /** en: Enter user... */
579
- readonly UserPlaceholder: "#USER_PLACEHOLDER";
580
634
  /** en: {0}% */
581
635
  readonly PercentageUnit: "#PERCENTAGE_UNIT";
582
- /** en: {0} yr */
636
+ /** en: {0}yr */
583
637
  readonly YearUnit: "#YEAR_UNIT";
584
- /** en: {0} mo */
638
+ /** en: {0}mo */
585
639
  readonly MonthUnit: "#MONTH_UNIT";
586
- /** en: {0} d */
640
+ /** en: {0}d */
587
641
  readonly DayUnit: "#DAY_UNIT";
588
- /** en: {0} h */
642
+ /** en: {0}h */
589
643
  readonly HourUnit: "#HOUR_UNIT";
590
- /** en: {0} m */
644
+ /** en: {0}m */
591
645
  readonly MinuteUnit: "#MINUTE_UNIT";
592
- /** en: {0} s */
646
+ /** en: {0}s */
593
647
  readonly SecondUnit: "#SECOND_UNIT";
594
- /** en: {0} ms */
648
+ /** en: {0}ms */
595
649
  readonly MillisecondUnit: "#MILLISECOND_UNIT";
596
- /** en: {0} yr ago */
650
+ /** en: {0}yr ago */
597
651
  readonly YearPast: "#YEAR_PAST";
598
- /** en: {0} mo ago */
652
+ /** en: {0}mo ago */
599
653
  readonly MonthPast: "#MONTH_PAST";
600
- /** en: {0} d ago */
654
+ /** en: {0}d ago */
601
655
  readonly DayPast: "#DAY_PAST";
602
- /** en: {0} h ago */
656
+ /** en: {0}h ago */
603
657
  readonly HourPast: "#HOUR_PAST";
604
- /** en: {0} m ago */
658
+ /** en: {0}m ago */
605
659
  readonly MinutePast: "#MINUTE_PAST";
606
- /** en: {0} s ago */
660
+ /** en: {0}s ago */
607
661
  readonly SecondPast: "#SECOND_PAST";
608
- /** en: {0} ms ago */
662
+ /** en: {0}ms ago */
609
663
  readonly MillisecondPast: "#MILLISECOND_PAST";
610
- /** en: In {0} yr */
664
+ /** en: In {0}yr */
611
665
  readonly YearFuture: "#YEAR_FUTURE";
612
- /** en: In {0} mo */
666
+ /** en: In {0}mo */
613
667
  readonly MonthFuture: "#MONTH_FUTURE";
614
- /** en: In {0} d */
668
+ /** en: In {0}d */
615
669
  readonly DayFuture: "#DAY_FUTURE";
616
- /** en: In {0} h */
670
+ /** en: In {0}h */
617
671
  readonly HourFuture: "#HOUR_FUTURE";
618
- /** en: In {0} m */
672
+ /** en: In {0}m */
619
673
  readonly MinuteFuture: "#MINUTE_FUTURE";
620
- /** en: In {0} s */
674
+ /** en: In {0}s */
621
675
  readonly SecondFuture: "#SECOND_FUTURE";
622
- /** en: In {0} ms */
676
+ /** en: In {0}ms */
623
677
  readonly MillisecondFuture: "#MILLISECOND_FUTURE";
624
678
  /** en: Tap */
625
679
  readonly Tap: "#TAP";
@@ -661,6 +715,8 @@ export declare const Text: {
661
715
  readonly Featured: "#FEATURED";
662
716
  /** en: Competitive */
663
717
  readonly Competitive: "#COMPETITIVE";
718
+ /** en: Tournament */
719
+ readonly Tournament: "#TOURNAMENT";
664
720
  /** en: Holiday */
665
721
  readonly Holiday: "#HOLIDAY";
666
722
  /** en: Limited */
@@ -747,10 +803,28 @@ export declare const Text: {
747
803
  readonly ShortVersion: "#SHORT_VERSION";
748
804
  /** en: Long Version */
749
805
  readonly LongVersion: "#LONG_VERSION";
806
+ /** en: Cut Version */
807
+ readonly CutVersion: "#CUT_VERSION";
750
808
  /** en: Full Version */
751
809
  readonly FullVersion: "#FULL_VERSION";
810
+ /** en: Extended Version */
811
+ readonly ExtendedVersion: "#EXTENDED_VERSION";
752
812
  /** en: Live Version */
753
813
  readonly LiveVersion: "#LIVE_VERSION";
814
+ /** en: Medley */
815
+ readonly Medley: "#MEDLEY";
816
+ /** en: Explicit */
817
+ readonly Explicit: "#EXPLICIT";
818
+ /** en: Multi Finger */
819
+ readonly MultiFinger: "#MULTI_FINGER";
820
+ /** en: Full Hand */
821
+ readonly FullHand: "#FULL_HAND";
822
+ /** en: Cross Hand */
823
+ readonly CrossHand: "#CROSS_HAND";
824
+ /** en: Gimmick */
825
+ readonly Gimmick: "#GIMMICK";
826
+ /** en: Collaboration */
827
+ readonly Collaboration: "#COLLABORATION";
754
828
  /** en: Report */
755
829
  readonly Report: "#REPORT";
756
830
  /** en: Reason */
@@ -35,6 +35,8 @@ export const Text = {
35
35
  Engine: '#ENGINE',
36
36
  /** en: Replay */
37
37
  Replay: '#REPLAY',
38
+ /** en: User */
39
+ User: '#USER',
38
40
  /** en: Room */
39
41
  Room: '#ROOM',
40
42
  /** en: Thumbnail */
@@ -115,6 +117,10 @@ export const Text = {
115
117
  Good: '#GOOD',
116
118
  /** en: Miss */
117
119
  Miss: '#MISS',
120
+ /** en: Judgment */
121
+ Judgment: '#JUDGMENT',
122
+ /** en: Accuracy */
123
+ Accuracy: '#ACCURACY',
118
124
  /** en: Filter */
119
125
  Filter: '#FILTER',
120
126
  /** en: Sort */
@@ -123,6 +129,8 @@ export const Text = {
123
129
  Keywords: '#KEYWORDS',
124
130
  /** en: Name */
125
131
  Name: '#NAME',
132
+ /** en: Source */
133
+ Source: '#SOURCE',
126
134
  /** en: Rating */
127
135
  Rating: '#RATING',
128
136
  /** en: Minimum Rating */
@@ -139,6 +147,10 @@ export const Text = {
139
147
  Time: '#TIME',
140
148
  /** en: Author */
141
149
  Author: '#AUTHOR',
150
+ /** en: Coauthor */
151
+ Coauthor: '#COAUTHOR',
152
+ /** en: Collaborator */
153
+ Collaborator: '#COLLABORATOR',
142
154
  /** en: Description */
143
155
  Description: '#DESCRIPTION',
144
156
  /** en: Genre */
@@ -169,6 +181,10 @@ export const Text = {
169
181
  Region: '#REGION',
170
182
  /** en: Tag */
171
183
  Tag: '#TAG',
184
+ /** en: Include Tag */
185
+ IncludeTag: '#INCLUDE_TAG',
186
+ /** en: Exclude Tag */
187
+ ExcludeTag: '#EXCLUDE_TAG',
172
188
  /** en: Content */
173
189
  Content: '#CONTENT',
174
190
  /** en: Comment */
@@ -181,8 +197,6 @@ export const Text = {
181
197
  Role: '#ROLE',
182
198
  /** en: Permission */
183
199
  Permission: '#PERMISSION',
184
- /** en: User */
185
- User: '#USER',
186
200
  /** en: Level Speed */
187
201
  Speed: '#SPEED',
188
202
  /** en: Mirror Level */
@@ -197,6 +211,8 @@ export const Text = {
197
211
  JudgmentLoose: '#JUDGMENT_LOOSE',
198
212
  /** en: Auto SFX */
199
213
  EffectAuto: '#EFFECT_AUTO',
214
+ /** en: Haptic */
215
+ Haptic: '#HAPTIC',
200
216
  /** en: Stage */
201
217
  Stage: '#STAGE',
202
218
  /** en: Stage Position */
@@ -411,6 +427,20 @@ export const Text = {
411
427
  PreviewMeasure: '#PREVIEW_MEASURE',
412
428
  /** en: Preview Combo */
413
429
  PreviewCombo: '#PREVIEW_COMBO',
430
+ /** en: UI */
431
+ Ui: '#UI',
432
+ /** en: UI Metric */
433
+ UiMetric: '#UI_METRIC',
434
+ /** en: UI Primary Metric */
435
+ UiPrimaryMetric: '#UI_PRIMARY_METRIC',
436
+ /** en: UI Secondary Metric */
437
+ UiSecondaryMetric: '#UI_SECONDARY_METRIC',
438
+ /** en: UI Judgment */
439
+ UiJudgment: '#UI_JUDGMENT',
440
+ /** en: UI Combo */
441
+ UiCombo: '#UI_Combo',
442
+ /** en: UI Menu */
443
+ UiMenu: '#UI_Menu',
414
444
  /** en: ON */
415
445
  On: '#ON',
416
446
  /** en: OFF */
@@ -517,6 +547,28 @@ export const Text = {
517
547
  Special: '#SPECIAL',
518
548
  /** en: Append */
519
549
  Append: '#APPEND',
550
+ /** en: Enter post... */
551
+ PostPlaceholder: '#POST_PLACEHOLDER',
552
+ /** en: Enter playlist... */
553
+ PlaylistPlaceholder: '#PLAYLIST_PLACEHOLDER',
554
+ /** en: Enter level... */
555
+ LevelPlaceholder: '#LEVEL_PLACEHOLDER',
556
+ /** en: Enter skin... */
557
+ SkinPlaceholder: '#SKIN_PLACEHOLDER',
558
+ /** en: Enter background... */
559
+ BackgroundPlaceholder: '#BACKGROUND_PLACEHOLDER',
560
+ /** en: Enter SFX... */
561
+ EffectPlaceholder: '#EFFECT_PLACEHOLDER',
562
+ /** en: Enter particle... */
563
+ ParticlePlaceholder: '#PARTICLE_PLACEHOLDER',
564
+ /** en: Enter engine... */
565
+ EnginePlaceholder: '#ENGINE_PLACEHOLDER',
566
+ /** en: Enter replay... */
567
+ ReplayPlaceholder: '#REPLAY_PLACEHOLDER',
568
+ /** en: Enter user... */
569
+ UserPlaceholder: '#USER_PLACEHOLDER',
570
+ /** en: Enter room... */
571
+ RoomPlaceholder: '#ROOM_PLACEHOLDER',
520
572
  /** en: Enter keywords... */
521
573
  KeywordsPlaceholder: '#KEYWORDS_PLACEHOLDER',
522
574
  /** en: Enter name... */
@@ -537,6 +589,10 @@ export const Text = {
537
589
  TimePlaceholder: '#TIME_PLACEHOLDER',
538
590
  /** en: Enter author... */
539
591
  AuthorPlaceholder: '#AUTHOR_PLACEHOLDER',
592
+ /** en: Enter coauthor... */
593
+ CoauthorPlaceholder: '#COAUTHOR_PLACEHOLDER',
594
+ /** en: Enter collaborator... */
595
+ CollaboratorPlaceholder: '#COLLABORATOR_PLACEHOLDER',
540
596
  /** en: Enter description... */
541
597
  DescriptionPlaceholder: '#DESCRIPTION_PLACEHOLDER',
542
598
  /** en: Enter genre... */
@@ -575,51 +631,49 @@ export const Text = {
575
631
  RolePlaceholder: '#ROLE_PLACEHOLDER',
576
632
  /** en: Enter permission... */
577
633
  PermissionPlaceholder: '#PERMISSION_PLACEHOLDER',
578
- /** en: Enter user... */
579
- UserPlaceholder: '#USER_PLACEHOLDER',
580
634
  /** en: {0}% */
581
635
  PercentageUnit: '#PERCENTAGE_UNIT',
582
- /** en: {0} yr */
636
+ /** en: {0}yr */
583
637
  YearUnit: '#YEAR_UNIT',
584
- /** en: {0} mo */
638
+ /** en: {0}mo */
585
639
  MonthUnit: '#MONTH_UNIT',
586
- /** en: {0} d */
640
+ /** en: {0}d */
587
641
  DayUnit: '#DAY_UNIT',
588
- /** en: {0} h */
642
+ /** en: {0}h */
589
643
  HourUnit: '#HOUR_UNIT',
590
- /** en: {0} m */
644
+ /** en: {0}m */
591
645
  MinuteUnit: '#MINUTE_UNIT',
592
- /** en: {0} s */
646
+ /** en: {0}s */
593
647
  SecondUnit: '#SECOND_UNIT',
594
- /** en: {0} ms */
648
+ /** en: {0}ms */
595
649
  MillisecondUnit: '#MILLISECOND_UNIT',
596
- /** en: {0} yr ago */
650
+ /** en: {0}yr ago */
597
651
  YearPast: '#YEAR_PAST',
598
- /** en: {0} mo ago */
652
+ /** en: {0}mo ago */
599
653
  MonthPast: '#MONTH_PAST',
600
- /** en: {0} d ago */
654
+ /** en: {0}d ago */
601
655
  DayPast: '#DAY_PAST',
602
- /** en: {0} h ago */
656
+ /** en: {0}h ago */
603
657
  HourPast: '#HOUR_PAST',
604
- /** en: {0} m ago */
658
+ /** en: {0}m ago */
605
659
  MinutePast: '#MINUTE_PAST',
606
- /** en: {0} s ago */
660
+ /** en: {0}s ago */
607
661
  SecondPast: '#SECOND_PAST',
608
- /** en: {0} ms ago */
662
+ /** en: {0}ms ago */
609
663
  MillisecondPast: '#MILLISECOND_PAST',
610
- /** en: In {0} yr */
664
+ /** en: In {0}yr */
611
665
  YearFuture: '#YEAR_FUTURE',
612
- /** en: In {0} mo */
666
+ /** en: In {0}mo */
613
667
  MonthFuture: '#MONTH_FUTURE',
614
- /** en: In {0} d */
668
+ /** en: In {0}d */
615
669
  DayFuture: '#DAY_FUTURE',
616
- /** en: In {0} h */
670
+ /** en: In {0}h */
617
671
  HourFuture: '#HOUR_FUTURE',
618
- /** en: In {0} m */
672
+ /** en: In {0}m */
619
673
  MinuteFuture: '#MINUTE_FUTURE',
620
- /** en: In {0} s */
674
+ /** en: In {0}s */
621
675
  SecondFuture: '#SECOND_FUTURE',
622
- /** en: In {0} ms */
676
+ /** en: In {0}ms */
623
677
  MillisecondFuture: '#MILLISECOND_FUTURE',
624
678
  /** en: Tap */
625
679
  Tap: '#TAP',
@@ -661,6 +715,8 @@ export const Text = {
661
715
  Featured: '#FEATURED',
662
716
  /** en: Competitive */
663
717
  Competitive: '#COMPETITIVE',
718
+ /** en: Tournament */
719
+ Tournament: '#TOURNAMENT',
664
720
  /** en: Holiday */
665
721
  Holiday: '#HOLIDAY',
666
722
  /** en: Limited */
@@ -747,10 +803,28 @@ export const Text = {
747
803
  ShortVersion: '#SHORT_VERSION',
748
804
  /** en: Long Version */
749
805
  LongVersion: '#LONG_VERSION',
806
+ /** en: Cut Version */
807
+ CutVersion: '#CUT_VERSION',
750
808
  /** en: Full Version */
751
809
  FullVersion: '#FULL_VERSION',
810
+ /** en: Extended Version */
811
+ ExtendedVersion: '#EXTENDED_VERSION',
752
812
  /** en: Live Version */
753
813
  LiveVersion: '#LIVE_VERSION',
814
+ /** en: Medley */
815
+ Medley: '#MEDLEY',
816
+ /** en: Explicit */
817
+ Explicit: '#EXPLICIT',
818
+ /** en: Multi Finger */
819
+ MultiFinger: '#MULTI_FINGER',
820
+ /** en: Full Hand */
821
+ FullHand: '#FULL_HAND',
822
+ /** en: Cross Hand */
823
+ CrossHand: '#CROSS_HAND',
824
+ /** en: Gimmick */
825
+ Gimmick: '#GIMMICK',
826
+ /** en: Collaboration */
827
+ Collaboration: '#COLLABORATION',
754
828
  /** en: Report */
755
829
  Report: '#REPORT',
756
830
  /** en: Reason */
@@ -0,0 +1 @@
1
+ export { UserItem } from './item.js';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import { Tag } from '../tag.js';
2
+ export type UserItem = {
3
+ name: string;
4
+ source?: string;
5
+ title: string;
6
+ handle?: string;
7
+ tags: Tag[];
8
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,6 +1,6 @@
1
1
  import { Icon } from '../core/icon.js';
2
2
  import { LocalizationText } from './localization.js';
3
3
  export type DatabaseTag = {
4
- title: LocalizationText;
4
+ title?: LocalizationText;
5
5
  icon?: Icon | (string & {});
6
6
  };
@@ -1,4 +1,4 @@
1
1
  export const version = {
2
- package: '7.14.0',
3
- sonolus: '1.0.2',
2
+ package: '7.15.1',
3
+ sonolus: '1.1.1',
4
4
  };
@@ -1,2 +1,2 @@
1
- export declare const compress: <T>(data: T) => Promise<Buffer>;
2
- export declare const compressSync: <T>(data: T) => Buffer;
1
+ export declare const compress: <T>(data: T) => Promise<Buffer<ArrayBuffer>>;
2
+ export declare const compressSync: <T>(data: T) => Buffer<ArrayBuffer>;
@@ -1,2 +1,3 @@
1
- export declare const decompress: <T>(data: Buffer) => Promise<T>;
2
- export declare const decompressSync: <T>(data: Buffer) => T;
1
+ import { InputType } from 'node:zlib';
2
+ export declare const decompress: <T>(data: InputType) => Promise<T>;
3
+ export declare const decompressSync: <T>(data: InputType) => T;
@@ -1 +1,2 @@
1
- export declare const hash: (buffer: Buffer) => string;
1
+ import { BinaryLike } from 'node:crypto';
2
+ export declare const hash: (buffer: BinaryLike) => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonolus/core",
3
- "version": "7.14.2",
3
+ "version": "7.15.1",
4
4
  "description": "Core library for Sonolus",
5
5
  "author": "NonSpicyBurrito",
6
6
  "repository": "github:Sonolus/sonolus-core",
@@ -25,13 +25,13 @@
25
25
  "build": "tsc -p ."
26
26
  },
27
27
  "devDependencies": {
28
- "@eslint/js": "^9.31.0",
29
- "@types/node": "^22.16.5",
30
- "eslint": "^9.31.0",
28
+ "@eslint/js": "^10.0.1",
29
+ "@types/node": "^22.19.15",
30
+ "eslint": "^10.0.3",
31
31
  "eslint-config-prettier": "^10.1.8",
32
- "prettier": "^3.6.2",
33
- "prettier-plugin-organize-imports": "^4.2.0",
34
- "typescript": "~5.8.3",
35
- "typescript-eslint": "^8.38.0"
32
+ "prettier": "^3.8.1",
33
+ "prettier-plugin-organize-imports": "^4.3.0",
34
+ "typescript": "~5.9.3",
35
+ "typescript-eslint": "^8.57.1"
36
36
  }
37
37
  }