sa2kit 3.2.0 → 3.2.2

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 (227) hide show
  1. package/dist/CollisionBalls-DgKtscU2.d.mts +41 -0
  2. package/dist/CollisionBalls-DgKtscU2.d.ts +41 -0
  3. package/dist/ConfigService-Oga_zFRS.d.mts +262 -0
  4. package/dist/ConfigService-Oga_zFRS.d.ts +262 -0
  5. package/dist/UniversalFileService-CC4d3wkc.d.ts +139 -0
  6. package/dist/UniversalFileService-CzAE_G4V.d.mts +139 -0
  7. package/dist/boothVaultService-lKcnyA-u.d.mts +83 -0
  8. package/dist/boothVaultService-lKcnyA-u.d.ts +83 -0
  9. package/dist/business/audioDetection/index.d.mts +2 -0
  10. package/dist/business/audioDetection/index.d.ts +2 -0
  11. package/dist/business/audioDetection/index.js +1244 -0
  12. package/dist/business/audioDetection/index.js.map +1 -0
  13. package/dist/business/audioDetection/index.mjs +1227 -0
  14. package/dist/business/audioDetection/index.mjs.map +1 -0
  15. package/dist/business/calendar/index.d.mts +6 -0
  16. package/dist/business/calendar/index.d.ts +6 -0
  17. package/dist/business/calendar/index.js +7433 -0
  18. package/dist/business/calendar/index.js.map +1 -0
  19. package/dist/business/calendar/index.mjs +7257 -0
  20. package/dist/business/calendar/index.mjs.map +1 -0
  21. package/dist/business/calendar/routes/index.d.mts +191 -0
  22. package/dist/business/calendar/routes/index.d.ts +191 -0
  23. package/dist/business/calendar/routes/index.js +844 -0
  24. package/dist/business/calendar/routes/index.js.map +1 -0
  25. package/dist/business/calendar/routes/index.mjs +826 -0
  26. package/dist/business/calendar/routes/index.mjs.map +1 -0
  27. package/dist/business/festivalCard/index.d.mts +4 -0
  28. package/dist/business/festivalCard/index.d.ts +4 -0
  29. package/dist/business/festivalCard/index.js +1492 -0
  30. package/dist/business/festivalCard/index.js.map +1 -0
  31. package/dist/business/festivalCard/index.mjs +1475 -0
  32. package/dist/business/festivalCard/index.mjs.map +1 -0
  33. package/dist/business/festivalCard/routes/index.d.mts +42 -0
  34. package/dist/business/festivalCard/routes/index.d.ts +42 -0
  35. package/dist/business/festivalCard/routes/index.js +361 -0
  36. package/dist/business/festivalCard/routes/index.js.map +1 -0
  37. package/dist/business/festivalCard/routes/index.mjs +356 -0
  38. package/dist/business/festivalCard/routes/index.mjs.map +1 -0
  39. package/dist/business/festivalCard/server/index.d.mts +120 -0
  40. package/dist/business/festivalCard/server/index.d.ts +120 -0
  41. package/dist/business/festivalCard/server/index.js +272 -0
  42. package/dist/business/festivalCard/server/index.js.map +1 -0
  43. package/dist/business/festivalCard/server/index.mjs +265 -0
  44. package/dist/business/festivalCard/server/index.mjs.map +1 -0
  45. package/dist/business/index.d.mts +34 -0
  46. package/dist/business/index.d.ts +34 -0
  47. package/dist/business/index.js +29282 -0
  48. package/dist/business/index.js.map +1 -0
  49. package/dist/business/index.mjs +29237 -0
  50. package/dist/business/index.mjs.map +1 -0
  51. package/dist/business/mikuContest/ui/web/index.d.mts +2 -0
  52. package/dist/business/mikuContest/ui/web/index.d.ts +2 -0
  53. package/dist/business/mikuContest/ui/web/index.js +353 -0
  54. package/dist/business/mikuContest/ui/web/index.js.map +1 -0
  55. package/dist/business/mikuContest/ui/web/index.mjs +343 -0
  56. package/dist/business/mikuContest/ui/web/index.mjs.map +1 -0
  57. package/dist/business/mikuFireworks3D/index.d.mts +2 -0
  58. package/dist/business/mikuFireworks3D/index.d.ts +2 -0
  59. package/dist/business/mikuFireworks3D/index.js +1267 -0
  60. package/dist/business/mikuFireworks3D/index.js.map +1 -0
  61. package/dist/business/mikuFireworks3D/index.mjs +1228 -0
  62. package/dist/business/mikuFireworks3D/index.mjs.map +1 -0
  63. package/dist/business/mikuFusionGame/index.d.mts +2 -0
  64. package/dist/business/mikuFusionGame/index.d.ts +2 -0
  65. package/dist/business/mikuFusionGame/index.js +1208 -0
  66. package/dist/business/mikuFusionGame/index.js.map +1 -0
  67. package/dist/business/mikuFusionGame/index.mjs +1195 -0
  68. package/dist/business/mikuFusionGame/index.mjs.map +1 -0
  69. package/dist/business/mmd/admin/index.d.mts +487 -0
  70. package/dist/business/mmd/admin/index.d.ts +487 -0
  71. package/dist/business/mmd/admin/index.js +1058 -0
  72. package/dist/business/mmd/admin/index.js.map +1 -0
  73. package/dist/business/mmd/admin/index.mjs +1027 -0
  74. package/dist/business/mmd/admin/index.mjs.map +1 -0
  75. package/dist/business/mmd/index.d.mts +5 -0
  76. package/dist/business/mmd/index.d.ts +5 -0
  77. package/dist/business/mmd/index.js +10119 -0
  78. package/dist/business/mmd/index.js.map +1 -0
  79. package/dist/business/mmd/index.mjs +10028 -0
  80. package/dist/business/mmd/index.mjs.map +1 -0
  81. package/dist/business/mmd/server/index.d.mts +139 -0
  82. package/dist/business/mmd/server/index.d.ts +139 -0
  83. package/dist/business/mmd/server/index.js +424 -0
  84. package/dist/business/mmd/server/index.js.map +1 -0
  85. package/dist/business/mmd/server/index.mjs +404 -0
  86. package/dist/business/mmd/server/index.mjs.map +1 -0
  87. package/dist/business/music/index.d.mts +3 -0
  88. package/dist/business/music/index.d.ts +3 -0
  89. package/dist/business/music/index.js +830 -0
  90. package/dist/business/music/index.js.map +1 -0
  91. package/dist/business/music/index.mjs +809 -0
  92. package/dist/business/music/index.mjs.map +1 -0
  93. package/dist/business/music/server/index.d.mts +1 -0
  94. package/dist/business/music/server/index.d.ts +1 -0
  95. package/dist/business/music/server/index.js +194 -0
  96. package/dist/business/music/server/index.js.map +1 -0
  97. package/dist/business/music/server/index.mjs +182 -0
  98. package/dist/business/music/server/index.mjs.map +1 -0
  99. package/dist/business/navigation/index.d.mts +2 -0
  100. package/dist/business/navigation/index.d.ts +2 -0
  101. package/dist/business/navigation/index.js +453 -0
  102. package/dist/business/navigation/index.js.map +1 -0
  103. package/dist/business/navigation/index.mjs +443 -0
  104. package/dist/business/navigation/index.mjs.map +1 -0
  105. package/dist/business/portfolio/index.d.mts +3 -0
  106. package/dist/business/portfolio/index.d.ts +3 -0
  107. package/dist/business/portfolio/index.js +736 -0
  108. package/dist/business/portfolio/index.js.map +1 -0
  109. package/dist/business/portfolio/index.mjs +724 -0
  110. package/dist/business/portfolio/index.mjs.map +1 -0
  111. package/dist/business/qqbot/server/index.d.mts +167 -0
  112. package/dist/business/qqbot/server/index.d.ts +167 -0
  113. package/dist/business/qqbot/server/index.js +394 -0
  114. package/dist/business/qqbot/server/index.js.map +1 -0
  115. package/dist/business/qqbot/server/index.mjs +385 -0
  116. package/dist/business/qqbot/server/index.mjs.map +1 -0
  117. package/dist/business/qqbot/ui/web/index.d.mts +10 -0
  118. package/dist/business/qqbot/ui/web/index.d.ts +10 -0
  119. package/dist/business/qqbot/ui/web/index.js +105 -0
  120. package/dist/business/qqbot/ui/web/index.js.map +1 -0
  121. package/dist/business/qqbot/ui/web/index.mjs +99 -0
  122. package/dist/business/qqbot/ui/web/index.mjs.map +1 -0
  123. package/dist/business/screenReceiver/index.d.mts +2 -0
  124. package/dist/business/screenReceiver/index.d.ts +2 -0
  125. package/dist/business/screenReceiver/index.js +281 -0
  126. package/dist/business/screenReceiver/index.js.map +1 -0
  127. package/dist/business/screenReceiver/index.mjs +273 -0
  128. package/dist/business/screenReceiver/index.mjs.map +1 -0
  129. package/dist/business/testYourself/admin/index.d.mts +58 -0
  130. package/dist/business/testYourself/admin/index.d.ts +58 -0
  131. package/dist/business/testYourself/admin/index.js +1009 -0
  132. package/dist/business/testYourself/admin/index.js.map +1 -0
  133. package/dist/business/testYourself/admin/index.mjs +1002 -0
  134. package/dist/business/testYourself/admin/index.mjs.map +1 -0
  135. package/dist/business/testYourself/index.d.mts +6 -0
  136. package/dist/business/testYourself/index.d.ts +6 -0
  137. package/dist/business/testYourself/index.js +2551 -0
  138. package/dist/business/testYourself/index.js.map +1 -0
  139. package/dist/business/testYourself/index.mjs +2531 -0
  140. package/dist/business/testYourself/index.mjs.map +1 -0
  141. package/dist/business/testYourself/server/index.d.mts +1029 -0
  142. package/dist/business/testYourself/server/index.d.ts +1029 -0
  143. package/dist/business/testYourself/server/index.js +825 -0
  144. package/dist/business/testYourself/server/index.js.map +1 -0
  145. package/dist/business/testYourself/server/index.mjs +816 -0
  146. package/dist/business/testYourself/server/index.mjs.map +1 -0
  147. package/dist/business/vocaloidBooth/index.d.mts +2 -0
  148. package/dist/business/vocaloidBooth/index.d.ts +2 -0
  149. package/dist/business/vocaloidBooth/index.js +172 -0
  150. package/dist/business/vocaloidBooth/index.js.map +1 -0
  151. package/dist/business/vocaloidBooth/index.mjs +166 -0
  152. package/dist/business/vocaloidBooth/index.mjs.map +1 -0
  153. package/dist/business/vocaloidBooth/server/index.d.mts +111 -0
  154. package/dist/business/vocaloidBooth/server/index.d.ts +111 -0
  155. package/dist/business/vocaloidBooth/server/index.js +247 -0
  156. package/dist/business/vocaloidBooth/server/index.js.map +1 -0
  157. package/dist/business/vocaloidBooth/server/index.mjs +237 -0
  158. package/dist/business/vocaloidBooth/server/index.mjs.map +1 -0
  159. package/dist/business/vocaloidBooth/web/index.d.mts +45 -0
  160. package/dist/business/vocaloidBooth/web/index.d.ts +45 -0
  161. package/dist/business/vocaloidBooth/web/index.js +376 -0
  162. package/dist/business/vocaloidBooth/web/index.js.map +1 -0
  163. package/dist/business/vocaloidBooth/web/index.mjs +362 -0
  164. package/dist/business/vocaloidBooth/web/index.mjs.map +1 -0
  165. package/dist/common/auth/components/index.js +18 -0
  166. package/dist/common/auth/components/index.js.map +1 -1
  167. package/dist/common/auth/components/index.mjs +18 -0
  168. package/dist/common/auth/components/index.mjs.map +1 -1
  169. package/dist/common/auth/server/index.d.mts +86 -3
  170. package/dist/common/auth/server/index.d.ts +86 -3
  171. package/dist/common/auth/server/index.js +614 -1
  172. package/dist/common/auth/server/index.js.map +1 -1
  173. package/dist/common/auth/server/index.mjs +599 -3
  174. package/dist/common/auth/server/index.mjs.map +1 -1
  175. package/dist/config-BQp3qLAL.d.mts +22 -0
  176. package/dist/config-BQp3qLAL.d.ts +22 -0
  177. package/dist/drizzle-schema-BNhqj2AZ.d.mts +1114 -0
  178. package/dist/drizzle-schema-BNhqj2AZ.d.ts +1114 -0
  179. package/dist/festivalCardService-D60G-sgr.d.mts +13 -0
  180. package/dist/festivalCardService-DnLyJpRh.d.ts +13 -0
  181. package/dist/index-BMgdH5dL.d.mts +1716 -0
  182. package/dist/index-BO9_Do5y.d.mts +93 -0
  183. package/dist/index-BO9_Do5y.d.ts +93 -0
  184. package/dist/index-BSmd4ikf.d.ts +76 -0
  185. package/dist/index-BSwvWYp2.d.mts +2632 -0
  186. package/dist/index-Bo_fW3Tl.d.mts +105 -0
  187. package/dist/index-Bo_fW3Tl.d.ts +105 -0
  188. package/dist/index-BrKazb8M.d.mts +148 -0
  189. package/dist/index-BrKazb8M.d.ts +148 -0
  190. package/dist/index-Bzh6QE4P.d.ts +25 -0
  191. package/dist/index-C5Ic6eSR.d.mts +25 -0
  192. package/dist/index-C8i9SIxk.d.ts +2632 -0
  193. package/dist/index-C_GhVhOT.d.mts +109 -0
  194. package/dist/index-C_GhVhOT.d.ts +109 -0
  195. package/dist/index-Cb3UEpG4.d.mts +101 -0
  196. package/dist/index-CjlkUj01.d.mts +103 -0
  197. package/dist/index-CucXCBNR.d.mts +302 -0
  198. package/dist/index-CucXCBNR.d.ts +302 -0
  199. package/dist/index-DLLPTprx.d.mts +1522 -0
  200. package/dist/index-DRiZy0dv.d.mts +525 -0
  201. package/dist/index-DRiZy0dv.d.ts +525 -0
  202. package/dist/index-Dc_I2t0P.d.mts +103 -0
  203. package/dist/index-DowAHRIP.d.mts +250 -0
  204. package/dist/index-DowAHRIP.d.ts +250 -0
  205. package/dist/index-Dpq_5H2n.d.ts +103 -0
  206. package/dist/index-Ds2M_9zb.d.ts +101 -0
  207. package/dist/index-IXMAeTtN.d.ts +1716 -0
  208. package/dist/index-VFDbZxVM.d.ts +1522 -0
  209. package/dist/index-jadkp96n.d.ts +103 -0
  210. package/dist/index-r2-zE3iC.d.mts +76 -0
  211. package/dist/index.d.mts +10682 -0
  212. package/dist/index.d.ts +10682 -0
  213. package/dist/index.js +38233 -0
  214. package/dist/index.js.map +1 -0
  215. package/dist/index.mjs +37959 -0
  216. package/dist/index.mjs.map +1 -0
  217. package/dist/types-B6B210gX.d.mts +270 -0
  218. package/dist/types-B6B210gX.d.ts +270 -0
  219. package/dist/types-B7voqjjA.d.mts +51 -0
  220. package/dist/types-B7voqjjA.d.ts +51 -0
  221. package/dist/types-Bdnte5EN.d.mts +292 -0
  222. package/dist/types-C2z_QQPI.d.mts +70 -0
  223. package/dist/types-C2z_QQPI.d.ts +70 -0
  224. package/dist/types-HorDyIRv.d.mts +303 -0
  225. package/dist/types-HorDyIRv.d.ts +303 -0
  226. package/dist/types-_rFX1atk.d.ts +292 -0
  227. package/package.json +10 -2
@@ -0,0 +1,302 @@
1
+ import * as React from 'react';
2
+ import React__default from 'react';
3
+
4
+ type FireworkKind = 'normal' | 'miku' | 'avatar';
5
+ interface DanmakuMessage {
6
+ id: string;
7
+ userId?: string;
8
+ text: string;
9
+ color?: string;
10
+ timestamp: number;
11
+ }
12
+ interface FireworkPosition {
13
+ x: number;
14
+ y: number;
15
+ z: number;
16
+ }
17
+ interface FireworkLaunchPayload {
18
+ kind: FireworkKind;
19
+ position?: FireworkPosition;
20
+ color?: string;
21
+ avatarUrl?: string;
22
+ message?: DanmakuMessage;
23
+ }
24
+ interface FireworkEngineOptions {
25
+ maxParticles?: number;
26
+ maxActiveFireworks?: number;
27
+ onError?: (error: Error) => void;
28
+ onFpsReport?: (fps: number) => void;
29
+ }
30
+ interface MikuFireworks3DProps {
31
+ width?: number | string;
32
+ height?: number | string;
33
+ className?: string;
34
+ defaultKind?: FireworkKind;
35
+ autoLaunchOnDanmaku?: boolean;
36
+ maxParticles?: number;
37
+ maxActiveFireworks?: number;
38
+ defaultAvatarUrl?: string;
39
+ realtime?: FireworksRealtimeConfig;
40
+ onLaunch?: (payload: FireworkLaunchPayload) => void;
41
+ onDanmakuSend?: (message: DanmakuMessage) => void;
42
+ onError?: (error: Error) => void;
43
+ onFpsReport?: (fps: number) => void;
44
+ onRealtimeStateChange?: (state: FireworksRealtimeState) => void;
45
+ }
46
+ interface DanmakuSendResult {
47
+ message: DanmakuMessage;
48
+ launchKind?: FireworkKind;
49
+ }
50
+ interface DanmakuControllerOptions {
51
+ onSend?: (message: DanmakuMessage) => void;
52
+ }
53
+ interface FireworksRealtimeUser {
54
+ userId: string;
55
+ nickname?: string;
56
+ avatarUrl?: string;
57
+ }
58
+ interface FireworksRealtimeConfig {
59
+ enabled?: boolean;
60
+ serverUrl: string;
61
+ roomId: string;
62
+ user: FireworksRealtimeUser;
63
+ protocols?: string | string[];
64
+ reconnect?: boolean;
65
+ reconnectIntervalMs?: number;
66
+ }
67
+ interface FireworksRealtimeState {
68
+ connected: boolean;
69
+ joined: boolean;
70
+ onlineCount: number;
71
+ roomId?: string;
72
+ }
73
+
74
+ declare function MikuFireworks3D({ width, height, className, defaultKind, autoLaunchOnDanmaku, maxParticles, maxActiveFireworks, defaultAvatarUrl, onLaunch, onDanmakuSend, onError, onFpsReport, onRealtimeStateChange, realtime, }: MikuFireworks3DProps): React__default.JSX.Element;
75
+
76
+ interface FireworksCanvasProps {
77
+ canvasRef: React__default.RefObject<HTMLCanvasElement>;
78
+ }
79
+ declare function FireworksCanvas({ canvasRef }: FireworksCanvasProps): React__default.JSX.Element;
80
+
81
+ interface FireworksControlPanelProps {
82
+ selectedKind: FireworkKind;
83
+ onKindChange: (kind: FireworkKind) => void;
84
+ autoLaunchOnDanmaku: boolean;
85
+ onAutoLaunchChange: (value: boolean) => void;
86
+ avatarUrl: string;
87
+ onAvatarUrlChange: (value: string) => void;
88
+ onLaunch: () => void;
89
+ fps: number;
90
+ realtimeConnected?: boolean;
91
+ onlineCount?: number;
92
+ }
93
+ declare function FireworksControlPanel({ selectedKind, onKindChange, autoLaunchOnDanmaku, onAutoLaunchChange, avatarUrl, onAvatarUrlChange, onLaunch, fps, realtimeConnected, onlineCount, }: FireworksControlPanelProps): React__default.JSX.Element;
94
+
95
+ interface DanmakuPanelProps {
96
+ onSend: (text: string) => void;
97
+ }
98
+ declare function DanmakuPanel({ onSend }: DanmakuPanelProps): React__default.JSX.Element;
99
+
100
+ interface RealtimeDanmakuEvent {
101
+ id: string;
102
+ roomId: string;
103
+ text: string;
104
+ color?: string;
105
+ kind?: FireworkKind;
106
+ user: FireworksRealtimeUser;
107
+ timestamp: number;
108
+ }
109
+ interface RealtimeFireworkEvent {
110
+ id: string;
111
+ roomId: string;
112
+ payload: FireworkLaunchPayload;
113
+ user: FireworksRealtimeUser;
114
+ timestamp: number;
115
+ }
116
+ type ServerMessage = {
117
+ type: 'joined';
118
+ roomId: string;
119
+ onlineCount: number;
120
+ self: FireworksRealtimeUser;
121
+ } | {
122
+ type: 'room.snapshot';
123
+ roomId: string;
124
+ users: FireworksRealtimeUser[];
125
+ danmakuHistory: RealtimeDanmakuEvent[];
126
+ fireworkHistory: RealtimeFireworkEvent[];
127
+ } | {
128
+ type: 'room.user_joined';
129
+ roomId: string;
130
+ user: FireworksRealtimeUser;
131
+ onlineCount: number;
132
+ } | {
133
+ type: 'room.user_left';
134
+ roomId: string;
135
+ userId: string;
136
+ onlineCount: number;
137
+ } | {
138
+ type: 'danmaku.broadcast';
139
+ roomId: string;
140
+ event: RealtimeDanmakuEvent;
141
+ } | {
142
+ type: 'firework.broadcast';
143
+ roomId: string;
144
+ event: RealtimeFireworkEvent;
145
+ } | {
146
+ type: 'error';
147
+ code: string;
148
+ message: string;
149
+ } | {
150
+ type: 'pong';
151
+ ts: number;
152
+ };
153
+ interface WebSocketTransportCallbacks {
154
+ onStateChange?: (state: FireworksRealtimeState) => void;
155
+ onDanmakuBroadcast?: (event: RealtimeDanmakuEvent) => void;
156
+ onFireworkBroadcast?: (event: RealtimeFireworkEvent) => void;
157
+ onSnapshot?: (snapshot: Extract<ServerMessage, {
158
+ type: 'room.snapshot';
159
+ }>) => void;
160
+ onError?: (error: Error) => void;
161
+ }
162
+ declare class WebSocketTransport {
163
+ private socket;
164
+ private reconnectTimer;
165
+ private isManualClose;
166
+ private readonly pendingQueue;
167
+ private readonly config;
168
+ private readonly callbacks;
169
+ private state;
170
+ constructor(config: FireworksRealtimeConfig, callbacks?: WebSocketTransportCallbacks);
171
+ connect(): void;
172
+ disconnect(): void;
173
+ sendDanmaku(payload: {
174
+ text: string;
175
+ color?: string;
176
+ kind?: FireworkKind;
177
+ }): void;
178
+ sendFirework(payload: FireworkLaunchPayload): void;
179
+ getState(): FireworksRealtimeState;
180
+ private send;
181
+ private updateState;
182
+ private handleServerMessage;
183
+ private scheduleReconnect;
184
+ private flushPendingQueue;
185
+ }
186
+
187
+ interface UseFireworksEngineOptions extends FireworkEngineOptions {
188
+ onLaunch?: (payload: FireworkLaunchPayload) => void;
189
+ }
190
+ declare function useFireworksEngine(options?: UseFireworksEngineOptions): {
191
+ containerRef: React.RefObject<HTMLDivElement>;
192
+ canvasRef: React.RefObject<HTMLCanvasElement>;
193
+ launch: (payload: FireworkLaunchPayload) => void;
194
+ fps: number;
195
+ engineReady: boolean;
196
+ pendingLaunchCount: number;
197
+ };
198
+
199
+ interface DanmakuOverlayItem extends DanmakuMessage {
200
+ track: number;
201
+ durationMs: number;
202
+ }
203
+ interface SendDanmakuOptions {
204
+ optimistic?: boolean;
205
+ }
206
+ declare function useDanmakuController(options?: DanmakuControllerOptions): {
207
+ items: DanmakuOverlayItem[];
208
+ send: (text: string, color?: string, sendOptions?: SendDanmakuOptions) => DanmakuSendResult | null;
209
+ addIncoming: (message: DanmakuMessage) => void;
210
+ removeItem: (id: string) => void;
211
+ };
212
+
213
+ interface UseFireworksRealtimeOptions {
214
+ config?: FireworksRealtimeConfig;
215
+ enabled?: boolean;
216
+ onDanmakuBroadcast?: (event: {
217
+ text: string;
218
+ color?: string;
219
+ kind?: FireworkKind;
220
+ userId: string;
221
+ timestamp: number;
222
+ id: string;
223
+ }) => void;
224
+ onFireworkBroadcast?: (event: {
225
+ id: string;
226
+ payload: FireworkLaunchPayload;
227
+ userId: string;
228
+ timestamp: number;
229
+ }) => void;
230
+ onSnapshot?: (snapshot: {
231
+ roomId: string;
232
+ danmakuHistory: Array<{
233
+ id: string;
234
+ text: string;
235
+ color?: string;
236
+ kind?: FireworkKind;
237
+ userId: string;
238
+ timestamp: number;
239
+ }>;
240
+ fireworkHistory: Array<{
241
+ id: string;
242
+ payload: FireworkLaunchPayload;
243
+ userId: string;
244
+ timestamp: number;
245
+ }>;
246
+ }) => void;
247
+ onError?: (error: Error) => void;
248
+ onStateChange?: (state: FireworksRealtimeState) => void;
249
+ }
250
+ declare function useFireworksRealtime(options: UseFireworksRealtimeOptions): {
251
+ state: FireworksRealtimeState;
252
+ sendDanmaku: (payload: {
253
+ text: string;
254
+ color?: string;
255
+ kind?: FireworkKind;
256
+ }) => void;
257
+ sendFirework: (payload: FireworkLaunchPayload) => void;
258
+ };
259
+
260
+ declare const DEFAULT_MAX_PARTICLES = 5000;
261
+ declare const DEFAULT_MAX_ACTIVE_FIREWORKS = 12;
262
+ declare const FIREWORK_KIND_LABELS: Record<FireworkKind, string>;
263
+ declare const MIKU_PALETTE: string[];
264
+ declare const NORMAL_PALETTE: string[];
265
+ declare const DANMAKU_MAX_LENGTH = 32;
266
+ declare const DANMAKU_TRACK_COUNT = 8;
267
+
268
+ declare const index_DANMAKU_MAX_LENGTH: typeof DANMAKU_MAX_LENGTH;
269
+ declare const index_DANMAKU_TRACK_COUNT: typeof DANMAKU_TRACK_COUNT;
270
+ declare const index_DEFAULT_MAX_ACTIVE_FIREWORKS: typeof DEFAULT_MAX_ACTIVE_FIREWORKS;
271
+ declare const index_DEFAULT_MAX_PARTICLES: typeof DEFAULT_MAX_PARTICLES;
272
+ type index_DanmakuControllerOptions = DanmakuControllerOptions;
273
+ type index_DanmakuMessage = DanmakuMessage;
274
+ type index_DanmakuOverlayItem = DanmakuOverlayItem;
275
+ declare const index_DanmakuPanel: typeof DanmakuPanel;
276
+ type index_DanmakuSendResult = DanmakuSendResult;
277
+ declare const index_FIREWORK_KIND_LABELS: typeof FIREWORK_KIND_LABELS;
278
+ type index_FireworkEngineOptions = FireworkEngineOptions;
279
+ type index_FireworkKind = FireworkKind;
280
+ type index_FireworkLaunchPayload = FireworkLaunchPayload;
281
+ type index_FireworkPosition = FireworkPosition;
282
+ declare const index_FireworksCanvas: typeof FireworksCanvas;
283
+ declare const index_FireworksControlPanel: typeof FireworksControlPanel;
284
+ type index_FireworksRealtimeConfig = FireworksRealtimeConfig;
285
+ type index_FireworksRealtimeState = FireworksRealtimeState;
286
+ type index_FireworksRealtimeUser = FireworksRealtimeUser;
287
+ declare const index_MIKU_PALETTE: typeof MIKU_PALETTE;
288
+ declare const index_MikuFireworks3D: typeof MikuFireworks3D;
289
+ type index_MikuFireworks3DProps = MikuFireworks3DProps;
290
+ declare const index_NORMAL_PALETTE: typeof NORMAL_PALETTE;
291
+ type index_UseFireworksEngineOptions = UseFireworksEngineOptions;
292
+ type index_WebSocketTransport = WebSocketTransport;
293
+ declare const index_WebSocketTransport: typeof WebSocketTransport;
294
+ type index_WebSocketTransportCallbacks = WebSocketTransportCallbacks;
295
+ declare const index_useDanmakuController: typeof useDanmakuController;
296
+ declare const index_useFireworksEngine: typeof useFireworksEngine;
297
+ declare const index_useFireworksRealtime: typeof useFireworksRealtime;
298
+ declare namespace index {
299
+ export { index_DANMAKU_MAX_LENGTH as DANMAKU_MAX_LENGTH, index_DANMAKU_TRACK_COUNT as DANMAKU_TRACK_COUNT, index_DEFAULT_MAX_ACTIVE_FIREWORKS as DEFAULT_MAX_ACTIVE_FIREWORKS, index_DEFAULT_MAX_PARTICLES as DEFAULT_MAX_PARTICLES, type index_DanmakuControllerOptions as DanmakuControllerOptions, type index_DanmakuMessage as DanmakuMessage, type index_DanmakuOverlayItem as DanmakuOverlayItem, index_DanmakuPanel as DanmakuPanel, type index_DanmakuSendResult as DanmakuSendResult, index_FIREWORK_KIND_LABELS as FIREWORK_KIND_LABELS, type index_FireworkEngineOptions as FireworkEngineOptions, type index_FireworkKind as FireworkKind, type index_FireworkLaunchPayload as FireworkLaunchPayload, type index_FireworkPosition as FireworkPosition, index_FireworksCanvas as FireworksCanvas, index_FireworksControlPanel as FireworksControlPanel, type index_FireworksRealtimeConfig as FireworksRealtimeConfig, type index_FireworksRealtimeState as FireworksRealtimeState, type index_FireworksRealtimeUser as FireworksRealtimeUser, index_MIKU_PALETTE as MIKU_PALETTE, index_MikuFireworks3D as MikuFireworks3D, type index_MikuFireworks3DProps as MikuFireworks3DProps, index_NORMAL_PALETTE as NORMAL_PALETTE, type index_UseFireworksEngineOptions as UseFireworksEngineOptions, index_WebSocketTransport as WebSocketTransport, type index_WebSocketTransportCallbacks as WebSocketTransportCallbacks, index_useDanmakuController as useDanmakuController, index_useFireworksEngine as useFireworksEngine, index_useFireworksRealtime as useFireworksRealtime };
300
+ }
301
+
302
+ export { DanmakuPanel as D, FireworksCanvas as F, MikuFireworks3D as M, NORMAL_PALETTE as N, type UseFireworksEngineOptions as U, WebSocketTransport as W, FireworksControlPanel as a, type WebSocketTransportCallbacks as b, type DanmakuOverlayItem as c, useDanmakuController as d, useFireworksRealtime as e, DEFAULT_MAX_PARTICLES as f, DEFAULT_MAX_ACTIVE_FIREWORKS as g, FIREWORK_KIND_LABELS as h, index as i, MIKU_PALETTE as j, DANMAKU_MAX_LENGTH as k, DANMAKU_TRACK_COUNT as l, type FireworkKind as m, type DanmakuMessage as n, type FireworkPosition as o, type FireworkLaunchPayload as p, type FireworkEngineOptions as q, type MikuFireworks3DProps as r, type DanmakuSendResult as s, type DanmakuControllerOptions as t, useFireworksEngine as u, type FireworksRealtimeUser as v, type FireworksRealtimeConfig as w, type FireworksRealtimeState as x };
@@ -0,0 +1,302 @@
1
+ import * as React from 'react';
2
+ import React__default from 'react';
3
+
4
+ type FireworkKind = 'normal' | 'miku' | 'avatar';
5
+ interface DanmakuMessage {
6
+ id: string;
7
+ userId?: string;
8
+ text: string;
9
+ color?: string;
10
+ timestamp: number;
11
+ }
12
+ interface FireworkPosition {
13
+ x: number;
14
+ y: number;
15
+ z: number;
16
+ }
17
+ interface FireworkLaunchPayload {
18
+ kind: FireworkKind;
19
+ position?: FireworkPosition;
20
+ color?: string;
21
+ avatarUrl?: string;
22
+ message?: DanmakuMessage;
23
+ }
24
+ interface FireworkEngineOptions {
25
+ maxParticles?: number;
26
+ maxActiveFireworks?: number;
27
+ onError?: (error: Error) => void;
28
+ onFpsReport?: (fps: number) => void;
29
+ }
30
+ interface MikuFireworks3DProps {
31
+ width?: number | string;
32
+ height?: number | string;
33
+ className?: string;
34
+ defaultKind?: FireworkKind;
35
+ autoLaunchOnDanmaku?: boolean;
36
+ maxParticles?: number;
37
+ maxActiveFireworks?: number;
38
+ defaultAvatarUrl?: string;
39
+ realtime?: FireworksRealtimeConfig;
40
+ onLaunch?: (payload: FireworkLaunchPayload) => void;
41
+ onDanmakuSend?: (message: DanmakuMessage) => void;
42
+ onError?: (error: Error) => void;
43
+ onFpsReport?: (fps: number) => void;
44
+ onRealtimeStateChange?: (state: FireworksRealtimeState) => void;
45
+ }
46
+ interface DanmakuSendResult {
47
+ message: DanmakuMessage;
48
+ launchKind?: FireworkKind;
49
+ }
50
+ interface DanmakuControllerOptions {
51
+ onSend?: (message: DanmakuMessage) => void;
52
+ }
53
+ interface FireworksRealtimeUser {
54
+ userId: string;
55
+ nickname?: string;
56
+ avatarUrl?: string;
57
+ }
58
+ interface FireworksRealtimeConfig {
59
+ enabled?: boolean;
60
+ serverUrl: string;
61
+ roomId: string;
62
+ user: FireworksRealtimeUser;
63
+ protocols?: string | string[];
64
+ reconnect?: boolean;
65
+ reconnectIntervalMs?: number;
66
+ }
67
+ interface FireworksRealtimeState {
68
+ connected: boolean;
69
+ joined: boolean;
70
+ onlineCount: number;
71
+ roomId?: string;
72
+ }
73
+
74
+ declare function MikuFireworks3D({ width, height, className, defaultKind, autoLaunchOnDanmaku, maxParticles, maxActiveFireworks, defaultAvatarUrl, onLaunch, onDanmakuSend, onError, onFpsReport, onRealtimeStateChange, realtime, }: MikuFireworks3DProps): React__default.JSX.Element;
75
+
76
+ interface FireworksCanvasProps {
77
+ canvasRef: React__default.RefObject<HTMLCanvasElement>;
78
+ }
79
+ declare function FireworksCanvas({ canvasRef }: FireworksCanvasProps): React__default.JSX.Element;
80
+
81
+ interface FireworksControlPanelProps {
82
+ selectedKind: FireworkKind;
83
+ onKindChange: (kind: FireworkKind) => void;
84
+ autoLaunchOnDanmaku: boolean;
85
+ onAutoLaunchChange: (value: boolean) => void;
86
+ avatarUrl: string;
87
+ onAvatarUrlChange: (value: string) => void;
88
+ onLaunch: () => void;
89
+ fps: number;
90
+ realtimeConnected?: boolean;
91
+ onlineCount?: number;
92
+ }
93
+ declare function FireworksControlPanel({ selectedKind, onKindChange, autoLaunchOnDanmaku, onAutoLaunchChange, avatarUrl, onAvatarUrlChange, onLaunch, fps, realtimeConnected, onlineCount, }: FireworksControlPanelProps): React__default.JSX.Element;
94
+
95
+ interface DanmakuPanelProps {
96
+ onSend: (text: string) => void;
97
+ }
98
+ declare function DanmakuPanel({ onSend }: DanmakuPanelProps): React__default.JSX.Element;
99
+
100
+ interface RealtimeDanmakuEvent {
101
+ id: string;
102
+ roomId: string;
103
+ text: string;
104
+ color?: string;
105
+ kind?: FireworkKind;
106
+ user: FireworksRealtimeUser;
107
+ timestamp: number;
108
+ }
109
+ interface RealtimeFireworkEvent {
110
+ id: string;
111
+ roomId: string;
112
+ payload: FireworkLaunchPayload;
113
+ user: FireworksRealtimeUser;
114
+ timestamp: number;
115
+ }
116
+ type ServerMessage = {
117
+ type: 'joined';
118
+ roomId: string;
119
+ onlineCount: number;
120
+ self: FireworksRealtimeUser;
121
+ } | {
122
+ type: 'room.snapshot';
123
+ roomId: string;
124
+ users: FireworksRealtimeUser[];
125
+ danmakuHistory: RealtimeDanmakuEvent[];
126
+ fireworkHistory: RealtimeFireworkEvent[];
127
+ } | {
128
+ type: 'room.user_joined';
129
+ roomId: string;
130
+ user: FireworksRealtimeUser;
131
+ onlineCount: number;
132
+ } | {
133
+ type: 'room.user_left';
134
+ roomId: string;
135
+ userId: string;
136
+ onlineCount: number;
137
+ } | {
138
+ type: 'danmaku.broadcast';
139
+ roomId: string;
140
+ event: RealtimeDanmakuEvent;
141
+ } | {
142
+ type: 'firework.broadcast';
143
+ roomId: string;
144
+ event: RealtimeFireworkEvent;
145
+ } | {
146
+ type: 'error';
147
+ code: string;
148
+ message: string;
149
+ } | {
150
+ type: 'pong';
151
+ ts: number;
152
+ };
153
+ interface WebSocketTransportCallbacks {
154
+ onStateChange?: (state: FireworksRealtimeState) => void;
155
+ onDanmakuBroadcast?: (event: RealtimeDanmakuEvent) => void;
156
+ onFireworkBroadcast?: (event: RealtimeFireworkEvent) => void;
157
+ onSnapshot?: (snapshot: Extract<ServerMessage, {
158
+ type: 'room.snapshot';
159
+ }>) => void;
160
+ onError?: (error: Error) => void;
161
+ }
162
+ declare class WebSocketTransport {
163
+ private socket;
164
+ private reconnectTimer;
165
+ private isManualClose;
166
+ private readonly pendingQueue;
167
+ private readonly config;
168
+ private readonly callbacks;
169
+ private state;
170
+ constructor(config: FireworksRealtimeConfig, callbacks?: WebSocketTransportCallbacks);
171
+ connect(): void;
172
+ disconnect(): void;
173
+ sendDanmaku(payload: {
174
+ text: string;
175
+ color?: string;
176
+ kind?: FireworkKind;
177
+ }): void;
178
+ sendFirework(payload: FireworkLaunchPayload): void;
179
+ getState(): FireworksRealtimeState;
180
+ private send;
181
+ private updateState;
182
+ private handleServerMessage;
183
+ private scheduleReconnect;
184
+ private flushPendingQueue;
185
+ }
186
+
187
+ interface UseFireworksEngineOptions extends FireworkEngineOptions {
188
+ onLaunch?: (payload: FireworkLaunchPayload) => void;
189
+ }
190
+ declare function useFireworksEngine(options?: UseFireworksEngineOptions): {
191
+ containerRef: React.RefObject<HTMLDivElement>;
192
+ canvasRef: React.RefObject<HTMLCanvasElement>;
193
+ launch: (payload: FireworkLaunchPayload) => void;
194
+ fps: number;
195
+ engineReady: boolean;
196
+ pendingLaunchCount: number;
197
+ };
198
+
199
+ interface DanmakuOverlayItem extends DanmakuMessage {
200
+ track: number;
201
+ durationMs: number;
202
+ }
203
+ interface SendDanmakuOptions {
204
+ optimistic?: boolean;
205
+ }
206
+ declare function useDanmakuController(options?: DanmakuControllerOptions): {
207
+ items: DanmakuOverlayItem[];
208
+ send: (text: string, color?: string, sendOptions?: SendDanmakuOptions) => DanmakuSendResult | null;
209
+ addIncoming: (message: DanmakuMessage) => void;
210
+ removeItem: (id: string) => void;
211
+ };
212
+
213
+ interface UseFireworksRealtimeOptions {
214
+ config?: FireworksRealtimeConfig;
215
+ enabled?: boolean;
216
+ onDanmakuBroadcast?: (event: {
217
+ text: string;
218
+ color?: string;
219
+ kind?: FireworkKind;
220
+ userId: string;
221
+ timestamp: number;
222
+ id: string;
223
+ }) => void;
224
+ onFireworkBroadcast?: (event: {
225
+ id: string;
226
+ payload: FireworkLaunchPayload;
227
+ userId: string;
228
+ timestamp: number;
229
+ }) => void;
230
+ onSnapshot?: (snapshot: {
231
+ roomId: string;
232
+ danmakuHistory: Array<{
233
+ id: string;
234
+ text: string;
235
+ color?: string;
236
+ kind?: FireworkKind;
237
+ userId: string;
238
+ timestamp: number;
239
+ }>;
240
+ fireworkHistory: Array<{
241
+ id: string;
242
+ payload: FireworkLaunchPayload;
243
+ userId: string;
244
+ timestamp: number;
245
+ }>;
246
+ }) => void;
247
+ onError?: (error: Error) => void;
248
+ onStateChange?: (state: FireworksRealtimeState) => void;
249
+ }
250
+ declare function useFireworksRealtime(options: UseFireworksRealtimeOptions): {
251
+ state: FireworksRealtimeState;
252
+ sendDanmaku: (payload: {
253
+ text: string;
254
+ color?: string;
255
+ kind?: FireworkKind;
256
+ }) => void;
257
+ sendFirework: (payload: FireworkLaunchPayload) => void;
258
+ };
259
+
260
+ declare const DEFAULT_MAX_PARTICLES = 5000;
261
+ declare const DEFAULT_MAX_ACTIVE_FIREWORKS = 12;
262
+ declare const FIREWORK_KIND_LABELS: Record<FireworkKind, string>;
263
+ declare const MIKU_PALETTE: string[];
264
+ declare const NORMAL_PALETTE: string[];
265
+ declare const DANMAKU_MAX_LENGTH = 32;
266
+ declare const DANMAKU_TRACK_COUNT = 8;
267
+
268
+ declare const index_DANMAKU_MAX_LENGTH: typeof DANMAKU_MAX_LENGTH;
269
+ declare const index_DANMAKU_TRACK_COUNT: typeof DANMAKU_TRACK_COUNT;
270
+ declare const index_DEFAULT_MAX_ACTIVE_FIREWORKS: typeof DEFAULT_MAX_ACTIVE_FIREWORKS;
271
+ declare const index_DEFAULT_MAX_PARTICLES: typeof DEFAULT_MAX_PARTICLES;
272
+ type index_DanmakuControllerOptions = DanmakuControllerOptions;
273
+ type index_DanmakuMessage = DanmakuMessage;
274
+ type index_DanmakuOverlayItem = DanmakuOverlayItem;
275
+ declare const index_DanmakuPanel: typeof DanmakuPanel;
276
+ type index_DanmakuSendResult = DanmakuSendResult;
277
+ declare const index_FIREWORK_KIND_LABELS: typeof FIREWORK_KIND_LABELS;
278
+ type index_FireworkEngineOptions = FireworkEngineOptions;
279
+ type index_FireworkKind = FireworkKind;
280
+ type index_FireworkLaunchPayload = FireworkLaunchPayload;
281
+ type index_FireworkPosition = FireworkPosition;
282
+ declare const index_FireworksCanvas: typeof FireworksCanvas;
283
+ declare const index_FireworksControlPanel: typeof FireworksControlPanel;
284
+ type index_FireworksRealtimeConfig = FireworksRealtimeConfig;
285
+ type index_FireworksRealtimeState = FireworksRealtimeState;
286
+ type index_FireworksRealtimeUser = FireworksRealtimeUser;
287
+ declare const index_MIKU_PALETTE: typeof MIKU_PALETTE;
288
+ declare const index_MikuFireworks3D: typeof MikuFireworks3D;
289
+ type index_MikuFireworks3DProps = MikuFireworks3DProps;
290
+ declare const index_NORMAL_PALETTE: typeof NORMAL_PALETTE;
291
+ type index_UseFireworksEngineOptions = UseFireworksEngineOptions;
292
+ type index_WebSocketTransport = WebSocketTransport;
293
+ declare const index_WebSocketTransport: typeof WebSocketTransport;
294
+ type index_WebSocketTransportCallbacks = WebSocketTransportCallbacks;
295
+ declare const index_useDanmakuController: typeof useDanmakuController;
296
+ declare const index_useFireworksEngine: typeof useFireworksEngine;
297
+ declare const index_useFireworksRealtime: typeof useFireworksRealtime;
298
+ declare namespace index {
299
+ export { index_DANMAKU_MAX_LENGTH as DANMAKU_MAX_LENGTH, index_DANMAKU_TRACK_COUNT as DANMAKU_TRACK_COUNT, index_DEFAULT_MAX_ACTIVE_FIREWORKS as DEFAULT_MAX_ACTIVE_FIREWORKS, index_DEFAULT_MAX_PARTICLES as DEFAULT_MAX_PARTICLES, type index_DanmakuControllerOptions as DanmakuControllerOptions, type index_DanmakuMessage as DanmakuMessage, type index_DanmakuOverlayItem as DanmakuOverlayItem, index_DanmakuPanel as DanmakuPanel, type index_DanmakuSendResult as DanmakuSendResult, index_FIREWORK_KIND_LABELS as FIREWORK_KIND_LABELS, type index_FireworkEngineOptions as FireworkEngineOptions, type index_FireworkKind as FireworkKind, type index_FireworkLaunchPayload as FireworkLaunchPayload, type index_FireworkPosition as FireworkPosition, index_FireworksCanvas as FireworksCanvas, index_FireworksControlPanel as FireworksControlPanel, type index_FireworksRealtimeConfig as FireworksRealtimeConfig, type index_FireworksRealtimeState as FireworksRealtimeState, type index_FireworksRealtimeUser as FireworksRealtimeUser, index_MIKU_PALETTE as MIKU_PALETTE, index_MikuFireworks3D as MikuFireworks3D, type index_MikuFireworks3DProps as MikuFireworks3DProps, index_NORMAL_PALETTE as NORMAL_PALETTE, type index_UseFireworksEngineOptions as UseFireworksEngineOptions, index_WebSocketTransport as WebSocketTransport, type index_WebSocketTransportCallbacks as WebSocketTransportCallbacks, index_useDanmakuController as useDanmakuController, index_useFireworksEngine as useFireworksEngine, index_useFireworksRealtime as useFireworksRealtime };
300
+ }
301
+
302
+ export { DanmakuPanel as D, FireworksCanvas as F, MikuFireworks3D as M, NORMAL_PALETTE as N, type UseFireworksEngineOptions as U, WebSocketTransport as W, FireworksControlPanel as a, type WebSocketTransportCallbacks as b, type DanmakuOverlayItem as c, useDanmakuController as d, useFireworksRealtime as e, DEFAULT_MAX_PARTICLES as f, DEFAULT_MAX_ACTIVE_FIREWORKS as g, FIREWORK_KIND_LABELS as h, index as i, MIKU_PALETTE as j, DANMAKU_MAX_LENGTH as k, DANMAKU_TRACK_COUNT as l, type FireworkKind as m, type DanmakuMessage as n, type FireworkPosition as o, type FireworkLaunchPayload as p, type FireworkEngineOptions as q, type MikuFireworks3DProps as r, type DanmakuSendResult as s, type DanmakuControllerOptions as t, useFireworksEngine as u, type FireworksRealtimeUser as v, type FireworksRealtimeConfig as w, type FireworksRealtimeState as x };