@ttt-productions/q-core 0.1.28 → 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 (496) hide show
  1. package/dist/constants/admin-views.d.ts.map +1 -1
  2. package/dist/constants/admin-views.js +0 -3
  3. package/dist/constants/admin-views.js.map +1 -1
  4. package/dist/constants/business.d.ts.map +1 -1
  5. package/dist/constants/business.js +0 -52
  6. package/dist/constants/business.js.map +1 -1
  7. package/dist/constants/deployment.d.ts +0 -2
  8. package/dist/constants/deployment.d.ts.map +1 -1
  9. package/dist/constants/deployment.js +0 -2
  10. package/dist/constants/deployment.js.map +1 -1
  11. package/dist/constants/media.d.ts.map +1 -1
  12. package/dist/constants/media.js +4 -30
  13. package/dist/constants/media.js.map +1 -1
  14. package/dist/constants/scheduled-jobs.d.ts +0 -25
  15. package/dist/constants/scheduled-jobs.d.ts.map +1 -1
  16. package/dist/constants/scheduled-jobs.js +0 -26
  17. package/dist/constants/scheduled-jobs.js.map +1 -1
  18. package/dist/constants/sports.d.ts +1 -0
  19. package/dist/constants/sports.d.ts.map +1 -1
  20. package/dist/constants/sports.js +4 -25
  21. package/dist/constants/sports.js.map +1 -1
  22. package/dist/constants/storage-keys.d.ts +0 -38
  23. package/dist/constants/storage-keys.d.ts.map +1 -1
  24. package/dist/constants/storage-keys.js +0 -41
  25. package/dist/constants/storage-keys.js.map +1 -1
  26. package/dist/constants/telemetry.d.ts +0 -3
  27. package/dist/constants/telemetry.d.ts.map +1 -1
  28. package/dist/constants/telemetry.js +2 -11
  29. package/dist/constants/telemetry.js.map +1 -1
  30. package/dist/doc-schemas/admin-notifications.d.ts +1 -2
  31. package/dist/doc-schemas/admin-notifications.d.ts.map +1 -1
  32. package/dist/doc-schemas/admin-notifications.js +0 -41
  33. package/dist/doc-schemas/admin-notifications.js.map +1 -1
  34. package/dist/doc-schemas/aggregate-stats.d.ts.map +1 -1
  35. package/dist/doc-schemas/aggregate-stats.js +0 -35
  36. package/dist/doc-schemas/aggregate-stats.js.map +1 -1
  37. package/dist/doc-schemas/atoms.d.ts +0 -17
  38. package/dist/doc-schemas/atoms.d.ts.map +1 -1
  39. package/dist/doc-schemas/atoms.js +0 -36
  40. package/dist/doc-schemas/atoms.js.map +1 -1
  41. package/dist/doc-schemas/audit-event.d.ts +2 -0
  42. package/dist/doc-schemas/audit-event.d.ts.map +1 -1
  43. package/dist/doc-schemas/audit-event.js +0 -8
  44. package/dist/doc-schemas/audit-event.js.map +1 -1
  45. package/dist/doc-schemas/award-group-grant.d.ts +2 -8
  46. package/dist/doc-schemas/award-group-grant.d.ts.map +1 -1
  47. package/dist/doc-schemas/award-group-grant.js +0 -25
  48. package/dist/doc-schemas/award-group-grant.js.map +1 -1
  49. package/dist/doc-schemas/catalogs.d.ts.map +1 -1
  50. package/dist/doc-schemas/catalogs.js +0 -12
  51. package/dist/doc-schemas/catalogs.js.map +1 -1
  52. package/dist/doc-schemas/firestore-primitives.d.ts.map +1 -1
  53. package/dist/doc-schemas/firestore-primitives.js +0 -5
  54. package/dist/doc-schemas/firestore-primitives.js.map +1 -1
  55. package/dist/doc-schemas/gallery.d.ts.map +1 -1
  56. package/dist/doc-schemas/gallery.js +9 -18
  57. package/dist/doc-schemas/gallery.js.map +1 -1
  58. package/dist/doc-schemas/game-location.d.ts.map +1 -1
  59. package/dist/doc-schemas/game-location.js +2 -11
  60. package/dist/doc-schemas/game-location.js.map +1 -1
  61. package/dist/doc-schemas/game-stat-history.d.ts.map +1 -1
  62. package/dist/doc-schemas/game-stat-history.js +2 -11
  63. package/dist/doc-schemas/game-stat-history.js.map +1 -1
  64. package/dist/doc-schemas/game-stats.d.ts.map +1 -1
  65. package/dist/doc-schemas/game-stats.js +0 -56
  66. package/dist/doc-schemas/game-stats.js.map +1 -1
  67. package/dist/doc-schemas/league-team.d.ts.map +1 -1
  68. package/dist/doc-schemas/league-team.js +6 -29
  69. package/dist/doc-schemas/league-team.js.map +1 -1
  70. package/dist/doc-schemas/membership-roster-sync.d.ts.map +1 -1
  71. package/dist/doc-schemas/membership-roster-sync.js +0 -17
  72. package/dist/doc-schemas/membership-roster-sync.js.map +1 -1
  73. package/dist/doc-schemas/migration-console.d.ts +21 -15
  74. package/dist/doc-schemas/migration-console.d.ts.map +1 -1
  75. package/dist/doc-schemas/migration-console.js +0 -32
  76. package/dist/doc-schemas/migration-console.js.map +1 -1
  77. package/dist/doc-schemas/pending-media.d.ts.map +1 -1
  78. package/dist/doc-schemas/pending-media.js +8 -20
  79. package/dist/doc-schemas/pending-media.js.map +1 -1
  80. package/dist/doc-schemas/picture-retirement.d.ts.map +1 -1
  81. package/dist/doc-schemas/picture-retirement.js +8 -13
  82. package/dist/doc-schemas/picture-retirement.js.map +1 -1
  83. package/dist/doc-schemas/publicUser.d.ts.map +1 -1
  84. package/dist/doc-schemas/publicUser.js +0 -5
  85. package/dist/doc-schemas/publicUser.js.map +1 -1
  86. package/dist/doc-schemas/registration-start.d.ts.map +1 -1
  87. package/dist/doc-schemas/registration-start.js +2 -5
  88. package/dist/doc-schemas/registration-start.js.map +1 -1
  89. package/dist/doc-schemas/registry.d.ts +25 -14
  90. package/dist/doc-schemas/registry.d.ts.map +1 -1
  91. package/dist/doc-schemas/registry.js +0 -10
  92. package/dist/doc-schemas/registry.js.map +1 -1
  93. package/dist/doc-schemas/reserved-display-name.d.ts.map +1 -1
  94. package/dist/doc-schemas/reserved-display-name.js +0 -5
  95. package/dist/doc-schemas/reserved-display-name.js.map +1 -1
  96. package/dist/doc-schemas/sport-game.d.ts.map +1 -1
  97. package/dist/doc-schemas/sport-game.js +1 -29
  98. package/dist/doc-schemas/sport-game.js.map +1 -1
  99. package/dist/doc-schemas/sport-league.d.ts +0 -9
  100. package/dist/doc-schemas/sport-league.d.ts.map +1 -1
  101. package/dist/doc-schemas/sport-league.js +4 -26
  102. package/dist/doc-schemas/sport-league.js.map +1 -1
  103. package/dist/doc-schemas/stats-operation.d.ts +22 -18
  104. package/dist/doc-schemas/stats-operation.d.ts.map +1 -1
  105. package/dist/doc-schemas/stats-operation.js +7 -44
  106. package/dist/doc-schemas/stats-operation.js.map +1 -1
  107. package/dist/doc-schemas/status-reconcile-queue.d.ts +0 -6
  108. package/dist/doc-schemas/status-reconcile-queue.d.ts.map +1 -1
  109. package/dist/doc-schemas/status-reconcile-queue.js +0 -13
  110. package/dist/doc-schemas/status-reconcile-queue.js.map +1 -1
  111. package/dist/doc-schemas/sweep-state.d.ts.map +1 -1
  112. package/dist/doc-schemas/sweep-state.js +4 -20
  113. package/dist/doc-schemas/sweep-state.js.map +1 -1
  114. package/dist/doc-schemas/system.d.ts.map +1 -1
  115. package/dist/doc-schemas/system.js +1 -27
  116. package/dist/doc-schemas/system.js.map +1 -1
  117. package/dist/doc-schemas/team-membership.d.ts.map +1 -1
  118. package/dist/doc-schemas/team-membership.js +0 -10
  119. package/dist/doc-schemas/team-membership.js.map +1 -1
  120. package/dist/doc-schemas/user-profile.d.ts +0 -1
  121. package/dist/doc-schemas/user-profile.d.ts.map +1 -1
  122. package/dist/doc-schemas/user-profile.js +0 -28
  123. package/dist/doc-schemas/user-profile.js.map +1 -1
  124. package/dist/doc-schemas/waiver-template.d.ts.map +1 -1
  125. package/dist/doc-schemas/waiver-template.js +4 -25
  126. package/dist/doc-schemas/waiver-template.js.map +1 -1
  127. package/dist/doc-schemas/waivers-and-hardware.d.ts.map +1 -1
  128. package/dist/doc-schemas/waivers-and-hardware.js +0 -20
  129. package/dist/doc-schemas/waivers-and-hardware.js.map +1 -1
  130. package/dist/domain-events/domain-events.d.ts.map +1 -1
  131. package/dist/domain-events/domain-events.js +0 -67
  132. package/dist/domain-events/domain-events.js.map +1 -1
  133. package/dist/ids/award-grant-ids.d.ts.map +1 -1
  134. package/dist/ids/award-grant-ids.js +0 -7
  135. package/dist/ids/award-grant-ids.js.map +1 -1
  136. package/dist/ids/compound-ids.d.ts.map +1 -1
  137. package/dist/ids/compound-ids.js +0 -7
  138. package/dist/ids/compound-ids.js.map +1 -1
  139. package/dist/ids/minted-ids.d.ts.map +1 -1
  140. package/dist/ids/minted-ids.js +4 -14
  141. package/dist/ids/minted-ids.js.map +1 -1
  142. package/dist/ids/notification-ids.d.ts.map +1 -1
  143. package/dist/ids/notification-ids.js +0 -15
  144. package/dist/ids/notification-ids.js.map +1 -1
  145. package/dist/ids/picture-ids.d.ts +0 -5
  146. package/dist/ids/picture-ids.d.ts.map +1 -1
  147. package/dist/ids/picture-ids.js +0 -11
  148. package/dist/ids/picture-ids.js.map +1 -1
  149. package/dist/ids/stat-event-ids.d.ts +0 -6
  150. package/dist/ids/stat-event-ids.d.ts.map +1 -1
  151. package/dist/ids/stat-event-ids.js +0 -15
  152. package/dist/ids/stat-event-ids.js.map +1 -1
  153. package/dist/ids/stats-operation-ids.d.ts.map +1 -1
  154. package/dist/ids/stats-operation-ids.js +0 -7
  155. package/dist/ids/stats-operation-ids.js.map +1 -1
  156. package/dist/ids/waiver-template-ids.d.ts +0 -1
  157. package/dist/ids/waiver-template-ids.d.ts.map +1 -1
  158. package/dist/ids/waiver-template-ids.js +0 -2
  159. package/dist/ids/waiver-template-ids.js.map +1 -1
  160. package/dist/index.d.ts +2 -0
  161. package/dist/index.d.ts.map +1 -1
  162. package/dist/index.js +2 -2
  163. package/dist/index.js.map +1 -1
  164. package/dist/input-formats/input-formats.d.ts +0 -80
  165. package/dist/input-formats/input-formats.d.ts.map +1 -1
  166. package/dist/input-formats/input-formats.js +0 -86
  167. package/dist/input-formats/input-formats.js.map +1 -1
  168. package/dist/media/file-origins.d.ts +0 -3
  169. package/dist/media/file-origins.d.ts.map +1 -1
  170. package/dist/media/file-origins.js +0 -26
  171. package/dist/media/file-origins.js.map +1 -1
  172. package/dist/media/picture-aspects.d.ts +0 -2
  173. package/dist/media/picture-aspects.d.ts.map +1 -1
  174. package/dist/media/picture-aspects.js +0 -5
  175. package/dist/media/picture-aspects.js.map +1 -1
  176. package/dist/media/picture-url.d.ts +0 -6
  177. package/dist/media/picture-url.d.ts.map +1 -1
  178. package/dist/media/picture-url.js +0 -9
  179. package/dist/media/picture-url.js.map +1 -1
  180. package/dist/media/upload-tray-display.d.ts +0 -3
  181. package/dist/media/upload-tray-display.d.ts.map +1 -1
  182. package/dist/media/upload-tray-display.js +0 -6
  183. package/dist/media/upload-tray-display.js.map +1 -1
  184. package/dist/migration-console/action-ids.d.ts +4 -1
  185. package/dist/migration-console/action-ids.d.ts.map +1 -1
  186. package/dist/migration-console/action-ids.js +8 -45
  187. package/dist/migration-console/action-ids.js.map +1 -1
  188. package/dist/migration-console/console-lock.d.ts +10 -0
  189. package/dist/migration-console/console-lock.d.ts.map +1 -0
  190. package/dist/migration-console/console-lock.js +14 -0
  191. package/dist/migration-console/console-lock.js.map +1 -0
  192. package/dist/migration-console/consumed-source.d.ts +4 -0
  193. package/dist/migration-console/consumed-source.d.ts.map +1 -0
  194. package/dist/migration-console/consumed-source.js +10 -0
  195. package/dist/migration-console/consumed-source.js.map +1 -0
  196. package/dist/migration-console/manifest.d.ts +2 -24
  197. package/dist/migration-console/manifest.d.ts.map +1 -1
  198. package/dist/migration-console/manifest.js +174 -61
  199. package/dist/migration-console/manifest.js.map +1 -1
  200. package/dist/migration-console/run-state.d.ts +2 -14
  201. package/dist/migration-console/run-state.d.ts.map +1 -1
  202. package/dist/migration-console/run-state.js +3 -16
  203. package/dist/migration-console/run-state.js.map +1 -1
  204. package/dist/notifications/admin-notification-config.d.ts +0 -11
  205. package/dist/notifications/admin-notification-config.d.ts.map +1 -1
  206. package/dist/notifications/admin-notification-config.js +2 -13
  207. package/dist/notifications/admin-notification-config.js.map +1 -1
  208. package/dist/notifications/archive-all.d.ts.map +1 -1
  209. package/dist/notifications/archive-all.js +0 -2
  210. package/dist/notifications/archive-all.js.map +1 -1
  211. package/dist/notifications/occurrences.d.ts +0 -3
  212. package/dist/notifications/occurrences.d.ts.map +1 -1
  213. package/dist/notifications/occurrences.js +0 -7
  214. package/dist/notifications/occurrences.js.map +1 -1
  215. package/dist/paths/app-routes.d.ts +0 -12
  216. package/dist/paths/app-routes.d.ts.map +1 -1
  217. package/dist/paths/app-routes.js +0 -18
  218. package/dist/paths/app-routes.js.map +1 -1
  219. package/dist/paths/collection-groups.d.ts.map +1 -1
  220. package/dist/paths/collection-groups.js +0 -5
  221. package/dist/paths/collection-groups.js.map +1 -1
  222. package/dist/paths/collection-refs.d.ts.map +1 -1
  223. package/dist/paths/collection-refs.js +0 -4
  224. package/dist/paths/collection-refs.js.map +1 -1
  225. package/dist/paths/collections.d.ts +0 -5
  226. package/dist/paths/collections.d.ts.map +1 -1
  227. package/dist/paths/collections.js +0 -68
  228. package/dist/paths/collections.js.map +1 -1
  229. package/dist/paths/path-builders.d.ts.map +1 -1
  230. package/dist/paths/path-builders.js +0 -16
  231. package/dist/paths/path-builders.js.map +1 -1
  232. package/dist/paths/picture-owner-paths.d.ts +0 -4
  233. package/dist/paths/picture-owner-paths.d.ts.map +1 -1
  234. package/dist/paths/picture-owner-paths.js +2 -11
  235. package/dist/paths/picture-owner-paths.js.map +1 -1
  236. package/dist/paths/storage-paths.d.ts +0 -18
  237. package/dist/paths/storage-paths.d.ts.map +1 -1
  238. package/dist/paths/storage-paths.js +0 -23
  239. package/dist/paths/storage-paths.js.map +1 -1
  240. package/dist/paths/utils.d.ts +0 -6
  241. package/dist/paths/utils.d.ts.map +1 -1
  242. package/dist/paths/utils.js +0 -9
  243. package/dist/paths/utils.js.map +1 -1
  244. package/dist/schemas/account-settings.d.ts.map +1 -1
  245. package/dist/schemas/account-settings.js +0 -7
  246. package/dist/schemas/account-settings.js.map +1 -1
  247. package/dist/schemas/admin-notifications.d.ts.map +1 -1
  248. package/dist/schemas/admin-notifications.js +0 -17
  249. package/dist/schemas/admin-notifications.js.map +1 -1
  250. package/dist/schemas/admin-stats.d.ts.map +1 -1
  251. package/dist/schemas/admin-stats.js +0 -9
  252. package/dist/schemas/admin-stats.js.map +1 -1
  253. package/dist/schemas/app-config.d.ts.map +1 -1
  254. package/dist/schemas/app-config.js +0 -10
  255. package/dist/schemas/app-config.js.map +1 -1
  256. package/dist/schemas/atoms.d.ts.map +1 -1
  257. package/dist/schemas/atoms.js +0 -10
  258. package/dist/schemas/atoms.js.map +1 -1
  259. package/dist/schemas/awards.d.ts +3 -3
  260. package/dist/schemas/awards.d.ts.map +1 -1
  261. package/dist/schemas/awards.js +0 -29
  262. package/dist/schemas/awards.js.map +1 -1
  263. package/dist/schemas/dead-letters.d.ts +0 -3
  264. package/dist/schemas/dead-letters.d.ts.map +1 -1
  265. package/dist/schemas/dead-letters.js +0 -15
  266. package/dist/schemas/dead-letters.js.map +1 -1
  267. package/dist/schemas/game-locations.d.ts.map +1 -1
  268. package/dist/schemas/game-locations.js +0 -6
  269. package/dist/schemas/game-locations.js.map +1 -1
  270. package/dist/schemas/hardware-loan-contracts.d.ts.map +1 -1
  271. package/dist/schemas/hardware-loan-contracts.js +0 -13
  272. package/dist/schemas/hardware-loan-contracts.js.map +1 -1
  273. package/dist/schemas/index.d.ts.map +1 -1
  274. package/dist/schemas/index.js +0 -2
  275. package/dist/schemas/index.js.map +1 -1
  276. package/dist/schemas/leagues.d.ts.map +1 -1
  277. package/dist/schemas/leagues.js +0 -24
  278. package/dist/schemas/leagues.js.map +1 -1
  279. package/dist/schemas/migration-console.d.ts +58 -15
  280. package/dist/schemas/migration-console.d.ts.map +1 -1
  281. package/dist/schemas/migration-console.js +4 -34
  282. package/dist/schemas/migration-console.js.map +1 -1
  283. package/dist/schemas/pictures.d.ts.map +1 -1
  284. package/dist/schemas/pictures.js +0 -10
  285. package/dist/schemas/pictures.js.map +1 -1
  286. package/dist/schemas/schedules.d.ts.map +1 -1
  287. package/dist/schemas/schedules.js +0 -26
  288. package/dist/schemas/schedules.js.map +1 -1
  289. package/dist/schemas/scoring.d.ts +20 -26
  290. package/dist/schemas/scoring.d.ts.map +1 -1
  291. package/dist/schemas/scoring.js +0 -33
  292. package/dist/schemas/scoring.js.map +1 -1
  293. package/dist/schemas/signed-waivers.d.ts.map +1 -1
  294. package/dist/schemas/signed-waivers.js +0 -22
  295. package/dist/schemas/signed-waivers.js.map +1 -1
  296. package/dist/schemas/stats.d.ts +12 -0
  297. package/dist/schemas/stats.d.ts.map +1 -1
  298. package/dist/schemas/stats.js +21 -61
  299. package/dist/schemas/stats.js.map +1 -1
  300. package/dist/schemas/team-joining.d.ts.map +1 -1
  301. package/dist/schemas/team-joining.js +0 -30
  302. package/dist/schemas/team-joining.js.map +1 -1
  303. package/dist/schemas/teams.d.ts +0 -1
  304. package/dist/schemas/teams.d.ts.map +1 -1
  305. package/dist/schemas/teams.js +0 -83
  306. package/dist/schemas/teams.js.map +1 -1
  307. package/dist/schemas/uploads.d.ts +0 -8
  308. package/dist/schemas/uploads.d.ts.map +1 -1
  309. package/dist/schemas/uploads.js +0 -29
  310. package/dist/schemas/uploads.js.map +1 -1
  311. package/dist/schemas/users.d.ts +0 -1
  312. package/dist/schemas/users.d.ts.map +1 -1
  313. package/dist/schemas/users.js +0 -41
  314. package/dist/schemas/users.js.map +1 -1
  315. package/dist/schemas/waiver-templates.d.ts.map +1 -1
  316. package/dist/schemas/waiver-templates.js +0 -7
  317. package/dist/schemas/waiver-templates.js.map +1 -1
  318. package/dist/sports/basketball-scoring.d.ts +0 -4
  319. package/dist/sports/basketball-scoring.d.ts.map +1 -1
  320. package/dist/sports/basketball-scoring.js +0 -34
  321. package/dist/sports/basketball-scoring.js.map +1 -1
  322. package/dist/sports/basketball.d.ts.map +1 -1
  323. package/dist/sports/basketball.js +0 -5
  324. package/dist/sports/basketball.js.map +1 -1
  325. package/dist/sports/bulk-entry.d.ts +0 -22
  326. package/dist/sports/bulk-entry.d.ts.map +1 -1
  327. package/dist/sports/bulk-entry.js +0 -10
  328. package/dist/sports/bulk-entry.js.map +1 -1
  329. package/dist/sports/column-catalog.d.ts +0 -17
  330. package/dist/sports/column-catalog.d.ts.map +1 -1
  331. package/dist/sports/column-catalog.js +0 -10
  332. package/dist/sports/column-catalog.js.map +1 -1
  333. package/dist/sports/contribution.d.ts +2 -59
  334. package/dist/sports/contribution.d.ts.map +1 -1
  335. package/dist/sports/contribution.js +2 -45
  336. package/dist/sports/contribution.js.map +1 -1
  337. package/dist/sports/curling-scoring.d.ts +0 -1
  338. package/dist/sports/curling-scoring.d.ts.map +1 -1
  339. package/dist/sports/curling-scoring.js +0 -27
  340. package/dist/sports/curling-scoring.js.map +1 -1
  341. package/dist/sports/curling.d.ts.map +1 -1
  342. package/dist/sports/curling.js +0 -4
  343. package/dist/sports/curling.js.map +1 -1
  344. package/dist/sports/finalized-record.d.ts +2 -19
  345. package/dist/sports/finalized-record.d.ts.map +1 -1
  346. package/dist/sports/finalized-record.js +21 -22
  347. package/dist/sports/finalized-record.js.map +1 -1
  348. package/dist/sports/football-scoring.d.ts.map +1 -1
  349. package/dist/sports/football-scoring.js +0 -21
  350. package/dist/sports/football-scoring.js.map +1 -1
  351. package/dist/sports/football.d.ts.map +1 -1
  352. package/dist/sports/football.js +0 -4
  353. package/dist/sports/football.js.map +1 -1
  354. package/dist/sports/index.d.ts.map +1 -1
  355. package/dist/sports/index.js +0 -2
  356. package/dist/sports/index.js.map +1 -1
  357. package/dist/sports/ledger-continuity.d.ts +0 -2
  358. package/dist/sports/ledger-continuity.d.ts.map +1 -1
  359. package/dist/sports/ledger-continuity.js +0 -5
  360. package/dist/sports/ledger-continuity.js.map +1 -1
  361. package/dist/sports/lifetime-summary.d.ts +0 -6
  362. package/dist/sports/lifetime-summary.d.ts.map +1 -1
  363. package/dist/sports/lifetime-summary.js +0 -7
  364. package/dist/sports/lifetime-summary.js.map +1 -1
  365. package/dist/sports/rankings.d.ts +0 -12
  366. package/dist/sports/rankings.d.ts.map +1 -1
  367. package/dist/sports/rankings.js +0 -15
  368. package/dist/sports/rankings.js.map +1 -1
  369. package/dist/sports/registry.d.ts +0 -10
  370. package/dist/sports/registry.d.ts.map +1 -1
  371. package/dist/sports/registry.js +0 -9
  372. package/dist/sports/registry.js.map +1 -1
  373. package/dist/sports/replay.d.ts +0 -11
  374. package/dist/sports/replay.d.ts.map +1 -1
  375. package/dist/sports/replay.js +0 -16
  376. package/dist/sports/replay.js.map +1 -1
  377. package/dist/sports/rollup-check.d.ts +0 -7
  378. package/dist/sports/rollup-check.d.ts.map +1 -1
  379. package/dist/sports/rollup-check.js +0 -14
  380. package/dist/sports/rollup-check.js.map +1 -1
  381. package/dist/sports/score-mirror.d.ts +0 -1
  382. package/dist/sports/score-mirror.d.ts.map +1 -1
  383. package/dist/sports/score-mirror.js +0 -4
  384. package/dist/sports/score-mirror.js.map +1 -1
  385. package/dist/sports/scoring-display.d.ts +0 -30
  386. package/dist/sports/scoring-display.d.ts.map +1 -1
  387. package/dist/sports/scoring-display.js +0 -9
  388. package/dist/sports/scoring-display.js.map +1 -1
  389. package/dist/sports/scoring.d.ts +0 -36
  390. package/dist/sports/scoring.d.ts.map +1 -1
  391. package/dist/sports/scoring.js +0 -10
  392. package/dist/sports/scoring.js.map +1 -1
  393. package/dist/sports/shared-columns.d.ts +0 -1
  394. package/dist/sports/shared-columns.d.ts.map +1 -1
  395. package/dist/sports/shared-columns.js +0 -7
  396. package/dist/sports/shared-columns.js.map +1 -1
  397. package/dist/sports/sport-adapter.d.ts +0 -32
  398. package/dist/sports/sport-adapter.d.ts.map +1 -1
  399. package/dist/sports/sport-adapter.js +0 -7
  400. package/dist/sports/sport-adapter.js.map +1 -1
  401. package/dist/sports/store-driver.d.ts +0 -28
  402. package/dist/sports/store-driver.d.ts.map +1 -1
  403. package/dist/sports/store-driver.js +0 -38
  404. package/dist/sports/store-driver.js.map +1 -1
  405. package/dist/types/audit.d.ts +1 -1
  406. package/dist/types/audit.d.ts.map +1 -1
  407. package/dist/types/audit.js +1 -67
  408. package/dist/types/audit.js.map +1 -1
  409. package/dist/types/claims.d.ts +0 -10
  410. package/dist/types/claims.d.ts.map +1 -1
  411. package/dist/types/claims.js +0 -16
  412. package/dist/types/claims.js.map +1 -1
  413. package/dist/types/notifications.d.ts.map +1 -1
  414. package/dist/types/notifications.js +7 -25
  415. package/dist/types/notifications.js.map +1 -1
  416. package/dist/types/picture-owners.d.ts +0 -1
  417. package/dist/types/picture-owners.d.ts.map +1 -1
  418. package/dist/types/picture-owners.js +0 -6
  419. package/dist/types/picture-owners.js.map +1 -1
  420. package/dist/types/schedules.d.ts.map +1 -1
  421. package/dist/types/schedules.js +0 -9
  422. package/dist/types/schedules.js.map +1 -1
  423. package/dist/types/sports.d.ts.map +1 -1
  424. package/dist/types/sports.js +0 -24
  425. package/dist/types/sports.js.map +1 -1
  426. package/dist/types/stats.d.ts.map +1 -1
  427. package/dist/types/stats.js +0 -65
  428. package/dist/types/stats.js.map +1 -1
  429. package/dist/types/unions.d.ts +0 -2
  430. package/dist/types/unions.d.ts.map +1 -1
  431. package/dist/types/unions.js +3 -91
  432. package/dist/types/unions.js.map +1 -1
  433. package/dist/types/uploads.d.ts.map +1 -1
  434. package/dist/types/uploads.js +0 -7
  435. package/dist/types/uploads.js.map +1 -1
  436. package/dist/upload-variables/on-progress.d.ts.map +1 -1
  437. package/dist/upload-variables/on-progress.js +2 -5
  438. package/dist/upload-variables/on-progress.js.map +1 -1
  439. package/dist/upload-variables/picture-upload-variables.d.ts +0 -1
  440. package/dist/upload-variables/picture-upload-variables.d.ts.map +1 -1
  441. package/dist/upload-variables/picture-upload-variables.js +0 -4
  442. package/dist/upload-variables/picture-upload-variables.js.map +1 -1
  443. package/dist/upload-variables/sign-hardware-contract-variables.d.ts.map +1 -1
  444. package/dist/upload-variables/sign-hardware-contract-variables.js +0 -2
  445. package/dist/upload-variables/sign-hardware-contract-variables.js.map +1 -1
  446. package/dist/upload-variables/sign-waiver-variables.d.ts.map +1 -1
  447. package/dist/upload-variables/sign-waiver-variables.js +0 -4
  448. package/dist/upload-variables/sign-waiver-variables.js.map +1 -1
  449. package/dist/utils/account-status.d.ts.map +1 -1
  450. package/dist/utils/account-status.js +0 -4
  451. package/dist/utils/account-status.js.map +1 -1
  452. package/dist/utils/app-config.d.ts +0 -53
  453. package/dist/utils/app-config.d.ts.map +1 -1
  454. package/dist/utils/app-config.js +0 -62
  455. package/dist/utils/app-config.js.map +1 -1
  456. package/dist/utils/display-name.d.ts +0 -7
  457. package/dist/utils/display-name.d.ts.map +1 -1
  458. package/dist/utils/display-name.js +0 -8
  459. package/dist/utils/display-name.js.map +1 -1
  460. package/dist/utils/index.d.ts +1 -0
  461. package/dist/utils/index.d.ts.map +1 -1
  462. package/dist/utils/index.js +1 -0
  463. package/dist/utils/index.js.map +1 -1
  464. package/dist/utils/league-calendar.d.ts +0 -11
  465. package/dist/utils/league-calendar.d.ts.map +1 -1
  466. package/dist/utils/league-calendar.js +7 -19
  467. package/dist/utils/league-calendar.js.map +1 -1
  468. package/dist/utils/league-join-warning.d.ts +0 -11
  469. package/dist/utils/league-join-warning.d.ts.map +1 -1
  470. package/dist/utils/league-join-warning.js +0 -28
  471. package/dist/utils/league-join-warning.js.map +1 -1
  472. package/dist/utils/league-joining.d.ts +0 -1
  473. package/dist/utils/league-joining.d.ts.map +1 -1
  474. package/dist/utils/league-joining.js +0 -7
  475. package/dist/utils/league-joining.js.map +1 -1
  476. package/dist/utils/league-mode.d.ts +0 -1
  477. package/dist/utils/league-mode.d.ts.map +1 -1
  478. package/dist/utils/league-mode.js +0 -4
  479. package/dist/utils/league-mode.js.map +1 -1
  480. package/dist/utils/schedules.d.ts +0 -15
  481. package/dist/utils/schedules.d.ts.map +1 -1
  482. package/dist/utils/schedules.js +0 -19
  483. package/dist/utils/schedules.js.map +1 -1
  484. package/dist/utils/stats-operation-request.d.ts +20 -0
  485. package/dist/utils/stats-operation-request.d.ts.map +1 -0
  486. package/dist/utils/stats-operation-request.js +10 -0
  487. package/dist/utils/stats-operation-request.js.map +1 -0
  488. package/dist/utils/team-creation.d.ts +0 -2
  489. package/dist/utils/team-creation.d.ts.map +1 -1
  490. package/dist/utils/team-creation.js +0 -6
  491. package/dist/utils/team-creation.js.map +1 -1
  492. package/dist/utils/team-member-actions.d.ts +0 -6
  493. package/dist/utils/team-member-actions.d.ts.map +1 -1
  494. package/dist/utils/team-member-actions.js +0 -12
  495. package/dist/utils/team-member-actions.js.map +1 -1
  496. package/package.json +2 -1
@@ -1,41 +1,14 @@
1
- // The 2.0 cutover manifest: every step of the coordinated migration, in the order the operator runs
2
- // them, with what each step needs first. The console's callables enforce it — an action whose
3
- // dependencies are not satisfied refuses to run — and its screen renders it, so both read this one
4
- // declaration (RULE-STD-ARCH-101, RULE-STD-ENG-002).
5
- //
6
- // Four kinds of step:
7
- // executable a console action with its own admin callable: admin-asserted, audited,
8
- // idempotent, resumable by its operation id, and re-runnable after a partial
9
- // failure. A write action offers a dry run; a verification only reads.
10
- // productControl a product callable the operator runs from its own screen (the Fix stats
11
- // actions and the stats check). The console never runs
12
- // a second copy of it; it records the run, checking the run's own evidence.
13
- // operatorCheckpoint external work the app cannot do safely — an export, a credential
14
- // revocation, a manual re-upload. Recorded with the operator's evidence; it
15
- // never claims the console performed it.
16
- // cutoverMarker the console's own record that the product now owns every destination.
17
- //
18
- // `dependsOn` is enforced: each id must be satisfied — an executable action's last real run reached
19
- // its end (a verification's also passed), and a recorded step recorded — before the step runs.
20
- // `orderedAfter` is display order only: a sequence that is ordering, not a gate.
21
1
  import { MIGRATION_ACTION_IDS as A } from './action-ids.js';
2
+ import { SPORT_KEYS } from '../types/sports.js';
3
+ import { MAX_MIGRATION_PAGE_SIZE, MIGRATION_COMMIT_WRITE_LIMIT } from './run-state.js';
22
4
  export const MIGRATION_STEP_KIND_KEYS = [
23
5
  'executable',
24
6
  'productControl',
25
7
  'operatorCheckpoint',
26
8
  'cutoverMarker',
27
9
  ];
28
- /** What an executable action's pages return: documents written, or records compared. */
29
10
  export const MIGRATION_RESULT_KIND_KEYS = ['write', 'verification'];
30
- /** Where a product control's completion is proven from. */
31
- export const MIGRATION_CONTROL_EVIDENCE_KEYS = [
32
- // The control's `statsOperations` document: a real run, complete, over the whole scope, that
33
- // left no game out.
34
- 'statsOperation',
35
- // The validation's report: complete, over everything, with no finding.
36
- 'statsValidationReport',
37
- ];
38
- /** The step folder under the migration plan that owns a step's correctness. */
11
+ export const MIGRATION_CONTROL_EVIDENCE_KEYS = ['statsOperation', 'statsValidationReport'];
39
12
  export const MIGRATION_OWNING_STEP_KEYS = [
40
13
  'auth',
41
14
  'q-core',
@@ -46,15 +19,10 @@ export const MIGRATION_OWNING_STEP_KEYS = [
46
19
  'secret-management',
47
20
  'migration-console',
48
21
  ];
49
- /** The callable that records a product control's run, checking its evidence. */
50
22
  export const RECORD_MIGRATION_CONTROL_RUN_CALLABLE = 'adminRecordMigrationControlRun';
51
- /** The callable that records an operator checkpoint with its evidence. */
52
23
  export const RECORD_MIGRATION_CHECKPOINT_CALLABLE = 'adminRecordMigrationCheckpoint';
53
- /** The callable that records the cutover. */
54
24
  export const RECORD_MIGRATION_CUTOVER_CALLABLE = 'adminRecordMigrationCutover';
55
- /** The callable that reads the console: the cutover marker, the lock, and every step's state. */
56
25
  export const GET_MIGRATION_CONSOLE_CALLABLE = 'adminGetMigrationConsole';
57
- /** The console's callable name for an executable action: `admin` + its verb and its object. */
58
26
  export function migrationActionCallableName(id) {
59
27
  const [verb = '', object = ''] = id.split('.');
60
28
  const capitalize = (word) => word.charAt(0).toUpperCase() + word.slice(1);
@@ -68,6 +36,7 @@ const SINGLE_DOCUMENT = 'One source document; it is never paged.';
68
36
  const COPY_RECOVERY = 'Fix the transform and run the copy again; it refuses a live destination.';
69
37
  const VERIFY_RECOVERY = 'Repair what it reports, through its copy or its resolution, and verify again.';
70
38
  const DELETE_RECOVERY = 'Forward repair only: the retained V1 Firestore export holds what was deleted.';
39
+ const V1_CHECK_RECOVERY = 'Fix what it reports in V1, then run the check again.';
71
40
  function copyStep(id, options) {
72
41
  return {
73
42
  kind: 'executable',
@@ -77,10 +46,12 @@ function copyStep(id, options) {
77
46
  destructive: false,
78
47
  paged: true,
79
48
  defaultPageSize: options.defaultPageSize ?? 100,
49
+ maxPageSize: options.maxPageSize ?? MAX_MIGRATION_PAGE_SIZE,
80
50
  informational: false,
81
51
  idempotency: COPY_IDEMPOTENCY,
82
52
  resumeKey: options.resumeKey ?? BY_DOCUMENT_ID,
83
53
  recovery: COPY_RECOVERY,
54
+ consumes: [],
84
55
  title: options.title,
85
56
  summary: options.summary,
86
57
  owningStep: options.owningStep,
@@ -97,10 +68,12 @@ function verifyStep(id, options) {
97
68
  destructive: false,
98
69
  paged: true,
99
70
  defaultPageSize: options.defaultPageSize ?? 100,
71
+ maxPageSize: options.maxPageSize ?? MAX_MIGRATION_PAGE_SIZE,
100
72
  informational: options.informational ?? false,
101
73
  idempotency: VERIFY_IDEMPOTENCY,
102
74
  resumeKey: options.resumeKey ?? BY_DOCUMENT_ID,
103
- recovery: VERIFY_RECOVERY,
75
+ recovery: options.recovery ?? VERIFY_RECOVERY,
76
+ consumes: [],
104
77
  title: options.title,
105
78
  summary: options.summary,
106
79
  owningStep: options.owningStep,
@@ -108,6 +81,13 @@ function verifyStep(id, options) {
108
81
  orderedAfter: options.orderedAfter ?? [],
109
82
  };
110
83
  }
84
+ function v1CheckStep(id, options) {
85
+ return verifyStep(id, {
86
+ dependsOn: [A.checkpointV1FirestoreExport],
87
+ ...options,
88
+ recovery: V1_CHECK_RECOVERY,
89
+ });
90
+ }
111
91
  function deleteStep(id, options) {
112
92
  return {
113
93
  kind: 'executable',
@@ -117,10 +97,12 @@ function deleteStep(id, options) {
117
97
  destructive: true,
118
98
  paged: true,
119
99
  defaultPageSize: options.defaultPageSize ?? 100,
100
+ maxPageSize: options.maxPageSize ?? MAX_MIGRATION_PAGE_SIZE,
120
101
  informational: false,
121
102
  idempotency: DELETE_IDEMPOTENCY,
122
103
  resumeKey: options.resumeKey ?? BY_DOCUMENT_ID,
123
104
  recovery: DELETE_RECOVERY,
105
+ consumes: options.consumes,
124
106
  title: options.title,
125
107
  summary: options.summary,
126
108
  owningStep: options.owningStep,
@@ -128,7 +110,6 @@ function deleteStep(id, options) {
128
110
  orderedAfter: options.orderedAfter ?? [],
129
111
  };
130
112
  }
131
- /** The copies whose verifications must pass before the rebuild reads the games they copied. */
132
113
  const SOURCE_VERIFICATIONS_FOR_REBUILD = [
133
114
  A.verifySportLeagues,
134
115
  A.verifyLeagueTeams,
@@ -137,10 +118,6 @@ const SOURCE_VERIFICATIONS_FOR_REBUILD = [
137
118
  A.verifySportGames,
138
119
  A.verifyGameStats,
139
120
  ];
140
- /**
141
- * Every copy's verification. Each must pass before the cutover is recorded: a failed or skipped
142
- * record keeps the migration from being declared complete.
143
- */
144
121
  const COPY_VERIFICATIONS = [
145
122
  A.verifyAdminList,
146
123
  A.verifyAppConfig,
@@ -167,7 +144,6 @@ const COPY_VERIFICATIONS = [
167
144
  A.verifyV1Pictures,
168
145
  ];
169
146
  export const MIGRATION_CUTOVER_MANIFEST = [
170
- // ── Before anything is read ────────────────────────────────────────────────────────────────────
171
147
  {
172
148
  kind: 'operatorCheckpoint',
173
149
  id: A.checkpointV1FirestoreExport,
@@ -180,7 +156,27 @@ export const MIGRATION_CUTOVER_MANIFEST = [
180
156
  evidence: 'The export operation name and the bucket path it wrote to.',
181
157
  noReturnBoundary: null,
182
158
  },
183
- // ── Global roles ───────────────────────────────────────────────────────────────────────────────
159
+ v1CheckStep(A.verifyV1DisplayNamesUnique, {
160
+ title: 'Check no two V1 display names collide',
161
+ summary: 'Lists every group of V1 accounts whose display names normalize to one reservation key. The profiles are copied only once it finds none.',
162
+ owningStep: 'migration-console',
163
+ }),
164
+ v1CheckStep(A.verifyV1TextFitsLimits, {
165
+ title: 'Check every V1 text fits its V2 field',
166
+ summary: 'Lists every V1 text a copy carries into a capped V2 field that is over the field’s limit or that its schema would change. The copies it covers run only once it finds none.',
167
+ owningStep: 'migration-console',
168
+ }),
169
+ v1CheckStep(A.verifyV1LeagueCapacity, {
170
+ title: 'Check no V1 league is over capacity',
171
+ summary: 'Lists every V1 league holding more games or teams than a league may. The leagues, teams, and games are copied only once it finds none.',
172
+ owningStep: 'migration-console',
173
+ }),
174
+ v1CheckStep(A.verifyV1HardwareContractIdsUnique, {
175
+ title: 'Check no hardware contract id is in both V1 collections',
176
+ summary: 'Lists every contract id found in both V1 hardware collections. The contracts are copied only once it finds none.',
177
+ owningStep: 'migration-console',
178
+ resumeKey: 'The V1 collections in turn, each by document id; the resume key is `{collection}/{id}`.',
179
+ }),
184
180
  copyStep(A.copyAdminList, {
185
181
  title: 'Copy the admin and referee rosters',
186
182
  summary: 'The `landing/admin` role maps become `_systemData/adminList`, the roster every role check reads.',
@@ -194,17 +190,18 @@ export const MIGRATION_CUTOVER_MANIFEST = [
194
190
  dependsOn: [A.copyAdminList],
195
191
  resumeKey: SINGLE_DOCUMENT,
196
192
  }),
197
- // ── App configuration ──────────────────────────────────────────────────────────────────────────
198
193
  copyStep(A.copyAppConfig, {
199
194
  title: 'Copy the app configuration',
200
195
  summary: 'The version and the banner from `landing/base` become `_appConfig/app`, its switches at their open defaults.',
201
196
  owningStep: 'q-core',
197
+ dependsOn: [A.verifyV1TextFitsLimits],
202
198
  resumeKey: SINGLE_DOCUMENT,
203
199
  }),
204
200
  copyStep(A.copyLandingPageConfig, {
205
201
  title: 'Copy the landing page copy',
206
202
  summary: 'The hero title and the about text become `_appConfig/landingPage`; its picture arrives with the picture carry.',
207
203
  owningStep: 'q-core',
204
+ dependsOn: [A.verifyV1TextFitsLimits],
208
205
  resumeKey: SINGLE_DOCUMENT,
209
206
  }),
210
207
  copyStep(A.copyStatsBeacon, {
@@ -234,11 +231,12 @@ export const MIGRATION_CUTOVER_MANIFEST = [
234
231
  dependsOn: [A.copyStatsBeacon],
235
232
  resumeKey: SINGLE_DOCUMENT,
236
233
  }),
237
- // ── Setup's catalogs ───────────────────────────────────────────────────────────────────────────
238
234
  copyStep(A.copyWaiverTemplates, {
239
235
  title: 'Copy the waiver templates',
240
236
  summary: 'Each template under its id, its wording as version 1.',
241
237
  owningStep: 'high-risk-callables',
238
+ dependsOn: [A.verifyV1TextFitsLimits],
239
+ maxPageSize: 200,
242
240
  }),
243
241
  verifyStep(A.verifyWaiverTemplates, {
244
242
  title: 'Verify the waiver templates',
@@ -250,6 +248,7 @@ export const MIGRATION_CUTOVER_MANIFEST = [
250
248
  title: 'Copy the game locations',
251
249
  summary: 'Each venue on `landing/admin` becomes a `gameLocations` document under its id; its picture arrives with the picture carry.',
252
250
  owningStep: 'q-core',
251
+ dependsOn: [A.verifyV1TextFitsLimits],
253
252
  resumeKey: 'The venues in array order; the resume key is the last venue id.',
254
253
  }),
255
254
  verifyStep(A.verifyGameLocations, {
@@ -259,11 +258,12 @@ export const MIGRATION_CUTOVER_MANIFEST = [
259
258
  dependsOn: [A.copyGameLocations],
260
259
  resumeKey: 'The venues in array order; the resume key is the last venue id.',
261
260
  }),
262
- // ── Accounts and identity ──────────────────────────────────────────────────────────────────────
263
261
  copyStep(A.copyUserProfiles, {
264
262
  title: 'Copy the profiles',
265
263
  summary: 'Each `users` document becomes its profile and its owner-only private document, every account active.',
266
264
  owningStep: 'auth',
265
+ dependsOn: [A.verifyV1DisplayNamesUnique, A.verifyV1TextFitsLimits],
266
+ maxPageSize: Math.floor(MIGRATION_COMMIT_WRITE_LIMIT / 2),
267
267
  }),
268
268
  verifyStep(A.verifyUserProfiles, {
269
269
  title: 'Verify the profiles',
@@ -288,6 +288,7 @@ export const MIGRATION_CUTOVER_MANIFEST = [
288
288
  summary: 'Each pre-Q-Sports career total becomes its sport’s `historicalStats` document.',
289
289
  owningStep: 'stat-data-model',
290
290
  dependsOn: [A.copyUserProfiles],
291
+ maxPageSize: Math.floor(MIGRATION_COMMIT_WRITE_LIMIT / SPORT_KEYS.length),
291
292
  }),
292
293
  verifyStep(A.verifyHistoricalStats, {
293
294
  title: 'Verify the historical baselines',
@@ -297,9 +298,10 @@ export const MIGRATION_CUTOVER_MANIFEST = [
297
298
  }),
298
299
  copyStep(A.deriveReservedDisplayNames, {
299
300
  title: 'Reserve the display names',
300
- summary: 'One reservation per copied profile; two names that collide are reported for an admin rename.',
301
+ summary: 'One reservation per copied profile.',
301
302
  owningStep: 'auth',
302
- dependsOn: [A.copyUserProfiles],
303
+ dependsOn: [A.copyUserProfiles, A.verifyV1DisplayNamesUnique],
304
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
303
305
  }),
304
306
  verifyStep(A.verifyReservedDisplayNames, {
305
307
  title: 'Verify the display-name reservations',
@@ -311,6 +313,7 @@ export const MIGRATION_CUTOVER_MANIFEST = [
311
313
  title: 'Migrate the public identities in place',
312
314
  summary: 'Each `publicUsers` document is rewritten where it sits: epoch timestamps, the recomputed lowercase name, the ghost flag.',
313
315
  owningStep: 'q-core',
316
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
314
317
  }),
315
318
  verifyStep(A.verifyPublicUsers, {
316
319
  title: 'Verify the public identities',
@@ -322,7 +325,7 @@ export const MIGRATION_CUTOVER_MANIFEST = [
322
325
  title: 'Copy the award catalog',
323
326
  summary: 'Each award on `landing/admin` becomes an `awardDefinitions` document with its holder count; its badge arrives with the picture carry.',
324
327
  owningStep: 'uploads-and-media',
325
- dependsOn: [A.copyUserProfiles],
328
+ dependsOn: [A.copyUserProfiles, A.verifyV1TextFitsLimits],
326
329
  resumeKey: 'The awards in array order; the resume key is the last award id.',
327
330
  }),
328
331
  verifyStep(A.verifyAwardDefinitions, {
@@ -332,11 +335,12 @@ export const MIGRATION_CUTOVER_MANIFEST = [
332
335
  dependsOn: [A.copyAwardDefinitions, A.migratePublicUsers],
333
336
  resumeKey: SINGLE_DOCUMENT,
334
337
  }),
335
- // ── Leagues and teams ──────────────────────────────────────────────────────────────────────────
336
338
  copyStep(A.copySportLeagues, {
337
339
  title: 'Copy the leagues',
338
340
  summary: 'Each league under its id — closed leagues included; its pictures arrive with the picture carry.',
339
341
  owningStep: 'q-core',
342
+ dependsOn: [A.verifyV1LeagueCapacity, A.verifyV1TextFitsLimits],
343
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
340
344
  }),
341
345
  verifyStep(A.verifySportLeagues, {
342
346
  title: 'Verify the leagues',
@@ -348,6 +352,8 @@ export const MIGRATION_CUTOVER_MANIFEST = [
348
352
  title: 'Copy the teams',
349
353
  summary: 'Each team under its id, its season lines in its sport’s shape.',
350
354
  owningStep: 'q-core',
355
+ dependsOn: [A.verifyV1LeagueCapacity, A.verifyV1TextFitsLimits],
356
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
351
357
  }),
352
358
  verifyStep(A.verifyLeagueTeams, {
353
359
  title: 'Verify the teams',
@@ -360,6 +366,7 @@ export const MIGRATION_CUTOVER_MANIFEST = [
360
366
  summary: 'Each membership under its compound id, `member` becoming `player`; one whose team was not copied into its league is left behind and reported.',
361
367
  owningStep: 'q-core',
362
368
  dependsOn: [A.copyLeagueTeams],
369
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
363
370
  }),
364
371
  verifyStep(A.verifyTeamMemberships, {
365
372
  title: 'Verify the memberships',
@@ -372,6 +379,7 @@ export const MIGRATION_CUTOVER_MANIFEST = [
372
379
  summary: 'Each invitation by id; a pending one whose invitee is already on the team is written approved, and a pending one whose team was not copied into its league is left behind and reported.',
373
380
  owningStep: 'high-risk-callables',
374
381
  dependsOn: [A.copyLeagueTeams, A.copyTeamMemberships],
382
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
375
383
  }),
376
384
  verifyStep(A.verifyTeamInvitations, {
377
385
  title: 'Verify the invitations',
@@ -384,6 +392,7 @@ export const MIGRATION_CUTOVER_MANIFEST = [
384
392
  summary: 'Each request by id; a pending one whose requester is already on the team is written approved, and a pending one whose team was not copied into its league is left behind and reported.',
385
393
  owningStep: 'high-risk-callables',
386
394
  dependsOn: [A.copyLeagueTeams, A.copyTeamMemberships],
395
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
387
396
  }),
388
397
  verifyStep(A.verifyTeamJoinRequests, {
389
398
  title: 'Verify the join requests',
@@ -396,6 +405,7 @@ export const MIGRATION_CUTOVER_MANIFEST = [
396
405
  summary: 'Each signup under its built id; a signup whose player already joined a team in the league is left behind and reported.',
397
406
  owningStep: 'high-risk-callables',
398
407
  dependsOn: [A.copyTeamMemberships],
408
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
399
409
  }),
400
410
  verifyStep(A.verifyLeagueFreeAgents, {
401
411
  title: 'Verify the free-agent signups',
@@ -403,12 +413,12 @@ export const MIGRATION_CUTOVER_MANIFEST = [
403
413
  owningStep: 'high-risk-callables',
404
414
  dependsOn: [A.copyLeagueFreeAgents],
405
415
  }),
406
- // ── Signed waivers and hardware contracts ──────────────────────────────────────────────────────
407
416
  copyStep(A.copySignedWaivers, {
408
417
  title: 'Copy the signed waivers',
409
418
  summary: 'Every signed waiver, a ghost’s included, under its id; its signature file stays where it is.',
410
419
  owningStep: 'uploads-and-media',
411
420
  dependsOn: [A.copyWaiverTemplates],
421
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
412
422
  }),
413
423
  verifyStep(A.verifySignedWaivers, {
414
424
  title: 'Verify the signed waivers',
@@ -420,7 +430,9 @@ export const MIGRATION_CUTOVER_MANIFEST = [
420
430
  title: 'Copy the hardware loan contracts',
421
431
  summary: 'Each contract from both V1 collections under its id; its signature file stays where it is.',
422
432
  owningStep: 'high-risk-callables',
433
+ dependsOn: [A.verifyV1HardwareContractIdsUnique],
423
434
  resumeKey: 'The V1 collections in turn, each by document id; the resume key is `{collection}/{id}`.',
435
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
424
436
  }),
425
437
  verifyStep(A.verifyHardwareLoanContracts, {
426
438
  title: 'Verify the hardware loan contracts',
@@ -436,13 +448,13 @@ export const MIGRATION_CUTOVER_MANIFEST = [
436
448
  dependsOn: [A.verifySignedWaivers, A.verifyHardwareLoanContracts],
437
449
  resumeKey: 'The signed waivers by id, then the contracts; the resume key is the record path.',
438
450
  }),
439
- // ── Games ──────────────────────────────────────────────────────────────────────────────────────
440
451
  copyStep(A.copyGameRosterPlayers, {
441
452
  title: 'Copy the game rosters',
442
453
  summary: 'One entry per team per person in each game, from each V1 roster document’s own team and user.',
443
454
  owningStep: 'high-risk-callables',
444
455
  resumeKey: 'The V1 games by document id; the resume key is the last game id.',
445
456
  defaultPageSize: 50,
457
+ maxPageSize: 50,
446
458
  }),
447
459
  {
448
460
  kind: 'executable',
@@ -452,10 +464,12 @@ export const MIGRATION_CUTOVER_MANIFEST = [
452
464
  destructive: false,
453
465
  paged: false,
454
466
  defaultPageSize: 1,
467
+ maxPageSize: MAX_MIGRATION_PAGE_SIZE,
455
468
  informational: false,
456
469
  idempotency: 'A second resolution of the same line is acknowledged and writes nothing.',
457
470
  resumeKey: 'One game, one line; it is never paged.',
458
471
  recovery: 'Resolve the line again with the right team, then copy the game again.',
472
+ consumes: [],
459
473
  title: 'Resolve a stat line no roster places',
460
474
  summary: 'For a line the game copy stops on, the admin names its team: the missing roster entry is written with its reason, and the game copied again.',
461
475
  owningStep: 'stat-data-model',
@@ -466,10 +480,11 @@ export const MIGRATION_CUTOVER_MANIFEST = [
466
480
  title: 'Copy the games',
467
481
  summary: 'Each V1 game with its stats: the event documents, the rollup, the participation lists by roster entry, and a completed game’s finalized record.',
468
482
  owningStep: 'stat-data-model',
469
- dependsOn: [A.copyGameRosterPlayers],
483
+ dependsOn: [A.copyGameRosterPlayers, A.verifyV1LeagueCapacity],
470
484
  orderedAfter: [A.resolveUnrosteredStatLine],
471
485
  resumeKey: 'The V1 games by document id; a game’s documents commit before its id becomes the resume key.',
472
486
  defaultPageSize: 20,
487
+ maxPageSize: 25,
473
488
  }),
474
489
  verifyStep(A.verifySportGames, {
475
490
  title: 'Verify the game schedules',
@@ -483,6 +498,7 @@ export const MIGRATION_CUTOVER_MANIFEST = [
483
498
  owningStep: 'stat-data-model',
484
499
  dependsOn: [A.copySportGames],
485
500
  defaultPageSize: 20,
501
+ maxPageSize: 25,
486
502
  }),
487
503
  {
488
504
  kind: 'executable',
@@ -492,10 +508,12 @@ export const MIGRATION_CUTOVER_MANIFEST = [
492
508
  destructive: false,
493
509
  paged: true,
494
510
  defaultPageSize: 20,
511
+ maxPageSize: 25,
495
512
  informational: false,
496
513
  idempotency: 'Each open game is reconciled through the roster core against the copied memberships; a reconciled game changes nothing on a re-run.',
497
514
  resumeKey: 'The open games by document id; the resume key is the last game id.',
498
515
  recovery: 'Run it again: a game held by another operation is reported and reconciled on the next run.',
516
+ consumes: [],
499
517
  title: 'Reconcile the open games’ rosters',
500
518
  summary: 'Each game open at the cutover: stale stat-free entries removed, missing members added.',
501
519
  owningStep: 'high-risk-callables',
@@ -509,7 +527,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
509
527
  dependsOn: [A.copyGameRosterPlayers, A.reconcileOpenGameRosters],
510
528
  resumeKey: 'The V1 games by document id; the resume key is the last game id.',
511
529
  }),
512
- // ── Pictures ───────────────────────────────────────────────────────────────────────────────────
513
530
  copyStep(A.carryV1Pictures, {
514
531
  title: 'Carry the V1 pictures onto the pipeline',
515
532
  summary: 'Each league, landing, venue, and award image is staged and accepted through the upload pipeline, which processes and publishes it. A rehearsal reports every source unavailable.',
@@ -529,7 +546,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
529
546
  dependsOn: [A.carryV1Pictures],
530
547
  resumeKey: 'By owner kind, then owner id; the resume key is `{ownerKind}:{ownerId}`.',
531
548
  }),
532
- // ── The ghost names V1 left behind ─────────────────────────────────────────────────────────────
533
549
  {
534
550
  kind: 'executable',
535
551
  id: A.cleanupOrphanGhostPublicUsers,
@@ -538,10 +554,12 @@ export const MIGRATION_CUTOVER_MANIFEST = [
538
554
  destructive: true,
539
555
  paged: true,
540
556
  defaultPageSize: 100,
557
+ maxPageSize: 100,
541
558
  informational: false,
542
559
  idempotency: 'A ghost document is deleted only when nothing references it; a re-run finds nothing further.',
543
560
  resumeKey: BY_DOCUMENT_ID,
544
561
  recovery: DELETE_RECOVERY,
562
+ consumes: [],
545
563
  title: 'Remove the ghost names nothing references',
546
564
  summary: 'Each ghost `publicUsers` document no membership, roster entry, or unvoided stat event names, reported by disposition first. No signed waiver is touched.',
547
565
  owningStep: 'high-risk-callables',
@@ -553,7 +571,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
553
571
  ],
554
572
  orderedAfter: [],
555
573
  },
556
- // ── The derived statistics ─────────────────────────────────────────────────────────────────────
557
574
  {
558
575
  kind: 'productControl',
559
576
  id: A.rebuildLeagueStats,
@@ -619,7 +636,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
619
636
  owningStep: 'stat-data-model',
620
637
  dependsOn: [A.rebuildSportHallOfFame],
621
638
  }),
622
- // ── The cutover ────────────────────────────────────────────────────────────────────────────────
623
639
  {
624
640
  kind: 'cutoverMarker',
625
641
  id: A.recordCutoverLive,
@@ -631,13 +647,13 @@ export const MIGRATION_CUTOVER_MANIFEST = [
631
647
  orderedAfter: [A.verifySportHallOfFame, A.verifySignatureFilesResolvable],
632
648
  noReturnBoundary: 'Recording the cutover. It is never undone: every copy refuses a live destination after it.',
633
649
  },
634
- // ── Cleanup: each delete gated on the verifications its core asserts ───────────────────────────
635
650
  deleteStep(A.deleteV1AdminRoles, {
636
651
  title: 'Remove the V1 role maps',
637
652
  summary: 'The `isAdmin` and `referees` fields on `landing/admin`; the document goes with its last carried row.',
638
653
  owningStep: 'auth',
639
654
  dependsOn: [A.verifyAdminList],
640
655
  resumeKey: SINGLE_DOCUMENT,
656
+ consumes: [A.copyAdminList, A.verifyAdminList],
641
657
  }),
642
658
  deleteStep(A.deleteV1LandingBase, {
643
659
  title: 'Delete `landing/base`',
@@ -650,12 +666,25 @@ export const MIGRATION_CUTOVER_MANIFEST = [
650
666
  A.verifyV1Pictures,
651
667
  ],
652
668
  resumeKey: SINGLE_DOCUMENT,
669
+ consumes: [
670
+ A.copyAppConfig,
671
+ A.copyLandingPageConfig,
672
+ A.copyStatsBeacon,
673
+ A.verifyAppConfig,
674
+ A.verifyLandingPageConfig,
675
+ A.verifyStatsBeacon,
676
+ A.carryV1Pictures,
677
+ A.verifyV1Pictures,
678
+ A.verifyV1TextFitsLimits,
679
+ ],
653
680
  }),
654
681
  deleteStep(A.deleteV1Waivers, {
655
682
  title: 'Delete the V1 waiver templates',
656
683
  summary: 'The `waivers` collection.',
657
684
  owningStep: 'high-risk-callables',
658
685
  dependsOn: [A.verifyWaiverTemplates],
686
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
687
+ consumes: [A.copyWaiverTemplates, A.verifyWaiverTemplates, A.verifyV1TextFitsLimits],
659
688
  }),
660
689
  deleteStep(A.deleteV1GameLocations, {
661
690
  title: 'Remove the V1 venues',
@@ -663,6 +692,13 @@ export const MIGRATION_CUTOVER_MANIFEST = [
663
692
  owningStep: 'q-core',
664
693
  dependsOn: [A.verifyGameLocations, A.verifyV1Pictures],
665
694
  resumeKey: SINGLE_DOCUMENT,
695
+ consumes: [
696
+ A.copyGameLocations,
697
+ A.verifyGameLocations,
698
+ A.carryV1Pictures,
699
+ A.verifyV1Pictures,
700
+ A.verifyV1TextFitsLimits,
701
+ ],
666
702
  }),
667
703
  deleteStep(A.deleteV1AwardCatalog, {
668
704
  title: 'Remove the V1 award catalog',
@@ -675,42 +711,75 @@ export const MIGRATION_CUTOVER_MANIFEST = [
675
711
  A.verifyV1Pictures,
676
712
  ],
677
713
  resumeKey: SINGLE_DOCUMENT,
714
+ consumes: [
715
+ A.copyAwardDefinitions,
716
+ A.verifyAwardDefinitions,
717
+ A.carryV1Pictures,
718
+ A.verifyV1Pictures,
719
+ A.verifyV1TextFitsLimits,
720
+ ],
678
721
  }),
679
722
  deleteStep(A.deleteV1Users, {
680
723
  title: 'Delete the V1 user documents',
681
724
  summary: 'Each `users` document with its historical baselines.',
682
725
  owningStep: 'auth',
683
726
  dependsOn: [A.verifyUserProfiles, A.verifyHistoricalStats, A.verifyReservedDisplayNames],
727
+ maxPageSize: 200,
728
+ consumes: [
729
+ A.copyUserProfiles,
730
+ A.verifyUserProfiles,
731
+ A.copyHistoricalStats,
732
+ A.verifyHistoricalStats,
733
+ A.migratePublicUsers,
734
+ A.verifyPublicUsers,
735
+ A.verifyV1DisplayNamesUnique,
736
+ A.verifyV1TextFitsLimits,
737
+ ],
684
738
  }),
685
739
  deleteStep(A.deleteV1TeamInvites, {
686
740
  title: 'Delete the V1 invitations',
687
741
  summary: 'The `teamInvites` collection.',
688
742
  owningStep: 'high-risk-callables',
689
743
  dependsOn: [A.verifyTeamInvitations],
744
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
745
+ consumes: [A.copyTeamInvitations, A.verifyTeamInvitations],
690
746
  }),
691
747
  deleteStep(A.deleteV1JoinRequests, {
692
748
  title: 'Delete the V1 join requests',
693
749
  summary: 'The `joinRequests` collection.',
694
750
  owningStep: 'high-risk-callables',
695
751
  dependsOn: [A.verifyTeamJoinRequests],
752
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
753
+ consumes: [A.copyTeamJoinRequests, A.verifyTeamJoinRequests],
696
754
  }),
697
755
  deleteStep(A.deleteV1FreeAgentSignups, {
698
756
  title: 'Delete the V1 free-agent signups',
699
757
  summary: 'The `freeAgentSignups` collection, left-behind signups included.',
700
758
  owningStep: 'high-risk-callables',
701
759
  dependsOn: [A.verifyLeagueFreeAgents],
760
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
761
+ consumes: [A.copyLeagueFreeAgents, A.verifyLeagueFreeAgents],
702
762
  }),
703
763
  deleteStep(A.deleteV1TeamMembers, {
704
764
  title: 'Delete the V1 memberships',
705
765
  summary: 'The `teamMembers` collection.',
706
766
  owningStep: 'q-core',
707
767
  dependsOn: [A.verifyTeamMemberships],
768
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
769
+ consumes: [A.copyTeamMemberships, A.verifyTeamMemberships],
708
770
  }),
709
771
  deleteStep(A.deleteV1Teams, {
710
772
  title: 'Delete the V1 teams',
711
773
  summary: 'The `teams` collection; a team still holding a subcollection is reported and kept.',
712
774
  owningStep: 'q-core',
713
775
  dependsOn: [A.verifyLeagueTeams],
776
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
777
+ consumes: [
778
+ A.copyLeagueTeams,
779
+ A.verifyLeagueTeams,
780
+ A.verifyV1LeagueCapacity,
781
+ A.verifyV1TextFitsLimits,
782
+ ],
714
783
  }),
715
784
  {
716
785
  kind: 'executable',
@@ -720,10 +789,12 @@ export const MIGRATION_CUTOVER_MANIFEST = [
720
789
  destructive: true,
721
790
  paged: true,
722
791
  defaultPageSize: 100,
792
+ maxPageSize: 200,
723
793
  informational: false,
724
794
  idempotency: 'Removes a kept file’s download token; a file holding none is skipped. No file is moved or deleted.',
725
795
  resumeKey: 'The signed waivers by id, then the contracts; the resume key is the record path.',
726
796
  recovery: 'Run it again; a file whose token went is skipped.',
797
+ consumes: [],
727
798
  title: 'Revoke the V1 signature download links',
728
799
  summary: 'Each kept signature file loses the download token V1’s stored links carry, so those links stop resolving.',
729
800
  owningStep: 'uploads-and-media',
@@ -739,6 +810,8 @@ export const MIGRATION_CUTOVER_MANIFEST = [
739
810
  summary: 'The `waiverSignatures` records; the files stay, named by the copied records.',
740
811
  owningStep: 'uploads-and-media',
741
812
  dependsOn: [A.verifySignedWaivers],
813
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
814
+ consumes: [A.copySignedWaivers, A.verifySignedWaivers],
742
815
  }),
743
816
  deleteStep(A.deleteV1HardwareContracts, {
744
817
  title: 'Delete the V1 hardware contracts',
@@ -746,6 +819,12 @@ export const MIGRATION_CUTOVER_MANIFEST = [
746
819
  owningStep: 'high-risk-callables',
747
820
  dependsOn: [A.verifyHardwareLoanContracts],
748
821
  resumeKey: 'The V1 collections in turn, each by document id; the resume key is `{collection}/{id}`.',
822
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
823
+ consumes: [
824
+ A.copyHardwareLoanContracts,
825
+ A.verifyHardwareLoanContracts,
826
+ A.verifyV1HardwareContractIdsUnique,
827
+ ],
749
828
  }),
750
829
  deleteStep(A.deleteV1GameRosters, {
751
830
  title: 'Delete the V1 game rosters',
@@ -754,6 +833,14 @@ export const MIGRATION_CUTOVER_MANIFEST = [
754
833
  dependsOn: [A.verifyGameRosterPlayers, A.validateStats],
755
834
  resumeKey: 'The V1 games by document id; the resume key is the last game id.',
756
835
  defaultPageSize: 50,
836
+ maxPageSize: 50,
837
+ consumes: [
838
+ A.copyGameRosterPlayers,
839
+ A.verifyGameRosterPlayers,
840
+ A.copySportGames,
841
+ A.verifySportGames,
842
+ A.verifyGameStats,
843
+ ],
757
844
  }),
758
845
  deleteStep(A.deleteV1LeagueGames, {
759
846
  title: 'Delete the V1 games',
@@ -766,6 +853,15 @@ export const MIGRATION_CUTOVER_MANIFEST = [
766
853
  A.validateStats,
767
854
  A.deleteV1GameRosters,
768
855
  ],
856
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
857
+ consumes: [
858
+ A.copySportGames,
859
+ A.verifySportGames,
860
+ A.verifyGameStats,
861
+ A.copyGameRosterPlayers,
862
+ A.verifyGameRosterPlayers,
863
+ A.verifyV1LeagueCapacity,
864
+ ],
769
865
  }),
770
866
  deleteStep(A.deleteV1LeagueChats, {
771
867
  title: 'Delete the V1 league chats',
@@ -774,6 +870,8 @@ export const MIGRATION_CUTOVER_MANIFEST = [
774
870
  dependsOn: [A.checkpointV1FirestoreExport],
775
871
  resumeKey: 'The V1 leagues by document id; the resume key is the last league id, or `{leagueId}/unfinished` while a league holds more chats than one page deletes.',
776
872
  defaultPageSize: 50,
873
+ maxPageSize: 50,
874
+ consumes: [],
777
875
  }),
778
876
  deleteStep(A.deleteV1Leagues, {
779
877
  title: 'Delete the V1 leagues',
@@ -781,12 +879,24 @@ export const MIGRATION_CUTOVER_MANIFEST = [
781
879
  owningStep: 'q-core',
782
880
  dependsOn: [A.verifySportLeagues, A.verifyV1Pictures],
783
881
  orderedAfter: [A.verifyLeaguePlayerStats, A.deleteV1LeagueChats],
882
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
883
+ consumes: [
884
+ A.copySportLeagues,
885
+ A.verifySportLeagues,
886
+ A.verifyLeaguePlayerStats,
887
+ A.carryV1Pictures,
888
+ A.verifyV1Pictures,
889
+ A.verifyV1LeagueCapacity,
890
+ A.verifyV1TextFitsLimits,
891
+ ],
784
892
  }),
785
893
  deleteStep(A.deleteV1HallOfFame, {
786
894
  title: 'Delete the V1 hall of fame',
787
895
  summary: 'The `hallOfFame` collection, once every sport that keeps a hall of fame has its rebuilt document.',
788
896
  owningStep: 'stat-data-model',
789
897
  dependsOn: [A.verifySportHallOfFame],
898
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
899
+ consumes: [A.verifySportHallOfFame],
790
900
  }),
791
901
  deleteStep(A.deleteV1ValidationReports, {
792
902
  title: 'Delete the V1 validation reports',
@@ -794,12 +904,16 @@ export const MIGRATION_CUTOVER_MANIFEST = [
794
904
  owningStep: 'stat-data-model',
795
905
  dependsOn: [A.checkpointV1FirestoreExport],
796
906
  orderedAfter: [A.validateStats],
907
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
908
+ consumes: [],
797
909
  }),
798
910
  deleteStep(A.deleteV1AdminStats, {
799
911
  title: 'Delete the V1 dashboard counts',
800
912
  summary: 'The `adminStats` collection. Nothing is copied: the dashboard counts are counted live.',
801
913
  owningStep: 'q-core',
802
914
  dependsOn: [A.checkpointV1FirestoreExport],
915
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
916
+ consumes: [],
803
917
  }),
804
918
  verifyStep(A.verifyV1CommerceDiscardable, {
805
919
  title: 'Check the V1 store holds no purchase',
@@ -814,8 +928,9 @@ export const MIGRATION_CUTOVER_MANIFEST = [
814
928
  owningStep: 'high-risk-callables',
815
929
  dependsOn: [A.verifyV1CommerceDiscardable],
816
930
  resumeKey: 'The six store collections in turn, each by document id.',
931
+ maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
932
+ consumes: [A.verifyV1CommerceDiscardable],
817
933
  }),
818
- // ── After the cutover ──────────────────────────────────────────────────────────────────────────
819
934
  {
820
935
  kind: 'operatorCheckpoint',
821
936
  id: A.checkpointUnattachedPicturesReuploaded,
@@ -853,9 +968,7 @@ export const MIGRATION_CUTOVER_MANIFEST = [
853
968
  noReturnBoundary: 'The key revocation.',
854
969
  },
855
970
  ];
856
- /** Every step by its id. */
857
971
  export const MIGRATION_STEP_BY_ID = new Map(MIGRATION_CUTOVER_MANIFEST.map((step) => [step.id, step]));
858
- /** The steps of one kind, in cutover order. */
859
972
  export function migrationStepsOfKind(kind) {
860
973
  return MIGRATION_CUTOVER_MANIFEST.filter((step) => step.kind === kind);
861
974
  }