@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.
- package/dist/constants/admin-views.d.ts.map +1 -1
- package/dist/constants/admin-views.js +0 -3
- package/dist/constants/admin-views.js.map +1 -1
- package/dist/constants/business.d.ts.map +1 -1
- package/dist/constants/business.js +0 -52
- package/dist/constants/business.js.map +1 -1
- package/dist/constants/deployment.d.ts +0 -2
- package/dist/constants/deployment.d.ts.map +1 -1
- package/dist/constants/deployment.js +0 -2
- package/dist/constants/deployment.js.map +1 -1
- package/dist/constants/media.d.ts.map +1 -1
- package/dist/constants/media.js +4 -30
- package/dist/constants/media.js.map +1 -1
- package/dist/constants/scheduled-jobs.d.ts +0 -25
- package/dist/constants/scheduled-jobs.d.ts.map +1 -1
- package/dist/constants/scheduled-jobs.js +0 -26
- package/dist/constants/scheduled-jobs.js.map +1 -1
- package/dist/constants/sports.d.ts +1 -0
- package/dist/constants/sports.d.ts.map +1 -1
- package/dist/constants/sports.js +4 -25
- package/dist/constants/sports.js.map +1 -1
- package/dist/constants/storage-keys.d.ts +0 -38
- package/dist/constants/storage-keys.d.ts.map +1 -1
- package/dist/constants/storage-keys.js +0 -41
- package/dist/constants/storage-keys.js.map +1 -1
- package/dist/constants/telemetry.d.ts +0 -3
- package/dist/constants/telemetry.d.ts.map +1 -1
- package/dist/constants/telemetry.js +2 -11
- package/dist/constants/telemetry.js.map +1 -1
- package/dist/doc-schemas/admin-notifications.d.ts +1 -2
- package/dist/doc-schemas/admin-notifications.d.ts.map +1 -1
- package/dist/doc-schemas/admin-notifications.js +0 -41
- package/dist/doc-schemas/admin-notifications.js.map +1 -1
- package/dist/doc-schemas/aggregate-stats.d.ts.map +1 -1
- package/dist/doc-schemas/aggregate-stats.js +0 -35
- package/dist/doc-schemas/aggregate-stats.js.map +1 -1
- package/dist/doc-schemas/atoms.d.ts +0 -17
- package/dist/doc-schemas/atoms.d.ts.map +1 -1
- package/dist/doc-schemas/atoms.js +0 -36
- package/dist/doc-schemas/atoms.js.map +1 -1
- package/dist/doc-schemas/audit-event.d.ts +2 -0
- package/dist/doc-schemas/audit-event.d.ts.map +1 -1
- package/dist/doc-schemas/audit-event.js +0 -8
- package/dist/doc-schemas/audit-event.js.map +1 -1
- package/dist/doc-schemas/award-group-grant.d.ts +2 -8
- package/dist/doc-schemas/award-group-grant.d.ts.map +1 -1
- package/dist/doc-schemas/award-group-grant.js +0 -25
- package/dist/doc-schemas/award-group-grant.js.map +1 -1
- package/dist/doc-schemas/catalogs.d.ts.map +1 -1
- package/dist/doc-schemas/catalogs.js +0 -12
- package/dist/doc-schemas/catalogs.js.map +1 -1
- package/dist/doc-schemas/firestore-primitives.d.ts.map +1 -1
- package/dist/doc-schemas/firestore-primitives.js +0 -5
- package/dist/doc-schemas/firestore-primitives.js.map +1 -1
- package/dist/doc-schemas/gallery.d.ts.map +1 -1
- package/dist/doc-schemas/gallery.js +9 -18
- package/dist/doc-schemas/gallery.js.map +1 -1
- package/dist/doc-schemas/game-location.d.ts.map +1 -1
- package/dist/doc-schemas/game-location.js +2 -11
- package/dist/doc-schemas/game-location.js.map +1 -1
- package/dist/doc-schemas/game-stat-history.d.ts.map +1 -1
- package/dist/doc-schemas/game-stat-history.js +2 -11
- package/dist/doc-schemas/game-stat-history.js.map +1 -1
- package/dist/doc-schemas/game-stats.d.ts.map +1 -1
- package/dist/doc-schemas/game-stats.js +0 -56
- package/dist/doc-schemas/game-stats.js.map +1 -1
- package/dist/doc-schemas/league-team.d.ts.map +1 -1
- package/dist/doc-schemas/league-team.js +6 -29
- package/dist/doc-schemas/league-team.js.map +1 -1
- package/dist/doc-schemas/membership-roster-sync.d.ts.map +1 -1
- package/dist/doc-schemas/membership-roster-sync.js +0 -17
- package/dist/doc-schemas/membership-roster-sync.js.map +1 -1
- package/dist/doc-schemas/migration-console.d.ts +21 -15
- package/dist/doc-schemas/migration-console.d.ts.map +1 -1
- package/dist/doc-schemas/migration-console.js +0 -32
- package/dist/doc-schemas/migration-console.js.map +1 -1
- package/dist/doc-schemas/pending-media.d.ts.map +1 -1
- package/dist/doc-schemas/pending-media.js +8 -20
- package/dist/doc-schemas/pending-media.js.map +1 -1
- package/dist/doc-schemas/picture-retirement.d.ts.map +1 -1
- package/dist/doc-schemas/picture-retirement.js +8 -13
- package/dist/doc-schemas/picture-retirement.js.map +1 -1
- package/dist/doc-schemas/publicUser.d.ts.map +1 -1
- package/dist/doc-schemas/publicUser.js +0 -5
- package/dist/doc-schemas/publicUser.js.map +1 -1
- package/dist/doc-schemas/registration-start.d.ts.map +1 -1
- package/dist/doc-schemas/registration-start.js +2 -5
- package/dist/doc-schemas/registration-start.js.map +1 -1
- package/dist/doc-schemas/registry.d.ts +25 -14
- package/dist/doc-schemas/registry.d.ts.map +1 -1
- package/dist/doc-schemas/registry.js +0 -10
- package/dist/doc-schemas/registry.js.map +1 -1
- package/dist/doc-schemas/reserved-display-name.d.ts.map +1 -1
- package/dist/doc-schemas/reserved-display-name.js +0 -5
- package/dist/doc-schemas/reserved-display-name.js.map +1 -1
- package/dist/doc-schemas/sport-game.d.ts.map +1 -1
- package/dist/doc-schemas/sport-game.js +1 -29
- package/dist/doc-schemas/sport-game.js.map +1 -1
- package/dist/doc-schemas/sport-league.d.ts +0 -9
- package/dist/doc-schemas/sport-league.d.ts.map +1 -1
- package/dist/doc-schemas/sport-league.js +4 -26
- package/dist/doc-schemas/sport-league.js.map +1 -1
- package/dist/doc-schemas/stats-operation.d.ts +22 -18
- package/dist/doc-schemas/stats-operation.d.ts.map +1 -1
- package/dist/doc-schemas/stats-operation.js +7 -44
- package/dist/doc-schemas/stats-operation.js.map +1 -1
- package/dist/doc-schemas/status-reconcile-queue.d.ts +0 -6
- package/dist/doc-schemas/status-reconcile-queue.d.ts.map +1 -1
- package/dist/doc-schemas/status-reconcile-queue.js +0 -13
- package/dist/doc-schemas/status-reconcile-queue.js.map +1 -1
- package/dist/doc-schemas/sweep-state.d.ts.map +1 -1
- package/dist/doc-schemas/sweep-state.js +4 -20
- package/dist/doc-schemas/sweep-state.js.map +1 -1
- package/dist/doc-schemas/system.d.ts.map +1 -1
- package/dist/doc-schemas/system.js +1 -27
- package/dist/doc-schemas/system.js.map +1 -1
- package/dist/doc-schemas/team-membership.d.ts.map +1 -1
- package/dist/doc-schemas/team-membership.js +0 -10
- package/dist/doc-schemas/team-membership.js.map +1 -1
- package/dist/doc-schemas/user-profile.d.ts +0 -1
- package/dist/doc-schemas/user-profile.d.ts.map +1 -1
- package/dist/doc-schemas/user-profile.js +0 -28
- package/dist/doc-schemas/user-profile.js.map +1 -1
- package/dist/doc-schemas/waiver-template.d.ts.map +1 -1
- package/dist/doc-schemas/waiver-template.js +4 -25
- package/dist/doc-schemas/waiver-template.js.map +1 -1
- package/dist/doc-schemas/waivers-and-hardware.d.ts.map +1 -1
- package/dist/doc-schemas/waivers-and-hardware.js +0 -20
- package/dist/doc-schemas/waivers-and-hardware.js.map +1 -1
- package/dist/domain-events/domain-events.d.ts.map +1 -1
- package/dist/domain-events/domain-events.js +0 -67
- package/dist/domain-events/domain-events.js.map +1 -1
- package/dist/ids/award-grant-ids.d.ts.map +1 -1
- package/dist/ids/award-grant-ids.js +0 -7
- package/dist/ids/award-grant-ids.js.map +1 -1
- package/dist/ids/compound-ids.d.ts.map +1 -1
- package/dist/ids/compound-ids.js +0 -7
- package/dist/ids/compound-ids.js.map +1 -1
- package/dist/ids/minted-ids.d.ts.map +1 -1
- package/dist/ids/minted-ids.js +4 -14
- package/dist/ids/minted-ids.js.map +1 -1
- package/dist/ids/notification-ids.d.ts.map +1 -1
- package/dist/ids/notification-ids.js +0 -15
- package/dist/ids/notification-ids.js.map +1 -1
- package/dist/ids/picture-ids.d.ts +0 -5
- package/dist/ids/picture-ids.d.ts.map +1 -1
- package/dist/ids/picture-ids.js +0 -11
- package/dist/ids/picture-ids.js.map +1 -1
- package/dist/ids/stat-event-ids.d.ts +0 -6
- package/dist/ids/stat-event-ids.d.ts.map +1 -1
- package/dist/ids/stat-event-ids.js +0 -15
- package/dist/ids/stat-event-ids.js.map +1 -1
- package/dist/ids/stats-operation-ids.d.ts.map +1 -1
- package/dist/ids/stats-operation-ids.js +0 -7
- package/dist/ids/stats-operation-ids.js.map +1 -1
- package/dist/ids/waiver-template-ids.d.ts +0 -1
- package/dist/ids/waiver-template-ids.d.ts.map +1 -1
- package/dist/ids/waiver-template-ids.js +0 -2
- package/dist/ids/waiver-template-ids.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/input-formats/input-formats.d.ts +0 -80
- package/dist/input-formats/input-formats.d.ts.map +1 -1
- package/dist/input-formats/input-formats.js +0 -86
- package/dist/input-formats/input-formats.js.map +1 -1
- package/dist/media/file-origins.d.ts +0 -3
- package/dist/media/file-origins.d.ts.map +1 -1
- package/dist/media/file-origins.js +0 -26
- package/dist/media/file-origins.js.map +1 -1
- package/dist/media/picture-aspects.d.ts +0 -2
- package/dist/media/picture-aspects.d.ts.map +1 -1
- package/dist/media/picture-aspects.js +0 -5
- package/dist/media/picture-aspects.js.map +1 -1
- package/dist/media/picture-url.d.ts +0 -6
- package/dist/media/picture-url.d.ts.map +1 -1
- package/dist/media/picture-url.js +0 -9
- package/dist/media/picture-url.js.map +1 -1
- package/dist/media/upload-tray-display.d.ts +0 -3
- package/dist/media/upload-tray-display.d.ts.map +1 -1
- package/dist/media/upload-tray-display.js +0 -6
- package/dist/media/upload-tray-display.js.map +1 -1
- package/dist/migration-console/action-ids.d.ts +4 -1
- package/dist/migration-console/action-ids.d.ts.map +1 -1
- package/dist/migration-console/action-ids.js +8 -45
- package/dist/migration-console/action-ids.js.map +1 -1
- package/dist/migration-console/console-lock.d.ts +10 -0
- package/dist/migration-console/console-lock.d.ts.map +1 -0
- package/dist/migration-console/console-lock.js +14 -0
- package/dist/migration-console/console-lock.js.map +1 -0
- package/dist/migration-console/consumed-source.d.ts +4 -0
- package/dist/migration-console/consumed-source.d.ts.map +1 -0
- package/dist/migration-console/consumed-source.js +10 -0
- package/dist/migration-console/consumed-source.js.map +1 -0
- package/dist/migration-console/manifest.d.ts +2 -24
- package/dist/migration-console/manifest.d.ts.map +1 -1
- package/dist/migration-console/manifest.js +174 -61
- package/dist/migration-console/manifest.js.map +1 -1
- package/dist/migration-console/run-state.d.ts +2 -14
- package/dist/migration-console/run-state.d.ts.map +1 -1
- package/dist/migration-console/run-state.js +3 -16
- package/dist/migration-console/run-state.js.map +1 -1
- package/dist/notifications/admin-notification-config.d.ts +0 -11
- package/dist/notifications/admin-notification-config.d.ts.map +1 -1
- package/dist/notifications/admin-notification-config.js +2 -13
- package/dist/notifications/admin-notification-config.js.map +1 -1
- package/dist/notifications/archive-all.d.ts.map +1 -1
- package/dist/notifications/archive-all.js +0 -2
- package/dist/notifications/archive-all.js.map +1 -1
- package/dist/notifications/occurrences.d.ts +0 -3
- package/dist/notifications/occurrences.d.ts.map +1 -1
- package/dist/notifications/occurrences.js +0 -7
- package/dist/notifications/occurrences.js.map +1 -1
- package/dist/paths/app-routes.d.ts +0 -12
- package/dist/paths/app-routes.d.ts.map +1 -1
- package/dist/paths/app-routes.js +0 -18
- package/dist/paths/app-routes.js.map +1 -1
- package/dist/paths/collection-groups.d.ts.map +1 -1
- package/dist/paths/collection-groups.js +0 -5
- package/dist/paths/collection-groups.js.map +1 -1
- package/dist/paths/collection-refs.d.ts.map +1 -1
- package/dist/paths/collection-refs.js +0 -4
- package/dist/paths/collection-refs.js.map +1 -1
- package/dist/paths/collections.d.ts +0 -5
- package/dist/paths/collections.d.ts.map +1 -1
- package/dist/paths/collections.js +0 -68
- package/dist/paths/collections.js.map +1 -1
- package/dist/paths/path-builders.d.ts.map +1 -1
- package/dist/paths/path-builders.js +0 -16
- package/dist/paths/path-builders.js.map +1 -1
- package/dist/paths/picture-owner-paths.d.ts +0 -4
- package/dist/paths/picture-owner-paths.d.ts.map +1 -1
- package/dist/paths/picture-owner-paths.js +2 -11
- package/dist/paths/picture-owner-paths.js.map +1 -1
- package/dist/paths/storage-paths.d.ts +0 -18
- package/dist/paths/storage-paths.d.ts.map +1 -1
- package/dist/paths/storage-paths.js +0 -23
- package/dist/paths/storage-paths.js.map +1 -1
- package/dist/paths/utils.d.ts +0 -6
- package/dist/paths/utils.d.ts.map +1 -1
- package/dist/paths/utils.js +0 -9
- package/dist/paths/utils.js.map +1 -1
- package/dist/schemas/account-settings.d.ts.map +1 -1
- package/dist/schemas/account-settings.js +0 -7
- package/dist/schemas/account-settings.js.map +1 -1
- package/dist/schemas/admin-notifications.d.ts.map +1 -1
- package/dist/schemas/admin-notifications.js +0 -17
- package/dist/schemas/admin-notifications.js.map +1 -1
- package/dist/schemas/admin-stats.d.ts.map +1 -1
- package/dist/schemas/admin-stats.js +0 -9
- package/dist/schemas/admin-stats.js.map +1 -1
- package/dist/schemas/app-config.d.ts.map +1 -1
- package/dist/schemas/app-config.js +0 -10
- package/dist/schemas/app-config.js.map +1 -1
- package/dist/schemas/atoms.d.ts.map +1 -1
- package/dist/schemas/atoms.js +0 -10
- package/dist/schemas/atoms.js.map +1 -1
- package/dist/schemas/awards.d.ts +3 -3
- package/dist/schemas/awards.d.ts.map +1 -1
- package/dist/schemas/awards.js +0 -29
- package/dist/schemas/awards.js.map +1 -1
- package/dist/schemas/dead-letters.d.ts +0 -3
- package/dist/schemas/dead-letters.d.ts.map +1 -1
- package/dist/schemas/dead-letters.js +0 -15
- package/dist/schemas/dead-letters.js.map +1 -1
- package/dist/schemas/game-locations.d.ts.map +1 -1
- package/dist/schemas/game-locations.js +0 -6
- package/dist/schemas/game-locations.js.map +1 -1
- package/dist/schemas/hardware-loan-contracts.d.ts.map +1 -1
- package/dist/schemas/hardware-loan-contracts.js +0 -13
- package/dist/schemas/hardware-loan-contracts.js.map +1 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +0 -2
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/leagues.d.ts.map +1 -1
- package/dist/schemas/leagues.js +0 -24
- package/dist/schemas/leagues.js.map +1 -1
- package/dist/schemas/migration-console.d.ts +58 -15
- package/dist/schemas/migration-console.d.ts.map +1 -1
- package/dist/schemas/migration-console.js +4 -34
- package/dist/schemas/migration-console.js.map +1 -1
- package/dist/schemas/pictures.d.ts.map +1 -1
- package/dist/schemas/pictures.js +0 -10
- package/dist/schemas/pictures.js.map +1 -1
- package/dist/schemas/schedules.d.ts.map +1 -1
- package/dist/schemas/schedules.js +0 -26
- package/dist/schemas/schedules.js.map +1 -1
- package/dist/schemas/scoring.d.ts +20 -26
- package/dist/schemas/scoring.d.ts.map +1 -1
- package/dist/schemas/scoring.js +0 -33
- package/dist/schemas/scoring.js.map +1 -1
- package/dist/schemas/signed-waivers.d.ts.map +1 -1
- package/dist/schemas/signed-waivers.js +0 -22
- package/dist/schemas/signed-waivers.js.map +1 -1
- package/dist/schemas/stats.d.ts +12 -0
- package/dist/schemas/stats.d.ts.map +1 -1
- package/dist/schemas/stats.js +21 -61
- package/dist/schemas/stats.js.map +1 -1
- package/dist/schemas/team-joining.d.ts.map +1 -1
- package/dist/schemas/team-joining.js +0 -30
- package/dist/schemas/team-joining.js.map +1 -1
- package/dist/schemas/teams.d.ts +0 -1
- package/dist/schemas/teams.d.ts.map +1 -1
- package/dist/schemas/teams.js +0 -83
- package/dist/schemas/teams.js.map +1 -1
- package/dist/schemas/uploads.d.ts +0 -8
- package/dist/schemas/uploads.d.ts.map +1 -1
- package/dist/schemas/uploads.js +0 -29
- package/dist/schemas/uploads.js.map +1 -1
- package/dist/schemas/users.d.ts +0 -1
- package/dist/schemas/users.d.ts.map +1 -1
- package/dist/schemas/users.js +0 -41
- package/dist/schemas/users.js.map +1 -1
- package/dist/schemas/waiver-templates.d.ts.map +1 -1
- package/dist/schemas/waiver-templates.js +0 -7
- package/dist/schemas/waiver-templates.js.map +1 -1
- package/dist/sports/basketball-scoring.d.ts +0 -4
- package/dist/sports/basketball-scoring.d.ts.map +1 -1
- package/dist/sports/basketball-scoring.js +0 -34
- package/dist/sports/basketball-scoring.js.map +1 -1
- package/dist/sports/basketball.d.ts.map +1 -1
- package/dist/sports/basketball.js +0 -5
- package/dist/sports/basketball.js.map +1 -1
- package/dist/sports/bulk-entry.d.ts +0 -22
- package/dist/sports/bulk-entry.d.ts.map +1 -1
- package/dist/sports/bulk-entry.js +0 -10
- package/dist/sports/bulk-entry.js.map +1 -1
- package/dist/sports/column-catalog.d.ts +0 -17
- package/dist/sports/column-catalog.d.ts.map +1 -1
- package/dist/sports/column-catalog.js +0 -10
- package/dist/sports/column-catalog.js.map +1 -1
- package/dist/sports/contribution.d.ts +2 -59
- package/dist/sports/contribution.d.ts.map +1 -1
- package/dist/sports/contribution.js +2 -45
- package/dist/sports/contribution.js.map +1 -1
- package/dist/sports/curling-scoring.d.ts +0 -1
- package/dist/sports/curling-scoring.d.ts.map +1 -1
- package/dist/sports/curling-scoring.js +0 -27
- package/dist/sports/curling-scoring.js.map +1 -1
- package/dist/sports/curling.d.ts.map +1 -1
- package/dist/sports/curling.js +0 -4
- package/dist/sports/curling.js.map +1 -1
- package/dist/sports/finalized-record.d.ts +2 -19
- package/dist/sports/finalized-record.d.ts.map +1 -1
- package/dist/sports/finalized-record.js +21 -22
- package/dist/sports/finalized-record.js.map +1 -1
- package/dist/sports/football-scoring.d.ts.map +1 -1
- package/dist/sports/football-scoring.js +0 -21
- package/dist/sports/football-scoring.js.map +1 -1
- package/dist/sports/football.d.ts.map +1 -1
- package/dist/sports/football.js +0 -4
- package/dist/sports/football.js.map +1 -1
- package/dist/sports/index.d.ts.map +1 -1
- package/dist/sports/index.js +0 -2
- package/dist/sports/index.js.map +1 -1
- package/dist/sports/ledger-continuity.d.ts +0 -2
- package/dist/sports/ledger-continuity.d.ts.map +1 -1
- package/dist/sports/ledger-continuity.js +0 -5
- package/dist/sports/ledger-continuity.js.map +1 -1
- package/dist/sports/lifetime-summary.d.ts +0 -6
- package/dist/sports/lifetime-summary.d.ts.map +1 -1
- package/dist/sports/lifetime-summary.js +0 -7
- package/dist/sports/lifetime-summary.js.map +1 -1
- package/dist/sports/rankings.d.ts +0 -12
- package/dist/sports/rankings.d.ts.map +1 -1
- package/dist/sports/rankings.js +0 -15
- package/dist/sports/rankings.js.map +1 -1
- package/dist/sports/registry.d.ts +0 -10
- package/dist/sports/registry.d.ts.map +1 -1
- package/dist/sports/registry.js +0 -9
- package/dist/sports/registry.js.map +1 -1
- package/dist/sports/replay.d.ts +0 -11
- package/dist/sports/replay.d.ts.map +1 -1
- package/dist/sports/replay.js +0 -16
- package/dist/sports/replay.js.map +1 -1
- package/dist/sports/rollup-check.d.ts +0 -7
- package/dist/sports/rollup-check.d.ts.map +1 -1
- package/dist/sports/rollup-check.js +0 -14
- package/dist/sports/rollup-check.js.map +1 -1
- package/dist/sports/score-mirror.d.ts +0 -1
- package/dist/sports/score-mirror.d.ts.map +1 -1
- package/dist/sports/score-mirror.js +0 -4
- package/dist/sports/score-mirror.js.map +1 -1
- package/dist/sports/scoring-display.d.ts +0 -30
- package/dist/sports/scoring-display.d.ts.map +1 -1
- package/dist/sports/scoring-display.js +0 -9
- package/dist/sports/scoring-display.js.map +1 -1
- package/dist/sports/scoring.d.ts +0 -36
- package/dist/sports/scoring.d.ts.map +1 -1
- package/dist/sports/scoring.js +0 -10
- package/dist/sports/scoring.js.map +1 -1
- package/dist/sports/shared-columns.d.ts +0 -1
- package/dist/sports/shared-columns.d.ts.map +1 -1
- package/dist/sports/shared-columns.js +0 -7
- package/dist/sports/shared-columns.js.map +1 -1
- package/dist/sports/sport-adapter.d.ts +0 -32
- package/dist/sports/sport-adapter.d.ts.map +1 -1
- package/dist/sports/sport-adapter.js +0 -7
- package/dist/sports/sport-adapter.js.map +1 -1
- package/dist/sports/store-driver.d.ts +0 -28
- package/dist/sports/store-driver.d.ts.map +1 -1
- package/dist/sports/store-driver.js +0 -38
- package/dist/sports/store-driver.js.map +1 -1
- package/dist/types/audit.d.ts +1 -1
- package/dist/types/audit.d.ts.map +1 -1
- package/dist/types/audit.js +1 -67
- package/dist/types/audit.js.map +1 -1
- package/dist/types/claims.d.ts +0 -10
- package/dist/types/claims.d.ts.map +1 -1
- package/dist/types/claims.js +0 -16
- package/dist/types/claims.js.map +1 -1
- package/dist/types/notifications.d.ts.map +1 -1
- package/dist/types/notifications.js +7 -25
- package/dist/types/notifications.js.map +1 -1
- package/dist/types/picture-owners.d.ts +0 -1
- package/dist/types/picture-owners.d.ts.map +1 -1
- package/dist/types/picture-owners.js +0 -6
- package/dist/types/picture-owners.js.map +1 -1
- package/dist/types/schedules.d.ts.map +1 -1
- package/dist/types/schedules.js +0 -9
- package/dist/types/schedules.js.map +1 -1
- package/dist/types/sports.d.ts.map +1 -1
- package/dist/types/sports.js +0 -24
- package/dist/types/sports.js.map +1 -1
- package/dist/types/stats.d.ts.map +1 -1
- package/dist/types/stats.js +0 -65
- package/dist/types/stats.js.map +1 -1
- package/dist/types/unions.d.ts +0 -2
- package/dist/types/unions.d.ts.map +1 -1
- package/dist/types/unions.js +3 -91
- package/dist/types/unions.js.map +1 -1
- package/dist/types/uploads.d.ts.map +1 -1
- package/dist/types/uploads.js +0 -7
- package/dist/types/uploads.js.map +1 -1
- package/dist/upload-variables/on-progress.d.ts.map +1 -1
- package/dist/upload-variables/on-progress.js +2 -5
- package/dist/upload-variables/on-progress.js.map +1 -1
- package/dist/upload-variables/picture-upload-variables.d.ts +0 -1
- package/dist/upload-variables/picture-upload-variables.d.ts.map +1 -1
- package/dist/upload-variables/picture-upload-variables.js +0 -4
- package/dist/upload-variables/picture-upload-variables.js.map +1 -1
- package/dist/upload-variables/sign-hardware-contract-variables.d.ts.map +1 -1
- package/dist/upload-variables/sign-hardware-contract-variables.js +0 -2
- package/dist/upload-variables/sign-hardware-contract-variables.js.map +1 -1
- package/dist/upload-variables/sign-waiver-variables.d.ts.map +1 -1
- package/dist/upload-variables/sign-waiver-variables.js +0 -4
- package/dist/upload-variables/sign-waiver-variables.js.map +1 -1
- package/dist/utils/account-status.d.ts.map +1 -1
- package/dist/utils/account-status.js +0 -4
- package/dist/utils/account-status.js.map +1 -1
- package/dist/utils/app-config.d.ts +0 -53
- package/dist/utils/app-config.d.ts.map +1 -1
- package/dist/utils/app-config.js +0 -62
- package/dist/utils/app-config.js.map +1 -1
- package/dist/utils/display-name.d.ts +0 -7
- package/dist/utils/display-name.d.ts.map +1 -1
- package/dist/utils/display-name.js +0 -8
- package/dist/utils/display-name.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/league-calendar.d.ts +0 -11
- package/dist/utils/league-calendar.d.ts.map +1 -1
- package/dist/utils/league-calendar.js +7 -19
- package/dist/utils/league-calendar.js.map +1 -1
- package/dist/utils/league-join-warning.d.ts +0 -11
- package/dist/utils/league-join-warning.d.ts.map +1 -1
- package/dist/utils/league-join-warning.js +0 -28
- package/dist/utils/league-join-warning.js.map +1 -1
- package/dist/utils/league-joining.d.ts +0 -1
- package/dist/utils/league-joining.d.ts.map +1 -1
- package/dist/utils/league-joining.js +0 -7
- package/dist/utils/league-joining.js.map +1 -1
- package/dist/utils/league-mode.d.ts +0 -1
- package/dist/utils/league-mode.d.ts.map +1 -1
- package/dist/utils/league-mode.js +0 -4
- package/dist/utils/league-mode.js.map +1 -1
- package/dist/utils/schedules.d.ts +0 -15
- package/dist/utils/schedules.d.ts.map +1 -1
- package/dist/utils/schedules.js +0 -19
- package/dist/utils/schedules.js.map +1 -1
- package/dist/utils/stats-operation-request.d.ts +20 -0
- package/dist/utils/stats-operation-request.d.ts.map +1 -0
- package/dist/utils/stats-operation-request.js +10 -0
- package/dist/utils/stats-operation-request.js.map +1 -0
- package/dist/utils/team-creation.d.ts +0 -2
- package/dist/utils/team-creation.d.ts.map +1 -1
- package/dist/utils/team-creation.js +0 -6
- package/dist/utils/team-creation.js.map +1 -1
- package/dist/utils/team-member-actions.d.ts +0 -6
- package/dist/utils/team-member-actions.d.ts.map +1 -1
- package/dist/utils/team-member-actions.js +0 -12
- package/dist/utils/team-member-actions.js.map +1 -1
- 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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
}
|