@ttt-productions/q-core 0.1.29 → 0.1.30

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 (84) hide show
  1. package/dist/constants/sports.d.ts +1 -0
  2. package/dist/constants/sports.d.ts.map +1 -1
  3. package/dist/constants/sports.js +2 -0
  4. package/dist/constants/sports.js.map +1 -1
  5. package/dist/doc-schemas/admin-notifications.d.ts +1 -1
  6. package/dist/doc-schemas/audit-event.d.ts +2 -0
  7. package/dist/doc-schemas/audit-event.d.ts.map +1 -1
  8. package/dist/doc-schemas/award-group-grant.d.ts +2 -2
  9. package/dist/doc-schemas/gallery.d.ts.map +1 -1
  10. package/dist/doc-schemas/gallery.js +9 -3
  11. package/dist/doc-schemas/gallery.js.map +1 -1
  12. package/dist/doc-schemas/game-stat-history.js +2 -2
  13. package/dist/doc-schemas/game-stat-history.js.map +1 -1
  14. package/dist/doc-schemas/migration-console.d.ts +21 -5
  15. package/dist/doc-schemas/migration-console.d.ts.map +1 -1
  16. package/dist/doc-schemas/pending-media.d.ts.map +1 -1
  17. package/dist/doc-schemas/pending-media.js +8 -3
  18. package/dist/doc-schemas/pending-media.js.map +1 -1
  19. package/dist/doc-schemas/picture-retirement.d.ts.map +1 -1
  20. package/dist/doc-schemas/picture-retirement.js +8 -3
  21. package/dist/doc-schemas/picture-retirement.js.map +1 -1
  22. package/dist/doc-schemas/registry.d.ts +25 -14
  23. package/dist/doc-schemas/registry.d.ts.map +1 -1
  24. package/dist/doc-schemas/stats-operation.d.ts +22 -18
  25. package/dist/doc-schemas/stats-operation.d.ts.map +1 -1
  26. package/dist/doc-schemas/stats-operation.js +5 -0
  27. package/dist/doc-schemas/stats-operation.js.map +1 -1
  28. package/dist/index.d.ts +2 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +2 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/migration-console/action-ids.d.ts +4 -0
  33. package/dist/migration-console/action-ids.d.ts.map +1 -1
  34. package/dist/migration-console/action-ids.js +6 -0
  35. package/dist/migration-console/action-ids.js.map +1 -1
  36. package/dist/migration-console/console-lock.d.ts +10 -0
  37. package/dist/migration-console/console-lock.d.ts.map +1 -0
  38. package/dist/migration-console/console-lock.js +14 -0
  39. package/dist/migration-console/console-lock.js.map +1 -0
  40. package/dist/migration-console/consumed-source.d.ts +4 -0
  41. package/dist/migration-console/consumed-source.d.ts.map +1 -0
  42. package/dist/migration-console/consumed-source.js +10 -0
  43. package/dist/migration-console/consumed-source.js.map +1 -0
  44. package/dist/migration-console/manifest.d.ts +2 -0
  45. package/dist/migration-console/manifest.d.ts.map +1 -1
  46. package/dist/migration-console/manifest.js +173 -5
  47. package/dist/migration-console/manifest.js.map +1 -1
  48. package/dist/migration-console/run-state.d.ts +2 -0
  49. package/dist/migration-console/run-state.d.ts.map +1 -1
  50. package/dist/migration-console/run-state.js +3 -0
  51. package/dist/migration-console/run-state.js.map +1 -1
  52. package/dist/paths/picture-owner-paths.d.ts.map +1 -1
  53. package/dist/paths/picture-owner-paths.js +2 -1
  54. package/dist/paths/picture-owner-paths.js.map +1 -1
  55. package/dist/schemas/awards.d.ts +3 -3
  56. package/dist/schemas/migration-console.d.ts +58 -8
  57. package/dist/schemas/migration-console.d.ts.map +1 -1
  58. package/dist/schemas/migration-console.js +4 -0
  59. package/dist/schemas/migration-console.js.map +1 -1
  60. package/dist/schemas/scoring.d.ts +20 -20
  61. package/dist/schemas/stats.d.ts +12 -0
  62. package/dist/schemas/stats.d.ts.map +1 -1
  63. package/dist/schemas/stats.js +21 -1
  64. package/dist/schemas/stats.js.map +1 -1
  65. package/dist/sports/finalized-record.d.ts +2 -2
  66. package/dist/sports/finalized-record.d.ts.map +1 -1
  67. package/dist/sports/finalized-record.js +21 -2
  68. package/dist/sports/finalized-record.js.map +1 -1
  69. package/dist/types/audit.d.ts +1 -1
  70. package/dist/types/audit.d.ts.map +1 -1
  71. package/dist/types/audit.js +1 -0
  72. package/dist/types/audit.js.map +1 -1
  73. package/dist/utils/index.d.ts +1 -0
  74. package/dist/utils/index.d.ts.map +1 -1
  75. package/dist/utils/index.js +1 -0
  76. package/dist/utils/index.js.map +1 -1
  77. package/dist/utils/league-calendar.d.ts.map +1 -1
  78. package/dist/utils/league-calendar.js +6 -1
  79. package/dist/utils/league-calendar.js.map +1 -1
  80. package/dist/utils/stats-operation-request.d.ts +20 -0
  81. package/dist/utils/stats-operation-request.d.ts.map +1 -0
  82. package/dist/utils/stats-operation-request.js +10 -0
  83. package/dist/utils/stats-operation-request.js.map +1 -0
  84. package/package.json +2 -1
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import type { ExecutableMigrationStep } from '../migration-console/manifest.js';
2
3
  export declare const RunMigrationActionInputSchema: z.ZodObject<{
3
4
  operationId: z.ZodString;
4
5
  reason: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
@@ -8,6 +9,7 @@ export declare const RunMigrationActionInputSchema: z.ZodObject<{
8
9
  acknowledgeUnexaminedSources: z.ZodOptional<z.ZodBoolean>;
9
10
  }, z.core.$strict>;
10
11
  export type RunMigrationActionInput = z.infer<typeof RunMigrationActionInputSchema>;
12
+ export declare function migrationPageSizeSchema(step: Pick<ExecutableMigrationStep, 'maxPageSize'>): z.ZodNumber;
11
13
  export declare const MigrationActionPageResultSchema: z.ZodObject<{
12
14
  actionId: z.ZodEnum<{
13
15
  "copy.userProfiles": "copy.userProfiles";
@@ -80,6 +82,10 @@ export declare const MigrationActionPageResultSchema: z.ZodObject<{
80
82
  "delete.v1GameLocations": "delete.v1GameLocations";
81
83
  "delete.v1AdminStats": "delete.v1AdminStats";
82
84
  "verify.v1CommerceDiscardable": "verify.v1CommerceDiscardable";
85
+ "verify.v1DisplayNamesUnique": "verify.v1DisplayNamesUnique";
86
+ "verify.v1TextFitsLimits": "verify.v1TextFitsLimits";
87
+ "verify.v1LeagueCapacity": "verify.v1LeagueCapacity";
88
+ "verify.v1HardwareContractIdsUnique": "verify.v1HardwareContractIdsUnique";
83
89
  "delete.v1Commerce": "delete.v1Commerce";
84
90
  "rebuild.leagueStats": "rebuild.leagueStats";
85
91
  "rebuild.lifetimeStats": "rebuild.lifetimeStats";
@@ -121,8 +127,8 @@ export declare const MigrationActionPageResultSchema: z.ZodObject<{
121
127
  updatedAt: z.ZodNumber;
122
128
  completedAt: z.ZodOptional<z.ZodNumber>;
123
129
  status: z.ZodEnum<{
124
- complete: "complete";
125
130
  running: "running";
131
+ complete: "complete";
126
132
  stopped: "stopped";
127
133
  }>;
128
134
  pages: z.ZodNumber;
@@ -223,6 +229,10 @@ export declare const MigrationStepStateSchema: z.ZodObject<{
223
229
  "delete.v1GameLocations": "delete.v1GameLocations";
224
230
  "delete.v1AdminStats": "delete.v1AdminStats";
225
231
  "verify.v1CommerceDiscardable": "verify.v1CommerceDiscardable";
232
+ "verify.v1DisplayNamesUnique": "verify.v1DisplayNamesUnique";
233
+ "verify.v1TextFitsLimits": "verify.v1TextFitsLimits";
234
+ "verify.v1LeagueCapacity": "verify.v1LeagueCapacity";
235
+ "verify.v1HardwareContractIdsUnique": "verify.v1HardwareContractIdsUnique";
226
236
  "delete.v1Commerce": "delete.v1Commerce";
227
237
  "rebuild.leagueStats": "rebuild.leagueStats";
228
238
  "rebuild.lifetimeStats": "rebuild.lifetimeStats";
@@ -311,6 +321,10 @@ export declare const MigrationStepStateSchema: z.ZodObject<{
311
321
  "delete.v1GameLocations": "delete.v1GameLocations";
312
322
  "delete.v1AdminStats": "delete.v1AdminStats";
313
323
  "verify.v1CommerceDiscardable": "verify.v1CommerceDiscardable";
324
+ "verify.v1DisplayNamesUnique": "verify.v1DisplayNamesUnique";
325
+ "verify.v1TextFitsLimits": "verify.v1TextFitsLimits";
326
+ "verify.v1LeagueCapacity": "verify.v1LeagueCapacity";
327
+ "verify.v1HardwareContractIdsUnique": "verify.v1HardwareContractIdsUnique";
314
328
  "delete.v1Commerce": "delete.v1Commerce";
315
329
  "rebuild.leagueStats": "rebuild.leagueStats";
316
330
  "rebuild.lifetimeStats": "rebuild.lifetimeStats";
@@ -399,6 +413,10 @@ export declare const MigrationStepStateSchema: z.ZodObject<{
399
413
  "delete.v1GameLocations": "delete.v1GameLocations";
400
414
  "delete.v1AdminStats": "delete.v1AdminStats";
401
415
  "verify.v1CommerceDiscardable": "verify.v1CommerceDiscardable";
416
+ "verify.v1DisplayNamesUnique": "verify.v1DisplayNamesUnique";
417
+ "verify.v1TextFitsLimits": "verify.v1TextFitsLimits";
418
+ "verify.v1LeagueCapacity": "verify.v1LeagueCapacity";
419
+ "verify.v1HardwareContractIdsUnique": "verify.v1HardwareContractIdsUnique";
402
420
  "delete.v1Commerce": "delete.v1Commerce";
403
421
  "rebuild.leagueStats": "rebuild.leagueStats";
404
422
  "rebuild.lifetimeStats": "rebuild.lifetimeStats";
@@ -423,8 +441,8 @@ export declare const MigrationStepStateSchema: z.ZodObject<{
423
441
  updatedAt: z.ZodNumber;
424
442
  completedAt: z.ZodOptional<z.ZodNumber>;
425
443
  status: z.ZodEnum<{
426
- complete: "complete";
427
444
  running: "running";
445
+ complete: "complete";
428
446
  stopped: "stopped";
429
447
  }>;
430
448
  pages: z.ZodNumber;
@@ -458,8 +476,8 @@ export declare const MigrationStepStateSchema: z.ZodObject<{
458
476
  updatedAt: z.ZodNumber;
459
477
  completedAt: z.ZodOptional<z.ZodNumber>;
460
478
  status: z.ZodEnum<{
461
- complete: "complete";
462
479
  running: "running";
480
+ complete: "complete";
463
481
  stopped: "stopped";
464
482
  }>;
465
483
  pages: z.ZodNumber;
@@ -496,8 +514,8 @@ export type MigrationStepState = z.infer<typeof MigrationStepStateSchema>;
496
514
  export declare const GetMigrationConsoleResultSchema: z.ZodObject<{
497
515
  console: z.ZodObject<{
498
516
  destinationState: z.ZodEnum<{
499
- live: "live";
500
517
  preCutover: "preCutover";
518
+ live: "live";
501
519
  }>;
502
520
  cutoverRecordedAt: z.ZodOptional<z.ZodNumber>;
503
521
  cutoverRecordedByUserId: z.ZodOptional<z.ZodString>;
@@ -573,6 +591,10 @@ export declare const GetMigrationConsoleResultSchema: z.ZodObject<{
573
591
  "delete.v1GameLocations": "delete.v1GameLocations";
574
592
  "delete.v1AdminStats": "delete.v1AdminStats";
575
593
  "verify.v1CommerceDiscardable": "verify.v1CommerceDiscardable";
594
+ "verify.v1DisplayNamesUnique": "verify.v1DisplayNamesUnique";
595
+ "verify.v1TextFitsLimits": "verify.v1TextFitsLimits";
596
+ "verify.v1LeagueCapacity": "verify.v1LeagueCapacity";
597
+ "verify.v1HardwareContractIdsUnique": "verify.v1HardwareContractIdsUnique";
576
598
  "delete.v1Commerce": "delete.v1Commerce";
577
599
  "rebuild.leagueStats": "rebuild.leagueStats";
578
600
  "rebuild.lifetimeStats": "rebuild.lifetimeStats";
@@ -667,6 +689,10 @@ export declare const GetMigrationConsoleResultSchema: z.ZodObject<{
667
689
  "delete.v1GameLocations": "delete.v1GameLocations";
668
690
  "delete.v1AdminStats": "delete.v1AdminStats";
669
691
  "verify.v1CommerceDiscardable": "verify.v1CommerceDiscardable";
692
+ "verify.v1DisplayNamesUnique": "verify.v1DisplayNamesUnique";
693
+ "verify.v1TextFitsLimits": "verify.v1TextFitsLimits";
694
+ "verify.v1LeagueCapacity": "verify.v1LeagueCapacity";
695
+ "verify.v1HardwareContractIdsUnique": "verify.v1HardwareContractIdsUnique";
670
696
  "delete.v1Commerce": "delete.v1Commerce";
671
697
  "rebuild.leagueStats": "rebuild.leagueStats";
672
698
  "rebuild.lifetimeStats": "rebuild.lifetimeStats";
@@ -755,6 +781,10 @@ export declare const GetMigrationConsoleResultSchema: z.ZodObject<{
755
781
  "delete.v1GameLocations": "delete.v1GameLocations";
756
782
  "delete.v1AdminStats": "delete.v1AdminStats";
757
783
  "verify.v1CommerceDiscardable": "verify.v1CommerceDiscardable";
784
+ "verify.v1DisplayNamesUnique": "verify.v1DisplayNamesUnique";
785
+ "verify.v1TextFitsLimits": "verify.v1TextFitsLimits";
786
+ "verify.v1LeagueCapacity": "verify.v1LeagueCapacity";
787
+ "verify.v1HardwareContractIdsUnique": "verify.v1HardwareContractIdsUnique";
758
788
  "delete.v1Commerce": "delete.v1Commerce";
759
789
  "rebuild.leagueStats": "rebuild.leagueStats";
760
790
  "rebuild.lifetimeStats": "rebuild.lifetimeStats";
@@ -843,6 +873,10 @@ export declare const GetMigrationConsoleResultSchema: z.ZodObject<{
843
873
  "delete.v1GameLocations": "delete.v1GameLocations";
844
874
  "delete.v1AdminStats": "delete.v1AdminStats";
845
875
  "verify.v1CommerceDiscardable": "verify.v1CommerceDiscardable";
876
+ "verify.v1DisplayNamesUnique": "verify.v1DisplayNamesUnique";
877
+ "verify.v1TextFitsLimits": "verify.v1TextFitsLimits";
878
+ "verify.v1LeagueCapacity": "verify.v1LeagueCapacity";
879
+ "verify.v1HardwareContractIdsUnique": "verify.v1HardwareContractIdsUnique";
846
880
  "delete.v1Commerce": "delete.v1Commerce";
847
881
  "rebuild.leagueStats": "rebuild.leagueStats";
848
882
  "rebuild.lifetimeStats": "rebuild.lifetimeStats";
@@ -867,8 +901,8 @@ export declare const GetMigrationConsoleResultSchema: z.ZodObject<{
867
901
  updatedAt: z.ZodNumber;
868
902
  completedAt: z.ZodOptional<z.ZodNumber>;
869
903
  status: z.ZodEnum<{
870
- complete: "complete";
871
904
  running: "running";
905
+ complete: "complete";
872
906
  stopped: "stopped";
873
907
  }>;
874
908
  pages: z.ZodNumber;
@@ -902,8 +936,8 @@ export declare const GetMigrationConsoleResultSchema: z.ZodObject<{
902
936
  updatedAt: z.ZodNumber;
903
937
  completedAt: z.ZodOptional<z.ZodNumber>;
904
938
  status: z.ZodEnum<{
905
- complete: "complete";
906
939
  running: "running";
940
+ complete: "complete";
907
941
  stopped: "stopped";
908
942
  }>;
909
943
  pages: z.ZodNumber;
@@ -1011,6 +1045,10 @@ export declare const RecordMigrationControlRunInputSchema: z.ZodObject<{
1011
1045
  "delete.v1GameLocations": "delete.v1GameLocations";
1012
1046
  "delete.v1AdminStats": "delete.v1AdminStats";
1013
1047
  "verify.v1CommerceDiscardable": "verify.v1CommerceDiscardable";
1048
+ "verify.v1DisplayNamesUnique": "verify.v1DisplayNamesUnique";
1049
+ "verify.v1TextFitsLimits": "verify.v1TextFitsLimits";
1050
+ "verify.v1LeagueCapacity": "verify.v1LeagueCapacity";
1051
+ "verify.v1HardwareContractIdsUnique": "verify.v1HardwareContractIdsUnique";
1014
1052
  "delete.v1Commerce": "delete.v1Commerce";
1015
1053
  "rebuild.leagueStats": "rebuild.leagueStats";
1016
1054
  "rebuild.lifetimeStats": "rebuild.lifetimeStats";
@@ -1102,6 +1140,10 @@ export declare const RecordMigrationCheckpointInputSchema: z.ZodObject<{
1102
1140
  "delete.v1GameLocations": "delete.v1GameLocations";
1103
1141
  "delete.v1AdminStats": "delete.v1AdminStats";
1104
1142
  "verify.v1CommerceDiscardable": "verify.v1CommerceDiscardable";
1143
+ "verify.v1DisplayNamesUnique": "verify.v1DisplayNamesUnique";
1144
+ "verify.v1TextFitsLimits": "verify.v1TextFitsLimits";
1145
+ "verify.v1LeagueCapacity": "verify.v1LeagueCapacity";
1146
+ "verify.v1HardwareContractIdsUnique": "verify.v1HardwareContractIdsUnique";
1105
1147
  "delete.v1Commerce": "delete.v1Commerce";
1106
1148
  "rebuild.leagueStats": "rebuild.leagueStats";
1107
1149
  "rebuild.lifetimeStats": "rebuild.lifetimeStats";
@@ -1196,6 +1238,10 @@ export declare const RecordMigrationStepResultSchema: z.ZodObject<{
1196
1238
  "delete.v1GameLocations": "delete.v1GameLocations";
1197
1239
  "delete.v1AdminStats": "delete.v1AdminStats";
1198
1240
  "verify.v1CommerceDiscardable": "verify.v1CommerceDiscardable";
1241
+ "verify.v1DisplayNamesUnique": "verify.v1DisplayNamesUnique";
1242
+ "verify.v1TextFitsLimits": "verify.v1TextFitsLimits";
1243
+ "verify.v1LeagueCapacity": "verify.v1LeagueCapacity";
1244
+ "verify.v1HardwareContractIdsUnique": "verify.v1HardwareContractIdsUnique";
1199
1245
  "delete.v1Commerce": "delete.v1Commerce";
1200
1246
  "rebuild.leagueStats": "rebuild.leagueStats";
1201
1247
  "rebuild.lifetimeStats": "rebuild.lifetimeStats";
@@ -1287,6 +1333,10 @@ export declare const RecordMigrationStepResultSchema: z.ZodObject<{
1287
1333
  "delete.v1GameLocations": "delete.v1GameLocations";
1288
1334
  "delete.v1AdminStats": "delete.v1AdminStats";
1289
1335
  "verify.v1CommerceDiscardable": "verify.v1CommerceDiscardable";
1336
+ "verify.v1DisplayNamesUnique": "verify.v1DisplayNamesUnique";
1337
+ "verify.v1TextFitsLimits": "verify.v1TextFitsLimits";
1338
+ "verify.v1LeagueCapacity": "verify.v1LeagueCapacity";
1339
+ "verify.v1HardwareContractIdsUnique": "verify.v1HardwareContractIdsUnique";
1290
1340
  "delete.v1Commerce": "delete.v1Commerce";
1291
1341
  "rebuild.leagueStats": "rebuild.leagueStats";
1292
1342
  "rebuild.lifetimeStats": "rebuild.lifetimeStats";
@@ -1311,8 +1361,8 @@ export declare const RecordMigrationStepResultSchema: z.ZodObject<{
1311
1361
  updatedAt: z.ZodNumber;
1312
1362
  completedAt: z.ZodOptional<z.ZodNumber>;
1313
1363
  status: z.ZodEnum<{
1314
- complete: "complete";
1315
1364
  running: "running";
1365
+ complete: "complete";
1316
1366
  stopped: "stopped";
1317
1367
  }>;
1318
1368
  pages: z.ZodNumber;
@@ -1346,8 +1396,8 @@ export declare const RecordMigrationStepResultSchema: z.ZodObject<{
1346
1396
  updatedAt: z.ZodNumber;
1347
1397
  completedAt: z.ZodOptional<z.ZodNumber>;
1348
1398
  status: z.ZodEnum<{
1349
- complete: "complete";
1350
1399
  running: "running";
1400
+ complete: "complete";
1351
1401
  stopped: "stopped";
1352
1402
  }>;
1353
1403
  pages: z.ZodNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"migration-console.d.ts","sourceRoot":"","sources":["../../src/schemas/migration-console.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration-console.d.ts","sourceRoot":"","sources":["../../src/schemas/migration-console.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,10 @@ export const RunMigrationActionInputSchema = z
13
13
  acknowledgeUnexaminedSources: z.boolean().optional(),
14
14
  })
15
15
  .strict();
16
+ // Keeps the wire bound of every action and adds the chosen action's own ceiling.
17
+ export function migrationPageSizeSchema(step) {
18
+ return RunMigrationActionInputSchema.shape.pageSize.max(step.maxPageSize);
19
+ }
16
20
  export const MigrationActionPageResultSchema = z
17
21
  .object({
18
22
  actionId: migrationActionIdSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"migration-console.js","sourceRoot":"","sources":["../../src/schemas/migration-console.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport {\n MigrationActionRunSchema,\n MigrationConsoleSchema,\n MigrationFindingSchema,\n MigrationRunRecordSchema,\n migrationActionIdSchema,\n migrationEvidenceSchema,\n migrationOperationIdSchema,\n} from '../doc-schemas/migration-console.js';\nimport {\n MAX_MIGRATION_PAGE_SIZE,\n MIGRATION_RECORD_OUTCOME_KEYS,\n} from '../migration-console/run-state.js';\nimport {\n countSchema,\n epochMsSchema,\n repairReasonSchema,\n statsOperationIdSchema,\n} from '../doc-schemas/atoms.js';\n\nconst MAX_RECORDED_OPERATION_IDS = 10;\n\nexport const RunMigrationActionInputSchema = z\n .object({\n operationId: migrationOperationIdSchema,\n reason: repairReasonSchema,\n dryRun: z.boolean(),\n pageSize: z.number().int().min(1).max(MAX_MIGRATION_PAGE_SIZE),\n expectEmptySource: z.boolean().optional(),\n acknowledgeUnexaminedSources: z.boolean().optional(),\n })\n .strict();\nexport type RunMigrationActionInput = z.infer<typeof RunMigrationActionInputSchema>;\n\nexport const MigrationActionPageResultSchema = z\n .object({\n actionId: migrationActionIdSchema,\n operationId: migrationOperationIdSchema,\n dryRun: z.boolean(),\n read: countSchema,\n written: countSchema,\n skipped: countSchema,\n checked: countSchema,\n missing: countSchema,\n mismatched: countSchema,\n details: z.record(z.string().min(1), countSchema),\n findings: z.array(MigrationFindingSchema),\n nextResumeAfter: z.string().min(1).nullable(),\n complete: z.boolean(),\n run: MigrationRunRecordSchema,\n })\n .strict();\nexport type MigrationActionPageResult = z.infer<typeof MigrationActionPageResultSchema>;\n\nexport const GetMigrationConsoleInputSchema = z.object({}).strict();\nexport type GetMigrationConsoleInput = z.infer<typeof GetMigrationConsoleInputSchema>;\n\nexport const MigrationStepStateSchema = z\n .object({\n actionId: migrationActionIdSchema,\n unlocked: z.boolean(),\n satisfied: z.boolean(),\n waitingOn: z.array(migrationActionIdSchema),\n previewCurrent: z.boolean(),\n record: MigrationActionRunSchema.nullable(),\n })\n .strict();\nexport type MigrationStepState = z.infer<typeof MigrationStepStateSchema>;\n\nexport const GetMigrationConsoleResultSchema = z\n .object({\n console: MigrationConsoleSchema,\n steps: z.array(MigrationStepStateSchema),\n readAt: epochMsSchema,\n })\n .strict();\nexport type GetMigrationConsoleResult = z.infer<typeof GetMigrationConsoleResultSchema>;\n\nexport const RecordMigrationControlRunInputSchema = z\n .object({\n actionId: migrationActionIdSchema,\n operationIds: z.array(statsOperationIdSchema).max(MAX_RECORDED_OPERATION_IDS),\n reason: repairReasonSchema,\n })\n .strict();\nexport type RecordMigrationControlRunInput = z.infer<typeof RecordMigrationControlRunInputSchema>;\n\nexport const RecordMigrationCheckpointInputSchema = z\n .object({\n actionId: migrationActionIdSchema,\n evidence: migrationEvidenceSchema,\n })\n .strict();\nexport type RecordMigrationCheckpointInput = z.infer<typeof RecordMigrationCheckpointInputSchema>;\n\nexport const RecordMigrationCutoverInputSchema = z.object({ reason: repairReasonSchema }).strict();\nexport type RecordMigrationCutoverInput = z.infer<typeof RecordMigrationCutoverInputSchema>;\n\nexport const RecordMigrationStepResultSchema = z\n .object({\n actionId: migrationActionIdSchema,\n outcome: z.enum(MIGRATION_RECORD_OUTCOME_KEYS),\n record: MigrationActionRunSchema,\n })\n .strict();\nexport type RecordMigrationStepResult = z.infer<typeof RecordMigrationStepResultSchema>;\n"]}
1
+ {"version":3,"file":"migration-console.js","sourceRoot":"","sources":["../../src/schemas/migration-console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAEtC,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACN,WAAW,EAAE,0BAA0B;IACvC,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAC9D,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACzC,4BAA4B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACrD,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,iFAAiF;AACjF,MAAM,UAAU,uBAAuB,CAAC,IAAkD;IACxF,OAAO,6BAA6B,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC;KAC7C,MAAM,CAAC;IACN,QAAQ,EAAE,uBAAuB;IACjC,WAAW,EAAE,0BAA0B;IACvC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,UAAU,EAAE,WAAW;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;IACzC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,GAAG,EAAE,wBAAwB;CAC9B,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAGpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,QAAQ,EAAE,uBAAuB;IACjC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC;IAC3C,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,MAAM,EAAE,wBAAwB,CAAC,QAAQ,EAAE;CAC5C,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC;KAC7C,MAAM,CAAC;IACN,OAAO,EAAE,sBAAsB;IAC/B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;IACxC,MAAM,EAAE,aAAa;CACtB,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC;KAClD,MAAM,CAAC;IACN,QAAQ,EAAE,uBAAuB;IACjC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC;IAC7E,MAAM,EAAE,kBAAkB;CAC3B,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC;KAClD,MAAM,CAAC;IACN,QAAQ,EAAE,uBAAuB;IACjC,QAAQ,EAAE,uBAAuB;CAClC,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAGnG,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC;KAC7C,MAAM,CAAC;IACN,QAAQ,EAAE,uBAAuB;IACjC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC;IAC9C,MAAM,EAAE,wBAAwB;CACjC,CAAC;KACD,MAAM,EAAE,CAAC","sourcesContent":["import { z } from 'zod';\nimport {\n MigrationActionRunSchema,\n MigrationConsoleSchema,\n MigrationFindingSchema,\n MigrationRunRecordSchema,\n migrationActionIdSchema,\n migrationEvidenceSchema,\n migrationOperationIdSchema,\n} from '../doc-schemas/migration-console.js';\nimport {\n MAX_MIGRATION_PAGE_SIZE,\n MIGRATION_RECORD_OUTCOME_KEYS,\n} from '../migration-console/run-state.js';\nimport type { ExecutableMigrationStep } from '../migration-console/manifest.js';\nimport {\n countSchema,\n epochMsSchema,\n repairReasonSchema,\n statsOperationIdSchema,\n} from '../doc-schemas/atoms.js';\n\nconst MAX_RECORDED_OPERATION_IDS = 10;\n\nexport const RunMigrationActionInputSchema = z\n .object({\n operationId: migrationOperationIdSchema,\n reason: repairReasonSchema,\n dryRun: z.boolean(),\n pageSize: z.number().int().min(1).max(MAX_MIGRATION_PAGE_SIZE),\n expectEmptySource: z.boolean().optional(),\n acknowledgeUnexaminedSources: z.boolean().optional(),\n })\n .strict();\nexport type RunMigrationActionInput = z.infer<typeof RunMigrationActionInputSchema>;\n\n// Keeps the wire bound of every action and adds the chosen action's own ceiling.\nexport function migrationPageSizeSchema(step: Pick<ExecutableMigrationStep, 'maxPageSize'>) {\n return RunMigrationActionInputSchema.shape.pageSize.max(step.maxPageSize);\n}\n\nexport const MigrationActionPageResultSchema = z\n .object({\n actionId: migrationActionIdSchema,\n operationId: migrationOperationIdSchema,\n dryRun: z.boolean(),\n read: countSchema,\n written: countSchema,\n skipped: countSchema,\n checked: countSchema,\n missing: countSchema,\n mismatched: countSchema,\n details: z.record(z.string().min(1), countSchema),\n findings: z.array(MigrationFindingSchema),\n nextResumeAfter: z.string().min(1).nullable(),\n complete: z.boolean(),\n run: MigrationRunRecordSchema,\n })\n .strict();\nexport type MigrationActionPageResult = z.infer<typeof MigrationActionPageResultSchema>;\n\nexport const GetMigrationConsoleInputSchema = z.object({}).strict();\nexport type GetMigrationConsoleInput = z.infer<typeof GetMigrationConsoleInputSchema>;\n\nexport const MigrationStepStateSchema = z\n .object({\n actionId: migrationActionIdSchema,\n unlocked: z.boolean(),\n satisfied: z.boolean(),\n waitingOn: z.array(migrationActionIdSchema),\n previewCurrent: z.boolean(),\n record: MigrationActionRunSchema.nullable(),\n })\n .strict();\nexport type MigrationStepState = z.infer<typeof MigrationStepStateSchema>;\n\nexport const GetMigrationConsoleResultSchema = z\n .object({\n console: MigrationConsoleSchema,\n steps: z.array(MigrationStepStateSchema),\n readAt: epochMsSchema,\n })\n .strict();\nexport type GetMigrationConsoleResult = z.infer<typeof GetMigrationConsoleResultSchema>;\n\nexport const RecordMigrationControlRunInputSchema = z\n .object({\n actionId: migrationActionIdSchema,\n operationIds: z.array(statsOperationIdSchema).max(MAX_RECORDED_OPERATION_IDS),\n reason: repairReasonSchema,\n })\n .strict();\nexport type RecordMigrationControlRunInput = z.infer<typeof RecordMigrationControlRunInputSchema>;\n\nexport const RecordMigrationCheckpointInputSchema = z\n .object({\n actionId: migrationActionIdSchema,\n evidence: migrationEvidenceSchema,\n })\n .strict();\nexport type RecordMigrationCheckpointInput = z.infer<typeof RecordMigrationCheckpointInputSchema>;\n\nexport const RecordMigrationCutoverInputSchema = z.object({ reason: repairReasonSchema }).strict();\nexport type RecordMigrationCutoverInput = z.infer<typeof RecordMigrationCutoverInputSchema>;\n\nexport const RecordMigrationStepResultSchema = z\n .object({\n actionId: migrationActionIdSchema,\n outcome: z.enum(MIGRATION_RECORD_OUTCOME_KEYS),\n record: MigrationActionRunSchema,\n })\n .strict();\nexport type RecordMigrationStepResult = z.infer<typeof RecordMigrationStepResultSchema>;\n"]}
@@ -3,8 +3,8 @@ export declare const sportStatEventIdSchema: z.ZodString;
3
3
  export declare const StatEventSubmissionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
4
4
  eventId: z.ZodString;
5
5
  type: z.ZodLiteral<"1PT">;
6
- teamId: z.ZodString;
7
6
  recordedAt: z.ZodNumber;
7
+ teamId: z.ZodString;
8
8
  playerUserId: z.ZodString;
9
9
  }, z.core.$strict>, z.ZodObject<{
10
10
  eventId: z.ZodString;
@@ -12,8 +12,8 @@ export declare const StatEventSubmissionSchema: z.ZodDiscriminatedUnion<[z.ZodOb
12
12
  "2PT": "2PT";
13
13
  "3PT": "3PT";
14
14
  }>;
15
- teamId: z.ZodString;
16
15
  recordedAt: z.ZodNumber;
16
+ teamId: z.ZodString;
17
17
  assistedByUserId: z.ZodOptional<z.ZodString>;
18
18
  playerUserId: z.ZodString;
19
19
  }, z.core.$strict>, z.ZodObject<{
@@ -22,21 +22,21 @@ export declare const StatEventSubmissionSchema: z.ZodDiscriminatedUnion<[z.ZodOb
22
22
  REBOUND: "REBOUND";
23
23
  ASSIST: "ASSIST";
24
24
  }>;
25
- teamId: z.ZodString;
26
25
  recordedAt: z.ZodNumber;
26
+ teamId: z.ZodString;
27
27
  playerUserId: z.ZodString;
28
28
  }, z.core.$strict>, z.ZodObject<{
29
29
  eventId: z.ZodString;
30
30
  type: z.ZodLiteral<"TIMEOUT">;
31
- teamId: z.ZodString;
32
31
  recordedAt: z.ZodNumber;
32
+ teamId: z.ZodString;
33
33
  }, z.core.$strict>, z.ZodObject<{
34
34
  previousValue: z.ZodNumber;
35
35
  eventId: z.ZodString;
36
36
  type: z.ZodLiteral<"BULK_EDIT">;
37
37
  value: z.ZodNumber;
38
- teamId: z.ZodString;
39
38
  recordedAt: z.ZodNumber;
39
+ teamId: z.ZodString;
40
40
  playerUserId: z.ZodString;
41
41
  stat: z.ZodEnum<{
42
42
  points: "points";
@@ -47,8 +47,8 @@ export declare const StatEventSubmissionSchema: z.ZodDiscriminatedUnion<[z.ZodOb
47
47
  eventId: z.ZodString;
48
48
  points: z.ZodNumber;
49
49
  type: z.ZodLiteral<"CURLING_ROUND_SCORE">;
50
- teamId: z.ZodString;
51
50
  recordedAt: z.ZodNumber;
51
+ teamId: z.ZodString;
52
52
  roundNumber: z.ZodNumber;
53
53
  }, z.core.$strict>, z.ZodObject<{
54
54
  eventId: z.ZodString;
@@ -62,14 +62,14 @@ export declare const StatEventSubmissionSchema: z.ZodDiscriminatedUnion<[z.ZodOb
62
62
  FOOTBALL_2PT: "FOOTBALL_2PT";
63
63
  FOOTBALL_1PT: "FOOTBALL_1PT";
64
64
  }>;
65
- teamId: z.ZodString;
66
65
  recordedAt: z.ZodNumber;
66
+ teamId: z.ZodString;
67
67
  }, z.core.$strict>, z.ZodObject<{
68
68
  eventId: z.ZodString;
69
69
  type: z.ZodLiteral<"FOOTBALL_BULK_EDIT">;
70
70
  value: z.ZodNumber;
71
- teamId: z.ZodString;
72
71
  recordedAt: z.ZodNumber;
72
+ teamId: z.ZodString;
73
73
  previousValue: z.ZodNumber;
74
74
  }, z.core.$strict>, z.ZodObject<{
75
75
  targetEventId: z.ZodString;
@@ -79,9 +79,10 @@ export declare const StatEventSubmissionSchema: z.ZodDiscriminatedUnion<[z.ZodOb
79
79
  type: z.ZodLiteral<"STAT_CORRECTION">;
80
80
  value: z.ZodNumber;
81
81
  reason: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
82
+ operationId: z.ZodString;
83
+ recordedAt: z.ZodNumber;
82
84
  teamId: z.ZodString;
83
85
  eventId: z.ZodString;
84
- recordedAt: z.ZodNumber;
85
86
  playerUserId: z.ZodOptional<z.ZodString>;
86
87
  stat: z.ZodEnum<{
87
88
  score: "score";
@@ -94,7 +95,6 @@ export declare const StatEventSubmissionSchema: z.ZodDiscriminatedUnion<[z.ZodOb
94
95
  admin: "admin";
95
96
  migration: "migration";
96
97
  }>;
97
- operationId: z.ZodString;
98
98
  rekeyedFromGhostUserId: z.ZodOptional<z.ZodString>;
99
99
  }, z.core.$strict>], "type">;
100
100
  export type StatEventSubmission = z.infer<typeof StatEventSubmissionSchema>;
@@ -103,8 +103,8 @@ export declare const RecordGameStatEventsInputSchema: z.ZodObject<{
103
103
  events: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
104
104
  eventId: z.ZodString;
105
105
  type: z.ZodLiteral<"1PT">;
106
- teamId: z.ZodString;
107
106
  recordedAt: z.ZodNumber;
107
+ teamId: z.ZodString;
108
108
  playerUserId: z.ZodString;
109
109
  }, z.core.$strict>, z.ZodObject<{
110
110
  eventId: z.ZodString;
@@ -112,8 +112,8 @@ export declare const RecordGameStatEventsInputSchema: z.ZodObject<{
112
112
  "2PT": "2PT";
113
113
  "3PT": "3PT";
114
114
  }>;
115
- teamId: z.ZodString;
116
115
  recordedAt: z.ZodNumber;
116
+ teamId: z.ZodString;
117
117
  assistedByUserId: z.ZodOptional<z.ZodString>;
118
118
  playerUserId: z.ZodString;
119
119
  }, z.core.$strict>, z.ZodObject<{
@@ -122,21 +122,21 @@ export declare const RecordGameStatEventsInputSchema: z.ZodObject<{
122
122
  REBOUND: "REBOUND";
123
123
  ASSIST: "ASSIST";
124
124
  }>;
125
- teamId: z.ZodString;
126
125
  recordedAt: z.ZodNumber;
126
+ teamId: z.ZodString;
127
127
  playerUserId: z.ZodString;
128
128
  }, z.core.$strict>, z.ZodObject<{
129
129
  eventId: z.ZodString;
130
130
  type: z.ZodLiteral<"TIMEOUT">;
131
- teamId: z.ZodString;
132
131
  recordedAt: z.ZodNumber;
132
+ teamId: z.ZodString;
133
133
  }, z.core.$strict>, z.ZodObject<{
134
134
  previousValue: z.ZodNumber;
135
135
  eventId: z.ZodString;
136
136
  type: z.ZodLiteral<"BULK_EDIT">;
137
137
  value: z.ZodNumber;
138
- teamId: z.ZodString;
139
138
  recordedAt: z.ZodNumber;
139
+ teamId: z.ZodString;
140
140
  playerUserId: z.ZodString;
141
141
  stat: z.ZodEnum<{
142
142
  points: "points";
@@ -147,8 +147,8 @@ export declare const RecordGameStatEventsInputSchema: z.ZodObject<{
147
147
  eventId: z.ZodString;
148
148
  points: z.ZodNumber;
149
149
  type: z.ZodLiteral<"CURLING_ROUND_SCORE">;
150
- teamId: z.ZodString;
151
150
  recordedAt: z.ZodNumber;
151
+ teamId: z.ZodString;
152
152
  roundNumber: z.ZodNumber;
153
153
  }, z.core.$strict>, z.ZodObject<{
154
154
  eventId: z.ZodString;
@@ -162,14 +162,14 @@ export declare const RecordGameStatEventsInputSchema: z.ZodObject<{
162
162
  FOOTBALL_2PT: "FOOTBALL_2PT";
163
163
  FOOTBALL_1PT: "FOOTBALL_1PT";
164
164
  }>;
165
- teamId: z.ZodString;
166
165
  recordedAt: z.ZodNumber;
166
+ teamId: z.ZodString;
167
167
  }, z.core.$strict>, z.ZodObject<{
168
168
  eventId: z.ZodString;
169
169
  type: z.ZodLiteral<"FOOTBALL_BULK_EDIT">;
170
170
  value: z.ZodNumber;
171
- teamId: z.ZodString;
172
171
  recordedAt: z.ZodNumber;
172
+ teamId: z.ZodString;
173
173
  previousValue: z.ZodNumber;
174
174
  }, z.core.$strict>, z.ZodObject<{
175
175
  targetEventId: z.ZodString;
@@ -179,9 +179,10 @@ export declare const RecordGameStatEventsInputSchema: z.ZodObject<{
179
179
  type: z.ZodLiteral<"STAT_CORRECTION">;
180
180
  value: z.ZodNumber;
181
181
  reason: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
182
+ operationId: z.ZodString;
183
+ recordedAt: z.ZodNumber;
182
184
  teamId: z.ZodString;
183
185
  eventId: z.ZodString;
184
- recordedAt: z.ZodNumber;
185
186
  playerUserId: z.ZodOptional<z.ZodString>;
186
187
  stat: z.ZodEnum<{
187
188
  score: "score";
@@ -194,7 +195,6 @@ export declare const RecordGameStatEventsInputSchema: z.ZodObject<{
194
195
  admin: "admin";
195
196
  migration: "migration";
196
197
  }>;
197
- operationId: z.ZodString;
198
198
  rekeyedFromGhostUserId: z.ZodOptional<z.ZodString>;
199
199
  }, z.core.$strict>], "type">>;
200
200
  }, z.core.$strict>;
@@ -174,6 +174,12 @@ export declare const GameRepairChangesSchema: z.ZodObject<{
174
174
  stored: z.ZodNumber;
175
175
  rebuilt: z.ZodNumber;
176
176
  }, z.core.$strict>>;
177
+ roundSlots: z.ZodOptional<z.ZodArray<z.ZodObject<{
178
+ lineKey: z.ZodString;
179
+ slotIndex: z.ZodNumber;
180
+ stored: z.ZodNullable<z.ZodNumber>;
181
+ rebuilt: z.ZodNullable<z.ZodNumber>;
182
+ }, z.core.$strict>>>;
177
183
  absentRosterPlayerIds: z.ZodOptional<z.ZodObject<{
178
184
  stored: z.ZodArray<z.ZodString>;
179
185
  rebuilt: z.ZodArray<z.ZodString>;
@@ -226,6 +232,12 @@ export declare const GameStatsRepairResultSchema: z.ZodObject<{
226
232
  stored: z.ZodNumber;
227
233
  rebuilt: z.ZodNumber;
228
234
  }, z.core.$strict>>;
235
+ roundSlots: z.ZodOptional<z.ZodArray<z.ZodObject<{
236
+ lineKey: z.ZodString;
237
+ slotIndex: z.ZodNumber;
238
+ stored: z.ZodNullable<z.ZodNumber>;
239
+ rebuilt: z.ZodNullable<z.ZodNumber>;
240
+ }, z.core.$strict>>>;
229
241
  absentRosterPlayerIds: z.ZodOptional<z.ZodObject<{
230
242
  stored: z.ZodArray<z.ZodString>;
231
243
  rebuilt: z.ZodArray<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/schemas/stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/schemas/stats.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { MAX_GAME_STATS_CORRECTION_TARGETS } from '../constants/sports.js';
2
+ import { CURLING_ROUND_COUNT, MAX_CURLING_ROUND_POINTS, MAX_GAME_STATS_CORRECTION_TARGETS, } from '../constants/sports.js';
3
3
  import { countSchema, gameIdSchema, gameRosterPlayerIdSchema, leagueIdSchema, repairReasonSchema, sportKeySchema, statCounterKeySchema, statsOperationIdSchema, statsValidationReportIdSchema, teamIdSchema, userIdSchema, } from '../doc-schemas/atoms.js';
4
4
  import { StatsDestinationChangeSchema, StatsOperationCountsSchema, } from '../doc-schemas/stats-operation.js';
5
5
  import { StatsValidationReportSchema, StatsValidationScopeSchema, StatsValidationSummarySchema, } from '../doc-schemas/system.js';
@@ -123,6 +123,9 @@ export const RecalculateGameStatsInputSchema = z
123
123
  export const GameStatsCorrectionSchema = z
124
124
  .object({ lineKey: z.string().min(1), field: statCounterKeySchema, value: z.number().int() })
125
125
  .strict();
126
+ const roundSlotValueSchema = z.number().int().min(0).max(MAX_CURLING_ROUND_POINTS).nullable();
127
+ // Two team lines of a game, each holding its sport's fixed round slots.
128
+ const MAX_ROUND_SLOT_CHANGES = 2 * CURLING_ROUND_COUNT;
126
129
  const replacedEntryListSchema = z
127
130
  .object({ stored: z.array(gameRosterPlayerIdSchema), rebuilt: z.array(gameRosterPlayerIdSchema) })
128
131
  .strict();
@@ -137,6 +140,23 @@ export const GameRepairChangesSchema = z
137
140
  })
138
141
  .strict()),
139
142
  scores: z.array(z.object({ teamId: teamIdSchema, stored: z.number(), rebuilt: z.number() }).strict()),
143
+ // Present when a round slot changed: each changed slot of a line, a null slot unplayed.
144
+ roundSlots: z
145
+ .array(z
146
+ .object({
147
+ lineKey: z.string().min(1),
148
+ slotIndex: z
149
+ .number()
150
+ .int()
151
+ .min(0)
152
+ .max(CURLING_ROUND_COUNT - 1),
153
+ stored: roundSlotValueSchema,
154
+ rebuilt: roundSlotValueSchema,
155
+ })
156
+ .strict())
157
+ .min(1)
158
+ .max(MAX_ROUND_SLOT_CHANGES)
159
+ .optional(),
140
160
  absentRosterPlayerIds: replacedEntryListSchema.optional(),
141
161
  nonScoringRosterPlayerIds: replacedEntryListSchema.optional(),
142
162
  statEventSequence: z.object({ stored: countSchema, rebuilt: countSchema }).strict().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/schemas/stats.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { MAX_GAME_STATS_CORRECTION_TARGETS } from '../constants/sports.js';\nimport {\n countSchema,\n gameIdSchema,\n gameRosterPlayerIdSchema,\n leagueIdSchema,\n repairReasonSchema,\n sportKeySchema,\n statCounterKeySchema,\n statsOperationIdSchema,\n statsValidationReportIdSchema,\n teamIdSchema,\n userIdSchema,\n} from '../doc-schemas/atoms.js';\nimport {\n StatsDestinationChangeSchema,\n StatsOperationCountsSchema,\n} from '../doc-schemas/stats-operation.js';\nimport {\n StatsValidationReportSchema,\n StatsValidationScopeSchema,\n StatsValidationSummarySchema,\n} from '../doc-schemas/system.js';\nimport { HistoricalStatsSchema } from '../doc-schemas/user-profile.js';\nimport {\n GAME_FINALIZE_OUTCOME_KEYS,\n GAME_REOPEN_OUTCOME_KEYS,\n GAME_STATS_REPAIR_OUTCOME_KEYS,\n UNROSTERED_STAT_LINE_RESOLUTION_OUTCOME_KEYS,\n} from '../types/stats.js';\n\nexport const FinalizeGameInputSchema = z.object({ gameId: gameIdSchema }).strict();\nexport type FinalizeGameInput = z.infer<typeof FinalizeGameInputSchema>;\n\nexport const FinalizeGameResultSchema = z\n .object({\n gameId: gameIdSchema,\n leagueId: leagueIdSchema,\n outcome: z.enum(GAME_FINALIZE_OUTCOME_KEYS),\n nonScoringRosterPlayerIds: z.array(gameRosterPlayerIdSchema),\n })\n .strict();\nexport type FinalizeGameResult = z.infer<typeof FinalizeGameResultSchema>;\n\nexport const ReopenGameInputSchema = z\n .object({ gameId: gameIdSchema, reason: repairReasonSchema })\n .strict();\nexport type ReopenGameInput = z.infer<typeof ReopenGameInputSchema>;\n\nexport const ReopenGameResultSchema = z\n .object({\n gameId: gameIdSchema,\n leagueId: leagueIdSchema,\n outcome: z.enum(GAME_REOPEN_OUTCOME_KEYS),\n })\n .strict();\nexport type ReopenGameResult = z.infer<typeof ReopenGameResultSchema>;\n\nexport const AdminResolveUnrosteredStatLineInputSchema = z\n .object({\n gameId: gameIdSchema,\n userId: userIdSchema,\n teamId: teamIdSchema,\n reason: repairReasonSchema,\n dryRun: z.boolean().optional(),\n })\n .strict();\nexport type AdminResolveUnrosteredStatLineInput = z.infer<\n typeof AdminResolveUnrosteredStatLineInputSchema\n>;\n\nexport const AdminResolveUnrosteredStatLineResultSchema = z\n .object({\n gameId: gameIdSchema,\n userId: userIdSchema,\n teamId: teamIdSchema,\n outcome: z.enum(UNROSTERED_STAT_LINE_RESOLUTION_OUTCOME_KEYS),\n gameConverts: z.boolean(),\n })\n .strict();\nexport type AdminResolveUnrosteredStatLineResult = z.infer<\n typeof AdminResolveUnrosteredStatLineResultSchema\n>;\n\nconst statsRepairFields = {\n reason: repairReasonSchema,\n operationId: statsOperationIdSchema,\n dryRun: z.boolean(),\n resumeAfter: z.string().min(1).optional(),\n};\n\nconst cursorOnlyOnDryRun = (input: { dryRun: boolean; resumeAfter?: string }): boolean =>\n input.dryRun || input.resumeAfter === undefined;\nconst CURSOR_ONLY_ON_DRY_RUN = {\n message: 'A real run resumes from its operation; only a dry run takes a cursor.',\n path: ['resumeAfter'],\n};\n\nexport const RecalculateLeagueStatsInputSchema = z\n .object({ leagueId: leagueIdSchema, ...statsRepairFields })\n .strict()\n .refine(cursorOnlyOnDryRun, CURSOR_ONLY_ON_DRY_RUN);\nexport type RecalculateLeagueStatsInput = z.infer<typeof RecalculateLeagueStatsInputSchema>;\n\nexport const RecalculateAllLeagueStatsInputSchema = z\n .object({ ...statsRepairFields })\n .strict()\n .refine(cursorOnlyOnDryRun, CURSOR_ONLY_ON_DRY_RUN);\nexport type RecalculateAllLeagueStatsInput = z.infer<typeof RecalculateAllLeagueStatsInputSchema>;\n\nexport const RecalculateUserStatsInputSchema = z\n .object({ userId: userIdSchema, ...statsRepairFields })\n .strict()\n .refine(cursorOnlyOnDryRun, CURSOR_ONLY_ON_DRY_RUN);\nexport type RecalculateUserStatsInput = z.infer<typeof RecalculateUserStatsInputSchema>;\n\nexport const RecalculateAllUserStatsInputSchema = z\n .object({ ...statsRepairFields })\n .strict()\n .refine(cursorOnlyOnDryRun, CURSOR_ONLY_ON_DRY_RUN);\nexport type RecalculateAllUserStatsInput = z.infer<typeof RecalculateAllUserStatsInputSchema>;\n\nexport const RecalculateHallOfFameInputSchema = z\n .object({ sportKey: sportKeySchema, userId: userIdSchema.optional(), ...statsRepairFields })\n .strict()\n .refine(cursorOnlyOnDryRun, CURSOR_ONLY_ON_DRY_RUN);\nexport type RecalculateHallOfFameInput = z.infer<typeof RecalculateHallOfFameInputSchema>;\n\nexport const StatsRebuildResultSchema = z\n .object({\n operationId: statsOperationIdSchema,\n dryRun: z.boolean(),\n complete: z.boolean(),\n nextResumeAfter: z.string().min(1).nullable(),\n counts: StatsOperationCountsSchema,\n stoppedOnGameIds: z.array(gameIdSchema),\n changes: z.array(StatsDestinationChangeSchema),\n changesTruncated: z.boolean(),\n scopeChanged: z.boolean(),\n })\n .strict();\nexport type StatsRebuildResult = z.infer<typeof StatsRebuildResultSchema>;\n\nexport const GameStatsCorrectionTargetSchema = z\n .object({\n teamId: teamIdSchema,\n playerUserId: userIdSchema.optional(),\n stat: statCounterKeySchema,\n value: countSchema,\n })\n .strict();\nexport type GameStatsCorrectionTarget = z.infer<typeof GameStatsCorrectionTargetSchema>;\n\nexport const AdminCorrectGameStatsInputSchema = z\n .object({\n gameId: gameIdSchema,\n targets: z\n .array(GameStatsCorrectionTargetSchema)\n .min(1)\n .max(MAX_GAME_STATS_CORRECTION_TARGETS)\n .optional(),\n keepStored: z.literal(true).optional(),\n reason: repairReasonSchema,\n operationId: statsOperationIdSchema,\n dryRun: z.boolean(),\n })\n .strict()\n .refine((input) => (input.targets === undefined) !== (input.keepStored === undefined), {\n message: 'Give the values to set, or keep the stored numbers — one of the two.',\n path: ['targets'],\n });\nexport type AdminCorrectGameStatsInput = z.infer<typeof AdminCorrectGameStatsInputSchema>;\n\nexport const RecalculateGameStatsInputSchema = z\n .object({\n gameId: gameIdSchema,\n reason: repairReasonSchema,\n operationId: statsOperationIdSchema,\n dryRun: z.boolean(),\n })\n .strict();\nexport type RecalculateGameStatsInput = z.infer<typeof RecalculateGameStatsInputSchema>;\n\nexport const GameStatsCorrectionSchema = z\n .object({ lineKey: z.string().min(1), field: statCounterKeySchema, value: z.number().int() })\n .strict();\nexport type GameStatsCorrection = z.infer<typeof GameStatsCorrectionSchema>;\n\nconst replacedEntryListSchema = z\n .object({ stored: z.array(gameRosterPlayerIdSchema), rebuilt: z.array(gameRosterPlayerIdSchema) })\n .strict();\n\nexport const GameRepairChangesSchema = z\n .object({\n lines: z.array(\n z\n .object({\n lineKey: z.string().min(1),\n field: z.string().min(1),\n stored: z.number(),\n rebuilt: z.number(),\n })\n .strict(),\n ),\n scores: z.array(\n z.object({ teamId: teamIdSchema, stored: z.number(), rebuilt: z.number() }).strict(),\n ),\n absentRosterPlayerIds: replacedEntryListSchema.optional(),\n nonScoringRosterPlayerIds: replacedEntryListSchema.optional(),\n statEventSequence: z.object({ stored: countSchema, rebuilt: countSchema }).strict().optional(),\n recordRewritten: z\n .object({ pagesBefore: countSchema, pagesAfter: countSchema })\n .strict()\n .optional(),\n })\n .strict();\nexport type GameRepairChanges = z.infer<typeof GameRepairChangesSchema>;\n\nexport const GameStatsRepairResultSchema = z\n .object({\n gameId: gameIdSchema,\n leagueId: leagueIdSchema,\n operationId: statsOperationIdSchema,\n dryRun: z.boolean(),\n outcome: z.enum(GAME_STATS_REPAIR_OUTCOME_KEYS),\n corrections: z.array(GameStatsCorrectionSchema),\n gameChanged: z.boolean(),\n gameChanges: GameRepairChangesSchema,\n destinationChanges: z.array(StatsDestinationChangeSchema),\n })\n .strict();\nexport type GameStatsRepairResult = z.infer<typeof GameStatsRepairResultSchema>;\n\nexport const AdminUpdateHistoricalStatsInputSchema = z\n .object({\n userId: userIdSchema,\n sportKey: sportKeySchema,\n stats: HistoricalStatsSchema,\n reason: repairReasonSchema,\n operationId: statsOperationIdSchema,\n dryRun: z.boolean(),\n })\n .strict();\nexport type AdminUpdateHistoricalStatsInput = z.infer<typeof AdminUpdateHistoricalStatsInputSchema>;\n\nexport const AdminUpdateHistoricalStatsResultSchema = z\n .object({\n userId: userIdSchema,\n sportKey: sportKeySchema,\n operationId: statsOperationIdSchema,\n dryRun: z.boolean(),\n outcome: z.enum(GAME_STATS_REPAIR_OUTCOME_KEYS),\n baselineBefore: HistoricalStatsSchema.nullable(),\n stoppedOnGameIds: z.array(gameIdSchema),\n changes: z.array(StatsDestinationChangeSchema),\n })\n .strict();\nexport type AdminUpdateHistoricalStatsResult = z.infer<\n typeof AdminUpdateHistoricalStatsResultSchema\n>;\n\nexport const RunStatsValidationInputSchema = z\n .object({ operationId: statsOperationIdSchema, scope: StatsValidationScopeSchema })\n .strict();\nexport type RunStatsValidationInput = z.infer<typeof RunStatsValidationInputSchema>;\n\nexport const RunStatsValidationResultSchema = z\n .object({\n reportId: z.string().min(1),\n complete: z.boolean(),\n summary: StatsValidationSummarySchema,\n discrepancyCounts: StatsValidationReportSchema.shape.discrepancyCounts,\n })\n .strict();\nexport type RunStatsValidationResult = z.infer<typeof RunStatsValidationResultSchema>;\n\nexport const AdminDeleteStatsValidationReportInputSchema = z\n .object({ reportId: statsValidationReportIdSchema })\n .strict();\nexport type AdminDeleteStatsValidationReportInput = z.infer<\n typeof AdminDeleteStatsValidationReportInputSchema\n>;\n\nexport const AdminDeleteStatsValidationReportResultSchema = z\n .object({ reportId: statsValidationReportIdSchema })\n .strict();\nexport type AdminDeleteStatsValidationReportResult = z.infer<\n typeof AdminDeleteStatsValidationReportResultSchema\n>;\n"]}
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/schemas/stats.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport {\n CURLING_ROUND_COUNT,\n MAX_CURLING_ROUND_POINTS,\n MAX_GAME_STATS_CORRECTION_TARGETS,\n} from '../constants/sports.js';\nimport {\n countSchema,\n gameIdSchema,\n gameRosterPlayerIdSchema,\n leagueIdSchema,\n repairReasonSchema,\n sportKeySchema,\n statCounterKeySchema,\n statsOperationIdSchema,\n statsValidationReportIdSchema,\n teamIdSchema,\n userIdSchema,\n} from '../doc-schemas/atoms.js';\nimport {\n StatsDestinationChangeSchema,\n StatsOperationCountsSchema,\n} from '../doc-schemas/stats-operation.js';\nimport {\n StatsValidationReportSchema,\n StatsValidationScopeSchema,\n StatsValidationSummarySchema,\n} from '../doc-schemas/system.js';\nimport { HistoricalStatsSchema } from '../doc-schemas/user-profile.js';\nimport {\n GAME_FINALIZE_OUTCOME_KEYS,\n GAME_REOPEN_OUTCOME_KEYS,\n GAME_STATS_REPAIR_OUTCOME_KEYS,\n UNROSTERED_STAT_LINE_RESOLUTION_OUTCOME_KEYS,\n} from '../types/stats.js';\n\nexport const FinalizeGameInputSchema = z.object({ gameId: gameIdSchema }).strict();\nexport type FinalizeGameInput = z.infer<typeof FinalizeGameInputSchema>;\n\nexport const FinalizeGameResultSchema = z\n .object({\n gameId: gameIdSchema,\n leagueId: leagueIdSchema,\n outcome: z.enum(GAME_FINALIZE_OUTCOME_KEYS),\n nonScoringRosterPlayerIds: z.array(gameRosterPlayerIdSchema),\n })\n .strict();\nexport type FinalizeGameResult = z.infer<typeof FinalizeGameResultSchema>;\n\nexport const ReopenGameInputSchema = z\n .object({ gameId: gameIdSchema, reason: repairReasonSchema })\n .strict();\nexport type ReopenGameInput = z.infer<typeof ReopenGameInputSchema>;\n\nexport const ReopenGameResultSchema = z\n .object({\n gameId: gameIdSchema,\n leagueId: leagueIdSchema,\n outcome: z.enum(GAME_REOPEN_OUTCOME_KEYS),\n })\n .strict();\nexport type ReopenGameResult = z.infer<typeof ReopenGameResultSchema>;\n\nexport const AdminResolveUnrosteredStatLineInputSchema = z\n .object({\n gameId: gameIdSchema,\n userId: userIdSchema,\n teamId: teamIdSchema,\n reason: repairReasonSchema,\n dryRun: z.boolean().optional(),\n })\n .strict();\nexport type AdminResolveUnrosteredStatLineInput = z.infer<\n typeof AdminResolveUnrosteredStatLineInputSchema\n>;\n\nexport const AdminResolveUnrosteredStatLineResultSchema = z\n .object({\n gameId: gameIdSchema,\n userId: userIdSchema,\n teamId: teamIdSchema,\n outcome: z.enum(UNROSTERED_STAT_LINE_RESOLUTION_OUTCOME_KEYS),\n gameConverts: z.boolean(),\n })\n .strict();\nexport type AdminResolveUnrosteredStatLineResult = z.infer<\n typeof AdminResolveUnrosteredStatLineResultSchema\n>;\n\nconst statsRepairFields = {\n reason: repairReasonSchema,\n operationId: statsOperationIdSchema,\n dryRun: z.boolean(),\n resumeAfter: z.string().min(1).optional(),\n};\n\nconst cursorOnlyOnDryRun = (input: { dryRun: boolean; resumeAfter?: string }): boolean =>\n input.dryRun || input.resumeAfter === undefined;\nconst CURSOR_ONLY_ON_DRY_RUN = {\n message: 'A real run resumes from its operation; only a dry run takes a cursor.',\n path: ['resumeAfter'],\n};\n\nexport const RecalculateLeagueStatsInputSchema = z\n .object({ leagueId: leagueIdSchema, ...statsRepairFields })\n .strict()\n .refine(cursorOnlyOnDryRun, CURSOR_ONLY_ON_DRY_RUN);\nexport type RecalculateLeagueStatsInput = z.infer<typeof RecalculateLeagueStatsInputSchema>;\n\nexport const RecalculateAllLeagueStatsInputSchema = z\n .object({ ...statsRepairFields })\n .strict()\n .refine(cursorOnlyOnDryRun, CURSOR_ONLY_ON_DRY_RUN);\nexport type RecalculateAllLeagueStatsInput = z.infer<typeof RecalculateAllLeagueStatsInputSchema>;\n\nexport const RecalculateUserStatsInputSchema = z\n .object({ userId: userIdSchema, ...statsRepairFields })\n .strict()\n .refine(cursorOnlyOnDryRun, CURSOR_ONLY_ON_DRY_RUN);\nexport type RecalculateUserStatsInput = z.infer<typeof RecalculateUserStatsInputSchema>;\n\nexport const RecalculateAllUserStatsInputSchema = z\n .object({ ...statsRepairFields })\n .strict()\n .refine(cursorOnlyOnDryRun, CURSOR_ONLY_ON_DRY_RUN);\nexport type RecalculateAllUserStatsInput = z.infer<typeof RecalculateAllUserStatsInputSchema>;\n\nexport const RecalculateHallOfFameInputSchema = z\n .object({ sportKey: sportKeySchema, userId: userIdSchema.optional(), ...statsRepairFields })\n .strict()\n .refine(cursorOnlyOnDryRun, CURSOR_ONLY_ON_DRY_RUN);\nexport type RecalculateHallOfFameInput = z.infer<typeof RecalculateHallOfFameInputSchema>;\n\nexport const StatsRebuildResultSchema = z\n .object({\n operationId: statsOperationIdSchema,\n dryRun: z.boolean(),\n complete: z.boolean(),\n nextResumeAfter: z.string().min(1).nullable(),\n counts: StatsOperationCountsSchema,\n stoppedOnGameIds: z.array(gameIdSchema),\n changes: z.array(StatsDestinationChangeSchema),\n changesTruncated: z.boolean(),\n scopeChanged: z.boolean(),\n })\n .strict();\nexport type StatsRebuildResult = z.infer<typeof StatsRebuildResultSchema>;\n\nexport const GameStatsCorrectionTargetSchema = z\n .object({\n teamId: teamIdSchema,\n playerUserId: userIdSchema.optional(),\n stat: statCounterKeySchema,\n value: countSchema,\n })\n .strict();\nexport type GameStatsCorrectionTarget = z.infer<typeof GameStatsCorrectionTargetSchema>;\n\nexport const AdminCorrectGameStatsInputSchema = z\n .object({\n gameId: gameIdSchema,\n targets: z\n .array(GameStatsCorrectionTargetSchema)\n .min(1)\n .max(MAX_GAME_STATS_CORRECTION_TARGETS)\n .optional(),\n keepStored: z.literal(true).optional(),\n reason: repairReasonSchema,\n operationId: statsOperationIdSchema,\n dryRun: z.boolean(),\n })\n .strict()\n .refine((input) => (input.targets === undefined) !== (input.keepStored === undefined), {\n message: 'Give the values to set, or keep the stored numbers — one of the two.',\n path: ['targets'],\n });\nexport type AdminCorrectGameStatsInput = z.infer<typeof AdminCorrectGameStatsInputSchema>;\n\nexport const RecalculateGameStatsInputSchema = z\n .object({\n gameId: gameIdSchema,\n reason: repairReasonSchema,\n operationId: statsOperationIdSchema,\n dryRun: z.boolean(),\n })\n .strict();\nexport type RecalculateGameStatsInput = z.infer<typeof RecalculateGameStatsInputSchema>;\n\nexport const GameStatsCorrectionSchema = z\n .object({ lineKey: z.string().min(1), field: statCounterKeySchema, value: z.number().int() })\n .strict();\nexport type GameStatsCorrection = z.infer<typeof GameStatsCorrectionSchema>;\n\nconst roundSlotValueSchema = z.number().int().min(0).max(MAX_CURLING_ROUND_POINTS).nullable();\n\n// Two team lines of a game, each holding its sport's fixed round slots.\nconst MAX_ROUND_SLOT_CHANGES = 2 * CURLING_ROUND_COUNT;\n\nconst replacedEntryListSchema = z\n .object({ stored: z.array(gameRosterPlayerIdSchema), rebuilt: z.array(gameRosterPlayerIdSchema) })\n .strict();\n\nexport const GameRepairChangesSchema = z\n .object({\n lines: z.array(\n z\n .object({\n lineKey: z.string().min(1),\n field: z.string().min(1),\n stored: z.number(),\n rebuilt: z.number(),\n })\n .strict(),\n ),\n scores: z.array(\n z.object({ teamId: teamIdSchema, stored: z.number(), rebuilt: z.number() }).strict(),\n ),\n // Present when a round slot changed: each changed slot of a line, a null slot unplayed.\n roundSlots: z\n .array(\n z\n .object({\n lineKey: z.string().min(1),\n slotIndex: z\n .number()\n .int()\n .min(0)\n .max(CURLING_ROUND_COUNT - 1),\n stored: roundSlotValueSchema,\n rebuilt: roundSlotValueSchema,\n })\n .strict(),\n )\n .min(1)\n .max(MAX_ROUND_SLOT_CHANGES)\n .optional(),\n absentRosterPlayerIds: replacedEntryListSchema.optional(),\n nonScoringRosterPlayerIds: replacedEntryListSchema.optional(),\n statEventSequence: z.object({ stored: countSchema, rebuilt: countSchema }).strict().optional(),\n recordRewritten: z\n .object({ pagesBefore: countSchema, pagesAfter: countSchema })\n .strict()\n .optional(),\n })\n .strict();\nexport type GameRepairChanges = z.infer<typeof GameRepairChangesSchema>;\n\nexport const GameStatsRepairResultSchema = z\n .object({\n gameId: gameIdSchema,\n leagueId: leagueIdSchema,\n operationId: statsOperationIdSchema,\n dryRun: z.boolean(),\n outcome: z.enum(GAME_STATS_REPAIR_OUTCOME_KEYS),\n corrections: z.array(GameStatsCorrectionSchema),\n gameChanged: z.boolean(),\n gameChanges: GameRepairChangesSchema,\n destinationChanges: z.array(StatsDestinationChangeSchema),\n })\n .strict();\nexport type GameStatsRepairResult = z.infer<typeof GameStatsRepairResultSchema>;\n\nexport const AdminUpdateHistoricalStatsInputSchema = z\n .object({\n userId: userIdSchema,\n sportKey: sportKeySchema,\n stats: HistoricalStatsSchema,\n reason: repairReasonSchema,\n operationId: statsOperationIdSchema,\n dryRun: z.boolean(),\n })\n .strict();\nexport type AdminUpdateHistoricalStatsInput = z.infer<typeof AdminUpdateHistoricalStatsInputSchema>;\n\nexport const AdminUpdateHistoricalStatsResultSchema = z\n .object({\n userId: userIdSchema,\n sportKey: sportKeySchema,\n operationId: statsOperationIdSchema,\n dryRun: z.boolean(),\n outcome: z.enum(GAME_STATS_REPAIR_OUTCOME_KEYS),\n baselineBefore: HistoricalStatsSchema.nullable(),\n stoppedOnGameIds: z.array(gameIdSchema),\n changes: z.array(StatsDestinationChangeSchema),\n })\n .strict();\nexport type AdminUpdateHistoricalStatsResult = z.infer<\n typeof AdminUpdateHistoricalStatsResultSchema\n>;\n\nexport const RunStatsValidationInputSchema = z\n .object({ operationId: statsOperationIdSchema, scope: StatsValidationScopeSchema })\n .strict();\nexport type RunStatsValidationInput = z.infer<typeof RunStatsValidationInputSchema>;\n\nexport const RunStatsValidationResultSchema = z\n .object({\n reportId: z.string().min(1),\n complete: z.boolean(),\n summary: StatsValidationSummarySchema,\n discrepancyCounts: StatsValidationReportSchema.shape.discrepancyCounts,\n })\n .strict();\nexport type RunStatsValidationResult = z.infer<typeof RunStatsValidationResultSchema>;\n\nexport const AdminDeleteStatsValidationReportInputSchema = z\n .object({ reportId: statsValidationReportIdSchema })\n .strict();\nexport type AdminDeleteStatsValidationReportInput = z.infer<\n typeof AdminDeleteStatsValidationReportInputSchema\n>;\n\nexport const AdminDeleteStatsValidationReportResultSchema = z\n .object({ reportId: statsValidationReportIdSchema })\n .strict();\nexport type AdminDeleteStatsValidationReportResult = z.infer<\n typeof AdminDeleteStatsValidationReportResultSchema\n>;\n"]}