@mshowes/brackets-manager 1.8.1
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/LICENSE +21 -0
- package/README.md +82 -0
- package/dist/base/getter.d.ts +272 -0
- package/dist/base/getter.d.ts.map +1 -0
- package/dist/base/getter.js +545 -0
- package/dist/base/getter.js.map +1 -0
- package/dist/base/stage/creator.d.ts +269 -0
- package/dist/base/stage/creator.d.ts.map +1 -0
- package/dist/base/stage/creator.js +735 -0
- package/dist/base/stage/creator.js.map +1 -0
- package/dist/base/updater.d.ts +121 -0
- package/dist/base/updater.d.ts.map +1 -0
- package/dist/base/updater.js +323 -0
- package/dist/base/updater.js.map +1 -0
- package/dist/create.d.ts +25 -0
- package/dist/create.d.ts.map +1 -0
- package/dist/create.js +55 -0
- package/dist/create.js.map +1 -0
- package/dist/delete.d.ts +33 -0
- package/dist/delete.d.ts.map +1 -0
- package/dist/delete.js +57 -0
- package/dist/delete.js.map +1 -0
- package/dist/find.d.ts +60 -0
- package/dist/find.d.ts.map +1 -0
- package/dist/find.js +196 -0
- package/dist/find.js.map +1 -0
- package/dist/get.d.ts +121 -0
- package/dist/get.d.ts.map +1 -0
- package/dist/get.js +420 -0
- package/dist/get.js.map +1 -0
- package/dist/helpers.d.ts +804 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +1897 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/manager.d.ts +60 -0
- package/dist/manager.d.ts.map +1 -0
- package/dist/manager.js +189 -0
- package/dist/manager.js.map +1 -0
- package/dist/ordering.d.ts +7 -0
- package/dist/ordering.d.ts.map +1 -0
- package/dist/ordering.js +147 -0
- package/dist/ordering.js.map +1 -0
- package/dist/reset.d.ts +27 -0
- package/dist/reset.d.ts.map +1 -0
- package/dist/reset.js +82 -0
- package/dist/reset.js.map +1 -0
- package/dist/types.d.ts +260 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/update.d.ts +111 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +265 -0
- package/dist/update.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"creator.js","sourceRoot":"","sources":["../../../src/base/stage/creator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { Match, MatchGame, Seeding, Stage, GroupType, Id, IdSeeding } from 'brackets-model';
|
|
2
|
+
import { DeepPartial, ParticipantSlot, Side } from '../types';
|
|
3
|
+
import { SetNextOpponent } from '../helpers';
|
|
4
|
+
import { BaseGetter } from './getter';
|
|
5
|
+
export declare class BaseUpdater extends BaseGetter {
|
|
6
|
+
/**
|
|
7
|
+
* Updates or resets the seeding of a stage.
|
|
8
|
+
*
|
|
9
|
+
* @param stageId ID of the stage.
|
|
10
|
+
* @param seeding A new seeding or `null` to reset the existing seeding.
|
|
11
|
+
* @param seeding.seeding Can contain names, IDs or BYEs.
|
|
12
|
+
* @param seeding.seedingIds Can only contain IDs or BYEs.
|
|
13
|
+
* @param keepSameSize Whether to keep the same size as before for the stage.
|
|
14
|
+
*/
|
|
15
|
+
protected updateSeeding(stageId: Id, { seeding, seedingIds }: {
|
|
16
|
+
seeding?: Seeding | null;
|
|
17
|
+
seedingIds?: IdSeeding | null;
|
|
18
|
+
}, keepSameSize: boolean): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Confirms the current seeding of a stage.
|
|
21
|
+
*
|
|
22
|
+
* @param stageId ID of the stage.
|
|
23
|
+
*/
|
|
24
|
+
protected confirmCurrentSeeding(stageId: Id): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Updates a parent match based on its child games.
|
|
27
|
+
*
|
|
28
|
+
* @param parentId ID of the parent match.
|
|
29
|
+
* @param inRoundRobin Indicates whether the parent match is in a round-robin stage.
|
|
30
|
+
*/
|
|
31
|
+
protected updateParentMatch(parentId: Id, inRoundRobin: boolean): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Throws an error if a match is locked and the new seeding will change this match's participants.
|
|
34
|
+
*
|
|
35
|
+
* @param matches The matches stored in the database.
|
|
36
|
+
* @param slots The slots to check from the new seeding.
|
|
37
|
+
*/
|
|
38
|
+
protected static assertCanUpdateSeeding(matches: Match[], slots: ParticipantSlot[]): void;
|
|
39
|
+
/**
|
|
40
|
+
* Updates the matches related (previous and next) to a match.
|
|
41
|
+
*
|
|
42
|
+
* @param match A match.
|
|
43
|
+
* @param updatePrevious Whether to update the previous matches.
|
|
44
|
+
* @param updateNext Whether to update the next matches.
|
|
45
|
+
*/
|
|
46
|
+
protected updateRelatedMatches(match: Match, updatePrevious: boolean, updateNext: boolean): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Updates a match based on a partial match.
|
|
49
|
+
*
|
|
50
|
+
* @param stored A reference to what will be updated in the storage.
|
|
51
|
+
* @param match Input of the update.
|
|
52
|
+
* @param force Whether to force update locked matches.
|
|
53
|
+
*/
|
|
54
|
+
protected updateMatch(stored: Match, match: DeepPartial<Match>, force?: boolean): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Updates a match game based on a partial match game.
|
|
57
|
+
*
|
|
58
|
+
* @param stored A reference to what will be updated in the storage.
|
|
59
|
+
* @param game Input of the update.
|
|
60
|
+
*/
|
|
61
|
+
protected updateMatchGame(stored: MatchGame, game: DeepPartial<MatchGame>): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Updates the opponents and status of a match and its child games.
|
|
64
|
+
*
|
|
65
|
+
* @param match A match.
|
|
66
|
+
*/
|
|
67
|
+
protected applyMatchUpdate(match: Match): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Updates the match(es) leading to the current match based on this match results.
|
|
70
|
+
*
|
|
71
|
+
* @param match Input of the update.
|
|
72
|
+
* @param matchLocation Location of the current match.
|
|
73
|
+
* @param stage The parent stage.
|
|
74
|
+
* @param roundNumber Number of the round.
|
|
75
|
+
*/
|
|
76
|
+
protected updatePrevious(match: Match, matchLocation: GroupType, stage: Stage, roundNumber: number): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Sets the status of a list of matches to archived.
|
|
79
|
+
*
|
|
80
|
+
* @param matches The matches to update.
|
|
81
|
+
*/
|
|
82
|
+
protected archiveMatches(matches: Match[]): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Resets the status of a list of matches to what it should currently be.
|
|
85
|
+
*
|
|
86
|
+
* @param matches The matches to update.
|
|
87
|
+
*/
|
|
88
|
+
protected resetMatchesStatus(matches: Match[]): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Updates the match(es) following the current match based on this match results.
|
|
91
|
+
*
|
|
92
|
+
* @param match Input of the update.
|
|
93
|
+
* @param matchLocation Location of the current match.
|
|
94
|
+
* @param stage The parent stage.
|
|
95
|
+
* @param roundNumber Number of the round.
|
|
96
|
+
* @param roundCount Count of rounds.
|
|
97
|
+
*/
|
|
98
|
+
protected updateNext(match: Match, matchLocation: GroupType, stage: Stage, roundNumber: number, roundCount: number): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Applies a `SetNextOpponent` function to matches following the current match.
|
|
101
|
+
*
|
|
102
|
+
* - `nextMatches[0]` is assumed to be next match for the winner of the current match.
|
|
103
|
+
* - `nextMatches[1]` is assumed to be next match for the loser of the current match.
|
|
104
|
+
*
|
|
105
|
+
* @param setNextOpponent The `SetNextOpponent` function.
|
|
106
|
+
* @param match The current match.
|
|
107
|
+
* @param matchLocation Location of the current match.
|
|
108
|
+
* @param roundNumber Number of the current round.
|
|
109
|
+
* @param roundCount Count of rounds.
|
|
110
|
+
* @param nextMatches The matches following the current match.
|
|
111
|
+
* @param winnerSide Side of the winner in the current match.
|
|
112
|
+
*/
|
|
113
|
+
protected applyToNextMatches(setNextOpponent: SetNextOpponent, match: Match, matchLocation: GroupType, roundNumber: number, roundCount: number, nextMatches: (Match | null)[], winnerSide?: Side): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Propagates winner against BYEs in related matches.
|
|
116
|
+
*
|
|
117
|
+
* @param match The current match.
|
|
118
|
+
*/
|
|
119
|
+
protected propagateByeWinners(match: Match): Promise<void>;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=updater.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../../src/base/updater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAU,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC,qBAAa,WAAY,SAAQ,UAAU;IAEvC;;;;;;;;OAQG;cACa,aAAa,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCtK;;;;OAIG;cACa,qBAAqB,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjE;;;;;OAKG;cACa,iBAAiB,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAerF;;;;;OAKG;IACH,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI;IAkBzF;;;;;;OAMG;cACa,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/G;;;;;;OAMG;cACa,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrG;;;;;OAKG;cACa,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB/F;;;;OAIG;cACa,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB7D;;;;;;;OAOG;cACa,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxH;;;;OAIG;cACa,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/D;;;;OAIG;cACa,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE;;;;;;;;OAQG;cACa,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBxI;;;;;;;;;;;;;OAaG;cACa,kBAAkB,CAAC,eAAe,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCtN;;;;OAIG;cACa,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;CAOnE"}
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseUpdater = void 0;
|
|
4
|
+
const brackets_model_1 = require("brackets-model");
|
|
5
|
+
const ordering_1 = require("../ordering");
|
|
6
|
+
const creator_1 = require("./stage/creator");
|
|
7
|
+
const getter_1 = require("./getter");
|
|
8
|
+
const get_1 = require("../get");
|
|
9
|
+
const helpers = require("../helpers");
|
|
10
|
+
class BaseUpdater extends getter_1.BaseGetter {
|
|
11
|
+
/**
|
|
12
|
+
* Updates or resets the seeding of a stage.
|
|
13
|
+
*
|
|
14
|
+
* @param stageId ID of the stage.
|
|
15
|
+
* @param seeding A new seeding or `null` to reset the existing seeding.
|
|
16
|
+
* @param seeding.seeding Can contain names, IDs or BYEs.
|
|
17
|
+
* @param seeding.seedingIds Can only contain IDs or BYEs.
|
|
18
|
+
* @param keepSameSize Whether to keep the same size as before for the stage.
|
|
19
|
+
*/
|
|
20
|
+
async updateSeeding(stageId, { seeding, seedingIds }, keepSameSize) {
|
|
21
|
+
var _a, _b;
|
|
22
|
+
const stage = await this.storage.select('stage', stageId);
|
|
23
|
+
if (!stage)
|
|
24
|
+
throw Error('Stage not found.');
|
|
25
|
+
const newSize = keepSameSize ? stage.settings.size : (_b = (_a = (seedingIds || seeding)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
|
|
26
|
+
const creator = new creator_1.StageCreator(this.storage, {
|
|
27
|
+
name: stage.name,
|
|
28
|
+
tournamentId: stage.tournament_id,
|
|
29
|
+
type: stage.type,
|
|
30
|
+
settings: {
|
|
31
|
+
...stage.settings,
|
|
32
|
+
...(newSize === 0 ? {} : { size: newSize }), // Just reset the seeding if the new size is going to be empty.
|
|
33
|
+
},
|
|
34
|
+
...((seedingIds ? { seedingIds } : { seeding: seeding !== null && seeding !== void 0 ? seeding : undefined })),
|
|
35
|
+
});
|
|
36
|
+
creator.setExisting(stageId, false);
|
|
37
|
+
const method = getter_1.BaseGetter.getSeedingOrdering(stage.type, creator);
|
|
38
|
+
const slots = await creator.getSlots();
|
|
39
|
+
const matches = await this.getSeedingMatches(stage.id, stage.type);
|
|
40
|
+
if (!matches)
|
|
41
|
+
throw Error('Error getting matches associated to the seeding.');
|
|
42
|
+
const ordered = ordering_1.ordering[method](slots);
|
|
43
|
+
BaseUpdater.assertCanUpdateSeeding(matches, ordered);
|
|
44
|
+
await creator.run();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Confirms the current seeding of a stage.
|
|
48
|
+
*
|
|
49
|
+
* @param stageId ID of the stage.
|
|
50
|
+
*/
|
|
51
|
+
async confirmCurrentSeeding(stageId) {
|
|
52
|
+
const stage = await this.storage.select('stage', stageId);
|
|
53
|
+
if (!stage)
|
|
54
|
+
throw Error('Stage not found.');
|
|
55
|
+
const get = new get_1.Get(this.storage);
|
|
56
|
+
const currentSeeding = await get.seeding(stageId);
|
|
57
|
+
const newSeeding = helpers.convertSlotsToSeeding(currentSeeding.map(helpers.convertTBDtoBYE));
|
|
58
|
+
const creator = new creator_1.StageCreator(this.storage, {
|
|
59
|
+
name: stage.name,
|
|
60
|
+
tournamentId: stage.tournament_id,
|
|
61
|
+
type: stage.type,
|
|
62
|
+
settings: stage.settings,
|
|
63
|
+
seeding: newSeeding,
|
|
64
|
+
});
|
|
65
|
+
creator.setExisting(stageId, true);
|
|
66
|
+
await creator.run();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Updates a parent match based on its child games.
|
|
70
|
+
*
|
|
71
|
+
* @param parentId ID of the parent match.
|
|
72
|
+
* @param inRoundRobin Indicates whether the parent match is in a round-robin stage.
|
|
73
|
+
*/
|
|
74
|
+
async updateParentMatch(parentId, inRoundRobin) {
|
|
75
|
+
const storedParent = await this.storage.select('match', parentId);
|
|
76
|
+
if (!storedParent)
|
|
77
|
+
throw Error('Parent not found.');
|
|
78
|
+
const games = await this.storage.select('match_game', { parent_id: parentId });
|
|
79
|
+
if (!games)
|
|
80
|
+
throw Error('No match games.');
|
|
81
|
+
const parentScores = helpers.getChildGamesResults(games);
|
|
82
|
+
const parent = helpers.getParentMatchResults(storedParent, parentScores);
|
|
83
|
+
helpers.setParentMatchCompleted(parent, storedParent.child_count, inRoundRobin);
|
|
84
|
+
await this.updateMatch(storedParent, parent, true);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Throws an error if a match is locked and the new seeding will change this match's participants.
|
|
88
|
+
*
|
|
89
|
+
* @param matches The matches stored in the database.
|
|
90
|
+
* @param slots The slots to check from the new seeding.
|
|
91
|
+
*/
|
|
92
|
+
static assertCanUpdateSeeding(matches, slots) {
|
|
93
|
+
var _a, _b;
|
|
94
|
+
let index = 0;
|
|
95
|
+
for (const match of matches) {
|
|
96
|
+
// Changing the seeding would reset the matches of round >= 2, leaving the scores behind, with no participants.
|
|
97
|
+
if (match.status === brackets_model_1.Status.Archived)
|
|
98
|
+
throw Error('A match of round 1 is archived, which means round 2 was started.');
|
|
99
|
+
const opponent1 = slots[index++];
|
|
100
|
+
const opponent2 = slots[index++];
|
|
101
|
+
const isParticipantLocked = helpers.isMatchParticipantLocked(match);
|
|
102
|
+
// The match is participant locked, and the participants would have to change.
|
|
103
|
+
if (isParticipantLocked && (((_a = match.opponent1) === null || _a === void 0 ? void 0 : _a.id) !== (opponent1 === null || opponent1 === void 0 ? void 0 : opponent1.id) || ((_b = match.opponent2) === null || _b === void 0 ? void 0 : _b.id) !== (opponent2 === null || opponent2 === void 0 ? void 0 : opponent2.id)))
|
|
104
|
+
throw Error('A match is locked.');
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Updates the matches related (previous and next) to a match.
|
|
109
|
+
*
|
|
110
|
+
* @param match A match.
|
|
111
|
+
* @param updatePrevious Whether to update the previous matches.
|
|
112
|
+
* @param updateNext Whether to update the next matches.
|
|
113
|
+
*/
|
|
114
|
+
async updateRelatedMatches(match, updatePrevious, updateNext) {
|
|
115
|
+
// This is a consolation match (doesn't have a `group_id`, nor a `round_id`).
|
|
116
|
+
// It doesn't have any related matches from the POV of the library, because the
|
|
117
|
+
// creation of consolation matches is handled by the user.
|
|
118
|
+
if (match.round_id === undefined)
|
|
119
|
+
return;
|
|
120
|
+
const { roundNumber, roundCount } = await this.getRoundPositionalInfo(match.round_id);
|
|
121
|
+
const stage = await this.storage.select('stage', match.stage_id);
|
|
122
|
+
if (!stage)
|
|
123
|
+
throw Error('Stage not found.');
|
|
124
|
+
const group = await this.storage.select('group', match.group_id);
|
|
125
|
+
if (!group)
|
|
126
|
+
throw Error('Group not found.');
|
|
127
|
+
const matchLocation = helpers.getMatchLocation(stage.type, group.number);
|
|
128
|
+
updatePrevious && await this.updatePrevious(match, matchLocation, stage, roundNumber);
|
|
129
|
+
updateNext && await this.updateNext(match, matchLocation, stage, roundNumber, roundCount);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Updates a match based on a partial match.
|
|
133
|
+
*
|
|
134
|
+
* @param stored A reference to what will be updated in the storage.
|
|
135
|
+
* @param match Input of the update.
|
|
136
|
+
* @param force Whether to force update locked matches.
|
|
137
|
+
*/
|
|
138
|
+
async updateMatch(stored, match, force) {
|
|
139
|
+
if (!force && helpers.isMatchUpdateLocked(stored))
|
|
140
|
+
throw Error('The match is locked.');
|
|
141
|
+
const stage = await this.storage.select('stage', stored.stage_id);
|
|
142
|
+
if (!stage)
|
|
143
|
+
throw Error('Stage not found.');
|
|
144
|
+
const inRoundRobin = helpers.isRoundRobin(stage);
|
|
145
|
+
const { statusChanged, resultChanged } = helpers.setMatchResults(stored, match, inRoundRobin);
|
|
146
|
+
await this.applyMatchUpdate(stored);
|
|
147
|
+
// Don't update related matches if it's a simple score update.
|
|
148
|
+
if (!statusChanged && !resultChanged)
|
|
149
|
+
return;
|
|
150
|
+
if (!helpers.isRoundRobin(stage))
|
|
151
|
+
await this.updateRelatedMatches(stored, statusChanged, resultChanged);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Updates a match game based on a partial match game.
|
|
155
|
+
*
|
|
156
|
+
* @param stored A reference to what will be updated in the storage.
|
|
157
|
+
* @param game Input of the update.
|
|
158
|
+
*/
|
|
159
|
+
async updateMatchGame(stored, game) {
|
|
160
|
+
if (helpers.isMatchUpdateLocked(stored))
|
|
161
|
+
throw Error('The match game is locked.');
|
|
162
|
+
const stage = await this.storage.select('stage', stored.stage_id);
|
|
163
|
+
if (!stage)
|
|
164
|
+
throw Error('Stage not found.');
|
|
165
|
+
const inRoundRobin = helpers.isRoundRobin(stage);
|
|
166
|
+
helpers.setMatchResults(stored, game, inRoundRobin);
|
|
167
|
+
if (!await this.storage.update('match_game', stored.id, stored))
|
|
168
|
+
throw Error('Could not update the match game.');
|
|
169
|
+
await this.updateParentMatch(stored.parent_id, inRoundRobin);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Updates the opponents and status of a match and its child games.
|
|
173
|
+
*
|
|
174
|
+
* @param match A match.
|
|
175
|
+
*/
|
|
176
|
+
async applyMatchUpdate(match) {
|
|
177
|
+
if (!await this.storage.update('match', match.id, match))
|
|
178
|
+
throw Error('Could not update the match.');
|
|
179
|
+
if (match.child_count === 0)
|
|
180
|
+
return;
|
|
181
|
+
const updatedMatchGame = {
|
|
182
|
+
opponent1: helpers.toResult(match.opponent1),
|
|
183
|
+
opponent2: helpers.toResult(match.opponent2),
|
|
184
|
+
};
|
|
185
|
+
// Only sync the child games' status with their parent's status when changing the parent match participants
|
|
186
|
+
// (Locked, Waiting, Ready) or when archiving the parent match.
|
|
187
|
+
if (match.status <= brackets_model_1.Status.Ready || match.status === brackets_model_1.Status.Archived)
|
|
188
|
+
updatedMatchGame.status = match.status;
|
|
189
|
+
if (!await this.storage.update('match_game', { parent_id: match.id }, updatedMatchGame))
|
|
190
|
+
throw Error('Could not update the match game.');
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Updates the match(es) leading to the current match based on this match results.
|
|
194
|
+
*
|
|
195
|
+
* @param match Input of the update.
|
|
196
|
+
* @param matchLocation Location of the current match.
|
|
197
|
+
* @param stage The parent stage.
|
|
198
|
+
* @param roundNumber Number of the round.
|
|
199
|
+
*/
|
|
200
|
+
async updatePrevious(match, matchLocation, stage, roundNumber) {
|
|
201
|
+
const previousMatches = await this.getPreviousMatches(match, matchLocation, stage, roundNumber);
|
|
202
|
+
if (previousMatches.length === 0)
|
|
203
|
+
return;
|
|
204
|
+
if (match.status >= brackets_model_1.Status.Running)
|
|
205
|
+
await this.archiveMatches(previousMatches);
|
|
206
|
+
else
|
|
207
|
+
await this.resetMatchesStatus(previousMatches);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Sets the status of a list of matches to archived.
|
|
211
|
+
*
|
|
212
|
+
* @param matches The matches to update.
|
|
213
|
+
*/
|
|
214
|
+
async archiveMatches(matches) {
|
|
215
|
+
for (const match of matches) {
|
|
216
|
+
if (match.status === brackets_model_1.Status.Archived)
|
|
217
|
+
continue;
|
|
218
|
+
match.status = brackets_model_1.Status.Archived;
|
|
219
|
+
await this.applyMatchUpdate(match);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Resets the status of a list of matches to what it should currently be.
|
|
224
|
+
*
|
|
225
|
+
* @param matches The matches to update.
|
|
226
|
+
*/
|
|
227
|
+
async resetMatchesStatus(matches) {
|
|
228
|
+
for (const match of matches) {
|
|
229
|
+
match.status = helpers.getMatchStatus(match);
|
|
230
|
+
await this.applyMatchUpdate(match);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Updates the match(es) following the current match based on this match results.
|
|
235
|
+
*
|
|
236
|
+
* @param match Input of the update.
|
|
237
|
+
* @param matchLocation Location of the current match.
|
|
238
|
+
* @param stage The parent stage.
|
|
239
|
+
* @param roundNumber Number of the round.
|
|
240
|
+
* @param roundCount Count of rounds.
|
|
241
|
+
*/
|
|
242
|
+
async updateNext(match, matchLocation, stage, roundNumber, roundCount) {
|
|
243
|
+
const nextMatches = await this.getNextMatches(match, matchLocation, stage, roundNumber, roundCount);
|
|
244
|
+
if (nextMatches.length === 0) {
|
|
245
|
+
// Archive match if it doesn't have following matches and is completed.
|
|
246
|
+
// When the stage is fully complete, all matches should be archived.
|
|
247
|
+
if (match.status === brackets_model_1.Status.Completed)
|
|
248
|
+
await this.archiveMatches([match]);
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
const winnerSide = helpers.getMatchResult(match);
|
|
252
|
+
const actualRoundNumber = (stage.settings.skipFirstRound && matchLocation === 'winner_bracket') ? roundNumber + 1 : roundNumber;
|
|
253
|
+
if (winnerSide)
|
|
254
|
+
await this.applyToNextMatches(helpers.setNextOpponent, match, matchLocation, actualRoundNumber, roundCount, nextMatches, winnerSide);
|
|
255
|
+
else
|
|
256
|
+
await this.applyToNextMatches(helpers.resetNextOpponent, match, matchLocation, actualRoundNumber, roundCount, nextMatches);
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Applies a `SetNextOpponent` function to matches following the current match.
|
|
260
|
+
*
|
|
261
|
+
* - `nextMatches[0]` is assumed to be next match for the winner of the current match.
|
|
262
|
+
* - `nextMatches[1]` is assumed to be next match for the loser of the current match.
|
|
263
|
+
*
|
|
264
|
+
* @param setNextOpponent The `SetNextOpponent` function.
|
|
265
|
+
* @param match The current match.
|
|
266
|
+
* @param matchLocation Location of the current match.
|
|
267
|
+
* @param roundNumber Number of the current round.
|
|
268
|
+
* @param roundCount Count of rounds.
|
|
269
|
+
* @param nextMatches The matches following the current match.
|
|
270
|
+
* @param winnerSide Side of the winner in the current match.
|
|
271
|
+
*/
|
|
272
|
+
async applyToNextMatches(setNextOpponent, match, matchLocation, roundNumber, roundCount, nextMatches, winnerSide) {
|
|
273
|
+
if (matchLocation === 'final_group') {
|
|
274
|
+
if (!nextMatches[0])
|
|
275
|
+
throw Error('First next match is null.');
|
|
276
|
+
setNextOpponent(nextMatches[0], 'opponent1', match, 'opponent1');
|
|
277
|
+
setNextOpponent(nextMatches[0], 'opponent2', match, 'opponent2');
|
|
278
|
+
await this.applyMatchUpdate(nextMatches[0]);
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
const nextSide = helpers.getNextSide(match.number, roundNumber, roundCount, matchLocation);
|
|
282
|
+
// First next match
|
|
283
|
+
if (nextMatches[0]) {
|
|
284
|
+
setNextOpponent(nextMatches[0], nextSide, match, winnerSide);
|
|
285
|
+
await this.propagateByeWinners(nextMatches[0]);
|
|
286
|
+
}
|
|
287
|
+
if (nextMatches.length !== 2)
|
|
288
|
+
return;
|
|
289
|
+
if (!nextMatches[1])
|
|
290
|
+
throw Error('Second next match is null.');
|
|
291
|
+
// Second next match
|
|
292
|
+
if (matchLocation === 'single_bracket') {
|
|
293
|
+
// Going into consolation final (single elimination)
|
|
294
|
+
setNextOpponent(nextMatches[1], nextSide, match, winnerSide && helpers.getOtherSide(winnerSide));
|
|
295
|
+
await this.applyMatchUpdate(nextMatches[1]);
|
|
296
|
+
}
|
|
297
|
+
else if (matchLocation === 'winner_bracket') {
|
|
298
|
+
// Going into loser bracket match (double elimination)
|
|
299
|
+
const nextSideIntoLB = helpers.getNextSideLoserBracket(match.number, nextMatches[1], roundNumber);
|
|
300
|
+
setNextOpponent(nextMatches[1], nextSideIntoLB, match, winnerSide && helpers.getOtherSide(winnerSide));
|
|
301
|
+
await this.propagateByeWinners(nextMatches[1]);
|
|
302
|
+
}
|
|
303
|
+
else if (matchLocation === 'loser_bracket') {
|
|
304
|
+
// Going into consolation final (double elimination)
|
|
305
|
+
const nextSideIntoConsolationFinal = helpers.getNextSideConsolationFinalDoubleElimination(roundNumber);
|
|
306
|
+
setNextOpponent(nextMatches[1], nextSideIntoConsolationFinal, match, winnerSide && helpers.getOtherSide(winnerSide));
|
|
307
|
+
await this.propagateByeWinners(nextMatches[1]);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Propagates winner against BYEs in related matches.
|
|
312
|
+
*
|
|
313
|
+
* @param match The current match.
|
|
314
|
+
*/
|
|
315
|
+
async propagateByeWinners(match) {
|
|
316
|
+
helpers.setMatchResults(match, match, false); // BYE propagation is only in non round-robin stages.
|
|
317
|
+
await this.applyMatchUpdate(match);
|
|
318
|
+
if (helpers.hasBye(match))
|
|
319
|
+
await this.updateRelatedMatches(match, true, true);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
exports.BaseUpdater = BaseUpdater;
|
|
323
|
+
//# sourceMappingURL=updater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../../src/base/updater.ts"],"names":[],"mappings":"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"}
|
package/dist/create.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { InputStage, Stage } from 'brackets-model';
|
|
2
|
+
import { InputTournament, Storage, Tournament } from './types';
|
|
3
|
+
export declare class Create {
|
|
4
|
+
private storage;
|
|
5
|
+
/**
|
|
6
|
+
* Creates an instance of Create.
|
|
7
|
+
*
|
|
8
|
+
* @param storage The implementation of Storage.
|
|
9
|
+
*/
|
|
10
|
+
constructor(storage: Storage);
|
|
11
|
+
/**
|
|
12
|
+
* Creates a tournament.
|
|
13
|
+
*
|
|
14
|
+
* @param data The tournament to create.
|
|
15
|
+
* @returns The created tournament.
|
|
16
|
+
*/
|
|
17
|
+
tournament(data: InputTournament): Promise<Tournament>;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a stage for an existing tournament. The tournament won't be created.
|
|
20
|
+
*
|
|
21
|
+
* @param data The stage to create.
|
|
22
|
+
*/
|
|
23
|
+
stage(data: InputStage): Promise<Stage>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAM,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAU,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGvE,qBAAa,MAAM;IACf,OAAO,CAAC,OAAO,CAAU;IAEzB;;;;OAIG;gBACS,OAAO,EAAE,OAAO;IAI5B;;;;;OAKG;IACU,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IA+BnE;;;;OAIG;IACU,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;CAIvD"}
|
package/dist/create.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Create = void 0;
|
|
4
|
+
const creator_1 = require("./base/stage/creator");
|
|
5
|
+
const uuid_1 = require("uuid");
|
|
6
|
+
class Create {
|
|
7
|
+
/**
|
|
8
|
+
* Creates an instance of Create.
|
|
9
|
+
*
|
|
10
|
+
* @param storage The implementation of Storage.
|
|
11
|
+
*/
|
|
12
|
+
constructor(storage) {
|
|
13
|
+
this.storage = storage;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Creates a tournament.
|
|
17
|
+
*
|
|
18
|
+
* @param data The tournament to create.
|
|
19
|
+
* @returns The created tournament.
|
|
20
|
+
*/
|
|
21
|
+
async tournament(data) {
|
|
22
|
+
var _a;
|
|
23
|
+
const id = (0, uuid_1.v4)();
|
|
24
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument */
|
|
25
|
+
const tournamentData = {
|
|
26
|
+
name: data.name,
|
|
27
|
+
description: (_a = data.description) !== null && _a !== void 0 ? _a : null,
|
|
28
|
+
start_date: data.start_date ? new Date(data.start_date) : null,
|
|
29
|
+
end_date: data.end_date ? new Date(data.end_date) : null,
|
|
30
|
+
extra: data.extra,
|
|
31
|
+
};
|
|
32
|
+
/* eslint-enable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument */
|
|
33
|
+
// The storage layer handles ID generation for tournaments (using text IDs)
|
|
34
|
+
// We pass the id along with the data for storage implementations that require it
|
|
35
|
+
const insertData = { id, ...tournamentData };
|
|
36
|
+
// Storage insert returns number | boolean | string depending on implementation
|
|
37
|
+
const insertedId = (await this.storage.insert('tournament', insertData));
|
|
38
|
+
if (insertedId === -1 || insertedId === false || insertedId === '')
|
|
39
|
+
throw Error('Could not insert the tournament in the database.');
|
|
40
|
+
// For string IDs, the insertedId might be the generated id or a number
|
|
41
|
+
const finalId = typeof insertedId === 'string' ? insertedId : id;
|
|
42
|
+
return { id: finalId, ...tournamentData };
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Creates a stage for an existing tournament. The tournament won't be created.
|
|
46
|
+
*
|
|
47
|
+
* @param data The stage to create.
|
|
48
|
+
*/
|
|
49
|
+
async stage(data) {
|
|
50
|
+
const creator = new creator_1.StageCreator(this.storage, data);
|
|
51
|
+
return creator.run();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.Create = Create;
|
|
55
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":";;;AACA,kDAAoD;AAEpD,+BAAoC;AAEpC,MAAa,MAAM;IAGf;;;;OAIG;IACH,YAAY,OAAgB;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,UAAU,CAAC,IAAqB;;QACzC,MAAM,EAAE,GAAG,IAAA,SAAM,GAAE,CAAC;QAEpB,+IAA+I;QAC/I,MAAM,cAAc,GAAuB;YACvC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI;YACrC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;YAC9D,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YACxD,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC;QACF,8IAA8I;QAE9I,2EAA2E;QAC3E,iFAAiF;QACjF,MAAM,UAAU,GAAG,EAAE,EAAE,EAAE,GAAG,cAAc,EAAE,CAAC;QAC7C,+EAA+E;QAC/E,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CACzC,YAAY,EACZ,UAAgC,CACnC,CAA8B,CAAC;QAEhC,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,EAAE;YAC9D,MAAM,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAEpE,uEAAuE;QACvE,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjE,OAAO,EAAE,EAAE,EAAE,OAAa,EAAE,GAAG,cAAc,EAAE,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK,CAAC,IAAgB;QAC/B,MAAM,OAAO,GAAG,IAAI,sBAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACzB,CAAC;CACJ;AA1DD,wBA0DC"}
|
package/dist/delete.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Id } from 'brackets-model';
|
|
2
|
+
import { Storage } from './types';
|
|
3
|
+
export declare class Delete {
|
|
4
|
+
private readonly storage;
|
|
5
|
+
/**
|
|
6
|
+
* Creates an instance of Delete, which will handle cleanly deleting data in the storage.
|
|
7
|
+
*
|
|
8
|
+
* @param storage The implementation of Storage.
|
|
9
|
+
*/
|
|
10
|
+
constructor(storage: Storage);
|
|
11
|
+
/**
|
|
12
|
+
* Deletes a stage, and all its components:
|
|
13
|
+
*
|
|
14
|
+
* - Groups
|
|
15
|
+
* - Rounds
|
|
16
|
+
* - Matches
|
|
17
|
+
* - Match games
|
|
18
|
+
*
|
|
19
|
+
* This does not delete the related participants.
|
|
20
|
+
*
|
|
21
|
+
* @param stageId ID of the stage.
|
|
22
|
+
*/
|
|
23
|
+
stage(stageId: Id): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Deletes **the stages** of a tournament (and all their components, see {@link stage | delete.stage()}).
|
|
26
|
+
*
|
|
27
|
+
* This does not delete the related participants and you are responsible for deleting the tournament itself.
|
|
28
|
+
*
|
|
29
|
+
* @param tournamentId ID of the tournament.
|
|
30
|
+
*/
|
|
31
|
+
tournament(tournamentId: Id): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=delete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../src/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,MAAM;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAElC;;;;OAIG;gBACS,OAAO,EAAE,OAAO;IAI5B;;;;;;;;;;;OAWG;IACU,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9C;;;;;;OAMG;IACU,UAAU,CAAC,YAAY,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAS3D"}
|