@ttt-productions/q-core 0.1.45 → 0.1.47
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 +0 -2
- package/dist/constants/sports.d.ts.map +1 -1
- package/dist/constants/sports.js +0 -3
- package/dist/constants/sports.js.map +1 -1
- package/dist/doc-schemas/aggregate-stats.d.ts +60 -31
- package/dist/doc-schemas/aggregate-stats.d.ts.map +1 -1
- package/dist/doc-schemas/aggregate-stats.js +15 -11
- package/dist/doc-schemas/aggregate-stats.js.map +1 -1
- package/dist/doc-schemas/game-stat-history.d.ts +2 -660
- package/dist/doc-schemas/game-stat-history.d.ts.map +1 -1
- package/dist/doc-schemas/game-stat-history.js +6 -23
- package/dist/doc-schemas/game-stat-history.js.map +1 -1
- package/dist/doc-schemas/league-team.d.ts +767 -14
- package/dist/doc-schemas/league-team.d.ts.map +1 -1
- package/dist/doc-schemas/league-team.js +21 -5
- package/dist/doc-schemas/league-team.js.map +1 -1
- package/dist/doc-schemas/registry.d.ts +327 -227
- package/dist/doc-schemas/registry.d.ts.map +1 -1
- package/dist/doc-schemas/registry.js +2 -2
- package/dist/doc-schemas/registry.js.map +1 -1
- package/dist/ids/stat-event-ids.d.ts +0 -1
- package/dist/ids/stat-event-ids.d.ts.map +1 -1
- package/dist/ids/stat-event-ids.js +0 -8
- package/dist/ids/stat-event-ids.js.map +1 -1
- package/dist/paths/collections.d.ts +1 -0
- package/dist/paths/collections.d.ts.map +1 -1
- package/dist/paths/collections.js +1 -0
- package/dist/paths/collections.js.map +1 -1
- package/dist/paths/path-builders.d.ts +1 -2
- package/dist/paths/path-builders.d.ts.map +1 -1
- package/dist/paths/path-builders.js +2 -7
- package/dist/paths/path-builders.js.map +1 -1
- package/dist/schemas/stats.d.ts +2 -8
- package/dist/schemas/stats.d.ts.map +1 -1
- package/dist/schemas/stats.js +1 -4
- package/dist/schemas/stats.js.map +1 -1
- package/dist/schemas/uploads.js +1 -1
- package/dist/schemas/uploads.js.map +1 -1
- package/dist/sports/finalized-record.d.ts +4 -13
- package/dist/sports/finalized-record.d.ts.map +1 -1
- package/dist/sports/finalized-record.js +13 -66
- package/dist/sports/finalized-record.js.map +1 -1
- package/dist/upload-variables/picture-upload-variables.js +1 -1
- package/dist/upload-variables/picture-upload-variables.js.map +1 -1
- package/package.json +2 -2
|
@@ -19,8 +19,6 @@ export declare const MAX_STAT_EVENTS_PER_WRITE = 200;
|
|
|
19
19
|
export declare const MAX_GAME_STATS_CORRECTION_TARGETS = 200;
|
|
20
20
|
export declare const MAX_STATS_REPAIR_LISTED_CHANGES = 500;
|
|
21
21
|
export declare const MAX_STATS_VALIDATION_DISCREPANCIES = 500;
|
|
22
|
-
export declare const STAT_HISTORY_PAGE_SIZE = 1000;
|
|
23
|
-
export declare const MAX_STAT_HISTORY_PAGES: number;
|
|
24
22
|
export declare const FOOTBALL_POINTS_BY_EVENT_TYPE: {
|
|
25
23
|
readonly FOOTBALL_6PT: 6;
|
|
26
24
|
readonly FOOTBALL_2PT: 2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sports.d.ts","sourceRoot":"","sources":["../../src/constants/sports.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sports.d.ts","sourceRoot":"","sources":["../../src/constants/sports.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,+BAA+B;;;;;;;;CAQgB,CAAC;AAI7D,eAAO,MAAM,gCAAgC;;;;CAIe,CAAC;AAE7D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,eAAO,MAAM,cAAc,SAAU,CAAC;AAItC,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,eAAO,MAAM,iCAAiC,MAAM,CAAC;AAErD,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,eAAO,MAAM,kCAAkC,MAAM,CAAC;AAEtD,eAAO,MAAM,6BAA6B;;;;;CAKgB,CAAC;AAE3D,eAAO,MAAM,wBAAwB,2CAA2C,CAAC;AAEjF,eAAO,MAAM,0BAA0B,8CAA8C,CAAC;AAEtF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;CAmBqB,CAAC;AAE1D,eAAO,MAAM,4BAA4B,cAAc,CAAC;AACxD,eAAO,MAAM,iCAAiC,mHACoE,CAAC;AAEnH,eAAO,MAAM,wBAAwB;;;;;;;;CAaiB,CAAC;AAEvD,eAAO,MAAM,2BAA2B;;CAEuB,CAAC;AAEhE,eAAO,MAAM,kCAAkC,wBAAyB,CAAC;AACzE,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,kCAAkC,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
package/dist/constants/sports.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { BASKETBALL_ASSIST_EVENT_TYPE, BASKETBALL_BULK_EDIT_EVENT_TYPE, BASKETBALL_ONE_POINT_EVENT_TYPE, BASKETBALL_REBOUND_EVENT_TYPE, BASKETBALL_THREE_POINT_EVENT_TYPE, BASKETBALL_TIMEOUT_EVENT_TYPE, BASKETBALL_TWO_POINT_EVENT_TYPE, FOOTBALL_BULK_EDIT_EVENT_TYPE, FOOTBALL_ONE_POINT_EVENT_TYPE, FOOTBALL_SIX_POINT_EVENT_TYPE, FOOTBALL_TWO_POINT_EVENT_TYPE, } from '../types/sports.js';
|
|
2
|
-
import { MAX_STAT_EVENTS_PER_GAME } from './business.js';
|
|
3
2
|
export const BASKETBALL_POINTS_BY_EVENT_TYPE = {
|
|
4
3
|
[BASKETBALL_ONE_POINT_EVENT_TYPE]: 1,
|
|
5
4
|
[BASKETBALL_TWO_POINT_EVENT_TYPE]: 2,
|
|
@@ -25,8 +24,6 @@ export const MAX_STAT_EVENTS_PER_WRITE = 200;
|
|
|
25
24
|
export const MAX_GAME_STATS_CORRECTION_TARGETS = 200;
|
|
26
25
|
export const MAX_STATS_REPAIR_LISTED_CHANGES = 500;
|
|
27
26
|
export const MAX_STATS_VALIDATION_DISCREPANCIES = 500;
|
|
28
|
-
export const STAT_HISTORY_PAGE_SIZE = 1000;
|
|
29
|
-
export const MAX_STAT_HISTORY_PAGES = Math.ceil(MAX_STAT_EVENTS_PER_GAME / STAT_HISTORY_PAGE_SIZE);
|
|
30
27
|
export const FOOTBALL_POINTS_BY_EVENT_TYPE = {
|
|
31
28
|
[FOOTBALL_SIX_POINT_EVENT_TYPE]: 6,
|
|
32
29
|
[FOOTBALL_TWO_POINT_EVENT_TYPE]: 2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sports.js","sourceRoot":"","sources":["../../src/constants/sports.ts"],"names":[],"mappings":"AAAA,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;
|
|
1
|
+
{"version":3,"file":"sports.js","sourceRoot":"","sources":["../../src/constants/sports.ts"],"names":[],"mappings":"AAAA,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;AAY5B,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,mGAAmG;AACnG,uEAAuE;AACvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAE7C,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAG,CAAC;AAErD,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,SAAS,EAAE,sFAAsF;IACjG,eAAe,EACb,mFAAmF;IACrF,uBAAuB,EAAE,0CAA0C;IACnE,qBAAqB,EAAE,mEAAmE;IAC1F,aAAa,EACX,4FAA4F;CACvC,CAAC;AAE1D,MAAM,CAAC,MAAM,4BAA4B,GAAG,WAAW,CAAC;AACxD,MAAM,CAAC,MAAM,iCAAiC,GAC5C,gHAAgH,CAAC;AAEnH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,eAAe,EACb,8GAA8G;IAChH,gBAAgB,EACd,gIAAgI;IAClI,eAAe,EACb,mJAAmJ;IACrJ,cAAc,EACZ,kHAAkH;IACpH,mBAAmB,EACjB,4HAA4H;IAC9H,eAAe,EAAE,2CAA2C;IAC5D,aAAa,EAAE,wCAAwC;CACH,CAAC;AAEvD,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 {\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 {\n FinalizationNotReadyReason,\n GameRepairRefusal,\n StatEventRefusalCode,\n} 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// The most events one scoring write may carry: each event is a document created in the write's one\n// transaction, and a Firestore transaction commits at most 500 writes.\nexport const MAX_STAT_EVENTS_PER_WRITE = 200;\n\nexport const MAX_GAME_STATS_CORRECTION_TARGETS = 200;\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 bulkStale: 'The numbers changed while you were editing. Check the flagged values and save again.',\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 undoBelowZero:\n 'Undoing that play would leave a stat below zero, because a later entry already lowered it.',\n} as const satisfies Record<StatEventRefusalCode, string>;\n\nexport const STATS_MIGRATION_OPERATION_ID = 'migration';\nexport const STATS_MIGRATION_CORRECTION_REASON =\n 'The recorded result differs from what its recorded plays add up to; this correction keeps the recorded result.';\n\nexport const GAME_REPAIR_REFUSAL_COPY = {\n eventUnreadable:\n \"One of this game's recorded stats can no longer be read. Fix the event in the console, then repair the game.\",\n eventSequenceGap:\n \"This game's recorded stats are numbered with a gap or a repeat. Fix the event documents in the console, then restore the game.\",\n sourcesDisagree:\n \"This game's record, its stored numbers, and its recorded stats all disagree, so nothing says what was applied. Fix the game in the console first.\",\n scoreAmbiguous:\n \"The team's score was edited in two places to different values. Enter the score you want as a correction instead.\",\n fieldNotCorrectable:\n 'That number cannot be corrected for this sport. Restore the game from its recorded stats, or reopen it and score it again.',\n lineNotRostered: \"That player is not on this game's roster.\",\n teamNotInGame: 'That team is not playing in this game.',\n} as const satisfies Record<GameRepairRefusal, string>;\n\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"]}
|
|
@@ -119,34 +119,6 @@ export declare const SPORT_LINE_SCHEMAS: {
|
|
|
119
119
|
}, z.core.$strip>;
|
|
120
120
|
};
|
|
121
121
|
};
|
|
122
|
-
export declare const TeamSeasonStatsSchema: z.ZodUnion<(z.ZodObject<{
|
|
123
|
-
gamesPlayed: z.ZodNumber;
|
|
124
|
-
wins: z.ZodNumber;
|
|
125
|
-
losses: z.ZodNumber;
|
|
126
|
-
ties: z.ZodNumber;
|
|
127
|
-
pointsFor: z.ZodNumber;
|
|
128
|
-
pointsAgainst: z.ZodNumber;
|
|
129
|
-
}, z.core.$strip> | z.ZodObject<{
|
|
130
|
-
rebounds: z.ZodNumber;
|
|
131
|
-
assists: z.ZodNumber;
|
|
132
|
-
gamesPlayed: z.ZodNumber;
|
|
133
|
-
wins: z.ZodNumber;
|
|
134
|
-
losses: z.ZodNumber;
|
|
135
|
-
ties: z.ZodNumber;
|
|
136
|
-
pointsFor: z.ZodNumber;
|
|
137
|
-
pointsAgainst: z.ZodNumber;
|
|
138
|
-
}, z.core.$strip>)[]>;
|
|
139
|
-
export type TeamSeasonStats = z.infer<typeof TeamSeasonStatsSchema>;
|
|
140
|
-
export declare const PlayerSeasonStatsSchema: z.ZodUnion<(z.ZodObject<{
|
|
141
|
-
gamesPlayed: z.ZodNumber;
|
|
142
|
-
}, z.core.$strip> | z.ZodObject<{
|
|
143
|
-
fantasyPoints: z.ZodNumber;
|
|
144
|
-
points: z.ZodNumber;
|
|
145
|
-
rebounds: z.ZodNumber;
|
|
146
|
-
assists: z.ZodNumber;
|
|
147
|
-
gamesPlayed: z.ZodNumber;
|
|
148
|
-
}, z.core.$strip>)[]>;
|
|
149
|
-
export type PlayerSeasonStats = z.infer<typeof PlayerSeasonStatsSchema>;
|
|
150
122
|
export declare const UserLifetimeStatsSchema: z.ZodObject<{
|
|
151
123
|
basketball: z.ZodOptional<z.ZodObject<{
|
|
152
124
|
fantasyPoints: z.ZodNumber;
|
|
@@ -163,15 +135,72 @@ export declare const UserLifetimeStatsSchema: z.ZodObject<{
|
|
|
163
135
|
}, z.core.$strip>>;
|
|
164
136
|
}, z.core.$strip>;
|
|
165
137
|
export type UserLifetimeStats = z.infer<typeof UserLifetimeStatsSchema>;
|
|
166
|
-
export declare const
|
|
167
|
-
|
|
138
|
+
export declare const BasketballHallOfFameSchema: z.ZodObject<{
|
|
139
|
+
leagueType: z.ZodLiteral<"Basketball">;
|
|
140
|
+
playerStats: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
141
|
+
fantasyPoints: z.ZodNumber;
|
|
142
|
+
points: z.ZodNumber;
|
|
143
|
+
rebounds: z.ZodNumber;
|
|
144
|
+
assists: z.ZodNumber;
|
|
145
|
+
gamesPlayed: z.ZodNumber;
|
|
146
|
+
}, z.core.$strip> | z.ZodNever>;
|
|
147
|
+
updatedAt: z.ZodNumber;
|
|
148
|
+
}, z.core.$strip>;
|
|
149
|
+
export type BasketballHallOfFame = z.infer<typeof BasketballHallOfFameSchema>;
|
|
150
|
+
export declare const CurlingHallOfFameSchema: z.ZodObject<{
|
|
151
|
+
leagueType: z.ZodLiteral<"Curling">;
|
|
152
|
+
playerStats: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
168
153
|
fantasyPoints: z.ZodNumber;
|
|
169
154
|
points: z.ZodNumber;
|
|
170
155
|
rebounds: z.ZodNumber;
|
|
171
156
|
assists: z.ZodNumber;
|
|
172
157
|
gamesPlayed: z.ZodNumber;
|
|
173
|
-
}, z.core.$strip> | z.ZodNever
|
|
158
|
+
}, z.core.$strip> | z.ZodNever>;
|
|
174
159
|
updatedAt: z.ZodNumber;
|
|
175
160
|
}, z.core.$strip>;
|
|
161
|
+
export type CurlingHallOfFame = z.infer<typeof CurlingHallOfFameSchema>;
|
|
162
|
+
export declare const FootballHallOfFameSchema: z.ZodObject<{
|
|
163
|
+
leagueType: z.ZodLiteral<"Football">;
|
|
164
|
+
playerStats: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
165
|
+
fantasyPoints: z.ZodNumber;
|
|
166
|
+
points: z.ZodNumber;
|
|
167
|
+
rebounds: z.ZodNumber;
|
|
168
|
+
assists: z.ZodNumber;
|
|
169
|
+
gamesPlayed: z.ZodNumber;
|
|
170
|
+
}, z.core.$strip> | z.ZodNever>;
|
|
171
|
+
updatedAt: z.ZodNumber;
|
|
172
|
+
}, z.core.$strip>;
|
|
173
|
+
export type FootballHallOfFame = z.infer<typeof FootballHallOfFameSchema>;
|
|
174
|
+
export declare const SportHallOfFameSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
175
|
+
leagueType: z.ZodLiteral<"Basketball">;
|
|
176
|
+
playerStats: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
177
|
+
fantasyPoints: z.ZodNumber;
|
|
178
|
+
points: z.ZodNumber;
|
|
179
|
+
rebounds: z.ZodNumber;
|
|
180
|
+
assists: z.ZodNumber;
|
|
181
|
+
gamesPlayed: z.ZodNumber;
|
|
182
|
+
}, z.core.$strip> | z.ZodNever>;
|
|
183
|
+
updatedAt: z.ZodNumber;
|
|
184
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
185
|
+
leagueType: z.ZodLiteral<"Curling">;
|
|
186
|
+
playerStats: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
187
|
+
fantasyPoints: z.ZodNumber;
|
|
188
|
+
points: z.ZodNumber;
|
|
189
|
+
rebounds: z.ZodNumber;
|
|
190
|
+
assists: z.ZodNumber;
|
|
191
|
+
gamesPlayed: z.ZodNumber;
|
|
192
|
+
}, z.core.$strip> | z.ZodNever>;
|
|
193
|
+
updatedAt: z.ZodNumber;
|
|
194
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
195
|
+
leagueType: z.ZodLiteral<"Football">;
|
|
196
|
+
playerStats: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
197
|
+
fantasyPoints: z.ZodNumber;
|
|
198
|
+
points: z.ZodNumber;
|
|
199
|
+
rebounds: z.ZodNumber;
|
|
200
|
+
assists: z.ZodNumber;
|
|
201
|
+
gamesPlayed: z.ZodNumber;
|
|
202
|
+
}, z.core.$strip> | z.ZodNever>;
|
|
203
|
+
updatedAt: z.ZodNumber;
|
|
204
|
+
}, z.core.$strip>], "leagueType">;
|
|
176
205
|
export type SportHallOfFame = z.infer<typeof SportHallOfFameSchema>;
|
|
177
206
|
//# sourceMappingURL=aggregate-stats.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-stats.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/aggregate-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,yBAAyB;;;;;;;iBAAgC,CAAC;AACvE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,+BAA+B;;;;;;;;;iBAI1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,4BAA4B;;;;;;iBAEvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyByC,CAAC;AAQzE,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"aggregate-stats.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/aggregate-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,yBAAyB;;;;;;;iBAAgC,CAAC;AACvE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,+BAA+B;;;;;;;;;iBAI1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,4BAA4B;;;;;;iBAEvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyByC,CAAC;AAQzE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;iBAUnC,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAUxE,eAAO,MAAM,0BAA0B;;;;;;;;;;iBAAkC,CAAC;AAC1E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,uBAAuB;;;;;;;;;;iBAA+B,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,wBAAwB;;;;;;;;;;iBAAgC,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAIhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
|
@@ -48,19 +48,23 @@ export const SPORT_LINE_SCHEMAS = {
|
|
|
48
48
|
teamSeason: TeamSeasonBaseStatsSchema,
|
|
49
49
|
},
|
|
50
50
|
};
|
|
51
|
-
// Every sport's line is plain, so a line reads as the first sport's line it holds; the sport's own
|
|
52
|
-
// line in SPORT_LINE_SCHEMAS is what checks a line against its sport.
|
|
53
|
-
function lineOfAnySport(kind) {
|
|
54
|
-
return z.union(LEAGUE_TYPE_KEYS.map((leagueType) => SPORT_LINE_SCHEMAS[leagueType][kind]));
|
|
55
|
-
}
|
|
56
|
-
export const TeamSeasonStatsSchema = lineOfAnySport('teamSeason');
|
|
57
|
-
export const PlayerSeasonStatsSchema = lineOfAnySport('membershipRow');
|
|
58
51
|
export const UserLifetimeStatsSchema = z.object(Object.fromEntries(LEAGUE_TYPE_KEYS.map((leagueType) => [
|
|
59
52
|
SPORT_KEY_BY_LEAGUE_TYPE[leagueType],
|
|
60
53
|
SPORT_LINE_SCHEMAS[leagueType].lifetime.optional(),
|
|
61
54
|
])));
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
55
|
+
function sportHallOfFameOf(leagueType) {
|
|
56
|
+
return z.object({
|
|
57
|
+
leagueType: z.literal(leagueType),
|
|
58
|
+
playerStats: z.record(userIdSchema, SPORT_LINE_SCHEMAS[leagueType].hallOfFame),
|
|
59
|
+
updatedAt: epochMsSchema,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
export const BasketballHallOfFameSchema = sportHallOfFameOf('Basketball');
|
|
63
|
+
export const CurlingHallOfFameSchema = sportHallOfFameOf('Curling');
|
|
64
|
+
export const FootballHallOfFameSchema = sportHallOfFameOf('Football');
|
|
65
|
+
export const SportHallOfFameSchema = z.discriminatedUnion('leagueType', [
|
|
66
|
+
BasketballHallOfFameSchema,
|
|
67
|
+
CurlingHallOfFameSchema,
|
|
68
|
+
FootballHallOfFameSchema,
|
|
69
|
+
]);
|
|
66
70
|
//# sourceMappingURL=aggregate-stats.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-stats.js","sourceRoot":"","sources":["../../src/doc-schemas/aggregate-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAGhF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,mBAAmB,GAAG;IAC1B,WAAW,EAAE,WAAW;IACxB,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,WAAW;IACnB,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,WAAW;IACtB,aAAa,EAAE,WAAW;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAGvE,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,GAAG,mBAAmB;IACtB,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE,WAAW;CACrB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,WAAW,EAAE,WAAW;CACzB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,4BAA4B,GAAG,2BAA2B,CAAC,MAAM,CAAC;IAC7E,WAAW,EAAE,WAAW;CACzB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,UAAU,EAAE;QACV,UAAU,EAAE,2BAA2B;QACvC,aAAa,EAAE,4BAA4B;QAC3C,QAAQ,EAAE,4BAA4B;QACtC,UAAU,EAAE,4BAA4B;QACxC,QAAQ,EAAE,yBAAyB;QACnC,UAAU,EAAE,+BAA+B;KAC5C;IACD,OAAO,EAAE;QACP,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE;QACrB,aAAa,EAAE,sBAAsB;QACrC,QAAQ,EAAE,sBAAsB;QAChC,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE;QACrB,QAAQ,EAAE,sBAAsB;QAChC,UAAU,EAAE,yBAAyB;KACtC;IACD,QAAQ,EAAE;QACR,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE;QACrB,aAAa,EAAE,sBAAsB;QACrC,QAAQ,EAAE,sBAAsB;QAChC,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE;QACrB,QAAQ,EAAE,uBAAuB;QACjC,UAAU,EAAE,yBAAyB;KACtC;CACqE,CAAC;
|
|
1
|
+
{"version":3,"file":"aggregate-stats.js","sourceRoot":"","sources":["../../src/doc-schemas/aggregate-stats.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { LEAGUE_TYPE_KEYS, SPORT_KEY_BY_LEAGUE_TYPE } from '../types/sports.js';\nimport type { LeagueType } from '../types/sports.js';\nimport type { StatLineKind } from '../types/stats.js';\nimport { countSchema, epochMsSchema, userIdSchema } from './atoms.js';\nimport {\n BasketballPlayerStatsSchema,\n BasketballTeamStatsSchema,\n CurlingTeamStatsSchema,\n FootballTeamStatsSchema,\n} from './game-stats.js';\n\nconst teamSeasonBaseShape = {\n gamesPlayed: countSchema,\n wins: countSchema,\n losses: countSchema,\n ties: countSchema,\n pointsFor: countSchema,\n pointsAgainst: countSchema,\n};\n\nexport const TeamSeasonBaseStatsSchema = z.object(teamSeasonBaseShape);\nexport type TeamSeasonBaseStats = z.infer<typeof TeamSeasonBaseStatsSchema>;\n\nexport const BasketballTeamSeasonStatsSchema = z.object({\n ...teamSeasonBaseShape,\n rebounds: countSchema,\n assists: countSchema,\n});\nexport type BasketballTeamSeasonStats = z.infer<typeof BasketballTeamSeasonStatsSchema>;\n\nexport const GamesPlayedStatsSchema = z.object({\n gamesPlayed: countSchema,\n});\nexport type GamesPlayedStats = z.infer<typeof GamesPlayedStatsSchema>;\n\nexport const BasketballPlayerTotalsSchema = BasketballPlayerStatsSchema.extend({\n gamesPlayed: countSchema,\n});\nexport type BasketballPlayerTotals = z.infer<typeof BasketballPlayerTotalsSchema>;\n\nexport const SPORT_LINE_SCHEMAS = {\n Basketball: {\n gamePlayer: BasketballPlayerStatsSchema,\n membershipRow: BasketballPlayerTotalsSchema,\n lifetime: BasketballPlayerTotalsSchema,\n hallOfFame: BasketballPlayerTotalsSchema,\n gameTeam: BasketballTeamStatsSchema,\n teamSeason: BasketballTeamSeasonStatsSchema,\n },\n Curling: {\n gamePlayer: z.never(),\n membershipRow: GamesPlayedStatsSchema,\n lifetime: GamesPlayedStatsSchema,\n hallOfFame: z.never(),\n gameTeam: CurlingTeamStatsSchema,\n teamSeason: TeamSeasonBaseStatsSchema,\n },\n Football: {\n gamePlayer: z.never(),\n membershipRow: GamesPlayedStatsSchema,\n lifetime: GamesPlayedStatsSchema,\n hallOfFame: z.never(),\n gameTeam: FootballTeamStatsSchema,\n teamSeason: TeamSeasonBaseStatsSchema,\n },\n} as const satisfies Record<LeagueType, Record<StatLineKind, z.ZodType>>;\n\ntype LifetimeLinesShape = {\n [L in LeagueType as (typeof SPORT_KEY_BY_LEAGUE_TYPE)[L]]: z.ZodOptional<\n (typeof SPORT_LINE_SCHEMAS)[L]['lifetime']\n >;\n};\n\nexport const UserLifetimeStatsSchema = z.object(\n Object.fromEntries(\n LEAGUE_TYPE_KEYS.map(\n (leagueType) =>\n [\n SPORT_KEY_BY_LEAGUE_TYPE[leagueType],\n SPORT_LINE_SCHEMAS[leagueType].lifetime.optional(),\n ] as const,\n ),\n ) as LifetimeLinesShape,\n);\nexport type UserLifetimeStats = z.infer<typeof UserLifetimeStatsSchema>;\n\nfunction sportHallOfFameOf<L extends LeagueType>(leagueType: L) {\n return z.object({\n leagueType: z.literal(leagueType),\n playerStats: z.record(userIdSchema, SPORT_LINE_SCHEMAS[leagueType].hallOfFame),\n updatedAt: epochMsSchema,\n });\n}\n\nexport const BasketballHallOfFameSchema = sportHallOfFameOf('Basketball');\nexport type BasketballHallOfFame = z.infer<typeof BasketballHallOfFameSchema>;\n\nexport const CurlingHallOfFameSchema = sportHallOfFameOf('Curling');\nexport type CurlingHallOfFame = z.infer<typeof CurlingHallOfFameSchema>;\n\nexport const FootballHallOfFameSchema = sportHallOfFameOf('Football');\nexport type FootballHallOfFame = z.infer<typeof FootballHallOfFameSchema>;\n\nexport const SportHallOfFameSchema = z.discriminatedUnion('leagueType', [\n BasketballHallOfFameSchema,\n CurlingHallOfFameSchema,\n FootballHallOfFameSchema,\n]);\nexport type SportHallOfFame = z.infer<typeof SportHallOfFameSchema>;\n"]}
|