@ttt-productions/q-core 0.1.3 → 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/constants/media.d.ts +2 -0
- package/dist/constants/media.d.ts.map +1 -1
- package/dist/constants/media.js +8 -0
- package/dist/constants/media.js.map +1 -1
- package/dist/constants/scheduled-jobs.d.ts +1 -1
- package/dist/constants/scheduled-jobs.d.ts.map +1 -1
- package/dist/constants/scheduled-jobs.js +7 -1
- package/dist/constants/scheduled-jobs.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 +52 -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/sport-league.d.ts +2 -0
- package/dist/doc-schemas/sport-league.d.ts.map +1 -1
- package/dist/doc-schemas/sport-league.js +9 -0
- package/dist/doc-schemas/sport-league.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
|
@@ -120,6 +120,8 @@ export declare const COLLECTION_SCHEMAS: {
|
|
|
120
120
|
featuredPictureId: z.ZodOptional<z.ZodString>;
|
|
121
121
|
updatedAt: z.ZodNumber;
|
|
122
122
|
}, z.core.$strip>>;
|
|
123
|
+
teamRevision: z.ZodOptional<z.ZodNumber>;
|
|
124
|
+
gameRevision: z.ZodOptional<z.ZodNumber>;
|
|
123
125
|
createdAt: z.ZodNumber;
|
|
124
126
|
updatedAt: z.ZodNumber;
|
|
125
127
|
}, z.core.$strip>;
|
|
@@ -1227,6 +1229,42 @@ export declare const COLLECTION_SCHEMAS: {
|
|
|
1227
1229
|
createdAt: z.ZodNumber;
|
|
1228
1230
|
updatedAt: z.ZodNumber;
|
|
1229
1231
|
}, z.core.$strict>;
|
|
1232
|
+
readonly 'awardGroupGrants/{grantId}': z.ZodObject<{
|
|
1233
|
+
grantId: z.ZodString;
|
|
1234
|
+
action: z.ZodEnum<{
|
|
1235
|
+
grant: "grant";
|
|
1236
|
+
revoke: "revoke";
|
|
1237
|
+
}>;
|
|
1238
|
+
awardId: z.ZodString;
|
|
1239
|
+
groupType: z.ZodEnum<{
|
|
1240
|
+
team: "team";
|
|
1241
|
+
league: "league";
|
|
1242
|
+
}>;
|
|
1243
|
+
groupId: z.ZodString;
|
|
1244
|
+
targetKey: z.ZodString;
|
|
1245
|
+
decision: z.ZodNumber;
|
|
1246
|
+
actorUid: z.ZodString;
|
|
1247
|
+
status: z.ZodEnum<{
|
|
1248
|
+
pending: "pending";
|
|
1249
|
+
complete: "complete";
|
|
1250
|
+
}>;
|
|
1251
|
+
createdAt: z.ZodNumber;
|
|
1252
|
+
completedAt: z.ZodOptional<z.ZodNumber>;
|
|
1253
|
+
attemptCount: z.ZodNumber;
|
|
1254
|
+
nextAttemptAt: z.ZodNumber;
|
|
1255
|
+
lastError: z.ZodOptional<z.ZodString>;
|
|
1256
|
+
}, z.core.$strict>;
|
|
1257
|
+
readonly 'awardGroupGrants/{grantId}/awardGroupGrantPeople/{userId}': z.ZodObject<{
|
|
1258
|
+
userId: z.ZodString;
|
|
1259
|
+
heldBefore: z.ZodBoolean;
|
|
1260
|
+
recordedAt: z.ZodNumber;
|
|
1261
|
+
revoked: z.ZodBoolean;
|
|
1262
|
+
revokedAt: z.ZodOptional<z.ZodNumber>;
|
|
1263
|
+
revokeSkipped: z.ZodOptional<z.ZodEnum<{
|
|
1264
|
+
heldBefore: "heldBefore";
|
|
1265
|
+
heldByAnotherGrant: "heldByAnotherGrant";
|
|
1266
|
+
}>>;
|
|
1267
|
+
}, z.core.$strict>;
|
|
1230
1268
|
readonly 'sportHallOfFame/{sportKey}': z.ZodObject<{
|
|
1231
1269
|
playerStats: z.ZodRecord<z.ZodString, z.ZodUnion<(z.ZodObject<{
|
|
1232
1270
|
fantasyPoints: z.ZodNumber;
|
|
@@ -1310,8 +1348,8 @@ export declare const COLLECTION_SCHEMAS: {
|
|
|
1310
1348
|
startedAt: z.ZodNumber;
|
|
1311
1349
|
updatedAt: z.ZodNumber;
|
|
1312
1350
|
status: z.ZodEnum<{
|
|
1313
|
-
running: "running";
|
|
1314
1351
|
complete: "complete";
|
|
1352
|
+
running: "running";
|
|
1315
1353
|
stopped: "stopped";
|
|
1316
1354
|
}>;
|
|
1317
1355
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -1331,8 +1369,8 @@ export declare const COLLECTION_SCHEMAS: {
|
|
|
1331
1369
|
startedAt: z.ZodNumber;
|
|
1332
1370
|
updatedAt: z.ZodNumber;
|
|
1333
1371
|
status: z.ZodEnum<{
|
|
1334
|
-
running: "running";
|
|
1335
1372
|
complete: "complete";
|
|
1373
|
+
running: "running";
|
|
1336
1374
|
stopped: "stopped";
|
|
1337
1375
|
}>;
|
|
1338
1376
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -1357,8 +1395,8 @@ export declare const COLLECTION_SCHEMAS: {
|
|
|
1357
1395
|
startedAt: z.ZodNumber;
|
|
1358
1396
|
updatedAt: z.ZodNumber;
|
|
1359
1397
|
status: z.ZodEnum<{
|
|
1360
|
-
running: "running";
|
|
1361
1398
|
complete: "complete";
|
|
1399
|
+
running: "running";
|
|
1362
1400
|
stopped: "stopped";
|
|
1363
1401
|
}>;
|
|
1364
1402
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -1381,8 +1419,8 @@ export declare const COLLECTION_SCHEMAS: {
|
|
|
1381
1419
|
startedAt: z.ZodNumber;
|
|
1382
1420
|
updatedAt: z.ZodNumber;
|
|
1383
1421
|
status: z.ZodEnum<{
|
|
1384
|
-
running: "running";
|
|
1385
1422
|
complete: "complete";
|
|
1423
|
+
running: "running";
|
|
1386
1424
|
stopped: "stopped";
|
|
1387
1425
|
}>;
|
|
1388
1426
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -1401,8 +1439,8 @@ export declare const COLLECTION_SCHEMAS: {
|
|
|
1401
1439
|
startedAt: z.ZodNumber;
|
|
1402
1440
|
updatedAt: z.ZodNumber;
|
|
1403
1441
|
status: z.ZodEnum<{
|
|
1404
|
-
running: "running";
|
|
1405
1442
|
complete: "complete";
|
|
1443
|
+
running: "running";
|
|
1406
1444
|
stopped: "stopped";
|
|
1407
1445
|
}>;
|
|
1408
1446
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -1421,8 +1459,8 @@ export declare const COLLECTION_SCHEMAS: {
|
|
|
1421
1459
|
startedAt: z.ZodNumber;
|
|
1422
1460
|
updatedAt: z.ZodNumber;
|
|
1423
1461
|
status: z.ZodEnum<{
|
|
1424
|
-
running: "running";
|
|
1425
1462
|
complete: "complete";
|
|
1463
|
+
running: "running";
|
|
1426
1464
|
stopped: "stopped";
|
|
1427
1465
|
}>;
|
|
1428
1466
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -1446,8 +1484,8 @@ export declare const COLLECTION_SCHEMAS: {
|
|
|
1446
1484
|
startedAt: z.ZodNumber;
|
|
1447
1485
|
updatedAt: z.ZodNumber;
|
|
1448
1486
|
status: z.ZodEnum<{
|
|
1449
|
-
running: "running";
|
|
1450
1487
|
complete: "complete";
|
|
1488
|
+
running: "running";
|
|
1451
1489
|
stopped: "stopped";
|
|
1452
1490
|
}>;
|
|
1453
1491
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -1495,8 +1533,8 @@ export declare const COLLECTION_SCHEMAS: {
|
|
|
1495
1533
|
startedAt: z.ZodNumber;
|
|
1496
1534
|
updatedAt: z.ZodNumber;
|
|
1497
1535
|
status: z.ZodEnum<{
|
|
1498
|
-
running: "running";
|
|
1499
1536
|
complete: "complete";
|
|
1537
|
+
running: "running";
|
|
1500
1538
|
stopped: "stopped";
|
|
1501
1539
|
}>;
|
|
1502
1540
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -1514,8 +1552,8 @@ export declare const COLLECTION_SCHEMAS: {
|
|
|
1514
1552
|
startedAt: z.ZodNumber;
|
|
1515
1553
|
updatedAt: z.ZodNumber;
|
|
1516
1554
|
status: z.ZodEnum<{
|
|
1517
|
-
running: "running";
|
|
1518
1555
|
complete: "complete";
|
|
1556
|
+
running: "running";
|
|
1519
1557
|
stopped: "stopped";
|
|
1520
1558
|
}>;
|
|
1521
1559
|
resumeAfter: z.ZodOptional<z.ZodString>;
|
|
@@ -2720,8 +2758,8 @@ export declare const COLLECTION_SCHEMAS: {
|
|
|
2720
2758
|
userId: z.ZodString;
|
|
2721
2759
|
category: z.ZodLiteral<"admin">;
|
|
2722
2760
|
state: z.ZodEnum<{
|
|
2723
|
-
failed: "failed";
|
|
2724
2761
|
complete: "complete";
|
|
2762
|
+
failed: "failed";
|
|
2725
2763
|
"in-progress": "in-progress";
|
|
2726
2764
|
incomplete: "incomplete";
|
|
2727
2765
|
}>;
|
|
@@ -2971,8 +3009,8 @@ export declare const COLLECTION_SCHEMAS: {
|
|
|
2971
3009
|
updatedAt: z.ZodNumber;
|
|
2972
3010
|
completedAt: z.ZodOptional<z.ZodNumber>;
|
|
2973
3011
|
status: z.ZodEnum<{
|
|
2974
|
-
running: "running";
|
|
2975
3012
|
complete: "complete";
|
|
3013
|
+
running: "running";
|
|
2976
3014
|
stopped: "stopped";
|
|
2977
3015
|
}>;
|
|
2978
3016
|
pages: z.ZodNumber;
|
|
@@ -3006,8 +3044,8 @@ export declare const COLLECTION_SCHEMAS: {
|
|
|
3006
3044
|
updatedAt: z.ZodNumber;
|
|
3007
3045
|
completedAt: z.ZodOptional<z.ZodNumber>;
|
|
3008
3046
|
status: z.ZodEnum<{
|
|
3009
|
-
running: "running";
|
|
3010
3047
|
complete: "complete";
|
|
3048
|
+
running: "running";
|
|
3011
3049
|
stopped: "stopped";
|
|
3012
3050
|
}>;
|
|
3013
3051
|
pages: z.ZodNumber;
|
|
@@ -3071,6 +3109,8 @@ export declare const COLLECTION_DOC_ID_FIELDS: {
|
|
|
3071
3109
|
readonly 'adminNotificationHistory/{historyId}': "archiveOccurrenceId";
|
|
3072
3110
|
readonly 'notificationDeliveries/{deliveryId}': "deliveryId";
|
|
3073
3111
|
readonly 'notificationArchiveAllJobs/{jobId}': "jobId";
|
|
3112
|
+
readonly 'awardGroupGrants/{grantId}': "grantId";
|
|
3113
|
+
readonly 'awardGroupGrants/{grantId}/awardGroupGrantPeople/{userId}': "userId";
|
|
3074
3114
|
readonly 'migrationActionRuns/{actionId}': "actionId";
|
|
3075
3115
|
};
|
|
3076
3116
|
export declare const PENDING_COLLECTIONS: readonly string[];
|
|
@@ -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":"AAAA,0FAA0F;AAC1F,iGAAiG;AACjG,qBAAqB;AACrB,EAAE;AACF,kGAAkG;AAClG,qGAAqG;AACrG,0DAA0D;AAG1D,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,+BAA+B,EAC/B,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAEzF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,uBAAuB,EAAE,iBAAiB;IAC1C,mDAAmD,EAAE,qBAAqB;IAC1E,kDAAkD,EAAE,qBAAqB;IACzE,sBAAsB,EAAE,gBAAgB;IACxC,+CAA+C,EAAE,yBAAyB;IAC1E,+BAA+B,EAAE,+BAA+B;IAChE,6BAA6B,EAAE,uBAAuB;IAEtD,yBAAyB,EAAE,iBAAiB;IAC5C,sBAAsB,EAAE,gBAAgB;IACxC,6BAA6B,EAAE,uBAAuB;IACtD,oCAAoC,EAAE,oBAAoB;IAC1D,0CAA0C,EAAE,0BAA0B;IACtE,4BAA4B,EAAE,oBAAoB;IAClD,8BAA8B,EAAE,qBAAqB;IACrD,sCAAsC,EAAE,qBAAqB;IAE7D,qBAAqB,EAAE,eAAe;IACtC,4DAA4D,EAAE,sBAAsB;IACpF,8CAA8C,EAAE,mBAAmB;IACnE,8CAA8C,EAAE,yBAAyB;IACzE,gCAAgC,EAAE,kBAAkB;IAEpD,oCAAoC,EAAE,oBAAoB;IAC1D,uEAAuE,EAAE,2BAA2B;IACpG,gCAAgC,EAAE,kBAAkB;IACpD,oCAAoC,EAAE,0BAA0B;IAEhE,4BAA4B,EAAE,qBAAqB;IACnD,4BAA4B,EAAE,qBAAqB;IACnD,2DAA2D,EAAE,2BAA2B;IACxF,4BAA4B,EAAE,qBAAqB;IACnD,mCAAmC,EAAE,2BAA2B;IAChE,+BAA+B,EAAE,oBAAoB;IAErD,6BAA6B,EAAE,oBAAoB;IACnD,+BAA+B,EAAE,kBAAkB;IACnD,mCAAmC,EAAE,uBAAuB;IAE5D,4BAA4B,EAAE,gBAAgB;IAE9C,2CAA2C,EAAE,6BAA6B;IAC1E,sCAAsC,EAAE,8BAA8B;IACtE,qCAAqC,EAAE,0BAA0B;IACjE,oCAAoC,EAAE,+BAA+B;IAErE,wBAAwB,EAAE,uBAAuB;IACjD,gBAAgB,EAAE,eAAe;IACjC,wBAAwB,EAAE,iBAAiB;IAC3C,uBAAuB,EAAE,eAAe;IACxC,8BAA8B,EAAE,sBAAsB;IACtD,gCAAgC,EAAE,wBAAwB;IAC1D,wBAAwB,EAAE,gBAAgB;CACK,CAAC;AAIlD,iGAAiG;AACjG,0FAA0F;AAC1F,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,sBAAsB,EAAE,KAAK;IAC7B,6BAA6B,EAAE,QAAQ;IACvC,8CAA8C,EAAE,SAAS;IACzD,mCAAmC,EAAE,UAAU;IAC/C,4BAA4B,EAAE,IAAI;IAClC,+BAA+B,EAAE,IAAI;IACrC,sCAAsC,EAAE,qBAAqB;IAC7D,qCAAqC,EAAE,YAAY;IACnD,oCAAoC,EAAE,OAAO;IAC7C,4BAA4B,EAAE,SAAS;IACvC,2DAA2D,EAAE,QAAQ;IACrE,gCAAgC,EAAE,UAAU;CACwB,CAAC;AAEvE,mFAAmF;AACnF,MAAM,CAAC,MAAM,mBAAmB,GAAsB,EAAE,CAAC","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"]}
|
|
@@ -51,6 +51,8 @@ export declare const SportLeagueSchema: z.ZodObject<{
|
|
|
51
51
|
featuredPictureId: z.ZodOptional<z.ZodString>;
|
|
52
52
|
updatedAt: z.ZodNumber;
|
|
53
53
|
}, z.core.$strip>>;
|
|
54
|
+
teamRevision: z.ZodOptional<z.ZodNumber>;
|
|
55
|
+
gameRevision: z.ZodOptional<z.ZodNumber>;
|
|
54
56
|
createdAt: z.ZodNumber;
|
|
55
57
|
updatedAt: z.ZodNumber;
|
|
56
58
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sport-league.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/sport-league.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,iCAAiC,4CAA4C,CAAC;AAC3F,eAAO,MAAM,mCAAmC,2FAC0C,CAAC;AAE3F;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE;IACrD,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,GAAG,OAAO,CAEV;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,SAAS;IACR,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,EACD,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAOhD;AAGD,eAAO,MAAM,wBAAwB,aAAc,CAAC;AAEpD,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"sport-league.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/sport-league.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,iCAAiC,4CAA4C,CAAC;AAC3F,eAAO,MAAM,mCAAmC,2FAC0C,CAAC;AAE3F;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE;IACrD,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,GAAG,OAAO,CAEV;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,SAAS;IACR,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,EACD,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAOhD;AAGD,eAAO,MAAM,wBAAwB,aAAc,CAAC;AAEpD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgCM,CAAC;AACrC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -50,6 +50,15 @@ export const SportLeagueSchema = z
|
|
|
50
50
|
// The league's picture gallery summary — absent is an empty gallery. Only the picture core
|
|
51
51
|
// writes it; the league callables and the copy action never do.
|
|
52
52
|
pictures: GallerySummarySchema.optional(),
|
|
53
|
+
// Advanced by every team created in the league; absent until the first. Only its changing
|
|
54
|
+
// matters: team creation counts the league's teams in its transaction against
|
|
55
|
+
// MAX_TEAMS_PER_LEAGUE, and a query does not lock against an insert — so each creation writes this
|
|
56
|
+
// document, and two creations at the cap conflict instead of both passing (BACKEND-116).
|
|
57
|
+
teamRevision: countSchema.optional(),
|
|
58
|
+
// Advanced by every game created in the league, a schedule week's included; absent until the
|
|
59
|
+
// first. Only its changing matters, the same way: game creation counts the league's games in its
|
|
60
|
+
// transaction against MAX_GAMES_PER_LEAGUE.
|
|
61
|
+
gameRevision: countSchema.optional(),
|
|
53
62
|
createdAt: epochMsSchema,
|
|
54
63
|
updatedAt: epochMsSchema,
|
|
55
64
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sport-league.js","sourceRoot":"","sources":["../../src/doc-schemas/sport-league.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,iGAAiG;AACjG,gGAAgG;AAChG,0BAA0B;AAE1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,CAAC,MAAM,iCAAiC,GAAG,yCAAyC,CAAC;AAC3F,MAAM,CAAC,MAAM,mCAAmC,GAC9C,wFAAwF,CAAC;AAE3F;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,MAG9C;IACC,OAAO,MAAM,CAAC,cAAc,KAAK,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAOlC,MAAS,EAAE,GAA6B;IACxC,IAAI,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QAClD,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;IACxG,CAAC;IACD,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC;IAC7G,CAAC;AACH,CAAC;AAED,wGAAwG;AACxG,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,CAAC;AAEpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,eAAe,EAAE,kBAAkB;IACnC,aAAa,EAAE,kBAAkB;IACjC,MAAM,EAAE,kBAAkB;IAC1B,8FAA8F;IAC9F,gGAAgG;IAChG,qCAAqC;IACrC,aAAa,EAAE,wBAAwB;IACvC,iBAAiB,EAAE,wBAAwB;IAC3C,gBAAgB,EAAE,wBAAwB;IAC1C,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,gBAAgB,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IACnD,2FAA2F;IAC3F,gEAAgE;IAChE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IACzC,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;CACzB,CAAC;KACD,WAAW,CAAC,oBAAoB,CAAC,CAAC","sourcesContent":["// `sportLeagues/{leagueId}` — one league: its sport, mode, dates, status, playoff cutoffs, and waiver\n// requirement. The admin league callables write its settings, status, and mode; the picture core\n// writes `pictures`. Teams, games, and player stats live in their own collections and are never\n// copied onto the league.\n\nimport { z } from 'zod';\nimport {\n calendarDateSchema,\n countSchema,\n epochMsSchema,\n leagueModeSchema,\n leagueStatusSchema,\n leagueTypeSchema,\n} from './atoms.js';\nimport { GallerySummarySchema } from './gallery.js';\nimport { waiverTemplateIdSchema } from './waiver-template.js';\n\nexport const LEAGUE_DATES_OUT_OF_ORDER_MESSAGE = 'The league cannot end before it starts.';\nexport const WAIVER_REQUIREMENT_MISMATCH_MESSAGE =\n 'Choose a waiver template when the league requires a waiver, and none when it does not.';\n\n/**\n * A league names a waiver template exactly when it requires a waiver, so no reader needs a\n * sentinel for \"no waiver\" and no stale template id survives turning the requirement off.\n */\nexport function hasConsistentWaiverRequirement(league: {\n requiresWaiver: boolean;\n waiverTemplateId?: string | undefined;\n}): boolean {\n return league.requiresWaiver === (league.waiverTemplateId !== undefined);\n}\n\n/**\n * The cross-field rules every league settings shape obeys — the stored document and both callable\n * inputs — so the rule a form shows, the callable enforces, and the copy action validates is one\n * rule.\n */\nexport function refineLeagueSettings<\n T extends {\n leagueStartDate: string;\n leagueEndDate: string;\n requiresWaiver: boolean;\n waiverTemplateId?: string | undefined;\n },\n>(league: T, ctx: z.core.$RefinementCtx<T>): void {\n if (league.leagueEndDate < league.leagueStartDate) {\n ctx.addIssue({ code: 'custom', path: ['leagueEndDate'], message: LEAGUE_DATES_OUT_OF_ORDER_MESSAGE });\n }\n if (!hasConsistentWaiverRequirement(league)) {\n ctx.addIssue({ code: 'custom', path: ['waiverTemplateId'], message: WAIVER_REQUIREMENT_MISMATCH_MESSAGE });\n }\n}\n\n// How many teams reach the playoffs is a count; the callable inputs bound it with `MAX_PLAYOFF_CUTOFF`.\nexport const playoffCutoffCountSchema = countSchema;\n\nexport const SportLeagueSchema = z\n .object({\n leagueTitle: z.string(),\n description: z.string(),\n leagueType: leagueTypeSchema,\n leagueMode: leagueModeSchema,\n leagueStartDate: calendarDateSchema,\n leagueEndDate: calendarDateSchema,\n status: leagueStatusSchema,\n // How many teams reach the playoffs: `playoffCutoff` in a Regular league, the Competitive and\n // Recreational pools' own cutoffs in a Competitive/Recreational one. All three are kept in both\n // modes so a mode switch loses none.\n playoffCutoff: playoffCutoffCountSchema,\n playoffCutoffComp: playoffCutoffCountSchema,\n playoffCutoffRec: playoffCutoffCountSchema,\n requiresWaiver: z.boolean(),\n waiverTemplateId: waiverTemplateIdSchema.optional(),\n // The league's picture gallery summary — absent is an empty gallery. Only the picture core\n // writes it; the league callables and the copy action never do.\n pictures: GallerySummarySchema.optional(),\n createdAt: epochMsSchema,\n updatedAt: epochMsSchema,\n })\n .superRefine(refineLeagueSettings);\nexport type SportLeague = z.infer<typeof SportLeagueSchema>;\n"]}
|
|
1
|
+
{"version":3,"file":"sport-league.js","sourceRoot":"","sources":["../../src/doc-schemas/sport-league.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,iGAAiG;AACjG,gGAAgG;AAChG,0BAA0B;AAE1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,CAAC,MAAM,iCAAiC,GAAG,yCAAyC,CAAC;AAC3F,MAAM,CAAC,MAAM,mCAAmC,GAC9C,wFAAwF,CAAC;AAE3F;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,MAG9C;IACC,OAAO,MAAM,CAAC,cAAc,KAAK,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAOlC,MAAS,EAAE,GAA6B;IACxC,IAAI,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QAClD,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;IACxG,CAAC;IACD,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC;IAC7G,CAAC;AACH,CAAC;AAED,wGAAwG;AACxG,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,CAAC;AAEpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,eAAe,EAAE,kBAAkB;IACnC,aAAa,EAAE,kBAAkB;IACjC,MAAM,EAAE,kBAAkB;IAC1B,8FAA8F;IAC9F,gGAAgG;IAChG,qCAAqC;IACrC,aAAa,EAAE,wBAAwB;IACvC,iBAAiB,EAAE,wBAAwB;IAC3C,gBAAgB,EAAE,wBAAwB;IAC1C,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,gBAAgB,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IACnD,2FAA2F;IAC3F,gEAAgE;IAChE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IACzC,0FAA0F;IAC1F,8EAA8E;IAC9E,mGAAmG;IACnG,yFAAyF;IACzF,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;IACpC,6FAA6F;IAC7F,iGAAiG;IACjG,4CAA4C;IAC5C,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;CACzB,CAAC;KACD,WAAW,CAAC,oBAAoB,CAAC,CAAC","sourcesContent":["// `sportLeagues/{leagueId}` — one league: its sport, mode, dates, status, playoff cutoffs, and waiver\n// requirement. The admin league callables write its settings, status, and mode; the picture core\n// writes `pictures`. Teams, games, and player stats live in their own collections and are never\n// copied onto the league.\n\nimport { z } from 'zod';\nimport {\n calendarDateSchema,\n countSchema,\n epochMsSchema,\n leagueModeSchema,\n leagueStatusSchema,\n leagueTypeSchema,\n} from './atoms.js';\nimport { GallerySummarySchema } from './gallery.js';\nimport { waiverTemplateIdSchema } from './waiver-template.js';\n\nexport const LEAGUE_DATES_OUT_OF_ORDER_MESSAGE = 'The league cannot end before it starts.';\nexport const WAIVER_REQUIREMENT_MISMATCH_MESSAGE =\n 'Choose a waiver template when the league requires a waiver, and none when it does not.';\n\n/**\n * A league names a waiver template exactly when it requires a waiver, so no reader needs a\n * sentinel for \"no waiver\" and no stale template id survives turning the requirement off.\n */\nexport function hasConsistentWaiverRequirement(league: {\n requiresWaiver: boolean;\n waiverTemplateId?: string | undefined;\n}): boolean {\n return league.requiresWaiver === (league.waiverTemplateId !== undefined);\n}\n\n/**\n * The cross-field rules every league settings shape obeys — the stored document and both callable\n * inputs — so the rule a form shows, the callable enforces, and the copy action validates is one\n * rule.\n */\nexport function refineLeagueSettings<\n T extends {\n leagueStartDate: string;\n leagueEndDate: string;\n requiresWaiver: boolean;\n waiverTemplateId?: string | undefined;\n },\n>(league: T, ctx: z.core.$RefinementCtx<T>): void {\n if (league.leagueEndDate < league.leagueStartDate) {\n ctx.addIssue({ code: 'custom', path: ['leagueEndDate'], message: LEAGUE_DATES_OUT_OF_ORDER_MESSAGE });\n }\n if (!hasConsistentWaiverRequirement(league)) {\n ctx.addIssue({ code: 'custom', path: ['waiverTemplateId'], message: WAIVER_REQUIREMENT_MISMATCH_MESSAGE });\n }\n}\n\n// How many teams reach the playoffs is a count; the callable inputs bound it with `MAX_PLAYOFF_CUTOFF`.\nexport const playoffCutoffCountSchema = countSchema;\n\nexport const SportLeagueSchema = z\n .object({\n leagueTitle: z.string(),\n description: z.string(),\n leagueType: leagueTypeSchema,\n leagueMode: leagueModeSchema,\n leagueStartDate: calendarDateSchema,\n leagueEndDate: calendarDateSchema,\n status: leagueStatusSchema,\n // How many teams reach the playoffs: `playoffCutoff` in a Regular league, the Competitive and\n // Recreational pools' own cutoffs in a Competitive/Recreational one. All three are kept in both\n // modes so a mode switch loses none.\n playoffCutoff: playoffCutoffCountSchema,\n playoffCutoffComp: playoffCutoffCountSchema,\n playoffCutoffRec: playoffCutoffCountSchema,\n requiresWaiver: z.boolean(),\n waiverTemplateId: waiverTemplateIdSchema.optional(),\n // The league's picture gallery summary — absent is an empty gallery. Only the picture core\n // writes it; the league callables and the copy action never do.\n pictures: GallerySummarySchema.optional(),\n // Advanced by every team created in the league; absent until the first. Only its changing\n // matters: team creation counts the league's teams in its transaction against\n // MAX_TEAMS_PER_LEAGUE, and a query does not lock against an insert — so each creation writes this\n // document, and two creations at the cap conflict instead of both passing (BACKEND-116).\n teamRevision: countSchema.optional(),\n // Advanced by every game created in the league, a schedule week's included; absent until the\n // first. Only its changing matters, the same way: game creation counts the league's games in its\n // transaction against MAX_GAMES_PER_LEAGUE.\n gameRevision: countSchema.optional(),\n createdAt: epochMsSchema,\n updatedAt: epochMsSchema,\n })\n .superRefine(refineLeagueSettings);\nexport type SportLeague = z.infer<typeof SportLeagueSchema>;\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"}
|