@ttt-productions/q-core 0.1.58 → 0.1.60

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 (38) hide show
  1. package/dist/constants/sports.d.ts +3 -3
  2. package/dist/constants/sports.js +3 -3
  3. package/dist/constants/sports.js.map +1 -1
  4. package/dist/doc-schemas/migration-console.d.ts.map +1 -1
  5. package/dist/doc-schemas/migration-console.js +2 -2
  6. package/dist/doc-schemas/migration-console.js.map +1 -1
  7. package/dist/ids/minted-ids.d.ts +1 -0
  8. package/dist/ids/minted-ids.d.ts.map +1 -1
  9. package/dist/ids/minted-ids.js +3 -0
  10. package/dist/ids/minted-ids.js.map +1 -1
  11. package/dist/migration-console/manifest.d.ts.map +1 -1
  12. package/dist/migration-console/manifest.js +3 -31
  13. package/dist/migration-console/manifest.js.map +1 -1
  14. package/dist/migration-console/run-state.d.ts +1 -2
  15. package/dist/migration-console/run-state.d.ts.map +1 -1
  16. package/dist/migration-console/run-state.js +1 -3
  17. package/dist/migration-console/run-state.js.map +1 -1
  18. package/dist/schemas/awards.d.ts +0 -2
  19. package/dist/schemas/awards.d.ts.map +1 -1
  20. package/dist/schemas/awards.js +0 -1
  21. package/dist/schemas/awards.js.map +1 -1
  22. package/dist/schemas/hardware-loan-contracts.d.ts +1 -0
  23. package/dist/schemas/hardware-loan-contracts.d.ts.map +1 -1
  24. package/dist/schemas/hardware-loan-contracts.js +1 -0
  25. package/dist/schemas/hardware-loan-contracts.js.map +1 -1
  26. package/dist/schemas/users.d.ts +3 -0
  27. package/dist/schemas/users.d.ts.map +1 -1
  28. package/dist/schemas/users.js +3 -0
  29. package/dist/schemas/users.js.map +1 -1
  30. package/dist/sports/curling-scoring.d.ts +4 -4
  31. package/dist/sports/curling-scoring.d.ts.map +1 -1
  32. package/dist/sports/curling-scoring.js +5 -5
  33. package/dist/sports/curling-scoring.js.map +1 -1
  34. package/dist/types/unions.d.ts +1 -0
  35. package/dist/types/unions.d.ts.map +1 -1
  36. package/dist/types/unions.js +1 -0
  37. package/dist/types/unions.js.map +1 -1
  38. package/package.json +1 -1
@@ -33,8 +33,8 @@ export declare const STAT_EVENT_REFUSAL_COPY: {
33
33
  readonly assisterNotRostered: "The assisting player is not on this game's roster for that team.";
34
34
  readonly assistNotAllowed: "Only a 2- or 3-point basket can be assisted, and never by the player who scored it.";
35
35
  readonly playerNotAllowed: "That stat is the team's; it cannot name a player.";
36
- readonly roundNotNext: "That round is not the next one to record.";
37
- readonly roundsComplete: "Every round is already recorded.";
36
+ readonly roundNotNext: "That end is not the next one to record.";
37
+ readonly roundsComplete: "Every end is already recorded.";
38
38
  readonly bulkValueInvalid: "That entry is not a real result: stats are whole numbers and never go below zero.";
39
39
  readonly eventIdConflict: "A different stat was already saved under this one. Discard it and enter it again.";
40
40
  readonly voidTargetNotSportEvent: "There is no recorded stat there to undo.";
@@ -42,7 +42,7 @@ export declare const STAT_EVENT_REFUSAL_COPY: {
42
42
  };
43
43
  export declare const STATS_MIGRATION_OPERATION_ID = "migration";
44
44
  export declare const FINALIZATION_NOT_READY_COPY: {
45
- readonly roundsIncomplete: "Every round must be recorded before the game can be finalized.";
45
+ readonly roundsIncomplete: "Every end must be recorded before the game can be finalized.";
46
46
  };
47
47
  export declare const HALL_OF_FAME_MINIMUM_GAMES_CHOICES: readonly [25, 50, 100];
48
48
  export type HallOfFameMinimumGames = (typeof HALL_OF_FAME_MINIMUM_GAMES_CHOICES)[number];
@@ -38,8 +38,8 @@ export const STAT_EVENT_REFUSAL_COPY = {
38
38
  assisterNotRostered: "The assisting player is not on this game's roster for that team.",
39
39
  assistNotAllowed: 'Only a 2- or 3-point basket can be assisted, and never by the player who scored it.',
40
40
  playerNotAllowed: "That stat is the team's; it cannot name a player.",
41
- roundNotNext: 'That round is not the next one to record.',
42
- roundsComplete: 'Every round is already recorded.',
41
+ roundNotNext: 'That end is not the next one to record.',
42
+ roundsComplete: 'Every end is already recorded.',
43
43
  bulkValueInvalid: 'That entry is not a real result: stats are whole numbers and never go below zero.',
44
44
  eventIdConflict: 'A different stat was already saved under this one. Discard it and enter it again.',
45
45
  voidTargetNotSportEvent: 'There is no recorded stat there to undo.',
@@ -47,7 +47,7 @@ export const STAT_EVENT_REFUSAL_COPY = {
47
47
  };
48
48
  export const STATS_MIGRATION_OPERATION_ID = 'migration';
49
49
  export const FINALIZATION_NOT_READY_COPY = {
50
- roundsIncomplete: 'Every round must be recorded before the game can be finalized.',
50
+ roundsIncomplete: 'Every end must be recorded before the game can be finalized.',
51
51
  };
52
52
  export const HALL_OF_FAME_MINIMUM_GAMES_CHOICES = [25, 50, 100];
53
53
  //# sourceMappingURL=sports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sports.js","sourceRoot":"","sources":["../../src/constants/sports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,+BAA+B,EAC/B,6BAA6B,EAC7B,iCAAiC,EACjC,6BAA6B,EAC7B,+BAA+B,EAC/B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,CAAC,+BAA+B,CAAC,EAAE,CAAC;IACpC,CAAC,+BAA+B,CAAC,EAAE,CAAC;IACpC,CAAC,iCAAiC,CAAC,EAAE,CAAC;IACtC,CAAC,6BAA6B,CAAC,EAAE,CAAC;IAClC,CAAC,4BAA4B,CAAC,EAAE,CAAC;IACjC,CAAC,6BAA6B,CAAC,EAAE,CAAC;IAClC,CAAC,+BAA+B,CAAC,EAAE,CAAC;CACsB,CAAC;AAE7D,4FAA4F;AAC5F,oBAAoB;AACpB,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,CAAC;CACgD,CAAC;AAE7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC,6DAA6D;AAC7D,MAAM,CAAC,MAAM,yBAAyB,GAAG,wBAAwB,CAAC;AAElE,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAEnD,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAAG,CAAC;AAEtD,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,CAAC,6BAA6B,CAAC,EAAE,CAAC;IAClC,CAAC,6BAA6B,CAAC,EAAE,CAAC;IAClC,CAAC,6BAA6B,CAAC,EAAE,CAAC;IAClC,CAAC,6BAA6B,CAAC,EAAE,CAAC;CACsB,CAAC;AAE3D,MAAM,CAAC,MAAM,wBAAwB,GAAG,wCAAwC,CAAC;AAEjF,MAAM,CAAC,MAAM,0BAA0B,GAAG,2CAA2C,CAAC;AAEtF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,mBAAmB,EAAE,iDAAiD;IACtE,aAAa,EAAE,wBAAwB;IACvC,iBAAiB,EAAE,yDAAyD;IAC5E,mBAAmB,EAAE,kEAAkE;IACvF,gBAAgB,EACd,qFAAqF;IACvF,gBAAgB,EAAE,mDAAmD;IACrE,YAAY,EAAE,2CAA2C;IACzD,cAAc,EAAE,kCAAkC;IAClD,gBAAgB,EACd,mFAAmF;IACrF,eAAe,EACb,mFAAmF;IACrF,uBAAuB,EAAE,0CAA0C;IACnE,qBAAqB,EAAE,mEAAmE;CACnC,CAAC;AAE1D,MAAM,CAAC,MAAM,4BAA4B,GAAG,WAAW,CAAC;AACxD,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,gBAAgB,EAAE,gEAAgE;CACrB,CAAC;AAEhE,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU,CAAC","sourcesContent":["import { MAX_STAT_EVENTS_PER_GAME } from './business.js';\nimport {\n BASKETBALL_ASSIST_EVENT_TYPE,\n BASKETBALL_BULK_EDIT_EVENT_TYPE,\n BASKETBALL_ONE_POINT_EVENT_TYPE,\n BASKETBALL_REBOUND_EVENT_TYPE,\n BASKETBALL_THREE_POINT_EVENT_TYPE,\n BASKETBALL_TIMEOUT_EVENT_TYPE,\n BASKETBALL_TWO_POINT_EVENT_TYPE,\n FOOTBALL_BULK_EDIT_EVENT_TYPE,\n FOOTBALL_ONE_POINT_EVENT_TYPE,\n FOOTBALL_SIX_POINT_EVENT_TYPE,\n FOOTBALL_TWO_POINT_EVENT_TYPE,\n} from '../types/sports.js';\nimport type {\n BasketballPlayerStatKey,\n BasketballStatEventType,\n FootballStatEventType,\n} from '../types/sports.js';\nimport type { FinalizationNotReadyReason, StatEventRefusalCode } from '../types/stats.js';\n\nexport const BASKETBALL_POINTS_BY_EVENT_TYPE = {\n [BASKETBALL_ONE_POINT_EVENT_TYPE]: 1,\n [BASKETBALL_TWO_POINT_EVENT_TYPE]: 2,\n [BASKETBALL_THREE_POINT_EVENT_TYPE]: 3,\n [BASKETBALL_REBOUND_EVENT_TYPE]: 0,\n [BASKETBALL_ASSIST_EVENT_TYPE]: 0,\n [BASKETBALL_TIMEOUT_EVENT_TYPE]: 0,\n [BASKETBALL_BULK_EDIT_EVENT_TYPE]: 0,\n} as const satisfies Record<BasketballStatEventType, number>;\n\n// Every weight is a multiple of one half, so FP summed across games equals FP of the summed\n// counters exactly.\nexport const BASKETBALL_FANTASY_POINT_WEIGHTS = {\n points: 1,\n rebounds: 1.5,\n assists: 2,\n} as const satisfies Record<BasketballPlayerStatKey, number>;\n\nexport const CURLING_ROUND_COUNT = 14;\n\nexport const MAX_CURLING_ROUND_POINTS = 4;\n\nexport const MAX_STAT_COUNT = 999_999;\n\n// One scoring write carries at most a whole game's stat log.\nexport const MAX_STAT_EVENTS_PER_WRITE = MAX_STAT_EVENTS_PER_GAME;\n\nexport const MAX_STATS_REPAIR_LISTED_CHANGES = 500;\n\nexport const MAX_STATS_VALIDATION_DISCREPANCIES = 500;\n\nexport const FOOTBALL_POINTS_BY_EVENT_TYPE = {\n [FOOTBALL_SIX_POINT_EVENT_TYPE]: 6,\n [FOOTBALL_TWO_POINT_EVENT_TYPE]: 2,\n [FOOTBALL_ONE_POINT_EVENT_TYPE]: 1,\n [FOOTBALL_BULK_EDIT_EVENT_TYPE]: 0,\n} as const satisfies Record<FootballStatEventType, number>;\n\nexport const TEAM_NOT_IN_GAME_MESSAGE = 'That team is not playing in this game.';\n\nexport const NOT_ON_GAME_ROSTER_MESSAGE = \"That player is not on this game's roster.\";\n\nexport const STAT_EVENT_REFUSAL_COPY = {\n eventTypeNotInSport: \"That stat does not belong to this game's sport.\",\n teamNotInGame: TEAM_NOT_IN_GAME_MESSAGE,\n playerNotRostered: \"That player is not on this game's roster for that team.\",\n assisterNotRostered: \"The assisting player is not on this game's roster for that team.\",\n assistNotAllowed:\n 'Only a 2- or 3-point basket can be assisted, and never by the player who scored it.',\n playerNotAllowed: \"That stat is the team's; it cannot name a player.\",\n roundNotNext: 'That round is not the next one to record.',\n roundsComplete: 'Every round is already recorded.',\n bulkValueInvalid:\n 'That entry is not a real result: stats are whole numbers and never go below zero.',\n eventIdConflict:\n 'A different stat was already saved under this one. Discard it and enter it again.',\n voidTargetNotSportEvent: 'There is no recorded stat there to undo.',\n correctionNotAccepted: 'Corrections are made from Fix stats, not from the scoring screen.',\n} as const satisfies Record<StatEventRefusalCode, string>;\n\nexport const STATS_MIGRATION_OPERATION_ID = 'migration';\nexport const FINALIZATION_NOT_READY_COPY = {\n roundsIncomplete: 'Every round must be recorded before the game can be finalized.',\n} as const satisfies Record<FinalizationNotReadyReason, string>;\n\nexport const HALL_OF_FAME_MINIMUM_GAMES_CHOICES = [25, 50, 100] as const;\nexport type HallOfFameMinimumGames = (typeof HALL_OF_FAME_MINIMUM_GAMES_CHOICES)[number];\n"]}
1
+ {"version":3,"file":"sports.js","sourceRoot":"","sources":["../../src/constants/sports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,+BAA+B,EAC/B,6BAA6B,EAC7B,iCAAiC,EACjC,6BAA6B,EAC7B,+BAA+B,EAC/B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,CAAC,+BAA+B,CAAC,EAAE,CAAC;IACpC,CAAC,+BAA+B,CAAC,EAAE,CAAC;IACpC,CAAC,iCAAiC,CAAC,EAAE,CAAC;IACtC,CAAC,6BAA6B,CAAC,EAAE,CAAC;IAClC,CAAC,4BAA4B,CAAC,EAAE,CAAC;IACjC,CAAC,6BAA6B,CAAC,EAAE,CAAC;IAClC,CAAC,+BAA+B,CAAC,EAAE,CAAC;CACsB,CAAC;AAE7D,4FAA4F;AAC5F,oBAAoB;AACpB,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,CAAC;CACgD,CAAC;AAE7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC,6DAA6D;AAC7D,MAAM,CAAC,MAAM,yBAAyB,GAAG,wBAAwB,CAAC;AAElE,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAEnD,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAAG,CAAC;AAEtD,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,CAAC,6BAA6B,CAAC,EAAE,CAAC;IAClC,CAAC,6BAA6B,CAAC,EAAE,CAAC;IAClC,CAAC,6BAA6B,CAAC,EAAE,CAAC;IAClC,CAAC,6BAA6B,CAAC,EAAE,CAAC;CACsB,CAAC;AAE3D,MAAM,CAAC,MAAM,wBAAwB,GAAG,wCAAwC,CAAC;AAEjF,MAAM,CAAC,MAAM,0BAA0B,GAAG,2CAA2C,CAAC;AAEtF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,mBAAmB,EAAE,iDAAiD;IACtE,aAAa,EAAE,wBAAwB;IACvC,iBAAiB,EAAE,yDAAyD;IAC5E,mBAAmB,EAAE,kEAAkE;IACvF,gBAAgB,EACd,qFAAqF;IACvF,gBAAgB,EAAE,mDAAmD;IACrE,YAAY,EAAE,yCAAyC;IACvD,cAAc,EAAE,gCAAgC;IAChD,gBAAgB,EACd,mFAAmF;IACrF,eAAe,EACb,mFAAmF;IACrF,uBAAuB,EAAE,0CAA0C;IACnE,qBAAqB,EAAE,mEAAmE;CACnC,CAAC;AAE1D,MAAM,CAAC,MAAM,4BAA4B,GAAG,WAAW,CAAC;AACxD,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,gBAAgB,EAAE,8DAA8D;CACnB,CAAC;AAEhE,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU,CAAC","sourcesContent":["import { MAX_STAT_EVENTS_PER_GAME } from './business.js';\nimport {\n BASKETBALL_ASSIST_EVENT_TYPE,\n BASKETBALL_BULK_EDIT_EVENT_TYPE,\n BASKETBALL_ONE_POINT_EVENT_TYPE,\n BASKETBALL_REBOUND_EVENT_TYPE,\n BASKETBALL_THREE_POINT_EVENT_TYPE,\n BASKETBALL_TIMEOUT_EVENT_TYPE,\n BASKETBALL_TWO_POINT_EVENT_TYPE,\n FOOTBALL_BULK_EDIT_EVENT_TYPE,\n FOOTBALL_ONE_POINT_EVENT_TYPE,\n FOOTBALL_SIX_POINT_EVENT_TYPE,\n FOOTBALL_TWO_POINT_EVENT_TYPE,\n} from '../types/sports.js';\nimport type {\n BasketballPlayerStatKey,\n BasketballStatEventType,\n FootballStatEventType,\n} from '../types/sports.js';\nimport type { FinalizationNotReadyReason, StatEventRefusalCode } from '../types/stats.js';\n\nexport const BASKETBALL_POINTS_BY_EVENT_TYPE = {\n [BASKETBALL_ONE_POINT_EVENT_TYPE]: 1,\n [BASKETBALL_TWO_POINT_EVENT_TYPE]: 2,\n [BASKETBALL_THREE_POINT_EVENT_TYPE]: 3,\n [BASKETBALL_REBOUND_EVENT_TYPE]: 0,\n [BASKETBALL_ASSIST_EVENT_TYPE]: 0,\n [BASKETBALL_TIMEOUT_EVENT_TYPE]: 0,\n [BASKETBALL_BULK_EDIT_EVENT_TYPE]: 0,\n} as const satisfies Record<BasketballStatEventType, number>;\n\n// Every weight is a multiple of one half, so FP summed across games equals FP of the summed\n// counters exactly.\nexport const BASKETBALL_FANTASY_POINT_WEIGHTS = {\n points: 1,\n rebounds: 1.5,\n assists: 2,\n} as const satisfies Record<BasketballPlayerStatKey, number>;\n\nexport const CURLING_ROUND_COUNT = 14;\n\nexport const MAX_CURLING_ROUND_POINTS = 4;\n\nexport const MAX_STAT_COUNT = 999_999;\n\n// One scoring write carries at most a whole game's stat log.\nexport const MAX_STAT_EVENTS_PER_WRITE = MAX_STAT_EVENTS_PER_GAME;\n\nexport const MAX_STATS_REPAIR_LISTED_CHANGES = 500;\n\nexport const MAX_STATS_VALIDATION_DISCREPANCIES = 500;\n\nexport const FOOTBALL_POINTS_BY_EVENT_TYPE = {\n [FOOTBALL_SIX_POINT_EVENT_TYPE]: 6,\n [FOOTBALL_TWO_POINT_EVENT_TYPE]: 2,\n [FOOTBALL_ONE_POINT_EVENT_TYPE]: 1,\n [FOOTBALL_BULK_EDIT_EVENT_TYPE]: 0,\n} as const satisfies Record<FootballStatEventType, number>;\n\nexport const TEAM_NOT_IN_GAME_MESSAGE = 'That team is not playing in this game.';\n\nexport const NOT_ON_GAME_ROSTER_MESSAGE = \"That player is not on this game's roster.\";\n\nexport const STAT_EVENT_REFUSAL_COPY = {\n eventTypeNotInSport: \"That stat does not belong to this game's sport.\",\n teamNotInGame: TEAM_NOT_IN_GAME_MESSAGE,\n playerNotRostered: \"That player is not on this game's roster for that team.\",\n assisterNotRostered: \"The assisting player is not on this game's roster for that team.\",\n assistNotAllowed:\n 'Only a 2- or 3-point basket can be assisted, and never by the player who scored it.',\n playerNotAllowed: \"That stat is the team's; it cannot name a player.\",\n roundNotNext: 'That end is not the next one to record.',\n roundsComplete: 'Every end is already recorded.',\n bulkValueInvalid:\n 'That entry is not a real result: stats are whole numbers and never go below zero.',\n eventIdConflict:\n 'A different stat was already saved under this one. Discard it and enter it again.',\n voidTargetNotSportEvent: 'There is no recorded stat there to undo.',\n correctionNotAccepted: 'Corrections are made from Fix stats, not from the scoring screen.',\n} as const satisfies Record<StatEventRefusalCode, string>;\n\nexport const STATS_MIGRATION_OPERATION_ID = 'migration';\nexport const FINALIZATION_NOT_READY_COPY = {\n roundsIncomplete: 'Every end must be recorded before the game can be finalized.',\n} as const satisfies Record<FinalizationNotReadyReason, string>;\n\nexport const HALL_OF_FAME_MINIMUM_GAMES_CHOICES = [25, 50, 100] as const;\nexport type HallOfFameMinimumGames = (typeof HALL_OF_FAME_MINIMUM_GAMES_CHOICES)[number];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"migration-console.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/migration-console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAmC,CAAC;AACxE,eAAO,MAAM,+BAA+B;;;EAA2C,CAAC;AACxF,eAAO,MAAM,0BAA0B,aAA0B,CAAC;AAIlE,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,wBAAwB;;;;;;;iBAOnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,yBAAyB;;;;iBAIpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"migration-console.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/migration-console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAmC,CAAC;AACxE,eAAO,MAAM,+BAA+B;;;EAA2C,CAAC;AACxF,eAAO,MAAM,0BAA0B,aAA0B,CAAC;AAIlE,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,wBAAwB;;;;;;;iBAOnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,yBAAyB;;;;iBAIpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import { z } from 'zod';
2
2
  import { MIGRATION_ACTION_ID_KEYS } from '../migration-console/action-ids.js';
3
- import { MAX_MIGRATION_FINDING_TEXT_LENGTH, MAX_MIGRATION_RUN_FINDINGS, MIGRATION_DESTINATION_STATE_KEYS, MIGRATION_RUN_STATUS_KEYS, } from '../migration-console/run-state.js';
3
+ import { MAX_MIGRATION_FINDING_CATEGORY_LENGTH, MAX_MIGRATION_FINDING_TEXT_LENGTH, MAX_MIGRATION_RUN_FINDINGS, MIGRATION_DESTINATION_STATE_KEYS, MIGRATION_RUN_STATUS_KEYS, } from '../migration-console/run-state.js';
4
4
  import { countSchema, documentIdSegmentSchema, epochMsSchema, userIdSchema } from './atoms.js';
5
5
  export const migrationActionIdSchema = z.enum(MIGRATION_ACTION_ID_KEYS);
6
6
  export const migrationDestinationStateSchema = z.enum(MIGRATION_DESTINATION_STATE_KEYS);
7
7
  export const migrationOperationIdSchema = documentIdSegmentSchema;
8
8
  const findingText = z.string().max(MAX_MIGRATION_FINDING_TEXT_LENGTH);
9
9
  export const MigrationFindingSchema = z.object({
10
- category: z.string().min(1).max(64),
10
+ category: z.string().min(1).max(MAX_MIGRATION_FINDING_CATEGORY_LENGTH),
11
11
  id: findingText,
12
12
  field: findingText,
13
13
  reason: findingText,
@@ -1 +1 @@
1
- {"version":3,"file":"migration-console.js","sourceRoot":"","sources":["../../src/doc-schemas/migration-console.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { MIGRATION_ACTION_ID_KEYS } from '../migration-console/action-ids.js';\nimport {\n MAX_MIGRATION_FINDING_TEXT_LENGTH,\n MAX_MIGRATION_RUN_FINDINGS,\n MIGRATION_DESTINATION_STATE_KEYS,\n MIGRATION_RUN_STATUS_KEYS,\n} from '../migration-console/run-state.js';\nimport { countSchema, documentIdSegmentSchema, epochMsSchema, userIdSchema } from './atoms.js';\n\nexport const migrationActionIdSchema = z.enum(MIGRATION_ACTION_ID_KEYS);\nexport const migrationDestinationStateSchema = z.enum(MIGRATION_DESTINATION_STATE_KEYS);\nexport const migrationOperationIdSchema = documentIdSegmentSchema;\n\nconst findingText = z.string().max(MAX_MIGRATION_FINDING_TEXT_LENGTH);\n\nexport const MigrationFindingSchema = z.object({\n category: z.string().min(1).max(64),\n id: findingText,\n field: findingText,\n reason: findingText,\n});\nexport type MigrationFinding = z.infer<typeof MigrationFindingSchema>;\n\nexport const MigrationRunCountsSchema = z.object({\n read: countSchema,\n written: countSchema,\n skipped: countSchema,\n checked: countSchema,\n missing: countSchema,\n mismatched: countSchema,\n});\nexport type MigrationRunCounts = z.infer<typeof MigrationRunCountsSchema>;\n\nexport const MigrationRunRecordSchema = z.object({\n operationId: migrationOperationIdSchema,\n dryRun: z.boolean(),\n startedByUserId: userIdSchema,\n startedAt: epochMsSchema,\n updatedAt: epochMsSchema,\n completedAt: epochMsSchema.optional(),\n status: z.enum(MIGRATION_RUN_STATUS_KEYS),\n pages: countSchema,\n nextResumeAfter: z.string().min(1).nullable(),\n counts: MigrationRunCountsSchema,\n details: z.record(z.string().min(1), countSchema),\n findings: z.array(MigrationFindingSchema).max(MAX_MIGRATION_RUN_FINDINGS),\n findingsNotKept: countSchema,\n expectEmptySource: z.boolean(),\n acknowledgeUnexaminedSources: z.boolean().optional(),\n stoppedReason: findingText.optional(),\n});\nexport type MigrationRunRecord = z.infer<typeof MigrationRunRecordSchema>;\n\nexport const MigrationStepRecordSchema = z.object({\n recordedAt: epochMsSchema,\n recordedByUserId: userIdSchema,\n statsJobId: z.string().min(1).optional(),\n});\nexport type MigrationStepRecord = z.infer<typeof MigrationStepRecordSchema>;\n\nexport const MigrationActionRunSchema = z.object({\n actionId: migrationActionIdSchema,\n run: MigrationRunRecordSchema.optional(),\n preview: MigrationRunRecordSchema.optional(),\n recorded: MigrationStepRecordSchema.optional(),\n});\nexport type MigrationActionRun = z.infer<typeof MigrationActionRunSchema>;\n\nexport const MigrationConsoleLockSchema = z.object({\n actionId: migrationActionIdSchema,\n operationId: migrationOperationIdSchema,\n heldByUserId: userIdSchema,\n expiresAt: epochMsSchema,\n pageClaimedAt: epochMsSchema.optional(),\n});\nexport type MigrationConsoleLock = z.infer<typeof MigrationConsoleLockSchema>;\n\nexport const MigrationConsoleSchema = z.object({\n destinationState: migrationDestinationStateSchema,\n cutoverRecordedAt: epochMsSchema.optional(),\n cutoverRecordedByUserId: userIdSchema.optional(),\n lock: MigrationConsoleLockSchema.nullable(),\n updatedAt: epochMsSchema,\n});\nexport type MigrationConsole = z.infer<typeof MigrationConsoleSchema>;\n"]}
1
+ {"version":3,"file":"migration-console.js","sourceRoot":"","sources":["../../src/doc-schemas/migration-console.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { MIGRATION_ACTION_ID_KEYS } from '../migration-console/action-ids.js';\nimport {\n MAX_MIGRATION_FINDING_CATEGORY_LENGTH,\n MAX_MIGRATION_FINDING_TEXT_LENGTH,\n MAX_MIGRATION_RUN_FINDINGS,\n MIGRATION_DESTINATION_STATE_KEYS,\n MIGRATION_RUN_STATUS_KEYS,\n} from '../migration-console/run-state.js';\nimport { countSchema, documentIdSegmentSchema, epochMsSchema, userIdSchema } from './atoms.js';\n\nexport const migrationActionIdSchema = z.enum(MIGRATION_ACTION_ID_KEYS);\nexport const migrationDestinationStateSchema = z.enum(MIGRATION_DESTINATION_STATE_KEYS);\nexport const migrationOperationIdSchema = documentIdSegmentSchema;\n\nconst findingText = z.string().max(MAX_MIGRATION_FINDING_TEXT_LENGTH);\n\nexport const MigrationFindingSchema = z.object({\n category: z.string().min(1).max(MAX_MIGRATION_FINDING_CATEGORY_LENGTH),\n id: findingText,\n field: findingText,\n reason: findingText,\n});\nexport type MigrationFinding = z.infer<typeof MigrationFindingSchema>;\n\nexport const MigrationRunCountsSchema = z.object({\n read: countSchema,\n written: countSchema,\n skipped: countSchema,\n checked: countSchema,\n missing: countSchema,\n mismatched: countSchema,\n});\nexport type MigrationRunCounts = z.infer<typeof MigrationRunCountsSchema>;\n\nexport const MigrationRunRecordSchema = z.object({\n operationId: migrationOperationIdSchema,\n dryRun: z.boolean(),\n startedByUserId: userIdSchema,\n startedAt: epochMsSchema,\n updatedAt: epochMsSchema,\n completedAt: epochMsSchema.optional(),\n status: z.enum(MIGRATION_RUN_STATUS_KEYS),\n pages: countSchema,\n nextResumeAfter: z.string().min(1).nullable(),\n counts: MigrationRunCountsSchema,\n details: z.record(z.string().min(1), countSchema),\n findings: z.array(MigrationFindingSchema).max(MAX_MIGRATION_RUN_FINDINGS),\n findingsNotKept: countSchema,\n expectEmptySource: z.boolean(),\n acknowledgeUnexaminedSources: z.boolean().optional(),\n stoppedReason: findingText.optional(),\n});\nexport type MigrationRunRecord = z.infer<typeof MigrationRunRecordSchema>;\n\nexport const MigrationStepRecordSchema = z.object({\n recordedAt: epochMsSchema,\n recordedByUserId: userIdSchema,\n statsJobId: z.string().min(1).optional(),\n});\nexport type MigrationStepRecord = z.infer<typeof MigrationStepRecordSchema>;\n\nexport const MigrationActionRunSchema = z.object({\n actionId: migrationActionIdSchema,\n run: MigrationRunRecordSchema.optional(),\n preview: MigrationRunRecordSchema.optional(),\n recorded: MigrationStepRecordSchema.optional(),\n});\nexport type MigrationActionRun = z.infer<typeof MigrationActionRunSchema>;\n\nexport const MigrationConsoleLockSchema = z.object({\n actionId: migrationActionIdSchema,\n operationId: migrationOperationIdSchema,\n heldByUserId: userIdSchema,\n expiresAt: epochMsSchema,\n pageClaimedAt: epochMsSchema.optional(),\n});\nexport type MigrationConsoleLock = z.infer<typeof MigrationConsoleLockSchema>;\n\nexport const MigrationConsoleSchema = z.object({\n destinationState: migrationDestinationStateSchema,\n cutoverRecordedAt: epochMsSchema.optional(),\n cutoverRecordedByUserId: userIdSchema.optional(),\n lock: MigrationConsoleLockSchema.nullable(),\n updatedAt: epochMsSchema,\n});\nexport type MigrationConsole = z.infer<typeof MigrationConsoleSchema>;\n"]}
@@ -2,6 +2,7 @@ export declare const GHOST_USER_ID_PREFIX = "ghost_";
2
2
  export declare function isGhostUserId(userId: string): boolean;
3
3
  export declare function buildGhostUserId(nowMs: number, suffix: string): string;
4
4
  export declare function buildGhostUserIdForRequest(requestId: string): string;
5
+ export declare function buildHardwareLoanContractIdForRequest(requestId: string): string;
5
6
  export declare function buildSportGameId(nowMs: number, suffix: string): string;
6
7
  export declare function buildScheduleWeekId(nowMs: number, suffix: string): string;
7
8
  export declare const BYE_TEAM_ID = "bye";
@@ -1 +1 @@
1
- {"version":3,"file":"minted-ids.d.ts","sourceRoot":"","sources":["../../src/ids/minted-ids.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtE;AAID,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtE;AAID,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,eAAO,MAAM,WAAW,QAAQ,CAAC;AAEjC,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD"}
1
+ {"version":3,"file":"minted-ids.d.ts","sourceRoot":"","sources":["../../src/ids/minted-ids.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtE;AAID,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,qCAAqC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtE;AAID,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,eAAO,MAAM,WAAW,QAAQ,CAAC;AAEjC,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD"}
@@ -10,6 +10,9 @@ export function buildGhostUserId(nowMs, suffix) {
10
10
  export function buildGhostUserIdForRequest(requestId) {
11
11
  return `${GHOST_USER_ID_PREFIX}req_${requestId}`;
12
12
  }
13
+ export function buildHardwareLoanContractIdForRequest(requestId) {
14
+ return `req_${requestId}`;
15
+ }
13
16
  export function buildSportGameId(nowMs, suffix) {
14
17
  return `${nowMs}_${suffix}`;
15
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"minted-ids.js","sourceRoot":"","sources":["../../src/ids/minted-ids.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAE7C,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,MAAc;IAC5D,OAAO,GAAG,oBAAoB,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;AACrD,CAAC;AAED,iGAAiG;AACjG,MAAM;AACN,MAAM,UAAU,0BAA0B,CAAC,SAAiB;IAC1D,OAAO,GAAG,oBAAoB,OAAO,SAAS,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,MAAc;IAC5D,OAAO,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,mGAAmG;AACnG,oFAAoF;AACpF,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,MAAc;IAC/D,OAAO,QAAQ,KAAK,IAAI,MAAM,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC;AAEjC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AAEpC,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,MAAM,KAAK,WAAW,CAAC;AAChC,CAAC","sourcesContent":["export const GHOST_USER_ID_PREFIX = 'ghost_';\n\nexport function isGhostUserId(userId: string): boolean {\n return userId.startsWith(GHOST_USER_ID_PREFIX);\n}\n\nexport function buildGhostUserId(nowMs: number, suffix: string): string {\n return `${GHOST_USER_ID_PREFIX}${nowMs}_${suffix}`;\n}\n\n// Its `req_` part never reads as a clock reading, so it cannot collide with a `buildGhostUserId`\n// id.\nexport function buildGhostUserIdForRequest(requestId: string): string {\n return `${GHOST_USER_ID_PREFIX}req_${requestId}`;\n}\n\nexport function buildSportGameId(nowMs: number, suffix: string): string {\n return `${nowMs}_${suffix}`;\n}\n\n// Some stored weeks hold a date-derived `week-{YYYY-MM-DD}` id; a minted id never takes that form,\n// and never derives from the date, so two weeks starting on one day stay two weeks.\nexport function buildScheduleWeekId(nowMs: number, suffix: string): string {\n return `week_${nowMs}_${suffix}`;\n}\n\nexport const BYE_TEAM_ID = 'bye';\n\nexport const BYE_TEAM_LABEL = 'Bye';\n\nexport function isByeTeamId(teamId: string): boolean {\n return teamId === BYE_TEAM_ID;\n}\n"]}
1
+ {"version":3,"file":"minted-ids.js","sourceRoot":"","sources":["../../src/ids/minted-ids.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAE7C,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,MAAc;IAC5D,OAAO,GAAG,oBAAoB,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;AACrD,CAAC;AAED,iGAAiG;AACjG,MAAM;AACN,MAAM,UAAU,0BAA0B,CAAC,SAAiB;IAC1D,OAAO,GAAG,oBAAoB,OAAO,SAAS,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,SAAiB;IACrE,OAAO,OAAO,SAAS,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,MAAc;IAC5D,OAAO,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,mGAAmG;AACnG,oFAAoF;AACpF,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,MAAc;IAC/D,OAAO,QAAQ,KAAK,IAAI,MAAM,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC;AAEjC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AAEpC,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,MAAM,KAAK,WAAW,CAAC;AAChC,CAAC","sourcesContent":["export const GHOST_USER_ID_PREFIX = 'ghost_';\n\nexport function isGhostUserId(userId: string): boolean {\n return userId.startsWith(GHOST_USER_ID_PREFIX);\n}\n\nexport function buildGhostUserId(nowMs: number, suffix: string): string {\n return `${GHOST_USER_ID_PREFIX}${nowMs}_${suffix}`;\n}\n\n// Its `req_` part never reads as a clock reading, so it cannot collide with a `buildGhostUserId`\n// id.\nexport function buildGhostUserIdForRequest(requestId: string): string {\n return `${GHOST_USER_ID_PREFIX}req_${requestId}`;\n}\n\nexport function buildHardwareLoanContractIdForRequest(requestId: string): string {\n return `req_${requestId}`;\n}\n\nexport function buildSportGameId(nowMs: number, suffix: string): string {\n return `${nowMs}_${suffix}`;\n}\n\n// Some stored weeks hold a date-derived `week-{YYYY-MM-DD}` id; a minted id never takes that form,\n// and never derives from the date, so two weeks starting on one day stay two weeks.\nexport function buildScheduleWeekId(nowMs: number, suffix: string): string {\n return `week_${nowMs}_${suffix}`;\n}\n\nexport const BYE_TEAM_ID = 'bye';\n\nexport const BYE_TEAM_LABEL = 'Bye';\n\nexport function isByeTeamId(teamId: string): boolean {\n return teamId === BYE_TEAM_ID;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/migration-console/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/migration-console/manifest.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
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';
2
+ import { MAX_MIGRATION_PAGE_SIZE } from './run-state.js';
4
3
  export const MIGRATION_STEP_KIND_KEYS = [
5
4
  'executable',
6
5
  'productControl',
@@ -263,7 +262,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
263
262
  summary: 'Each `users` document becomes its profile and its owner-only private document, every account active.',
264
263
  owningStep: 'auth',
265
264
  dependsOn: [A.verifyV1DisplayNamesUnique, A.verifyV1TextFitsLimits],
266
- maxPageSize: Math.floor(MIGRATION_COMMIT_WRITE_LIMIT / 2),
267
265
  }),
268
266
  verifyStep(A.verifyUserProfiles, {
269
267
  title: 'Verify the profiles',
@@ -287,7 +285,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
287
285
  summary: 'Each pre-Q-Sports career total becomes its sport’s `historicalStats` document.',
288
286
  owningStep: 'stat-data-model',
289
287
  dependsOn: [A.copyUserProfiles],
290
- maxPageSize: Math.floor(MIGRATION_COMMIT_WRITE_LIMIT / SPORT_KEYS.length),
291
288
  }),
292
289
  verifyStep(A.verifyHistoricalStats, {
293
290
  title: 'Verify the historical baselines',
@@ -300,7 +297,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
300
297
  summary: 'One reservation per copied profile.',
301
298
  owningStep: 'auth',
302
299
  dependsOn: [A.copyUserProfiles, A.verifyV1DisplayNamesUnique],
303
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
304
300
  }),
305
301
  verifyStep(A.verifyReservedDisplayNames, {
306
302
  title: 'Verify the display-name reservations',
@@ -310,9 +306,9 @@ export const MIGRATION_CUTOVER_MANIFEST = [
310
306
  }),
311
307
  copyStep(A.migratePublicUsers, {
312
308
  title: 'Migrate the public identities in place',
313
- summary: 'Each `publicUsers` document is rewritten where it sits: epoch timestamps, the recomputed lowercase name, the ghost flag.',
309
+ summary: "Each `publicUsers` document is rewritten where it sits: an account's card from its copied profile, a ghost's from its own name.",
314
310
  owningStep: 'q-core',
315
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
311
+ dependsOn: [A.copyUserProfiles],
316
312
  }),
317
313
  verifyStep(A.verifyPublicUsers, {
318
314
  title: 'Verify the public identities',
@@ -339,7 +335,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
339
335
  summary: 'Each league under its id — closed leagues included; its pictures arrive with the picture carry.',
340
336
  owningStep: 'q-core',
341
337
  dependsOn: [A.verifyV1LeagueCapacity, A.verifyV1TextFitsLimits],
342
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
343
338
  }),
344
339
  verifyStep(A.verifySportLeagues, {
345
340
  title: 'Verify the leagues',
@@ -352,7 +347,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
352
347
  summary: 'Each team under its id, its season lines in its sport’s shape.',
353
348
  owningStep: 'q-core',
354
349
  dependsOn: [A.verifyV1LeagueCapacity, A.verifyV1TextFitsLimits],
355
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
356
350
  }),
357
351
  verifyStep(A.verifyLeagueTeams, {
358
352
  title: 'Verify the teams',
@@ -365,7 +359,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
365
359
  summary: 'Each membership under its compound id, `member` becoming `player`; one whose team was not copied into its league is left behind and reported.',
366
360
  owningStep: 'q-core',
367
361
  dependsOn: [A.copyLeagueTeams],
368
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
369
362
  }),
370
363
  verifyStep(A.verifyTeamMemberships, {
371
364
  title: 'Verify the memberships',
@@ -378,7 +371,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
378
371
  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.',
379
372
  owningStep: 'high-risk-callables',
380
373
  dependsOn: [A.copyLeagueTeams, A.copyTeamMemberships, A.verifyV1TextFitsLimits],
381
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
382
374
  }),
383
375
  verifyStep(A.verifyTeamInvitations, {
384
376
  title: 'Verify the invitations',
@@ -391,7 +383,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
391
383
  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.',
392
384
  owningStep: 'high-risk-callables',
393
385
  dependsOn: [A.copyLeagueTeams, A.copyTeamMemberships, A.verifyV1TextFitsLimits],
394
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
395
386
  }),
396
387
  verifyStep(A.verifyTeamJoinRequests, {
397
388
  title: 'Verify the join requests',
@@ -404,7 +395,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
404
395
  summary: 'Each signup under its built id; a signup whose player already joined a team in the league is left behind and reported.',
405
396
  owningStep: 'high-risk-callables',
406
397
  dependsOn: [A.copyTeamMemberships],
407
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
408
398
  }),
409
399
  verifyStep(A.verifyLeagueFreeAgents, {
410
400
  title: 'Verify the free-agent signups',
@@ -417,7 +407,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
417
407
  summary: 'Every signed waiver, a ghost’s included, under its id; its signature file stays where it is.',
418
408
  owningStep: 'uploads-and-media',
419
409
  dependsOn: [A.copyWaiverTemplates],
420
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
421
410
  }),
422
411
  verifyStep(A.verifySignedWaivers, {
423
412
  title: 'Verify the signed waivers',
@@ -431,7 +420,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
431
420
  owningStep: 'high-risk-callables',
432
421
  dependsOn: [A.verifyV1HardwareContractIdsUnique],
433
422
  resumeKey: 'The V1 collections in turn, each by document id; the resume key is `{collection}/{id}`.',
434
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
435
423
  }),
436
424
  verifyStep(A.verifyHardwareLoanContracts, {
437
425
  title: 'Verify the hardware loan contracts',
@@ -673,7 +661,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
673
661
  summary: 'The `waivers` collection.',
674
662
  owningStep: 'high-risk-callables',
675
663
  dependsOn: [A.verifyWaiverTemplates],
676
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
677
664
  consumes: [A.copyWaiverTemplates, A.verifyWaiverTemplates, A.verifyV1TextFitsLimits],
678
665
  }),
679
666
  deleteStep(A.deleteV1Users, {
@@ -687,8 +674,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
687
674
  A.verifyUserProfiles,
688
675
  A.copyHistoricalStats,
689
676
  A.verifyHistoricalStats,
690
- A.migratePublicUsers,
691
- A.verifyPublicUsers,
692
677
  A.verifyV1DisplayNamesUnique,
693
678
  A.verifyV1TextFitsLimits,
694
679
  ],
@@ -698,7 +683,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
698
683
  summary: 'The `teamInvites` collection.',
699
684
  owningStep: 'high-risk-callables',
700
685
  dependsOn: [A.verifyTeamInvitations],
701
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
702
686
  consumes: [A.copyTeamInvitations, A.verifyTeamInvitations, A.verifyV1TextFitsLimits],
703
687
  }),
704
688
  deleteStep(A.deleteV1JoinRequests, {
@@ -706,7 +690,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
706
690
  summary: 'The `joinRequests` collection.',
707
691
  owningStep: 'high-risk-callables',
708
692
  dependsOn: [A.verifyTeamJoinRequests],
709
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
710
693
  consumes: [A.copyTeamJoinRequests, A.verifyTeamJoinRequests, A.verifyV1TextFitsLimits],
711
694
  }),
712
695
  deleteStep(A.deleteV1FreeAgentSignups, {
@@ -714,7 +697,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
714
697
  summary: 'The `freeAgentSignups` collection, left-behind signups included.',
715
698
  owningStep: 'high-risk-callables',
716
699
  dependsOn: [A.verifyLeagueFreeAgents],
717
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
718
700
  consumes: [A.copyLeagueFreeAgents, A.verifyLeagueFreeAgents],
719
701
  }),
720
702
  deleteStep(A.deleteV1TeamMembers, {
@@ -722,7 +704,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
722
704
  summary: 'The `teamMembers` collection.',
723
705
  owningStep: 'q-core',
724
706
  dependsOn: [A.verifyTeamMemberships],
725
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
726
707
  consumes: [A.copyTeamMemberships, A.verifyTeamMemberships],
727
708
  }),
728
709
  deleteStep(A.deleteV1Teams, {
@@ -730,7 +711,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
730
711
  summary: 'The `teams` collection; a team still holding a subcollection is reported and kept.',
731
712
  owningStep: 'q-core',
732
713
  dependsOn: [A.verifyLeagueTeams],
733
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
734
714
  consumes: [
735
715
  A.copyLeagueTeams,
736
716
  A.verifyLeagueTeams,
@@ -767,7 +747,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
767
747
  summary: 'The `waiverSignatures` records; the files stay, named by the copied records.',
768
748
  owningStep: 'uploads-and-media',
769
749
  dependsOn: [A.verifySignedWaivers],
770
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
771
750
  consumes: [A.copySignedWaivers, A.verifySignedWaivers],
772
751
  }),
773
752
  deleteStep(A.deleteV1HardwareContracts, {
@@ -776,7 +755,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
776
755
  owningStep: 'high-risk-callables',
777
756
  dependsOn: [A.verifyHardwareLoanContracts],
778
757
  resumeKey: 'The V1 collections in turn, each by document id; the resume key is `{collection}/{id}`.',
779
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
780
758
  consumes: [
781
759
  A.copyHardwareLoanContracts,
782
760
  A.verifyHardwareLoanContracts,
@@ -810,7 +788,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
810
788
  A.validateStats,
811
789
  A.deleteV1GameRosters,
812
790
  ],
813
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
814
791
  consumes: [
815
792
  A.copySportGames,
816
793
  A.verifySportGames,
@@ -837,7 +814,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
837
814
  owningStep: 'q-core',
838
815
  dependsOn: [A.verifySportLeagues, A.verifyV1Pictures],
839
816
  orderedAfter: [A.verifyLeaguePlayerStats, A.deleteV1LeagueChats],
840
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
841
817
  consumes: [
842
818
  A.copySportLeagues,
843
819
  A.verifySportLeagues,
@@ -853,7 +829,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
853
829
  summary: 'The `hallOfFame` collection, once every sport that keeps a hall of fame has its rebuilt document.',
854
830
  owningStep: 'stat-data-model',
855
831
  dependsOn: [A.verifySportHallOfFame],
856
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
857
832
  consumes: [A.verifySportHallOfFame],
858
833
  }),
859
834
  deleteStep(A.deleteV1ValidationReports, {
@@ -862,7 +837,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
862
837
  owningStep: 'stat-data-model',
863
838
  dependsOn: [A.checkpointV1FirestoreExport],
864
839
  orderedAfter: [A.validateStats],
865
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
866
840
  consumes: [],
867
841
  }),
868
842
  deleteStep(A.deleteV1AdminStats, {
@@ -870,7 +844,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
870
844
  summary: 'The `adminStats` collection. Nothing is copied: the dashboard counts are counted live.',
871
845
  owningStep: 'q-core',
872
846
  dependsOn: [A.checkpointV1FirestoreExport],
873
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
874
847
  consumes: [],
875
848
  }),
876
849
  verifyStep(A.verifyV1CommerceDiscardable, {
@@ -886,7 +859,6 @@ export const MIGRATION_CUTOVER_MANIFEST = [
886
859
  owningStep: 'high-risk-callables',
887
860
  dependsOn: [A.verifyV1CommerceDiscardable],
888
861
  resumeKey: 'The six store collections in turn, each by document id.',
889
- maxPageSize: MIGRATION_COMMIT_WRITE_LIMIT,
890
862
  consumes: [A.verifyV1CommerceDiscardable],
891
863
  }),
892
864
  {