sa2kit 1.6.33 → 1.6.35

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 (47) hide show
  1. package/dist/calendar/index.js +11 -8
  2. package/dist/calendar/index.js.map +1 -1
  3. package/dist/calendar/index.mjs +4 -1
  4. package/dist/calendar/index.mjs.map +1 -1
  5. package/dist/chunk-EGJPS7OL.mjs +98 -0
  6. package/dist/chunk-EGJPS7OL.mjs.map +1 -0
  7. package/dist/{chunk-EI27JKND.mjs → chunk-GMIUSZXC.mjs} +2 -2
  8. package/dist/{chunk-EI27JKND.mjs.map → chunk-GMIUSZXC.mjs.map} +1 -1
  9. package/dist/chunk-HHVDOIPV.js +105 -0
  10. package/dist/chunk-HHVDOIPV.js.map +1 -0
  11. package/dist/chunk-PMTY2AI4.js +1110 -0
  12. package/dist/chunk-PMTY2AI4.js.map +1 -0
  13. package/dist/{chunk-XGBE4SUV.js → chunk-SCDDMIF6.js} +2 -2
  14. package/dist/{chunk-XGBE4SUV.js.map → chunk-SCDDMIF6.js.map} +1 -1
  15. package/dist/chunk-SR4JFEHW.mjs +1071 -0
  16. package/dist/chunk-SR4JFEHW.mjs.map +1 -0
  17. package/dist/index.d.mts +26 -1
  18. package/dist/index.d.ts +26 -1
  19. package/dist/index.js +179 -109
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.mjs +4 -2
  22. package/dist/index.mjs.map +1 -1
  23. package/dist/mikuFireworks3D/index.d.mts +174 -0
  24. package/dist/mikuFireworks3D/index.d.ts +174 -0
  25. package/dist/mikuFireworks3D/index.js +69 -0
  26. package/dist/mikuFireworks3D/index.js.map +1 -0
  27. package/dist/mikuFireworks3D/index.mjs +4 -0
  28. package/dist/mikuFireworks3D/index.mjs.map +1 -0
  29. package/dist/mikuFireworks3D/server/index.d.mts +146 -0
  30. package/dist/mikuFireworks3D/server/index.d.ts +146 -0
  31. package/dist/mikuFireworks3D/server/index.js +338 -0
  32. package/dist/mikuFireworks3D/server/index.js.map +1 -0
  33. package/dist/mikuFireworks3D/server/index.mjs +335 -0
  34. package/dist/mikuFireworks3D/server/index.mjs.map +1 -0
  35. package/dist/mikuFusionGame/index.d.mts +7 -2
  36. package/dist/mikuFusionGame/index.d.ts +7 -2
  37. package/dist/mikuFusionGame/index.js +141 -10
  38. package/dist/mikuFusionGame/index.js.map +1 -1
  39. package/dist/mikuFusionGame/index.mjs +141 -10
  40. package/dist/mikuFusionGame/index.mjs.map +1 -1
  41. package/dist/mmd/index.js +1 -1
  42. package/dist/mmd/index.mjs +2 -2
  43. package/dist/types-Cgk9zWhO.d.mts +70 -0
  44. package/dist/types-Cgk9zWhO.d.ts +70 -0
  45. package/dist/universalFile/server/index.js +5 -5
  46. package/dist/universalFile/server/index.mjs +1 -1
  47. package/package.json +11 -1
@@ -0,0 +1,174 @@
1
+ import * as React from 'react';
2
+ import React__default from 'react';
3
+ import { M as MikuFireworks3DProps, F as FireworkKind, g as FireworksRealtimeConfig, h as FireworksRealtimeState, f as FireworksRealtimeUser, a as FireworkLaunchPayload, c as FireworkEngineOptions, D as DanmakuMessage, e as DanmakuControllerOptions, d as DanmakuSendResult } from '../types-Cgk9zWhO.mjs';
4
+ export { b as FireworkPosition } from '../types-Cgk9zWhO.mjs';
5
+
6
+ declare function MikuFireworks3D({ width, height, className, defaultKind, autoLaunchOnDanmaku, maxParticles, maxActiveFireworks, defaultAvatarUrl, onLaunch, onDanmakuSend, onError, onFpsReport, onRealtimeStateChange, realtime, }: MikuFireworks3DProps): React__default.JSX.Element;
7
+
8
+ interface FireworksCanvasProps {
9
+ canvasRef: React__default.RefObject<HTMLCanvasElement>;
10
+ }
11
+ declare function FireworksCanvas({ canvasRef }: FireworksCanvasProps): React__default.JSX.Element;
12
+
13
+ interface FireworksControlPanelProps {
14
+ selectedKind: FireworkKind;
15
+ onKindChange: (kind: FireworkKind) => void;
16
+ autoLaunchOnDanmaku: boolean;
17
+ onAutoLaunchChange: (value: boolean) => void;
18
+ avatarUrl: string;
19
+ onAvatarUrlChange: (value: string) => void;
20
+ onLaunch: () => void;
21
+ fps: number;
22
+ realtimeConnected?: boolean;
23
+ onlineCount?: number;
24
+ }
25
+ declare function FireworksControlPanel({ selectedKind, onKindChange, autoLaunchOnDanmaku, onAutoLaunchChange, avatarUrl, onAvatarUrlChange, onLaunch, fps, realtimeConnected, onlineCount, }: FireworksControlPanelProps): React__default.JSX.Element;
26
+
27
+ interface DanmakuPanelProps {
28
+ onSend: (text: string) => void;
29
+ }
30
+ declare function DanmakuPanel({ onSend }: DanmakuPanelProps): React__default.JSX.Element;
31
+
32
+ interface RealtimeDanmakuEvent {
33
+ id: string;
34
+ roomId: string;
35
+ text: string;
36
+ color?: string;
37
+ kind?: FireworkKind;
38
+ user: FireworksRealtimeUser;
39
+ timestamp: number;
40
+ }
41
+ interface RealtimeFireworkEvent {
42
+ id: string;
43
+ roomId: string;
44
+ payload: FireworkLaunchPayload;
45
+ user: FireworksRealtimeUser;
46
+ timestamp: number;
47
+ }
48
+ type ServerMessage = {
49
+ type: 'joined';
50
+ roomId: string;
51
+ onlineCount: number;
52
+ self: FireworksRealtimeUser;
53
+ } | {
54
+ type: 'room.snapshot';
55
+ roomId: string;
56
+ users: FireworksRealtimeUser[];
57
+ danmakuHistory: RealtimeDanmakuEvent[];
58
+ fireworkHistory: RealtimeFireworkEvent[];
59
+ } | {
60
+ type: 'room.user_joined';
61
+ roomId: string;
62
+ user: FireworksRealtimeUser;
63
+ onlineCount: number;
64
+ } | {
65
+ type: 'room.user_left';
66
+ roomId: string;
67
+ userId: string;
68
+ onlineCount: number;
69
+ } | {
70
+ type: 'danmaku.broadcast';
71
+ roomId: string;
72
+ event: RealtimeDanmakuEvent;
73
+ } | {
74
+ type: 'firework.broadcast';
75
+ roomId: string;
76
+ event: RealtimeFireworkEvent;
77
+ } | {
78
+ type: 'error';
79
+ code: string;
80
+ message: string;
81
+ } | {
82
+ type: 'pong';
83
+ ts: number;
84
+ };
85
+ interface WebSocketTransportCallbacks {
86
+ onStateChange?: (state: FireworksRealtimeState) => void;
87
+ onDanmakuBroadcast?: (event: RealtimeDanmakuEvent) => void;
88
+ onFireworkBroadcast?: (event: RealtimeFireworkEvent) => void;
89
+ onSnapshot?: (snapshot: Extract<ServerMessage, {
90
+ type: 'room.snapshot';
91
+ }>) => void;
92
+ onError?: (error: Error) => void;
93
+ }
94
+ declare class WebSocketTransport {
95
+ private socket;
96
+ private reconnectTimer;
97
+ private isManualClose;
98
+ private readonly config;
99
+ private readonly callbacks;
100
+ private state;
101
+ constructor(config: FireworksRealtimeConfig, callbacks?: WebSocketTransportCallbacks);
102
+ connect(): void;
103
+ disconnect(): void;
104
+ sendDanmaku(payload: {
105
+ text: string;
106
+ color?: string;
107
+ kind?: FireworkKind;
108
+ }): void;
109
+ sendFirework(payload: FireworkLaunchPayload): void;
110
+ getState(): FireworksRealtimeState;
111
+ private send;
112
+ private updateState;
113
+ private handleServerMessage;
114
+ private scheduleReconnect;
115
+ }
116
+
117
+ interface UseFireworksEngineOptions extends FireworkEngineOptions {
118
+ onLaunch?: (payload: FireworkLaunchPayload) => void;
119
+ }
120
+ declare function useFireworksEngine(options?: UseFireworksEngineOptions): {
121
+ containerRef: React.RefObject<HTMLDivElement>;
122
+ canvasRef: React.RefObject<HTMLCanvasElement>;
123
+ launch: (payload: FireworkLaunchPayload) => void;
124
+ fps: number;
125
+ };
126
+
127
+ interface DanmakuOverlayItem extends DanmakuMessage {
128
+ track: number;
129
+ durationMs: number;
130
+ }
131
+ interface SendDanmakuOptions {
132
+ optimistic?: boolean;
133
+ }
134
+ declare function useDanmakuController(options?: DanmakuControllerOptions): {
135
+ items: DanmakuOverlayItem[];
136
+ send: (text: string, color?: string, sendOptions?: SendDanmakuOptions) => DanmakuSendResult | null;
137
+ addIncoming: (message: DanmakuMessage) => void;
138
+ removeItem: (id: string) => void;
139
+ };
140
+
141
+ interface UseFireworksRealtimeOptions {
142
+ config?: FireworksRealtimeConfig;
143
+ enabled?: boolean;
144
+ onDanmakuBroadcast?: (event: {
145
+ text: string;
146
+ color?: string;
147
+ kind?: FireworkKind;
148
+ userId: string;
149
+ timestamp: number;
150
+ id: string;
151
+ }) => void;
152
+ onFireworkBroadcast?: (payload: FireworkLaunchPayload) => void;
153
+ onError?: (error: Error) => void;
154
+ onStateChange?: (state: FireworksRealtimeState) => void;
155
+ }
156
+ declare function useFireworksRealtime(options: UseFireworksRealtimeOptions): {
157
+ state: FireworksRealtimeState;
158
+ sendDanmaku: (payload: {
159
+ text: string;
160
+ color?: string;
161
+ kind?: FireworkKind;
162
+ }) => void;
163
+ sendFirework: (payload: FireworkLaunchPayload) => void;
164
+ };
165
+
166
+ declare const DEFAULT_MAX_PARTICLES = 5000;
167
+ declare const DEFAULT_MAX_ACTIVE_FIREWORKS = 12;
168
+ declare const FIREWORK_KIND_LABELS: Record<FireworkKind, string>;
169
+ declare const MIKU_PALETTE: string[];
170
+ declare const NORMAL_PALETTE: string[];
171
+ declare const DANMAKU_MAX_LENGTH = 32;
172
+ declare const DANMAKU_TRACK_COUNT = 8;
173
+
174
+ export { DANMAKU_MAX_LENGTH, DANMAKU_TRACK_COUNT, DEFAULT_MAX_ACTIVE_FIREWORKS, DEFAULT_MAX_PARTICLES, DanmakuControllerOptions, DanmakuMessage, type DanmakuOverlayItem, DanmakuPanel, DanmakuSendResult, FIREWORK_KIND_LABELS, FireworkEngineOptions, FireworkKind, FireworkLaunchPayload, FireworksCanvas, FireworksControlPanel, FireworksRealtimeConfig, FireworksRealtimeState, FireworksRealtimeUser, MIKU_PALETTE, MikuFireworks3D, MikuFireworks3DProps, NORMAL_PALETTE, type UseFireworksEngineOptions, WebSocketTransport, type WebSocketTransportCallbacks, useDanmakuController, useFireworksEngine, useFireworksRealtime };
@@ -0,0 +1,174 @@
1
+ import * as React from 'react';
2
+ import React__default from 'react';
3
+ import { M as MikuFireworks3DProps, F as FireworkKind, g as FireworksRealtimeConfig, h as FireworksRealtimeState, f as FireworksRealtimeUser, a as FireworkLaunchPayload, c as FireworkEngineOptions, D as DanmakuMessage, e as DanmakuControllerOptions, d as DanmakuSendResult } from '../types-Cgk9zWhO.js';
4
+ export { b as FireworkPosition } from '../types-Cgk9zWhO.js';
5
+
6
+ declare function MikuFireworks3D({ width, height, className, defaultKind, autoLaunchOnDanmaku, maxParticles, maxActiveFireworks, defaultAvatarUrl, onLaunch, onDanmakuSend, onError, onFpsReport, onRealtimeStateChange, realtime, }: MikuFireworks3DProps): React__default.JSX.Element;
7
+
8
+ interface FireworksCanvasProps {
9
+ canvasRef: React__default.RefObject<HTMLCanvasElement>;
10
+ }
11
+ declare function FireworksCanvas({ canvasRef }: FireworksCanvasProps): React__default.JSX.Element;
12
+
13
+ interface FireworksControlPanelProps {
14
+ selectedKind: FireworkKind;
15
+ onKindChange: (kind: FireworkKind) => void;
16
+ autoLaunchOnDanmaku: boolean;
17
+ onAutoLaunchChange: (value: boolean) => void;
18
+ avatarUrl: string;
19
+ onAvatarUrlChange: (value: string) => void;
20
+ onLaunch: () => void;
21
+ fps: number;
22
+ realtimeConnected?: boolean;
23
+ onlineCount?: number;
24
+ }
25
+ declare function FireworksControlPanel({ selectedKind, onKindChange, autoLaunchOnDanmaku, onAutoLaunchChange, avatarUrl, onAvatarUrlChange, onLaunch, fps, realtimeConnected, onlineCount, }: FireworksControlPanelProps): React__default.JSX.Element;
26
+
27
+ interface DanmakuPanelProps {
28
+ onSend: (text: string) => void;
29
+ }
30
+ declare function DanmakuPanel({ onSend }: DanmakuPanelProps): React__default.JSX.Element;
31
+
32
+ interface RealtimeDanmakuEvent {
33
+ id: string;
34
+ roomId: string;
35
+ text: string;
36
+ color?: string;
37
+ kind?: FireworkKind;
38
+ user: FireworksRealtimeUser;
39
+ timestamp: number;
40
+ }
41
+ interface RealtimeFireworkEvent {
42
+ id: string;
43
+ roomId: string;
44
+ payload: FireworkLaunchPayload;
45
+ user: FireworksRealtimeUser;
46
+ timestamp: number;
47
+ }
48
+ type ServerMessage = {
49
+ type: 'joined';
50
+ roomId: string;
51
+ onlineCount: number;
52
+ self: FireworksRealtimeUser;
53
+ } | {
54
+ type: 'room.snapshot';
55
+ roomId: string;
56
+ users: FireworksRealtimeUser[];
57
+ danmakuHistory: RealtimeDanmakuEvent[];
58
+ fireworkHistory: RealtimeFireworkEvent[];
59
+ } | {
60
+ type: 'room.user_joined';
61
+ roomId: string;
62
+ user: FireworksRealtimeUser;
63
+ onlineCount: number;
64
+ } | {
65
+ type: 'room.user_left';
66
+ roomId: string;
67
+ userId: string;
68
+ onlineCount: number;
69
+ } | {
70
+ type: 'danmaku.broadcast';
71
+ roomId: string;
72
+ event: RealtimeDanmakuEvent;
73
+ } | {
74
+ type: 'firework.broadcast';
75
+ roomId: string;
76
+ event: RealtimeFireworkEvent;
77
+ } | {
78
+ type: 'error';
79
+ code: string;
80
+ message: string;
81
+ } | {
82
+ type: 'pong';
83
+ ts: number;
84
+ };
85
+ interface WebSocketTransportCallbacks {
86
+ onStateChange?: (state: FireworksRealtimeState) => void;
87
+ onDanmakuBroadcast?: (event: RealtimeDanmakuEvent) => void;
88
+ onFireworkBroadcast?: (event: RealtimeFireworkEvent) => void;
89
+ onSnapshot?: (snapshot: Extract<ServerMessage, {
90
+ type: 'room.snapshot';
91
+ }>) => void;
92
+ onError?: (error: Error) => void;
93
+ }
94
+ declare class WebSocketTransport {
95
+ private socket;
96
+ private reconnectTimer;
97
+ private isManualClose;
98
+ private readonly config;
99
+ private readonly callbacks;
100
+ private state;
101
+ constructor(config: FireworksRealtimeConfig, callbacks?: WebSocketTransportCallbacks);
102
+ connect(): void;
103
+ disconnect(): void;
104
+ sendDanmaku(payload: {
105
+ text: string;
106
+ color?: string;
107
+ kind?: FireworkKind;
108
+ }): void;
109
+ sendFirework(payload: FireworkLaunchPayload): void;
110
+ getState(): FireworksRealtimeState;
111
+ private send;
112
+ private updateState;
113
+ private handleServerMessage;
114
+ private scheduleReconnect;
115
+ }
116
+
117
+ interface UseFireworksEngineOptions extends FireworkEngineOptions {
118
+ onLaunch?: (payload: FireworkLaunchPayload) => void;
119
+ }
120
+ declare function useFireworksEngine(options?: UseFireworksEngineOptions): {
121
+ containerRef: React.RefObject<HTMLDivElement>;
122
+ canvasRef: React.RefObject<HTMLCanvasElement>;
123
+ launch: (payload: FireworkLaunchPayload) => void;
124
+ fps: number;
125
+ };
126
+
127
+ interface DanmakuOverlayItem extends DanmakuMessage {
128
+ track: number;
129
+ durationMs: number;
130
+ }
131
+ interface SendDanmakuOptions {
132
+ optimistic?: boolean;
133
+ }
134
+ declare function useDanmakuController(options?: DanmakuControllerOptions): {
135
+ items: DanmakuOverlayItem[];
136
+ send: (text: string, color?: string, sendOptions?: SendDanmakuOptions) => DanmakuSendResult | null;
137
+ addIncoming: (message: DanmakuMessage) => void;
138
+ removeItem: (id: string) => void;
139
+ };
140
+
141
+ interface UseFireworksRealtimeOptions {
142
+ config?: FireworksRealtimeConfig;
143
+ enabled?: boolean;
144
+ onDanmakuBroadcast?: (event: {
145
+ text: string;
146
+ color?: string;
147
+ kind?: FireworkKind;
148
+ userId: string;
149
+ timestamp: number;
150
+ id: string;
151
+ }) => void;
152
+ onFireworkBroadcast?: (payload: FireworkLaunchPayload) => void;
153
+ onError?: (error: Error) => void;
154
+ onStateChange?: (state: FireworksRealtimeState) => void;
155
+ }
156
+ declare function useFireworksRealtime(options: UseFireworksRealtimeOptions): {
157
+ state: FireworksRealtimeState;
158
+ sendDanmaku: (payload: {
159
+ text: string;
160
+ color?: string;
161
+ kind?: FireworkKind;
162
+ }) => void;
163
+ sendFirework: (payload: FireworkLaunchPayload) => void;
164
+ };
165
+
166
+ declare const DEFAULT_MAX_PARTICLES = 5000;
167
+ declare const DEFAULT_MAX_ACTIVE_FIREWORKS = 12;
168
+ declare const FIREWORK_KIND_LABELS: Record<FireworkKind, string>;
169
+ declare const MIKU_PALETTE: string[];
170
+ declare const NORMAL_PALETTE: string[];
171
+ declare const DANMAKU_MAX_LENGTH = 32;
172
+ declare const DANMAKU_TRACK_COUNT = 8;
173
+
174
+ export { DANMAKU_MAX_LENGTH, DANMAKU_TRACK_COUNT, DEFAULT_MAX_ACTIVE_FIREWORKS, DEFAULT_MAX_PARTICLES, DanmakuControllerOptions, DanmakuMessage, type DanmakuOverlayItem, DanmakuPanel, DanmakuSendResult, FIREWORK_KIND_LABELS, FireworkEngineOptions, FireworkKind, FireworkLaunchPayload, FireworksCanvas, FireworksControlPanel, FireworksRealtimeConfig, FireworksRealtimeState, FireworksRealtimeUser, MIKU_PALETTE, MikuFireworks3D, MikuFireworks3DProps, NORMAL_PALETTE, type UseFireworksEngineOptions, WebSocketTransport, type WebSocketTransportCallbacks, useDanmakuController, useFireworksEngine, useFireworksRealtime };
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ var chunkPMTY2AI4_js = require('../chunk-PMTY2AI4.js');
4
+ require('../chunk-DGUM43GV.js');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "DANMAKU_MAX_LENGTH", {
9
+ enumerable: true,
10
+ get: function () { return chunkPMTY2AI4_js.DANMAKU_MAX_LENGTH; }
11
+ });
12
+ Object.defineProperty(exports, "DANMAKU_TRACK_COUNT", {
13
+ enumerable: true,
14
+ get: function () { return chunkPMTY2AI4_js.DANMAKU_TRACK_COUNT; }
15
+ });
16
+ Object.defineProperty(exports, "DEFAULT_MAX_ACTIVE_FIREWORKS", {
17
+ enumerable: true,
18
+ get: function () { return chunkPMTY2AI4_js.DEFAULT_MAX_ACTIVE_FIREWORKS; }
19
+ });
20
+ Object.defineProperty(exports, "DEFAULT_MAX_PARTICLES", {
21
+ enumerable: true,
22
+ get: function () { return chunkPMTY2AI4_js.DEFAULT_MAX_PARTICLES; }
23
+ });
24
+ Object.defineProperty(exports, "DanmakuPanel", {
25
+ enumerable: true,
26
+ get: function () { return chunkPMTY2AI4_js.DanmakuPanel; }
27
+ });
28
+ Object.defineProperty(exports, "FIREWORK_KIND_LABELS", {
29
+ enumerable: true,
30
+ get: function () { return chunkPMTY2AI4_js.FIREWORK_KIND_LABELS; }
31
+ });
32
+ Object.defineProperty(exports, "FireworksCanvas", {
33
+ enumerable: true,
34
+ get: function () { return chunkPMTY2AI4_js.FireworksCanvas; }
35
+ });
36
+ Object.defineProperty(exports, "FireworksControlPanel", {
37
+ enumerable: true,
38
+ get: function () { return chunkPMTY2AI4_js.FireworksControlPanel; }
39
+ });
40
+ Object.defineProperty(exports, "MIKU_PALETTE", {
41
+ enumerable: true,
42
+ get: function () { return chunkPMTY2AI4_js.MIKU_PALETTE; }
43
+ });
44
+ Object.defineProperty(exports, "MikuFireworks3D", {
45
+ enumerable: true,
46
+ get: function () { return chunkPMTY2AI4_js.MikuFireworks3D; }
47
+ });
48
+ Object.defineProperty(exports, "NORMAL_PALETTE", {
49
+ enumerable: true,
50
+ get: function () { return chunkPMTY2AI4_js.NORMAL_PALETTE; }
51
+ });
52
+ Object.defineProperty(exports, "WebSocketTransport", {
53
+ enumerable: true,
54
+ get: function () { return chunkPMTY2AI4_js.WebSocketTransport; }
55
+ });
56
+ Object.defineProperty(exports, "useDanmakuController", {
57
+ enumerable: true,
58
+ get: function () { return chunkPMTY2AI4_js.useDanmakuController; }
59
+ });
60
+ Object.defineProperty(exports, "useFireworksEngine", {
61
+ enumerable: true,
62
+ get: function () { return chunkPMTY2AI4_js.useFireworksEngine; }
63
+ });
64
+ Object.defineProperty(exports, "useFireworksRealtime", {
65
+ enumerable: true,
66
+ get: function () { return chunkPMTY2AI4_js.useFireworksRealtime; }
67
+ });
68
+ //# sourceMappingURL=index.js.map
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,4 @@
1
+ export { DANMAKU_MAX_LENGTH, DANMAKU_TRACK_COUNT, DEFAULT_MAX_ACTIVE_FIREWORKS, DEFAULT_MAX_PARTICLES, DanmakuPanel, FIREWORK_KIND_LABELS, FireworksCanvas, FireworksControlPanel, MIKU_PALETTE, MikuFireworks3D, NORMAL_PALETTE, WebSocketTransport, useDanmakuController, useFireworksEngine, useFireworksRealtime } from '../chunk-SR4JFEHW.mjs';
2
+ import '../chunk-BJTO5JO5.mjs';
3
+ //# sourceMappingURL=index.mjs.map
4
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -0,0 +1,146 @@
1
+ import { F as FireworkKind, a as FireworkLaunchPayload } from '../../types-Cgk9zWhO.mjs';
2
+
3
+ interface FireworksUserIdentity {
4
+ userId: string;
5
+ nickname?: string;
6
+ avatarUrl?: string;
7
+ }
8
+ interface DanmakuBroadcastEvent {
9
+ id: string;
10
+ roomId: string;
11
+ text: string;
12
+ color?: string;
13
+ kind?: FireworkKind;
14
+ user: FireworksUserIdentity;
15
+ timestamp: number;
16
+ }
17
+ interface FireworkBroadcastEvent {
18
+ id: string;
19
+ roomId: string;
20
+ payload: FireworkLaunchPayload;
21
+ user: FireworksUserIdentity;
22
+ timestamp: number;
23
+ }
24
+ type FireworksClientMessage = {
25
+ type: 'join';
26
+ roomId: string;
27
+ user: FireworksUserIdentity;
28
+ } | {
29
+ type: 'leave';
30
+ } | {
31
+ type: 'danmaku.send';
32
+ payload: {
33
+ text: string;
34
+ color?: string;
35
+ kind?: FireworkKind;
36
+ };
37
+ } | {
38
+ type: 'firework.launch';
39
+ payload: FireworkLaunchPayload;
40
+ } | {
41
+ type: 'ping';
42
+ ts?: number;
43
+ };
44
+ type FireworksServerMessage = {
45
+ type: 'joined';
46
+ roomId: string;
47
+ self: FireworksUserIdentity;
48
+ onlineCount: number;
49
+ } | {
50
+ type: 'room.snapshot';
51
+ roomId: string;
52
+ users: FireworksUserIdentity[];
53
+ danmakuHistory: DanmakuBroadcastEvent[];
54
+ fireworkHistory: FireworkBroadcastEvent[];
55
+ } | {
56
+ type: 'room.user_joined';
57
+ roomId: string;
58
+ user: FireworksUserIdentity;
59
+ onlineCount: number;
60
+ } | {
61
+ type: 'room.user_left';
62
+ roomId: string;
63
+ userId: string;
64
+ onlineCount: number;
65
+ } | {
66
+ type: 'danmaku.broadcast';
67
+ roomId: string;
68
+ event: DanmakuBroadcastEvent;
69
+ } | {
70
+ type: 'firework.broadcast';
71
+ roomId: string;
72
+ event: FireworkBroadcastEvent;
73
+ } | {
74
+ type: 'pong';
75
+ ts: number;
76
+ } | {
77
+ type: 'error';
78
+ code: string;
79
+ message: string;
80
+ };
81
+ interface FireworksConnectionTransport {
82
+ send: (encodedMessage: string) => void;
83
+ close?: (code?: number, reason?: string) => void;
84
+ }
85
+ interface FireworksConnection {
86
+ id: string;
87
+ handleMessage: (raw: unknown) => void;
88
+ disconnect: (reason?: string) => void;
89
+ send: (message: FireworksServerMessage) => void;
90
+ }
91
+ interface FireworksRoomHubOptions {
92
+ maxUsersPerRoom?: number;
93
+ historyLimit?: number;
94
+ maxDanmakuLength?: number;
95
+ logger?: Pick<Console, 'info' | 'warn' | 'error'>;
96
+ }
97
+ interface FireworksHubStats {
98
+ rooms: number;
99
+ connections: number;
100
+ }
101
+ interface WsLikeSocket {
102
+ send: (data: string) => void;
103
+ on: (event: 'message' | 'close' | 'error', listener: (...args: unknown[]) => void) => void;
104
+ }
105
+
106
+ declare class FireworksRoomHub {
107
+ private readonly rooms;
108
+ private readonly sessions;
109
+ private readonly maxUsersPerRoom;
110
+ private readonly historyLimit;
111
+ private readonly maxDanmakuLength;
112
+ private readonly logger?;
113
+ constructor(options?: FireworksRoomHubOptions);
114
+ connect(transport: FireworksConnectionTransport, id?: string): FireworksConnection;
115
+ disconnect(connectionId: string, reason?: string): void;
116
+ getStats(): {
117
+ rooms: number;
118
+ connections: number;
119
+ };
120
+ getRoomOnlineCount(roomId: string): number;
121
+ private handleRawMessage;
122
+ private joinRoom;
123
+ private leaveRoom;
124
+ private handleDanmaku;
125
+ private handleFirework;
126
+ private createRoom;
127
+ private sendToConnection;
128
+ private broadcastToRoom;
129
+ private sendError;
130
+ }
131
+
132
+ interface BindWsSocketOptions {
133
+ connectionId?: string;
134
+ onConnected?: (connection: FireworksConnection) => void;
135
+ onDisconnected?: (connectionId: string) => void;
136
+ }
137
+ /**
138
+ * Bind a ws-like socket to FireworksRoomHub.
139
+ *
140
+ * Example (ws package):
141
+ * const hub = new FireworksRoomHub();
142
+ * wss.on('connection', (socket) => bindWsSocket(hub, socket));
143
+ */
144
+ declare function bindWsSocket(hub: FireworksRoomHub, socket: WsLikeSocket, options?: BindWsSocketOptions): FireworksConnection;
145
+
146
+ export { type BindWsSocketOptions, type DanmakuBroadcastEvent, type FireworkBroadcastEvent, type FireworksClientMessage, type FireworksConnection, type FireworksConnectionTransport, type FireworksHubStats, FireworksRoomHub, type FireworksRoomHubOptions, type FireworksServerMessage, type FireworksUserIdentity, type WsLikeSocket, bindWsSocket };