sa2kit 2.0.1 → 2.0.3
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.
- package/README.md +1 -1
- package/dist/CollisionBalls-BpHufX3H.d.mts +41 -0
- package/dist/CollisionBalls-BpHufX3H.d.ts +41 -0
- package/dist/ConfigService-BxK06xP6.d.mts +262 -0
- package/dist/ConfigService-BxK06xP6.d.ts +262 -0
- package/dist/UniversalFileService-BpvbZitV.d.mts +139 -0
- package/dist/UniversalFileService-GsP6D3Rc.d.ts +139 -0
- package/dist/audioDetection/index.d.mts +449 -0
- package/dist/audioDetection/index.d.ts +449 -0
- package/dist/audioDetection/index.js +1244 -0
- package/dist/audioDetection/index.js.map +1 -0
- package/dist/audioDetection/index.mjs +1227 -0
- package/dist/audioDetection/index.mjs.map +1 -0
- package/dist/auth/legacy/core/index.d.mts +42 -0
- package/dist/auth/legacy/core/index.d.ts +42 -0
- package/dist/auth/legacy/core/index.js +242 -0
- package/dist/auth/legacy/core/index.js.map +1 -0
- package/dist/auth/legacy/core/index.mjs +226 -0
- package/dist/auth/legacy/core/index.mjs.map +1 -0
- package/dist/auth/legacy/db/index.d.mts +5 -0
- package/dist/auth/legacy/db/index.d.ts +5 -0
- package/dist/auth/legacy/db/index.js +261 -0
- package/dist/auth/legacy/db/index.js.map +1 -0
- package/dist/auth/legacy/db/index.mjs +250 -0
- package/dist/auth/legacy/db/index.mjs.map +1 -0
- package/dist/auth/legacy/index.d.mts +5 -0
- package/dist/auth/legacy/index.d.ts +5 -0
- package/dist/auth/legacy/index.js +1107 -0
- package/dist/auth/legacy/index.js.map +1 -0
- package/dist/auth/legacy/index.mjs +1086 -0
- package/dist/auth/legacy/index.mjs.map +1 -0
- package/dist/auth/legacy/logic/index.d.mts +9 -0
- package/dist/auth/legacy/logic/index.d.ts +9 -0
- package/dist/auth/legacy/logic/index.js +194 -0
- package/dist/auth/legacy/logic/index.js.map +1 -0
- package/dist/auth/legacy/logic/index.mjs +187 -0
- package/dist/auth/legacy/logic/index.mjs.map +1 -0
- package/dist/auth/legacy/miniapp/index.d.mts +5 -0
- package/dist/auth/legacy/miniapp/index.d.ts +5 -0
- package/dist/auth/legacy/miniapp/index.js +506 -0
- package/dist/auth/legacy/miniapp/index.js.map +1 -0
- package/dist/auth/legacy/miniapp/index.mjs +487 -0
- package/dist/auth/legacy/miniapp/index.mjs.map +1 -0
- package/dist/auth/legacy/routes/index.d.mts +53 -0
- package/dist/auth/legacy/routes/index.d.ts +53 -0
- package/dist/auth/legacy/routes/index.js +278 -0
- package/dist/auth/legacy/routes/index.js.map +1 -0
- package/dist/auth/legacy/routes/index.mjs +271 -0
- package/dist/auth/legacy/routes/index.mjs.map +1 -0
- package/dist/auth/legacy/schema/index.d.mts +401 -0
- package/dist/auth/legacy/schema/index.d.ts +401 -0
- package/dist/auth/legacy/schema/index.js +50 -0
- package/dist/auth/legacy/schema/index.js.map +1 -0
- package/dist/auth/legacy/schema/index.mjs +44 -0
- package/dist/auth/legacy/schema/index.mjs.map +1 -0
- package/dist/auth/legacy/server/index.d.mts +13 -0
- package/dist/auth/legacy/server/index.d.ts +13 -0
- package/dist/auth/legacy/server/index.js +21 -0
- package/dist/auth/legacy/server/index.js.map +1 -0
- package/dist/auth/legacy/server/index.mjs +19 -0
- package/dist/auth/legacy/server/index.mjs.map +1 -0
- package/dist/auth/legacy/services/index.d.mts +40 -0
- package/dist/auth/legacy/services/index.d.ts +40 -0
- package/dist/auth/legacy/services/index.js +258 -0
- package/dist/auth/legacy/services/index.js.map +1 -0
- package/dist/auth/legacy/services/index.mjs +252 -0
- package/dist/auth/legacy/services/index.mjs.map +1 -0
- package/dist/auth/legacy/ui/miniapp/index.d.mts +10 -0
- package/dist/auth/legacy/ui/miniapp/index.d.ts +10 -0
- package/dist/auth/legacy/ui/miniapp/index.js +298 -0
- package/dist/auth/legacy/ui/miniapp/index.js.map +1 -0
- package/dist/auth/legacy/ui/miniapp/index.mjs +290 -0
- package/dist/auth/legacy/ui/miniapp/index.mjs.map +1 -0
- package/dist/auth/legacy/ui/web/index.d.mts +22 -0
- package/dist/auth/legacy/ui/web/index.d.ts +22 -0
- package/dist/auth/legacy/ui/web/index.js +899 -0
- package/dist/auth/legacy/ui/web/index.js.map +1 -0
- package/dist/auth/legacy/ui/web/index.mjs +889 -0
- package/dist/auth/legacy/ui/web/index.mjs.map +1 -0
- package/dist/auth/legacy/web/index.d.mts +5 -0
- package/dist/auth/legacy/web/index.d.ts +5 -0
- package/dist/auth/legacy/web/index.js +1107 -0
- package/dist/auth/legacy/web/index.js.map +1 -0
- package/dist/auth/legacy/web/index.mjs +1086 -0
- package/dist/auth/legacy/web/index.mjs.map +1 -0
- package/dist/auth/rn/index.d.mts +64 -0
- package/dist/auth/rn/index.d.ts +64 -0
- package/dist/auth/rn/index.js +765 -0
- package/dist/auth/rn/index.js.map +1 -0
- package/dist/auth/rn/index.mjs +754 -0
- package/dist/auth/rn/index.mjs.map +1 -0
- package/dist/base-api-client-ACKKt13v.d.mts +277 -0
- package/dist/base-api-client-ACKKt13v.d.ts +277 -0
- package/dist/boothVaultService-Cn4WPhjg.d.mts +83 -0
- package/dist/boothVaultService-Cn4WPhjg.d.ts +83 -0
- package/dist/business/index.d.mts +6 -0
- package/dist/business/index.d.ts +6 -0
- package/dist/business/index.js +1682 -0
- package/dist/business/index.js.map +1 -0
- package/dist/business/index.mjs +1675 -0
- package/dist/business/index.mjs.map +1 -0
- package/dist/calendar/index.d.mts +1325 -0
- package/dist/calendar/index.d.ts +1325 -0
- package/dist/calendar/index.js +5964 -0
- package/dist/calendar/index.js.map +1 -0
- package/dist/calendar/index.mjs +5878 -0
- package/dist/calendar/index.mjs.map +1 -0
- package/dist/calendar/routes/index.d.mts +118 -0
- package/dist/calendar/routes/index.d.ts +118 -0
- package/dist/calendar/routes/index.js +755 -0
- package/dist/calendar/routes/index.js.map +1 -0
- package/dist/calendar/routes/index.mjs +747 -0
- package/dist/calendar/routes/index.mjs.map +1 -0
- package/dist/components/index.d.mts +405 -0
- package/dist/components/index.d.ts +405 -0
- package/dist/components/index.js +2516 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/index.mjs +2396 -0
- package/dist/components/index.mjs.map +1 -0
- package/dist/drizzle-schema-BNhqj2AZ.d.mts +1114 -0
- package/dist/drizzle-schema-BNhqj2AZ.d.ts +1114 -0
- package/dist/festivalCard/index.d.mts +76 -0
- package/dist/festivalCard/index.d.ts +76 -0
- package/dist/festivalCard/index.js +1492 -0
- package/dist/festivalCard/index.js.map +1 -0
- package/dist/festivalCard/index.mjs +1475 -0
- package/dist/festivalCard/index.mjs.map +1 -0
- package/dist/festivalCard/routes/index.d.mts +42 -0
- package/dist/festivalCard/routes/index.d.ts +42 -0
- package/dist/festivalCard/routes/index.js +361 -0
- package/dist/festivalCard/routes/index.js.map +1 -0
- package/dist/festivalCard/routes/index.mjs +356 -0
- package/dist/festivalCard/routes/index.mjs.map +1 -0
- package/dist/festivalCard/server/index.d.mts +120 -0
- package/dist/festivalCard/server/index.d.ts +120 -0
- package/dist/festivalCard/server/index.js +272 -0
- package/dist/festivalCard/server/index.js.map +1 -0
- package/dist/festivalCard/server/index.mjs +265 -0
- package/dist/festivalCard/server/index.mjs.map +1 -0
- package/dist/festivalCardService-BFCRhJrq.d.ts +13 -0
- package/dist/festivalCardService-GriR2VMc.d.mts +13 -0
- package/dist/index-1Ag7IBXN.d.ts +144 -0
- package/dist/index-DNKZ7-R_.d.mts +184 -0
- package/dist/index-DNKZ7-R_.d.ts +184 -0
- package/dist/index-DSel44Ke.d.mts +93 -0
- package/dist/index-DSel44Ke.d.ts +93 -0
- package/dist/index-DdeZSeTJ.d.mts +144 -0
- package/dist/index-DrPcMJPc.d.mts +250 -0
- package/dist/index-DrPcMJPc.d.ts +250 -0
- package/dist/index.d.mts +5334 -0
- package/dist/index.d.ts +5334 -0
- package/dist/index.js +18809 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +18533 -0
- package/dist/index.mjs.map +1 -0
- package/dist/mikuContest/ui/web/index.d.mts +2 -0
- package/dist/mikuContest/ui/web/index.d.ts +2 -0
- package/dist/mikuContest/ui/web/index.js +353 -0
- package/dist/mikuContest/ui/web/index.js.map +1 -0
- package/dist/mikuContest/ui/web/index.mjs +343 -0
- package/dist/mikuContest/ui/web/index.mjs.map +1 -0
- package/dist/mikuFireworks3D/index.d.mts +268 -0
- package/dist/mikuFireworks3D/index.d.ts +268 -0
- package/dist/mikuFireworks3D/index.js +1267 -0
- package/dist/mikuFireworks3D/index.js.map +1 -0
- package/dist/mikuFireworks3D/index.mjs +1228 -0
- package/dist/mikuFireworks3D/index.mjs.map +1 -0
- package/dist/mikuFusionGame/index.d.mts +117 -0
- package/dist/mikuFusionGame/index.d.ts +117 -0
- package/dist/mikuFusionGame/index.js +1208 -0
- package/dist/mikuFusionGame/index.js.map +1 -0
- package/dist/mikuFusionGame/index.mjs +1195 -0
- package/dist/mikuFusionGame/index.mjs.map +1 -0
- package/dist/mmd/admin/index.d.mts +487 -0
- package/dist/mmd/admin/index.d.ts +487 -0
- package/dist/mmd/admin/index.js +1058 -0
- package/dist/mmd/admin/index.js.map +1 -0
- package/dist/mmd/admin/index.mjs +1027 -0
- package/dist/mmd/admin/index.mjs.map +1 -0
- package/dist/mmd/index.d.mts +2467 -0
- package/dist/mmd/index.d.ts +2467 -0
- package/dist/mmd/index.js +10119 -0
- package/dist/mmd/index.js.map +1 -0
- package/dist/mmd/index.mjs +10028 -0
- package/dist/mmd/index.mjs.map +1 -0
- package/dist/mmd/server/index.d.mts +139 -0
- package/dist/mmd/server/index.d.ts +139 -0
- package/dist/mmd/server/index.js +424 -0
- package/dist/mmd/server/index.js.map +1 -0
- package/dist/mmd/server/index.mjs +404 -0
- package/dist/mmd/server/index.mjs.map +1 -0
- package/dist/music/index.d.mts +74 -0
- package/dist/music/index.d.ts +74 -0
- package/dist/music/index.js +830 -0
- package/dist/music/index.js.map +1 -0
- package/dist/music/index.mjs +809 -0
- package/dist/music/index.mjs.map +1 -0
- package/dist/music/server/index.d.mts +1 -0
- package/dist/music/server/index.d.ts +1 -0
- package/dist/music/server/index.js +194 -0
- package/dist/music/server/index.js.map +1 -0
- package/dist/music/server/index.mjs +182 -0
- package/dist/music/server/index.mjs.map +1 -0
- package/dist/navigation/index.d.mts +93 -0
- package/dist/navigation/index.d.ts +93 -0
- package/dist/navigation/index.js +453 -0
- package/dist/navigation/index.js.map +1 -0
- package/dist/navigation/index.mjs +443 -0
- package/dist/navigation/index.mjs.map +1 -0
- package/dist/portfolio/index.d.mts +66 -0
- package/dist/portfolio/index.d.ts +66 -0
- package/dist/portfolio/index.js +736 -0
- package/dist/portfolio/index.js.map +1 -0
- package/dist/portfolio/index.mjs +724 -0
- package/dist/portfolio/index.mjs.map +1 -0
- package/dist/qqbot/server/index.d.mts +216 -0
- package/dist/qqbot/server/index.d.ts +216 -0
- package/dist/qqbot/server/index.js +394 -0
- package/dist/qqbot/server/index.js.map +1 -0
- package/dist/qqbot/server/index.mjs +385 -0
- package/dist/qqbot/server/index.mjs.map +1 -0
- package/dist/qqbot/ui/web/index.d.mts +10 -0
- package/dist/qqbot/ui/web/index.d.ts +10 -0
- package/dist/qqbot/ui/web/index.js +105 -0
- package/dist/qqbot/ui/web/index.js.map +1 -0
- package/dist/qqbot/ui/web/index.mjs +99 -0
- package/dist/qqbot/ui/web/index.mjs.map +1 -0
- package/dist/screenReceiver/index.d.mts +86 -0
- package/dist/screenReceiver/index.d.ts +86 -0
- package/dist/screenReceiver/index.js +281 -0
- package/dist/screenReceiver/index.js.map +1 -0
- package/dist/screenReceiver/index.mjs +273 -0
- package/dist/screenReceiver/index.mjs.map +1 -0
- package/dist/testYourself/admin/index.d.mts +58 -0
- package/dist/testYourself/admin/index.d.ts +58 -0
- package/dist/testYourself/admin/index.js +1009 -0
- package/dist/testYourself/admin/index.js.map +1 -0
- package/dist/testYourself/admin/index.mjs +1002 -0
- package/dist/testYourself/admin/index.mjs.map +1 -0
- package/dist/testYourself/index.d.mts +53 -0
- package/dist/testYourself/index.d.ts +53 -0
- package/dist/testYourself/index.js +2551 -0
- package/dist/testYourself/index.js.map +1 -0
- package/dist/testYourself/index.mjs +2531 -0
- package/dist/testYourself/index.mjs.map +1 -0
- package/dist/testYourself/server/index.d.mts +1029 -0
- package/dist/testYourself/server/index.d.ts +1029 -0
- package/dist/testYourself/server/index.js +825 -0
- package/dist/testYourself/server/index.js.map +1 -0
- package/dist/testYourself/server/index.mjs +816 -0
- package/dist/testYourself/server/index.mjs.map +1 -0
- package/dist/types-BTiaMsBz.d.mts +292 -0
- package/dist/types-DyG3ZV9V.d.mts +270 -0
- package/dist/types-DyG3ZV9V.d.ts +270 -0
- package/dist/types-ERmJyjx8.d.ts +292 -0
- package/dist/types-HorDyIRv.d.mts +303 -0
- package/dist/types-HorDyIRv.d.ts +303 -0
- package/dist/types-tQfupO6d.d.mts +70 -0
- package/dist/types-tQfupO6d.d.ts +70 -0
- package/dist/vocaloidBooth/index.d.mts +64 -0
- package/dist/vocaloidBooth/index.d.ts +64 -0
- package/dist/vocaloidBooth/index.js +376 -0
- package/dist/vocaloidBooth/index.js.map +1 -0
- package/dist/vocaloidBooth/index.mjs +362 -0
- package/dist/vocaloidBooth/index.mjs.map +1 -0
- package/dist/vocaloidBooth/server/index.d.mts +111 -0
- package/dist/vocaloidBooth/server/index.d.ts +111 -0
- package/dist/vocaloidBooth/server/index.js +247 -0
- package/dist/vocaloidBooth/server/index.js.map +1 -0
- package/dist/vocaloidBooth/server/index.mjs +237 -0
- package/dist/vocaloidBooth/server/index.mjs.map +1 -0
- package/dist/vocaloidBooth/web/index.d.mts +3 -0
- package/dist/vocaloidBooth/web/index.d.ts +3 -0
- package/dist/vocaloidBooth/web/index.js +376 -0
- package/dist/vocaloidBooth/web/index.js.map +1 -0
- package/dist/vocaloidBooth/web/index.mjs +362 -0
- package/dist/vocaloidBooth/web/index.mjs.map +1 -0
- package/package.json +11 -1
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { AuthGuard, ForgotPasswordModal, LoginModal, RegisterModal, UserMenu } from './auth/legacy/ui/web/index.mjs';
|
|
2
|
+
import { AuthProvider, useAuth } from './auth/legacy/logic/index.mjs';
|
|
3
|
+
import { A as AuthGuardProps, i as AuthService, C as CustomMenuItem, F as ForgotPasswordModalProps, e as LoginModalProps, L as LoginRequest, b as LoginResponse, f as RegisterModalProps, R as RegisterRequest, c as RegisterResponse, k as SessionConfig, d as SessionValidation, S as SessionValidationResponse, h as UseAuthReturn, U as User, g as UserMenuProps, j as UserRole, a as UserSession, V as ValidateApiAuth } from './index-DNKZ7-R_.mjs';
|
|
4
|
+
import { calculateSessionExpiry, generateSessionToken, getUserDisplayName, isActiveUser, isAdmin, isSessionExpired, validatePassword, validatePhoneNumber } from './auth/legacy/core/index.mjs';
|
|
5
|
+
import React__default from 'react';
|
|
6
|
+
|
|
7
|
+
declare const index$3_AuthGuard: typeof AuthGuard;
|
|
8
|
+
declare const index$3_AuthGuardProps: typeof AuthGuardProps;
|
|
9
|
+
declare const index$3_AuthProvider: typeof AuthProvider;
|
|
10
|
+
declare const index$3_AuthService: typeof AuthService;
|
|
11
|
+
declare const index$3_CustomMenuItem: typeof CustomMenuItem;
|
|
12
|
+
declare const index$3_ForgotPasswordModal: typeof ForgotPasswordModal;
|
|
13
|
+
declare const index$3_ForgotPasswordModalProps: typeof ForgotPasswordModalProps;
|
|
14
|
+
declare const index$3_LoginModal: typeof LoginModal;
|
|
15
|
+
declare const index$3_LoginModalProps: typeof LoginModalProps;
|
|
16
|
+
declare const index$3_LoginRequest: typeof LoginRequest;
|
|
17
|
+
declare const index$3_LoginResponse: typeof LoginResponse;
|
|
18
|
+
declare const index$3_RegisterModal: typeof RegisterModal;
|
|
19
|
+
declare const index$3_RegisterModalProps: typeof RegisterModalProps;
|
|
20
|
+
declare const index$3_RegisterRequest: typeof RegisterRequest;
|
|
21
|
+
declare const index$3_RegisterResponse: typeof RegisterResponse;
|
|
22
|
+
declare const index$3_SessionConfig: typeof SessionConfig;
|
|
23
|
+
declare const index$3_SessionValidation: typeof SessionValidation;
|
|
24
|
+
declare const index$3_SessionValidationResponse: typeof SessionValidationResponse;
|
|
25
|
+
declare const index$3_UseAuthReturn: typeof UseAuthReturn;
|
|
26
|
+
declare const index$3_User: typeof User;
|
|
27
|
+
declare const index$3_UserMenu: typeof UserMenu;
|
|
28
|
+
declare const index$3_UserMenuProps: typeof UserMenuProps;
|
|
29
|
+
declare const index$3_UserRole: typeof UserRole;
|
|
30
|
+
declare const index$3_UserSession: typeof UserSession;
|
|
31
|
+
declare const index$3_ValidateApiAuth: typeof ValidateApiAuth;
|
|
32
|
+
declare const index$3_calculateSessionExpiry: typeof calculateSessionExpiry;
|
|
33
|
+
declare const index$3_generateSessionToken: typeof generateSessionToken;
|
|
34
|
+
declare const index$3_getUserDisplayName: typeof getUserDisplayName;
|
|
35
|
+
declare const index$3_isActiveUser: typeof isActiveUser;
|
|
36
|
+
declare const index$3_isAdmin: typeof isAdmin;
|
|
37
|
+
declare const index$3_isSessionExpired: typeof isSessionExpired;
|
|
38
|
+
declare const index$3_useAuth: typeof useAuth;
|
|
39
|
+
declare const index$3_validatePassword: typeof validatePassword;
|
|
40
|
+
declare const index$3_validatePhoneNumber: typeof validatePhoneNumber;
|
|
41
|
+
declare namespace index$3 {
|
|
42
|
+
export { index$3_AuthGuard as AuthGuard, index$3_AuthGuardProps as AuthGuardProps, index$3_AuthProvider as AuthProvider, index$3_AuthService as AuthService, index$3_CustomMenuItem as CustomMenuItem, index$3_ForgotPasswordModal as ForgotPasswordModal, index$3_ForgotPasswordModalProps as ForgotPasswordModalProps, index$3_LoginModal as LoginModal, index$3_LoginModalProps as LoginModalProps, index$3_LoginRequest as LoginRequest, index$3_LoginResponse as LoginResponse, index$3_RegisterModal as RegisterModal, index$3_RegisterModalProps as RegisterModalProps, index$3_RegisterRequest as RegisterRequest, index$3_RegisterResponse as RegisterResponse, index$3_SessionConfig as SessionConfig, index$3_SessionValidation as SessionValidation, index$3_SessionValidationResponse as SessionValidationResponse, index$3_UseAuthReturn as UseAuthReturn, index$3_User as User, index$3_UserMenu as UserMenu, index$3_UserMenuProps as UserMenuProps, index$3_UserRole as UserRole, index$3_UserSession as UserSession, index$3_ValidateApiAuth as ValidateApiAuth, index$3_calculateSessionExpiry as calculateSessionExpiry, index$3_generateSessionToken as generateSessionToken, index$3_getUserDisplayName as getUserDisplayName, index$3_isActiveUser as isActiveUser, index$3_isAdmin as isAdmin, index$3_isSessionExpired as isSessionExpired, index$3_useAuth as useAuth, index$3_validatePassword as validatePassword, index$3_validatePhoneNumber as validatePhoneNumber };
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
type BubbleShooterStatus = 'ready' | 'shooting' | 'won' | 'lost';
|
|
46
|
+
interface BubbleShooterConfig {
|
|
47
|
+
rows: number;
|
|
48
|
+
cols: number;
|
|
49
|
+
initialRows: number;
|
|
50
|
+
bubbleRadius: number;
|
|
51
|
+
topOffset: number;
|
|
52
|
+
palette: string[];
|
|
53
|
+
launchSpeed: number;
|
|
54
|
+
minMatchCount: number;
|
|
55
|
+
}
|
|
56
|
+
interface BubbleShooterSlot {
|
|
57
|
+
row: number;
|
|
58
|
+
col: number;
|
|
59
|
+
}
|
|
60
|
+
interface BubbleShooterProjectile {
|
|
61
|
+
x: number;
|
|
62
|
+
y: number;
|
|
63
|
+
vx: number;
|
|
64
|
+
vy: number;
|
|
65
|
+
color: string;
|
|
66
|
+
}
|
|
67
|
+
interface BubbleShooterResolution {
|
|
68
|
+
grid: (string | null)[][];
|
|
69
|
+
removed: number;
|
|
70
|
+
matched: number;
|
|
71
|
+
dropped: number;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
declare const DEFAULT_BUBBLE_SHOOTER_CONFIG: BubbleShooterConfig;
|
|
75
|
+
declare const getBubbleDiameter: (config: BubbleShooterConfig) => number;
|
|
76
|
+
declare const getRowStep: (config: BubbleShooterConfig) => number;
|
|
77
|
+
declare const getBoardWidth: (config: BubbleShooterConfig) => number;
|
|
78
|
+
declare const getBoardHeight: (config: BubbleShooterConfig) => number;
|
|
79
|
+
declare const createEmptyGrid: (config: BubbleShooterConfig) => (string | null)[][];
|
|
80
|
+
declare const createInitialGrid: (config: BubbleShooterConfig) => (string | null)[][];
|
|
81
|
+
declare const pickRandomColor: (palette: string[]) => string;
|
|
82
|
+
declare const getBubblePosition: (row: number, col: number, config: BubbleShooterConfig) => {
|
|
83
|
+
x: number;
|
|
84
|
+
y: number;
|
|
85
|
+
};
|
|
86
|
+
declare const isValidSlot: (slot: BubbleShooterSlot, config: BubbleShooterConfig) => boolean;
|
|
87
|
+
declare const getNeighbors: (slot: BubbleShooterSlot, config: BubbleShooterConfig) => BubbleShooterSlot[];
|
|
88
|
+
declare const getNearestSlot: (x: number, y: number, config: BubbleShooterConfig) => BubbleShooterSlot;
|
|
89
|
+
declare const findAttachSlot: (x: number, y: number, grid: (string | null)[][], config: BubbleShooterConfig, preferred?: BubbleShooterSlot) => BubbleShooterSlot | null;
|
|
90
|
+
declare const findCollisionSlot: (x: number, y: number, grid: (string | null)[][], config: BubbleShooterConfig) => BubbleShooterSlot | null;
|
|
91
|
+
declare const resolveMatches: (grid: (string | null)[][], placed: BubbleShooterSlot, config: BubbleShooterConfig) => BubbleShooterResolution;
|
|
92
|
+
declare const hasAnyBubble: (grid: (string | null)[][]) => boolean;
|
|
93
|
+
declare const hasReachedDangerLine: (grid: (string | null)[][], config: BubbleShooterConfig, dangerRowOffset?: number) => boolean;
|
|
94
|
+
|
|
95
|
+
interface BubbleShooterBoardProps {
|
|
96
|
+
config?: Partial<BubbleShooterConfig>;
|
|
97
|
+
className?: string;
|
|
98
|
+
}
|
|
99
|
+
declare const BubbleShooterBoard: React__default.FC<BubbleShooterBoardProps>;
|
|
100
|
+
|
|
101
|
+
interface BubbleShooterGamePageProps {
|
|
102
|
+
config?: Partial<BubbleShooterConfig>;
|
|
103
|
+
title?: string;
|
|
104
|
+
description?: string;
|
|
105
|
+
}
|
|
106
|
+
declare const BubbleShooterGamePage: React__default.FC<BubbleShooterGamePageProps>;
|
|
107
|
+
|
|
108
|
+
declare const index$2_BubbleShooterBoard: typeof BubbleShooterBoard;
|
|
109
|
+
declare const index$2_BubbleShooterGamePage: typeof BubbleShooterGamePage;
|
|
110
|
+
declare namespace index$2 {
|
|
111
|
+
export { index$2_BubbleShooterBoard as BubbleShooterBoard, index$2_BubbleShooterGamePage as BubbleShooterGamePage };
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
type index$1_BubbleShooterConfig = BubbleShooterConfig;
|
|
115
|
+
type index$1_BubbleShooterProjectile = BubbleShooterProjectile;
|
|
116
|
+
type index$1_BubbleShooterResolution = BubbleShooterResolution;
|
|
117
|
+
type index$1_BubbleShooterSlot = BubbleShooterSlot;
|
|
118
|
+
type index$1_BubbleShooterStatus = BubbleShooterStatus;
|
|
119
|
+
declare const index$1_DEFAULT_BUBBLE_SHOOTER_CONFIG: typeof DEFAULT_BUBBLE_SHOOTER_CONFIG;
|
|
120
|
+
declare const index$1_createEmptyGrid: typeof createEmptyGrid;
|
|
121
|
+
declare const index$1_createInitialGrid: typeof createInitialGrid;
|
|
122
|
+
declare const index$1_findAttachSlot: typeof findAttachSlot;
|
|
123
|
+
declare const index$1_findCollisionSlot: typeof findCollisionSlot;
|
|
124
|
+
declare const index$1_getBoardHeight: typeof getBoardHeight;
|
|
125
|
+
declare const index$1_getBoardWidth: typeof getBoardWidth;
|
|
126
|
+
declare const index$1_getBubbleDiameter: typeof getBubbleDiameter;
|
|
127
|
+
declare const index$1_getBubblePosition: typeof getBubblePosition;
|
|
128
|
+
declare const index$1_getNearestSlot: typeof getNearestSlot;
|
|
129
|
+
declare const index$1_getNeighbors: typeof getNeighbors;
|
|
130
|
+
declare const index$1_getRowStep: typeof getRowStep;
|
|
131
|
+
declare const index$1_hasAnyBubble: typeof hasAnyBubble;
|
|
132
|
+
declare const index$1_hasReachedDangerLine: typeof hasReachedDangerLine;
|
|
133
|
+
declare const index$1_isValidSlot: typeof isValidSlot;
|
|
134
|
+
declare const index$1_pickRandomColor: typeof pickRandomColor;
|
|
135
|
+
declare const index$1_resolveMatches: typeof resolveMatches;
|
|
136
|
+
declare namespace index$1 {
|
|
137
|
+
export { type index$1_BubbleShooterConfig as BubbleShooterConfig, type index$1_BubbleShooterProjectile as BubbleShooterProjectile, type index$1_BubbleShooterResolution as BubbleShooterResolution, type index$1_BubbleShooterSlot as BubbleShooterSlot, type index$1_BubbleShooterStatus as BubbleShooterStatus, index$1_DEFAULT_BUBBLE_SHOOTER_CONFIG as DEFAULT_BUBBLE_SHOOTER_CONFIG, index$1_createEmptyGrid as createEmptyGrid, index$1_createInitialGrid as createInitialGrid, index$1_findAttachSlot as findAttachSlot, index$1_findCollisionSlot as findCollisionSlot, index$1_getBoardHeight as getBoardHeight, index$1_getBoardWidth as getBoardWidth, index$1_getBubbleDiameter as getBubbleDiameter, index$1_getBubblePosition as getBubblePosition, index$1_getNearestSlot as getNearestSlot, index$1_getNeighbors as getNeighbors, index$1_getRowStep as getRowStep, index$1_hasAnyBubble as hasAnyBubble, index$1_hasReachedDangerLine as hasReachedDangerLine, index$1_isValidSlot as isValidSlot, index$1_pickRandomColor as pickRandomColor, index$1_resolveMatches as resolveMatches, index$2 as webUI };
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
declare namespace index {
|
|
141
|
+
export { index$3 as authLegacy, index$1 as bubbleShooter };
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export { index$1 as a, index$3 as b, index as i };
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
|
|
3
|
+
type MikuContestRole = 'user' | 'admin' | 'judge';
|
|
4
|
+
interface MikuContestTimeline {
|
|
5
|
+
submissionStartAt: string;
|
|
6
|
+
submissionEndAt: string;
|
|
7
|
+
votingStartAt: string;
|
|
8
|
+
votingEndAt: string;
|
|
9
|
+
publicResultAt: string;
|
|
10
|
+
}
|
|
11
|
+
interface MikuFeatureToggles {
|
|
12
|
+
submissionEnabled: boolean;
|
|
13
|
+
votingEnabled: boolean;
|
|
14
|
+
resultEnabled: boolean;
|
|
15
|
+
}
|
|
16
|
+
interface MikuVotingRules {
|
|
17
|
+
maxVotesPerDay: number;
|
|
18
|
+
forbidDuplicateVotePerWork: boolean;
|
|
19
|
+
maxVotesPerDevicePerDay?: number;
|
|
20
|
+
maxVotesPerIpPerDay?: number;
|
|
21
|
+
}
|
|
22
|
+
interface MikuContestConfig {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
theme: string;
|
|
26
|
+
organizer: string;
|
|
27
|
+
awards: string[];
|
|
28
|
+
rules: string;
|
|
29
|
+
copyright: string;
|
|
30
|
+
timeline: MikuContestTimeline;
|
|
31
|
+
votingRules: MikuVotingRules;
|
|
32
|
+
toggles: MikuFeatureToggles;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
type MikuWorkType = 'visual' | 'video' | 'text' | 'audio';
|
|
36
|
+
type MikuSubmissionStatus = 'pending' | 'approved' | 'rejected';
|
|
37
|
+
interface MikuSubmissionContent {
|
|
38
|
+
images?: string[];
|
|
39
|
+
videoLink?: string;
|
|
40
|
+
textContent?: string;
|
|
41
|
+
audioLink?: string;
|
|
42
|
+
coverImage?: string;
|
|
43
|
+
}
|
|
44
|
+
interface MikuSubmission {
|
|
45
|
+
id: string;
|
|
46
|
+
contestId: string;
|
|
47
|
+
serialNo: string;
|
|
48
|
+
authorId: string;
|
|
49
|
+
authorNickname: string;
|
|
50
|
+
title: string;
|
|
51
|
+
type: MikuWorkType;
|
|
52
|
+
description: string;
|
|
53
|
+
tags: string[];
|
|
54
|
+
content: MikuSubmissionContent;
|
|
55
|
+
voteCount: number;
|
|
56
|
+
status: MikuSubmissionStatus;
|
|
57
|
+
rejectReason?: string;
|
|
58
|
+
createdAt: string;
|
|
59
|
+
reviewedAt?: string;
|
|
60
|
+
updatedAt: string;
|
|
61
|
+
}
|
|
62
|
+
interface MikuSubmissionFilter {
|
|
63
|
+
status?: MikuSubmissionStatus;
|
|
64
|
+
type?: MikuWorkType;
|
|
65
|
+
authorId?: string;
|
|
66
|
+
authorKeyword?: string;
|
|
67
|
+
titleKeyword?: string;
|
|
68
|
+
}
|
|
69
|
+
interface CreateMikuSubmissionInput {
|
|
70
|
+
contestId: string;
|
|
71
|
+
authorId: string;
|
|
72
|
+
authorNickname: string;
|
|
73
|
+
title: string;
|
|
74
|
+
type: MikuWorkType;
|
|
75
|
+
description: string;
|
|
76
|
+
tags?: string[];
|
|
77
|
+
content: MikuSubmissionContent;
|
|
78
|
+
}
|
|
79
|
+
interface ReviewMikuSubmissionInput {
|
|
80
|
+
submissionId: string;
|
|
81
|
+
reviewerId: string;
|
|
82
|
+
action: 'approve' | 'reject';
|
|
83
|
+
rejectReason?: string;
|
|
84
|
+
}
|
|
85
|
+
interface MikuSubmissionExportRow {
|
|
86
|
+
投稿编号: string;
|
|
87
|
+
投稿ID: string;
|
|
88
|
+
赛事ID: string;
|
|
89
|
+
作者ID: string;
|
|
90
|
+
作者昵称: string;
|
|
91
|
+
作品名称: string;
|
|
92
|
+
作品类型: MikuWorkType;
|
|
93
|
+
简介: string;
|
|
94
|
+
标签: string;
|
|
95
|
+
审核状态: MikuSubmissionStatus;
|
|
96
|
+
驳回原因: string;
|
|
97
|
+
票数: number;
|
|
98
|
+
提交时间: string;
|
|
99
|
+
更新时间: string;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
interface MikuVoteRecord {
|
|
103
|
+
id: string;
|
|
104
|
+
contestId: string;
|
|
105
|
+
submissionId: string;
|
|
106
|
+
voterId: string;
|
|
107
|
+
votedAt: string;
|
|
108
|
+
dayKey: string;
|
|
109
|
+
deviceId?: string;
|
|
110
|
+
ip?: string;
|
|
111
|
+
}
|
|
112
|
+
interface VoteMikuSubmissionInput {
|
|
113
|
+
contestId: string;
|
|
114
|
+
submissionId: string;
|
|
115
|
+
voterId: string;
|
|
116
|
+
deviceId?: string;
|
|
117
|
+
ip?: string;
|
|
118
|
+
}
|
|
119
|
+
interface MikuVoterRestriction {
|
|
120
|
+
voterId: string;
|
|
121
|
+
banned: boolean;
|
|
122
|
+
reason?: string;
|
|
123
|
+
operatorId?: string;
|
|
124
|
+
updatedAt: string;
|
|
125
|
+
}
|
|
126
|
+
interface SetMikuVoterRestrictionInput {
|
|
127
|
+
voterId: string;
|
|
128
|
+
banned: boolean;
|
|
129
|
+
reason?: string;
|
|
130
|
+
operatorId?: string;
|
|
131
|
+
}
|
|
132
|
+
interface ResetMikuVotesInput {
|
|
133
|
+
submissionId?: string;
|
|
134
|
+
voterId?: string;
|
|
135
|
+
operatorId?: string;
|
|
136
|
+
reason?: string;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
type MikuNoticeType = 'notice' | 'progress' | 'winner' | 'rejection';
|
|
140
|
+
interface MikuAnnouncement {
|
|
141
|
+
id: string;
|
|
142
|
+
contestId: string;
|
|
143
|
+
title: string;
|
|
144
|
+
content: string;
|
|
145
|
+
type: MikuNoticeType;
|
|
146
|
+
createdBy: string;
|
|
147
|
+
createdAt: string;
|
|
148
|
+
updatedAt: string;
|
|
149
|
+
}
|
|
150
|
+
interface CreateMikuAnnouncementInput {
|
|
151
|
+
contestId: string;
|
|
152
|
+
title: string;
|
|
153
|
+
content: string;
|
|
154
|
+
type: MikuNoticeType;
|
|
155
|
+
createdBy: string;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
interface MikuLeaderboardItem {
|
|
159
|
+
submissionId: string;
|
|
160
|
+
title: string;
|
|
161
|
+
authorNickname: string;
|
|
162
|
+
voteCount: number;
|
|
163
|
+
rank: number;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
interface MikuContestStateSnapshot {
|
|
167
|
+
contest: MikuContestConfig;
|
|
168
|
+
submissions: MikuSubmission[];
|
|
169
|
+
announcements: MikuAnnouncement[];
|
|
170
|
+
leaderboard: MikuLeaderboardItem[];
|
|
171
|
+
}
|
|
172
|
+
interface MikuContestPersistedState {
|
|
173
|
+
contest: MikuContestConfig;
|
|
174
|
+
submissions: MikuSubmission[];
|
|
175
|
+
votes: MikuVoteRecord[];
|
|
176
|
+
announcements: MikuAnnouncement[];
|
|
177
|
+
voterRestrictions: MikuVoterRestriction[];
|
|
178
|
+
updatedAt: string;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
interface MikuContestApiClient {
|
|
182
|
+
getSnapshot(): Promise<MikuContestStateSnapshot>;
|
|
183
|
+
updateContestConfig(patch: Partial<MikuContestConfig>): Promise<MikuContestConfig>;
|
|
184
|
+
createSubmission(input: CreateMikuSubmissionInput, mode?: 'web' | 'miniapp'): Promise<MikuSubmission>;
|
|
185
|
+
listSubmissions(filter?: MikuSubmissionFilter): Promise<MikuSubmission[]>;
|
|
186
|
+
reviewSubmission(input: ReviewMikuSubmissionInput): Promise<MikuSubmission>;
|
|
187
|
+
vote(input: VoteMikuSubmissionInput): Promise<MikuSubmission>;
|
|
188
|
+
setVoterRestriction(input: SetMikuVoterRestrictionInput): Promise<MikuVoterRestriction>;
|
|
189
|
+
resetVotes(input: ResetMikuVotesInput): Promise<{
|
|
190
|
+
removedVotes: number;
|
|
191
|
+
affectedSubmissions: string[];
|
|
192
|
+
}>;
|
|
193
|
+
exportSubmissions(filter?: MikuSubmissionFilter): Promise<ArrayBuffer>;
|
|
194
|
+
}
|
|
195
|
+
type HttpMethod = 'GET' | 'POST' | 'PATCH';
|
|
196
|
+
interface Requester {
|
|
197
|
+
<T>(url: string, options?: {
|
|
198
|
+
method?: HttpMethod;
|
|
199
|
+
body?: unknown;
|
|
200
|
+
}): Promise<T>;
|
|
201
|
+
}
|
|
202
|
+
declare const createMikuContestApiClient: (basePath: string, requester: Requester) => MikuContestApiClient;
|
|
203
|
+
|
|
204
|
+
interface MikuContestDashboardProps {
|
|
205
|
+
snapshot: MikuContestStateSnapshot;
|
|
206
|
+
}
|
|
207
|
+
declare const MikuContestDashboard: React__default.FC<MikuContestDashboardProps>;
|
|
208
|
+
|
|
209
|
+
type MikuContestView = 'audience' | 'artist' | 'admin';
|
|
210
|
+
interface MikuContestPageProps {
|
|
211
|
+
defaultView?: MikuContestView;
|
|
212
|
+
viewerVoterId?: string;
|
|
213
|
+
artistId?: string;
|
|
214
|
+
artistNickname?: string;
|
|
215
|
+
adminId?: string;
|
|
216
|
+
}
|
|
217
|
+
declare const MikuContestPage: React__default.FC<MikuContestPageProps>;
|
|
218
|
+
|
|
219
|
+
interface MikuContestAudiencePageProps {
|
|
220
|
+
client?: Pick<MikuContestApiClient, 'getSnapshot' | 'vote'>;
|
|
221
|
+
voterId: string;
|
|
222
|
+
title?: string;
|
|
223
|
+
}
|
|
224
|
+
declare const MikuContestAudiencePage: React__default.FC<MikuContestAudiencePageProps>;
|
|
225
|
+
|
|
226
|
+
interface MikuContestArtistPageProps {
|
|
227
|
+
client?: Pick<MikuContestApiClient, 'getSnapshot' | 'createSubmission' | 'listSubmissions'>;
|
|
228
|
+
authorId: string;
|
|
229
|
+
authorNickname: string;
|
|
230
|
+
title?: string;
|
|
231
|
+
}
|
|
232
|
+
declare const MikuContestArtistPage: React__default.FC<MikuContestArtistPageProps>;
|
|
233
|
+
|
|
234
|
+
interface MikuContestAdminPageProps {
|
|
235
|
+
client?: Pick<MikuContestApiClient, 'getSnapshot' | 'listSubmissions' | 'reviewSubmission' | 'setVoterRestriction' | 'resetVotes' | 'exportSubmissions' | 'updateContestConfig'>;
|
|
236
|
+
adminId: string;
|
|
237
|
+
title?: string;
|
|
238
|
+
}
|
|
239
|
+
declare const MikuContestAdminPage: React__default.FC<MikuContestAdminPageProps>;
|
|
240
|
+
|
|
241
|
+
declare const index_MikuContestAdminPage: typeof MikuContestAdminPage;
|
|
242
|
+
declare const index_MikuContestArtistPage: typeof MikuContestArtistPage;
|
|
243
|
+
declare const index_MikuContestAudiencePage: typeof MikuContestAudiencePage;
|
|
244
|
+
declare const index_MikuContestDashboard: typeof MikuContestDashboard;
|
|
245
|
+
declare const index_MikuContestPage: typeof MikuContestPage;
|
|
246
|
+
declare namespace index {
|
|
247
|
+
export { index_MikuContestAdminPage as MikuContestAdminPage, index_MikuContestArtistPage as MikuContestArtistPage, index_MikuContestAudiencePage as MikuContestAudiencePage, index_MikuContestDashboard as MikuContestDashboard, index_MikuContestPage as MikuContestPage };
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export { MikuContestArtistPage as A, MikuContestAdminPage as B, type CreateMikuSubmissionInput as C, type HttpMethod as H, type MikuContestConfig as M, type ReviewMikuSubmissionInput as R, type SetMikuVoterRestrictionInput as S, type VoteMikuSubmissionInput as V, type MikuSubmission as a, type MikuSubmissionFilter as b, type MikuVoterRestriction as c, type ResetMikuVotesInput as d, type MikuAnnouncement as e, type CreateMikuAnnouncementInput as f, type MikuLeaderboardItem as g, type MikuContestStateSnapshot as h, type MikuSubmissionExportRow as i, type MikuContestPersistedState as j, type MikuSubmissionContent as k, type MikuVoteRecord as l, type MikuVotingRules as m, type MikuContestApiClient as n, type Requester as o, index as p, type MikuContestRole as q, type MikuContestTimeline as r, type MikuFeatureToggles as s, type MikuWorkType as t, type MikuSubmissionStatus as u, type MikuNoticeType as v, createMikuContestApiClient as w, MikuContestDashboard as x, MikuContestPage as y, MikuContestAudiencePage as z };
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
|
|
3
|
+
type MikuContestRole = 'user' | 'admin' | 'judge';
|
|
4
|
+
interface MikuContestTimeline {
|
|
5
|
+
submissionStartAt: string;
|
|
6
|
+
submissionEndAt: string;
|
|
7
|
+
votingStartAt: string;
|
|
8
|
+
votingEndAt: string;
|
|
9
|
+
publicResultAt: string;
|
|
10
|
+
}
|
|
11
|
+
interface MikuFeatureToggles {
|
|
12
|
+
submissionEnabled: boolean;
|
|
13
|
+
votingEnabled: boolean;
|
|
14
|
+
resultEnabled: boolean;
|
|
15
|
+
}
|
|
16
|
+
interface MikuVotingRules {
|
|
17
|
+
maxVotesPerDay: number;
|
|
18
|
+
forbidDuplicateVotePerWork: boolean;
|
|
19
|
+
maxVotesPerDevicePerDay?: number;
|
|
20
|
+
maxVotesPerIpPerDay?: number;
|
|
21
|
+
}
|
|
22
|
+
interface MikuContestConfig {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
theme: string;
|
|
26
|
+
organizer: string;
|
|
27
|
+
awards: string[];
|
|
28
|
+
rules: string;
|
|
29
|
+
copyright: string;
|
|
30
|
+
timeline: MikuContestTimeline;
|
|
31
|
+
votingRules: MikuVotingRules;
|
|
32
|
+
toggles: MikuFeatureToggles;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
type MikuWorkType = 'visual' | 'video' | 'text' | 'audio';
|
|
36
|
+
type MikuSubmissionStatus = 'pending' | 'approved' | 'rejected';
|
|
37
|
+
interface MikuSubmissionContent {
|
|
38
|
+
images?: string[];
|
|
39
|
+
videoLink?: string;
|
|
40
|
+
textContent?: string;
|
|
41
|
+
audioLink?: string;
|
|
42
|
+
coverImage?: string;
|
|
43
|
+
}
|
|
44
|
+
interface MikuSubmission {
|
|
45
|
+
id: string;
|
|
46
|
+
contestId: string;
|
|
47
|
+
serialNo: string;
|
|
48
|
+
authorId: string;
|
|
49
|
+
authorNickname: string;
|
|
50
|
+
title: string;
|
|
51
|
+
type: MikuWorkType;
|
|
52
|
+
description: string;
|
|
53
|
+
tags: string[];
|
|
54
|
+
content: MikuSubmissionContent;
|
|
55
|
+
voteCount: number;
|
|
56
|
+
status: MikuSubmissionStatus;
|
|
57
|
+
rejectReason?: string;
|
|
58
|
+
createdAt: string;
|
|
59
|
+
reviewedAt?: string;
|
|
60
|
+
updatedAt: string;
|
|
61
|
+
}
|
|
62
|
+
interface MikuSubmissionFilter {
|
|
63
|
+
status?: MikuSubmissionStatus;
|
|
64
|
+
type?: MikuWorkType;
|
|
65
|
+
authorId?: string;
|
|
66
|
+
authorKeyword?: string;
|
|
67
|
+
titleKeyword?: string;
|
|
68
|
+
}
|
|
69
|
+
interface CreateMikuSubmissionInput {
|
|
70
|
+
contestId: string;
|
|
71
|
+
authorId: string;
|
|
72
|
+
authorNickname: string;
|
|
73
|
+
title: string;
|
|
74
|
+
type: MikuWorkType;
|
|
75
|
+
description: string;
|
|
76
|
+
tags?: string[];
|
|
77
|
+
content: MikuSubmissionContent;
|
|
78
|
+
}
|
|
79
|
+
interface ReviewMikuSubmissionInput {
|
|
80
|
+
submissionId: string;
|
|
81
|
+
reviewerId: string;
|
|
82
|
+
action: 'approve' | 'reject';
|
|
83
|
+
rejectReason?: string;
|
|
84
|
+
}
|
|
85
|
+
interface MikuSubmissionExportRow {
|
|
86
|
+
投稿编号: string;
|
|
87
|
+
投稿ID: string;
|
|
88
|
+
赛事ID: string;
|
|
89
|
+
作者ID: string;
|
|
90
|
+
作者昵称: string;
|
|
91
|
+
作品名称: string;
|
|
92
|
+
作品类型: MikuWorkType;
|
|
93
|
+
简介: string;
|
|
94
|
+
标签: string;
|
|
95
|
+
审核状态: MikuSubmissionStatus;
|
|
96
|
+
驳回原因: string;
|
|
97
|
+
票数: number;
|
|
98
|
+
提交时间: string;
|
|
99
|
+
更新时间: string;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
interface MikuVoteRecord {
|
|
103
|
+
id: string;
|
|
104
|
+
contestId: string;
|
|
105
|
+
submissionId: string;
|
|
106
|
+
voterId: string;
|
|
107
|
+
votedAt: string;
|
|
108
|
+
dayKey: string;
|
|
109
|
+
deviceId?: string;
|
|
110
|
+
ip?: string;
|
|
111
|
+
}
|
|
112
|
+
interface VoteMikuSubmissionInput {
|
|
113
|
+
contestId: string;
|
|
114
|
+
submissionId: string;
|
|
115
|
+
voterId: string;
|
|
116
|
+
deviceId?: string;
|
|
117
|
+
ip?: string;
|
|
118
|
+
}
|
|
119
|
+
interface MikuVoterRestriction {
|
|
120
|
+
voterId: string;
|
|
121
|
+
banned: boolean;
|
|
122
|
+
reason?: string;
|
|
123
|
+
operatorId?: string;
|
|
124
|
+
updatedAt: string;
|
|
125
|
+
}
|
|
126
|
+
interface SetMikuVoterRestrictionInput {
|
|
127
|
+
voterId: string;
|
|
128
|
+
banned: boolean;
|
|
129
|
+
reason?: string;
|
|
130
|
+
operatorId?: string;
|
|
131
|
+
}
|
|
132
|
+
interface ResetMikuVotesInput {
|
|
133
|
+
submissionId?: string;
|
|
134
|
+
voterId?: string;
|
|
135
|
+
operatorId?: string;
|
|
136
|
+
reason?: string;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
type MikuNoticeType = 'notice' | 'progress' | 'winner' | 'rejection';
|
|
140
|
+
interface MikuAnnouncement {
|
|
141
|
+
id: string;
|
|
142
|
+
contestId: string;
|
|
143
|
+
title: string;
|
|
144
|
+
content: string;
|
|
145
|
+
type: MikuNoticeType;
|
|
146
|
+
createdBy: string;
|
|
147
|
+
createdAt: string;
|
|
148
|
+
updatedAt: string;
|
|
149
|
+
}
|
|
150
|
+
interface CreateMikuAnnouncementInput {
|
|
151
|
+
contestId: string;
|
|
152
|
+
title: string;
|
|
153
|
+
content: string;
|
|
154
|
+
type: MikuNoticeType;
|
|
155
|
+
createdBy: string;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
interface MikuLeaderboardItem {
|
|
159
|
+
submissionId: string;
|
|
160
|
+
title: string;
|
|
161
|
+
authorNickname: string;
|
|
162
|
+
voteCount: number;
|
|
163
|
+
rank: number;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
interface MikuContestStateSnapshot {
|
|
167
|
+
contest: MikuContestConfig;
|
|
168
|
+
submissions: MikuSubmission[];
|
|
169
|
+
announcements: MikuAnnouncement[];
|
|
170
|
+
leaderboard: MikuLeaderboardItem[];
|
|
171
|
+
}
|
|
172
|
+
interface MikuContestPersistedState {
|
|
173
|
+
contest: MikuContestConfig;
|
|
174
|
+
submissions: MikuSubmission[];
|
|
175
|
+
votes: MikuVoteRecord[];
|
|
176
|
+
announcements: MikuAnnouncement[];
|
|
177
|
+
voterRestrictions: MikuVoterRestriction[];
|
|
178
|
+
updatedAt: string;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
interface MikuContestApiClient {
|
|
182
|
+
getSnapshot(): Promise<MikuContestStateSnapshot>;
|
|
183
|
+
updateContestConfig(patch: Partial<MikuContestConfig>): Promise<MikuContestConfig>;
|
|
184
|
+
createSubmission(input: CreateMikuSubmissionInput, mode?: 'web' | 'miniapp'): Promise<MikuSubmission>;
|
|
185
|
+
listSubmissions(filter?: MikuSubmissionFilter): Promise<MikuSubmission[]>;
|
|
186
|
+
reviewSubmission(input: ReviewMikuSubmissionInput): Promise<MikuSubmission>;
|
|
187
|
+
vote(input: VoteMikuSubmissionInput): Promise<MikuSubmission>;
|
|
188
|
+
setVoterRestriction(input: SetMikuVoterRestrictionInput): Promise<MikuVoterRestriction>;
|
|
189
|
+
resetVotes(input: ResetMikuVotesInput): Promise<{
|
|
190
|
+
removedVotes: number;
|
|
191
|
+
affectedSubmissions: string[];
|
|
192
|
+
}>;
|
|
193
|
+
exportSubmissions(filter?: MikuSubmissionFilter): Promise<ArrayBuffer>;
|
|
194
|
+
}
|
|
195
|
+
type HttpMethod = 'GET' | 'POST' | 'PATCH';
|
|
196
|
+
interface Requester {
|
|
197
|
+
<T>(url: string, options?: {
|
|
198
|
+
method?: HttpMethod;
|
|
199
|
+
body?: unknown;
|
|
200
|
+
}): Promise<T>;
|
|
201
|
+
}
|
|
202
|
+
declare const createMikuContestApiClient: (basePath: string, requester: Requester) => MikuContestApiClient;
|
|
203
|
+
|
|
204
|
+
interface MikuContestDashboardProps {
|
|
205
|
+
snapshot: MikuContestStateSnapshot;
|
|
206
|
+
}
|
|
207
|
+
declare const MikuContestDashboard: React__default.FC<MikuContestDashboardProps>;
|
|
208
|
+
|
|
209
|
+
type MikuContestView = 'audience' | 'artist' | 'admin';
|
|
210
|
+
interface MikuContestPageProps {
|
|
211
|
+
defaultView?: MikuContestView;
|
|
212
|
+
viewerVoterId?: string;
|
|
213
|
+
artistId?: string;
|
|
214
|
+
artistNickname?: string;
|
|
215
|
+
adminId?: string;
|
|
216
|
+
}
|
|
217
|
+
declare const MikuContestPage: React__default.FC<MikuContestPageProps>;
|
|
218
|
+
|
|
219
|
+
interface MikuContestAudiencePageProps {
|
|
220
|
+
client?: Pick<MikuContestApiClient, 'getSnapshot' | 'vote'>;
|
|
221
|
+
voterId: string;
|
|
222
|
+
title?: string;
|
|
223
|
+
}
|
|
224
|
+
declare const MikuContestAudiencePage: React__default.FC<MikuContestAudiencePageProps>;
|
|
225
|
+
|
|
226
|
+
interface MikuContestArtistPageProps {
|
|
227
|
+
client?: Pick<MikuContestApiClient, 'getSnapshot' | 'createSubmission' | 'listSubmissions'>;
|
|
228
|
+
authorId: string;
|
|
229
|
+
authorNickname: string;
|
|
230
|
+
title?: string;
|
|
231
|
+
}
|
|
232
|
+
declare const MikuContestArtistPage: React__default.FC<MikuContestArtistPageProps>;
|
|
233
|
+
|
|
234
|
+
interface MikuContestAdminPageProps {
|
|
235
|
+
client?: Pick<MikuContestApiClient, 'getSnapshot' | 'listSubmissions' | 'reviewSubmission' | 'setVoterRestriction' | 'resetVotes' | 'exportSubmissions' | 'updateContestConfig'>;
|
|
236
|
+
adminId: string;
|
|
237
|
+
title?: string;
|
|
238
|
+
}
|
|
239
|
+
declare const MikuContestAdminPage: React__default.FC<MikuContestAdminPageProps>;
|
|
240
|
+
|
|
241
|
+
declare const index_MikuContestAdminPage: typeof MikuContestAdminPage;
|
|
242
|
+
declare const index_MikuContestArtistPage: typeof MikuContestArtistPage;
|
|
243
|
+
declare const index_MikuContestAudiencePage: typeof MikuContestAudiencePage;
|
|
244
|
+
declare const index_MikuContestDashboard: typeof MikuContestDashboard;
|
|
245
|
+
declare const index_MikuContestPage: typeof MikuContestPage;
|
|
246
|
+
declare namespace index {
|
|
247
|
+
export { index_MikuContestAdminPage as MikuContestAdminPage, index_MikuContestArtistPage as MikuContestArtistPage, index_MikuContestAudiencePage as MikuContestAudiencePage, index_MikuContestDashboard as MikuContestDashboard, index_MikuContestPage as MikuContestPage };
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export { MikuContestArtistPage as A, MikuContestAdminPage as B, type CreateMikuSubmissionInput as C, type HttpMethod as H, type MikuContestConfig as M, type ReviewMikuSubmissionInput as R, type SetMikuVoterRestrictionInput as S, type VoteMikuSubmissionInput as V, type MikuSubmission as a, type MikuSubmissionFilter as b, type MikuVoterRestriction as c, type ResetMikuVotesInput as d, type MikuAnnouncement as e, type CreateMikuAnnouncementInput as f, type MikuLeaderboardItem as g, type MikuContestStateSnapshot as h, type MikuSubmissionExportRow as i, type MikuContestPersistedState as j, type MikuSubmissionContent as k, type MikuVoteRecord as l, type MikuVotingRules as m, type MikuContestApiClient as n, type Requester as o, index as p, type MikuContestRole as q, type MikuContestTimeline as r, type MikuFeatureToggles as s, type MikuWorkType as t, type MikuSubmissionStatus as u, type MikuNoticeType as v, createMikuContestApiClient as w, MikuContestDashboard as x, MikuContestPage as y, MikuContestAudiencePage as z };
|