@ttt-productions/q-core 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants/business.d.ts +40 -9
- package/dist/constants/business.d.ts.map +1 -1
- package/dist/constants/business.js +41 -20
- package/dist/constants/business.js.map +1 -1
- package/dist/doc-schemas/admin-notifications.d.ts +1 -1
- package/dist/doc-schemas/award-group-grant.d.ts +53 -0
- package/dist/doc-schemas/award-group-grant.d.ts.map +1 -0
- package/dist/doc-schemas/award-group-grant.js +63 -0
- package/dist/doc-schemas/award-group-grant.js.map +1 -0
- package/dist/doc-schemas/index.d.ts +1 -0
- package/dist/doc-schemas/index.d.ts.map +1 -1
- package/dist/doc-schemas/index.js +1 -0
- package/dist/doc-schemas/index.js.map +1 -1
- package/dist/doc-schemas/migration-console.d.ts +3 -3
- package/dist/doc-schemas/registry.d.ts +50 -12
- package/dist/doc-schemas/registry.d.ts.map +1 -1
- package/dist/doc-schemas/registry.js +5 -0
- package/dist/doc-schemas/registry.js.map +1 -1
- package/dist/doc-schemas/stats-operation.d.ts +18 -18
- package/dist/ids/award-grant-ids.d.ts +9 -0
- package/dist/ids/award-grant-ids.d.ts.map +1 -0
- package/dist/ids/award-grant-ids.js +17 -0
- package/dist/ids/award-grant-ids.js.map +1 -0
- package/dist/ids/index.d.ts +1 -0
- package/dist/ids/index.d.ts.map +1 -1
- package/dist/ids/index.js +1 -0
- package/dist/ids/index.js.map +1 -1
- package/dist/paths/collection-groups.d.ts +1 -0
- package/dist/paths/collection-groups.d.ts.map +1 -1
- package/dist/paths/collection-groups.js +3 -1
- package/dist/paths/collection-groups.js.map +1 -1
- package/dist/paths/collection-refs.d.ts +1 -0
- package/dist/paths/collection-refs.d.ts.map +1 -1
- package/dist/paths/collection-refs.js +1 -0
- package/dist/paths/collection-refs.js.map +1 -1
- package/dist/paths/collections.d.ts +5 -0
- package/dist/paths/collections.d.ts.map +1 -1
- package/dist/paths/collections.js +8 -0
- package/dist/paths/collections.js.map +1 -1
- package/dist/paths/path-builders.d.ts +3 -0
- package/dist/paths/path-builders.d.ts.map +1 -1
- package/dist/paths/path-builders.js +13 -1
- package/dist/paths/path-builders.js.map +1 -1
- package/dist/schemas/admin-notifications.d.ts +1 -1
- package/dist/schemas/awards.d.ts +94 -2
- package/dist/schemas/awards.d.ts.map +1 -1
- package/dist/schemas/awards.js +49 -9
- package/dist/schemas/awards.js.map +1 -1
- package/dist/schemas/leagues.d.ts +2 -2
- package/dist/schemas/migration-console.d.ts +7 -7
- package/dist/types/unions.d.ts +8 -0
- package/dist/types/unions.d.ts.map +1 -1
- package/dist/types/unions.js +12 -2
- package/dist/types/unions.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/registry.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/registry.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6C7B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDkB,CAAC;AAElD,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAIvE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;CAaiC,CAAC;AAGvE,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAO,CAAC"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { StatusReconcileQueueEntrySchema } from './status-reconcile-queue.js';
|
|
9
9
|
import { ActiveAdminNotificationSchema, AdminNotificationHistorySchema, NotificationArchiveAllJobSchema, NotificationDeliverySchema, } from './admin-notifications.js';
|
|
10
10
|
import { AwardDefinitionSchema } from './catalogs.js';
|
|
11
|
+
import { AwardGroupGrantPersonSchema, AwardGroupGrantSchema } from './award-group-grant.js';
|
|
11
12
|
import { GameLocationSchema } from './game-location.js';
|
|
12
13
|
import { GalleryPictureSchema } from './gallery.js';
|
|
13
14
|
import { PendingMediaSchema } from './pending-media.js';
|
|
@@ -57,6 +58,8 @@ export const COLLECTION_SCHEMAS = {
|
|
|
57
58
|
'signedWaivers/{signedWaiverId}': SignedWaiverSchema,
|
|
58
59
|
'hardwareLoanContracts/{contractId}': HardwareLoanContractSchema,
|
|
59
60
|
'awardDefinitions/{awardId}': AwardDefinitionSchema,
|
|
61
|
+
'awardGroupGrants/{grantId}': AwardGroupGrantSchema,
|
|
62
|
+
'awardGroupGrants/{grantId}/awardGroupGrantPeople/{userId}': AwardGroupGrantPersonSchema,
|
|
60
63
|
'sportHallOfFame/{sportKey}': SportHallOfFameSchema,
|
|
61
64
|
'statsValidationReports/{reportId}': StatsValidationReportSchema,
|
|
62
65
|
'statsOperations/{operationId}': StatsOperationSchema,
|
|
@@ -88,6 +91,8 @@ export const COLLECTION_DOC_ID_FIELDS = {
|
|
|
88
91
|
'adminNotificationHistory/{historyId}': 'archiveOccurrenceId',
|
|
89
92
|
'notificationDeliveries/{deliveryId}': 'deliveryId',
|
|
90
93
|
'notificationArchiveAllJobs/{jobId}': 'jobId',
|
|
94
|
+
'awardGroupGrants/{grantId}': 'grantId',
|
|
95
|
+
'awardGroupGrants/{grantId}/awardGroupGrantPeople/{userId}': 'userId',
|
|
91
96
|
'migrationActionRuns/{actionId}': 'actionId',
|
|
92
97
|
};
|
|
93
98
|
// Collections declared in ../paths with no bound schema yet, each with the reason.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/doc-schemas/registry.ts"],"names":[],"mappings":"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","sourcesContent":["// Collection → schema registry: every Firestore path template bound to the zod schema its\n// documents must satisfy. Every document a migration copy action writes is validated against the\n// schema bound here.\n//\n// A key is the literal path template — `{placeholder}` for an id, the literal segment for a fixed\n// document id. __tests__/doc-schemas-registry.test.ts fails when a collection constant has neither a\n// binding here nor an explicit PENDING_COLLECTIONS entry.\n\nimport type { z } from 'zod';\nimport { StatusReconcileQueueEntrySchema } from './status-reconcile-queue.js';\nimport {\n ActiveAdminNotificationSchema,\n AdminNotificationHistorySchema,\n NotificationArchiveAllJobSchema,\n NotificationDeliverySchema,\n} from './admin-notifications.js';\nimport { AwardDefinitionSchema } from './catalogs.js';\nimport { GameLocationSchema } from './game-location.js';\nimport { GalleryPictureSchema } from './gallery.js';\nimport { PendingMediaSchema } from './pending-media.js';\nimport { PictureRetirementSchema } from './picture-retirement.js';\nimport { GameRosterPlayerSchema, SportGameSchema } from './sport-game.js';\nimport { SportHallOfFameSchema } from './aggregate-stats.js';\nimport { GameStatHistoryPageSchema } from './game-stat-history.js';\nimport { GameStatEventSchema } from './game-stats.js';\nimport { StatsOperationSchema } from './stats-operation.js';\nimport { LeagueTeamContactSchema, LeagueTeamSchema } from './league-team.js';\nimport { MembershipRosterSyncSchema } from './membership-roster-sync.js';\nimport { MigrationActionRunSchema, MigrationConsoleSchema } from './migration-console.js';\nimport { AuditEventSchema } from './audit-event.js';\nimport { PublicUserSchema } from './publicUser.js';\nimport { RegistrationStartSchema } from './registration-start.js';\nimport { ReservedDisplayNameSchema } from './reserved-display-name.js';\nimport { SportLeagueSchema } from './sport-league.js';\nimport { SweepStateSchema } from './sweep-state.js';\nimport {\n AppConfigSchema,\n LandingPageConfigSchema,\n AdminListSchema,\n StatsBeaconSchema,\n StatsValidationReportSchema,\n} from './system.js';\nimport {\n LeagueFreeAgentSchema,\n TeamJoinRequestSchema,\n TeamInvitationSchema,\n TeamMembershipSchema,\n} from './team-membership.js';\nimport { HistoricalStatsSchema, UserPrivateDataSchema, UserProfileSchema } from './user-profile.js';\nimport { HardwareLoanContractSchema, SignedWaiverSchema } from './waivers-and-hardware.js';\nimport { WaiverTemplateSchema, WaiverTemplateVersionSchema } from './waiver-template.js';\n\nexport const COLLECTION_SCHEMAS = {\n 'userProfiles/{userId}': UserProfileSchema,\n 'userProfiles/{userId}/privateData/{privateDataId}': UserPrivateDataSchema,\n 'userProfiles/{userId}/historicalStats/{sportKey}': HistoricalStatsSchema,\n 'publicUsers/{userId}': PublicUserSchema,\n 'reservedDisplayNames/{reservedDisplayNameKey}': ReservedDisplayNameSchema,\n 'statusReconcileQueue/{userId}': StatusReconcileQueueEntrySchema,\n 'registrationStarts/{userId}': RegistrationStartSchema,\n\n 'sportLeagues/{leagueId}': SportLeagueSchema,\n 'leagueTeams/{teamId}': LeagueTeamSchema,\n 'leagueTeamContacts/{teamId}': LeagueTeamContactSchema,\n 'teamMemberships/{teamMembershipId}': TeamMembershipSchema,\n 'membershipRosterSyncs/{teamMembershipId}': MembershipRosterSyncSchema,\n 'teamInvitations/{inviteId}': TeamInvitationSchema,\n 'teamJoinRequests/{requestId}': TeamJoinRequestSchema,\n 'leagueFreeAgents/{leagueFreeAgentId}': LeagueFreeAgentSchema,\n\n 'sportGames/{gameId}': SportGameSchema,\n 'sportGames/{gameId}/gameRosterPlayers/{gameRosterPlayerId}': GameRosterPlayerSchema,\n 'sportGames/{gameId}/gameStatEvents/{eventId}': GameStatEventSchema,\n 'sportGames/{gameId}/gameStatHistory/{pageId}': GameStatHistoryPageSchema,\n 'gameLocations/{gameLocationId}': GameLocationSchema,\n\n 'waiverTemplates/{waiverTemplateId}': WaiverTemplateSchema,\n 'waiverTemplates/{waiverTemplateId}/waiverTemplateVersions/{versionId}': WaiverTemplateVersionSchema,\n 'signedWaivers/{signedWaiverId}': SignedWaiverSchema,\n 'hardwareLoanContracts/{contractId}': HardwareLoanContractSchema,\n\n 'awardDefinitions/{awardId}': AwardDefinitionSchema,\n 'sportHallOfFame/{sportKey}': SportHallOfFameSchema,\n 'statsValidationReports/{reportId}': StatsValidationReportSchema,\n 'statsOperations/{operationId}': StatsOperationSchema,\n\n 'galleryPictures/{pictureId}': GalleryPictureSchema,\n 'pendingMedia/{pendingMediaId}': PendingMediaSchema,\n 'pictureRetirements/{retirementId}': PictureRetirementSchema,\n\n 'auditEvents/{auditEventId}': AuditEventSchema,\n\n 'activeAdminNotifications/{notificationId}': ActiveAdminNotificationSchema,\n 'adminNotificationHistory/{historyId}': AdminNotificationHistorySchema,\n 'notificationDeliveries/{deliveryId}': NotificationDeliverySchema,\n 'notificationArchiveAllJobs/{jobId}': NotificationArchiveAllJobSchema,\n\n '_appConfig/landingPage': LandingPageConfigSchema,\n '_appConfig/app': AppConfigSchema,\n '_appConfig/statsBeacon': StatsBeaconSchema,\n '_systemData/adminList': AdminListSchema,\n '_serverData/migrationConsole': MigrationConsoleSchema,\n 'migrationActionRuns/{actionId}': MigrationActionRunSchema,\n 'sweepState/{sweepName}': SweepStateSchema,\n} as const satisfies Record<string, z.ZodTypeAny>;\n\nexport type RegisteredCollectionPath = keyof typeof COLLECTION_SCHEMAS;\n\n// The body field that equals the document id, where a schema declares one. A drift check injects\n// `doc.id` under this key before validating, so a doc-id field is never a false mismatch.\nexport const COLLECTION_DOC_ID_FIELDS = {\n 'publicUsers/{userId}': 'uid',\n 'registrationStarts/{userId}': 'userId',\n 'sportGames/{gameId}/gameStatEvents/{eventId}': 'eventId',\n 'statsValidationReports/{reportId}': 'reportId',\n 'auditEvents/{auditEventId}': 'id',\n 'pendingMedia/{pendingMediaId}': 'id',\n 'adminNotificationHistory/{historyId}': 'archiveOccurrenceId',\n 'notificationDeliveries/{deliveryId}': 'deliveryId',\n 'notificationArchiveAllJobs/{jobId}': 'jobId',\n 'migrationActionRuns/{actionId}': 'actionId',\n} as const satisfies Partial<Record<RegisteredCollectionPath, string>>;\n\n// Collections declared in ../paths with no bound schema yet, each with the reason.\nexport const PENDING_COLLECTIONS: readonly string[] = [];\n"]}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/doc-schemas/registry.ts"],"names":[],"mappings":"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","sourcesContent":["// Collection → schema registry: every Firestore path template bound to the zod schema its\n// documents must satisfy. Every document a migration copy action writes is validated against the\n// schema bound here.\n//\n// A key is the literal path template — `{placeholder}` for an id, the literal segment for a fixed\n// document id. __tests__/doc-schemas-registry.test.ts fails when a collection constant has neither a\n// binding here nor an explicit PENDING_COLLECTIONS entry.\n\nimport type { z } from 'zod';\nimport { StatusReconcileQueueEntrySchema } from './status-reconcile-queue.js';\nimport {\n ActiveAdminNotificationSchema,\n AdminNotificationHistorySchema,\n NotificationArchiveAllJobSchema,\n NotificationDeliverySchema,\n} from './admin-notifications.js';\nimport { AwardDefinitionSchema } from './catalogs.js';\nimport { AwardGroupGrantPersonSchema, AwardGroupGrantSchema } from './award-group-grant.js';\nimport { GameLocationSchema } from './game-location.js';\nimport { GalleryPictureSchema } from './gallery.js';\nimport { PendingMediaSchema } from './pending-media.js';\nimport { PictureRetirementSchema } from './picture-retirement.js';\nimport { GameRosterPlayerSchema, SportGameSchema } from './sport-game.js';\nimport { SportHallOfFameSchema } from './aggregate-stats.js';\nimport { GameStatHistoryPageSchema } from './game-stat-history.js';\nimport { GameStatEventSchema } from './game-stats.js';\nimport { StatsOperationSchema } from './stats-operation.js';\nimport { LeagueTeamContactSchema, LeagueTeamSchema } from './league-team.js';\nimport { MembershipRosterSyncSchema } from './membership-roster-sync.js';\nimport { MigrationActionRunSchema, MigrationConsoleSchema } from './migration-console.js';\nimport { AuditEventSchema } from './audit-event.js';\nimport { PublicUserSchema } from './publicUser.js';\nimport { RegistrationStartSchema } from './registration-start.js';\nimport { ReservedDisplayNameSchema } from './reserved-display-name.js';\nimport { SportLeagueSchema } from './sport-league.js';\nimport { SweepStateSchema } from './sweep-state.js';\nimport {\n AppConfigSchema,\n LandingPageConfigSchema,\n AdminListSchema,\n StatsBeaconSchema,\n StatsValidationReportSchema,\n} from './system.js';\nimport {\n LeagueFreeAgentSchema,\n TeamJoinRequestSchema,\n TeamInvitationSchema,\n TeamMembershipSchema,\n} from './team-membership.js';\nimport { HistoricalStatsSchema, UserPrivateDataSchema, UserProfileSchema } from './user-profile.js';\nimport { HardwareLoanContractSchema, SignedWaiverSchema } from './waivers-and-hardware.js';\nimport { WaiverTemplateSchema, WaiverTemplateVersionSchema } from './waiver-template.js';\n\nexport const COLLECTION_SCHEMAS = {\n 'userProfiles/{userId}': UserProfileSchema,\n 'userProfiles/{userId}/privateData/{privateDataId}': UserPrivateDataSchema,\n 'userProfiles/{userId}/historicalStats/{sportKey}': HistoricalStatsSchema,\n 'publicUsers/{userId}': PublicUserSchema,\n 'reservedDisplayNames/{reservedDisplayNameKey}': ReservedDisplayNameSchema,\n 'statusReconcileQueue/{userId}': StatusReconcileQueueEntrySchema,\n 'registrationStarts/{userId}': RegistrationStartSchema,\n\n 'sportLeagues/{leagueId}': SportLeagueSchema,\n 'leagueTeams/{teamId}': LeagueTeamSchema,\n 'leagueTeamContacts/{teamId}': LeagueTeamContactSchema,\n 'teamMemberships/{teamMembershipId}': TeamMembershipSchema,\n 'membershipRosterSyncs/{teamMembershipId}': MembershipRosterSyncSchema,\n 'teamInvitations/{inviteId}': TeamInvitationSchema,\n 'teamJoinRequests/{requestId}': TeamJoinRequestSchema,\n 'leagueFreeAgents/{leagueFreeAgentId}': LeagueFreeAgentSchema,\n\n 'sportGames/{gameId}': SportGameSchema,\n 'sportGames/{gameId}/gameRosterPlayers/{gameRosterPlayerId}': GameRosterPlayerSchema,\n 'sportGames/{gameId}/gameStatEvents/{eventId}': GameStatEventSchema,\n 'sportGames/{gameId}/gameStatHistory/{pageId}': GameStatHistoryPageSchema,\n 'gameLocations/{gameLocationId}': GameLocationSchema,\n\n 'waiverTemplates/{waiverTemplateId}': WaiverTemplateSchema,\n 'waiverTemplates/{waiverTemplateId}/waiverTemplateVersions/{versionId}': WaiverTemplateVersionSchema,\n 'signedWaivers/{signedWaiverId}': SignedWaiverSchema,\n 'hardwareLoanContracts/{contractId}': HardwareLoanContractSchema,\n\n 'awardDefinitions/{awardId}': AwardDefinitionSchema,\n 'awardGroupGrants/{grantId}': AwardGroupGrantSchema,\n 'awardGroupGrants/{grantId}/awardGroupGrantPeople/{userId}': AwardGroupGrantPersonSchema,\n 'sportHallOfFame/{sportKey}': SportHallOfFameSchema,\n 'statsValidationReports/{reportId}': StatsValidationReportSchema,\n 'statsOperations/{operationId}': StatsOperationSchema,\n\n 'galleryPictures/{pictureId}': GalleryPictureSchema,\n 'pendingMedia/{pendingMediaId}': PendingMediaSchema,\n 'pictureRetirements/{retirementId}': PictureRetirementSchema,\n\n 'auditEvents/{auditEventId}': AuditEventSchema,\n\n 'activeAdminNotifications/{notificationId}': ActiveAdminNotificationSchema,\n 'adminNotificationHistory/{historyId}': AdminNotificationHistorySchema,\n 'notificationDeliveries/{deliveryId}': NotificationDeliverySchema,\n 'notificationArchiveAllJobs/{jobId}': NotificationArchiveAllJobSchema,\n\n '_appConfig/landingPage': LandingPageConfigSchema,\n '_appConfig/app': AppConfigSchema,\n '_appConfig/statsBeacon': StatsBeaconSchema,\n '_systemData/adminList': AdminListSchema,\n '_serverData/migrationConsole': MigrationConsoleSchema,\n 'migrationActionRuns/{actionId}': MigrationActionRunSchema,\n 'sweepState/{sweepName}': SweepStateSchema,\n} as const satisfies Record<string, z.ZodTypeAny>;\n\nexport type RegisteredCollectionPath = keyof typeof COLLECTION_SCHEMAS;\n\n// The body field that equals the document id, where a schema declares one. A drift check injects\n// `doc.id` under this key before validating, so a doc-id field is never a false mismatch.\nexport const COLLECTION_DOC_ID_FIELDS = {\n 'publicUsers/{userId}': 'uid',\n 'registrationStarts/{userId}': 'userId',\n 'sportGames/{gameId}/gameStatEvents/{eventId}': 'eventId',\n 'statsValidationReports/{reportId}': 'reportId',\n 'auditEvents/{auditEventId}': 'id',\n 'pendingMedia/{pendingMediaId}': 'id',\n 'adminNotificationHistory/{historyId}': 'archiveOccurrenceId',\n 'notificationDeliveries/{deliveryId}': 'deliveryId',\n 'notificationArchiveAllJobs/{jobId}': 'jobId',\n 'awardGroupGrants/{grantId}': 'grantId',\n 'awardGroupGrants/{grantId}/awardGroupGrantPeople/{userId}': 'userId',\n 'migrationActionRuns/{actionId}': 'actionId',\n} as const satisfies Partial<Record<RegisteredCollectionPath, string>>;\n\n// Collections declared in ../paths with no bound schema yet, each with the reason.\nexport const PENDING_COLLECTIONS: readonly string[] = [];\n"]}
|
|
@@ -16,8 +16,8 @@ export declare const LeagueStatsRebuildOperationSchema: z.ZodObject<{
|
|
|
16
16
|
startedAt: z.ZodNumber;
|
|
17
17
|
updatedAt: z.ZodNumber;
|
|
18
18
|
status: z.ZodEnum<{
|
|
19
|
-
running: "running";
|
|
20
19
|
complete: "complete";
|
|
20
|
+
running: "running";
|
|
21
21
|
stopped: "stopped";
|
|
22
22
|
}>;
|
|
23
23
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -38,8 +38,8 @@ export declare const LifetimeStatsRebuildOperationSchema: z.ZodObject<{
|
|
|
38
38
|
startedAt: z.ZodNumber;
|
|
39
39
|
updatedAt: z.ZodNumber;
|
|
40
40
|
status: z.ZodEnum<{
|
|
41
|
-
running: "running";
|
|
42
41
|
complete: "complete";
|
|
42
|
+
running: "running";
|
|
43
43
|
stopped: "stopped";
|
|
44
44
|
}>;
|
|
45
45
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -65,8 +65,8 @@ export declare const HallOfFameRebuildOperationSchema: z.ZodObject<{
|
|
|
65
65
|
startedAt: z.ZodNumber;
|
|
66
66
|
updatedAt: z.ZodNumber;
|
|
67
67
|
status: z.ZodEnum<{
|
|
68
|
-
running: "running";
|
|
69
68
|
complete: "complete";
|
|
69
|
+
running: "running";
|
|
70
70
|
stopped: "stopped";
|
|
71
71
|
}>;
|
|
72
72
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -90,8 +90,8 @@ export declare const StatsValidationOperationSchema: z.ZodObject<{
|
|
|
90
90
|
startedAt: z.ZodNumber;
|
|
91
91
|
updatedAt: z.ZodNumber;
|
|
92
92
|
status: z.ZodEnum<{
|
|
93
|
-
running: "running";
|
|
94
93
|
complete: "complete";
|
|
94
|
+
running: "running";
|
|
95
95
|
stopped: "stopped";
|
|
96
96
|
}>;
|
|
97
97
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -111,8 +111,8 @@ export declare const GameStatsCorrectionOperationSchema: z.ZodObject<{
|
|
|
111
111
|
startedAt: z.ZodNumber;
|
|
112
112
|
updatedAt: z.ZodNumber;
|
|
113
113
|
status: z.ZodEnum<{
|
|
114
|
-
running: "running";
|
|
115
114
|
complete: "complete";
|
|
115
|
+
running: "running";
|
|
116
116
|
stopped: "stopped";
|
|
117
117
|
}>;
|
|
118
118
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -132,8 +132,8 @@ export declare const GameStatsRecalculationOperationSchema: z.ZodObject<{
|
|
|
132
132
|
startedAt: z.ZodNumber;
|
|
133
133
|
updatedAt: z.ZodNumber;
|
|
134
134
|
status: z.ZodEnum<{
|
|
135
|
-
running: "running";
|
|
136
135
|
complete: "complete";
|
|
136
|
+
running: "running";
|
|
137
137
|
stopped: "stopped";
|
|
138
138
|
}>;
|
|
139
139
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -158,8 +158,8 @@ export declare const HistoricalStatsUpdateOperationSchema: z.ZodObject<{
|
|
|
158
158
|
startedAt: z.ZodNumber;
|
|
159
159
|
updatedAt: z.ZodNumber;
|
|
160
160
|
status: z.ZodEnum<{
|
|
161
|
-
running: "running";
|
|
162
161
|
complete: "complete";
|
|
162
|
+
running: "running";
|
|
163
163
|
stopped: "stopped";
|
|
164
164
|
}>;
|
|
165
165
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -227,8 +227,8 @@ export declare const GhostPlayerStatsOperationSchema: z.ZodObject<{
|
|
|
227
227
|
startedAt: z.ZodNumber;
|
|
228
228
|
updatedAt: z.ZodNumber;
|
|
229
229
|
status: z.ZodEnum<{
|
|
230
|
-
running: "running";
|
|
231
230
|
complete: "complete";
|
|
231
|
+
running: "running";
|
|
232
232
|
stopped: "stopped";
|
|
233
233
|
}>;
|
|
234
234
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -248,8 +248,8 @@ export declare const GameDeletionOperationSchema: z.ZodObject<{
|
|
|
248
248
|
startedAt: z.ZodNumber;
|
|
249
249
|
updatedAt: z.ZodNumber;
|
|
250
250
|
status: z.ZodEnum<{
|
|
251
|
-
running: "running";
|
|
252
251
|
complete: "complete";
|
|
252
|
+
running: "running";
|
|
253
253
|
stopped: "stopped";
|
|
254
254
|
}>;
|
|
255
255
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -270,8 +270,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
270
270
|
startedAt: z.ZodNumber;
|
|
271
271
|
updatedAt: z.ZodNumber;
|
|
272
272
|
status: z.ZodEnum<{
|
|
273
|
-
running: "running";
|
|
274
273
|
complete: "complete";
|
|
274
|
+
running: "running";
|
|
275
275
|
stopped: "stopped";
|
|
276
276
|
}>;
|
|
277
277
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -291,8 +291,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
291
291
|
startedAt: z.ZodNumber;
|
|
292
292
|
updatedAt: z.ZodNumber;
|
|
293
293
|
status: z.ZodEnum<{
|
|
294
|
-
running: "running";
|
|
295
294
|
complete: "complete";
|
|
295
|
+
running: "running";
|
|
296
296
|
stopped: "stopped";
|
|
297
297
|
}>;
|
|
298
298
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -317,8 +317,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
317
317
|
startedAt: z.ZodNumber;
|
|
318
318
|
updatedAt: z.ZodNumber;
|
|
319
319
|
status: z.ZodEnum<{
|
|
320
|
-
running: "running";
|
|
321
320
|
complete: "complete";
|
|
321
|
+
running: "running";
|
|
322
322
|
stopped: "stopped";
|
|
323
323
|
}>;
|
|
324
324
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -341,8 +341,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
341
341
|
startedAt: z.ZodNumber;
|
|
342
342
|
updatedAt: z.ZodNumber;
|
|
343
343
|
status: z.ZodEnum<{
|
|
344
|
-
running: "running";
|
|
345
344
|
complete: "complete";
|
|
345
|
+
running: "running";
|
|
346
346
|
stopped: "stopped";
|
|
347
347
|
}>;
|
|
348
348
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -361,8 +361,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
361
361
|
startedAt: z.ZodNumber;
|
|
362
362
|
updatedAt: z.ZodNumber;
|
|
363
363
|
status: z.ZodEnum<{
|
|
364
|
-
running: "running";
|
|
365
364
|
complete: "complete";
|
|
365
|
+
running: "running";
|
|
366
366
|
stopped: "stopped";
|
|
367
367
|
}>;
|
|
368
368
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -381,8 +381,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
381
381
|
startedAt: z.ZodNumber;
|
|
382
382
|
updatedAt: z.ZodNumber;
|
|
383
383
|
status: z.ZodEnum<{
|
|
384
|
-
running: "running";
|
|
385
384
|
complete: "complete";
|
|
385
|
+
running: "running";
|
|
386
386
|
stopped: "stopped";
|
|
387
387
|
}>;
|
|
388
388
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -406,8 +406,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
406
406
|
startedAt: z.ZodNumber;
|
|
407
407
|
updatedAt: z.ZodNumber;
|
|
408
408
|
status: z.ZodEnum<{
|
|
409
|
-
running: "running";
|
|
410
409
|
complete: "complete";
|
|
410
|
+
running: "running";
|
|
411
411
|
stopped: "stopped";
|
|
412
412
|
}>;
|
|
413
413
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -455,8 +455,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
455
455
|
startedAt: z.ZodNumber;
|
|
456
456
|
updatedAt: z.ZodNumber;
|
|
457
457
|
status: z.ZodEnum<{
|
|
458
|
-
running: "running";
|
|
459
458
|
complete: "complete";
|
|
459
|
+
running: "running";
|
|
460
460
|
stopped: "stopped";
|
|
461
461
|
}>;
|
|
462
462
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -474,8 +474,8 @@ export declare const StatsOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
474
474
|
startedAt: z.ZodNumber;
|
|
475
475
|
updatedAt: z.ZodNumber;
|
|
476
476
|
status: z.ZodEnum<{
|
|
477
|
-
running: "running";
|
|
478
477
|
complete: "complete";
|
|
478
|
+
running: "running";
|
|
479
479
|
stopped: "stopped";
|
|
480
480
|
}>;
|
|
481
481
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AwardGroupType } from '../types/unions.js';
|
|
2
|
+
export interface AwardGroupGrantTarget {
|
|
3
|
+
readonly awardId: string;
|
|
4
|
+
readonly groupType: AwardGroupType;
|
|
5
|
+
readonly groupId: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function buildAwardGroupGrantTargetKey(target: AwardGroupGrantTarget): string;
|
|
8
|
+
export declare function buildAwardGroupGrantId(targetKey: string, decision: number): string;
|
|
9
|
+
//# sourceMappingURL=award-grant-ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"award-grant-ids.d.ts","sourceRoot":"","sources":["../../src/ids/award-grant-ids.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAQD,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAEnF;AAID,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Award group grant ids. Every decision on one award for one group shares that pair's target key,
|
|
2
|
+
// and each decision's record id is the key plus its decision number — deterministic, so two
|
|
3
|
+
// decisions racing for the same number write the same document and conflict instead of both
|
|
4
|
+
// committing (BACKEND-304).
|
|
5
|
+
// A part prefixed by its length, so parts that contain any character still decode one way.
|
|
6
|
+
const lengthPrefixed = (part) => `${part.length}:${part}`;
|
|
7
|
+
const DECISION_SEPARATOR = '~';
|
|
8
|
+
// The key every decision on one award for one group shares.
|
|
9
|
+
export function buildAwardGroupGrantTargetKey(target) {
|
|
10
|
+
return [target.awardId, target.groupType, target.groupId].map(lengthPrefixed).join('');
|
|
11
|
+
}
|
|
12
|
+
// awardGroupGrants/{targetKey}~{decision}. The target key is length-prefixed throughout, so the
|
|
13
|
+
// decision after the last separator decodes one way.
|
|
14
|
+
export function buildAwardGroupGrantId(targetKey, decision) {
|
|
15
|
+
return `${targetKey}${DECISION_SEPARATOR}${decision}`;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=award-grant-ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"award-grant-ids.js","sourceRoot":"","sources":["../../src/ids/award-grant-ids.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,4FAA4F;AAC5F,4FAA4F;AAC5F,4BAA4B;AAU5B,2FAA2F;AAC3F,MAAM,cAAc,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;AAE1E,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,4DAA4D;AAC5D,MAAM,UAAU,6BAA6B,CAAC,MAA6B;IACzE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzF,CAAC;AAED,gGAAgG;AAChG,qDAAqD;AACrD,MAAM,UAAU,sBAAsB,CAAC,SAAiB,EAAE,QAAgB;IACxE,OAAO,GAAG,SAAS,GAAG,kBAAkB,GAAG,QAAQ,EAAE,CAAC;AACxD,CAAC","sourcesContent":["// Award group grant ids. Every decision on one award for one group shares that pair's target key,\n// and each decision's record id is the key plus its decision number — deterministic, so two\n// decisions racing for the same number write the same document and conflict instead of both\n// committing (BACKEND-304).\n\nimport type { AwardGroupType } from '../types/unions.js';\n\nexport interface AwardGroupGrantTarget {\n readonly awardId: string;\n readonly groupType: AwardGroupType;\n readonly groupId: string;\n}\n\n// A part prefixed by its length, so parts that contain any character still decode one way.\nconst lengthPrefixed = (part: string): string => `${part.length}:${part}`;\n\nconst DECISION_SEPARATOR = '~';\n\n// The key every decision on one award for one group shares.\nexport function buildAwardGroupGrantTargetKey(target: AwardGroupGrantTarget): string {\n return [target.awardId, target.groupType, target.groupId].map(lengthPrefixed).join('');\n}\n\n// awardGroupGrants/{targetKey}~{decision}. The target key is length-prefixed throughout, so the\n// decision after the last separator decodes one way.\nexport function buildAwardGroupGrantId(targetKey: string, decision: number): string {\n return `${targetKey}${DECISION_SEPARATOR}${decision}`;\n}\n"]}
|
package/dist/ids/index.d.ts
CHANGED
package/dist/ids/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ids/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ids/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
|
package/dist/ids/index.js
CHANGED
package/dist/ids/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ids/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC","sourcesContent":["export * from './compound-ids.js';\nexport * from './minted-ids.js';\nexport * from './stat-event-ids.js';\nexport * from './waiver-template-ids.js';\nexport * from './picture-ids.js';\nexport * from './notification-ids.js';\nexport * from './stats-operation-ids.js';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ids/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC","sourcesContent":["export * from './compound-ids.js';\nexport * from './minted-ids.js';\nexport * from './stat-event-ids.js';\nexport * from './waiver-template-ids.js';\nexport * from './picture-ids.js';\nexport * from './notification-ids.js';\nexport * from './stats-operation-ids.js';\nexport * from './award-grant-ids.js';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-groups.d.ts","sourceRoot":"","sources":["../../src/paths/collection-groups.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"collection-groups.d.ts","sourceRoot":"","sources":["../../src/paths/collection-groups.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,iBAAiB;;;;CAKpB,CAAC"}
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
//
|
|
3
3
|
// Frontend: collectionGroup(db, COLLECTION_GROUPS.GAME_ROSTER_PLAYERS)
|
|
4
4
|
// Backend: db.collectionGroup(COLLECTION_GROUPS.GAME_ROSTER_PLAYERS)
|
|
5
|
-
import { SPORT_GAME_SUBCOLLECTIONS } from './collections.js';
|
|
5
|
+
import { AWARD_GROUP_GRANT_SUBCOLLECTIONS, SPORT_GAME_SUBCOLLECTIONS } from './collections.js';
|
|
6
6
|
export const COLLECTION_GROUPS = {
|
|
7
|
+
// Every grant's record of one person: a revoke asks whether another group's grant still holds them.
|
|
8
|
+
AWARD_GROUP_GRANT_PEOPLE: AWARD_GROUP_GRANT_SUBCOLLECTIONS.AWARD_GROUP_GRANT_PEOPLE,
|
|
7
9
|
GAME_ROSTER_PLAYERS: SPORT_GAME_SUBCOLLECTIONS.GAME_ROSTER_PLAYERS,
|
|
8
10
|
GAME_STAT_EVENTS: SPORT_GAME_SUBCOLLECTIONS.GAME_STAT_EVENTS,
|
|
9
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-groups.js","sourceRoot":"","sources":["../../src/paths/collection-groups.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AAEtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"collection-groups.js","sourceRoot":"","sources":["../../src/paths/collection-groups.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AAEtE,OAAO,EAAE,gCAAgC,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAE/F,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,oGAAoG;IACpG,wBAAwB,EAAE,gCAAgC,CAAC,wBAAwB;IACnF,mBAAmB,EAAE,yBAAyB,CAAC,mBAAmB;IAClE,gBAAgB,EAAE,yBAAyB,CAAC,gBAAgB;CACpD,CAAC","sourcesContent":["// Collection group names — derived from the subcollection constants, never re-typed.\n//\n// Frontend: collectionGroup(db, COLLECTION_GROUPS.GAME_ROSTER_PLAYERS)\n// Backend: db.collectionGroup(COLLECTION_GROUPS.GAME_ROSTER_PLAYERS)\n\nimport { AWARD_GROUP_GRANT_SUBCOLLECTIONS, SPORT_GAME_SUBCOLLECTIONS } from './collections.js';\n\nexport const COLLECTION_GROUPS = {\n // Every grant's record of one person: a revoke asks whether another group's grant still holds them.\n AWARD_GROUP_GRANT_PEOPLE: AWARD_GROUP_GRANT_SUBCOLLECTIONS.AWARD_GROUP_GRANT_PEOPLE,\n GAME_ROSTER_PLAYERS: SPORT_GAME_SUBCOLLECTIONS.GAME_ROSTER_PLAYERS,\n GAME_STAT_EVENTS: SPORT_GAME_SUBCOLLECTIONS.GAME_STAT_EVENTS,\n} as const;\n"]}
|
|
@@ -18,6 +18,7 @@ export declare const COLLECTION_REFS: {
|
|
|
18
18
|
readonly signedWaivers: () => [string];
|
|
19
19
|
readonly hardwareLoanContracts: () => [string];
|
|
20
20
|
readonly awardDefinitions: () => [string];
|
|
21
|
+
readonly awardGroupGrants: () => [string];
|
|
21
22
|
readonly statsValidationReports: () => [string];
|
|
22
23
|
readonly statsOperations: () => [string];
|
|
23
24
|
readonly migrationActionRuns: () => [string];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-refs.d.ts","sourceRoot":"","sources":["../../src/paths/collection-refs.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe;iCACR,CAAC,MAAM,CAAC;gCACT,CAAC,MAAM,CAAC;yCACC,CAAC,MAAM,CAAC;uCACV,CAAC,MAAM,CAAC;yCACN,CAAC,MAAM,CAAC;iCAChB,CAAC,MAAM,CAAC;gCACT,CAAC,MAAM,CAAC;uCACD,CAAC,MAAM,CAAC;oCACX,CAAC,MAAM,CAAC;oCACR,CAAC,MAAM,CAAC;qCACP,CAAC,MAAM,CAAC;qCACR,CAAC,MAAM,CAAC;0CACH,CAAC,MAAM,CAAC;+BACnB,CAAC,MAAM,CAAC;kCACL,CAAC,MAAM,CAAC;oCACN,CAAC,MAAM,CAAC;kCACV,CAAC,MAAM,CAAC;0CACA,CAAC,MAAM,CAAC;qCACb,CAAC,MAAM,CAAC;2CACF,CAAC,MAAM,CAAC;oCACf,CAAC,MAAM,CAAC;wCACJ,CAAC,MAAM,CAAC;oCACZ,CAAC,MAAM,CAAC;iCACX,CAAC,MAAM,CAAC;uCACF,CAAC,MAAM,CAAC;gCACf,CAAC,MAAM,CAAC;6CACK,CAAC,MAAM,CAAC;6CACR,CAAC,MAAM,CAAC;2CACV,CAAC,MAAM,CAAC;+CACJ,CAAC,MAAM,CAAC;CAChC,CAAC"}
|
|
1
|
+
{"version":3,"file":"collection-refs.d.ts","sourceRoot":"","sources":["../../src/paths/collection-refs.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe;iCACR,CAAC,MAAM,CAAC;gCACT,CAAC,MAAM,CAAC;yCACC,CAAC,MAAM,CAAC;uCACV,CAAC,MAAM,CAAC;yCACN,CAAC,MAAM,CAAC;iCAChB,CAAC,MAAM,CAAC;gCACT,CAAC,MAAM,CAAC;uCACD,CAAC,MAAM,CAAC;oCACX,CAAC,MAAM,CAAC;oCACR,CAAC,MAAM,CAAC;qCACP,CAAC,MAAM,CAAC;qCACR,CAAC,MAAM,CAAC;0CACH,CAAC,MAAM,CAAC;+BACnB,CAAC,MAAM,CAAC;kCACL,CAAC,MAAM,CAAC;oCACN,CAAC,MAAM,CAAC;kCACV,CAAC,MAAM,CAAC;0CACA,CAAC,MAAM,CAAC;qCACb,CAAC,MAAM,CAAC;qCACR,CAAC,MAAM,CAAC;2CACF,CAAC,MAAM,CAAC;oCACf,CAAC,MAAM,CAAC;wCACJ,CAAC,MAAM,CAAC;oCACZ,CAAC,MAAM,CAAC;iCACX,CAAC,MAAM,CAAC;uCACF,CAAC,MAAM,CAAC;gCACf,CAAC,MAAM,CAAC;6CACK,CAAC,MAAM,CAAC;6CACR,CAAC,MAAM,CAAC;2CACV,CAAC,MAAM,CAAC;+CACJ,CAAC,MAAM,CAAC;CAChC,CAAC"}
|
|
@@ -23,6 +23,7 @@ export const COLLECTION_REFS = {
|
|
|
23
23
|
signedWaivers: () => [COLLECTIONS.SIGNED_WAIVERS],
|
|
24
24
|
hardwareLoanContracts: () => [COLLECTIONS.HARDWARE_LOAN_CONTRACTS],
|
|
25
25
|
awardDefinitions: () => [COLLECTIONS.AWARD_DEFINITIONS],
|
|
26
|
+
awardGroupGrants: () => [COLLECTIONS.AWARD_GROUP_GRANTS],
|
|
26
27
|
statsValidationReports: () => [COLLECTIONS.STATS_VALIDATION_REPORTS],
|
|
27
28
|
statsOperations: () => [COLLECTIONS.STATS_OPERATIONS],
|
|
28
29
|
migrationActionRuns: () => [COLLECTIONS.MIGRATION_ACTION_RUNS],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-refs.js","sourceRoot":"","sources":["../../src/paths/collection-refs.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,8DAA8D;AAC9D,kEAAkE;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC;IACzD,WAAW,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;IACvD,oBAAoB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC;IAC1E,kBAAkB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC;IACrE,oBAAoB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC;IAC1E,YAAY,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC;IACzD,WAAW,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;IACvD,kBAAkB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC;IACtE,eAAe,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAC/D,eAAe,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAC/D,gBAAgB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC;IAClE,gBAAgB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC;IAClE,qBAAqB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC;IAC5E,UAAU,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC;IACrD,aAAa,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC;IAC3D,eAAe,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAC/D,aAAa,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC;IAC3D,qBAAqB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC;IAC5E,gBAAgB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC;IACjE,sBAAsB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC;IAC9E,eAAe,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAC/D,mBAAmB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC;IACxE,eAAe,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAC/D,YAAY,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC;IACzD,kBAAkB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC;IACrE,WAAW,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;IACvD,wBAAwB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC;IAClF,wBAAwB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC;IAClF,sBAAsB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC;IAC7E,0BAA0B,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,6BAA6B,CAAC;CAC/E,CAAC","sourcesContent":["// Collection reference builders — for collection-level operations.\n//\n// Frontend: collection(db, ...COLLECTION_REFS.userProfiles())\n// Backend: db.collection(toPath(COLLECTION_REFS.userProfiles()))\n\nimport { COLLECTIONS } from './collections.js';\n\nexport const COLLECTION_REFS = {\n userProfiles: (): [string] => [COLLECTIONS.USER_PROFILES],\n publicUsers: (): [string] => [COLLECTIONS.PUBLIC_USERS],\n statusReconcileQueue: (): [string] => [COLLECTIONS.STATUS_RECONCILE_QUEUE],\n registrationStarts: (): [string] => [COLLECTIONS.REGISTRATION_STARTS],\n reservedDisplayNames: (): [string] => [COLLECTIONS.RESERVED_DISPLAY_NAMES],\n sportLeagues: (): [string] => [COLLECTIONS.SPORT_LEAGUES],\n leagueTeams: (): [string] => [COLLECTIONS.LEAGUE_TEAMS],\n leagueTeamContacts: (): [string] => [COLLECTIONS.LEAGUE_TEAM_CONTACTS],\n teamMemberships: (): [string] => [COLLECTIONS.TEAM_MEMBERSHIPS],\n teamInvitations: (): [string] => [COLLECTIONS.TEAM_INVITATIONS],\n teamJoinRequests: (): [string] => [COLLECTIONS.TEAM_JOIN_REQUESTS],\n leagueFreeAgents: (): [string] => [COLLECTIONS.LEAGUE_FREE_AGENTS],\n membershipRosterSyncs: (): [string] => [COLLECTIONS.MEMBERSHIP_ROSTER_SYNCS],\n sportGames: (): [string] => [COLLECTIONS.SPORT_GAMES],\n gameLocations: (): [string] => [COLLECTIONS.GAME_LOCATIONS],\n waiverTemplates: (): [string] => [COLLECTIONS.WAIVER_TEMPLATES],\n signedWaivers: (): [string] => [COLLECTIONS.SIGNED_WAIVERS],\n hardwareLoanContracts: (): [string] => [COLLECTIONS.HARDWARE_LOAN_CONTRACTS],\n awardDefinitions: (): [string] => [COLLECTIONS.AWARD_DEFINITIONS],\n statsValidationReports: (): [string] => [COLLECTIONS.STATS_VALIDATION_REPORTS],\n statsOperations: (): [string] => [COLLECTIONS.STATS_OPERATIONS],\n migrationActionRuns: (): [string] => [COLLECTIONS.MIGRATION_ACTION_RUNS],\n galleryPictures: (): [string] => [COLLECTIONS.GALLERY_PICTURES],\n pendingMedia: (): [string] => [COLLECTIONS.PENDING_MEDIA],\n pictureRetirements: (): [string] => [COLLECTIONS.PICTURE_RETIREMENTS],\n auditEvents: (): [string] => [COLLECTIONS.AUDIT_EVENTS],\n activeAdminNotifications: (): [string] => [COLLECTIONS.ACTIVE_ADMIN_NOTIFICATIONS],\n adminNotificationHistory: (): [string] => [COLLECTIONS.ADMIN_NOTIFICATION_HISTORY],\n notificationDeliveries: (): [string] => [COLLECTIONS.NOTIFICATION_DELIVERIES],\n notificationArchiveAllJobs: (): [string] => [COLLECTIONS.NOTIFICATION_ARCHIVE_ALL_JOBS],\n} as const;\n"]}
|
|
1
|
+
{"version":3,"file":"collection-refs.js","sourceRoot":"","sources":["../../src/paths/collection-refs.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,8DAA8D;AAC9D,kEAAkE;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC;IACzD,WAAW,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;IACvD,oBAAoB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC;IAC1E,kBAAkB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC;IACrE,oBAAoB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC;IAC1E,YAAY,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC;IACzD,WAAW,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;IACvD,kBAAkB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC;IACtE,eAAe,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAC/D,eAAe,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAC/D,gBAAgB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC;IAClE,gBAAgB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC;IAClE,qBAAqB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC;IAC5E,UAAU,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC;IACrD,aAAa,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC;IAC3D,eAAe,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAC/D,aAAa,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC;IAC3D,qBAAqB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC;IAC5E,gBAAgB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC;IACjE,gBAAgB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC;IAClE,sBAAsB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC;IAC9E,eAAe,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAC/D,mBAAmB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC;IACxE,eAAe,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAC/D,YAAY,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC;IACzD,kBAAkB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC;IACrE,WAAW,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;IACvD,wBAAwB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC;IAClF,wBAAwB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC;IAClF,sBAAsB,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC;IAC7E,0BAA0B,EAAE,GAAa,EAAE,CAAC,CAAC,WAAW,CAAC,6BAA6B,CAAC;CAC/E,CAAC","sourcesContent":["// Collection reference builders — for collection-level operations.\n//\n// Frontend: collection(db, ...COLLECTION_REFS.userProfiles())\n// Backend: db.collection(toPath(COLLECTION_REFS.userProfiles()))\n\nimport { COLLECTIONS } from './collections.js';\n\nexport const COLLECTION_REFS = {\n userProfiles: (): [string] => [COLLECTIONS.USER_PROFILES],\n publicUsers: (): [string] => [COLLECTIONS.PUBLIC_USERS],\n statusReconcileQueue: (): [string] => [COLLECTIONS.STATUS_RECONCILE_QUEUE],\n registrationStarts: (): [string] => [COLLECTIONS.REGISTRATION_STARTS],\n reservedDisplayNames: (): [string] => [COLLECTIONS.RESERVED_DISPLAY_NAMES],\n sportLeagues: (): [string] => [COLLECTIONS.SPORT_LEAGUES],\n leagueTeams: (): [string] => [COLLECTIONS.LEAGUE_TEAMS],\n leagueTeamContacts: (): [string] => [COLLECTIONS.LEAGUE_TEAM_CONTACTS],\n teamMemberships: (): [string] => [COLLECTIONS.TEAM_MEMBERSHIPS],\n teamInvitations: (): [string] => [COLLECTIONS.TEAM_INVITATIONS],\n teamJoinRequests: (): [string] => [COLLECTIONS.TEAM_JOIN_REQUESTS],\n leagueFreeAgents: (): [string] => [COLLECTIONS.LEAGUE_FREE_AGENTS],\n membershipRosterSyncs: (): [string] => [COLLECTIONS.MEMBERSHIP_ROSTER_SYNCS],\n sportGames: (): [string] => [COLLECTIONS.SPORT_GAMES],\n gameLocations: (): [string] => [COLLECTIONS.GAME_LOCATIONS],\n waiverTemplates: (): [string] => [COLLECTIONS.WAIVER_TEMPLATES],\n signedWaivers: (): [string] => [COLLECTIONS.SIGNED_WAIVERS],\n hardwareLoanContracts: (): [string] => [COLLECTIONS.HARDWARE_LOAN_CONTRACTS],\n awardDefinitions: (): [string] => [COLLECTIONS.AWARD_DEFINITIONS],\n awardGroupGrants: (): [string] => [COLLECTIONS.AWARD_GROUP_GRANTS],\n statsValidationReports: (): [string] => [COLLECTIONS.STATS_VALIDATION_REPORTS],\n statsOperations: (): [string] => [COLLECTIONS.STATS_OPERATIONS],\n migrationActionRuns: (): [string] => [COLLECTIONS.MIGRATION_ACTION_RUNS],\n galleryPictures: (): [string] => [COLLECTIONS.GALLERY_PICTURES],\n pendingMedia: (): [string] => [COLLECTIONS.PENDING_MEDIA],\n pictureRetirements: (): [string] => [COLLECTIONS.PICTURE_RETIREMENTS],\n auditEvents: (): [string] => [COLLECTIONS.AUDIT_EVENTS],\n activeAdminNotifications: (): [string] => [COLLECTIONS.ACTIVE_ADMIN_NOTIFICATIONS],\n adminNotificationHistory: (): [string] => [COLLECTIONS.ADMIN_NOTIFICATION_HISTORY],\n notificationDeliveries: (): [string] => [COLLECTIONS.NOTIFICATION_DELIVERIES],\n notificationArchiveAllJobs: (): [string] => [COLLECTIONS.NOTIFICATION_ARCHIVE_ALL_JOBS],\n} as const;\n"]}
|
|
@@ -19,6 +19,7 @@ export declare const COLLECTIONS: {
|
|
|
19
19
|
readonly SIGNED_WAIVERS: "signedWaivers";
|
|
20
20
|
readonly HARDWARE_LOAN_CONTRACTS: "hardwareLoanContracts";
|
|
21
21
|
readonly AWARD_DEFINITIONS: "awardDefinitions";
|
|
22
|
+
readonly AWARD_GROUP_GRANTS: "awardGroupGrants";
|
|
22
23
|
readonly SPORT_HALL_OF_FAME: "sportHallOfFame";
|
|
23
24
|
readonly STATS_VALIDATION_REPORTS: "statsValidationReports";
|
|
24
25
|
readonly STATS_OPERATIONS: "statsOperations";
|
|
@@ -51,6 +52,10 @@ export declare const SPORT_GAME_SUBCOLLECTIONS: {
|
|
|
51
52
|
export declare const WAIVER_TEMPLATE_SUBCOLLECTIONS: {
|
|
52
53
|
readonly WAIVER_TEMPLATE_VERSIONS: "waiverTemplateVersions";
|
|
53
54
|
};
|
|
55
|
+
/** Subcollections of `awardGroupGrants/{grantId}`. */
|
|
56
|
+
export declare const AWARD_GROUP_GRANT_SUBCOLLECTIONS: {
|
|
57
|
+
readonly AWARD_GROUP_GRANT_PEOPLE: "awardGroupGrantPeople";
|
|
58
|
+
};
|
|
54
59
|
/** Static document IDs for fixed-ID documents. */
|
|
55
60
|
export declare const SPECIAL_DOCS: {
|
|
56
61
|
readonly APP_CONFIG: "app";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../src/paths/collections.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../src/paths/collections.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFd,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAE5E,iDAAiD;AACjD,eAAO,MAAM,2BAA2B;;;CAM9B,CAAC;AAEX,+CAA+C;AAC/C,eAAO,MAAM,yBAAyB;;;;CAO5B,CAAC;AAEX,8DAA8D;AAC9D,eAAO,MAAM,8BAA8B;;CAGjC,CAAC;AAEX,sDAAsD;AACtD,eAAO,MAAM,gCAAgC;;CAGnC,CAAC;AAEX,kDAAkD;AAClD,eAAO,MAAM,YAAY;;;;;;CAgBf,CAAC"}
|
|
@@ -45,6 +45,9 @@ export const COLLECTIONS = {
|
|
|
45
45
|
HARDWARE_LOAN_CONTRACTS: 'hardwareLoanContracts',
|
|
46
46
|
// Awards and derived stats
|
|
47
47
|
AWARD_DEFINITIONS: 'awardDefinitions',
|
|
48
|
+
// One decision on one award for one group — a team, or a whole league — granted or taken back a
|
|
49
|
+
// page of people at a time, id `buildAwardGroupGrantId`. Backend-only.
|
|
50
|
+
AWARD_GROUP_GRANTS: 'awardGroupGrants',
|
|
48
51
|
SPORT_HALL_OF_FAME: 'sportHallOfFame',
|
|
49
52
|
STATS_VALIDATION_REPORTS: 'statsValidationReports',
|
|
50
53
|
// One logical run of a stats action: its status, its resume position, and the hold it places on
|
|
@@ -99,6 +102,11 @@ export const WAIVER_TEMPLATE_SUBCOLLECTIONS = {
|
|
|
99
102
|
// One immutable document per published wording, id `buildWaiverTemplateVersionId(version)`.
|
|
100
103
|
WAIVER_TEMPLATE_VERSIONS: 'waiverTemplateVersions',
|
|
101
104
|
};
|
|
105
|
+
/** Subcollections of `awardGroupGrants/{grantId}`. */
|
|
106
|
+
export const AWARD_GROUP_GRANT_SUBCOLLECTIONS = {
|
|
107
|
+
// One document per person the grant reached, id = the userId, recorded before their profile changed.
|
|
108
|
+
AWARD_GROUP_GRANT_PEOPLE: 'awardGroupGrantPeople',
|
|
109
|
+
};
|
|
102
110
|
/** Static document IDs for fixed-ID documents. */
|
|
103
111
|
export const SPECIAL_DOCS = {
|
|
104
112
|
// _appConfig — public read
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/paths/collections.ts"],"names":[],"mappings":"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","sourcesContent":["// Firestore collection, subcollection, and fixed-document name constants for Q-Sports.\n//\n// Every collection value is compound camelCase — it says what the documents are, never a single\n// bare word (guarded by __tests__/collections.test.ts). The three underscore buckets hold fixed-ID\n// system documents and are placed by who reads them; every one of them is callable-only for writes\n// (BACKEND-108). An admin-only document is server-only, read by an admin through a callable:\n// _appConfig public read\n// _systemData signed-in read\n// _serverData no client access\n\nexport const COLLECTIONS = {\n // People\n USER_PROFILES: 'userProfiles',\n PUBLIC_USERS: 'publicUsers',\n // One document per taken display name, keyed by its normalized form — the uniqueness lock.\n RESERVED_DISPLAY_NAMES: 'reservedDisplayNames',\n // One entry per account owed a post-commit Firebase Auth effect, id = the userId: a status\n // change's sign-in half, or a failed role-claim write. Backend-only.\n STATUS_RECONCILE_QUEUE: 'statusReconcileQueue',\n // One document per login whose registration started, id = the userId: the orphan-login cleanup's\n // work list. Backend-only.\n REGISTRATION_STARTS: 'registrationStarts',\n // One document per scheduled pass that keeps a rolling cursor, id = its `SWEEP_STATE_NAMES` name.\n // Backend-only.\n SWEEP_STATE: 'sweepState',\n\n // Leagues, teams, membership\n SPORT_LEAGUES: 'sportLeagues',\n LEAGUE_TEAMS: 'leagueTeams',\n // One admin-only document per team, id = the team id: how the league reaches the team. The team\n // itself is publicly readable, so no contact detail lives on it (BACKEND-105); a league's contacts\n // are one query on `leagueId`.\n LEAGUE_TEAM_CONTACTS: 'leagueTeamContacts',\n TEAM_MEMBERSHIPS: 'teamMemberships',\n TEAM_INVITATIONS: 'teamInvitations',\n TEAM_JOIN_REQUESTS: 'teamJoinRequests',\n LEAGUE_FREE_AGENTS: 'leagueFreeAgents',\n // One document per team membership, id = the membership's id: the durable obligation to bring\n // that membership's open game rosters in line with it. Backend-only.\n MEMBERSHIP_ROSTER_SYNCS: 'membershipRosterSyncs',\n\n // Games\n SPORT_GAMES: 'sportGames',\n GAME_LOCATIONS: 'gameLocations',\n\n // Waivers and hardware\n WAIVER_TEMPLATES: 'waiverTemplates',\n SIGNED_WAIVERS: 'signedWaivers',\n HARDWARE_LOAN_CONTRACTS: 'hardwareLoanContracts',\n\n // Awards and derived stats\n AWARD_DEFINITIONS: 'awardDefinitions',\n SPORT_HALL_OF_FAME: 'sportHallOfFame',\n STATS_VALIDATION_REPORTS: 'statsValidationReports',\n // One logical run of a stats action: its status, its resume position, and the hold it places on\n // a game. Admin read; written only by the stats cores.\n STATS_OPERATIONS: 'statsOperations',\n\n // One document per cutover action, id = the action id: where its latest real run stands, its\n // last preview, and what it reported. Admin read; written only by the migration console.\n MIGRATION_ACTION_RUNS: 'migrationActionRuns',\n\n // One document per picture in a league, team, or landing page gallery. Public read; written only\n // by the picture core.\n GALLERY_PICTURES: 'galleryPictures',\n // One accepted picture upload, id = its staging id = the picture id. Read by its uploader and\n // admins; written only by the accept core (the upload callable and the picture carry), the\n // processing trigger, and the maintenance sweep's stale-upload pass; never deleted.\n PENDING_MEDIA: 'pendingMedia',\n // The durable obligation to delete a picture's files, or a deleted owner's whole gallery. No\n // client access; carried out by the media maintenance sweep.\n PICTURE_RETIREMENTS: 'pictureRetirements',\n\n // Append-only record of sensitive actions. No client access; written only by Cloud Functions.\n AUDIT_EVENTS: 'auditEvents',\n\n // Admin notifications, all written only by Cloud Functions. The shared cards every admin reads and\n // their archived history are admin read; the delivery ledger the owning callables write each\n // occurrence into, and each admin's archive-all job, have no client access.\n ACTIVE_ADMIN_NOTIFICATIONS: 'activeAdminNotifications',\n ADMIN_NOTIFICATION_HISTORY: 'adminNotificationHistory',\n NOTIFICATION_DELIVERIES: 'notificationDeliveries',\n NOTIFICATION_ARCHIVE_ALL_JOBS: 'notificationArchiveAllJobs',\n\n // Fixed-ID system document buckets\n APP_CONFIG: '_appConfig',\n SYSTEM_DATA: '_systemData',\n SERVER_DATA: '_serverData',\n} as const;\n\nexport type CollectionName = (typeof COLLECTIONS)[keyof typeof COLLECTIONS];\n\n/** Subcollections of `userProfiles/{userId}`. */\nexport const USER_PROFILE_SUBCOLLECTIONS = {\n // One document per sport key: pre-Q-Sports career totals folded into lifetime recalculation.\n HISTORICAL_STATS: 'historicalStats',\n // One owner-only document, id = the userId: email and contact details. The profile itself is\n // publicly readable, so nothing personal lives on it (BACKEND-105).\n PRIVATE_DATA: 'privateData',\n} as const;\n\n/** Subcollections of `sportGames/{gameId}`. */\nexport const SPORT_GAME_SUBCOLLECTIONS = {\n // Who participated in the game: one entry per team per person, id `buildGameRosterPlayerId`.\n GAME_ROSTER_PLAYERS: 'gameRosterPlayers',\n // One stat event per document, keyed by the event id minted at the tap.\n GAME_STAT_EVENTS: 'gameStatEvents',\n // A completed game's finalized record, in pages, id `buildStatHistoryPageId`.\n GAME_STAT_HISTORY: 'gameStatHistory',\n} as const;\n\n/** Subcollections of `waiverTemplates/{waiverTemplateId}`. */\nexport const WAIVER_TEMPLATE_SUBCOLLECTIONS = {\n // One immutable document per published wording, id `buildWaiverTemplateVersionId(version)`.\n WAIVER_TEMPLATE_VERSIONS: 'waiverTemplateVersions',\n} as const;\n\n/** Static document IDs for fixed-ID documents. */\nexport const SPECIAL_DOCS = {\n // _appConfig — public read\n // The app-wide operational levers: version gate, maintenance mode, registration switch, banner.\n APP_CONFIG: 'app',\n LANDING_PAGE: 'landingPage',\n // Public because signed-out spectators follow it for live updates.\n STATS_BEACON: 'statsBeacon',\n\n // _systemData — signed-in read\n // The admin and referee rosters — source of truth for the `admin` / `referee` custom claims.\n ADMIN_LIST: 'adminList',\n\n // _serverData — no client access\n // The migration console: the cutover marker and the lock that keeps two actions from running at\n // once.\n MIGRATION_CONSOLE: 'migrationConsole',\n} as const;\n"]}
|
|
1
|
+
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/paths/collections.ts"],"names":[],"mappings":"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","sourcesContent":["// Firestore collection, subcollection, and fixed-document name constants for Q-Sports.\n//\n// Every collection value is compound camelCase — it says what the documents are, never a single\n// bare word (guarded by __tests__/collections.test.ts). The three underscore buckets hold fixed-ID\n// system documents and are placed by who reads them; every one of them is callable-only for writes\n// (BACKEND-108). An admin-only document is server-only, read by an admin through a callable:\n// _appConfig public read\n// _systemData signed-in read\n// _serverData no client access\n\nexport const COLLECTIONS = {\n // People\n USER_PROFILES: 'userProfiles',\n PUBLIC_USERS: 'publicUsers',\n // One document per taken display name, keyed by its normalized form — the uniqueness lock.\n RESERVED_DISPLAY_NAMES: 'reservedDisplayNames',\n // One entry per account owed a post-commit Firebase Auth effect, id = the userId: a status\n // change's sign-in half, or a failed role-claim write. Backend-only.\n STATUS_RECONCILE_QUEUE: 'statusReconcileQueue',\n // One document per login whose registration started, id = the userId: the orphan-login cleanup's\n // work list. Backend-only.\n REGISTRATION_STARTS: 'registrationStarts',\n // One document per scheduled pass that keeps a rolling cursor, id = its `SWEEP_STATE_NAMES` name.\n // Backend-only.\n SWEEP_STATE: 'sweepState',\n\n // Leagues, teams, membership\n SPORT_LEAGUES: 'sportLeagues',\n LEAGUE_TEAMS: 'leagueTeams',\n // One admin-only document per team, id = the team id: how the league reaches the team. The team\n // itself is publicly readable, so no contact detail lives on it (BACKEND-105); a league's contacts\n // are one query on `leagueId`.\n LEAGUE_TEAM_CONTACTS: 'leagueTeamContacts',\n TEAM_MEMBERSHIPS: 'teamMemberships',\n TEAM_INVITATIONS: 'teamInvitations',\n TEAM_JOIN_REQUESTS: 'teamJoinRequests',\n LEAGUE_FREE_AGENTS: 'leagueFreeAgents',\n // One document per team membership, id = the membership's id: the durable obligation to bring\n // that membership's open game rosters in line with it. Backend-only.\n MEMBERSHIP_ROSTER_SYNCS: 'membershipRosterSyncs',\n\n // Games\n SPORT_GAMES: 'sportGames',\n GAME_LOCATIONS: 'gameLocations',\n\n // Waivers and hardware\n WAIVER_TEMPLATES: 'waiverTemplates',\n SIGNED_WAIVERS: 'signedWaivers',\n HARDWARE_LOAN_CONTRACTS: 'hardwareLoanContracts',\n\n // Awards and derived stats\n AWARD_DEFINITIONS: 'awardDefinitions',\n // One decision on one award for one group — a team, or a whole league — granted or taken back a\n // page of people at a time, id `buildAwardGroupGrantId`. Backend-only.\n AWARD_GROUP_GRANTS: 'awardGroupGrants',\n SPORT_HALL_OF_FAME: 'sportHallOfFame',\n STATS_VALIDATION_REPORTS: 'statsValidationReports',\n // One logical run of a stats action: its status, its resume position, and the hold it places on\n // a game. Admin read; written only by the stats cores.\n STATS_OPERATIONS: 'statsOperations',\n\n // One document per cutover action, id = the action id: where its latest real run stands, its\n // last preview, and what it reported. Admin read; written only by the migration console.\n MIGRATION_ACTION_RUNS: 'migrationActionRuns',\n\n // One document per picture in a league, team, or landing page gallery. Public read; written only\n // by the picture core.\n GALLERY_PICTURES: 'galleryPictures',\n // One accepted picture upload, id = its staging id = the picture id. Read by its uploader and\n // admins; written only by the accept core (the upload callable and the picture carry), the\n // processing trigger, and the maintenance sweep's stale-upload pass; never deleted.\n PENDING_MEDIA: 'pendingMedia',\n // The durable obligation to delete a picture's files, or a deleted owner's whole gallery. No\n // client access; carried out by the media maintenance sweep.\n PICTURE_RETIREMENTS: 'pictureRetirements',\n\n // Append-only record of sensitive actions. No client access; written only by Cloud Functions.\n AUDIT_EVENTS: 'auditEvents',\n\n // Admin notifications, all written only by Cloud Functions. The shared cards every admin reads and\n // their archived history are admin read; the delivery ledger the owning callables write each\n // occurrence into, and each admin's archive-all job, have no client access.\n ACTIVE_ADMIN_NOTIFICATIONS: 'activeAdminNotifications',\n ADMIN_NOTIFICATION_HISTORY: 'adminNotificationHistory',\n NOTIFICATION_DELIVERIES: 'notificationDeliveries',\n NOTIFICATION_ARCHIVE_ALL_JOBS: 'notificationArchiveAllJobs',\n\n // Fixed-ID system document buckets\n APP_CONFIG: '_appConfig',\n SYSTEM_DATA: '_systemData',\n SERVER_DATA: '_serverData',\n} as const;\n\nexport type CollectionName = (typeof COLLECTIONS)[keyof typeof COLLECTIONS];\n\n/** Subcollections of `userProfiles/{userId}`. */\nexport const USER_PROFILE_SUBCOLLECTIONS = {\n // One document per sport key: pre-Q-Sports career totals folded into lifetime recalculation.\n HISTORICAL_STATS: 'historicalStats',\n // One owner-only document, id = the userId: email and contact details. The profile itself is\n // publicly readable, so nothing personal lives on it (BACKEND-105).\n PRIVATE_DATA: 'privateData',\n} as const;\n\n/** Subcollections of `sportGames/{gameId}`. */\nexport const SPORT_GAME_SUBCOLLECTIONS = {\n // Who participated in the game: one entry per team per person, id `buildGameRosterPlayerId`.\n GAME_ROSTER_PLAYERS: 'gameRosterPlayers',\n // One stat event per document, keyed by the event id minted at the tap.\n GAME_STAT_EVENTS: 'gameStatEvents',\n // A completed game's finalized record, in pages, id `buildStatHistoryPageId`.\n GAME_STAT_HISTORY: 'gameStatHistory',\n} as const;\n\n/** Subcollections of `waiverTemplates/{waiverTemplateId}`. */\nexport const WAIVER_TEMPLATE_SUBCOLLECTIONS = {\n // One immutable document per published wording, id `buildWaiverTemplateVersionId(version)`.\n WAIVER_TEMPLATE_VERSIONS: 'waiverTemplateVersions',\n} as const;\n\n/** Subcollections of `awardGroupGrants/{grantId}`. */\nexport const AWARD_GROUP_GRANT_SUBCOLLECTIONS = {\n // One document per person the grant reached, id = the userId, recorded before their profile changed.\n AWARD_GROUP_GRANT_PEOPLE: 'awardGroupGrantPeople',\n} as const;\n\n/** Static document IDs for fixed-ID documents. */\nexport const SPECIAL_DOCS = {\n // _appConfig — public read\n // The app-wide operational levers: version gate, maintenance mode, registration switch, banner.\n APP_CONFIG: 'app',\n LANDING_PAGE: 'landingPage',\n // Public because signed-out spectators follow it for live updates.\n STATS_BEACON: 'statsBeacon',\n\n // _systemData — signed-in read\n // The admin and referee rosters — source of truth for the `admin` / `referee` custom claims.\n ADMIN_LIST: 'adminList',\n\n // _serverData — no client access\n // The migration console: the cutover marker and the lock that keeps two actions from running at\n // once.\n MIGRATION_CONSOLE: 'migrationConsole',\n} as const;\n"]}
|
|
@@ -32,6 +32,9 @@ export declare const PATH_BUILDERS: {
|
|
|
32
32
|
readonly signedWaiver: (leagueId: string, userId: string) => [string, string];
|
|
33
33
|
readonly hardwareLoanContract: (contractId: string) => [string, string];
|
|
34
34
|
readonly awardDefinition: (awardId: string) => [string, string];
|
|
35
|
+
readonly awardGroupGrant: (grantId: string) => [string, string];
|
|
36
|
+
readonly awardGroupGrantPerson: (grantId: string, userId: string) => [string, string, string, string];
|
|
37
|
+
readonly awardGroupGrantPeople: (grantId: string) => [string, string, string];
|
|
35
38
|
readonly sportHallOfFame: (sportKey: SportKey) => [string, string];
|
|
36
39
|
readonly statsValidationReport: (reportId: string) => [string, string];
|
|
37
40
|
readonly statsOperation: (operationId: string) => [string, string];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-builders.d.ts","sourceRoot":"","sources":["../../src/paths/path-builders.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"path-builders.d.ts","sourceRoot":"","sources":["../../src/paths/path-builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
// A singular name builds a document path; its plural builds the parent collection path where the
|
|
7
7
|
// parent is a subcollection (top-level collections are in COLLECTION_REFS). A compound document ID
|
|
8
8
|
// is assembled here through its one builder in ../ids — never at a call site.
|
|
9
|
-
import { COLLECTIONS, SPORT_GAME_SUBCOLLECTIONS, SPECIAL_DOCS, USER_PROFILE_SUBCOLLECTIONS, WAIVER_TEMPLATE_SUBCOLLECTIONS, } from './collections.js';
|
|
9
|
+
import { AWARD_GROUP_GRANT_SUBCOLLECTIONS, COLLECTIONS, SPORT_GAME_SUBCOLLECTIONS, SPECIAL_DOCS, USER_PROFILE_SUBCOLLECTIONS, WAIVER_TEMPLATE_SUBCOLLECTIONS, } from './collections.js';
|
|
10
10
|
import { buildGameRosterPlayerId, buildLeagueFreeAgentId, buildTeamMembershipId, buildSignedWaiverId, } from '../ids/compound-ids.js';
|
|
11
11
|
import { buildWaiverTemplateVersionId } from '../ids/waiver-template-ids.js';
|
|
12
12
|
import { toReservedDisplayNameKey } from '../utils/display-name.js';
|
|
@@ -118,6 +118,18 @@ export const PATH_BUILDERS = {
|
|
|
118
118
|
],
|
|
119
119
|
// Awards and derived stats
|
|
120
120
|
awardDefinition: (awardId) => [COLLECTIONS.AWARD_DEFINITIONS, awardId],
|
|
121
|
+
awardGroupGrant: (grantId) => [COLLECTIONS.AWARD_GROUP_GRANTS, grantId],
|
|
122
|
+
awardGroupGrantPerson: (grantId, userId) => [
|
|
123
|
+
COLLECTIONS.AWARD_GROUP_GRANTS,
|
|
124
|
+
grantId,
|
|
125
|
+
AWARD_GROUP_GRANT_SUBCOLLECTIONS.AWARD_GROUP_GRANT_PEOPLE,
|
|
126
|
+
userId,
|
|
127
|
+
],
|
|
128
|
+
awardGroupGrantPeople: (grantId) => [
|
|
129
|
+
COLLECTIONS.AWARD_GROUP_GRANTS,
|
|
130
|
+
grantId,
|
|
131
|
+
AWARD_GROUP_GRANT_SUBCOLLECTIONS.AWARD_GROUP_GRANT_PEOPLE,
|
|
132
|
+
],
|
|
121
133
|
sportHallOfFame: (sportKey) => [COLLECTIONS.SPORT_HALL_OF_FAME, sportKey],
|
|
122
134
|
statsValidationReport: (reportId) => [
|
|
123
135
|
COLLECTIONS.STATS_VALIDATION_REPORTS,
|