@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.
Files changed (45) hide show
  1. package/dist/constants/sports.d.ts +0 -2
  2. package/dist/constants/sports.d.ts.map +1 -1
  3. package/dist/constants/sports.js +0 -3
  4. package/dist/constants/sports.js.map +1 -1
  5. package/dist/doc-schemas/aggregate-stats.d.ts +60 -31
  6. package/dist/doc-schemas/aggregate-stats.d.ts.map +1 -1
  7. package/dist/doc-schemas/aggregate-stats.js +15 -11
  8. package/dist/doc-schemas/aggregate-stats.js.map +1 -1
  9. package/dist/doc-schemas/game-stat-history.d.ts +2 -660
  10. package/dist/doc-schemas/game-stat-history.d.ts.map +1 -1
  11. package/dist/doc-schemas/game-stat-history.js +6 -23
  12. package/dist/doc-schemas/game-stat-history.js.map +1 -1
  13. package/dist/doc-schemas/league-team.d.ts +767 -14
  14. package/dist/doc-schemas/league-team.d.ts.map +1 -1
  15. package/dist/doc-schemas/league-team.js +21 -5
  16. package/dist/doc-schemas/league-team.js.map +1 -1
  17. package/dist/doc-schemas/registry.d.ts +327 -227
  18. package/dist/doc-schemas/registry.d.ts.map +1 -1
  19. package/dist/doc-schemas/registry.js +2 -2
  20. package/dist/doc-schemas/registry.js.map +1 -1
  21. package/dist/ids/stat-event-ids.d.ts +0 -1
  22. package/dist/ids/stat-event-ids.d.ts.map +1 -1
  23. package/dist/ids/stat-event-ids.js +0 -8
  24. package/dist/ids/stat-event-ids.js.map +1 -1
  25. package/dist/paths/collections.d.ts +1 -0
  26. package/dist/paths/collections.d.ts.map +1 -1
  27. package/dist/paths/collections.js +1 -0
  28. package/dist/paths/collections.js.map +1 -1
  29. package/dist/paths/path-builders.d.ts +1 -2
  30. package/dist/paths/path-builders.d.ts.map +1 -1
  31. package/dist/paths/path-builders.js +2 -7
  32. package/dist/paths/path-builders.js.map +1 -1
  33. package/dist/schemas/stats.d.ts +2 -8
  34. package/dist/schemas/stats.d.ts.map +1 -1
  35. package/dist/schemas/stats.js +1 -4
  36. package/dist/schemas/stats.js.map +1 -1
  37. package/dist/schemas/uploads.js +1 -1
  38. package/dist/schemas/uploads.js.map +1 -1
  39. package/dist/sports/finalized-record.d.ts +4 -13
  40. package/dist/sports/finalized-record.d.ts.map +1 -1
  41. package/dist/sports/finalized-record.js +13 -66
  42. package/dist/sports/finalized-record.js.map +1 -1
  43. package/dist/upload-variables/picture-upload-variables.js +1 -1
  44. package/dist/upload-variables/picture-upload-variables.js.map +1 -1
  45. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"finalized-record.js","sourceRoot":"","sources":["../../src/sports/finalized-record.ts"],"names":[],"mappings":"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","sourcesContent":["import { MAX_STAT_HISTORY_PAGES, STAT_HISTORY_PAGE_SIZE } from '../constants/sports.js';\nimport type { GameStatEvent } from '../doc-schemas/game-stats.js';\nimport type {\n GameStatHistoryFirstPage,\n GameStatHistoryPage,\n} from '../doc-schemas/game-stat-history.js';\nimport { buildStatHistoryPageId } from '../ids/stat-event-ids.js';\nimport type { FinalizedGame } from './contribution.js';\nimport { replayGameStats } from './replay.js';\nimport type { AnySportAdapter } from './sport-adapter.js';\n\nexport type FinalizedRecordSnapshot = Omit<GameStatHistoryFirstPage, 'events' | 'pageCount'>;\n\nexport interface FinalizedRecordPage {\n readonly pageId: string;\n readonly page: GameStatHistoryPage;\n}\n\nexport function buildFinalizedRecordPages(\n events: readonly GameStatEvent[],\n snapshot: Pick<\n FinalizedGame,\n | 'leagueType'\n | 'teamIds'\n | 'rosterPlayerIds'\n | 'absentRosterPlayerIds'\n | 'nonScoringRosterPlayerIds'\n >,\n): FinalizedRecordPage[] {\n const ordered = [...events].sort((left, right) => left.sequence - right.sequence);\n const pageCount = Math.max(1, Math.ceil(ordered.length / STAT_HISTORY_PAGE_SIZE));\n if (pageCount > MAX_STAT_HISTORY_PAGES) {\n throw new RangeError(\n `A finalized record holds at most ${MAX_STAT_HISTORY_PAGES} pages; ${ordered.length} events need ${pageCount}.`,\n );\n }\n const pages: FinalizedRecordPage[] = [];\n for (let index = 0; index < pageCount; index += 1) {\n const slice = ordered.slice(\n index * STAT_HISTORY_PAGE_SIZE,\n (index + 1) * STAT_HISTORY_PAGE_SIZE,\n );\n const page: GameStatHistoryPage =\n index === 0\n ? {\n events: slice,\n pageCount,\n leagueType: snapshot.leagueType,\n teamIds: [...snapshot.teamIds],\n rosterPlayerIds: [...snapshot.rosterPlayerIds],\n absentRosterPlayerIds: [...snapshot.absentRosterPlayerIds],\n nonScoringRosterPlayerIds: [...snapshot.nonScoringRosterPlayerIds],\n }\n : { events: slice };\n pages.push({ pageId: buildStatHistoryPageId(index), page });\n }\n return pages;\n}\n\nexport function isFirstRecordPage(page: GameStatHistoryPage): page is GameStatHistoryFirstPage {\n return 'pageCount' in page;\n}\n\n// The pages as the record's collection lists them, in id order. They are one whole record only as\n// the exact set: the first page at `page_0000`, then a continuation page at each next id, as many in\n// all as the first page counts.\nexport function readFinalizedRecord(pages: readonly FinalizedRecordPage[]): {\n readonly snapshot: FinalizedRecordSnapshot;\n readonly events: GameStatEvent[];\n} {\n if (pages.length > MAX_STAT_HISTORY_PAGES) {\n throw new Error(`A finalized record holds at most ${MAX_STAT_HISTORY_PAGES} pages.`);\n }\n const [firstEntry, ...restEntries] = pages;\n const first = firstEntry?.page;\n if (first === undefined || !isFirstRecordPage(first))\n throw new Error('A finalized record starts with its first page.');\n if (first.pageCount !== pages.length) {\n throw new Error(`A finalized record of ${first.pageCount} pages was read as ${pages.length}.`);\n }\n pages.forEach(({ pageId, page }, index) => {\n if (pageId !== buildStatHistoryPageId(index)) {\n throw new Error(`A finalized record holds page ${pageId} at position ${index}.`);\n }\n if (index > 0 && isFirstRecordPage(page)) {\n throw new Error(`A finalized record holds a second first page at ${pageId}.`);\n }\n });\n const rest = restEntries.map(({ page }) => page);\n const events = [...first.events, ...rest.flatMap((page) => page.events)];\n events.forEach((event, index) => {\n if (index > 0 && (events[index - 1] as GameStatEvent).sequence >= event.sequence) {\n throw new Error(`A finalized record holds event ${event.eventId} out of sequence.`);\n }\n });\n const snapshot: FinalizedRecordSnapshot = {\n leagueType: first.leagueType,\n teamIds: first.teamIds,\n rosterPlayerIds: first.rosterPlayerIds,\n absentRosterPlayerIds: first.absentRosterPlayerIds,\n nonScoringRosterPlayerIds: first.nonScoringRosterPlayerIds,\n };\n return { snapshot, events };\n}\n\nexport function finalizedGameFromRecord(\n adapter: AnySportAdapter,\n pages: readonly FinalizedRecordPage[],\n): FinalizedGame {\n const { snapshot, events } = readFinalizedRecord(pages);\n return {\n leagueType: snapshot.leagueType,\n teamIds: snapshot.teamIds,\n stats: replayGameStats(adapter, snapshot, events),\n rosterPlayerIds: snapshot.rosterPlayerIds,\n absentRosterPlayerIds: snapshot.absentRosterPlayerIds,\n nonScoringRosterPlayerIds: snapshot.nonScoringRosterPlayerIds,\n };\n}\n"]}
1
+ {"version":3,"file":"finalized-record.js","sourceRoot":"","sources":["../../src/sports/finalized-record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAIpE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK9C,MAAM,UAAU,oBAAoB,CAClC,MAAgC,EAChC,QAOC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;QAC7C,MAAM,IAAI,UAAU,CAClB,oCAAoC,wBAAwB,gBAAgB,MAAM,CAAC,MAAM,GAAG,CAC7F,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACzE,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC9B,eAAe,EAAE,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC;QAC9C,qBAAqB,EAAE,CAAC,GAAG,QAAQ,CAAC,qBAAqB,CAAC;QAC1D,yBAAyB,EAAE,CAAC,GAAG,QAAQ,CAAC,yBAAyB,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,OAAwB,EACxB,MAA6B;IAE7B,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC;IACvC,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;QACjD,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;QACrD,yBAAyB,EAAE,QAAQ,CAAC,yBAAyB;KAC9D,CAAC;AACJ,CAAC","sourcesContent":["import { MAX_STAT_EVENTS_PER_GAME } from '../constants/business.js';\nimport type { GameStatEvent } from '../doc-schemas/game-stats.js';\nimport type { GameStatHistoryRecord } from '../doc-schemas/game-stat-history.js';\nimport type { FinalizedGame } from './contribution.js';\nimport { replayGameStats } from './replay.js';\nimport type { AnySportAdapter } from './sport-adapter.js';\n\nexport type FinalizedRecordSnapshot = Omit<GameStatHistoryRecord, 'events'>;\n\nexport function buildFinalizedRecord(\n events: readonly GameStatEvent[],\n snapshot: Pick<\n FinalizedGame,\n | 'leagueType'\n | 'teamIds'\n | 'rosterPlayerIds'\n | 'absentRosterPlayerIds'\n | 'nonScoringRosterPlayerIds'\n >,\n): GameStatHistoryRecord {\n if (events.length > MAX_STAT_EVENTS_PER_GAME) {\n throw new RangeError(\n `A finalized record holds at most ${MAX_STAT_EVENTS_PER_GAME} events, not ${events.length}.`,\n );\n }\n return {\n events: [...events].sort((left, right) => left.sequence - right.sequence),\n leagueType: snapshot.leagueType,\n teamIds: [...snapshot.teamIds],\n rosterPlayerIds: [...snapshot.rosterPlayerIds],\n absentRosterPlayerIds: [...snapshot.absentRosterPlayerIds],\n nonScoringRosterPlayerIds: [...snapshot.nonScoringRosterPlayerIds],\n };\n}\n\nexport function finalizedGameFromRecord(\n adapter: AnySportAdapter,\n record: GameStatHistoryRecord,\n): FinalizedGame {\n const { events, ...snapshot } = record;\n return {\n leagueType: snapshot.leagueType,\n teamIds: snapshot.teamIds,\n stats: replayGameStats(adapter, snapshot, events),\n rosterPlayerIds: snapshot.rosterPlayerIds,\n absentRosterPlayerIds: snapshot.absentRosterPlayerIds,\n nonScoringRosterPlayerIds: snapshot.nonScoringRosterPlayerIds,\n };\n}\n"]}
@@ -11,7 +11,7 @@ export const PictureUploadVariablesSchema = z
11
11
  .object({
12
12
  target: PictureUploadTargetSchema,
13
13
  file: z.instanceof(File),
14
- claim: ClientMediaClaimSchema.optional(),
14
+ claim: ClientMediaClaimSchema.strict().optional(),
15
15
  onProgress: onProgressSchema,
16
16
  signal: z.instanceof(AbortSignal).optional(),
17
17
  })
@@ -1 +1 @@
1
- {"version":3,"file":"picture-upload-variables.js","sourceRoot":"","sources":["../../src/upload-variables/picture-upload-variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMpD,MAAM,0BAA0B,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAC7F,CAAC;AAEF,qGAAqG;AACrG,4FAA4F;AAC5F,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,kBAAkB,CAC3D,QAAQ,EACR,0BAGC,CAC2C,CAAC;AAE/C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACN,MAAM,EAAE,yBAAyB;IACjC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;IACxB,KAAK,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IACxC,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC;KACD,MAAM,EAAE,CAAC","sourcesContent":["import { z } from 'zod';\nimport { ClientMediaClaimSchema } from '@ttt-productions/media-schemas';\nimport { PICTURE_ORIGIN_KEYS } from '../media/file-origins.js';\nimport type { PictureOrigin } from '../media/file-origins.js';\nimport { PICTURE_TARGETS } from '../schemas/uploads.js';\nimport { onProgressSchema } from './on-progress.js';\n\nexport type PictureUploadTarget = {\n [O in PictureOrigin]: { origin: O; targetInfo: z.infer<(typeof PICTURE_TARGETS)[O]['schema']> };\n}[PictureOrigin];\n\nconst pictureUploadTargetOptions = PICTURE_ORIGIN_KEYS.map((origin) =>\n z.object({ origin: z.literal(origin), targetInfo: PICTURE_TARGETS[origin].schema }).strict(),\n);\n\n// The mapped options are one object schema per origin; TypeScript cannot follow the origin-to-target\n// pairing through the map, so the union is typed by `PictureUploadTarget`, which states it.\nexport const PictureUploadTargetSchema = z.discriminatedUnion(\n 'origin',\n pictureUploadTargetOptions as [\n (typeof pictureUploadTargetOptions)[number],\n ...(typeof pictureUploadTargetOptions)[number][],\n ],\n) as unknown as z.ZodType<PictureUploadTarget>;\n\nexport const PictureUploadVariablesSchema = z\n .object({\n target: PictureUploadTargetSchema,\n file: z.instanceof(File),\n claim: ClientMediaClaimSchema.optional(),\n onProgress: onProgressSchema,\n signal: z.instanceof(AbortSignal).optional(),\n })\n .strict();\nexport type PictureUploadVariables = z.infer<typeof PictureUploadVariablesSchema>;\n"]}
1
+ {"version":3,"file":"picture-upload-variables.js","sourceRoot":"","sources":["../../src/upload-variables/picture-upload-variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMpD,MAAM,0BAA0B,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAC7F,CAAC;AAEF,qGAAqG;AACrG,4FAA4F;AAC5F,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,kBAAkB,CAC3D,QAAQ,EACR,0BAGC,CAC2C,CAAC;AAE/C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACN,MAAM,EAAE,yBAAyB;IACjC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;IACxB,KAAK,EAAE,sBAAsB,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjD,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC;KACD,MAAM,EAAE,CAAC","sourcesContent":["import { z } from 'zod';\nimport { ClientMediaClaimSchema } from '@ttt-productions/media-schemas';\nimport { PICTURE_ORIGIN_KEYS } from '../media/file-origins.js';\nimport type { PictureOrigin } from '../media/file-origins.js';\nimport { PICTURE_TARGETS } from '../schemas/uploads.js';\nimport { onProgressSchema } from './on-progress.js';\n\nexport type PictureUploadTarget = {\n [O in PictureOrigin]: { origin: O; targetInfo: z.infer<(typeof PICTURE_TARGETS)[O]['schema']> };\n}[PictureOrigin];\n\nconst pictureUploadTargetOptions = PICTURE_ORIGIN_KEYS.map((origin) =>\n z.object({ origin: z.literal(origin), targetInfo: PICTURE_TARGETS[origin].schema }).strict(),\n);\n\n// The mapped options are one object schema per origin; TypeScript cannot follow the origin-to-target\n// pairing through the map, so the union is typed by `PictureUploadTarget`, which states it.\nexport const PictureUploadTargetSchema = z.discriminatedUnion(\n 'origin',\n pictureUploadTargetOptions as [\n (typeof pictureUploadTargetOptions)[number],\n ...(typeof pictureUploadTargetOptions)[number][],\n ],\n) as unknown as z.ZodType<PictureUploadTarget>;\n\nexport const PictureUploadVariablesSchema = z\n .object({\n target: PictureUploadTargetSchema,\n file: z.instanceof(File),\n claim: ClientMediaClaimSchema.strict().optional(),\n onProgress: onProgressSchema,\n signal: z.instanceof(AbortSignal).optional(),\n })\n .strict();\nexport type PictureUploadVariables = z.infer<typeof PictureUploadVariablesSchema>;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttt-productions/q-core",
3
- "version": "0.1.45",
3
+ "version": "0.1.47",
4
4
  "description": "Core types, Firestore path constants, zod schemas, and shared constants for Q-Sports",
5
5
  "repository": {
6
6
  "type": "git",
@@ -79,7 +79,7 @@
79
79
  "dependencies": {
80
80
  "@ttt-productions/edge-protocol-core": "^0.1.15",
81
81
  "@ttt-productions/input-format-core": "^0.1.4",
82
- "@ttt-productions/media-schemas": "^0.14.15",
82
+ "@ttt-productions/media-schemas": "^0.14.16",
83
83
  "@ttt-productions/notification-core": "^0.15.23",
84
84
  "@ttt-productions/theme-core": "^0.12.16",
85
85
  "zod": "^4.4.3"