@ttt-productions/q-core 0.1.39 → 0.1.40

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 (83) hide show
  1. package/dist/constants/index.d.ts +1 -0
  2. package/dist/constants/index.d.ts.map +1 -1
  3. package/dist/constants/index.js +1 -0
  4. package/dist/constants/index.js.map +1 -1
  5. package/dist/constants/text-fields.d.ts +147 -0
  6. package/dist/constants/text-fields.d.ts.map +1 -0
  7. package/dist/{input-formats/input-formats.js → constants/text-fields.js} +50 -26
  8. package/dist/constants/text-fields.js.map +1 -0
  9. package/dist/doc-schemas/atoms.d.ts +0 -12
  10. package/dist/doc-schemas/atoms.d.ts.map +1 -1
  11. package/dist/doc-schemas/atoms.js +3 -28
  12. package/dist/doc-schemas/atoms.js.map +1 -1
  13. package/dist/doc-schemas/catalogs.d.ts.map +1 -1
  14. package/dist/doc-schemas/catalogs.js +4 -3
  15. package/dist/doc-schemas/catalogs.js.map +1 -1
  16. package/dist/doc-schemas/game-location.d.ts.map +1 -1
  17. package/dist/doc-schemas/game-location.js +7 -6
  18. package/dist/doc-schemas/game-location.js.map +1 -1
  19. package/dist/doc-schemas/league-team.d.ts.map +1 -1
  20. package/dist/doc-schemas/league-team.js +5 -4
  21. package/dist/doc-schemas/league-team.js.map +1 -1
  22. package/dist/doc-schemas/migration-console.d.ts.map +1 -1
  23. package/dist/doc-schemas/migration-console.js +4 -3
  24. package/dist/doc-schemas/migration-console.js.map +1 -1
  25. package/dist/doc-schemas/sport-game.d.ts.map +1 -1
  26. package/dist/doc-schemas/sport-game.js +5 -4
  27. package/dist/doc-schemas/sport-game.js.map +1 -1
  28. package/dist/doc-schemas/sport-league.d.ts.map +1 -1
  29. package/dist/doc-schemas/sport-league.js +5 -4
  30. package/dist/doc-schemas/sport-league.js.map +1 -1
  31. package/dist/doc-schemas/system.js +7 -6
  32. package/dist/doc-schemas/system.js.map +1 -1
  33. package/dist/doc-schemas/team-membership.js +5 -4
  34. package/dist/doc-schemas/team-membership.js.map +1 -1
  35. package/dist/doc-schemas/user-profile.d.ts.map +1 -1
  36. package/dist/doc-schemas/user-profile.js +5 -4
  37. package/dist/doc-schemas/user-profile.js.map +1 -1
  38. package/dist/doc-schemas/waiver-template.d.ts.map +1 -1
  39. package/dist/doc-schemas/waiver-template.js +5 -4
  40. package/dist/doc-schemas/waiver-template.js.map +1 -1
  41. package/dist/index.d.ts +0 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +0 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/schemas/app-config.d.ts.map +1 -1
  46. package/dist/schemas/app-config.js +8 -7
  47. package/dist/schemas/app-config.js.map +1 -1
  48. package/dist/schemas/atoms.d.ts.map +1 -1
  49. package/dist/schemas/atoms.js +8 -7
  50. package/dist/schemas/atoms.js.map +1 -1
  51. package/dist/schemas/index.d.ts +1 -0
  52. package/dist/schemas/index.d.ts.map +1 -1
  53. package/dist/schemas/index.js +1 -0
  54. package/dist/schemas/index.js.map +1 -1
  55. package/dist/schemas/leagues.d.ts.map +1 -1
  56. package/dist/schemas/leagues.js +5 -4
  57. package/dist/schemas/leagues.js.map +1 -1
  58. package/dist/schemas/schedules.d.ts.map +1 -1
  59. package/dist/schemas/schedules.js +3 -3
  60. package/dist/schemas/schedules.js.map +1 -1
  61. package/dist/schemas/scoring.d.ts +6 -6
  62. package/dist/schemas/scoring.d.ts.map +1 -1
  63. package/dist/schemas/scoring.js +4 -3
  64. package/dist/schemas/scoring.js.map +1 -1
  65. package/dist/schemas/text-field.d.ts +4 -0
  66. package/dist/schemas/text-field.d.ts.map +1 -0
  67. package/dist/schemas/text-field.js +12 -0
  68. package/dist/schemas/text-field.js.map +1 -0
  69. package/dist/schemas/waiver-templates.d.ts.map +1 -1
  70. package/dist/schemas/waiver-templates.js +4 -4
  71. package/dist/schemas/waiver-templates.js.map +1 -1
  72. package/dist/utils/index.d.ts +1 -0
  73. package/dist/utils/index.d.ts.map +1 -1
  74. package/dist/utils/index.js +1 -0
  75. package/dist/utils/index.js.map +1 -1
  76. package/dist/utils/text-field.d.ts +15 -0
  77. package/dist/utils/text-field.d.ts.map +1 -0
  78. package/dist/utils/text-field.js +32 -0
  79. package/dist/utils/text-field.js.map +1 -0
  80. package/package.json +1 -1
  81. package/dist/input-formats/input-formats.d.ts +0 -123
  82. package/dist/input-formats/input-formats.d.ts.map +0 -1
  83. package/dist/input-formats/input-formats.js.map +0 -1
@@ -19,4 +19,5 @@ export * from './uploads.js';
19
19
  export * from './users.js';
20
20
  export * from './waiver-templates.js';
21
21
  export * from './migration-console.js';
22
+ export * from './text-field.js';
22
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
@@ -19,4 +19,5 @@ export * from './uploads.js';
19
19
  export * from './users.js';
20
20
  export * from './waiver-templates.js';
21
21
  export * from './migration-console.js';
22
+ export * from './text-field.js';
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC","sourcesContent":["export * from './atoms.js';\nexport * from './awards.js';\nexport * from './hardware-loan-contracts.js';\nexport * from './account-settings.js';\nexport * from './admin-notifications.js';\nexport * from './admin-stats.js';\nexport * from './dead-letters.js';\nexport * from './app-config.js';\nexport * from './game-locations.js';\nexport * from './leagues.js';\nexport * from './pictures.js';\nexport * from './schedules.js';\nexport * from './scoring.js';\nexport * from './signed-waivers.js';\nexport * from './stats.js';\nexport * from './team-joining.js';\nexport * from './teams.js';\nexport * from './uploads.js';\nexport * from './users.js';\nexport * from './waiver-templates.js';\nexport * from './migration-console.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC","sourcesContent":["export * from './atoms.js';\nexport * from './awards.js';\nexport * from './hardware-loan-contracts.js';\nexport * from './account-settings.js';\nexport * from './admin-notifications.js';\nexport * from './admin-stats.js';\nexport * from './dead-letters.js';\nexport * from './app-config.js';\nexport * from './game-locations.js';\nexport * from './leagues.js';\nexport * from './pictures.js';\nexport * from './schedules.js';\nexport * from './scoring.js';\nexport * from './signed-waivers.js';\nexport * from './stats.js';\nexport * from './team-joining.js';\nexport * from './teams.js';\nexport * from './uploads.js';\nexport * from './users.js';\nexport * from './waiver-templates.js';\nexport * from './migration-console.js';\nexport * from './text-field.js';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"leagues.d.ts","sourceRoot":"","sources":["../../src/schemas/leagues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,eAAO,MAAM,iBAAiB,wDAA6C,CAAC;AAC5E,eAAO,MAAM,uBAAuB,wDAAmD,CAAC;AAExF,eAAO,MAAM,0BAA0B,6KAU7B,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9E,eAAO,MAAM,yBAAyB;;;;;;;;;;EAAqC,CAAC;AAE5E,eAAO,MAAM,yBAAyB,qEAIa,CAAC;AACpD,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAgB5E,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;kBAGV,CAAC;AACrC,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAC5F,eAAO,MAAM,kCAAkC;;kBAAkD,CAAC;AAClG,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,iCAAiC;;;;;;;;;;;;kBAGV,CAAC;AACrC,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAC5F,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;kBAMpC,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,uCAAuC;;;;;;;;kBAEzC,CAAC;AACZ,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,uCAAuC,CAC/C,CAAC;AAIF,eAAO,MAAM,wCAAwC;;;;;;;;;;kBAE1C,CAAC;AACZ,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,wCAAwC,CAChD,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;kBAE7B,CAAC;AACZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,eAAO,MAAM,4BAA4B;;;;;;;;;kBAO9B,CAAC;AACZ,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
1
+ {"version":3,"file":"leagues.d.ts","sourceRoot":"","sources":["../../src/schemas/leagues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,iBAAiB,wDAAsC,CAAC;AACrE,eAAO,MAAM,uBAAuB,wDAA4C,CAAC;AAEjF,eAAO,MAAM,0BAA0B,6KAU7B,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9E,eAAO,MAAM,yBAAyB;;;;;;;;;;EAAqC,CAAC;AAE5E,eAAO,MAAM,yBAAyB,qEAIa,CAAC;AACpD,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAgB5E,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;kBAGV,CAAC;AACrC,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAC5F,eAAO,MAAM,kCAAkC;;kBAAkD,CAAC;AAClG,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,iCAAiC;;;;;;;;;;;;kBAGV,CAAC;AACrC,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAC5F,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;kBAMpC,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,uCAAuC;;;;;;;;kBAEzC,CAAC;AACZ,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,uCAAuC,CAC/C,CAAC;AAIF,eAAO,MAAM,wCAAwC;;;;;;;;;;kBAE1C,CAAC;AACZ,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,wCAAwC,CAChD,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;kBAE7B,CAAC;AACZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,eAAO,MAAM,4BAA4B;;;;;;;;;kBAO9B,CAAC;AACZ,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import { z } from 'zod';
2
- import { LEAGUE_DESCRIPTION_INPUT_FORMAT, LEAGUE_TITLE_INPUT_FORMAT, } from '../input-formats/input-formats.js';
3
- import { calendarDateSchema, textFieldSchema, countSchema, epochMsSchema, leagueIdSchema, leagueModeSchema, leagueStatusSchema, leagueTypeSchema, } from '../doc-schemas/atoms.js';
2
+ import { LEAGUE_DESCRIPTION_INPUT, LEAGUE_TITLE_INPUT } from '../constants/text-fields.js';
3
+ import { calendarDateSchema, countSchema, epochMsSchema, leagueIdSchema, leagueModeSchema, leagueStatusSchema, leagueTypeSchema, } from '../doc-schemas/atoms.js';
4
+ import { textFieldSchema } from './text-field.js';
4
5
  import { playoffCutoffSchema, refineLeagueSettings } from '../doc-schemas/sport-league.js';
5
6
  import { waiverTemplateIdSchema } from '../doc-schemas/waiver-template.js';
6
- export const leagueTitleSchema = textFieldSchema(LEAGUE_TITLE_INPUT_FORMAT);
7
- export const leagueDescriptionSchema = textFieldSchema(LEAGUE_DESCRIPTION_INPUT_FORMAT);
7
+ export const leagueTitleSchema = textFieldSchema(LEAGUE_TITLE_INPUT);
8
+ export const leagueDescriptionSchema = textFieldSchema(LEAGUE_DESCRIPTION_INPUT);
8
9
  export const LEAGUE_SETTINGS_FIELD_KEYS = [
9
10
  'leagueTitle',
10
11
  'description',
@@ -1 +1 @@
1
- {"version":3,"file":"leagues.js","sourceRoot":"","sources":["../../src/schemas/leagues.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport {\n LEAGUE_DESCRIPTION_INPUT_FORMAT,\n LEAGUE_TITLE_INPUT_FORMAT,\n} from '../input-formats/input-formats.js';\nimport {\n calendarDateSchema,\n textFieldSchema,\n countSchema,\n epochMsSchema,\n leagueIdSchema,\n leagueModeSchema,\n leagueStatusSchema,\n leagueTypeSchema,\n} from '../doc-schemas/atoms.js';\nimport { playoffCutoffSchema, refineLeagueSettings } from '../doc-schemas/sport-league.js';\nimport { waiverTemplateIdSchema } from '../doc-schemas/waiver-template.js';\n\nexport const leagueTitleSchema = textFieldSchema(LEAGUE_TITLE_INPUT_FORMAT);\nexport const leagueDescriptionSchema = textFieldSchema(LEAGUE_DESCRIPTION_INPUT_FORMAT);\n\nexport const LEAGUE_SETTINGS_FIELD_KEYS = [\n 'leagueTitle',\n 'description',\n 'leagueStartDate',\n 'leagueEndDate',\n 'playoffCutoff',\n 'playoffCutoffComp',\n 'playoffCutoffRec',\n 'requiresWaiver',\n 'waiverTemplateId',\n] as const;\nexport type LeagueSettingsField = (typeof LEAGUE_SETTINGS_FIELD_KEYS)[number];\nexport const leagueSettingsFieldSchema = z.enum(LEAGUE_SETTINGS_FIELD_KEYS);\n\nexport const PLAYOFF_CUTOFF_FIELD_KEYS = [\n 'playoffCutoff',\n 'playoffCutoffComp',\n 'playoffCutoffRec',\n] as const satisfies readonly LeagueSettingsField[];\nexport type PlayoffCutoffField = (typeof PLAYOFF_CUTOFF_FIELD_KEYS)[number];\n\n// Every cutoff is sent whether or not the league's mode shows it, so a later mode switch finds the\n// other mode's cutoffs already set.\nconst leagueSettingsShape = {\n leagueTitle: leagueTitleSchema,\n description: leagueDescriptionSchema,\n leagueStartDate: calendarDateSchema,\n leagueEndDate: calendarDateSchema,\n playoffCutoff: playoffCutoffSchema,\n playoffCutoffComp: playoffCutoffSchema,\n playoffCutoffRec: playoffCutoffSchema,\n requiresWaiver: z.boolean(),\n waiverTemplateId: waiverTemplateIdSchema.optional(),\n} satisfies Record<LeagueSettingsField, z.ZodType>;\n\nexport const AdminCreateSportLeagueInputSchema = z\n .object({ ...leagueSettingsShape, leagueType: leagueTypeSchema, leagueMode: leagueModeSchema })\n .strict()\n .superRefine(refineLeagueSettings);\nexport type AdminCreateSportLeagueInput = z.infer<typeof AdminCreateSportLeagueInputSchema>;\nexport const AdminCreateSportLeagueResultSchema = z.object({ leagueId: leagueIdSchema }).strict();\nexport type AdminCreateSportLeagueResult = z.infer<typeof AdminCreateSportLeagueResultSchema>;\n\nexport const AdminUpdateSportLeagueInputSchema = z\n .object({ leagueId: leagueIdSchema, expectedUpdatedAt: epochMsSchema, ...leagueSettingsShape })\n .strict()\n .superRefine(refineLeagueSettings);\nexport type AdminUpdateSportLeagueInput = z.infer<typeof AdminUpdateSportLeagueInputSchema>;\nexport const AdminUpdateSportLeagueResultSchema = z\n .object({\n leagueId: leagueIdSchema,\n changedFields: z.array(leagueSettingsFieldSchema),\n updatedAt: epochMsSchema,\n })\n .strict();\nexport type AdminUpdateSportLeagueResult = z.infer<typeof AdminUpdateSportLeagueResultSchema>;\n\nexport const AdminUpdateSportLeagueStatusInputSchema = z\n .object({ leagueId: leagueIdSchema, status: leagueStatusSchema })\n .strict();\nexport type AdminUpdateSportLeagueStatusInput = z.infer<\n typeof AdminUpdateSportLeagueStatusInputSchema\n>;\n\nconst leagueUpdatedAtMoveShape = { previousUpdatedAt: epochMsSchema, updatedAt: epochMsSchema };\n\nexport const AdminUpdateSportLeagueStatusResultSchema = z\n .object({ leagueId: leagueIdSchema, status: leagueStatusSchema, ...leagueUpdatedAtMoveShape })\n .strict();\nexport type AdminUpdateSportLeagueStatusResult = z.infer<\n typeof AdminUpdateSportLeagueStatusResultSchema\n>;\n\nexport const SwitchLeagueModeInputSchema = z\n .object({ leagueId: leagueIdSchema, newMode: leagueModeSchema })\n .strict();\nexport type SwitchLeagueModeInput = z.infer<typeof SwitchLeagueModeInputSchema>;\nexport const SwitchLeagueModeResultSchema = z\n .object({\n leagueId: leagueIdSchema,\n leagueMode: leagueModeSchema,\n teamsUpdated: countSchema,\n ...leagueUpdatedAtMoveShape,\n })\n .strict();\nexport type SwitchLeagueModeResult = z.infer<typeof SwitchLeagueModeResultSchema>;\n"]}
1
+ {"version":3,"file":"leagues.js","sourceRoot":"","sources":["../../src/schemas/leagues.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { LEAGUE_DESCRIPTION_INPUT, LEAGUE_TITLE_INPUT } from '../constants/text-fields.js';\nimport {\n calendarDateSchema,\n countSchema,\n epochMsSchema,\n leagueIdSchema,\n leagueModeSchema,\n leagueStatusSchema,\n leagueTypeSchema,\n} from '../doc-schemas/atoms.js';\nimport { textFieldSchema } from './text-field.js';\nimport { playoffCutoffSchema, refineLeagueSettings } from '../doc-schemas/sport-league.js';\nimport { waiverTemplateIdSchema } from '../doc-schemas/waiver-template.js';\n\nexport const leagueTitleSchema = textFieldSchema(LEAGUE_TITLE_INPUT);\nexport const leagueDescriptionSchema = textFieldSchema(LEAGUE_DESCRIPTION_INPUT);\n\nexport const LEAGUE_SETTINGS_FIELD_KEYS = [\n 'leagueTitle',\n 'description',\n 'leagueStartDate',\n 'leagueEndDate',\n 'playoffCutoff',\n 'playoffCutoffComp',\n 'playoffCutoffRec',\n 'requiresWaiver',\n 'waiverTemplateId',\n] as const;\nexport type LeagueSettingsField = (typeof LEAGUE_SETTINGS_FIELD_KEYS)[number];\nexport const leagueSettingsFieldSchema = z.enum(LEAGUE_SETTINGS_FIELD_KEYS);\n\nexport const PLAYOFF_CUTOFF_FIELD_KEYS = [\n 'playoffCutoff',\n 'playoffCutoffComp',\n 'playoffCutoffRec',\n] as const satisfies readonly LeagueSettingsField[];\nexport type PlayoffCutoffField = (typeof PLAYOFF_CUTOFF_FIELD_KEYS)[number];\n\n// Every cutoff is sent whether or not the league's mode shows it, so a later mode switch finds the\n// other mode's cutoffs already set.\nconst leagueSettingsShape = {\n leagueTitle: leagueTitleSchema,\n description: leagueDescriptionSchema,\n leagueStartDate: calendarDateSchema,\n leagueEndDate: calendarDateSchema,\n playoffCutoff: playoffCutoffSchema,\n playoffCutoffComp: playoffCutoffSchema,\n playoffCutoffRec: playoffCutoffSchema,\n requiresWaiver: z.boolean(),\n waiverTemplateId: waiverTemplateIdSchema.optional(),\n} satisfies Record<LeagueSettingsField, z.ZodType>;\n\nexport const AdminCreateSportLeagueInputSchema = z\n .object({ ...leagueSettingsShape, leagueType: leagueTypeSchema, leagueMode: leagueModeSchema })\n .strict()\n .superRefine(refineLeagueSettings);\nexport type AdminCreateSportLeagueInput = z.infer<typeof AdminCreateSportLeagueInputSchema>;\nexport const AdminCreateSportLeagueResultSchema = z.object({ leagueId: leagueIdSchema }).strict();\nexport type AdminCreateSportLeagueResult = z.infer<typeof AdminCreateSportLeagueResultSchema>;\n\nexport const AdminUpdateSportLeagueInputSchema = z\n .object({ leagueId: leagueIdSchema, expectedUpdatedAt: epochMsSchema, ...leagueSettingsShape })\n .strict()\n .superRefine(refineLeagueSettings);\nexport type AdminUpdateSportLeagueInput = z.infer<typeof AdminUpdateSportLeagueInputSchema>;\nexport const AdminUpdateSportLeagueResultSchema = z\n .object({\n leagueId: leagueIdSchema,\n changedFields: z.array(leagueSettingsFieldSchema),\n updatedAt: epochMsSchema,\n })\n .strict();\nexport type AdminUpdateSportLeagueResult = z.infer<typeof AdminUpdateSportLeagueResultSchema>;\n\nexport const AdminUpdateSportLeagueStatusInputSchema = z\n .object({ leagueId: leagueIdSchema, status: leagueStatusSchema })\n .strict();\nexport type AdminUpdateSportLeagueStatusInput = z.infer<\n typeof AdminUpdateSportLeagueStatusInputSchema\n>;\n\nconst leagueUpdatedAtMoveShape = { previousUpdatedAt: epochMsSchema, updatedAt: epochMsSchema };\n\nexport const AdminUpdateSportLeagueStatusResultSchema = z\n .object({ leagueId: leagueIdSchema, status: leagueStatusSchema, ...leagueUpdatedAtMoveShape })\n .strict();\nexport type AdminUpdateSportLeagueStatusResult = z.infer<\n typeof AdminUpdateSportLeagueStatusResultSchema\n>;\n\nexport const SwitchLeagueModeInputSchema = z\n .object({ leagueId: leagueIdSchema, newMode: leagueModeSchema })\n .strict();\nexport type SwitchLeagueModeInput = z.infer<typeof SwitchLeagueModeInputSchema>;\nexport const SwitchLeagueModeResultSchema = z\n .object({\n leagueId: leagueIdSchema,\n leagueMode: leagueModeSchema,\n teamsUpdated: countSchema,\n ...leagueUpdatedAtMoveShape,\n })\n .strict();\nexport type SwitchLeagueModeResult = z.infer<typeof SwitchLeagueModeResultSchema>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../src/schemas/schedules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,eAAO,MAAM,uBAAuB,wDAAoD,CAAC;AAEzF,eAAO,MAAM,uBAAuB,8CAMiD,CAAC;AACtF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AASxE,eAAO,MAAM,uBAAuB;;;;;kBAAuC,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,4BAA4B;;;;;;;EAAyC,CAAC;AACnF,eAAO,MAAM,uBAAuB;;;;EAAmC,CAAC;AAExE,eAAO,MAAM,kCAAkC;;;;;;;;;;;kBAQpC,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,eAAO,MAAM,mCAAmC;;;;kBAMrC,CAAC;AACZ,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,kCAAkC;;;;;;kBAe5C,CAAC;AACJ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,eAAO,MAAM,mCAAmC;;;;;;;;;kBAOrC,CAAC;AACZ,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,kCAAkC;;;kBAEpC,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,eAAO,MAAM,mCAAmC;;;;;;kBAQrC,CAAC;AACZ,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,+BAA+B;;;;;;;kBAEjC,CAAC;AACZ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,eAAO,MAAM,gCAAgC;;;;kBAElC,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,+BAA+B;;;;;;;;kBAcxC,CAAC;AACL,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,eAAO,MAAM,gCAAgC;;;;;;;;;;;kBAMlC,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,+BAA+B;;kBAA8C,CAAC;AAC3F,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,eAAO,MAAM,gCAAgC;;;;kBAElC,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
1
+ {"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../src/schemas/schedules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,eAAO,MAAM,uBAAuB,wDAA6C,CAAC;AAElF,eAAO,MAAM,uBAAuB,8CAMiD,CAAC;AACtF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AASxE,eAAO,MAAM,uBAAuB;;;;;kBAAuC,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,4BAA4B;;;;;;;EAAyC,CAAC;AACnF,eAAO,MAAM,uBAAuB;;;;EAAmC,CAAC;AAExE,eAAO,MAAM,kCAAkC;;;;;;;;;;;kBAQpC,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,eAAO,MAAM,mCAAmC;;;;kBAMrC,CAAC;AACZ,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,kCAAkC;;;;;;kBAe5C,CAAC;AACJ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,eAAO,MAAM,mCAAmC;;;;;;;;;kBAOrC,CAAC;AACZ,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,kCAAkC;;;kBAEpC,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,eAAO,MAAM,mCAAmC;;;;;;kBAQrC,CAAC;AACZ,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,+BAA+B;;;;;;;kBAEjC,CAAC;AACZ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,eAAO,MAAM,gCAAgC;;;;kBAElC,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,+BAA+B;;;;;;;;kBAcxC,CAAC;AACL,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,eAAO,MAAM,gCAAgC;;;;;;;;;;;kBAMlC,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,+BAA+B;;kBAA8C,CAAC;AAC3F,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,eAAO,MAAM,gCAAgC;;;;kBAElC,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import { z } from 'zod';
2
2
  import { MAX_SCHEDULE_WEEK_GAMES } from '../constants/business.js';
3
- import { textFieldSchema } from '../doc-schemas/atoms.js';
4
- import { SCHEDULE_WEEK_TITLE_INPUT_FORMAT } from '../input-formats/input-formats.js';
3
+ import { textFieldSchema } from './text-field.js';
4
+ import { SCHEDULE_WEEK_TITLE_INPUT } from '../constants/text-fields.js';
5
5
  import { countSchema, epochMsSchema, gameIdSchema, leagueIdSchema, scheduleWeekIdSchema, statsOperationIdSchema, teamIdSchema, } from '../doc-schemas/atoms.js';
6
6
  import { gameLocationIdSchema } from '../doc-schemas/game-location.js';
7
7
  import { isByeTeamId } from '../ids/minted-ids.js';
8
8
  import { SCHEDULE_WEEK_FIELD_KEYS, SPORT_GAME_SCHEDULE_FIELD_KEYS } from '../types/schedules.js';
9
9
  import { gameLocationSubLocationSchema } from '../doc-schemas/game-location.js';
10
- export const scheduleWeekTitleSchema = textFieldSchema(SCHEDULE_WEEK_TITLE_INPUT_FORMAT);
10
+ export const scheduleWeekTitleSchema = textFieldSchema(SCHEDULE_WEEK_TITLE_INPUT);
11
11
  export const scheduleGameTeamsSchema = z
12
12
  .tuple([teamIdSchema, teamIdSchema])
13
13
  .refine(([first, second]) => !(isByeTeamId(first) && isByeTeamId(second)), 'A game needs at least one team.')
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","sourceRoot":"","sources":["../../src/schemas/schedules.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { MAX_SCHEDULE_WEEK_GAMES } from '../constants/business.js';\nimport { textFieldSchema } from '../doc-schemas/atoms.js';\nimport { SCHEDULE_WEEK_TITLE_INPUT_FORMAT } from '../input-formats/input-formats.js';\nimport {\n countSchema,\n epochMsSchema,\n gameIdSchema,\n leagueIdSchema,\n scheduleWeekIdSchema,\n statsOperationIdSchema,\n teamIdSchema,\n} from '../doc-schemas/atoms.js';\nimport { gameLocationIdSchema } from '../doc-schemas/game-location.js';\nimport { isByeTeamId } from '../ids/minted-ids.js';\nimport { SCHEDULE_WEEK_FIELD_KEYS, SPORT_GAME_SCHEDULE_FIELD_KEYS } from '../types/schedules.js';\nimport { gameLocationSubLocationSchema } from '../doc-schemas/game-location.js';\n\nexport const scheduleWeekTitleSchema = textFieldSchema(SCHEDULE_WEEK_TITLE_INPUT_FORMAT);\n\nexport const scheduleGameTeamsSchema = z\n .tuple([teamIdSchema, teamIdSchema])\n .refine(\n ([first, second]) => !(isByeTeamId(first) && isByeTeamId(second)),\n 'A game needs at least one team.',\n )\n .refine(([first, second]) => first !== second, 'A game needs two different teams.');\nexport type ScheduleGameTeams = z.infer<typeof scheduleGameTeamsSchema>;\n\nconst scheduleGameShape = {\n teams: scheduleGameTeamsSchema,\n startTime: epochMsSchema,\n gameLocationId: gameLocationIdSchema,\n subLocation: gameLocationSubLocationSchema.optional(),\n};\n\nexport const ScheduleGameInputSchema = z.object(scheduleGameShape).strict();\nexport type ScheduleGameInput = z.infer<typeof ScheduleGameInputSchema>;\n\nexport const sportGameScheduleFieldSchema = z.enum(SPORT_GAME_SCHEDULE_FIELD_KEYS);\nexport const scheduleWeekFieldSchema = z.enum(SCHEDULE_WEEK_FIELD_KEYS);\n\nexport const AdminCreateScheduleWeekInputSchema = z\n .object({\n leagueId: leagueIdSchema,\n weekTitle: scheduleWeekTitleSchema,\n weekStartDate: epochMsSchema,\n weekGameLocationId: gameLocationIdSchema,\n games: z.array(ScheduleGameInputSchema).min(1).max(MAX_SCHEDULE_WEEK_GAMES),\n })\n .strict();\nexport type AdminCreateScheduleWeekInput = z.infer<typeof AdminCreateScheduleWeekInputSchema>;\nexport const AdminCreateScheduleWeekResultSchema = z\n .object({\n leagueId: leagueIdSchema,\n weekId: scheduleWeekIdSchema,\n gameIds: z.array(gameIdSchema),\n })\n .strict();\nexport type AdminCreateScheduleWeekResult = z.infer<typeof AdminCreateScheduleWeekResultSchema>;\n\nexport const AdminUpdateScheduleWeekInputSchema = z\n .object({\n leagueId: leagueIdSchema,\n weekId: scheduleWeekIdSchema,\n weekTitle: scheduleWeekTitleSchema.optional(),\n weekStartDate: epochMsSchema.optional(),\n weekGameLocationId: gameLocationIdSchema.optional(),\n })\n .strict()\n .refine(\n (input) =>\n input.weekTitle !== undefined ||\n input.weekStartDate !== undefined ||\n input.weekGameLocationId !== undefined,\n 'Name at least one field to change.',\n );\nexport type AdminUpdateScheduleWeekInput = z.infer<typeof AdminUpdateScheduleWeekInputSchema>;\nexport const AdminUpdateScheduleWeekResultSchema = z\n .object({\n leagueId: leagueIdSchema,\n weekId: scheduleWeekIdSchema,\n changedFields: z.array(scheduleWeekFieldSchema),\n gamesUpdated: countSchema,\n })\n .strict();\nexport type AdminUpdateScheduleWeekResult = z.infer<typeof AdminUpdateScheduleWeekResultSchema>;\n\nexport const AdminDeleteScheduleWeekInputSchema = z\n .object({ leagueId: leagueIdSchema, weekId: scheduleWeekIdSchema })\n .strict();\nexport type AdminDeleteScheduleWeekInput = z.infer<typeof AdminDeleteScheduleWeekInputSchema>;\nexport const AdminDeleteScheduleWeekResultSchema = z\n .object({\n leagueId: leagueIdSchema,\n weekId: scheduleWeekIdSchema,\n deletedGameIds: z.array(gameIdSchema),\n remainingGameIds: z.array(gameIdSchema),\n complete: z.boolean(),\n })\n .strict();\nexport type AdminDeleteScheduleWeekResult = z.infer<typeof AdminDeleteScheduleWeekResultSchema>;\n\nexport const AdminCreateSportGameInputSchema = z\n .object({ leagueId: leagueIdSchema, weekId: scheduleWeekIdSchema, ...scheduleGameShape })\n .strict();\nexport type AdminCreateSportGameInput = z.infer<typeof AdminCreateSportGameInputSchema>;\nexport const AdminCreateSportGameResultSchema = z\n .object({ leagueId: leagueIdSchema, weekId: scheduleWeekIdSchema, gameId: gameIdSchema })\n .strict();\nexport type AdminCreateSportGameResult = z.infer<typeof AdminCreateSportGameResultSchema>;\n\nexport const AdminUpdateSportGameInputSchema = z\n .object({\n gameId: gameIdSchema,\n expectedUpdatedAt: epochMsSchema,\n weekId: scheduleWeekIdSchema,\n teams: scheduleGameTeamsSchema,\n startTime: epochMsSchema,\n gameLocationId: gameLocationIdSchema.optional(),\n subLocation: gameLocationSubLocationSchema.optional(),\n })\n .strict()\n .refine((input) => input.subLocation === undefined || input.gameLocationId !== undefined, {\n message: 'A court is chosen within a venue.',\n path: ['subLocation'],\n });\nexport type AdminUpdateSportGameInput = z.infer<typeof AdminUpdateSportGameInputSchema>;\nexport const AdminUpdateSportGameResultSchema = z\n .object({\n gameId: gameIdSchema,\n changedFields: z.array(sportGameScheduleFieldSchema),\n updatedAt: epochMsSchema,\n })\n .strict();\nexport type AdminUpdateSportGameResult = z.infer<typeof AdminUpdateSportGameResultSchema>;\n\nexport const AdminDeleteSportGameInputSchema = z.object({ gameId: gameIdSchema }).strict();\nexport type AdminDeleteSportGameInput = z.infer<typeof AdminDeleteSportGameInputSchema>;\nexport const AdminDeleteSportGameResultSchema = z\n .object({ gameId: gameIdSchema, operationId: statsOperationIdSchema, complete: z.boolean() })\n .strict();\nexport type AdminDeleteSportGameResult = z.infer<typeof AdminDeleteSportGameResultSchema>;\n"]}
1
+ {"version":3,"file":"schedules.js","sourceRoot":"","sources":["../../src/schemas/schedules.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { MAX_SCHEDULE_WEEK_GAMES } from '../constants/business.js';\nimport { textFieldSchema } from './text-field.js';\nimport { SCHEDULE_WEEK_TITLE_INPUT } from '../constants/text-fields.js';\nimport {\n countSchema,\n epochMsSchema,\n gameIdSchema,\n leagueIdSchema,\n scheduleWeekIdSchema,\n statsOperationIdSchema,\n teamIdSchema,\n} from '../doc-schemas/atoms.js';\nimport { gameLocationIdSchema } from '../doc-schemas/game-location.js';\nimport { isByeTeamId } from '../ids/minted-ids.js';\nimport { SCHEDULE_WEEK_FIELD_KEYS, SPORT_GAME_SCHEDULE_FIELD_KEYS } from '../types/schedules.js';\nimport { gameLocationSubLocationSchema } from '../doc-schemas/game-location.js';\n\nexport const scheduleWeekTitleSchema = textFieldSchema(SCHEDULE_WEEK_TITLE_INPUT);\n\nexport const scheduleGameTeamsSchema = z\n .tuple([teamIdSchema, teamIdSchema])\n .refine(\n ([first, second]) => !(isByeTeamId(first) && isByeTeamId(second)),\n 'A game needs at least one team.',\n )\n .refine(([first, second]) => first !== second, 'A game needs two different teams.');\nexport type ScheduleGameTeams = z.infer<typeof scheduleGameTeamsSchema>;\n\nconst scheduleGameShape = {\n teams: scheduleGameTeamsSchema,\n startTime: epochMsSchema,\n gameLocationId: gameLocationIdSchema,\n subLocation: gameLocationSubLocationSchema.optional(),\n};\n\nexport const ScheduleGameInputSchema = z.object(scheduleGameShape).strict();\nexport type ScheduleGameInput = z.infer<typeof ScheduleGameInputSchema>;\n\nexport const sportGameScheduleFieldSchema = z.enum(SPORT_GAME_SCHEDULE_FIELD_KEYS);\nexport const scheduleWeekFieldSchema = z.enum(SCHEDULE_WEEK_FIELD_KEYS);\n\nexport const AdminCreateScheduleWeekInputSchema = z\n .object({\n leagueId: leagueIdSchema,\n weekTitle: scheduleWeekTitleSchema,\n weekStartDate: epochMsSchema,\n weekGameLocationId: gameLocationIdSchema,\n games: z.array(ScheduleGameInputSchema).min(1).max(MAX_SCHEDULE_WEEK_GAMES),\n })\n .strict();\nexport type AdminCreateScheduleWeekInput = z.infer<typeof AdminCreateScheduleWeekInputSchema>;\nexport const AdminCreateScheduleWeekResultSchema = z\n .object({\n leagueId: leagueIdSchema,\n weekId: scheduleWeekIdSchema,\n gameIds: z.array(gameIdSchema),\n })\n .strict();\nexport type AdminCreateScheduleWeekResult = z.infer<typeof AdminCreateScheduleWeekResultSchema>;\n\nexport const AdminUpdateScheduleWeekInputSchema = z\n .object({\n leagueId: leagueIdSchema,\n weekId: scheduleWeekIdSchema,\n weekTitle: scheduleWeekTitleSchema.optional(),\n weekStartDate: epochMsSchema.optional(),\n weekGameLocationId: gameLocationIdSchema.optional(),\n })\n .strict()\n .refine(\n (input) =>\n input.weekTitle !== undefined ||\n input.weekStartDate !== undefined ||\n input.weekGameLocationId !== undefined,\n 'Name at least one field to change.',\n );\nexport type AdminUpdateScheduleWeekInput = z.infer<typeof AdminUpdateScheduleWeekInputSchema>;\nexport const AdminUpdateScheduleWeekResultSchema = z\n .object({\n leagueId: leagueIdSchema,\n weekId: scheduleWeekIdSchema,\n changedFields: z.array(scheduleWeekFieldSchema),\n gamesUpdated: countSchema,\n })\n .strict();\nexport type AdminUpdateScheduleWeekResult = z.infer<typeof AdminUpdateScheduleWeekResultSchema>;\n\nexport const AdminDeleteScheduleWeekInputSchema = z\n .object({ leagueId: leagueIdSchema, weekId: scheduleWeekIdSchema })\n .strict();\nexport type AdminDeleteScheduleWeekInput = z.infer<typeof AdminDeleteScheduleWeekInputSchema>;\nexport const AdminDeleteScheduleWeekResultSchema = z\n .object({\n leagueId: leagueIdSchema,\n weekId: scheduleWeekIdSchema,\n deletedGameIds: z.array(gameIdSchema),\n remainingGameIds: z.array(gameIdSchema),\n complete: z.boolean(),\n })\n .strict();\nexport type AdminDeleteScheduleWeekResult = z.infer<typeof AdminDeleteScheduleWeekResultSchema>;\n\nexport const AdminCreateSportGameInputSchema = z\n .object({ leagueId: leagueIdSchema, weekId: scheduleWeekIdSchema, ...scheduleGameShape })\n .strict();\nexport type AdminCreateSportGameInput = z.infer<typeof AdminCreateSportGameInputSchema>;\nexport const AdminCreateSportGameResultSchema = z\n .object({ leagueId: leagueIdSchema, weekId: scheduleWeekIdSchema, gameId: gameIdSchema })\n .strict();\nexport type AdminCreateSportGameResult = z.infer<typeof AdminCreateSportGameResultSchema>;\n\nexport const AdminUpdateSportGameInputSchema = z\n .object({\n gameId: gameIdSchema,\n expectedUpdatedAt: epochMsSchema,\n weekId: scheduleWeekIdSchema,\n teams: scheduleGameTeamsSchema,\n startTime: epochMsSchema,\n gameLocationId: gameLocationIdSchema.optional(),\n subLocation: gameLocationSubLocationSchema.optional(),\n })\n .strict()\n .refine((input) => input.subLocation === undefined || input.gameLocationId !== undefined, {\n message: 'A court is chosen within a venue.',\n path: ['subLocation'],\n });\nexport type AdminUpdateSportGameInput = z.infer<typeof AdminUpdateSportGameInputSchema>;\nexport const AdminUpdateSportGameResultSchema = z\n .object({\n gameId: gameIdSchema,\n changedFields: z.array(sportGameScheduleFieldSchema),\n updatedAt: epochMsSchema,\n })\n .strict();\nexport type AdminUpdateSportGameResult = z.infer<typeof AdminUpdateSportGameResultSchema>;\n\nexport const AdminDeleteSportGameInputSchema = z.object({ gameId: gameIdSchema }).strict();\nexport type AdminDeleteSportGameInput = z.infer<typeof AdminDeleteSportGameInputSchema>;\nexport const AdminDeleteSportGameResultSchema = z\n .object({ gameId: gameIdSchema, operationId: statsOperationIdSchema, complete: z.boolean() })\n .strict();\nexport type AdminDeleteSportGameResult = z.infer<typeof AdminDeleteSportGameResultSchema>;\n"]}
@@ -33,8 +33,8 @@ export declare const StatEventSubmissionSchema: z.ZodDiscriminatedUnion<[z.ZodOb
33
33
  }, z.core.$strict>, z.ZodObject<{
34
34
  previousValue: z.ZodNumber;
35
35
  eventId: z.ZodString;
36
- type: z.ZodLiteral<"BULK_EDIT">;
37
36
  value: z.ZodNumber;
37
+ type: z.ZodLiteral<"BULK_EDIT">;
38
38
  recordedAt: z.ZodNumber;
39
39
  teamId: z.ZodString;
40
40
  playerUserId: z.ZodString;
@@ -66,8 +66,8 @@ export declare const StatEventSubmissionSchema: z.ZodDiscriminatedUnion<[z.ZodOb
66
66
  teamId: z.ZodString;
67
67
  }, z.core.$strict>, z.ZodObject<{
68
68
  eventId: z.ZodString;
69
- type: z.ZodLiteral<"FOOTBALL_BULK_EDIT">;
70
69
  value: z.ZodNumber;
70
+ type: z.ZodLiteral<"FOOTBALL_BULK_EDIT">;
71
71
  recordedAt: z.ZodNumber;
72
72
  teamId: z.ZodString;
73
73
  previousValue: z.ZodNumber;
@@ -76,9 +76,9 @@ export declare const StatEventSubmissionSchema: z.ZodDiscriminatedUnion<[z.ZodOb
76
76
  type: z.ZodLiteral<"STAT_VOID">;
77
77
  recordedAt: z.ZodNumber;
78
78
  }, z.core.$strict>, z.ZodObject<{
79
- type: z.ZodLiteral<"STAT_CORRECTION">;
80
79
  value: z.ZodNumber;
81
80
  reason: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
81
+ type: z.ZodLiteral<"STAT_CORRECTION">;
82
82
  operationId: z.ZodString;
83
83
  recordedAt: z.ZodNumber;
84
84
  teamId: z.ZodString;
@@ -133,8 +133,8 @@ export declare const RecordGameStatEventsInputSchema: z.ZodObject<{
133
133
  }, z.core.$strict>, z.ZodObject<{
134
134
  previousValue: z.ZodNumber;
135
135
  eventId: z.ZodString;
136
- type: z.ZodLiteral<"BULK_EDIT">;
137
136
  value: z.ZodNumber;
137
+ type: z.ZodLiteral<"BULK_EDIT">;
138
138
  recordedAt: z.ZodNumber;
139
139
  teamId: z.ZodString;
140
140
  playerUserId: z.ZodString;
@@ -166,8 +166,8 @@ export declare const RecordGameStatEventsInputSchema: z.ZodObject<{
166
166
  teamId: z.ZodString;
167
167
  }, z.core.$strict>, z.ZodObject<{
168
168
  eventId: z.ZodString;
169
- type: z.ZodLiteral<"FOOTBALL_BULK_EDIT">;
170
169
  value: z.ZodNumber;
170
+ type: z.ZodLiteral<"FOOTBALL_BULK_EDIT">;
171
171
  recordedAt: z.ZodNumber;
172
172
  teamId: z.ZodString;
173
173
  previousValue: z.ZodNumber;
@@ -176,9 +176,9 @@ export declare const RecordGameStatEventsInputSchema: z.ZodObject<{
176
176
  type: z.ZodLiteral<"STAT_VOID">;
177
177
  recordedAt: z.ZodNumber;
178
178
  }, z.core.$strict>, z.ZodObject<{
179
- type: z.ZodLiteral<"STAT_CORRECTION">;
180
179
  value: z.ZodNumber;
181
180
  reason: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
181
+ type: z.ZodLiteral<"STAT_CORRECTION">;
182
182
  operationId: z.ZodString;
183
183
  recordedAt: z.ZodNumber;
184
184
  teamId: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../src/schemas/scoring.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmDxB,eAAO,MAAM,sBAAsB,aAGlC,CAAC;AAIF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAmBpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAKjC,CAAC;AACZ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,uBAAuB;;;;;;;kBAMzB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,gCAAgC;;;;;;;;;;kBAKlC,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;kBAK/B,CAAC;AACZ,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,kCAAkC;;;;kBAMpC,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,mCAAmC;;;;;kBAOrC,CAAC;AACZ,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,cAAc,wDAA0C,CAAC;AAEtE,eAAO,MAAM,yBAAyB;;;;kBAM3B,CAAC;AACZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,0BAA0B;;;;;kBAO5B,CAAC;AACZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,6BAA6B;;;kBAK/B,CAAC;AACZ,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,8BAA8B;;;;kBAMhC,CAAC;AACZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
1
+ {"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../src/schemas/scoring.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmDxB,eAAO,MAAM,sBAAsB,aAGlC,CAAC;AAIF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAmBpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAKjC,CAAC;AACZ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,uBAAuB;;;;;;;kBAMzB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,gCAAgC;;;;;;;;;;kBAKlC,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;kBAK/B,CAAC;AACZ,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,kCAAkC;;;;kBAMpC,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,mCAAmC;;;;;kBAOrC,CAAC;AACZ,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,cAAc,wDAAmC,CAAC;AAE/D,eAAO,MAAM,yBAAyB;;;;kBAM3B,CAAC;AACZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,0BAA0B;;;;;kBAO5B,CAAC;AACZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,6BAA6B;;;kBAK/B,CAAC;AACZ,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,8BAA8B;;;;kBAMhC,CAAC;AACZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import { z } from 'zod';
2
2
  import { MAX_STAT_EVENTS_PER_WRITE } from '../constants/sports.js';
3
3
  import { isSportStatEventId } from '../ids/stat-event-ids.js';
4
- import { GAME_MEMO_INPUT_FORMAT } from '../input-formats/input-formats.js';
4
+ import { GAME_MEMO_INPUT } from '../constants/text-fields.js';
5
5
  import { BasketballAssistableShotEventSchema, BasketballBulkEditEventSchema, BasketballOnePointEventSchema, BasketballPlayerTallyEventSchema, BasketballTimeoutEventSchema, CurlingBlankEndEventSchema, CurlingRoundScoreEventSchema, FootballBulkEditEventSchema, FootballScoreEventSchema, StatCorrectionEventSchema, StatVoidEventSchema, } from '../doc-schemas/game-stats.js';
6
6
  import { RECORDED_STAT_EVENT_OUTCOME_KEYS, STAT_EVENT_RECORDER_FIELD_KEYS, STAT_EVENT_REFUSAL_KEYS, STAT_EVENT_SNAPSHOT_FIELD_KEYS, } from '../types/stats.js';
7
- import { countSchema, gameIdSchema, gameRosterPlayerIdSchema, statEventIdSchema, teamIdSchema, textFieldSchema, userIdSchema, } from '../doc-schemas/atoms.js';
7
+ import { countSchema, gameIdSchema, gameRosterPlayerIdSchema, statEventIdSchema, teamIdSchema, userIdSchema, } from '../doc-schemas/atoms.js';
8
+ import { textFieldSchema } from './text-field.js';
8
9
  const SERVER_DERIVED_FIELDS = new Set([
9
10
  ...STAT_EVENT_RECORDER_FIELD_KEYS,
10
11
  ...STAT_EVENT_SNAPSHOT_FIELD_KEYS,
@@ -75,7 +76,7 @@ export const UpdateGameAbsentPlayersResultSchema = z
75
76
  changed: z.boolean(),
76
77
  })
77
78
  .strict();
78
- export const gameMemoSchema = textFieldSchema(GAME_MEMO_INPUT_FORMAT);
79
+ export const gameMemoSchema = textFieldSchema(GAME_MEMO_INPUT);
79
80
  export const UpdateGameMemoInputSchema = z
80
81
  .object({
81
82
  gameId: gameIdSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../src/schemas/scoring.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { MAX_STAT_EVENTS_PER_WRITE } from '../constants/sports.js';\nimport { isSportStatEventId } from '../ids/stat-event-ids.js';\nimport { GAME_MEMO_INPUT_FORMAT } from '../input-formats/input-formats.js';\nimport {\n BasketballAssistableShotEventSchema,\n BasketballBulkEditEventSchema,\n BasketballOnePointEventSchema,\n BasketballPlayerTallyEventSchema,\n BasketballTimeoutEventSchema,\n CurlingBlankEndEventSchema,\n CurlingRoundScoreEventSchema,\n FootballBulkEditEventSchema,\n FootballScoreEventSchema,\n StatCorrectionEventSchema,\n StatVoidEventSchema,\n} from '../doc-schemas/game-stats.js';\nimport {\n RECORDED_STAT_EVENT_OUTCOME_KEYS,\n STAT_EVENT_RECORDER_FIELD_KEYS,\n STAT_EVENT_REFUSAL_KEYS,\n STAT_EVENT_SNAPSHOT_FIELD_KEYS,\n} from '../types/stats.js';\nimport type { StatEventRecorderField, StatEventSnapshotField } from '../types/stats.js';\nimport {\n countSchema,\n gameIdSchema,\n gameRosterPlayerIdSchema,\n statEventIdSchema,\n teamIdSchema,\n textFieldSchema,\n userIdSchema,\n} from '../doc-schemas/atoms.js';\n\ntype ServerDerivedField = StatEventRecorderField | StatEventSnapshotField;\nconst SERVER_DERIVED_FIELDS: ReadonlySet<string> = new Set([\n ...STAT_EVENT_RECORDER_FIELD_KEYS,\n ...STAT_EVENT_SNAPSHOT_FIELD_KEYS,\n]);\n\nfunction callerShape<Shape extends z.ZodRawShape, Omitted extends keyof Shape = never>(\n shape: Shape,\n omitted: readonly Omitted[] = [],\n): Omit<Shape, ServerDerivedField | Omitted> {\n const dropped = new Set<PropertyKey>([...SERVER_DERIVED_FIELDS, ...omitted]);\n return Object.fromEntries(Object.entries(shape).filter(([field]) => !dropped.has(field))) as Omit<\n Shape,\n ServerDerivedField | Omitted\n >;\n}\n\nexport const sportStatEventIdSchema = statEventIdSchema.refine(\n isSportStatEventId,\n 'Not a stat event id.',\n);\n\nconst sportEventId = { eventId: sportStatEventIdSchema };\n\nexport const StatEventSubmissionSchema = z.discriminatedUnion('type', [\n z.strictObject({ ...callerShape(BasketballOnePointEventSchema.shape), ...sportEventId }),\n z.strictObject({ ...callerShape(BasketballAssistableShotEventSchema.shape), ...sportEventId }),\n z.strictObject({ ...callerShape(BasketballPlayerTallyEventSchema.shape), ...sportEventId }),\n z.strictObject({ ...callerShape(BasketballTimeoutEventSchema.shape), ...sportEventId }),\n z.strictObject({\n ...callerShape(BasketballBulkEditEventSchema.shape),\n ...sportEventId,\n previousValue: countSchema,\n }),\n z.strictObject({ ...callerShape(CurlingRoundScoreEventSchema.shape), ...sportEventId }),\n z.strictObject({ ...callerShape(CurlingBlankEndEventSchema.shape), ...sportEventId }),\n z.strictObject({ ...callerShape(FootballScoreEventSchema.shape), ...sportEventId }),\n z.strictObject({ ...callerShape(FootballBulkEditEventSchema.shape), ...sportEventId }),\n z.strictObject({\n ...callerShape(StatVoidEventSchema.shape, ['eventId']),\n targetEventId: sportStatEventIdSchema,\n }),\n z.strictObject(callerShape(StatCorrectionEventSchema.shape)),\n]);\nexport type StatEventSubmission = z.infer<typeof StatEventSubmissionSchema>;\n\nexport const RecordGameStatEventsInputSchema = z\n .object({\n gameId: gameIdSchema,\n events: z.array(StatEventSubmissionSchema).min(1).max(MAX_STAT_EVENTS_PER_WRITE),\n })\n .strict();\nexport type RecordGameStatEventsInput = z.infer<typeof RecordGameStatEventsInputSchema>;\n\nexport const RecordedStatEventSchema = z\n .object({\n eventId: statEventIdSchema,\n outcome: z.enum(RECORDED_STAT_EVENT_OUTCOME_KEYS),\n sequence: z.number().int().positive(),\n })\n .strict();\nexport type RecordedStatEvent = z.infer<typeof RecordedStatEventSchema>;\n\nexport const RecordGameStatEventsResultSchema = z\n .object({\n gameId: gameIdSchema,\n events: z.array(RecordedStatEventSchema),\n })\n .strict();\nexport type RecordGameStatEventsResult = z.infer<typeof RecordGameStatEventsResultSchema>;\n\nexport const StatEventRefusalDetailsSchema = z\n .object({\n refusal: z.enum(STAT_EVENT_REFUSAL_KEYS),\n eventId: statEventIdSchema,\n })\n .strict();\nexport type StatEventRefusalDetails = z.infer<typeof StatEventRefusalDetailsSchema>;\n\nexport const UpdateGameAbsentPlayersInputSchema = z\n .object({\n gameId: gameIdSchema,\n gameRosterPlayerId: gameRosterPlayerIdSchema,\n absent: z.boolean(),\n })\n .strict();\nexport type UpdateGameAbsentPlayersInput = z.infer<typeof UpdateGameAbsentPlayersInputSchema>;\n\nexport const UpdateGameAbsentPlayersResultSchema = z\n .object({\n gameId: gameIdSchema,\n gameRosterPlayerId: gameRosterPlayerIdSchema,\n absent: z.boolean(),\n changed: z.boolean(),\n })\n .strict();\nexport type UpdateGameAbsentPlayersResult = z.infer<typeof UpdateGameAbsentPlayersResultSchema>;\n\nexport const gameMemoSchema = textFieldSchema(GAME_MEMO_INPUT_FORMAT);\n\nexport const UpdateGameMemoInputSchema = z\n .object({\n gameId: gameIdSchema,\n userId: userIdSchema,\n memo: gameMemoSchema,\n })\n .strict();\nexport type UpdateGameMemoInput = z.infer<typeof UpdateGameMemoInputSchema>;\n\nexport const UpdateGameMemoResultSchema = z\n .object({\n gameId: gameIdSchema,\n userId: userIdSchema,\n memo: z.string(),\n changed: z.boolean(),\n })\n .strict();\nexport type UpdateGameMemoResult = z.infer<typeof UpdateGameMemoResultSchema>;\n\nexport const UpdateGameJumpBallInputSchema = z\n .object({\n gameId: gameIdSchema,\n teamId: teamIdSchema,\n })\n .strict();\nexport type UpdateGameJumpBallInput = z.infer<typeof UpdateGameJumpBallInputSchema>;\n\nexport const UpdateGameJumpBallResultSchema = z\n .object({\n gameId: gameIdSchema,\n teamId: teamIdSchema,\n changed: z.boolean(),\n })\n .strict();\nexport type UpdateGameJumpBallResult = z.infer<typeof UpdateGameJumpBallResultSchema>;\n"]}
1
+ {"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../src/schemas/scoring.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { MAX_STAT_EVENTS_PER_WRITE } from '../constants/sports.js';\nimport { isSportStatEventId } from '../ids/stat-event-ids.js';\nimport { GAME_MEMO_INPUT } from '../constants/text-fields.js';\nimport {\n BasketballAssistableShotEventSchema,\n BasketballBulkEditEventSchema,\n BasketballOnePointEventSchema,\n BasketballPlayerTallyEventSchema,\n BasketballTimeoutEventSchema,\n CurlingBlankEndEventSchema,\n CurlingRoundScoreEventSchema,\n FootballBulkEditEventSchema,\n FootballScoreEventSchema,\n StatCorrectionEventSchema,\n StatVoidEventSchema,\n} from '../doc-schemas/game-stats.js';\nimport {\n RECORDED_STAT_EVENT_OUTCOME_KEYS,\n STAT_EVENT_RECORDER_FIELD_KEYS,\n STAT_EVENT_REFUSAL_KEYS,\n STAT_EVENT_SNAPSHOT_FIELD_KEYS,\n} from '../types/stats.js';\nimport type { StatEventRecorderField, StatEventSnapshotField } from '../types/stats.js';\nimport {\n countSchema,\n gameIdSchema,\n gameRosterPlayerIdSchema,\n statEventIdSchema,\n teamIdSchema,\n userIdSchema,\n} from '../doc-schemas/atoms.js';\nimport { textFieldSchema } from './text-field.js';\n\ntype ServerDerivedField = StatEventRecorderField | StatEventSnapshotField;\nconst SERVER_DERIVED_FIELDS: ReadonlySet<string> = new Set([\n ...STAT_EVENT_RECORDER_FIELD_KEYS,\n ...STAT_EVENT_SNAPSHOT_FIELD_KEYS,\n]);\n\nfunction callerShape<Shape extends z.ZodRawShape, Omitted extends keyof Shape = never>(\n shape: Shape,\n omitted: readonly Omitted[] = [],\n): Omit<Shape, ServerDerivedField | Omitted> {\n const dropped = new Set<PropertyKey>([...SERVER_DERIVED_FIELDS, ...omitted]);\n return Object.fromEntries(Object.entries(shape).filter(([field]) => !dropped.has(field))) as Omit<\n Shape,\n ServerDerivedField | Omitted\n >;\n}\n\nexport const sportStatEventIdSchema = statEventIdSchema.refine(\n isSportStatEventId,\n 'Not a stat event id.',\n);\n\nconst sportEventId = { eventId: sportStatEventIdSchema };\n\nexport const StatEventSubmissionSchema = z.discriminatedUnion('type', [\n z.strictObject({ ...callerShape(BasketballOnePointEventSchema.shape), ...sportEventId }),\n z.strictObject({ ...callerShape(BasketballAssistableShotEventSchema.shape), ...sportEventId }),\n z.strictObject({ ...callerShape(BasketballPlayerTallyEventSchema.shape), ...sportEventId }),\n z.strictObject({ ...callerShape(BasketballTimeoutEventSchema.shape), ...sportEventId }),\n z.strictObject({\n ...callerShape(BasketballBulkEditEventSchema.shape),\n ...sportEventId,\n previousValue: countSchema,\n }),\n z.strictObject({ ...callerShape(CurlingRoundScoreEventSchema.shape), ...sportEventId }),\n z.strictObject({ ...callerShape(CurlingBlankEndEventSchema.shape), ...sportEventId }),\n z.strictObject({ ...callerShape(FootballScoreEventSchema.shape), ...sportEventId }),\n z.strictObject({ ...callerShape(FootballBulkEditEventSchema.shape), ...sportEventId }),\n z.strictObject({\n ...callerShape(StatVoidEventSchema.shape, ['eventId']),\n targetEventId: sportStatEventIdSchema,\n }),\n z.strictObject(callerShape(StatCorrectionEventSchema.shape)),\n]);\nexport type StatEventSubmission = z.infer<typeof StatEventSubmissionSchema>;\n\nexport const RecordGameStatEventsInputSchema = z\n .object({\n gameId: gameIdSchema,\n events: z.array(StatEventSubmissionSchema).min(1).max(MAX_STAT_EVENTS_PER_WRITE),\n })\n .strict();\nexport type RecordGameStatEventsInput = z.infer<typeof RecordGameStatEventsInputSchema>;\n\nexport const RecordedStatEventSchema = z\n .object({\n eventId: statEventIdSchema,\n outcome: z.enum(RECORDED_STAT_EVENT_OUTCOME_KEYS),\n sequence: z.number().int().positive(),\n })\n .strict();\nexport type RecordedStatEvent = z.infer<typeof RecordedStatEventSchema>;\n\nexport const RecordGameStatEventsResultSchema = z\n .object({\n gameId: gameIdSchema,\n events: z.array(RecordedStatEventSchema),\n })\n .strict();\nexport type RecordGameStatEventsResult = z.infer<typeof RecordGameStatEventsResultSchema>;\n\nexport const StatEventRefusalDetailsSchema = z\n .object({\n refusal: z.enum(STAT_EVENT_REFUSAL_KEYS),\n eventId: statEventIdSchema,\n })\n .strict();\nexport type StatEventRefusalDetails = z.infer<typeof StatEventRefusalDetailsSchema>;\n\nexport const UpdateGameAbsentPlayersInputSchema = z\n .object({\n gameId: gameIdSchema,\n gameRosterPlayerId: gameRosterPlayerIdSchema,\n absent: z.boolean(),\n })\n .strict();\nexport type UpdateGameAbsentPlayersInput = z.infer<typeof UpdateGameAbsentPlayersInputSchema>;\n\nexport const UpdateGameAbsentPlayersResultSchema = z\n .object({\n gameId: gameIdSchema,\n gameRosterPlayerId: gameRosterPlayerIdSchema,\n absent: z.boolean(),\n changed: z.boolean(),\n })\n .strict();\nexport type UpdateGameAbsentPlayersResult = z.infer<typeof UpdateGameAbsentPlayersResultSchema>;\n\nexport const gameMemoSchema = textFieldSchema(GAME_MEMO_INPUT);\n\nexport const UpdateGameMemoInputSchema = z\n .object({\n gameId: gameIdSchema,\n userId: userIdSchema,\n memo: gameMemoSchema,\n })\n .strict();\nexport type UpdateGameMemoInput = z.infer<typeof UpdateGameMemoInputSchema>;\n\nexport const UpdateGameMemoResultSchema = z\n .object({\n gameId: gameIdSchema,\n userId: userIdSchema,\n memo: z.string(),\n changed: z.boolean(),\n })\n .strict();\nexport type UpdateGameMemoResult = z.infer<typeof UpdateGameMemoResultSchema>;\n\nexport const UpdateGameJumpBallInputSchema = z\n .object({\n gameId: gameIdSchema,\n teamId: teamIdSchema,\n })\n .strict();\nexport type UpdateGameJumpBallInput = z.infer<typeof UpdateGameJumpBallInputSchema>;\n\nexport const UpdateGameJumpBallResultSchema = z\n .object({\n gameId: gameIdSchema,\n teamId: teamIdSchema,\n changed: z.boolean(),\n })\n .strict();\nexport type UpdateGameJumpBallResult = z.infer<typeof UpdateGameJumpBallResultSchema>;\n"]}
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { type TextFieldDeclaration } from '../utils/text-field.js';
3
+ export declare function textFieldSchema(declaration: TextFieldDeclaration): z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4
+ //# sourceMappingURL=text-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-field.d.ts","sourceRoot":"","sources":["../../src/schemas/text-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,wBAAgB,eAAe,CAAC,WAAW,EAAE,oBAAoB,0DAOhE"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import { checkTextField } from '../utils/text-field.js';
3
+ export function textFieldSchema(declaration) {
4
+ return z.string().transform((text, ctx) => {
5
+ const result = checkTextField(declaration, text);
6
+ if (result.ok)
7
+ return result.value;
8
+ ctx.addIssue({ code: 'custom', message: result.reason, input: text });
9
+ return z.NEVER;
10
+ });
11
+ }
12
+ //# sourceMappingURL=text-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-field.js","sourceRoot":"","sources":["../../src/schemas/text-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAA6B,MAAM,wBAAwB,CAAC;AAEnF,MAAM,UAAU,eAAe,CAAC,WAAiC;IAC/D,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC;QACnC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,CAAC,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { z } from 'zod';\nimport { checkTextField, type TextFieldDeclaration } from '../utils/text-field.js';\n\nexport function textFieldSchema(declaration: TextFieldDeclaration) {\n return z.string().transform((text, ctx) => {\n const result = checkTextField(declaration, text);\n if (result.ok) return result.value;\n ctx.addIssue({ code: 'custom', message: result.reason, input: text });\n return z.NEVER;\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"waiver-templates.d.ts","sourceRoot":"","sources":["../../src/schemas/waiver-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,yBAAyB,wDAAsD,CAAC;AAC7F,eAAO,MAAM,wBAAwB,wDAAqD,CAAC;AAE3F,eAAO,MAAM,oCAAoC;;;kBAEtC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAClG,eAAO,MAAM,qCAAqC;;;kBAEvC,CAAC;AACZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG,eAAO,MAAM,oCAAoC;;;;;kBAOtC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAClG,eAAO,MAAM,qCAAqC;;;;kBAMvC,CAAC;AACZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG,eAAO,MAAM,oCAAoC;;kBAEtC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAClG,eAAO,MAAM,qCAAqC;;;;;;kBAKvC,CAAC;AACZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC"}
1
+ {"version":3,"file":"waiver-templates.d.ts","sourceRoot":"","sources":["../../src/schemas/waiver-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,yBAAyB,wDAA+C,CAAC;AACtF,eAAO,MAAM,wBAAwB,wDAA8C,CAAC;AAEpF,eAAO,MAAM,oCAAoC;;;kBAEtC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAClG,eAAO,MAAM,qCAAqC;;;kBAEvC,CAAC;AACZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG,eAAO,MAAM,oCAAoC;;;;;kBAOtC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAClG,eAAO,MAAM,qCAAqC;;;;kBAMvC,CAAC;AACZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG,eAAO,MAAM,oCAAoC;;kBAEtC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAClG,eAAO,MAAM,qCAAqC;;;;;;kBAKvC,CAAC;AACZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { z } from 'zod';
2
- import { textFieldSchema } from '../doc-schemas/atoms.js';
2
+ import { textFieldSchema } from './text-field.js';
3
3
  import { waiverTemplateIdSchema, waiverTemplateVersionNumberSchema, } from '../doc-schemas/waiver-template.js';
4
4
  import { WAIVER_TEMPLATE_DELETE_OUTCOME_KEYS } from '../types/unions.js';
5
- import { WAIVER_TEMPLATE_TEXT_INPUT_FORMAT, WAIVER_TEMPLATE_TITLE_INPUT_FORMAT, } from '../input-formats/input-formats.js';
6
- export const waiverTemplateTitleSchema = textFieldSchema(WAIVER_TEMPLATE_TITLE_INPUT_FORMAT);
7
- export const waiverTemplateTextSchema = textFieldSchema(WAIVER_TEMPLATE_TEXT_INPUT_FORMAT);
5
+ import { WAIVER_TEMPLATE_TEXT_INPUT, WAIVER_TEMPLATE_TITLE_INPUT, } from '../constants/text-fields.js';
6
+ export const waiverTemplateTitleSchema = textFieldSchema(WAIVER_TEMPLATE_TITLE_INPUT);
7
+ export const waiverTemplateTextSchema = textFieldSchema(WAIVER_TEMPLATE_TEXT_INPUT);
8
8
  export const AdminCreateWaiverTemplateInputSchema = z
9
9
  .object({ title: waiverTemplateTitleSchema, waiverText: waiverTemplateTextSchema })
10
10
  .strict();
@@ -1 +1 @@
1
- {"version":3,"file":"waiver-templates.js","sourceRoot":"","sources":["../../src/schemas/waiver-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,iCAAiC,GAClC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,mCAAmC,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,mCAAmC,CAAC;AAE3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAC,kCAAkC,CAAC,CAAC;AAC7F,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,CAAC,iCAAiC,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC;KAClD,MAAM,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,wBAAwB,EAAE,CAAC;KAClF,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC;KACnD,MAAM,CAAC,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;KAChG,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC;KAClD,MAAM,CAAC;IACN,gBAAgB,EAAE,sBAAsB;IACxC,eAAe,EAAE,iCAAiC;IAClD,KAAK,EAAE,yBAAyB;IAChC,UAAU,EAAE,wBAAwB;CACrC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC;KACnD,MAAM,CAAC;IACN,gBAAgB,EAAE,sBAAsB;IACxC,OAAO,EAAE,iCAAiC;IAC1C,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;CACvB,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC;KAClD,MAAM,CAAC,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,CAAC;KACpD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC;KACnD,MAAM,CAAC;IACN,gBAAgB,EAAE,sBAAsB;IACxC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC;CACrD,CAAC;KACD,MAAM,EAAE,CAAC","sourcesContent":["import { z } from 'zod';\nimport { textFieldSchema } from '../doc-schemas/atoms.js';\nimport {\n waiverTemplateIdSchema,\n waiverTemplateVersionNumberSchema,\n} from '../doc-schemas/waiver-template.js';\nimport { WAIVER_TEMPLATE_DELETE_OUTCOME_KEYS } from '../types/unions.js';\nimport {\n WAIVER_TEMPLATE_TEXT_INPUT_FORMAT,\n WAIVER_TEMPLATE_TITLE_INPUT_FORMAT,\n} from '../input-formats/input-formats.js';\n\nexport const waiverTemplateTitleSchema = textFieldSchema(WAIVER_TEMPLATE_TITLE_INPUT_FORMAT);\nexport const waiverTemplateTextSchema = textFieldSchema(WAIVER_TEMPLATE_TEXT_INPUT_FORMAT);\n\nexport const AdminCreateWaiverTemplateInputSchema = z\n .object({ title: waiverTemplateTitleSchema, waiverText: waiverTemplateTextSchema })\n .strict();\nexport type AdminCreateWaiverTemplateInput = z.infer<typeof AdminCreateWaiverTemplateInputSchema>;\nexport const AdminCreateWaiverTemplateResultSchema = z\n .object({ waiverTemplateId: waiverTemplateIdSchema, version: waiverTemplateVersionNumberSchema })\n .strict();\nexport type AdminCreateWaiverTemplateResult = z.infer<typeof AdminCreateWaiverTemplateResultSchema>;\n\nexport const AdminUpdateWaiverTemplateInputSchema = z\n .object({\n waiverTemplateId: waiverTemplateIdSchema,\n expectedVersion: waiverTemplateVersionNumberSchema,\n title: waiverTemplateTitleSchema,\n waiverText: waiverTemplateTextSchema,\n })\n .strict();\nexport type AdminUpdateWaiverTemplateInput = z.infer<typeof AdminUpdateWaiverTemplateInputSchema>;\nexport const AdminUpdateWaiverTemplateResultSchema = z\n .object({\n waiverTemplateId: waiverTemplateIdSchema,\n version: waiverTemplateVersionNumberSchema,\n published: z.boolean(),\n })\n .strict();\nexport type AdminUpdateWaiverTemplateResult = z.infer<typeof AdminUpdateWaiverTemplateResultSchema>;\n\nexport const AdminDeleteWaiverTemplateInputSchema = z\n .object({ waiverTemplateId: waiverTemplateIdSchema })\n .strict();\nexport type AdminDeleteWaiverTemplateInput = z.infer<typeof AdminDeleteWaiverTemplateInputSchema>;\nexport const AdminDeleteWaiverTemplateResultSchema = z\n .object({\n waiverTemplateId: waiverTemplateIdSchema,\n outcome: z.enum(WAIVER_TEMPLATE_DELETE_OUTCOME_KEYS),\n })\n .strict();\nexport type AdminDeleteWaiverTemplateResult = z.infer<typeof AdminDeleteWaiverTemplateResultSchema>;\n"]}
1
+ {"version":3,"file":"waiver-templates.js","sourceRoot":"","sources":["../../src/schemas/waiver-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,sBAAsB,EACtB,iCAAiC,GAClC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,mCAAmC,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AAErC,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAC,2BAA2B,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,CAAC,0BAA0B,CAAC,CAAC;AAEpF,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC;KAClD,MAAM,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,wBAAwB,EAAE,CAAC;KAClF,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC;KACnD,MAAM,CAAC,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;KAChG,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC;KAClD,MAAM,CAAC;IACN,gBAAgB,EAAE,sBAAsB;IACxC,eAAe,EAAE,iCAAiC;IAClD,KAAK,EAAE,yBAAyB;IAChC,UAAU,EAAE,wBAAwB;CACrC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC;KACnD,MAAM,CAAC;IACN,gBAAgB,EAAE,sBAAsB;IACxC,OAAO,EAAE,iCAAiC;IAC1C,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;CACvB,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC;KAClD,MAAM,CAAC,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,CAAC;KACpD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC;KACnD,MAAM,CAAC;IACN,gBAAgB,EAAE,sBAAsB;IACxC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC;CACrD,CAAC;KACD,MAAM,EAAE,CAAC","sourcesContent":["import { z } from 'zod';\nimport { textFieldSchema } from './text-field.js';\nimport {\n waiverTemplateIdSchema,\n waiverTemplateVersionNumberSchema,\n} from '../doc-schemas/waiver-template.js';\nimport { WAIVER_TEMPLATE_DELETE_OUTCOME_KEYS } from '../types/unions.js';\nimport {\n WAIVER_TEMPLATE_TEXT_INPUT,\n WAIVER_TEMPLATE_TITLE_INPUT,\n} from '../constants/text-fields.js';\n\nexport const waiverTemplateTitleSchema = textFieldSchema(WAIVER_TEMPLATE_TITLE_INPUT);\nexport const waiverTemplateTextSchema = textFieldSchema(WAIVER_TEMPLATE_TEXT_INPUT);\n\nexport const AdminCreateWaiverTemplateInputSchema = z\n .object({ title: waiverTemplateTitleSchema, waiverText: waiverTemplateTextSchema })\n .strict();\nexport type AdminCreateWaiverTemplateInput = z.infer<typeof AdminCreateWaiverTemplateInputSchema>;\nexport const AdminCreateWaiverTemplateResultSchema = z\n .object({ waiverTemplateId: waiverTemplateIdSchema, version: waiverTemplateVersionNumberSchema })\n .strict();\nexport type AdminCreateWaiverTemplateResult = z.infer<typeof AdminCreateWaiverTemplateResultSchema>;\n\nexport const AdminUpdateWaiverTemplateInputSchema = z\n .object({\n waiverTemplateId: waiverTemplateIdSchema,\n expectedVersion: waiverTemplateVersionNumberSchema,\n title: waiverTemplateTitleSchema,\n waiverText: waiverTemplateTextSchema,\n })\n .strict();\nexport type AdminUpdateWaiverTemplateInput = z.infer<typeof AdminUpdateWaiverTemplateInputSchema>;\nexport const AdminUpdateWaiverTemplateResultSchema = z\n .object({\n waiverTemplateId: waiverTemplateIdSchema,\n version: waiverTemplateVersionNumberSchema,\n published: z.boolean(),\n })\n .strict();\nexport type AdminUpdateWaiverTemplateResult = z.infer<typeof AdminUpdateWaiverTemplateResultSchema>;\n\nexport const AdminDeleteWaiverTemplateInputSchema = z\n .object({ waiverTemplateId: waiverTemplateIdSchema })\n .strict();\nexport type AdminDeleteWaiverTemplateInput = z.infer<typeof AdminDeleteWaiverTemplateInputSchema>;\nexport const AdminDeleteWaiverTemplateResultSchema = z\n .object({\n waiverTemplateId: waiverTemplateIdSchema,\n outcome: z.enum(WAIVER_TEMPLATE_DELETE_OUTCOME_KEYS),\n })\n .strict();\nexport type AdminDeleteWaiverTemplateResult = z.infer<typeof AdminDeleteWaiverTemplateResultSchema>;\n"]}
@@ -9,4 +9,5 @@ export * from './team-member-actions.js';
9
9
  export * from './league-mode.js';
10
10
  export * from './league-joining.js';
11
11
  export * from './stats-operation-request.js';
12
+ export * from './text-field.js';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC"}
@@ -9,4 +9,5 @@ export * from './team-member-actions.js';
9
9
  export * from './league-mode.js';
10
10
  export * from './league-joining.js';
11
11
  export * from './stats-operation-request.js';
12
+ export * from './text-field.js';
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC","sourcesContent":["export * from './display-name.js';\nexport * from './app-config.js';\nexport * from './league-calendar.js';\nexport * from './team-creation.js';\nexport * from './account-status.js';\nexport * from './league-join-warning.js';\nexport * from './schedules.js';\nexport * from './team-member-actions.js';\nexport * from './league-mode.js';\nexport * from './league-joining.js';\nexport * from './stats-operation-request.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC","sourcesContent":["export * from './display-name.js';\nexport * from './app-config.js';\nexport * from './league-calendar.js';\nexport * from './team-creation.js';\nexport * from './account-status.js';\nexport * from './league-join-warning.js';\nexport * from './schedules.js';\nexport * from './team-member-actions.js';\nexport * from './league-mode.js';\nexport * from './league-joining.js';\nexport * from './stats-operation-request.js';\nexport * from './text-field.js';\n"]}
@@ -0,0 +1,15 @@
1
+ import { type DeclaredInputFormat, type InputFormatIssue } from '@ttt-productions/input-format-core';
2
+ export type TextFieldDeclaration = DeclaredInputFormat & {
3
+ readonly label: string;
4
+ };
5
+ export declare function textFieldRefusal(declaration: TextFieldDeclaration, issue: InputFormatIssue, text: string): string;
6
+ export declare function textFieldReformatNotice(declaration: TextFieldDeclaration): string;
7
+ export type TextFieldResult = {
8
+ readonly ok: true;
9
+ readonly value: string;
10
+ } | {
11
+ readonly ok: false;
12
+ readonly reason: string;
13
+ };
14
+ export declare function checkTextField(declaration: TextFieldDeclaration, text: string): TextFieldResult;
15
+ //# sourceMappingURL=text-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-field.d.ts","sourceRoot":"","sources":["../../src/utils/text-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EAExB,KAAK,gBAAgB,EACtB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAUpF,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,oBAAoB,EACjC,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,MAAM,GACX,MAAM,CAWR;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,oBAAoB,GAAG,MAAM,CAEjF;AAED,MAAM,MAAM,eAAe,GACzB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,wBAAgB,cAAc,CAAC,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAI/F"}
@@ -0,0 +1,32 @@
1
+ import { checkInputFormat, } from '@ttt-productions/input-format-core';
2
+ const CHARACTER_RULE_BY_FORMAT = {
3
+ englishNormal: 'can only use letters, numbers, and spaces.',
4
+ englishNormalNoSpaces: 'can only use letters and numbers.',
5
+ englishLettersOnly: 'can only use letters.',
6
+ singleLine: 'must be on one line.',
7
+ none: null,
8
+ };
9
+ export function textFieldRefusal(declaration, issue, text) {
10
+ const { label } = declaration;
11
+ if (issue === 'tooShort') {
12
+ return text.trim().length === 0
13
+ ? `${label} cannot be empty.`
14
+ : `${label} must be at least ${declaration.min} characters.`;
15
+ }
16
+ if (issue === 'tooLong')
17
+ return `${label} can be at most ${declaration.max} characters.`;
18
+ const rule = CHARACTER_RULE_BY_FORMAT[declaration.format];
19
+ if (rule === null)
20
+ throw new Error(`The ${declaration.format} format refuses no character.`);
21
+ return `${label} ${rule}`;
22
+ }
23
+ export function textFieldReformatNotice(declaration) {
24
+ return `${declaration.label} will be saved with one space between words.`;
25
+ }
26
+ export function checkTextField(declaration, text) {
27
+ const result = checkInputFormat(text, declaration);
28
+ if (result.ok)
29
+ return { ok: true, value: result.value };
30
+ return { ok: false, reason: textFieldRefusal(declaration, result.issue, text) };
31
+ }
32
+ //# sourceMappingURL=text-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-field.js","sourceRoot":"","sources":["../../src/utils/text-field.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GAIjB,MAAM,oCAAoC,CAAC;AAI5C,MAAM,wBAAwB,GAAG;IAC/B,aAAa,EAAE,4CAA4C;IAC3D,qBAAqB,EAAE,mCAAmC;IAC1D,kBAAkB,EAAE,uBAAuB;IAC3C,UAAU,EAAE,sBAAsB;IAClC,IAAI,EAAE,IAAI;CAC2C,CAAC;AAExD,MAAM,UAAU,gBAAgB,CAC9B,WAAiC,EACjC,KAAuB,EACvB,IAAY;IAEZ,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;IAC9B,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAC7B,CAAC,CAAC,GAAG,KAAK,mBAAmB;YAC7B,CAAC,CAAC,GAAG,KAAK,qBAAqB,WAAW,CAAC,GAAG,cAAc,CAAC;IACjE,CAAC;IACD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,KAAK,mBAAmB,WAAW,CAAC,GAAG,cAAc,CAAC;IACzF,MAAM,IAAI,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,IAAI,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,WAAW,CAAC,MAAM,+BAA+B,CAAC,CAAC;IAC7F,OAAO,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,WAAiC;IACvE,OAAO,GAAG,WAAW,CAAC,KAAK,8CAA8C,CAAC;AAC5E,CAAC;AAKD,MAAM,UAAU,cAAc,CAAC,WAAiC,EAAE,IAAY;IAC5E,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACxD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;AAClF,CAAC","sourcesContent":["import {\n checkInputFormat,\n type DeclaredInputFormat,\n type InputFormat,\n type InputFormatIssue,\n} from '@ttt-productions/input-format-core';\n\nexport type TextFieldDeclaration = DeclaredInputFormat & { readonly label: string };\n\nconst CHARACTER_RULE_BY_FORMAT = {\n englishNormal: 'can only use letters, numbers, and spaces.',\n englishNormalNoSpaces: 'can only use letters and numbers.',\n englishLettersOnly: 'can only use letters.',\n singleLine: 'must be on one line.',\n none: null,\n} as const satisfies Record<InputFormat, string | null>;\n\nexport function textFieldRefusal(\n declaration: TextFieldDeclaration,\n issue: InputFormatIssue,\n text: string,\n): string {\n const { label } = declaration;\n if (issue === 'tooShort') {\n return text.trim().length === 0\n ? `${label} cannot be empty.`\n : `${label} must be at least ${declaration.min} characters.`;\n }\n if (issue === 'tooLong') return `${label} can be at most ${declaration.max} characters.`;\n const rule = CHARACTER_RULE_BY_FORMAT[declaration.format];\n if (rule === null) throw new Error(`The ${declaration.format} format refuses no character.`);\n return `${label} ${rule}`;\n}\n\nexport function textFieldReformatNotice(declaration: TextFieldDeclaration): string {\n return `${declaration.label} will be saved with one space between words.`;\n}\n\nexport type TextFieldResult =\n { readonly ok: true; readonly value: string } | { readonly ok: false; readonly reason: string };\n\nexport function checkTextField(declaration: TextFieldDeclaration, text: string): TextFieldResult {\n const result = checkInputFormat(text, declaration);\n if (result.ok) return { ok: true, value: result.value };\n return { ok: false, reason: textFieldRefusal(declaration, result.issue, text) };\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttt-productions/q-core",
3
- "version": "0.1.39",
3
+ "version": "0.1.40",
4
4
  "description": "Core types, Firestore path constants, zod schemas, and shared constants for Q-Sports",
5
5
  "repository": {
6
6
  "type": "git",