@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.
- package/dist/constants/sports.d.ts +3 -3
- package/dist/constants/sports.js +3 -3
- package/dist/constants/sports.js.map +1 -1
- package/dist/doc-schemas/migration-console.d.ts.map +1 -1
- package/dist/doc-schemas/migration-console.js +2 -2
- package/dist/doc-schemas/migration-console.js.map +1 -1
- package/dist/ids/minted-ids.d.ts +1 -0
- package/dist/ids/minted-ids.d.ts.map +1 -1
- package/dist/ids/minted-ids.js +3 -0
- package/dist/ids/minted-ids.js.map +1 -1
- package/dist/migration-console/manifest.d.ts.map +1 -1
- package/dist/migration-console/manifest.js +3 -31
- package/dist/migration-console/manifest.js.map +1 -1
- package/dist/migration-console/run-state.d.ts +1 -2
- package/dist/migration-console/run-state.d.ts.map +1 -1
- package/dist/migration-console/run-state.js +1 -3
- package/dist/migration-console/run-state.js.map +1 -1
- package/dist/schemas/awards.d.ts +0 -2
- package/dist/schemas/awards.d.ts.map +1 -1
- package/dist/schemas/awards.js +0 -1
- package/dist/schemas/awards.js.map +1 -1
- package/dist/schemas/hardware-loan-contracts.d.ts +1 -0
- package/dist/schemas/hardware-loan-contracts.d.ts.map +1 -1
- package/dist/schemas/hardware-loan-contracts.js +1 -0
- package/dist/schemas/hardware-loan-contracts.js.map +1 -1
- package/dist/schemas/users.d.ts +3 -0
- package/dist/schemas/users.d.ts.map +1 -1
- package/dist/schemas/users.js +3 -0
- package/dist/schemas/users.js.map +1 -1
- package/dist/sports/curling-scoring.d.ts +4 -4
- package/dist/sports/curling-scoring.d.ts.map +1 -1
- package/dist/sports/curling-scoring.js +5 -5
- package/dist/sports/curling-scoring.js.map +1 -1
- package/dist/types/unions.d.ts +1 -0
- package/dist/types/unions.d.ts.map +1 -1
- package/dist/types/unions.js +1 -0
- package/dist/types/unions.js.map +1 -1
- 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
|
|
37
|
-
readonly roundsComplete: "Every
|
|
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
|
|
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];
|
package/dist/constants/sports.js
CHANGED
|
@@ -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
|
|
42
|
-
roundsComplete: 'Every
|
|
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
|
|
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,
|
|
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;
|
|
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(
|
|
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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EACL,iCAAiC,EACjC,0BAA0B,EAC1B,gCAAgC,EAChC,yBAAyB,GAC1B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/F,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;AACxF,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAElE,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"migration-console.js","sourceRoot":"","sources":["../../src/doc-schemas/migration-console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EACL,qCAAqC,EACrC,iCAAiC,EACjC,0BAA0B,EAC1B,gCAAgC,EAChC,yBAAyB,GAC1B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/F,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;AACxF,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAElE,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,qCAAqC,CAAC;IACtE,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,WAAW;CACpB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,UAAU,EAAE,WAAW;CACxB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,WAAW,EAAE,0BAA0B;IACvC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,eAAe,EAAE,YAAY;IAC7B,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;IACxB,WAAW,EAAE,aAAa,CAAC,QAAQ,EAAE;IACrC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC;IACzC,KAAK,EAAE,WAAW;IAClB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,MAAM,EAAE,wBAAwB;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACzE,eAAe,EAAE,WAAW;IAC5B,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE;IAC9B,4BAA4B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpD,aAAa,EAAE,WAAW,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,UAAU,EAAE,aAAa;IACzB,gBAAgB,EAAE,YAAY;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,QAAQ,EAAE,uBAAuB;IACjC,GAAG,EAAE,wBAAwB,CAAC,QAAQ,EAAE;IACxC,OAAO,EAAE,wBAAwB,CAAC,QAAQ,EAAE;IAC5C,QAAQ,EAAE,yBAAyB,CAAC,QAAQ,EAAE;CAC/C,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,QAAQ,EAAE,uBAAuB;IACjC,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,YAAY;IAC1B,SAAS,EAAE,aAAa;IACxB,aAAa,EAAE,aAAa,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,gBAAgB,EAAE,+BAA+B;IACjD,iBAAiB,EAAE,aAAa,CAAC,QAAQ,EAAE;IAC3C,uBAAuB,EAAE,YAAY,CAAC,QAAQ,EAAE;IAChD,IAAI,EAAE,0BAA0B,CAAC,QAAQ,EAAE;IAC3C,SAAS,EAAE,aAAa;CACzB,CAAC,CAAC","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"]}
|
package/dist/ids/minted-ids.d.ts
CHANGED
|
@@ -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"}
|
package/dist/ids/minted-ids.js
CHANGED
|
@@ -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":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;
|
|
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 {
|
|
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:
|
|
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
|
-
|
|
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
|
{
|