@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 +1 @@
1
- {"version":3,"file":"picture-aspects.d.ts","sourceRoot":"","sources":["../../src/media/picture-aspects.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,uDAAwD,CAAC;AACzF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,oGAAoG;AACpG,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;CAK4B,CAAC;AAE/D,6FAA6F;AAC7F,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAGhE"}
1
+ {"version":3,"file":"picture-aspects.d.ts","sourceRoot":"","sources":["../../src/media/picture-aspects.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,uDAAwD,CAAC;AACzF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;CAK4B,CAAC;AAE/D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAGhE"}
@@ -1,15 +1,10 @@
1
- // The shapes a picture is cropped to. Every picture kind has one: the browser's crop, the server's
2
- // processing, and every display of that kind all use it, from this one declaration, so a picture and
3
- // the frame it is shown in can never disagree.
4
1
  export const PICTURE_ASPECT_KEYS = ['square', 'landscape', 'classic', 'banner'];
5
- /** Each shape as whole numbers, width to height — the form a CSS `aspect-ratio` and "16:9" take. */
6
2
  export const PICTURE_ASPECT_RATIOS = {
7
3
  square: { width: 1, height: 1 },
8
4
  landscape: { width: 16, height: 9 },
9
5
  classic: { width: 4, height: 3 },
10
6
  banner: { width: 3, height: 1 },
11
7
  };
12
- /** The shape as one number, width over height — the form a crop or processing spec takes. */
13
8
  export function pictureAspectRatio(aspect) {
14
9
  const { width, height } = PICTURE_ASPECT_RATIOS[aspect];
15
10
  return width / height;
@@ -1 +1 @@
1
- {"version":3,"file":"picture-aspects.js","sourceRoot":"","sources":["../../src/media/picture-aspects.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,qGAAqG;AACrG,+CAA+C;AAE/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC;AAQzF,oGAAoG;AACpG,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IAC/B,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;IACnC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IAChC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;CAC6B,CAAC;AAE/D,6FAA6F;AAC7F,MAAM,UAAU,kBAAkB,CAAC,MAAqB;IACtD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,KAAK,GAAG,MAAM,CAAC;AACxB,CAAC","sourcesContent":["// The shapes a picture is cropped to. Every picture kind has one: the browser's crop, the server's\n// processing, and every display of that kind all use it, from this one declaration, so a picture and\n// the frame it is shown in can never disagree.\n\nexport const PICTURE_ASPECT_KEYS = ['square', 'landscape', 'classic', 'banner'] as const;\nexport type PictureAspect = (typeof PICTURE_ASPECT_KEYS)[number];\n\nexport interface PictureAspectRatio {\n readonly width: number;\n readonly height: number;\n}\n\n/** Each shape as whole numbers, width to height — the form a CSS `aspect-ratio` and \"16:9\" take. */\nexport const PICTURE_ASPECT_RATIOS = {\n square: { width: 1, height: 1 },\n landscape: { width: 16, height: 9 },\n classic: { width: 4, height: 3 },\n banner: { width: 3, height: 1 },\n} as const satisfies Record<PictureAspect, PictureAspectRatio>;\n\n/** The shape as one number, width over height — the form a crop or processing spec takes. */\nexport function pictureAspectRatio(aspect: PictureAspect): number {\n const { width, height } = PICTURE_ASPECT_RATIOS[aspect];\n return width / height;\n}\n"]}
1
+ {"version":3,"file":"picture-aspects.js","sourceRoot":"","sources":["../../src/media/picture-aspects.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC;AAQzF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IAC/B,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;IACnC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IAChC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;CAC6B,CAAC;AAE/D,MAAM,UAAU,kBAAkB,CAAC,MAAqB;IACtD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,KAAK,GAAG,MAAM,CAAC;AACxB,CAAC","sourcesContent":["export const PICTURE_ASPECT_KEYS = ['square', 'landscape', 'classic', 'banner'] as const;\nexport type PictureAspect = (typeof PICTURE_ASPECT_KEYS)[number];\n\nexport interface PictureAspectRatio {\n readonly width: number;\n readonly height: number;\n}\n\nexport const PICTURE_ASPECT_RATIOS = {\n square: { width: 1, height: 1 },\n landscape: { width: 16, height: 9 },\n classic: { width: 4, height: 3 },\n banner: { width: 3, height: 1 },\n} as const satisfies Record<PictureAspect, PictureAspectRatio>;\n\nexport function pictureAspectRatio(aspect: PictureAspect): number {\n const { width, height } = PICTURE_ASPECT_RATIOS[aspect];\n return width / height;\n}\n"]}
@@ -1,14 +1,8 @@
1
1
  import type { PictureVariantKey } from '../types/unions.js';
2
2
  export interface PictureUrlBuilderConfig {
3
- /** The origin serving the bucket's objects: Firebase Storage, or the local Storage emulator. */
4
3
  storageOrigin: string;
5
4
  bucket: string;
6
5
  }
7
6
  export type PictureUrlBuilder = (pictureId: string, variantKey: PictureVariantKey) => string;
8
- /**
9
- * The URL is the object's media endpoint with no download token, so it resolves only through a
10
- * public-read `storage.rules` grant on the picture prefix — which is what lets every viewer, signed
11
- * in or not, load it.
12
- */
13
7
  export declare function createPictureUrlBuilder(config: PictureUrlBuilderConfig): PictureUrlBuilder;
14
8
  //# sourceMappingURL=picture-url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"picture-url.d.ts","sourceRoot":"","sources":["../../src/media/picture-url.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,WAAW,uBAAuB;IACtC,gGAAgG;IAChG,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,KAAK,MAAM,CAAC;AAE7F;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAU1F"}
1
+ {"version":3,"file":"picture-url.d.ts","sourceRoot":"","sources":["../../src/media/picture-url.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,KAAK,MAAM,CAAC;AAE7F,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAU1F"}
@@ -1,13 +1,4 @@
1
- // Render-time picture URLs, pure and configuration-injected: q-core reads no environment, and the
2
- // app resolves its Storage origin and bucket once and builds one builder. A document stores picture
3
- // ids and never a URL; every render builds the URL from the id and the size it needs
4
- // (RULE-STD-MEDIA-101, RULE-STD-BACKEND-001).
5
1
  import { buildPictureObjectPath } from '../paths/storage-paths.js';
6
- /**
7
- * The URL is the object's media endpoint with no download token, so it resolves only through a
8
- * public-read `storage.rules` grant on the picture prefix — which is what lets every viewer, signed
9
- * in or not, load it.
10
- */
11
2
  export function createPictureUrlBuilder(config) {
12
3
  const origin = config.storageOrigin.replace(/\/+$/, '');
13
4
  const { bucket } = config;
@@ -1 +1 @@
1
- {"version":3,"file":"picture-url.js","sourceRoot":"","sources":["../../src/media/picture-url.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,oGAAoG;AACpG,qFAAqF;AACrF,8CAA8C;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAWnE;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAA+B;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE;QAC/B,MAAM,UAAU,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QACrF,OAAO,GAAG,MAAM,SAAS,MAAM,MAAM,UAAU,YAAY,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC","sourcesContent":["// Render-time picture URLs, pure and configuration-injected: q-core reads no environment, and the\n// app resolves its Storage origin and bucket once and builds one builder. A document stores picture\n// ids and never a URL; every render builds the URL from the id and the size it needs\n// (RULE-STD-MEDIA-101, RULE-STD-BACKEND-001).\n\nimport { buildPictureObjectPath } from '../paths/storage-paths.js';\nimport type { PictureVariantKey } from '../types/unions.js';\n\nexport interface PictureUrlBuilderConfig {\n /** The origin serving the bucket's objects: Firebase Storage, or the local Storage emulator. */\n storageOrigin: string;\n bucket: string;\n}\n\nexport type PictureUrlBuilder = (pictureId: string, variantKey: PictureVariantKey) => string;\n\n/**\n * The URL is the object's media endpoint with no download token, so it resolves only through a\n * public-read `storage.rules` grant on the picture prefix — which is what lets every viewer, signed\n * in or not, load it.\n */\nexport function createPictureUrlBuilder(config: PictureUrlBuilderConfig): PictureUrlBuilder {\n const origin = config.storageOrigin.replace(/\\/+$/, '');\n const { bucket } = config;\n if (!origin || !bucket) {\n throw new Error('createPictureUrlBuilder: storageOrigin and bucket are required');\n }\n return (pictureId, variantKey) => {\n const objectPath = encodeURIComponent(buildPictureObjectPath(pictureId, variantKey));\n return `${origin}/v0/b/${bucket}/o/${objectPath}?alt=media`;\n };\n}\n"]}
1
+ {"version":3,"file":"picture-url.js","sourceRoot":"","sources":["../../src/media/picture-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAUnE,MAAM,UAAU,uBAAuB,CAAC,MAA+B;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE;QAC/B,MAAM,UAAU,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QACrF,OAAO,GAAG,MAAM,SAAS,MAAM,MAAM,UAAU,YAAY,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { buildPictureObjectPath } from '../paths/storage-paths.js';\nimport type { PictureVariantKey } from '../types/unions.js';\n\nexport interface PictureUrlBuilderConfig {\n storageOrigin: string;\n bucket: string;\n}\n\nexport type PictureUrlBuilder = (pictureId: string, variantKey: PictureVariantKey) => string;\n\nexport function createPictureUrlBuilder(config: PictureUrlBuilderConfig): PictureUrlBuilder {\n const origin = config.storageOrigin.replace(/\\/+$/, '');\n const { bucket } = config;\n if (!origin || !bucket) {\n throw new Error('createPictureUrlBuilder: storageOrigin and bucket are required');\n }\n return (pictureId, variantKey) => {\n const objectPath = encodeURIComponent(buildPictureObjectPath(pictureId, variantKey));\n return `${origin}/v0/b/${bucket}/o/${objectPath}?alt=media`;\n };\n}\n"]}
@@ -1,9 +1,6 @@
1
1
  import type { FileOrigin } from './file-origins.js';
2
- /** The tray row's title for each origin's upload. */
3
2
  export declare const fileOriginRowLabel: Record<FileOrigin, string>;
4
- /** How long an upload row's time reads as relative ("5m ago") before it reads as a clock time. */
5
3
  export declare const UPLOAD_ROW_RELATIVE_TIME_CUTOFF_MS: number;
6
- /** An upload row's words for its time and its file's kind, for upload-ui's `createUploadDisplayFormatters`. */
7
4
  export declare const UPLOAD_ROW_DISPLAY_COPY: {
8
5
  readonly justNow: "just now";
9
6
  readonly minutesAgo: (minutes: number) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"upload-tray-display.d.ts","sourceRoot":"","sources":["../../src/media/upload-tray-display.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CASzD,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,kCAAkC,QAAqB,CAAC;AAErE,+GAA+G;AAC/G,eAAO,MAAM,uBAAuB;;mCAEZ,MAAM;+BACV,MAAM;iCACJ,MAAM;4BACX,MAAM,QAAQ,MAAM;;;;;;;CAE3B,CAAC"}
1
+ {"version":3,"file":"upload-tray-display.d.ts","sourceRoot":"","sources":["../../src/media/upload-tray-display.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAQzD,CAAC;AAEF,eAAO,MAAM,kCAAkC,QAAqB,CAAC;AAErE,eAAO,MAAM,uBAAuB;;mCAEZ,MAAM;+BACV,MAAM;iCACJ,MAAM;4BACX,MAAM,QAAQ,MAAM;;;;;;;CAE3B,CAAC"}
@@ -1,19 +1,13 @@
1
- // What an admin's upload tray shows for one upload row: what it was for, the file's kind, and when it
2
- // was accepted.
3
- /** The tray row's title for each origin's upload. */
4
1
  export const fileOriginRowLabel = {
5
2
  'league-picture': 'League picture',
6
3
  'team-picture': 'Team picture',
7
4
  'landing-picture': 'Landing picture',
8
5
  'location-picture': 'Venue picture',
9
6
  'award-badge': 'Award badge',
10
- // A signature never rides the upload tray: it is kept by its signing callable, with no upload row.
11
7
  'waiver-signature': 'Waiver signature',
12
8
  'hardware-signature': 'Hardware contract signature',
13
9
  };
14
- /** How long an upload row's time reads as relative ("5m ago") before it reads as a clock time. */
15
10
  export const UPLOAD_ROW_RELATIVE_TIME_CUTOFF_MS = 6 * 60 * 60 * 1000;
16
- /** An upload row's words for its time and its file's kind, for upload-ui's `createUploadDisplayFormatters`. */
17
11
  export const UPLOAD_ROW_DISPLAY_COPY = {
18
12
  justNow: 'just now',
19
13
  minutesAgo: (minutes) => `${minutes}m ago`,
@@ -1 +1 @@
1
- {"version":3,"file":"upload-tray-display.js","sourceRoot":"","sources":["../../src/media/upload-tray-display.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,gBAAgB;AAIhB,qDAAqD;AACrD,MAAM,CAAC,MAAM,kBAAkB,GAA+B;IAC5D,gBAAgB,EAAE,gBAAgB;IAClC,cAAc,EAAE,cAAc;IAC9B,iBAAiB,EAAE,iBAAiB;IACpC,kBAAkB,EAAE,eAAe;IACnC,aAAa,EAAE,aAAa;IAC5B,mGAAmG;IACnG,kBAAkB,EAAE,kBAAkB;IACtC,oBAAoB,EAAE,6BAA6B;CACpD,CAAC;AAEF,kGAAkG;AAClG,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAErE,+GAA+G;AAC/G,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,OAAO,OAAO;IAClD,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,OAAO;IAC5C,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,aAAa,IAAI,EAAE;IAClD,MAAM,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE;IAC1D,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;CACnE,CAAC","sourcesContent":["// What an admin's upload tray shows for one upload row: what it was for, the file's kind, and when it\n// was accepted.\n\nimport type { FileOrigin } from './file-origins.js';\n\n/** The tray row's title for each origin's upload. */\nexport const fileOriginRowLabel: Record<FileOrigin, string> = {\n 'league-picture': 'League picture',\n 'team-picture': 'Team picture',\n 'landing-picture': 'Landing picture',\n 'location-picture': 'Venue picture',\n 'award-badge': 'Award badge',\n // A signature never rides the upload tray: it is kept by its signing callable, with no upload row.\n 'waiver-signature': 'Waiver signature',\n 'hardware-signature': 'Hardware contract signature',\n};\n\n/** How long an upload row's time reads as relative (\"5m ago\") before it reads as a clock time. */\nexport const UPLOAD_ROW_RELATIVE_TIME_CUTOFF_MS = 6 * 60 * 60 * 1000;\n\n/** An upload row's words for its time and its file's kind, for upload-ui's `createUploadDisplayFormatters`. */\nexport const UPLOAD_ROW_DISPLAY_COPY = {\n justNow: 'just now',\n minutesAgo: (minutes: number) => `${minutes}m ago`,\n hoursAgo: (hours: number) => `${hours}h ago`,\n yesterdayAt: (time: string) => `Yesterday ${time}`,\n dateAt: (date: string, time: string) => `${date}, ${time}`,\n fileType: { image: 'Image', video: 'Video', audio: 'Audio', other: 'File' },\n} as const;\n"]}
1
+ {"version":3,"file":"upload-tray-display.js","sourceRoot":"","sources":["../../src/media/upload-tray-display.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAA+B;IAC5D,gBAAgB,EAAE,gBAAgB;IAClC,cAAc,EAAE,cAAc;IAC9B,iBAAiB,EAAE,iBAAiB;IACpC,kBAAkB,EAAE,eAAe;IACnC,aAAa,EAAE,aAAa;IAC5B,kBAAkB,EAAE,kBAAkB;IACtC,oBAAoB,EAAE,6BAA6B;CACpD,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAErE,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,OAAO,OAAO;IAClD,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,OAAO;IAC5C,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,aAAa,IAAI,EAAE;IAClD,MAAM,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE;IAC1D,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;CACnE,CAAC","sourcesContent":["import type { FileOrigin } from './file-origins.js';\n\nexport const fileOriginRowLabel: Record<FileOrigin, string> = {\n 'league-picture': 'League picture',\n 'team-picture': 'Team picture',\n 'landing-picture': 'Landing picture',\n 'location-picture': 'Venue picture',\n 'award-badge': 'Award badge',\n 'waiver-signature': 'Waiver signature',\n 'hardware-signature': 'Hardware contract signature',\n};\n\nexport const UPLOAD_ROW_RELATIVE_TIME_CUTOFF_MS = 6 * 60 * 60 * 1000;\n\nexport const UPLOAD_ROW_DISPLAY_COPY = {\n justNow: 'just now',\n minutesAgo: (minutes: number) => `${minutes}m ago`,\n hoursAgo: (hours: number) => `${hours}h ago`,\n yesterdayAt: (time: string) => `Yesterday ${time}`,\n dateAt: (date: string, time: string) => `${date}, ${time}`,\n fileType: { image: 'Image', video: 'Video', audio: 'Audio', other: 'File' },\n} as const;\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";
@@ -85,6 +89,5 @@ export declare const MIGRATION_ACTION_IDS: {
85
89
  readonly checkpointAbandonedRegistrationSweepEnabled: "checkpoint.abandonedRegistrationSweepEnabled";
86
90
  };
87
91
  export type MigrationActionId = (typeof MIGRATION_ACTION_IDS)[keyof typeof MIGRATION_ACTION_IDS];
88
- /** Every action id, for the wire schemas that name one. */
89
92
  export declare const MIGRATION_ACTION_ID_KEYS: [MigrationActionId, ...MigrationActionId[]];
90
93
  //# sourceMappingURL=action-ids.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"action-ids.d.ts","sourceRoot":"","sources":["../../src/migration-console/action-ids.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4IvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEjG,2DAA2D;AAC3D,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"}
@@ -1,12 +1,4 @@
1
- // The one declaration of every cutover action id (RULE-STD-ENG-002). The manifest, the console's callables
2
- // and screen, and every delete gate name an action by the id declared here — never by a string
3
- // literal at the call site, where a typo is a gate that silently never matches.
4
- //
5
- // An id is declared even before its action exists: a destructive core requires its verifications
6
- // by id, so it refuses to run until each one exists and has passed — failing closed, rather than
7
- // resting on a precondition written in prose that nothing enforces.
8
1
  export const MIGRATION_ACTION_IDS = {
9
- // Accounts, identity, and global roles.
10
2
  copyUserProfiles: 'copy.userProfiles',
11
3
  copyHistoricalStats: 'copy.historicalStats',
12
4
  deriveReservedDisplayNames: 'derive.reservedDisplayNames',
@@ -24,15 +16,11 @@ export const MIGRATION_ACTION_IDS = {
24
16
  // until those copies are verified complete, every ghost reads as unreferenced.
25
17
  verifyTeamMemberships: 'verify.teamMemberships',
26
18
  verifyGameRosterPlayers: 'verify.gameRosterPlayers',
27
- // Teams, memberships, and game rosters.
28
19
  copyLeagueTeams: 'copy.leagueTeams',
29
20
  verifyLeagueTeams: 'verify.leagueTeams',
30
21
  deleteV1Teams: 'delete.v1Teams',
31
22
  copyTeamMemberships: 'copy.teamMemberships',
32
23
  deleteV1TeamMembers: 'delete.v1TeamMembers',
33
- // The ways onto a team. Each copy reads the copied `teamMemberships` to close a pending invitation
34
- // or request its player already answered by joining, or to leave out a signup joining left behind,
35
- // so each runs after `copy.teamMemberships`.
36
24
  copyTeamInvitations: 'copy.teamInvitations',
37
25
  verifyTeamInvitations: 'verify.teamInvitations',
38
26
  deleteV1TeamInvites: 'delete.v1TeamInvites',
@@ -44,44 +32,29 @@ export const MIGRATION_ACTION_IDS = {
44
32
  deleteV1FreeAgentSignups: 'delete.v1FreeAgentSignups',
45
33
  copyGameRosterPlayers: 'copy.gameRosterPlayers',
46
34
  deleteV1GameRosters: 'delete.v1GameRosters',
47
- // The games open at the cutover, reconciled once against the copied memberships. It removes the
48
- // stale entries a copied roster holds, so it waits for the memberships and the game stats — which
49
- // pin an entry holding a recorded stat — to be copied and verified.
35
+ // It removes the stale entries a copied roster holds, so it waits for the memberships and the
36
+ // game stats — which pin an entry holding a recorded stat — to be copied and verified.
50
37
  reconcileOpenGameRosters: 'reconcile.openGameRosters',
51
38
  verifyGameStats: 'verify.gameStats',
52
- // Informational: each user whose V1 league total differs from the sum of their rebuilt per-membership
53
- // rows. It gates nothing; a summary is rebuilt by design.
54
39
  verifyLeaguePlayerStats: 'verify.leaguePlayerStats',
55
- // Games. `copy.sportGames` is the one reader of each V1 game, writing its schedule fields and its
56
- // stats documents together; the V1 game document goes last, after its roster.
57
40
  copySportGames: 'copy.sportGames',
58
- // A recorded stat line no roster entry or play places: the admin names its team, and the game's
59
- // copy runs again.
60
41
  resolveUnrosteredStatLine: 'resolve.unrosteredStatLine',
61
42
  verifySportGames: 'verify.sportGames',
62
43
  deleteV1LeagueGames: 'delete.v1LeagueGames',
63
- // Signed waivers: the records, and their signature files, which stay where V1 put them.
64
44
  copySignedWaivers: 'copy.signedWaivers',
65
45
  verifySignedWaivers: 'verify.signedWaivers',
66
46
  verifySignatureFilesResolvable: 'verify.signatureFilesResolvable',
67
47
  revokeV1SignatureDownloadTokens: 'revoke.v1SignatureDownloadTokens',
68
48
  deleteV1WaiverSignatures: 'delete.v1WaiverSignatures',
69
- // Hardware loan contracts: the records, and their signature files, which stay where V1 put them.
70
- // The two signature-file actions above walk the contracts after the waivers.
71
49
  copyHardwareLoanContracts: 'copy.hardwareLoanContracts',
72
50
  verifyHardwareLoanContracts: 'verify.hardwareLoanContracts',
73
51
  deleteV1HardwareContracts: 'delete.v1HardwareContracts',
74
- // Leagues.
75
52
  copySportLeagues: 'copy.sportLeagues',
76
53
  verifySportLeagues: 'verify.sportLeagues',
77
54
  deleteV1Leagues: 'delete.v1Leagues',
78
- // The parked chat documents under a V1 league, which keep the league alive until they go.
79
55
  deleteV1LeagueChats: 'delete.v1LeagueChats',
80
- // The V1 league, landing, venue, and award badge images, fed through the upload pipeline. The
81
- // verification is required by every V1 delete whose documents the carry reads images from.
82
56
  carryV1Pictures: 'carry.v1Pictures',
83
57
  verifyV1Pictures: 'verify.v1Pictures',
84
- // App configuration: `landing/base` splits into the three `_appConfig` documents.
85
58
  copyAppConfig: 'copy.appConfig',
86
59
  copyLandingPageConfig: 'copy.landingPageConfig',
87
60
  copyStatsBeacon: 'copy.statsBeacon',
@@ -89,47 +62,37 @@ export const MIGRATION_ACTION_IDS = {
89
62
  verifyLandingPageConfig: 'verify.landingPageConfig',
90
63
  verifyStatsBeacon: 'verify.statsBeacon',
91
64
  deleteV1LandingBase: 'delete.v1LandingBase',
92
- // Waiver templates, each carried with its wording as version 1.
93
65
  copyWaiverTemplates: 'copy.waiverTemplates',
94
66
  verifyWaiverTemplates: 'verify.waiverTemplates',
95
67
  deleteV1Waivers: 'delete.v1Waivers',
96
- // The award catalog: the `landing/admin` awards array becomes one document per award, its badge
97
- // carried by `carry.v1Pictures`.
98
68
  copyAwardDefinitions: 'copy.awardDefinitions',
99
69
  verifyAwardDefinitions: 'verify.awardDefinitions',
100
70
  deleteV1AwardCatalog: 'delete.v1AwardCatalog',
101
- // Game locations: the `landing/admin` locations array becomes one document per venue.
102
71
  copyGameLocations: 'copy.gameLocations',
103
72
  verifyGameLocations: 'verify.gameLocations',
104
73
  deleteV1GameLocations: 'delete.v1GameLocations',
105
- // The admin dashboard counts are counted live, never stored; the V1 collection is deleted.
106
74
  deleteV1AdminStats: 'delete.v1AdminStats',
107
- // The store and team payments are deleted, not copied, once nothing in them is a completed
108
- // purchase.
109
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',
110
82
  deleteV1Commerce: 'delete.v1Commerce',
111
- // The derived statistics, rebuilt from the copied games by the Fix stats actions, then validated.
112
- // The console records each run the operator makes from the Stats group; it never runs a second
113
- // calculator of its own.
114
83
  rebuildLeagueStats: 'rebuild.leagueStats',
115
84
  rebuildLifetimeStats: 'rebuild.lifetimeStats',
116
85
  rebuildSportHallOfFame: 'rebuild.sportHallOfFame',
117
86
  validateStats: 'validate.stats',
118
- // The V1 hall of fame is rebuilt, never copied: its delete waits for the rebuilt documents.
119
87
  verifySportHallOfFame: 'verify.sportHallOfFame',
120
88
  deleteV1HallOfFame: 'delete.v1HallOfFame',
121
- // V1 validation reports describe V1 aggregates at a past moment; nothing is copied.
122
89
  deleteV1ValidationReports: 'delete.v1ValidationReports',
123
- // The console's own marker: from here on the product owns every destination.
124
90
  recordCutoverLive: 'record.cutoverLive',
125
- // Operator checkpoints — external work the app cannot perform, recorded with its evidence.
126
91
  checkpointV1FirestoreExport: 'checkpoint.v1FirestoreExport',
127
92
  checkpointPaymentCredentialsRetired: 'checkpoint.paymentCredentialsRetired',
128
93
  checkpointServiceAccountKeyRevoked: 'checkpoint.serviceAccountKeyRevoked',
129
94
  checkpointUnattachedPicturesReuploaded: 'checkpoint.unattachedPicturesReuploaded',
130
- // The gate the abandoned-registration sweep reads: it deletes nothing until this is recorded.
131
95
  checkpointAbandonedRegistrationSweepEnabled: 'checkpoint.abandonedRegistrationSweepEnabled',
132
96
  };
133
- /** Every action id, for the wire schemas that name one. */
134
97
  export const MIGRATION_ACTION_ID_KEYS = Object.values(MIGRATION_ACTION_IDS);
135
98
  //# sourceMappingURL=action-ids.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"action-ids.js","sourceRoot":"","sources":["../../src/migration-console/action-ids.ts"],"names":[],"mappings":"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","sourcesContent":["// The one declaration of every cutover action id (RULE-STD-ENG-002). The manifest, the console's callables\n// and screen, and every delete gate name an action by the id declared here — never by a string\n// literal at the call site, where a typo is a gate that silently never matches.\n//\n// An id is declared even before its action exists: a destructive core requires its verifications\n// by id, so it refuses to run until each one exists and has passed — failing closed, rather than\n// resting on a precondition written in prose that nothing enforces.\n\nexport const MIGRATION_ACTION_IDS = {\n // Accounts, identity, and global roles.\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 // Teams, memberships, and game rosters.\n copyLeagueTeams: 'copy.leagueTeams',\n verifyLeagueTeams: 'verify.leagueTeams',\n deleteV1Teams: 'delete.v1Teams',\n copyTeamMemberships: 'copy.teamMemberships',\n deleteV1TeamMembers: 'delete.v1TeamMembers',\n // The ways onto a team. Each copy reads the copied `teamMemberships` to close a pending invitation\n // or request its player already answered by joining, or to leave out a signup joining left behind,\n // so each runs after `copy.teamMemberships`.\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 // The games open at the cutover, reconciled once against the copied memberships. It removes the\n // stale entries a copied roster holds, so it waits for the memberships and the game stats — which\n // pin an entry holding a recorded stat — to be copied and verified.\n reconcileOpenGameRosters: 'reconcile.openGameRosters',\n verifyGameStats: 'verify.gameStats',\n // Informational: each user whose V1 league total differs from the sum of their rebuilt per-membership\n // rows. It gates nothing; a summary is rebuilt by design.\n verifyLeaguePlayerStats: 'verify.leaguePlayerStats',\n\n // Games. `copy.sportGames` is the one reader of each V1 game, writing its schedule fields and its\n // stats documents together; the V1 game document goes last, after its roster.\n copySportGames: 'copy.sportGames',\n // A recorded stat line no roster entry or play places: the admin names its team, and the game's\n // copy runs again.\n resolveUnrosteredStatLine: 'resolve.unrosteredStatLine',\n verifySportGames: 'verify.sportGames',\n deleteV1LeagueGames: 'delete.v1LeagueGames',\n\n // Signed waivers: the records, and their signature files, which stay where V1 put them.\n copySignedWaivers: 'copy.signedWaivers',\n verifySignedWaivers: 'verify.signedWaivers',\n verifySignatureFilesResolvable: 'verify.signatureFilesResolvable',\n revokeV1SignatureDownloadTokens: 'revoke.v1SignatureDownloadTokens',\n deleteV1WaiverSignatures: 'delete.v1WaiverSignatures',\n\n // Hardware loan contracts: the records, and their signature files, which stay where V1 put them.\n // The two signature-file actions above walk the contracts after the waivers.\n copyHardwareLoanContracts: 'copy.hardwareLoanContracts',\n verifyHardwareLoanContracts: 'verify.hardwareLoanContracts',\n deleteV1HardwareContracts: 'delete.v1HardwareContracts',\n\n // Leagues.\n copySportLeagues: 'copy.sportLeagues',\n verifySportLeagues: 'verify.sportLeagues',\n deleteV1Leagues: 'delete.v1Leagues',\n // The parked chat documents under a V1 league, which keep the league alive until they go.\n deleteV1LeagueChats: 'delete.v1LeagueChats',\n\n // The V1 league, landing, venue, and award badge images, fed through the upload pipeline. The\n // verification is required by every V1 delete whose documents the carry reads images from.\n carryV1Pictures: 'carry.v1Pictures',\n verifyV1Pictures: 'verify.v1Pictures',\n\n // App configuration: `landing/base` splits into the three `_appConfig` documents.\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 // Waiver templates, each carried with its wording as version 1.\n copyWaiverTemplates: 'copy.waiverTemplates',\n verifyWaiverTemplates: 'verify.waiverTemplates',\n deleteV1Waivers: 'delete.v1Waivers',\n\n // The award catalog: the `landing/admin` awards array becomes one document per award, its badge\n // carried by `carry.v1Pictures`.\n copyAwardDefinitions: 'copy.awardDefinitions',\n verifyAwardDefinitions: 'verify.awardDefinitions',\n deleteV1AwardCatalog: 'delete.v1AwardCatalog',\n\n // Game locations: the `landing/admin` locations array becomes one document per venue.\n copyGameLocations: 'copy.gameLocations',\n verifyGameLocations: 'verify.gameLocations',\n deleteV1GameLocations: 'delete.v1GameLocations',\n\n // The admin dashboard counts are counted live, never stored; the V1 collection is deleted.\n deleteV1AdminStats: 'delete.v1AdminStats',\n\n // The store and team payments are deleted, not copied, once nothing in them is a completed\n // purchase.\n verifyV1CommerceDiscardable: 'verify.v1CommerceDiscardable',\n deleteV1Commerce: 'delete.v1Commerce',\n\n // The derived statistics, rebuilt from the copied games by the Fix stats actions, then validated.\n // The console records each run the operator makes from the Stats group; it never runs a second\n // calculator of its own.\n rebuildLeagueStats: 'rebuild.leagueStats',\n rebuildLifetimeStats: 'rebuild.lifetimeStats',\n rebuildSportHallOfFame: 'rebuild.sportHallOfFame',\n validateStats: 'validate.stats',\n // The V1 hall of fame is rebuilt, never copied: its delete waits for the rebuilt documents.\n verifySportHallOfFame: 'verify.sportHallOfFame',\n deleteV1HallOfFame: 'delete.v1HallOfFame',\n // V1 validation reports describe V1 aggregates at a past moment; nothing is copied.\n deleteV1ValidationReports: 'delete.v1ValidationReports',\n\n // The console's own marker: from here on the product owns every destination.\n recordCutoverLive: 'record.cutoverLive',\n\n // Operator checkpoints — external work the app cannot perform, recorded with its evidence.\n checkpointV1FirestoreExport: 'checkpoint.v1FirestoreExport',\n checkpointPaymentCredentialsRetired: 'checkpoint.paymentCredentialsRetired',\n checkpointServiceAccountKeyRevoked: 'checkpoint.serviceAccountKeyRevoked',\n checkpointUnattachedPicturesReuploaded: 'checkpoint.unattachedPicturesReuploaded',\n // The gate the abandoned-registration sweep reads: it deletes nothing until this is recorded.\n checkpointAbandonedRegistrationSweepEnabled: 'checkpoint.abandonedRegistrationSweepEnabled',\n} as const;\n\nexport type MigrationActionId = (typeof MIGRATION_ACTION_IDS)[keyof typeof MIGRATION_ACTION_IDS];\n\n/** Every action id, for the wire schemas that name one. */\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"]}
@@ -2,19 +2,15 @@ import type { MigrationActionId } from './action-ids.js';
2
2
  import type { RegisteredCollectionPath } from '../doc-schemas/registry.js';
3
3
  export declare const MIGRATION_STEP_KIND_KEYS: readonly ["executable", "productControl", "operatorCheckpoint", "cutoverMarker"];
4
4
  export type MigrationStepKind = (typeof MIGRATION_STEP_KIND_KEYS)[number];
5
- /** What an executable action's pages return: documents written, or records compared. */
6
5
  export declare const MIGRATION_RESULT_KIND_KEYS: readonly ["write", "verification"];
7
6
  export type MigrationResultKind = (typeof MIGRATION_RESULT_KIND_KEYS)[number];
8
- /** Where a product control's completion is proven from. */
9
7
  export declare const MIGRATION_CONTROL_EVIDENCE_KEYS: readonly ["statsOperation", "statsValidationReport"];
10
8
  export type MigrationControlEvidence = (typeof MIGRATION_CONTROL_EVIDENCE_KEYS)[number];
11
- /** The step folder under the migration plan that owns a step's correctness. */
12
9
  export declare const MIGRATION_OWNING_STEP_KEYS: readonly ["auth", "q-core", "stat-data-model", "high-risk-callables", "uploads-and-media", "query-and-invalidation", "secret-management", "migration-console"];
13
10
  export type MigrationOwningStep = (typeof MIGRATION_OWNING_STEP_KEYS)[number];
14
11
  interface MigrationStepBase {
15
12
  readonly id: MigrationActionId;
16
13
  readonly title: string;
17
- /** What the step changes or proves, in a sentence or two the operator reads before running it. */
18
14
  readonly summary: string;
19
15
  readonly owningStep: MigrationOwningStep;
20
16
  readonly dependsOn: readonly MigrationActionId[];
@@ -22,40 +18,29 @@ interface MigrationStepBase {
22
18
  }
23
19
  export interface ExecutableMigrationStep extends MigrationStepBase {
24
20
  readonly kind: 'executable';
25
- /** The callable that runs one page of it. */
26
21
  readonly callable: string;
27
22
  readonly resultKind: MigrationResultKind;
28
- /** Whether it removes V1 data or revokes access — run only once its gates have passed. */
29
23
  readonly destructive: boolean;
30
- /** False for an action that is one bounded call, never paged. */
31
24
  readonly paged: boolean;
32
- /** The page size the console proposes; each core refuses a page larger than it can commit. */
33
25
  readonly defaultPageSize: number;
34
- /** A verification that informs the rehearsal and gates nothing. */
26
+ readonly maxPageSize: number;
35
27
  readonly informational: boolean;
36
- /** Why replaying a page, or the whole action, cannot duplicate an effect. */
37
28
  readonly idempotency: string;
38
- /** The deterministic order it pages in, and what its resume key names. */
39
29
  readonly resumeKey: string;
40
- /** The safe response after a partial run. */
41
30
  readonly recovery: string;
31
+ readonly consumes: readonly MigrationActionId[];
42
32
  }
43
33
  export interface ProductControlMigrationStep extends MigrationStepBase {
44
34
  readonly kind: 'productControl';
45
- /** The product callable the operator runs. */
46
35
  readonly callable: string;
47
- /** Where in the product the operator runs it, and with what scope. */
48
36
  readonly instructions: string;
49
37
  readonly evidence: MigrationControlEvidence;
50
- /** The documents it rebuilds, as `COLLECTION_SCHEMAS` templates: a destination no copy writes. */
51
38
  readonly destinations: readonly RegisteredCollectionPath[];
52
39
  }
53
40
  export interface OperatorCheckpointMigrationStep extends MigrationStepBase {
54
41
  readonly kind: 'operatorCheckpoint';
55
42
  readonly instructions: string;
56
- /** What the operator records as proof before the next step unlocks. */
57
43
  readonly evidence: string;
58
- /** The point past which the external action cannot be undone, or null when none exists. */
59
44
  readonly noReturnBoundary: string | null;
60
45
  }
61
46
  export interface CutoverMarkerMigrationStep extends MigrationStepBase {
@@ -64,20 +49,13 @@ export interface CutoverMarkerMigrationStep extends MigrationStepBase {
64
49
  readonly noReturnBoundary: string;
65
50
  }
66
51
  export type MigrationStep = ExecutableMigrationStep | ProductControlMigrationStep | OperatorCheckpointMigrationStep | CutoverMarkerMigrationStep;
67
- /** The callable that records a product control's run, checking its evidence. */
68
52
  export declare const RECORD_MIGRATION_CONTROL_RUN_CALLABLE = "adminRecordMigrationControlRun";
69
- /** The callable that records an operator checkpoint with its evidence. */
70
53
  export declare const RECORD_MIGRATION_CHECKPOINT_CALLABLE = "adminRecordMigrationCheckpoint";
71
- /** The callable that records the cutover. */
72
54
  export declare const RECORD_MIGRATION_CUTOVER_CALLABLE = "adminRecordMigrationCutover";
73
- /** The callable that reads the console: the cutover marker, the lock, and every step's state. */
74
55
  export declare const GET_MIGRATION_CONSOLE_CALLABLE = "adminGetMigrationConsole";
75
- /** The console's callable name for an executable action: `admin` + its verb and its object. */
76
56
  export declare function migrationActionCallableName(id: MigrationActionId): string;
77
57
  export declare const MIGRATION_CUTOVER_MANIFEST: readonly MigrationStep[];
78
- /** Every step by its id. */
79
58
  export declare const MIGRATION_STEP_BY_ID: ReadonlyMap<MigrationActionId, MigrationStep>;
80
- /** The steps of one kind, in cutover order. */
81
59
  export declare function migrationStepsOfKind<K extends MigrationStepKind>(kind: K): Extract<MigrationStep, {
82
60
  kind: K;
83
61
  }>[];
@@ -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":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAI3E,eAAO,MAAM,wBAAwB,kFAK3B,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,eAAO,MAAM,0BAA0B,oCAAqC,CAAC;AAC7E,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,eAAO,MAAM,+BAA+B,sDAAuD,CAAC;AACpG,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;AAExF,eAAO,MAAM,0BAA0B,gKAS7B,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACjD;AAED,MAAM,WAAW,2BAA4B,SAAQ,iBAAiB;IACpE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAC5D;AAED,MAAM,WAAW,+BAAgC,SAAQ,iBAAiB;IACxE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB;IACnE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,GACrB,uBAAuB,GACvB,2BAA2B,GAC3B,+BAA+B,GAC/B,0BAA0B,CAAC;AAE/B,eAAO,MAAM,qCAAqC,mCAAmC,CAAC;AACtF,eAAO,MAAM,oCAAoC,mCAAmC,CAAC;AACrF,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAC/E,eAAO,MAAM,8BAA8B,6BAA6B,CAAC;AAEzE,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM,CAIzE;AAkJD,eAAO,MAAM,0BAA0B,EAAE,SAAS,aAAa,EAm5B9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,iBAAiB,EAAE,aAAa,CAE9E,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,iBAAiB,EAC9D,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,aAAa,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,EAAE,CAIvC"}