tods-competition-factory 1.8.43 → 1.8.44

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.
@@ -2929,7 +2929,7 @@ var matchUpFormatCode = {
2929
2929
  };
2930
2930
 
2931
2931
  function factoryVersion() {
2932
- return '1.8.43';
2932
+ return '1.8.44';
2933
2933
  }
2934
2934
 
2935
2935
  function getObjectTieFormat(obj) {
@@ -2991,6 +2991,53 @@ function resolveTieFormat(_a) {
2991
2991
  };
2992
2992
  }
2993
2993
 
2994
+ function decorateResult(_a) {
2995
+ var context = _a.context, result = _a.result, stack = _a.stack, info = _a.info;
2996
+ if (result && !Array.isArray(result === null || result === void 0 ? void 0 : result.stack))
2997
+ result.stack = [];
2998
+ if (result && Array.isArray(result === null || result === void 0 ? void 0 : result.stack) && typeof stack === 'string') {
2999
+ result.stack.push(stack);
3000
+ }
3001
+ if (result && info) {
3002
+ result.info = info;
3003
+ }
3004
+ if (result && typeof context === 'object' && Object.keys(context).length) {
3005
+ Object.assign(result, definedAttributes(context));
3006
+ }
3007
+ if (result && !(result === null || result === void 0 ? void 0 : result.error) && !(result === null || result === void 0 ? void 0 : result.success)) {
3008
+ Object.assign(result, __assign({}, SUCCESS));
3009
+ }
3010
+ return result !== null && result !== void 0 ? result : { success: true };
3011
+ }
3012
+
3013
+ var ANY = 'ANY';
3014
+ var MALE = 'MALE';
3015
+ var MIXED = 'MIXED';
3016
+ var OTHER$3 = 'OTHER';
3017
+ var FEMALE = 'FEMALE';
3018
+ var genderConstants = {
3019
+ ANY: ANY,
3020
+ MALE: MALE,
3021
+ FEMALE: FEMALE,
3022
+ MIXED: MIXED,
3023
+ OTHER: OTHER$3,
3024
+ };
3025
+
3026
+ var SINGLES_MATCHUP = 'SINGLES';
3027
+ var SINGLES$1 = 'SINGLES';
3028
+ var DOUBLES_MATCHUP = 'DOUBLES';
3029
+ var DOUBLES$1 = 'DOUBLES';
3030
+ var TEAM_MATCHUP = 'TEAM';
3031
+ var TEAM$2 = 'TEAM';
3032
+ var matchUpTypes = {
3033
+ SINGLES_MATCHUP: SINGLES_MATCHUP,
3034
+ SINGLES: SINGLES$1,
3035
+ DOUBLES_MATCHUP: DOUBLES_MATCHUP,
3036
+ DOUBLES: DOUBLES$1,
3037
+ TEAM_MATCHUP: TEAM_MATCHUP,
3038
+ TEAM: TEAM$2,
3039
+ };
3040
+
2994
3041
  var DrawTypeEnum;
2995
3042
  (function (DrawTypeEnum) {
2996
3043
  DrawTypeEnum["AdHoc"] = "AD_HOC";
@@ -3551,58 +3598,36 @@ var SexEnum;
3551
3598
  SexEnum["Other"] = "OTHER";
3552
3599
  })(SexEnum || (SexEnum = {}));
3553
3600
 
3554
- function decorateResult(_a) {
3555
- var context = _a.context, result = _a.result, stack = _a.stack, info = _a.info;
3556
- if (result && !Array.isArray(result === null || result === void 0 ? void 0 : result.stack))
3557
- result.stack = [];
3558
- if (result && Array.isArray(result === null || result === void 0 ? void 0 : result.stack) && typeof stack === 'string') {
3559
- result.stack.push(stack);
3560
- }
3561
- if (result && info) {
3562
- result.info = info;
3563
- }
3564
- if (result && typeof context === 'object' && Object.keys(context).length) {
3565
- Object.assign(result, definedAttributes(context));
3566
- }
3567
- if (result && !(result === null || result === void 0 ? void 0 : result.error) && !(result === null || result === void 0 ? void 0 : result.success)) {
3568
- Object.assign(result, __assign({}, SUCCESS));
3569
- }
3570
- return result !== null && result !== void 0 ? result : { success: true };
3571
- }
3572
-
3573
- var ANY = 'ANY';
3574
- var MALE = 'MALE';
3575
- var MIXED = 'MIXED';
3576
- var OTHER$3 = 'OTHER';
3577
- var FEMALE = 'FEMALE';
3578
- var genderConstants = {
3579
- ANY: ANY,
3580
- MALE: MALE,
3581
- FEMALE: FEMALE,
3582
- MIXED: MIXED,
3583
- OTHER: OTHER$3,
3584
- };
3585
-
3586
- function genderValidityCheck(_a) {
3587
- var referenceGender = _a.referenceGender, matchUpType = _a.matchUpType, gender = _a.gender;
3588
- var stack = 'genderValidityCheck';
3601
+ var mixedGenderError = 'MIXED events can not contain mixed singles or { gender: ANY } collections';
3602
+ var anyMixedError = 'events with { gender: ANY } can not contain MIXED singles collections';
3603
+ function tieFormatGenderValidityCheck(_a) {
3604
+ var referenceEvent = _a.referenceEvent, referenceGender = _a.referenceGender, matchUpType = _a.matchUpType, gender = _a.gender;
3605
+ var stack = 'tieFormatGenderValidityCheck';
3589
3606
  if (referenceGender &&
3590
3607
  gender &&
3591
- [GenderEnum.Male, GenderEnum.Female].includes(referenceGender)) {
3592
- var valid = gender === referenceGender;
3593
- return valid
3594
- ? { valid: true }
3595
- : decorateResult({
3596
- result: { valid: false, error: INVALID_GENDER },
3597
- context: { gender: gender },
3598
- stack: stack,
3599
- });
3600
- }
3608
+ [GenderEnum.Male, GenderEnum.Female].includes(referenceGender) &&
3609
+ referenceGender !== gender)
3610
+ return decorateResult({
3611
+ result: { valid: false, error: INVALID_GENDER },
3612
+ context: { gender: gender },
3613
+ stack: stack,
3614
+ });
3601
3615
  if (referenceGender === MIXED &&
3602
- (gender !== MIXED || matchUpType === TypeEnum.Singles))
3616
+ ((referenceEvent === null || referenceEvent === void 0 ? void 0 : referenceEvent.eventType) !== TEAM$2 ||
3617
+ gender === ANY ||
3618
+ (gender === MIXED && matchUpType !== TypeEnum.Doubles))) {
3619
+ return decorateResult({
3620
+ result: { error: INVALID_GENDER, valid: false },
3621
+ info: mixedGenderError,
3622
+ stack: stack,
3623
+ });
3624
+ }
3625
+ if (referenceGender === ANY &&
3626
+ gender === MIXED &&
3627
+ matchUpType !== TypeEnum.Doubles)
3603
3628
  return decorateResult({
3604
- info: 'MIXED events can only contain MIXED doubles collections',
3605
3629
  result: { error: INVALID_GENDER, valid: false },
3630
+ info: anyMixedError,
3606
3631
  stack: stack,
3607
3632
  });
3608
3633
  return { valid: true };
@@ -4030,7 +4055,8 @@ function validateCollectionDefinition(_a) {
4030
4055
  errors.push("Invalid matchUpFormat: ".concat(matchUpFormat));
4031
4056
  }
4032
4057
  if (checkGender) {
4033
- var result = genderValidityCheck({
4058
+ var result = tieFormatGenderValidityCheck({
4059
+ referenceEvent: event,
4034
4060
  referenceGender: referenceGender,
4035
4061
  matchUpType: matchUpType,
4036
4062
  gender: gender,
@@ -4520,21 +4546,6 @@ function calculatePercentages(_a) {
4520
4546
  });
4521
4547
  }
4522
4548
 
4523
- var SINGLES_MATCHUP = 'SINGLES';
4524
- var SINGLES$1 = 'SINGLES';
4525
- var DOUBLES_MATCHUP = 'DOUBLES';
4526
- var DOUBLES$1 = 'DOUBLES';
4527
- var TEAM_MATCHUP = 'TEAM';
4528
- var TEAM$2 = 'TEAM';
4529
- var matchUpTypes = {
4530
- SINGLES_MATCHUP: SINGLES_MATCHUP,
4531
- SINGLES: SINGLES$1,
4532
- DOUBLES_MATCHUP: DOUBLES_MATCHUP,
4533
- DOUBLES: DOUBLES$1,
4534
- TEAM_MATCHUP: TEAM_MATCHUP,
4535
- TEAM: TEAM$2,
4536
- };
4537
-
4538
4549
  function getParticipantResults(_a) {
4539
4550
  var e_1, _b, e_2, _c, e_3, _d;
4540
4551
  var _e, _f, _g, _h, _j, _k;
@@ -23220,12 +23231,6 @@ function getTournamentStructures(_a) {
23220
23231
  return { structures: structures, stageStructures: stageStructures };
23221
23232
  }
23222
23233
 
23223
- /**
23224
- *
23225
- * @param {object} drawDefinition - complete drawDefinition object
23226
- * @param {string} structureId - UUID of structure to be found within drawDefinition
23227
- *
23228
- */
23229
23234
  function structureActions(params) {
23230
23235
  var actions = [];
23231
23236
  if (!(params === null || params === void 0 ? void 0 : params.drawDefinition))
@@ -23234,11 +23239,6 @@ function structureActions(params) {
23234
23239
  var hasPlayoffPositionsFilled = allPlayoffPositionsFilled(params);
23235
23240
  return { actions: actions, state: { isComplete: isComplete, hasPlayoffPositionsFilled: hasPlayoffPositionsFilled } };
23236
23241
  }
23237
- /**
23238
- *
23239
- * @param {object} drawDefinition
23240
- * @param {string} structureId
23241
- */
23242
23242
  function isCompletedStructure(params) {
23243
23243
  if (!(params === null || params === void 0 ? void 0 : params.drawDefinition))
23244
23244
  return false;
@@ -23264,12 +23264,6 @@ function isCompletedStructure(params) {
23264
23264
  !(upcomingMatchUps === null || upcomingMatchUps === void 0 ? void 0 : upcomingMatchUps.length);
23265
23265
  return !!isComplete;
23266
23266
  }
23267
- /**
23268
- *
23269
- * @param {object} drawDefinition
23270
- * @param {string} structureId - either drawDefinition and structureId or structure
23271
- * @param {object} structure - optional
23272
- */
23273
23267
  function allPlayoffPositionsFilled(params) {
23274
23268
  var _a, _b;
23275
23269
  var drawDefinition = params.drawDefinition, structureId = params.structureId;
@@ -23282,7 +23276,8 @@ function allPlayoffPositionsFilled(params) {
23282
23276
  if (!(playoffStructures === null || playoffStructures === void 0 ? void 0 : playoffStructures.length))
23283
23277
  return false;
23284
23278
  var enteredParticipantsCount = ((_b = (_a = drawDefinition === null || drawDefinition === void 0 ? void 0 : drawDefinition.entries) === null || _a === void 0 ? void 0 : _a.filter(function (entry) {
23285
- return STRUCTURE_SELECTED_STATUSES.includes(entry === null || entry === void 0 ? void 0 : entry.entryStatus);
23279
+ return (entry === null || entry === void 0 ? void 0 : entry.entryStatus) &&
23280
+ STRUCTURE_SELECTED_STATUSES.includes(entry.entryStatus);
23286
23281
  })) === null || _b === void 0 ? void 0 : _b.length) || 0;
23287
23282
  var participantIdsCount = 0;
23288
23283
  var allPositionsFilled = (playoffStructures || []).reduce(function (allFilled, structure) {
@@ -24688,16 +24683,6 @@ function getStageEntries(_a) {
24688
24683
  return { entries: entries, stageEntries: stageEntries };
24689
24684
  }
24690
24685
 
24691
- /**
24692
- *
24693
- * @param {boolean} requireParticipantCount - whether or not to consider participantsCount
24694
- * @param {boolean} drawSizeProgression - drawSizeProgression indicates that rules for all smaller drawSizes should be considered
24695
- * @param {number} participantsCount - number of participants in draw structure // TODO: migrate to participantsCount
24696
- * @param {number} drawSize - number of positions available in draw structure
24697
- * @param {object} policyDefinitions - polictyDefinition object
24698
- * @param {object} drawDefinition - optional - retrieved automatically if drawId is provided
24699
- * @param {string} drawId - allows drawDefinition and event to be retrieved by tournamentEngine from tournament record
24700
- */
24701
24686
  function getSeedsCount(params) {
24702
24687
  var _a = params || {}, _b = _a.drawSizeProgression, drawSizeProgression = _b === void 0 ? false : _b, policyDefinitions = _a.policyDefinitions, drawSize = _a.drawSize;
24703
24688
  var _c = params || {}, _d = _c.requireParticipantCount, requireParticipantCount = _d === void 0 ? true : _d, tournamentRecord = _c.tournamentRecord, drawDefinition = _c.drawDefinition, event = _c.event;
@@ -24736,9 +24721,9 @@ function getSeedsCount(params) {
24736
24721
  }
24737
24722
  }
24738
24723
  var consideredParticipantCount = (requireParticipantCount && participantsCount) || drawSize;
24739
- if (consideredParticipantCount > drawSize)
24724
+ if (consideredParticipantCount && consideredParticipantCount > drawSize)
24740
24725
  return { error: PARTICIPANT_COUNT_EXCEEDS_DRAW_SIZE };
24741
- var policy = policyDefinitions[POLICY_TYPE_SEEDING];
24726
+ var policy = policyDefinitions === null || policyDefinitions === void 0 ? void 0 : policyDefinitions[POLICY_TYPE_SEEDING];
24742
24727
  if (!policy)
24743
24728
  return { error: INVALID_POLICY_DEFINITION };
24744
24729
  var seedsCountThresholds = policy.seedsCountThresholds;
@@ -24752,7 +24737,8 @@ function getSeedsCount(params) {
24752
24737
  : drawSize === threshold.drawSize;
24753
24738
  });
24754
24739
  var seedsCount = relevantThresholds.reduce(function (seedsCount, threshold) {
24755
- return participantsCount >= threshold.minimumParticipantCount
24740
+ return participantsCount &&
24741
+ participantsCount >= threshold.minimumParticipantCount
24756
24742
  ? threshold.seedsCount
24757
24743
  : seedsCount;
24758
24744
  }, 0);
@@ -71431,7 +71417,7 @@ var utilities = {
71431
71417
  findExtension: findExtension$2,
71432
71418
  flattenJSON: flattenJSON,
71433
71419
  garman: garman,
71434
- genderValidityCheck: genderValidityCheck,
71420
+ tieFormatGenderValidityCheck: tieFormatGenderValidityCheck,
71435
71421
  generateHashCode: generateHashCode,
71436
71422
  generateRange: generateRange,
71437
71423
  generateScoreString: generateScoreString,