@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 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiD7B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDkB,CAAC;AAElD,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAEvE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;CAaiC,CAAC;AAEvE,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAO,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiD7B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDkB,CAAC;AAElD,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAEvE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;CAaiC,CAAC;AAEvE,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAO,CAAC"}
@@ -16,8 +16,8 @@ export declare const LeagueStatsRebuildOperationSchema: z.ZodObject<{
16
16
  startedAt: z.ZodNumber;
17
17
  updatedAt: z.ZodNumber;
18
18
  status: z.ZodEnum<{
19
- complete: "complete";
20
19
  running: "running";
20
+ complete: "complete";
21
21
  stopped: "stopped";
22
22
  }>;
23
23
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -38,8 +38,8 @@ export declare const LifetimeStatsRebuildOperationSchema: z.ZodObject<{
38
38
  startedAt: z.ZodNumber;
39
39
  updatedAt: z.ZodNumber;
40
40
  status: z.ZodEnum<{
41
- complete: "complete";
42
41
  running: "running";
42
+ complete: "complete";
43
43
  stopped: "stopped";
44
44
  }>;
45
45
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -65,8 +65,8 @@ export declare const HallOfFameRebuildOperationSchema: z.ZodObject<{
65
65
  startedAt: z.ZodNumber;
66
66
  updatedAt: z.ZodNumber;
67
67
  status: z.ZodEnum<{
68
- complete: "complete";
69
68
  running: "running";
69
+ complete: "complete";
70
70
  stopped: "stopped";
71
71
  }>;
72
72
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -90,8 +90,8 @@ export declare const StatsValidationOperationSchema: z.ZodObject<{
90
90
  startedAt: z.ZodNumber;
91
91
  updatedAt: z.ZodNumber;
92
92
  status: z.ZodEnum<{
93
- complete: "complete";
94
93
  running: "running";
94
+ complete: "complete";
95
95
  stopped: "stopped";
96
96
  }>;
97
97
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -107,12 +107,13 @@ export declare const GameStatsCorrectionOperationSchema: z.ZodObject<{
107
107
  gameId: z.ZodString;
108
108
  }, z.core.$strict>;
109
109
  reason: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
110
+ requestHash: z.ZodOptional<z.ZodString>;
110
111
  startedByUserId: z.ZodString;
111
112
  startedAt: z.ZodNumber;
112
113
  updatedAt: z.ZodNumber;
113
114
  status: z.ZodEnum<{
114
- complete: "complete";
115
115
  running: "running";
116
+ complete: "complete";
116
117
  stopped: "stopped";
117
118
  }>;
118
119
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -132,8 +133,8 @@ export declare const GameStatsRecalculationOperationSchema: z.ZodObject<{
132
133
  startedAt: z.ZodNumber;
133
134
  updatedAt: z.ZodNumber;
134
135
  status: z.ZodEnum<{
135
- complete: "complete";
136
136
  running: "running";
137
+ complete: "complete";
137
138
  stopped: "stopped";
138
139
  }>;
139
140
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -154,12 +155,13 @@ export declare const HistoricalStatsUpdateOperationSchema: z.ZodObject<{
154
155
  }>;
155
156
  }, z.core.$strict>;
156
157
  reason: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
158
+ requestHash: z.ZodOptional<z.ZodString>;
157
159
  startedByUserId: z.ZodString;
158
160
  startedAt: z.ZodNumber;
159
161
  updatedAt: z.ZodNumber;
160
162
  status: z.ZodEnum<{
161
- complete: "complete";
162
163
  running: "running";
164
+ complete: "complete";
163
165
  stopped: "stopped";
164
166
  }>;
165
167
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -227,8 +229,8 @@ export declare const GhostPlayerStatsOperationSchema: z.ZodObject<{
227
229
  startedAt: z.ZodNumber;
228
230
  updatedAt: z.ZodNumber;
229
231
  status: z.ZodEnum<{
230
- complete: "complete";
231
232
  running: "running";
233
+ complete: "complete";
232
234
  stopped: "stopped";
233
235
  }>;
234
236
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -248,8 +250,8 @@ export declare const GameDeletionOperationSchema: z.ZodObject<{
248
250
  startedAt: z.ZodNumber;
249
251
  updatedAt: z.ZodNumber;
250
252
  status: z.ZodEnum<{
251
- complete: "complete";
252
253
  running: "running";
254
+ complete: "complete";
253
255
  stopped: "stopped";
254
256
  }>;
255
257
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -270,8 +272,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
270
272
  startedAt: z.ZodNumber;
271
273
  updatedAt: z.ZodNumber;
272
274
  status: z.ZodEnum<{
273
- complete: "complete";
274
275
  running: "running";
276
+ complete: "complete";
275
277
  stopped: "stopped";
276
278
  }>;
277
279
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -291,8 +293,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
291
293
  startedAt: z.ZodNumber;
292
294
  updatedAt: z.ZodNumber;
293
295
  status: z.ZodEnum<{
294
- complete: "complete";
295
296
  running: "running";
297
+ complete: "complete";
296
298
  stopped: "stopped";
297
299
  }>;
298
300
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -317,8 +319,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
317
319
  startedAt: z.ZodNumber;
318
320
  updatedAt: z.ZodNumber;
319
321
  status: z.ZodEnum<{
320
- complete: "complete";
321
322
  running: "running";
323
+ complete: "complete";
322
324
  stopped: "stopped";
323
325
  }>;
324
326
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -341,8 +343,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
341
343
  startedAt: z.ZodNumber;
342
344
  updatedAt: z.ZodNumber;
343
345
  status: z.ZodEnum<{
344
- complete: "complete";
345
346
  running: "running";
347
+ complete: "complete";
346
348
  stopped: "stopped";
347
349
  }>;
348
350
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -357,12 +359,13 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
357
359
  gameId: z.ZodString;
358
360
  }, z.core.$strict>;
359
361
  reason: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
362
+ requestHash: z.ZodOptional<z.ZodString>;
360
363
  startedByUserId: z.ZodString;
361
364
  startedAt: z.ZodNumber;
362
365
  updatedAt: z.ZodNumber;
363
366
  status: z.ZodEnum<{
364
- complete: "complete";
365
367
  running: "running";
368
+ complete: "complete";
366
369
  stopped: "stopped";
367
370
  }>;
368
371
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -381,8 +384,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
381
384
  startedAt: z.ZodNumber;
382
385
  updatedAt: z.ZodNumber;
383
386
  status: z.ZodEnum<{
384
- complete: "complete";
385
387
  running: "running";
388
+ complete: "complete";
386
389
  stopped: "stopped";
387
390
  }>;
388
391
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -402,12 +405,13 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
402
405
  }>;
403
406
  }, z.core.$strict>;
404
407
  reason: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
408
+ requestHash: z.ZodOptional<z.ZodString>;
405
409
  startedByUserId: z.ZodString;
406
410
  startedAt: z.ZodNumber;
407
411
  updatedAt: z.ZodNumber;
408
412
  status: z.ZodEnum<{
409
- complete: "complete";
410
413
  running: "running";
414
+ complete: "complete";
411
415
  stopped: "stopped";
412
416
  }>;
413
417
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -455,8 +459,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
455
459
  startedAt: z.ZodNumber;
456
460
  updatedAt: z.ZodNumber;
457
461
  status: z.ZodEnum<{
458
- complete: "complete";
459
462
  running: "running";
463
+ complete: "complete";
460
464
  stopped: "stopped";
461
465
  }>;
462
466
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -474,8 +478,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
474
478
  startedAt: z.ZodNumber;
475
479
  updatedAt: z.ZodNumber;
476
480
  status: z.ZodEnum<{
477
- complete: "complete";
478
481
  running: "running";
482
+ complete: "complete";
479
483
  stopped: "stopped";
480
484
  }>;
481
485
  resumeAfter: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"stats-operation.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/stats-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,eAAO,MAAM,0BAA0B;;;;kBAIrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAmB9E,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;kBAI5C,CAAC;AAEH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;kBAI9C,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;kBAI3C,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;kBAKzC,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;kBAK7C,CAAC;AAEH,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;kBAKhD,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;kBAK/C,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;kBAI1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,qBAAqB;;;;kBAIhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,4BAA4B;;;;;kBAKvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA6BxC,CAAC;AACL,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;kBAItC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAU/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"stats-operation.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/stats-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,eAAO,MAAM,0BAA0B;;;;kBAIrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAuB9E,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;kBAI5C,CAAC;AAEH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;kBAI9C,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;kBAI3C,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;kBAKzC,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;kBAM7C,CAAC;AAEH,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;kBAKhD,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;kBAM/C,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;kBAI1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,qBAAqB;;;;kBAIhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,4BAA4B;;;;;kBAKvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA6BxC,CAAC;AACL,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;kBAItC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAU/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -21,6 +21,9 @@ const rebuildFields = {
21
21
  stoppedOnGameIds: z.array(gameIdSchema),
22
22
  };
23
23
  const gameScope = z.strictObject({ gameId: gameIdSchema });
24
+ // `hashStatsOperationRequest` of the values the operation was opened with. Optional: an operation
25
+ // stored before it existed still resumes.
26
+ const requestHashSchema = z.string().regex(/^[0-9a-f]{64}$/);
24
27
  export const LeagueStatsRebuildOperationSchema = z.strictObject({
25
28
  ...rebuildFields,
26
29
  kind: z.literal('leagueStatsRebuild'),
@@ -47,6 +50,7 @@ export const GameStatsCorrectionOperationSchema = z.strictObject({
47
50
  kind: z.literal('gameStatsCorrection'),
48
51
  scope: gameScope,
49
52
  reason: repairReasonSchema,
53
+ requestHash: requestHashSchema.optional(),
50
54
  });
51
55
  export const GameStatsRecalculationOperationSchema = z.strictObject({
52
56
  ...operationBase,
@@ -59,6 +63,7 @@ export const HistoricalStatsUpdateOperationSchema = z.strictObject({
59
63
  kind: z.literal('historicalStatsUpdate'),
60
64
  scope: z.strictObject({ userId: userIdSchema, sportKey: sportKeySchema }),
61
65
  reason: repairReasonSchema,
66
+ requestHash: requestHashSchema.optional(),
62
67
  });
63
68
  export const GhostRemovedFinishedEntrySchema = z.strictObject({
64
69
  gameId: gameIdSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"stats-operation.js","sourceRoot":"","sources":["../../src/doc-schemas/stats-operation.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport {\n GHOST_LINK_MEMBERSHIP_OUTCOME_KEYS,\n STATS_OPERATION_STATUS_KEYS,\n STATS_VALIDATION_PHASE_KEYS,\n} from '../types/stats.js';\nimport type { GhostStatsOperationAction, StatsOperationKind } from '../types/stats.js';\nimport {\n countSchema,\n epochMsSchema,\n gameIdSchema,\n leagueIdSchema,\n repairReasonSchema,\n sportKeySchema,\n teamIdSchema,\n userIdSchema,\n} from './atoms.js';\nimport { StatsValidationScopeSchema } from './system.js';\n\nexport const StatsOperationCountsSchema = z.strictObject({\n read: countSchema,\n changed: countSchema,\n skipped: countSchema,\n});\nexport type StatsOperationCounts = z.infer<typeof StatsOperationCountsSchema>;\n\nconst operationBase = {\n startedByUserId: userIdSchema,\n startedAt: epochMsSchema,\n updatedAt: epochMsSchema,\n status: z.enum(STATS_OPERATION_STATUS_KEYS),\n resumeAfter: z.string().min(1).optional(),\n counts: StatsOperationCountsSchema,\n};\n\nconst rebuildFields = {\n ...operationBase,\n reason: repairReasonSchema,\n stoppedOnGameIds: z.array(gameIdSchema),\n};\n\nconst gameScope = z.strictObject({ gameId: gameIdSchema });\n\nexport const LeagueStatsRebuildOperationSchema = z.strictObject({\n ...rebuildFields,\n kind: z.literal('leagueStatsRebuild' satisfies StatsOperationKind),\n scope: z.strictObject({ leagueId: leagueIdSchema.optional() }),\n});\n\nexport const LifetimeStatsRebuildOperationSchema = z.strictObject({\n ...rebuildFields,\n kind: z.literal('lifetimeStatsRebuild' satisfies StatsOperationKind),\n scope: z.strictObject({ userId: userIdSchema.optional() }),\n});\n\nexport const HallOfFameRebuildOperationSchema = z.strictObject({\n ...rebuildFields,\n kind: z.literal('hallOfFameRebuild' satisfies StatsOperationKind),\n scope: z.strictObject({ sportKey: sportKeySchema, userId: userIdSchema.optional() }),\n});\n\nexport const StatsValidationOperationSchema = z.strictObject({\n ...operationBase,\n kind: z.literal('statsValidation' satisfies StatsOperationKind),\n scope: StatsValidationScopeSchema,\n phase: z.enum(STATS_VALIDATION_PHASE_KEYS),\n});\n\nexport const GameStatsCorrectionOperationSchema = z.strictObject({\n ...operationBase,\n kind: z.literal('gameStatsCorrection' satisfies StatsOperationKind),\n scope: gameScope,\n reason: repairReasonSchema,\n});\n\nexport const GameStatsRecalculationOperationSchema = z.strictObject({\n ...operationBase,\n kind: z.literal('gameStatsRecalculation' satisfies StatsOperationKind),\n scope: gameScope,\n reason: repairReasonSchema,\n});\n\nexport const HistoricalStatsUpdateOperationSchema = z.strictObject({\n ...operationBase,\n kind: z.literal('historicalStatsUpdate' satisfies StatsOperationKind),\n scope: z.strictObject({ userId: userIdSchema, sportKey: sportKeySchema }),\n reason: repairReasonSchema,\n});\n\nexport const GhostRemovedFinishedEntrySchema = z.strictObject({\n gameId: gameIdSchema,\n wasAbsent: z.boolean(),\n wasNonScoring: z.boolean(),\n});\nexport type GhostRemovedFinishedEntry = z.infer<typeof GhostRemovedFinishedEntrySchema>;\n\nexport const GhostLinkedGameSchema = z.strictObject({\n gameId: gameIdSchema,\n completed: z.boolean(),\n merged: z.boolean(),\n});\nexport type GhostLinkedGame = z.infer<typeof GhostLinkedGameSchema>;\n\nexport const StatsDestinationChangeSchema = z.strictObject({\n ref: z.string().min(1),\n field: z.string().min(1),\n before: z.record(z.string(), z.number()).nullable(),\n after: z.record(z.string(), z.number()).nullable(),\n});\nexport type StatsDestinationChange = z.infer<typeof StatsDestinationChangeSchema>;\n\nexport const GhostPlayerStatsOperationSchema = z\n .strictObject({\n ...operationBase,\n kind: z.literal('ghostPlayerStats' satisfies StatsOperationKind),\n scope: z.discriminatedUnion('action', [\n z.strictObject({\n action: z.literal('link' satisfies GhostStatsOperationAction),\n teamId: teamIdSchema,\n ghostUserId: userIdSchema,\n userId: userIdSchema,\n }),\n z.strictObject({\n action: z.literal('removal' satisfies GhostStatsOperationAction),\n teamId: teamIdSchema,\n ghostUserId: userIdSchema,\n }),\n ]),\n // Present only on an operation stored with a reason. A removal's is dropped on read; a link's\n // is kept, so its stored operation still resumes.\n reason: repairReasonSchema.optional(),\n removedFinishedGameEntries: z.array(GhostRemovedFinishedEntrySchema).optional(),\n linkedGames: z.array(GhostLinkedGameSchema).optional(),\n destinationChanges: z.array(StatsDestinationChangeSchema).optional(),\n membershipOutcome: z.enum(GHOST_LINK_MEMBERSHIP_OUTCOME_KEYS).optional(),\n })\n .overwrite((operation) => {\n if (operation.scope.action !== 'removal' || operation.reason === undefined) return operation;\n const { reason: _reason, ...withoutReason } = operation;\n return withoutReason;\n });\nexport type GhostPlayerStatsOperation = z.infer<typeof GhostPlayerStatsOperationSchema>;\n\nexport const GameDeletionOperationSchema = z.strictObject({\n ...operationBase,\n kind: z.literal('gameDeletion' satisfies StatsOperationKind),\n scope: gameScope,\n});\n\nexport const StatsOperationSchema = z.discriminatedUnion('kind', [\n LeagueStatsRebuildOperationSchema,\n LifetimeStatsRebuildOperationSchema,\n HallOfFameRebuildOperationSchema,\n StatsValidationOperationSchema,\n GameStatsCorrectionOperationSchema,\n GameStatsRecalculationOperationSchema,\n HistoricalStatsUpdateOperationSchema,\n GhostPlayerStatsOperationSchema,\n GameDeletionOperationSchema,\n]);\nexport type StatsOperation = z.infer<typeof StatsOperationSchema>;\n"]}
1
+ {"version":3,"file":"stats-operation.js","sourceRoot":"","sources":["../../src/doc-schemas/stats-operation.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport {\n GHOST_LINK_MEMBERSHIP_OUTCOME_KEYS,\n STATS_OPERATION_STATUS_KEYS,\n STATS_VALIDATION_PHASE_KEYS,\n} from '../types/stats.js';\nimport type { GhostStatsOperationAction, StatsOperationKind } from '../types/stats.js';\nimport {\n countSchema,\n epochMsSchema,\n gameIdSchema,\n leagueIdSchema,\n repairReasonSchema,\n sportKeySchema,\n teamIdSchema,\n userIdSchema,\n} from './atoms.js';\nimport { StatsValidationScopeSchema } from './system.js';\n\nexport const StatsOperationCountsSchema = z.strictObject({\n read: countSchema,\n changed: countSchema,\n skipped: countSchema,\n});\nexport type StatsOperationCounts = z.infer<typeof StatsOperationCountsSchema>;\n\nconst operationBase = {\n startedByUserId: userIdSchema,\n startedAt: epochMsSchema,\n updatedAt: epochMsSchema,\n status: z.enum(STATS_OPERATION_STATUS_KEYS),\n resumeAfter: z.string().min(1).optional(),\n counts: StatsOperationCountsSchema,\n};\n\nconst rebuildFields = {\n ...operationBase,\n reason: repairReasonSchema,\n stoppedOnGameIds: z.array(gameIdSchema),\n};\n\nconst gameScope = z.strictObject({ gameId: gameIdSchema });\n\n// `hashStatsOperationRequest` of the values the operation was opened with. Optional: an operation\n// stored before it existed still resumes.\nconst requestHashSchema = z.string().regex(/^[0-9a-f]{64}$/);\n\nexport const LeagueStatsRebuildOperationSchema = z.strictObject({\n ...rebuildFields,\n kind: z.literal('leagueStatsRebuild' satisfies StatsOperationKind),\n scope: z.strictObject({ leagueId: leagueIdSchema.optional() }),\n});\n\nexport const LifetimeStatsRebuildOperationSchema = z.strictObject({\n ...rebuildFields,\n kind: z.literal('lifetimeStatsRebuild' satisfies StatsOperationKind),\n scope: z.strictObject({ userId: userIdSchema.optional() }),\n});\n\nexport const HallOfFameRebuildOperationSchema = z.strictObject({\n ...rebuildFields,\n kind: z.literal('hallOfFameRebuild' satisfies StatsOperationKind),\n scope: z.strictObject({ sportKey: sportKeySchema, userId: userIdSchema.optional() }),\n});\n\nexport const StatsValidationOperationSchema = z.strictObject({\n ...operationBase,\n kind: z.literal('statsValidation' satisfies StatsOperationKind),\n scope: StatsValidationScopeSchema,\n phase: z.enum(STATS_VALIDATION_PHASE_KEYS),\n});\n\nexport const GameStatsCorrectionOperationSchema = z.strictObject({\n ...operationBase,\n kind: z.literal('gameStatsCorrection' satisfies StatsOperationKind),\n scope: gameScope,\n reason: repairReasonSchema,\n requestHash: requestHashSchema.optional(),\n});\n\nexport const GameStatsRecalculationOperationSchema = z.strictObject({\n ...operationBase,\n kind: z.literal('gameStatsRecalculation' satisfies StatsOperationKind),\n scope: gameScope,\n reason: repairReasonSchema,\n});\n\nexport const HistoricalStatsUpdateOperationSchema = z.strictObject({\n ...operationBase,\n kind: z.literal('historicalStatsUpdate' satisfies StatsOperationKind),\n scope: z.strictObject({ userId: userIdSchema, sportKey: sportKeySchema }),\n reason: repairReasonSchema,\n requestHash: requestHashSchema.optional(),\n});\n\nexport const GhostRemovedFinishedEntrySchema = z.strictObject({\n gameId: gameIdSchema,\n wasAbsent: z.boolean(),\n wasNonScoring: z.boolean(),\n});\nexport type GhostRemovedFinishedEntry = z.infer<typeof GhostRemovedFinishedEntrySchema>;\n\nexport const GhostLinkedGameSchema = z.strictObject({\n gameId: gameIdSchema,\n completed: z.boolean(),\n merged: z.boolean(),\n});\nexport type GhostLinkedGame = z.infer<typeof GhostLinkedGameSchema>;\n\nexport const StatsDestinationChangeSchema = z.strictObject({\n ref: z.string().min(1),\n field: z.string().min(1),\n before: z.record(z.string(), z.number()).nullable(),\n after: z.record(z.string(), z.number()).nullable(),\n});\nexport type StatsDestinationChange = z.infer<typeof StatsDestinationChangeSchema>;\n\nexport const GhostPlayerStatsOperationSchema = z\n .strictObject({\n ...operationBase,\n kind: z.literal('ghostPlayerStats' satisfies StatsOperationKind),\n scope: z.discriminatedUnion('action', [\n z.strictObject({\n action: z.literal('link' satisfies GhostStatsOperationAction),\n teamId: teamIdSchema,\n ghostUserId: userIdSchema,\n userId: userIdSchema,\n }),\n z.strictObject({\n action: z.literal('removal' satisfies GhostStatsOperationAction),\n teamId: teamIdSchema,\n ghostUserId: userIdSchema,\n }),\n ]),\n // Present only on an operation stored with a reason. A removal's is dropped on read; a link's\n // is kept, so its stored operation still resumes.\n reason: repairReasonSchema.optional(),\n removedFinishedGameEntries: z.array(GhostRemovedFinishedEntrySchema).optional(),\n linkedGames: z.array(GhostLinkedGameSchema).optional(),\n destinationChanges: z.array(StatsDestinationChangeSchema).optional(),\n membershipOutcome: z.enum(GHOST_LINK_MEMBERSHIP_OUTCOME_KEYS).optional(),\n })\n .overwrite((operation) => {\n if (operation.scope.action !== 'removal' || operation.reason === undefined) return operation;\n const { reason: _reason, ...withoutReason } = operation;\n return withoutReason;\n });\nexport type GhostPlayerStatsOperation = z.infer<typeof GhostPlayerStatsOperationSchema>;\n\nexport const GameDeletionOperationSchema = z.strictObject({\n ...operationBase,\n kind: z.literal('gameDeletion' satisfies StatsOperationKind),\n scope: gameScope,\n});\n\nexport const StatsOperationSchema = z.discriminatedUnion('kind', [\n LeagueStatsRebuildOperationSchema,\n LifetimeStatsRebuildOperationSchema,\n HallOfFameRebuildOperationSchema,\n StatsValidationOperationSchema,\n GameStatsCorrectionOperationSchema,\n GameStatsRecalculationOperationSchema,\n HistoricalStatsUpdateOperationSchema,\n GhostPlayerStatsOperationSchema,\n GameDeletionOperationSchema,\n]);\nexport type StatsOperation = z.infer<typeof StatsOperationSchema>;\n"]}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from './input-formats/input-formats.js';
2
2
  export * from './migration-console/action-ids.js';
3
+ export * from './migration-console/console-lock.js';
4
+ export * from './migration-console/consumed-source.js';
3
5
  export * from './migration-console/manifest.js';
4
6
  export * from './migration-console/run-state.js';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from './input-formats/input-formats.js';
2
2
  export * from './migration-console/action-ids.js';
3
+ export * from './migration-console/console-lock.js';
4
+ export * from './migration-console/consumed-source.js';
3
5
  export * from './migration-console/manifest.js';
4
6
  export * from './migration-console/run-state.js';
5
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC","sourcesContent":["export * from './input-formats/input-formats.js';\nexport * from './migration-console/action-ids.js';\nexport * from './migration-console/manifest.js';\nexport * from './migration-console/run-state.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC","sourcesContent":["export * from './input-formats/input-formats.js';\nexport * from './migration-console/action-ids.js';\nexport * from './migration-console/console-lock.js';\nexport * from './migration-console/consumed-source.js';\nexport * from './migration-console/manifest.js';\nexport * from './migration-console/run-state.js';\n"]}
@@ -69,6 +69,10 @@ export declare const MIGRATION_ACTION_IDS: {
69
69
  readonly deleteV1GameLocations: "delete.v1GameLocations";
70
70
  readonly deleteV1AdminStats: "delete.v1AdminStats";
71
71
  readonly verifyV1CommerceDiscardable: "verify.v1CommerceDiscardable";
72
+ readonly verifyV1DisplayNamesUnique: "verify.v1DisplayNamesUnique";
73
+ readonly verifyV1TextFitsLimits: "verify.v1TextFitsLimits";
74
+ readonly verifyV1LeagueCapacity: "verify.v1LeagueCapacity";
75
+ readonly verifyV1HardwareContractIdsUnique: "verify.v1HardwareContractIdsUnique";
72
76
  readonly deleteV1Commerce: "delete.v1Commerce";
73
77
  readonly rebuildLeagueStats: "rebuild.leagueStats";
74
78
  readonly rebuildLifetimeStats: "rebuild.lifetimeStats";
@@ -1 +1 @@
1
- {"version":3,"file":"action-ids.d.ts","sourceRoot":"","sources":["../../src/migration-console/action-ids.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyGvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEjG,eAAO,MAAM,wBAAwB,EAA0C,CAC7E,iBAAiB,EACjB,GAAG,iBAAiB,EAAE,CACvB,CAAC"}
1
+ {"version":3,"file":"action-ids.d.ts","sourceRoot":"","sources":["../../src/migration-console/action-ids.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgHvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEjG,eAAO,MAAM,wBAAwB,EAA0C,CAC7E,iBAAiB,EACjB,GAAG,iBAAiB,EAAE,CACvB,CAAC"}
@@ -73,6 +73,12 @@ export const MIGRATION_ACTION_IDS = {
73
73
  deleteV1GameLocations: 'delete.v1GameLocations',
74
74
  deleteV1AdminStats: 'delete.v1AdminStats',
75
75
  verifyV1CommerceDiscardable: 'verify.v1CommerceDiscardable',
76
+ // Read-only checks of V1 data that should never have been stored; the copies they cover wait on
77
+ // them, and what they report is fixed in V1.
78
+ verifyV1DisplayNamesUnique: 'verify.v1DisplayNamesUnique',
79
+ verifyV1TextFitsLimits: 'verify.v1TextFitsLimits',
80
+ verifyV1LeagueCapacity: 'verify.v1LeagueCapacity',
81
+ verifyV1HardwareContractIdsUnique: 'verify.v1HardwareContractIdsUnique',
76
82
  deleteV1Commerce: 'delete.v1Commerce',
77
83
  rebuildLeagueStats: 'rebuild.leagueStats',
78
84
  rebuildLifetimeStats: 'rebuild.lifetimeStats',
@@ -1 +1 @@
1
- {"version":3,"file":"action-ids.js","sourceRoot":"","sources":["../../src/migration-console/action-ids.ts"],"names":[],"mappings":"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","sourcesContent":["export const MIGRATION_ACTION_IDS = {\n copyUserProfiles: 'copy.userProfiles',\n copyHistoricalStats: 'copy.historicalStats',\n deriveReservedDisplayNames: 'derive.reservedDisplayNames',\n migratePublicUsers: 'migrate.publicUsers',\n copyAdminList: 'copy.adminList',\n verifyUserProfiles: 'verify.userProfiles',\n verifyHistoricalStats: 'verify.historicalStats',\n verifyReservedDisplayNames: 'verify.reservedDisplayNames',\n verifyPublicUsers: 'verify.publicUsers',\n verifyAdminList: 'verify.adminList',\n cleanupOrphanGhostPublicUsers: 'cleanup.orphanGhostPublicUsers',\n deleteV1Users: 'delete.v1Users',\n deleteV1AdminRoles: 'delete.v1AdminRoles',\n\n // Required by the ghost cleanup, whose probes read `teamMemberships` and `gameRosterPlayers`:\n // until those copies are verified complete, every ghost reads as unreferenced.\n verifyTeamMemberships: 'verify.teamMemberships',\n verifyGameRosterPlayers: 'verify.gameRosterPlayers',\n\n copyLeagueTeams: 'copy.leagueTeams',\n verifyLeagueTeams: 'verify.leagueTeams',\n deleteV1Teams: 'delete.v1Teams',\n copyTeamMemberships: 'copy.teamMemberships',\n deleteV1TeamMembers: 'delete.v1TeamMembers',\n copyTeamInvitations: 'copy.teamInvitations',\n verifyTeamInvitations: 'verify.teamInvitations',\n deleteV1TeamInvites: 'delete.v1TeamInvites',\n copyTeamJoinRequests: 'copy.teamJoinRequests',\n verifyTeamJoinRequests: 'verify.teamJoinRequests',\n deleteV1JoinRequests: 'delete.v1JoinRequests',\n copyLeagueFreeAgents: 'copy.leagueFreeAgents',\n verifyLeagueFreeAgents: 'verify.leagueFreeAgents',\n deleteV1FreeAgentSignups: 'delete.v1FreeAgentSignups',\n copyGameRosterPlayers: 'copy.gameRosterPlayers',\n deleteV1GameRosters: 'delete.v1GameRosters',\n // It removes the stale entries a copied roster holds, so it waits for the memberships and the\n // game stats — which pin an entry holding a recorded stat — to be copied and verified.\n reconcileOpenGameRosters: 'reconcile.openGameRosters',\n verifyGameStats: 'verify.gameStats',\n verifyLeaguePlayerStats: 'verify.leaguePlayerStats',\n\n copySportGames: 'copy.sportGames',\n resolveUnrosteredStatLine: 'resolve.unrosteredStatLine',\n verifySportGames: 'verify.sportGames',\n deleteV1LeagueGames: 'delete.v1LeagueGames',\n\n copySignedWaivers: 'copy.signedWaivers',\n verifySignedWaivers: 'verify.signedWaivers',\n verifySignatureFilesResolvable: 'verify.signatureFilesResolvable',\n revokeV1SignatureDownloadTokens: 'revoke.v1SignatureDownloadTokens',\n deleteV1WaiverSignatures: 'delete.v1WaiverSignatures',\n\n copyHardwareLoanContracts: 'copy.hardwareLoanContracts',\n verifyHardwareLoanContracts: 'verify.hardwareLoanContracts',\n deleteV1HardwareContracts: 'delete.v1HardwareContracts',\n\n copySportLeagues: 'copy.sportLeagues',\n verifySportLeagues: 'verify.sportLeagues',\n deleteV1Leagues: 'delete.v1Leagues',\n deleteV1LeagueChats: 'delete.v1LeagueChats',\n\n carryV1Pictures: 'carry.v1Pictures',\n verifyV1Pictures: 'verify.v1Pictures',\n\n copyAppConfig: 'copy.appConfig',\n copyLandingPageConfig: 'copy.landingPageConfig',\n copyStatsBeacon: 'copy.statsBeacon',\n verifyAppConfig: 'verify.appConfig',\n verifyLandingPageConfig: 'verify.landingPageConfig',\n verifyStatsBeacon: 'verify.statsBeacon',\n deleteV1LandingBase: 'delete.v1LandingBase',\n\n copyWaiverTemplates: 'copy.waiverTemplates',\n verifyWaiverTemplates: 'verify.waiverTemplates',\n deleteV1Waivers: 'delete.v1Waivers',\n\n copyAwardDefinitions: 'copy.awardDefinitions',\n verifyAwardDefinitions: 'verify.awardDefinitions',\n deleteV1AwardCatalog: 'delete.v1AwardCatalog',\n\n copyGameLocations: 'copy.gameLocations',\n verifyGameLocations: 'verify.gameLocations',\n deleteV1GameLocations: 'delete.v1GameLocations',\n\n deleteV1AdminStats: 'delete.v1AdminStats',\n\n verifyV1CommerceDiscardable: 'verify.v1CommerceDiscardable',\n deleteV1Commerce: 'delete.v1Commerce',\n\n rebuildLeagueStats: 'rebuild.leagueStats',\n rebuildLifetimeStats: 'rebuild.lifetimeStats',\n rebuildSportHallOfFame: 'rebuild.sportHallOfFame',\n validateStats: 'validate.stats',\n verifySportHallOfFame: 'verify.sportHallOfFame',\n deleteV1HallOfFame: 'delete.v1HallOfFame',\n deleteV1ValidationReports: 'delete.v1ValidationReports',\n\n recordCutoverLive: 'record.cutoverLive',\n\n checkpointV1FirestoreExport: 'checkpoint.v1FirestoreExport',\n checkpointPaymentCredentialsRetired: 'checkpoint.paymentCredentialsRetired',\n checkpointServiceAccountKeyRevoked: 'checkpoint.serviceAccountKeyRevoked',\n checkpointUnattachedPicturesReuploaded: 'checkpoint.unattachedPicturesReuploaded',\n checkpointAbandonedRegistrationSweepEnabled: 'checkpoint.abandonedRegistrationSweepEnabled',\n} as const;\n\nexport type MigrationActionId = (typeof MIGRATION_ACTION_IDS)[keyof typeof MIGRATION_ACTION_IDS];\n\nexport const MIGRATION_ACTION_ID_KEYS = Object.values(MIGRATION_ACTION_IDS) as [\n MigrationActionId,\n ...MigrationActionId[],\n];\n"]}
1
+ {"version":3,"file":"action-ids.js","sourceRoot":"","sources":["../../src/migration-console/action-ids.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,gBAAgB,EAAE,mBAAmB;IACrC,mBAAmB,EAAE,sBAAsB;IAC3C,0BAA0B,EAAE,6BAA6B;IACzD,kBAAkB,EAAE,qBAAqB;IACzC,aAAa,EAAE,gBAAgB;IAC/B,kBAAkB,EAAE,qBAAqB;IACzC,qBAAqB,EAAE,wBAAwB;IAC/C,0BAA0B,EAAE,6BAA6B;IACzD,iBAAiB,EAAE,oBAAoB;IACvC,eAAe,EAAE,kBAAkB;IACnC,6BAA6B,EAAE,gCAAgC;IAC/D,aAAa,EAAE,gBAAgB;IAC/B,kBAAkB,EAAE,qBAAqB;IAEzC,8FAA8F;IAC9F,+EAA+E;IAC/E,qBAAqB,EAAE,wBAAwB;IAC/C,uBAAuB,EAAE,0BAA0B;IAEnD,eAAe,EAAE,kBAAkB;IACnC,iBAAiB,EAAE,oBAAoB;IACvC,aAAa,EAAE,gBAAgB;IAC/B,mBAAmB,EAAE,sBAAsB;IAC3C,mBAAmB,EAAE,sBAAsB;IAC3C,mBAAmB,EAAE,sBAAsB;IAC3C,qBAAqB,EAAE,wBAAwB;IAC/C,mBAAmB,EAAE,sBAAsB;IAC3C,oBAAoB,EAAE,uBAAuB;IAC7C,sBAAsB,EAAE,yBAAyB;IACjD,oBAAoB,EAAE,uBAAuB;IAC7C,oBAAoB,EAAE,uBAAuB;IAC7C,sBAAsB,EAAE,yBAAyB;IACjD,wBAAwB,EAAE,2BAA2B;IACrD,qBAAqB,EAAE,wBAAwB;IAC/C,mBAAmB,EAAE,sBAAsB;IAC3C,8FAA8F;IAC9F,uFAAuF;IACvF,wBAAwB,EAAE,2BAA2B;IACrD,eAAe,EAAE,kBAAkB;IACnC,uBAAuB,EAAE,0BAA0B;IAEnD,cAAc,EAAE,iBAAiB;IACjC,yBAAyB,EAAE,4BAA4B;IACvD,gBAAgB,EAAE,mBAAmB;IACrC,mBAAmB,EAAE,sBAAsB;IAE3C,iBAAiB,EAAE,oBAAoB;IACvC,mBAAmB,EAAE,sBAAsB;IAC3C,8BAA8B,EAAE,iCAAiC;IACjE,+BAA+B,EAAE,kCAAkC;IACnE,wBAAwB,EAAE,2BAA2B;IAErD,yBAAyB,EAAE,4BAA4B;IACvD,2BAA2B,EAAE,8BAA8B;IAC3D,yBAAyB,EAAE,4BAA4B;IAEvD,gBAAgB,EAAE,mBAAmB;IACrC,kBAAkB,EAAE,qBAAqB;IACzC,eAAe,EAAE,kBAAkB;IACnC,mBAAmB,EAAE,sBAAsB;IAE3C,eAAe,EAAE,kBAAkB;IACnC,gBAAgB,EAAE,mBAAmB;IAErC,aAAa,EAAE,gBAAgB;IAC/B,qBAAqB,EAAE,wBAAwB;IAC/C,eAAe,EAAE,kBAAkB;IACnC,eAAe,EAAE,kBAAkB;IACnC,uBAAuB,EAAE,0BAA0B;IACnD,iBAAiB,EAAE,oBAAoB;IACvC,mBAAmB,EAAE,sBAAsB;IAE3C,mBAAmB,EAAE,sBAAsB;IAC3C,qBAAqB,EAAE,wBAAwB;IAC/C,eAAe,EAAE,kBAAkB;IAEnC,oBAAoB,EAAE,uBAAuB;IAC7C,sBAAsB,EAAE,yBAAyB;IACjD,oBAAoB,EAAE,uBAAuB;IAE7C,iBAAiB,EAAE,oBAAoB;IACvC,mBAAmB,EAAE,sBAAsB;IAC3C,qBAAqB,EAAE,wBAAwB;IAE/C,kBAAkB,EAAE,qBAAqB;IAEzC,2BAA2B,EAAE,8BAA8B;IAE3D,gGAAgG;IAChG,6CAA6C;IAC7C,0BAA0B,EAAE,6BAA6B;IACzD,sBAAsB,EAAE,yBAAyB;IACjD,sBAAsB,EAAE,yBAAyB;IACjD,iCAAiC,EAAE,oCAAoC;IACvE,gBAAgB,EAAE,mBAAmB;IAErC,kBAAkB,EAAE,qBAAqB;IACzC,oBAAoB,EAAE,uBAAuB;IAC7C,sBAAsB,EAAE,yBAAyB;IACjD,aAAa,EAAE,gBAAgB;IAC/B,qBAAqB,EAAE,wBAAwB;IAC/C,kBAAkB,EAAE,qBAAqB;IACzC,yBAAyB,EAAE,4BAA4B;IAEvD,iBAAiB,EAAE,oBAAoB;IAEvC,2BAA2B,EAAE,8BAA8B;IAC3D,mCAAmC,EAAE,sCAAsC;IAC3E,kCAAkC,EAAE,qCAAqC;IACzE,sCAAsC,EAAE,yCAAyC;IACjF,2CAA2C,EAAE,8CAA8C;CACnF,CAAC;AAIX,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAGzE,CAAC","sourcesContent":["export const MIGRATION_ACTION_IDS = {\n copyUserProfiles: 'copy.userProfiles',\n copyHistoricalStats: 'copy.historicalStats',\n deriveReservedDisplayNames: 'derive.reservedDisplayNames',\n migratePublicUsers: 'migrate.publicUsers',\n copyAdminList: 'copy.adminList',\n verifyUserProfiles: 'verify.userProfiles',\n verifyHistoricalStats: 'verify.historicalStats',\n verifyReservedDisplayNames: 'verify.reservedDisplayNames',\n verifyPublicUsers: 'verify.publicUsers',\n verifyAdminList: 'verify.adminList',\n cleanupOrphanGhostPublicUsers: 'cleanup.orphanGhostPublicUsers',\n deleteV1Users: 'delete.v1Users',\n deleteV1AdminRoles: 'delete.v1AdminRoles',\n\n // Required by the ghost cleanup, whose probes read `teamMemberships` and `gameRosterPlayers`:\n // until those copies are verified complete, every ghost reads as unreferenced.\n verifyTeamMemberships: 'verify.teamMemberships',\n verifyGameRosterPlayers: 'verify.gameRosterPlayers',\n\n copyLeagueTeams: 'copy.leagueTeams',\n verifyLeagueTeams: 'verify.leagueTeams',\n deleteV1Teams: 'delete.v1Teams',\n copyTeamMemberships: 'copy.teamMemberships',\n deleteV1TeamMembers: 'delete.v1TeamMembers',\n copyTeamInvitations: 'copy.teamInvitations',\n verifyTeamInvitations: 'verify.teamInvitations',\n deleteV1TeamInvites: 'delete.v1TeamInvites',\n copyTeamJoinRequests: 'copy.teamJoinRequests',\n verifyTeamJoinRequests: 'verify.teamJoinRequests',\n deleteV1JoinRequests: 'delete.v1JoinRequests',\n copyLeagueFreeAgents: 'copy.leagueFreeAgents',\n verifyLeagueFreeAgents: 'verify.leagueFreeAgents',\n deleteV1FreeAgentSignups: 'delete.v1FreeAgentSignups',\n copyGameRosterPlayers: 'copy.gameRosterPlayers',\n deleteV1GameRosters: 'delete.v1GameRosters',\n // It removes the stale entries a copied roster holds, so it waits for the memberships and the\n // game stats — which pin an entry holding a recorded stat — to be copied and verified.\n reconcileOpenGameRosters: 'reconcile.openGameRosters',\n verifyGameStats: 'verify.gameStats',\n verifyLeaguePlayerStats: 'verify.leaguePlayerStats',\n\n copySportGames: 'copy.sportGames',\n resolveUnrosteredStatLine: 'resolve.unrosteredStatLine',\n verifySportGames: 'verify.sportGames',\n deleteV1LeagueGames: 'delete.v1LeagueGames',\n\n copySignedWaivers: 'copy.signedWaivers',\n verifySignedWaivers: 'verify.signedWaivers',\n verifySignatureFilesResolvable: 'verify.signatureFilesResolvable',\n revokeV1SignatureDownloadTokens: 'revoke.v1SignatureDownloadTokens',\n deleteV1WaiverSignatures: 'delete.v1WaiverSignatures',\n\n copyHardwareLoanContracts: 'copy.hardwareLoanContracts',\n verifyHardwareLoanContracts: 'verify.hardwareLoanContracts',\n deleteV1HardwareContracts: 'delete.v1HardwareContracts',\n\n copySportLeagues: 'copy.sportLeagues',\n verifySportLeagues: 'verify.sportLeagues',\n deleteV1Leagues: 'delete.v1Leagues',\n deleteV1LeagueChats: 'delete.v1LeagueChats',\n\n carryV1Pictures: 'carry.v1Pictures',\n verifyV1Pictures: 'verify.v1Pictures',\n\n copyAppConfig: 'copy.appConfig',\n copyLandingPageConfig: 'copy.landingPageConfig',\n copyStatsBeacon: 'copy.statsBeacon',\n verifyAppConfig: 'verify.appConfig',\n verifyLandingPageConfig: 'verify.landingPageConfig',\n verifyStatsBeacon: 'verify.statsBeacon',\n deleteV1LandingBase: 'delete.v1LandingBase',\n\n copyWaiverTemplates: 'copy.waiverTemplates',\n verifyWaiverTemplates: 'verify.waiverTemplates',\n deleteV1Waivers: 'delete.v1Waivers',\n\n copyAwardDefinitions: 'copy.awardDefinitions',\n verifyAwardDefinitions: 'verify.awardDefinitions',\n deleteV1AwardCatalog: 'delete.v1AwardCatalog',\n\n copyGameLocations: 'copy.gameLocations',\n verifyGameLocations: 'verify.gameLocations',\n deleteV1GameLocations: 'delete.v1GameLocations',\n\n deleteV1AdminStats: 'delete.v1AdminStats',\n\n verifyV1CommerceDiscardable: 'verify.v1CommerceDiscardable',\n\n // Read-only checks of V1 data that should never have been stored; the copies they cover wait on\n // them, and what they report is fixed in V1.\n verifyV1DisplayNamesUnique: 'verify.v1DisplayNamesUnique',\n verifyV1TextFitsLimits: 'verify.v1TextFitsLimits',\n verifyV1LeagueCapacity: 'verify.v1LeagueCapacity',\n verifyV1HardwareContractIdsUnique: 'verify.v1HardwareContractIdsUnique',\n deleteV1Commerce: 'delete.v1Commerce',\n\n rebuildLeagueStats: 'rebuild.leagueStats',\n rebuildLifetimeStats: 'rebuild.lifetimeStats',\n rebuildSportHallOfFame: 'rebuild.sportHallOfFame',\n validateStats: 'validate.stats',\n verifySportHallOfFame: 'verify.sportHallOfFame',\n deleteV1HallOfFame: 'delete.v1HallOfFame',\n deleteV1ValidationReports: 'delete.v1ValidationReports',\n\n recordCutoverLive: 'record.cutoverLive',\n\n checkpointV1FirestoreExport: 'checkpoint.v1FirestoreExport',\n checkpointPaymentCredentialsRetired: 'checkpoint.paymentCredentialsRetired',\n checkpointServiceAccountKeyRevoked: 'checkpoint.serviceAccountKeyRevoked',\n checkpointUnattachedPicturesReuploaded: 'checkpoint.unattachedPicturesReuploaded',\n checkpointAbandonedRegistrationSweepEnabled: 'checkpoint.abandonedRegistrationSweepEnabled',\n} as const;\n\nexport type MigrationActionId = (typeof MIGRATION_ACTION_IDS)[keyof typeof MIGRATION_ACTION_IDS];\n\nexport const MIGRATION_ACTION_ID_KEYS = Object.values(MIGRATION_ACTION_IDS) as [\n MigrationActionId,\n ...MigrationActionId[],\n];\n"]}
@@ -0,0 +1,10 @@
1
+ import type { MigrationConsole } from '../doc-schemas/migration-console.js';
2
+ import type { MigrationActionId } from './action-ids.js';
3
+ export interface MigrationLockHolder {
4
+ readonly actionId: MigrationActionId;
5
+ readonly operationId: string | null;
6
+ }
7
+ export declare function currentLock(state: MigrationConsole, now: number): MigrationConsole['lock'];
8
+ export declare function lockedByAnother(state: MigrationConsole, holder: MigrationLockHolder, now: number): boolean;
9
+ export declare function pageInFlight(state: MigrationConsole, now: number): boolean;
10
+ //# sourceMappingURL=console-lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console-lock.d.ts","sourceRoot":"","sources":["../../src/migration-console/console-lock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAErC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAG1F;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,MAAM,GACV,OAAO,CAIT;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1E"}
@@ -0,0 +1,14 @@
1
+ export function currentLock(state, now) {
2
+ const lock = state.lock;
3
+ return lock !== null && lock.expiresAt > now ? lock : null;
4
+ }
5
+ export function lockedByAnother(state, holder, now) {
6
+ const lock = currentLock(state, now);
7
+ if (lock === null)
8
+ return false;
9
+ return lock.actionId !== holder.actionId || lock.operationId !== holder.operationId;
10
+ }
11
+ export function pageInFlight(state, now) {
12
+ return currentLock(state, now)?.pageClaimedAt !== undefined;
13
+ }
14
+ //# sourceMappingURL=console-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console-lock.js","sourceRoot":"","sources":["../../src/migration-console/console-lock.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,WAAW,CAAC,KAAuB,EAAE,GAAW;IAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAuB,EACvB,MAA2B,EAC3B,GAAW;IAEX,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAuB,EAAE,GAAW;IAC/D,OAAO,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,aAAa,KAAK,SAAS,CAAC;AAC9D,CAAC","sourcesContent":["import type { MigrationConsole } from '../doc-schemas/migration-console.js';\nimport type { MigrationActionId } from './action-ids.js';\n\nexport interface MigrationLockHolder {\n readonly actionId: MigrationActionId;\n // Null for a caller holding no run yet, which every live lock blocks.\n readonly operationId: string | null;\n}\n\nexport function currentLock(state: MigrationConsole, now: number): MigrationConsole['lock'] {\n const lock = state.lock;\n return lock !== null && lock.expiresAt > now ? lock : null;\n}\n\nexport function lockedByAnother(\n state: MigrationConsole,\n holder: MigrationLockHolder,\n now: number,\n): boolean {\n const lock = currentLock(state, now);\n if (lock === null) return false;\n return lock.actionId !== holder.actionId || lock.operationId !== holder.operationId;\n}\n\nexport function pageInFlight(state: MigrationConsole, now: number): boolean {\n return currentLock(state, now)?.pageClaimedAt !== undefined;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import type { MigrationActionRun } from '../doc-schemas/migration-console.js';
2
+ import type { MigrationActionId } from './action-ids.js';
3
+ export declare function sourceConsumedBy(actionId: MigrationActionId, runs: ReadonlyMap<MigrationActionId, MigrationActionRun>): MigrationActionId[];
4
+ //# sourceMappingURL=consumed-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumed-source.d.ts","sourceRoot":"","sources":["../../src/migration-console/consumed-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAKzD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,WAAW,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,GACvD,iBAAiB,EAAE,CAQrB"}
@@ -0,0 +1,10 @@
1
+ import { MIGRATION_CUTOVER_MANIFEST } from './manifest.js';
2
+ // Any real run of a delete consumes, whatever it wrote: a later run replaces the record's `run`, so
3
+ // only a real run's presence stays true once the source started going. A preview never consumes.
4
+ export function sourceConsumedBy(actionId, runs) {
5
+ return MIGRATION_CUTOVER_MANIFEST.filter((step) => step.kind === 'executable' &&
6
+ step.destructive &&
7
+ step.consumes.includes(actionId) &&
8
+ runs.get(step.id)?.run?.dryRun === false).map((step) => step.id);
9
+ }
10
+ //# sourceMappingURL=consumed-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumed-source.js","sourceRoot":"","sources":["../../src/migration-console/consumed-source.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAE3D,oGAAoG;AACpG,iGAAiG;AACjG,MAAM,UAAU,gBAAgB,CAC9B,QAA2B,EAC3B,IAAwD;IAExD,OAAO,0BAA0B,CAAC,MAAM,CACtC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,IAAI,CAAC,WAAW;QAChB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,KAAK,CAC3C,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC","sourcesContent":["import type { MigrationActionRun } from '../doc-schemas/migration-console.js';\nimport type { MigrationActionId } from './action-ids.js';\nimport { MIGRATION_CUTOVER_MANIFEST } from './manifest.js';\n\n// Any real run of a delete consumes, whatever it wrote: a later run replaces the record's `run`, so\n// only a real run's presence stays true once the source started going. A preview never consumes.\nexport function sourceConsumedBy(\n actionId: MigrationActionId,\n runs: ReadonlyMap<MigrationActionId, MigrationActionRun>,\n): MigrationActionId[] {\n return MIGRATION_CUTOVER_MANIFEST.filter(\n (step) =>\n step.kind === 'executable' &&\n step.destructive &&\n step.consumes.includes(actionId) &&\n runs.get(step.id)?.run?.dryRun === false,\n ).map((step) => step.id);\n}\n"]}
@@ -23,10 +23,12 @@ export interface ExecutableMigrationStep extends MigrationStepBase {
23
23
  readonly destructive: boolean;
24
24
  readonly paged: boolean;
25
25
  readonly defaultPageSize: number;
26
+ readonly maxPageSize: number;
26
27
  readonly informational: boolean;
27
28
  readonly idempotency: string;
28
29
  readonly resumeKey: string;
29
30
  readonly recovery: string;
31
+ readonly consumes: readonly MigrationActionId[];
30
32
  }
31
33
  export interface ProductControlMigrationStep extends MigrationStepBase {
32
34
  readonly kind: 'productControl';
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/migration-console/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/migration-console/manifest.ts"],"names":[],"mappings":"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"}