sa2kit 1.6.91 → 1.6.92

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 (65) hide show
  1. package/dist/client-BlkUL2To.d.ts +26 -0
  2. package/dist/client-DpMIhrlS.d.mts +26 -0
  3. package/dist/index-C7yh6b5Q.d.mts +17 -0
  4. package/dist/index-CDapUIT5.d.mts +51 -0
  5. package/dist/index-Cv9jlnNz.d.ts +17 -0
  6. package/dist/index-D3UbkUai.d.ts +51 -0
  7. package/dist/index.d.mts +11 -0
  8. package/dist/index.d.ts +11 -0
  9. package/dist/index.js +1337 -58
  10. package/dist/index.js.map +1 -1
  11. package/dist/index.mjs +1306 -61
  12. package/dist/index.mjs.map +1 -1
  13. package/dist/mikuContest/index.d.mts +13 -0
  14. package/dist/mikuContest/index.d.ts +13 -0
  15. package/dist/mikuContest/index.js +1310 -0
  16. package/dist/mikuContest/index.js.map +1 -0
  17. package/dist/mikuContest/index.mjs +1253 -0
  18. package/dist/mikuContest/index.mjs.map +1 -0
  19. package/dist/mikuContest/logic/index.d.mts +32 -0
  20. package/dist/mikuContest/logic/index.d.ts +32 -0
  21. package/dist/mikuContest/logic/index.js +511 -0
  22. package/dist/mikuContest/logic/index.js.map +1 -0
  23. package/dist/mikuContest/logic/index.mjs +483 -0
  24. package/dist/mikuContest/logic/index.mjs.map +1 -0
  25. package/dist/mikuContest/routes/index.d.mts +80 -0
  26. package/dist/mikuContest/routes/index.d.ts +80 -0
  27. package/dist/mikuContest/routes/index.js +821 -0
  28. package/dist/mikuContest/routes/index.js.map +1 -0
  29. package/dist/mikuContest/routes/index.mjs +791 -0
  30. package/dist/mikuContest/routes/index.mjs.map +1 -0
  31. package/dist/mikuContest/server/index.d.mts +766 -0
  32. package/dist/mikuContest/server/index.d.ts +766 -0
  33. package/dist/mikuContest/server/index.js +705 -0
  34. package/dist/mikuContest/server/index.js.map +1 -0
  35. package/dist/mikuContest/server/index.mjs +672 -0
  36. package/dist/mikuContest/server/index.mjs.map +1 -0
  37. package/dist/mikuContest/service/index.d.mts +30 -0
  38. package/dist/mikuContest/service/index.d.ts +30 -0
  39. package/dist/mikuContest/service/index.js +139 -0
  40. package/dist/mikuContest/service/index.js.map +1 -0
  41. package/dist/mikuContest/service/index.mjs +135 -0
  42. package/dist/mikuContest/service/index.mjs.map +1 -0
  43. package/dist/mikuContest/types/index.d.mts +179 -0
  44. package/dist/mikuContest/types/index.d.ts +179 -0
  45. package/dist/mikuContest/types/index.js +4 -0
  46. package/dist/mikuContest/types/index.js.map +1 -0
  47. package/dist/mikuContest/types/index.mjs +3 -0
  48. package/dist/mikuContest/types/index.mjs.map +1 -0
  49. package/dist/mikuContest/ui/miniapp/index.d.mts +3 -0
  50. package/dist/mikuContest/ui/miniapp/index.d.ts +3 -0
  51. package/dist/mikuContest/ui/miniapp/index.js +566 -0
  52. package/dist/mikuContest/ui/miniapp/index.js.map +1 -0
  53. package/dist/mikuContest/ui/miniapp/index.mjs +540 -0
  54. package/dist/mikuContest/ui/miniapp/index.mjs.map +1 -0
  55. package/dist/mikuContest/ui/web/index.d.mts +4 -0
  56. package/dist/mikuContest/ui/web/index.d.ts +4 -0
  57. package/dist/mikuContest/ui/web/index.js +353 -0
  58. package/dist/mikuContest/ui/web/index.js.map +1 -0
  59. package/dist/mikuContest/ui/web/index.mjs +343 -0
  60. package/dist/mikuContest/ui/web/index.mjs.map +1 -0
  61. package/dist/service-D7DM1wW-.d.ts +38 -0
  62. package/dist/service-DPr2rlvH.d.mts +38 -0
  63. package/dist/types-BS7Xz09b.d.mts +14 -0
  64. package/dist/types-k4koMp4m.d.ts +14 -0
  65. package/package.json +41 -1
@@ -0,0 +1,766 @@
1
+ import { M as MikuContestServiceOptions } from '../../service-D7DM1wW-.js';
2
+ export { a as MikuContestService, c as createMikuContestService } from '../../service-D7DM1wW-.js';
3
+ import { D as DrizzleLikeDb, M as MikuContestPersistenceAdapter } from '../../types-k4koMp4m.js';
4
+ import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
5
+ import { MikuContestConfig, MikuSubmissionContent, MikuVoterRestriction, MikuVoteRecord, MikuAnnouncement, MikuContestPersistedState, CreateMikuSubmissionInput, MikuSubmission, MikuSubmissionFilter, ReviewMikuSubmissionInput, VoteMikuSubmissionInput, SetMikuVoterRestrictionInput, ResetMikuVotesInput, CreateMikuAnnouncementInput, MikuLeaderboardItem, MikuContestStateSnapshot, MikuSubmissionExportRow } from '../types/index.js';
6
+
7
+ declare const mikuContestConfigs: drizzle_orm_pg_core.PgTableWithColumns<{
8
+ name: "miku_contest_configs";
9
+ schema: undefined;
10
+ columns: {
11
+ contestId: drizzle_orm_pg_core.PgColumn<{
12
+ name: "contest_id";
13
+ tableName: "miku_contest_configs";
14
+ dataType: "string";
15
+ columnType: "PgText";
16
+ data: string;
17
+ driverParam: string;
18
+ notNull: true;
19
+ hasDefault: false;
20
+ isPrimaryKey: true;
21
+ isAutoincrement: false;
22
+ hasRuntimeDefault: false;
23
+ enumValues: [string, ...string[]];
24
+ baseColumn: never;
25
+ identity: undefined;
26
+ generated: undefined;
27
+ }, {}, {}>;
28
+ config: drizzle_orm_pg_core.PgColumn<{
29
+ name: "config";
30
+ tableName: "miku_contest_configs";
31
+ dataType: "json";
32
+ columnType: "PgJsonb";
33
+ data: MikuContestConfig;
34
+ driverParam: unknown;
35
+ notNull: true;
36
+ hasDefault: false;
37
+ isPrimaryKey: false;
38
+ isAutoincrement: false;
39
+ hasRuntimeDefault: false;
40
+ enumValues: undefined;
41
+ baseColumn: never;
42
+ identity: undefined;
43
+ generated: undefined;
44
+ }, {}, {
45
+ $type: MikuContestConfig;
46
+ }>;
47
+ createdAt: drizzle_orm_pg_core.PgColumn<{
48
+ name: "created_at";
49
+ tableName: "miku_contest_configs";
50
+ dataType: "date";
51
+ columnType: "PgTimestamp";
52
+ data: Date;
53
+ driverParam: string;
54
+ notNull: true;
55
+ hasDefault: true;
56
+ isPrimaryKey: false;
57
+ isAutoincrement: false;
58
+ hasRuntimeDefault: false;
59
+ enumValues: undefined;
60
+ baseColumn: never;
61
+ identity: undefined;
62
+ generated: undefined;
63
+ }, {}, {}>;
64
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
65
+ name: "updated_at";
66
+ tableName: "miku_contest_configs";
67
+ dataType: "date";
68
+ columnType: "PgTimestamp";
69
+ data: Date;
70
+ driverParam: string;
71
+ notNull: true;
72
+ hasDefault: true;
73
+ isPrimaryKey: false;
74
+ isAutoincrement: false;
75
+ hasRuntimeDefault: false;
76
+ enumValues: undefined;
77
+ baseColumn: never;
78
+ identity: undefined;
79
+ generated: undefined;
80
+ }, {}, {}>;
81
+ };
82
+ dialect: "pg";
83
+ }>;
84
+ declare const mikuContestSubmissions: drizzle_orm_pg_core.PgTableWithColumns<{
85
+ name: "miku_contest_submissions";
86
+ schema: undefined;
87
+ columns: {
88
+ id: drizzle_orm_pg_core.PgColumn<{
89
+ name: "id";
90
+ tableName: "miku_contest_submissions";
91
+ dataType: "string";
92
+ columnType: "PgText";
93
+ data: string;
94
+ driverParam: string;
95
+ notNull: true;
96
+ hasDefault: false;
97
+ isPrimaryKey: true;
98
+ isAutoincrement: false;
99
+ hasRuntimeDefault: false;
100
+ enumValues: [string, ...string[]];
101
+ baseColumn: never;
102
+ identity: undefined;
103
+ generated: undefined;
104
+ }, {}, {}>;
105
+ contestId: drizzle_orm_pg_core.PgColumn<{
106
+ name: "contest_id";
107
+ tableName: "miku_contest_submissions";
108
+ dataType: "string";
109
+ columnType: "PgText";
110
+ data: string;
111
+ driverParam: string;
112
+ notNull: true;
113
+ hasDefault: false;
114
+ isPrimaryKey: false;
115
+ isAutoincrement: false;
116
+ hasRuntimeDefault: false;
117
+ enumValues: [string, ...string[]];
118
+ baseColumn: never;
119
+ identity: undefined;
120
+ generated: undefined;
121
+ }, {}, {}>;
122
+ serialNo: drizzle_orm_pg_core.PgColumn<{
123
+ name: "serial_no";
124
+ tableName: "miku_contest_submissions";
125
+ dataType: "string";
126
+ columnType: "PgText";
127
+ data: string;
128
+ driverParam: string;
129
+ notNull: true;
130
+ hasDefault: false;
131
+ isPrimaryKey: false;
132
+ isAutoincrement: false;
133
+ hasRuntimeDefault: false;
134
+ enumValues: [string, ...string[]];
135
+ baseColumn: never;
136
+ identity: undefined;
137
+ generated: undefined;
138
+ }, {}, {}>;
139
+ authorId: drizzle_orm_pg_core.PgColumn<{
140
+ name: "author_id";
141
+ tableName: "miku_contest_submissions";
142
+ dataType: "string";
143
+ columnType: "PgText";
144
+ data: string;
145
+ driverParam: string;
146
+ notNull: true;
147
+ hasDefault: false;
148
+ isPrimaryKey: false;
149
+ isAutoincrement: false;
150
+ hasRuntimeDefault: false;
151
+ enumValues: [string, ...string[]];
152
+ baseColumn: never;
153
+ identity: undefined;
154
+ generated: undefined;
155
+ }, {}, {}>;
156
+ authorNickname: drizzle_orm_pg_core.PgColumn<{
157
+ name: "author_nickname";
158
+ tableName: "miku_contest_submissions";
159
+ dataType: "string";
160
+ columnType: "PgText";
161
+ data: string;
162
+ driverParam: string;
163
+ notNull: true;
164
+ hasDefault: false;
165
+ isPrimaryKey: false;
166
+ isAutoincrement: false;
167
+ hasRuntimeDefault: false;
168
+ enumValues: [string, ...string[]];
169
+ baseColumn: never;
170
+ identity: undefined;
171
+ generated: undefined;
172
+ }, {}, {}>;
173
+ title: drizzle_orm_pg_core.PgColumn<{
174
+ name: "title";
175
+ tableName: "miku_contest_submissions";
176
+ dataType: "string";
177
+ columnType: "PgText";
178
+ data: string;
179
+ driverParam: string;
180
+ notNull: true;
181
+ hasDefault: false;
182
+ isPrimaryKey: false;
183
+ isAutoincrement: false;
184
+ hasRuntimeDefault: false;
185
+ enumValues: [string, ...string[]];
186
+ baseColumn: never;
187
+ identity: undefined;
188
+ generated: undefined;
189
+ }, {}, {}>;
190
+ type: drizzle_orm_pg_core.PgColumn<{
191
+ name: "type";
192
+ tableName: "miku_contest_submissions";
193
+ dataType: "string";
194
+ columnType: "PgText";
195
+ data: string;
196
+ driverParam: string;
197
+ notNull: true;
198
+ hasDefault: false;
199
+ isPrimaryKey: false;
200
+ isAutoincrement: false;
201
+ hasRuntimeDefault: false;
202
+ enumValues: [string, ...string[]];
203
+ baseColumn: never;
204
+ identity: undefined;
205
+ generated: undefined;
206
+ }, {}, {}>;
207
+ description: drizzle_orm_pg_core.PgColumn<{
208
+ name: "description";
209
+ tableName: "miku_contest_submissions";
210
+ dataType: "string";
211
+ columnType: "PgText";
212
+ data: string;
213
+ driverParam: string;
214
+ notNull: true;
215
+ hasDefault: false;
216
+ isPrimaryKey: false;
217
+ isAutoincrement: false;
218
+ hasRuntimeDefault: false;
219
+ enumValues: [string, ...string[]];
220
+ baseColumn: never;
221
+ identity: undefined;
222
+ generated: undefined;
223
+ }, {}, {}>;
224
+ tags: drizzle_orm_pg_core.PgColumn<{
225
+ name: "tags";
226
+ tableName: "miku_contest_submissions";
227
+ dataType: "json";
228
+ columnType: "PgJsonb";
229
+ data: string[];
230
+ driverParam: unknown;
231
+ notNull: true;
232
+ hasDefault: false;
233
+ isPrimaryKey: false;
234
+ isAutoincrement: false;
235
+ hasRuntimeDefault: false;
236
+ enumValues: undefined;
237
+ baseColumn: never;
238
+ identity: undefined;
239
+ generated: undefined;
240
+ }, {}, {
241
+ $type: string[];
242
+ }>;
243
+ content: drizzle_orm_pg_core.PgColumn<{
244
+ name: "content";
245
+ tableName: "miku_contest_submissions";
246
+ dataType: "json";
247
+ columnType: "PgJsonb";
248
+ data: MikuSubmissionContent;
249
+ driverParam: unknown;
250
+ notNull: true;
251
+ hasDefault: false;
252
+ isPrimaryKey: false;
253
+ isAutoincrement: false;
254
+ hasRuntimeDefault: false;
255
+ enumValues: undefined;
256
+ baseColumn: never;
257
+ identity: undefined;
258
+ generated: undefined;
259
+ }, {}, {
260
+ $type: MikuSubmissionContent;
261
+ }>;
262
+ voteCount: drizzle_orm_pg_core.PgColumn<{
263
+ name: "vote_count";
264
+ tableName: "miku_contest_submissions";
265
+ dataType: "number";
266
+ columnType: "PgInteger";
267
+ data: number;
268
+ driverParam: string | number;
269
+ notNull: true;
270
+ hasDefault: true;
271
+ isPrimaryKey: false;
272
+ isAutoincrement: false;
273
+ hasRuntimeDefault: false;
274
+ enumValues: undefined;
275
+ baseColumn: never;
276
+ identity: undefined;
277
+ generated: undefined;
278
+ }, {}, {}>;
279
+ status: drizzle_orm_pg_core.PgColumn<{
280
+ name: "status";
281
+ tableName: "miku_contest_submissions";
282
+ dataType: "string";
283
+ columnType: "PgText";
284
+ data: string;
285
+ driverParam: string;
286
+ notNull: true;
287
+ hasDefault: false;
288
+ isPrimaryKey: false;
289
+ isAutoincrement: false;
290
+ hasRuntimeDefault: false;
291
+ enumValues: [string, ...string[]];
292
+ baseColumn: never;
293
+ identity: undefined;
294
+ generated: undefined;
295
+ }, {}, {}>;
296
+ rejectReason: drizzle_orm_pg_core.PgColumn<{
297
+ name: "reject_reason";
298
+ tableName: "miku_contest_submissions";
299
+ dataType: "string";
300
+ columnType: "PgText";
301
+ data: string;
302
+ driverParam: string;
303
+ notNull: false;
304
+ hasDefault: false;
305
+ isPrimaryKey: false;
306
+ isAutoincrement: false;
307
+ hasRuntimeDefault: false;
308
+ enumValues: [string, ...string[]];
309
+ baseColumn: never;
310
+ identity: undefined;
311
+ generated: undefined;
312
+ }, {}, {}>;
313
+ createdAt: drizzle_orm_pg_core.PgColumn<{
314
+ name: "created_at";
315
+ tableName: "miku_contest_submissions";
316
+ dataType: "date";
317
+ columnType: "PgTimestamp";
318
+ data: Date;
319
+ driverParam: string;
320
+ notNull: true;
321
+ hasDefault: false;
322
+ isPrimaryKey: false;
323
+ isAutoincrement: false;
324
+ hasRuntimeDefault: false;
325
+ enumValues: undefined;
326
+ baseColumn: never;
327
+ identity: undefined;
328
+ generated: undefined;
329
+ }, {}, {}>;
330
+ reviewedAt: drizzle_orm_pg_core.PgColumn<{
331
+ name: "reviewed_at";
332
+ tableName: "miku_contest_submissions";
333
+ dataType: "date";
334
+ columnType: "PgTimestamp";
335
+ data: Date;
336
+ driverParam: string;
337
+ notNull: false;
338
+ hasDefault: false;
339
+ isPrimaryKey: false;
340
+ isAutoincrement: false;
341
+ hasRuntimeDefault: false;
342
+ enumValues: undefined;
343
+ baseColumn: never;
344
+ identity: undefined;
345
+ generated: undefined;
346
+ }, {}, {}>;
347
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
348
+ name: "updated_at";
349
+ tableName: "miku_contest_submissions";
350
+ dataType: "date";
351
+ columnType: "PgTimestamp";
352
+ data: Date;
353
+ driverParam: string;
354
+ notNull: true;
355
+ hasDefault: false;
356
+ isPrimaryKey: false;
357
+ isAutoincrement: false;
358
+ hasRuntimeDefault: false;
359
+ enumValues: undefined;
360
+ baseColumn: never;
361
+ identity: undefined;
362
+ generated: undefined;
363
+ }, {}, {}>;
364
+ };
365
+ dialect: "pg";
366
+ }>;
367
+ declare const mikuContestVotes: drizzle_orm_pg_core.PgTableWithColumns<{
368
+ name: "miku_contest_votes";
369
+ schema: undefined;
370
+ columns: {
371
+ id: drizzle_orm_pg_core.PgColumn<{
372
+ name: "id";
373
+ tableName: "miku_contest_votes";
374
+ dataType: "string";
375
+ columnType: "PgText";
376
+ data: string;
377
+ driverParam: string;
378
+ notNull: true;
379
+ hasDefault: false;
380
+ isPrimaryKey: true;
381
+ isAutoincrement: false;
382
+ hasRuntimeDefault: false;
383
+ enumValues: [string, ...string[]];
384
+ baseColumn: never;
385
+ identity: undefined;
386
+ generated: undefined;
387
+ }, {}, {}>;
388
+ contestId: drizzle_orm_pg_core.PgColumn<{
389
+ name: "contest_id";
390
+ tableName: "miku_contest_votes";
391
+ dataType: "string";
392
+ columnType: "PgText";
393
+ data: string;
394
+ driverParam: string;
395
+ notNull: true;
396
+ hasDefault: false;
397
+ isPrimaryKey: false;
398
+ isAutoincrement: false;
399
+ hasRuntimeDefault: false;
400
+ enumValues: [string, ...string[]];
401
+ baseColumn: never;
402
+ identity: undefined;
403
+ generated: undefined;
404
+ }, {}, {}>;
405
+ submissionId: drizzle_orm_pg_core.PgColumn<{
406
+ name: "submission_id";
407
+ tableName: "miku_contest_votes";
408
+ dataType: "string";
409
+ columnType: "PgText";
410
+ data: string;
411
+ driverParam: string;
412
+ notNull: true;
413
+ hasDefault: false;
414
+ isPrimaryKey: false;
415
+ isAutoincrement: false;
416
+ hasRuntimeDefault: false;
417
+ enumValues: [string, ...string[]];
418
+ baseColumn: never;
419
+ identity: undefined;
420
+ generated: undefined;
421
+ }, {}, {}>;
422
+ voterId: drizzle_orm_pg_core.PgColumn<{
423
+ name: "voter_id";
424
+ tableName: "miku_contest_votes";
425
+ dataType: "string";
426
+ columnType: "PgText";
427
+ data: string;
428
+ driverParam: string;
429
+ notNull: true;
430
+ hasDefault: false;
431
+ isPrimaryKey: false;
432
+ isAutoincrement: false;
433
+ hasRuntimeDefault: false;
434
+ enumValues: [string, ...string[]];
435
+ baseColumn: never;
436
+ identity: undefined;
437
+ generated: undefined;
438
+ }, {}, {}>;
439
+ votedAt: drizzle_orm_pg_core.PgColumn<{
440
+ name: "voted_at";
441
+ tableName: "miku_contest_votes";
442
+ dataType: "string";
443
+ columnType: "PgText";
444
+ data: string;
445
+ driverParam: string;
446
+ notNull: true;
447
+ hasDefault: false;
448
+ isPrimaryKey: false;
449
+ isAutoincrement: false;
450
+ hasRuntimeDefault: false;
451
+ enumValues: [string, ...string[]];
452
+ baseColumn: never;
453
+ identity: undefined;
454
+ generated: undefined;
455
+ }, {}, {}>;
456
+ dayKey: drizzle_orm_pg_core.PgColumn<{
457
+ name: "day_key";
458
+ tableName: "miku_contest_votes";
459
+ dataType: "string";
460
+ columnType: "PgText";
461
+ data: string;
462
+ driverParam: string;
463
+ notNull: true;
464
+ hasDefault: false;
465
+ isPrimaryKey: false;
466
+ isAutoincrement: false;
467
+ hasRuntimeDefault: false;
468
+ enumValues: [string, ...string[]];
469
+ baseColumn: never;
470
+ identity: undefined;
471
+ generated: undefined;
472
+ }, {}, {}>;
473
+ deviceId: drizzle_orm_pg_core.PgColumn<{
474
+ name: "device_id";
475
+ tableName: "miku_contest_votes";
476
+ dataType: "string";
477
+ columnType: "PgText";
478
+ data: string;
479
+ driverParam: string;
480
+ notNull: false;
481
+ hasDefault: false;
482
+ isPrimaryKey: false;
483
+ isAutoincrement: false;
484
+ hasRuntimeDefault: false;
485
+ enumValues: [string, ...string[]];
486
+ baseColumn: never;
487
+ identity: undefined;
488
+ generated: undefined;
489
+ }, {}, {}>;
490
+ ip: drizzle_orm_pg_core.PgColumn<{
491
+ name: "ip";
492
+ tableName: "miku_contest_votes";
493
+ dataType: "string";
494
+ columnType: "PgText";
495
+ data: string;
496
+ driverParam: string;
497
+ notNull: false;
498
+ hasDefault: false;
499
+ isPrimaryKey: false;
500
+ isAutoincrement: false;
501
+ hasRuntimeDefault: false;
502
+ enumValues: [string, ...string[]];
503
+ baseColumn: never;
504
+ identity: undefined;
505
+ generated: undefined;
506
+ }, {}, {}>;
507
+ };
508
+ dialect: "pg";
509
+ }>;
510
+ declare const mikuContestNotices: drizzle_orm_pg_core.PgTableWithColumns<{
511
+ name: "miku_contest_notices";
512
+ schema: undefined;
513
+ columns: {
514
+ id: drizzle_orm_pg_core.PgColumn<{
515
+ name: "id";
516
+ tableName: "miku_contest_notices";
517
+ dataType: "string";
518
+ columnType: "PgText";
519
+ data: string;
520
+ driverParam: string;
521
+ notNull: true;
522
+ hasDefault: false;
523
+ isPrimaryKey: true;
524
+ isAutoincrement: false;
525
+ hasRuntimeDefault: false;
526
+ enumValues: [string, ...string[]];
527
+ baseColumn: never;
528
+ identity: undefined;
529
+ generated: undefined;
530
+ }, {}, {}>;
531
+ contestId: drizzle_orm_pg_core.PgColumn<{
532
+ name: "contest_id";
533
+ tableName: "miku_contest_notices";
534
+ dataType: "string";
535
+ columnType: "PgText";
536
+ data: string;
537
+ driverParam: string;
538
+ notNull: true;
539
+ hasDefault: false;
540
+ isPrimaryKey: false;
541
+ isAutoincrement: false;
542
+ hasRuntimeDefault: false;
543
+ enumValues: [string, ...string[]];
544
+ baseColumn: never;
545
+ identity: undefined;
546
+ generated: undefined;
547
+ }, {}, {}>;
548
+ title: drizzle_orm_pg_core.PgColumn<{
549
+ name: "title";
550
+ tableName: "miku_contest_notices";
551
+ dataType: "string";
552
+ columnType: "PgText";
553
+ data: string;
554
+ driverParam: string;
555
+ notNull: true;
556
+ hasDefault: false;
557
+ isPrimaryKey: false;
558
+ isAutoincrement: false;
559
+ hasRuntimeDefault: false;
560
+ enumValues: [string, ...string[]];
561
+ baseColumn: never;
562
+ identity: undefined;
563
+ generated: undefined;
564
+ }, {}, {}>;
565
+ content: drizzle_orm_pg_core.PgColumn<{
566
+ name: "content";
567
+ tableName: "miku_contest_notices";
568
+ dataType: "string";
569
+ columnType: "PgText";
570
+ data: string;
571
+ driverParam: string;
572
+ notNull: true;
573
+ hasDefault: false;
574
+ isPrimaryKey: false;
575
+ isAutoincrement: false;
576
+ hasRuntimeDefault: false;
577
+ enumValues: [string, ...string[]];
578
+ baseColumn: never;
579
+ identity: undefined;
580
+ generated: undefined;
581
+ }, {}, {}>;
582
+ type: drizzle_orm_pg_core.PgColumn<{
583
+ name: "type";
584
+ tableName: "miku_contest_notices";
585
+ dataType: "string";
586
+ columnType: "PgText";
587
+ data: string;
588
+ driverParam: string;
589
+ notNull: true;
590
+ hasDefault: false;
591
+ isPrimaryKey: false;
592
+ isAutoincrement: false;
593
+ hasRuntimeDefault: false;
594
+ enumValues: [string, ...string[]];
595
+ baseColumn: never;
596
+ identity: undefined;
597
+ generated: undefined;
598
+ }, {}, {}>;
599
+ createdBy: drizzle_orm_pg_core.PgColumn<{
600
+ name: "created_by";
601
+ tableName: "miku_contest_notices";
602
+ dataType: "string";
603
+ columnType: "PgText";
604
+ data: string;
605
+ driverParam: string;
606
+ notNull: true;
607
+ hasDefault: false;
608
+ isPrimaryKey: false;
609
+ isAutoincrement: false;
610
+ hasRuntimeDefault: false;
611
+ enumValues: [string, ...string[]];
612
+ baseColumn: never;
613
+ identity: undefined;
614
+ generated: undefined;
615
+ }, {}, {}>;
616
+ createdAt: drizzle_orm_pg_core.PgColumn<{
617
+ name: "created_at";
618
+ tableName: "miku_contest_notices";
619
+ dataType: "string";
620
+ columnType: "PgText";
621
+ data: string;
622
+ driverParam: string;
623
+ notNull: true;
624
+ hasDefault: false;
625
+ isPrimaryKey: false;
626
+ isAutoincrement: false;
627
+ hasRuntimeDefault: false;
628
+ enumValues: [string, ...string[]];
629
+ baseColumn: never;
630
+ identity: undefined;
631
+ generated: undefined;
632
+ }, {}, {}>;
633
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
634
+ name: "updated_at";
635
+ tableName: "miku_contest_notices";
636
+ dataType: "string";
637
+ columnType: "PgText";
638
+ data: string;
639
+ driverParam: string;
640
+ notNull: true;
641
+ hasDefault: false;
642
+ isPrimaryKey: false;
643
+ isAutoincrement: false;
644
+ hasRuntimeDefault: false;
645
+ enumValues: [string, ...string[]];
646
+ baseColumn: never;
647
+ identity: undefined;
648
+ generated: undefined;
649
+ }, {}, {}>;
650
+ };
651
+ dialect: "pg";
652
+ }>;
653
+ declare const mikuContestVoterRestrictions: drizzle_orm_pg_core.PgTableWithColumns<{
654
+ name: "miku_contest_voter_restrictions";
655
+ schema: undefined;
656
+ columns: {
657
+ id: drizzle_orm_pg_core.PgColumn<{
658
+ name: "id";
659
+ tableName: "miku_contest_voter_restrictions";
660
+ dataType: "string";
661
+ columnType: "PgText";
662
+ data: string;
663
+ driverParam: string;
664
+ notNull: true;
665
+ hasDefault: false;
666
+ isPrimaryKey: true;
667
+ isAutoincrement: false;
668
+ hasRuntimeDefault: false;
669
+ enumValues: [string, ...string[]];
670
+ baseColumn: never;
671
+ identity: undefined;
672
+ generated: undefined;
673
+ }, {}, {}>;
674
+ contestId: drizzle_orm_pg_core.PgColumn<{
675
+ name: "contest_id";
676
+ tableName: "miku_contest_voter_restrictions";
677
+ dataType: "string";
678
+ columnType: "PgText";
679
+ data: string;
680
+ driverParam: string;
681
+ notNull: true;
682
+ hasDefault: false;
683
+ isPrimaryKey: false;
684
+ isAutoincrement: false;
685
+ hasRuntimeDefault: false;
686
+ enumValues: [string, ...string[]];
687
+ baseColumn: never;
688
+ identity: undefined;
689
+ generated: undefined;
690
+ }, {}, {}>;
691
+ data: drizzle_orm_pg_core.PgColumn<{
692
+ name: "data";
693
+ tableName: "miku_contest_voter_restrictions";
694
+ dataType: "json";
695
+ columnType: "PgJsonb";
696
+ data: MikuVoterRestriction;
697
+ driverParam: unknown;
698
+ notNull: true;
699
+ hasDefault: false;
700
+ isPrimaryKey: false;
701
+ isAutoincrement: false;
702
+ hasRuntimeDefault: false;
703
+ enumValues: undefined;
704
+ baseColumn: never;
705
+ identity: undefined;
706
+ generated: undefined;
707
+ }, {}, {
708
+ $type: MikuVoterRestriction;
709
+ }>;
710
+ };
711
+ dialect: "pg";
712
+ }>;
713
+ type MikuContestVoteRow = typeof mikuContestVotes.$inferSelect & MikuVoteRecord;
714
+ type MikuContestNoticeRow = typeof mikuContestNotices.$inferSelect & MikuAnnouncement;
715
+
716
+ declare class MikuContestStateDbService {
717
+ private readonly db;
718
+ constructor(db: DrizzleLikeDb);
719
+ loadState(contestId: string): Promise<MikuContestPersistedState | null>;
720
+ saveState(state: MikuContestPersistedState): Promise<void>;
721
+ }
722
+
723
+ declare const createMikuContestDrizzlePersistenceAdapter: (db: DrizzleLikeDb) => MikuContestPersistenceAdapter;
724
+
725
+ interface MikuContestPersistentServiceOptions extends MikuContestServiceOptions {
726
+ persistenceAdapter: MikuContestPersistenceAdapter;
727
+ }
728
+ declare class MikuContestPersistentService {
729
+ private readonly options;
730
+ private readonly engine;
731
+ private hydrated;
732
+ private hydrationPromise;
733
+ constructor(options: MikuContestPersistentServiceOptions);
734
+ private ensureHydrated;
735
+ private persist;
736
+ getContestConfig(): Promise<MikuContestConfig>;
737
+ updateContestConfig(patch: Partial<MikuContestConfig>): Promise<MikuContestConfig>;
738
+ createSubmission(input: CreateMikuSubmissionInput, mode?: 'web' | 'miniapp'): Promise<MikuSubmission>;
739
+ listSubmissions(filter?: MikuSubmissionFilter): Promise<MikuSubmission[]>;
740
+ getSubmission(submissionId: string): Promise<MikuSubmission | null>;
741
+ reviewSubmission(input: ReviewMikuSubmissionInput): Promise<MikuSubmission>;
742
+ vote(input: VoteMikuSubmissionInput): Promise<MikuSubmission>;
743
+ getVoterRestriction(voterId: string): Promise<MikuVoterRestriction | null>;
744
+ setVoterRestriction(input: SetMikuVoterRestrictionInput): Promise<MikuVoterRestriction>;
745
+ resetVotes(input: ResetMikuVotesInput): Promise<{
746
+ removedVotes: number;
747
+ affectedSubmissions: string[];
748
+ }>;
749
+ listAnnouncements(contestId?: string): Promise<MikuAnnouncement[]>;
750
+ publishAnnouncement(input: CreateMikuAnnouncementInput): Promise<MikuAnnouncement>;
751
+ getLeaderboard(limit?: number): Promise<MikuLeaderboardItem[]>;
752
+ getSnapshot(): Promise<MikuContestStateSnapshot>;
753
+ getSubmissionExportRows(filter?: MikuSubmissionFilter): Promise<MikuSubmissionExportRow[]>;
754
+ exportSubmissionExcel(filter?: MikuSubmissionFilter): Promise<Uint8Array>;
755
+ }
756
+ declare const createMikuContestPersistentService: (options: MikuContestPersistentServiceOptions) => MikuContestPersistentService;
757
+
758
+ declare class MikuContestDbService {
759
+ private _db;
760
+ setDb(db: DrizzleLikeDb): void;
761
+ isConfigured(): boolean;
762
+ get db(): DrizzleLikeDb;
763
+ }
764
+ declare const mikuContestDbService: MikuContestDbService;
765
+
766
+ export { DrizzleLikeDb, type MikuContestNoticeRow, MikuContestPersistenceAdapter, MikuContestPersistentService, type MikuContestPersistentServiceOptions, MikuContestServiceOptions, MikuContestStateDbService, type MikuContestVoteRow, createMikuContestDrizzlePersistenceAdapter, createMikuContestPersistentService, mikuContestConfigs, mikuContestDbService, mikuContestNotices, mikuContestSubmissions, mikuContestVoterRestrictions, mikuContestVotes };