@voltro/plugin-leaderboards 0.87.0 → 0.88.0
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/CHANGELOG.md +169 -6
- package/THIRD-PARTY-NOTICES.md +647 -51
- package/dist/administration.js +1 -2
- package/dist/bracketAdmission.js +6 -7
- package/dist/bracketAdmissionPolicy.js +1 -2
- package/dist/bracketInstallation.js +3 -4
- package/dist/bracketMatchPorts.js +1 -2
- package/dist/bracketMatches.js +10 -11
- package/dist/brackets.js +1 -2
- package/dist/bucketStore.js +1 -2
- package/dist/buckets.js +1 -2
- package/dist/errors.js +1 -2
- package/dist/glicko2.js +1 -2
- package/dist/inspect.js +1 -2
- package/dist/json.js +1 -2
- package/dist/leaderboard.js +1 -2
- package/dist/leagueSchedule.js +1 -2
- package/dist/leagues.js +1 -2
- package/dist/openskill.js +1 -2
- package/dist/plugin.js +1 -2
- package/dist/portLifetime.js +3 -4
- package/dist/ports.js +1 -2
- package/dist/rankQuery.js +1 -2
- package/dist/ranking.js +1 -2
- package/dist/rating.js +1 -2
- package/dist/ratingPools.js +1 -2
- package/dist/ratingStore.js +1 -2
- package/dist/ratingStrategies.js +1 -2
- package/dist/records.js +1 -2
- package/dist/rpc.js +1 -2
- package/dist/score.js +1 -2
- package/dist/service.js +1 -2
- package/dist/subjectFences.js +1 -2
- package/dist/tables.entity.js +1 -2
- package/dist/testing.js +1 -2
- package/dist/tournamentInstallation.js +1 -2
- package/dist/tournamentPrizes.js +1 -2
- package/dist/tournamentStage.js +1 -2
- package/dist/tournamentStagePorts.js +1 -2
- package/dist/tournamentWorkflow.js +1 -2
- package/dist/tournamentWorkflowSchemas.js +1 -2
- package/dist/tournaments.js +1 -2
- package/dist/web.js +1 -2
- package/package.json +8 -8
package/dist/administration.js
CHANGED
package/dist/bracketAdmission.js
CHANGED
|
@@ -7,7 +7,7 @@ import { Effect as s, Layer as c, Schema as l } from "effect";
|
|
|
7
7
|
import { Subject as u } from "@voltro/protocol";
|
|
8
8
|
import { createHash as d } from "node:crypto";
|
|
9
9
|
import { and as f, eq as p, id as m, json as h, table as g, text as _, timestamp as v } from "@voltro/database";
|
|
10
|
-
|
|
10
|
+
// src/bracketAdmission.ts
|
|
11
11
|
var y = "_voltro_tournament_admissions", b = g(y, {
|
|
12
12
|
id: m({ prefix: "tadm" }),
|
|
13
13
|
tenantId: _().maxLength(120).externalId().sensitive("pii"),
|
|
@@ -21,7 +21,7 @@ function S(e) {
|
|
|
21
21
|
}
|
|
22
22
|
var C = (e) => Number.isSafeInteger(e) && e >= 0 && e <= 864e13 ? e : S("invalid_input"), w = (e) => {
|
|
23
23
|
let t = r(e, 1024);
|
|
24
|
-
return
|
|
24
|
+
return t && Object.keys(t).length === 2 && Object.hasOwn(t, "tenantId") && Object.hasOwn(t, "tournamentId") || S("invalid_input"), Object.freeze({
|
|
25
25
|
tenantId: x(t.tenantId),
|
|
26
26
|
tournamentId: x(t.tournamentId)
|
|
27
27
|
});
|
|
@@ -53,7 +53,7 @@ var C = (e) => Number.isSafeInteger(e) && e >= 0 && e <= 864e13 ? e : S("invalid
|
|
|
53
53
|
i(n.definition), (n.entries.length > n.definition.maxEntries || new Set(n.entries.map((e) => e.ownerId)).size !== n.entries.length) && S("unavailable");
|
|
54
54
|
for (let e of n.entries) x(e.ownerId), C(e.joinedAt), (e.joinedAt < n.definition.registrationOpensAt || e.joinedAt >= n.definition.registrationClosesAt) && S("unavailable"), e.checkedInAt !== null && (C(e.checkedInAt) < n.definition.checkInOpensAt || e.checkedInAt >= n.definition.checkInClosesAt) && S("unavailable");
|
|
55
55
|
n.eraseRequest !== null && x(n.eraseRequest), (n.eraseRequest === null != (n.eraseTarget === null) || n.eraseTarget !== null && !/^[a-f0-9]{64}$/.test(n.eraseTarget) || n.phase === "erasing" && n.eraseRequest === null || ["open", "sealed"].includes(n.phase) && n.eraseRequest !== null) && S("unavailable");
|
|
56
|
-
for (let t of ["createdAt", "updatedAt"])
|
|
56
|
+
for (let t of ["createdAt", "updatedAt"]) e[t] instanceof Date && Number.isFinite(e[t].getTime()) || S("unavailable");
|
|
57
57
|
return n;
|
|
58
58
|
}, O = async (e, t, n = !1) => {
|
|
59
59
|
let r = await e.query({
|
|
@@ -88,11 +88,11 @@ var C = (e) => Number.isSafeInteger(e) && e >= 0 && e <= 864e13 ? e : S("invalid
|
|
|
88
88
|
}).pipe(s.uninterruptible);
|
|
89
89
|
}, A = (e) => {
|
|
90
90
|
let t = r(e, 2048);
|
|
91
|
-
return
|
|
91
|
+
return t && !Object.keys(t).some((e) => !["requestId", "target"].includes(e)) && t.target && !Object.keys(t.target).some((e) => ![
|
|
92
92
|
"tenantId",
|
|
93
93
|
"subjectId",
|
|
94
94
|
"kind"
|
|
95
|
-
].includes(e))
|
|
95
|
+
].includes(e)) && ["user", "guest"].includes(t.target.kind) || S("invalid_input"), Object.freeze({
|
|
96
96
|
requestId: x(t.requestId),
|
|
97
97
|
target: Object.freeze({
|
|
98
98
|
tenantId: x(t.target.tenantId),
|
|
@@ -214,7 +214,7 @@ var C = (e) => Number.isSafeInteger(e) && e >= 0 && e <= 864e13 ? e : S("invalid
|
|
|
214
214
|
return g(r, n, "checkIn").pipe(s.flatMap(() => N(() => T(n.tenantId, i))), s.flatMap(() => N(() => o.transactional(async (e) => {
|
|
215
215
|
await E(e, n.tenantId, i);
|
|
216
216
|
let { row: t, state: r } = await P(e, n, !0), a = C(m()), o = r.entries.find((e) => e.ownerId === i);
|
|
217
|
-
if (
|
|
217
|
+
if (r.phase === "open" && o || S("conflict"), o.checkedInAt !== null) return R(r, i);
|
|
218
218
|
(a < r.definition.checkInOpensAt || a >= r.definition.checkInClosesAt) && S("conflict");
|
|
219
219
|
let s = {
|
|
220
220
|
...r,
|
|
@@ -290,5 +290,4 @@ var C = (e) => Number.isSafeInteger(e) && e >= 0 && e <= 864e13 ? e : S("invalid
|
|
|
290
290
|
})
|
|
291
291
|
});
|
|
292
292
|
}, N = (e, t) => c.succeed(o, M(e, t));
|
|
293
|
-
//#endregion
|
|
294
293
|
export { y as BRACKET_ADMISSIONS_TABLE, N as bracketAdmissionLayer, b as bracketAdmissionsTable, M as dataStoreBracketAdmissions, k as readBracketAdmissionWindow, j as resolveBracketAdmissionOptions };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { leaderboardError as e } from "./errors.js";
|
|
2
2
|
import { captureLeaderboardJson as t } from "./json.js";
|
|
3
3
|
import { Schema as n } from "effect";
|
|
4
|
-
|
|
4
|
+
// src/bracketAdmissionPolicy.ts
|
|
5
5
|
var r = n.Struct({
|
|
6
6
|
registrationOpensAt: n.Int,
|
|
7
7
|
registrationClosesAt: n.Int,
|
|
@@ -18,5 +18,4 @@ var r = n.Struct({
|
|
|
18
18
|
if (a.registrationOpensAt < 0 || a.registrationClosesAt <= a.registrationOpensAt || a.checkInOpensAt < a.registrationClosesAt || a.checkInClosesAt <= a.checkInOpensAt || a.checkInClosesAt > 864e13 || a.maxEntries < 2 || a.maxEntries > 256) throw e("invalid_input");
|
|
19
19
|
return Object.freeze(a);
|
|
20
20
|
};
|
|
21
|
-
//#endregion
|
|
22
21
|
export { i as defineBracketAdmission };
|
|
@@ -4,7 +4,7 @@ import { defineBracketAdmission as r } from "./bracketAdmissionPolicy.js";
|
|
|
4
4
|
import { dataStoreBracketAdmissions as i, resolveBracketAdmissionOptions as a } from "./bracketAdmission.js";
|
|
5
5
|
import { Effect as o, Schema as s } from "effect";
|
|
6
6
|
import { Subject as c } from "@voltro/protocol";
|
|
7
|
-
|
|
7
|
+
// src/bracketInstallation.ts
|
|
8
8
|
var l = [
|
|
9
9
|
"create",
|
|
10
10
|
"register",
|
|
@@ -19,10 +19,10 @@ function u() {
|
|
|
19
19
|
throw t("invalid_input");
|
|
20
20
|
}
|
|
21
21
|
var d = (e) => {
|
|
22
|
-
|
|
22
|
+
e && typeof e == "object" || u();
|
|
23
23
|
for (let t of l) {
|
|
24
24
|
let n = Object.getOwnPropertyDescriptor(e, t);
|
|
25
|
-
|
|
25
|
+
n && "value" in n && typeof n.value == "function" || u();
|
|
26
26
|
}
|
|
27
27
|
return Object.freeze({
|
|
28
28
|
create: e.create.bind(e),
|
|
@@ -129,5 +129,4 @@ var d = (e) => {
|
|
|
129
129
|
})))
|
|
130
130
|
});
|
|
131
131
|
};
|
|
132
|
-
//#endregion
|
|
133
132
|
export { f as makeBracketAdmissionInstallation };
|
package/dist/bracketMatches.js
CHANGED
|
@@ -7,7 +7,7 @@ import { Effect as f, Layer as p, Schema as m } from "effect";
|
|
|
7
7
|
import { Subject as h } from "@voltro/protocol";
|
|
8
8
|
import { createHash as g } from "node:crypto";
|
|
9
9
|
import { and as _, eq as v, id as y, json as b, table as x, text as S, timestamp as C } from "@voltro/database";
|
|
10
|
-
|
|
10
|
+
// src/bracketMatches.ts
|
|
11
11
|
var w = "_voltro_brackets", T = x(w, {
|
|
12
12
|
id: y({ prefix: "tbrk" }),
|
|
13
13
|
tenantId: S().maxLength(120).externalId().sensitive("pii"),
|
|
@@ -21,7 +21,7 @@ function E(e) {
|
|
|
21
21
|
}
|
|
22
22
|
var D = (e) => typeof e == "string" && e.length > 0 && e.length <= 120 && e.trim() === e && e.isWellFormed() && !/[\u0000-\u001f\u007f]/.test(e) ? e : E("invalid_input"), O = (e) => Number.isSafeInteger(e) && e >= 0 && e <= 864e13 ? e : E("invalid_input"), k = (e) => {
|
|
23
23
|
let t = r(e, 1024);
|
|
24
|
-
return
|
|
24
|
+
return t && Object.keys(t).length === 2 && Object.hasOwn(t, "tenantId") && Object.hasOwn(t, "tournamentId") || E("invalid_input"), Object.freeze({
|
|
25
25
|
tenantId: D(t.tenantId),
|
|
26
26
|
tournamentId: D(t.tournamentId)
|
|
27
27
|
});
|
|
@@ -138,7 +138,7 @@ var D = (e) => typeof e == "string" && e.length > 0 && e.length <= 120 && e.trim
|
|
|
138
138
|
(e.tenantId !== t.tenantId || e.tournamentId !== t.tournamentId) && E("unavailable");
|
|
139
139
|
let n = A(L, e.state);
|
|
140
140
|
D(n.ruleVersion), W(n.entrants, (e) => e.entrantId), W(n.provisions, (e) => e.matchId), W(n.provisions, (e) => e.requestId), W(n.results, (e) => e.matchId), W(n.results, (e) => e.reportId), W(n.disputes, (e) => e.disputeId);
|
|
141
|
-
for (let t of ["createdAt", "updatedAt"])
|
|
141
|
+
for (let t of ["createdAt", "updatedAt"]) e[t] instanceof Date && Number.isFinite(e[t].getTime()) || E("unavailable");
|
|
142
142
|
(n.provisions.length > 127 || n.results.length > 127 || n.disputes.length > 254) && E("unavailable");
|
|
143
143
|
for (let e of n.entrants) D(e.entrantId), (!Number.isSafeInteger(e.seed) || e.seed < 1 || e.seed > 64) && E("unavailable");
|
|
144
144
|
for (let e of n.provisions) {
|
|
@@ -160,18 +160,18 @@ var D = (e) => typeof e == "string" && e.length > 0 && e.length <= 120 && e.trim
|
|
|
160
160
|
"reportedWinnerId"
|
|
161
161
|
]) D(e[t]);
|
|
162
162
|
let t = n.provisions.find((t) => t.matchId === e.matchId);
|
|
163
|
-
|
|
163
|
+
t && t.roomId === e.roomId && t.epoch === e.epoch && [t.left, t.right].includes(e.winnerId) && [t.left, t.right].includes(e.reportedWinnerId) || E("unavailable");
|
|
164
164
|
}
|
|
165
165
|
for (let e of n.disputes) {
|
|
166
166
|
D(e.disputeId), D(e.ownerId);
|
|
167
167
|
let t = n.provisions.find((t) => t.matchId === e.matchId);
|
|
168
|
-
|
|
168
|
+
t && n.results.some((t) => t.matchId === e.matchId) && [t.left, t.right].includes(e.ownerId) && e.resolutionId === null == (e.winnerId === null) || E("unavailable"), e.resolutionId !== null && (D(e.resolutionId), t && [t.left, t.right].includes(e.winnerId) || E("unavailable"));
|
|
169
169
|
}
|
|
170
|
-
if (n.erase
|
|
170
|
+
if (n.erase === null || /^[a-f0-9]{64}$/.test(n.erase.targetDigest) && D(n.erase.requestId) || E("unavailable"), ["erasing", "cancelled"].includes(n.phase) !== (n.erase !== null) && E("unavailable"), n.phase === "cancelled" && !n.withdrawn && E("unavailable"), n.withdrawn) return (!["erasing", "cancelled"].includes(n.phase) || n.provisions.length || n.results.length || n.disputes.length || n.settlement !== null) && E("unavailable"), n;
|
|
171
171
|
let r = B(n, n.results);
|
|
172
172
|
for (let e of n.provisions) {
|
|
173
173
|
let t = r.matches.find((t) => t.id === e.matchId);
|
|
174
|
-
|
|
174
|
+
t && t.left === e.left && t.right === e.right && ["ready", "complete"].includes(t.status) || E("unavailable");
|
|
175
175
|
}
|
|
176
176
|
let i = n.disputes.filter((e) => e.resolutionId === null).length;
|
|
177
177
|
return n.phase !== "erasing" && (n.phase === "paused" ? i === 0 : i !== 0) && E("unavailable"), n.settlement !== null && (r.champion !== n.settlement.winnerId || n.settlement.requestId !== z(t, n.ruleVersion, "champion") || i !== 0) && E("unavailable"), (n.phase === "complete" && n.settlement?.complete !== !0 || n.settlement?.complete && !["complete", "erasing"].includes(n.phase)) && E("unavailable"), n;
|
|
@@ -304,7 +304,7 @@ var D = (e) => typeof e == "string" && e.length > 0 && e.length <= 120 && e.trim
|
|
|
304
304
|
}, Q = (e, t) => e.roomId === t.roomId && e.epoch === t.epoch && e.reportId === t.reportId && e.reportedWinnerId === t.winnerId && e.matchId === t.matchId, $ = (e, t) => {
|
|
305
305
|
J(e), e.phase !== "active" && E("conflict");
|
|
306
306
|
let n = B(e, e.results).matches.find((e) => e.id === t.matchId), r = e.provisions.find((e) => e.matchId === t.matchId);
|
|
307
|
-
|
|
307
|
+
n && n.status === "ready" && [n.left, n.right].includes(t.winnerId) && r && r.roomId === t.roomId && r.epoch === t.epoch || E("conflict");
|
|
308
308
|
};
|
|
309
309
|
return Object.freeze({
|
|
310
310
|
create: (e, t, r) => I(() => {
|
|
@@ -369,7 +369,7 @@ var D = (e) => typeof e == "string" && e.length > 0 && e.length <= 120 && e.trim
|
|
|
369
369
|
let r = n.disputes.find((e) => e.disputeId === a.disputeId);
|
|
370
370
|
if (r) return (r.ownerId !== i.id || r.matchId !== a.matchId || r.reason !== a.reason) && E("conflict"), Y(n);
|
|
371
371
|
let o = n.provisions.find((e) => e.matchId === a.matchId);
|
|
372
|
-
|
|
372
|
+
n.settlement === null && o && [o.left, o.right].includes(i.id) && n.results.some((e) => e.matchId === a.matchId) && !n.disputes.some((e) => e.matchId === a.matchId && e.ownerId === i.id) || E("conflict");
|
|
373
373
|
let s = {
|
|
374
374
|
...n,
|
|
375
375
|
phase: "paused",
|
|
@@ -478,7 +478,7 @@ var D = (e) => typeof e == "string" && e.length > 0 && e.length <= 120 && e.trim
|
|
|
478
478
|
})), f.flatMap((e) => X(i, async (t, r, i) => {
|
|
479
479
|
J(i);
|
|
480
480
|
let a = i.provisions.find((e) => e.requestId === n.work.requestId);
|
|
481
|
-
if (
|
|
481
|
+
if (i.phase === "active" && a || E("conflict"), a.roomId !== null) return (a.roomId !== e.roomId || a.epoch !== e.epoch) && E("conflict"), Y(i);
|
|
482
482
|
let o = {
|
|
483
483
|
...i,
|
|
484
484
|
provisions: i.provisions.map((t) => t.requestId === n.work.requestId ? {
|
|
@@ -542,5 +542,4 @@ var D = (e) => typeof e == "string" && e.length > 0 && e.length <= 120 && e.trim
|
|
|
542
542
|
})
|
|
543
543
|
});
|
|
544
544
|
}, J = (e, t) => p.succeed(a, q(e, t));
|
|
545
|
-
//#endregion
|
|
546
545
|
export { w as TOURNAMENT_BRACKETS_TABLE, q as dataStoreTournamentBrackets, K as resolveTournamentBracketOptions, J as tournamentBracketLayer, T as tournamentBracketsTable };
|
package/dist/brackets.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { leaderboardError as e } from "./errors.js";
|
|
2
2
|
import { canonicalLeaderboardJson as t, captureLeaderboardJson as n } from "./json.js";
|
|
3
3
|
import { Schema as r } from "effect";
|
|
4
|
-
|
|
4
|
+
// src/brackets.ts
|
|
5
5
|
var i = Object.freeze({
|
|
6
6
|
maxEntrants: 256,
|
|
7
7
|
maxMatches: 65536,
|
|
@@ -375,5 +375,4 @@ var o = (e, t) => Number.isSafeInteger(e) && e > 0 && e <= t ? e : a(), s = (e)
|
|
|
375
375
|
})))
|
|
376
376
|
});
|
|
377
377
|
};
|
|
378
|
-
//#endregion
|
|
379
378
|
export { w as advanceDoubleElimination, y as advanceRoundRobin, S as advanceSingleElimination, b as advanceSwiss, p as roundRobin, C as seedDoubleElimination, x as seedSingleElimination, h as swissPairings };
|
package/dist/bucketStore.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { leaderboardError as e } from "./errors.js";
|
|
2
2
|
import { leaderboardBucketAssignmentsTable as t } from "./tables.entity.js";
|
|
3
3
|
import { and as n, eq as r, queryFor as i } from "@voltro/database";
|
|
4
|
-
|
|
4
|
+
// src/bucketStore.ts
|
|
5
5
|
var a = (a) => {
|
|
6
6
|
let o = (e, t, n, r) => a.key("lbba_", [
|
|
7
7
|
e,
|
|
@@ -89,5 +89,4 @@ var a = (a) => {
|
|
|
89
89
|
}
|
|
90
90
|
};
|
|
91
91
|
};
|
|
92
|
-
//#endregion
|
|
93
92
|
export { a as makeBucketStore };
|
package/dist/buckets.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { leaderboardError as e } from "./errors.js";
|
|
2
2
|
import { hashBucket as t } from "./ranking.js";
|
|
3
|
-
|
|
3
|
+
// src/buckets.ts
|
|
4
4
|
var n = (n) => {
|
|
5
5
|
if (n.candidates.length === 0) throw e("limit_exceeded");
|
|
6
6
|
return n.candidates[t(n.tenantId, n.periodId, n.ownerId, n.candidates.length)].id;
|
|
7
7
|
};
|
|
8
|
-
//#endregion
|
|
9
8
|
export { n as defaultLeaderboardBucketAssign };
|
package/dist/errors.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Schema as e } from "effect";
|
|
2
|
-
|
|
2
|
+
// src/errors.ts
|
|
3
3
|
var t = class extends e.TaggedError()("LeaderboardError", { code: e.Literals([
|
|
4
4
|
"invalid_board",
|
|
5
5
|
"invalid_score",
|
|
@@ -13,5 +13,4 @@ var t = class extends e.TaggedError()("LeaderboardError", { code: e.Literals([
|
|
|
13
13
|
"erased",
|
|
14
14
|
"limit_exceeded"
|
|
15
15
|
]) }) {}, n = (e) => new t({ code: e });
|
|
16
|
-
//#endregion
|
|
17
16
|
export { t as LeaderboardError, n as leaderboardError };
|
package/dist/glicko2.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { leaderboardError as e } from "./errors.js";
|
|
2
|
-
|
|
2
|
+
// src/glicko2.ts
|
|
3
3
|
var t = 173.7178, n = (e, t, n) => Number.isFinite(e) && e >= t && e <= n, r = (e, t) => Number.isSafeInteger(e) && e >= 1 && e <= t, i = (e) => n(e, -1e9, 1e9), a = (e) => n(e, 1e-6, 1e6), o = (e) => n(e, 1e-12, 10), s = (t) => {
|
|
4
4
|
if (!Number.isFinite(t)) throw e("overflow");
|
|
5
5
|
return t;
|
|
@@ -68,5 +68,4 @@ var t = 173.7178, n = (e, t, n) => Number.isFinite(e) && e >= t && e <= n, r = (
|
|
|
68
68
|
return v(g + N ** 2 * b, N, M);
|
|
69
69
|
};
|
|
70
70
|
};
|
|
71
|
-
//#endregion
|
|
72
71
|
export { l as glicko2 };
|
package/dist/inspect.js
CHANGED
|
@@ -4,7 +4,7 @@ import { defaultLeaderboardTiebreak as a, defaultPeriodSummary as o } from "./ra
|
|
|
4
4
|
import { defaultLeaderboardBucketAssign as s } from "./buckets.js";
|
|
5
5
|
import { defaultLeaderboardRankQuery as c } from "./rankQuery.js";
|
|
6
6
|
import { acceptLeaderboardSubmission as l } from "./service.js";
|
|
7
|
-
|
|
7
|
+
// src/inspect.ts
|
|
8
8
|
var u = (u, d, f = Date.now(), p = null, m = null) => {
|
|
9
9
|
if (!Number.isSafeInteger(f) || f < 0 || f > 864e13) throw e("unavailable");
|
|
10
10
|
let h = i(u.ratingStrategies);
|
|
@@ -80,5 +80,4 @@ var u = (u, d, f = Date.now(), p = null, m = null) => {
|
|
|
80
80
|
]
|
|
81
81
|
};
|
|
82
82
|
};
|
|
83
|
-
//#endregion
|
|
84
83
|
export { u as leaderboardsStatus };
|
package/dist/json.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { leaderboardError as e } from "./errors.js";
|
|
2
|
-
|
|
2
|
+
// src/json.ts
|
|
3
3
|
var t = (n, r, i, a, o) => {
|
|
4
4
|
if (i > 32) throw e("invalid_input");
|
|
5
5
|
if (o !== void 0 && (o.remaining -= typeof n == "string" ? n.length + 2 : typeof n == "object" && n ? 2 : 1, o.remaining < 0)) throw e("limit_exceeded");
|
|
@@ -35,5 +35,4 @@ var t = (n, r, i, a, o) => {
|
|
|
35
35
|
let o = structuredClone(r);
|
|
36
36
|
return t(o, /* @__PURE__ */ new Set(), 0, !0), o;
|
|
37
37
|
};
|
|
38
|
-
//#endregion
|
|
39
38
|
export { n as canonicalLeaderboardJson, r as captureLeaderboardJson };
|
package/dist/leaderboard.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { leaderboardError as e } from "./errors.js";
|
|
2
2
|
import { Cron as t, Result as n, Schema as r } from "effect";
|
|
3
|
-
|
|
3
|
+
// src/leaderboard.ts
|
|
4
4
|
var i = (e) => typeof e == "string" && e.trim().length > 0 && e.length <= 256 && !e.includes("\0"), a = (e, t) => Number.isSafeInteger(e) && e >= 1 && e <= t, o = (o) => {
|
|
5
5
|
if (!o || !i(o.name)) throw e("invalid_board");
|
|
6
6
|
let s = o.sort ?? "desc", c = o.operator ?? "best", l = o.maxRankRecords ?? 1e4, u = o.maxPageSize ?? 100;
|
|
@@ -53,5 +53,4 @@ var i = (e) => typeof e == "string" && e.trim().length > 0 && e.length <= 256 &&
|
|
|
53
53
|
maxPageSize: u
|
|
54
54
|
});
|
|
55
55
|
};
|
|
56
|
-
//#endregion
|
|
57
56
|
export { o as defineLeaderboard, i as leaderboardIdentifier };
|
package/dist/leagueSchedule.js
CHANGED
|
@@ -4,7 +4,7 @@ import { LeaderboardAdministration as n } from "./administration.js";
|
|
|
4
4
|
import { Effect as r, Result as i } from "effect";
|
|
5
5
|
import { systemSubject as a } from "@voltro/protocol";
|
|
6
6
|
import { defineSchedule as o } from "@voltro/runtime";
|
|
7
|
-
|
|
7
|
+
// src/leagueSchedule.ts
|
|
8
8
|
var s = (s) => {
|
|
9
9
|
let c = s?.pageSize ?? 100, l = s?.maxPages ?? 100, u = s?.timezone ?? "UTC";
|
|
10
10
|
if (!s || !t(s.league) || s.league.length > 120 || typeof s.cron != "string" || s.cron.length > 128 || typeof u != "string" || u.length > 128 || ![c, l].every((e) => Number.isSafeInteger(e) && e >= 1 && e <= 1e3)) throw e("invalid_input");
|
|
@@ -36,5 +36,4 @@ var s = (s) => {
|
|
|
36
36
|
})
|
|
37
37
|
});
|
|
38
38
|
};
|
|
39
|
-
//#endregion
|
|
40
39
|
export { s as defineLeagueRollSchedule };
|
package/dist/leagues.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { leaderboardError as e } from "./errors.js";
|
|
2
2
|
import { leaderboardIdentifier as t } from "./leaderboard.js";
|
|
3
|
-
|
|
3
|
+
// src/leagues.ts
|
|
4
4
|
var n = (n) => {
|
|
5
5
|
if (!n || typeof n != "object" || !t(n.name) || !Array.isArray(n.divisions) || n.divisions.length < 2 || n.divisions.length > 16 || n.divisions.some((e) => !t(e)) || new Set(n.divisions).size !== n.divisions.length || ![n.promote, n.relegate].every((e) => Number.isSafeInteger(e) && e >= 0 && e <= 1e3) || n.promote + n.relegate < 1) throw e("invalid_input");
|
|
6
6
|
return Object.freeze({
|
|
@@ -27,5 +27,4 @@ var n = (n) => {
|
|
|
27
27
|
}));
|
|
28
28
|
}), Object.freeze(i);
|
|
29
29
|
};
|
|
30
|
-
//#endregion
|
|
31
30
|
export { n as defineLeague, r as leagueMovements };
|
package/dist/openskill.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { leaderboardError as e } from "./errors.js";
|
|
2
2
|
import { leaderboardIdentifier as t } from "./leaderboard.js";
|
|
3
|
-
|
|
3
|
+
// src/openskill.ts
|
|
4
4
|
var n = (e, t, n) => Number.isFinite(e) && e >= t && e <= n, r = (r = {}) => {
|
|
5
5
|
let i = r.beta ?? 25 / 6, a = r.tau ?? 25 / 300, o = r.kappa ?? 1e-4, s = r.ordinalZ ?? 3;
|
|
6
6
|
if (!n(i, 1e-6, 1e6) || !n(a, 0, 1e6) || !n(o, 1e-12, 1) || !n(s, 0, 100)) throw e("invalid_input");
|
|
@@ -70,5 +70,4 @@ var n = (e, t, n) => Number.isFinite(e) && e >= t && e <= n, r = (r = {}) => {
|
|
|
70
70
|
}));
|
|
71
71
|
};
|
|
72
72
|
};
|
|
73
|
-
//#endregion
|
|
74
73
|
export { r as openskill };
|
package/dist/plugin.js
CHANGED
|
@@ -16,7 +16,7 @@ import { makeTournamentInstallation as N } from "./tournamentInstallation.js";
|
|
|
16
16
|
import { Effect as P, Layer as F, Schema as I } from "effect";
|
|
17
17
|
import { defineLicensedGamePlugin as L } from "@voltro/plugin-licensing/gate";
|
|
18
18
|
import { defineAction as R, systemSubject as z } from "@voltro/protocol";
|
|
19
|
-
|
|
19
|
+
// src/plugin.ts
|
|
20
20
|
var B = R({
|
|
21
21
|
name: "leaderboards.submit",
|
|
22
22
|
guards: [{ scope: "leaderboards:submit" }],
|
|
@@ -334,5 +334,4 @@ var B = R({
|
|
|
334
334
|
})
|
|
335
335
|
};
|
|
336
336
|
};
|
|
337
|
-
//#endregion
|
|
338
337
|
export { H as leaderboardsPlugin, V as leaderboardsSystemContract };
|
package/dist/portLifetime.js
CHANGED
|
@@ -2,7 +2,7 @@ import { LeaderboardError as e, leaderboardError as t } from "./errors.js";
|
|
|
2
2
|
import { captureLeaderboardJson as n } from "./json.js";
|
|
3
3
|
import { Effect as r, Schema as i } from "effect";
|
|
4
4
|
import { Subject as a } from "@voltro/protocol";
|
|
5
|
-
|
|
5
|
+
// src/portLifetime.ts
|
|
6
6
|
function o() {
|
|
7
7
|
throw t("invalid_input");
|
|
8
8
|
}
|
|
@@ -11,10 +11,10 @@ var s = (e, t, n = []) => {
|
|
|
11
11
|
let r = Object.getOwnPropertyDescriptors(e);
|
|
12
12
|
(Object.entries(r).some(([e, r]) => ![...t, ...n].includes(e) || !r.enumerable || !("value" in r)) || t.some((e) => !Object.hasOwn(r, e))) && o();
|
|
13
13
|
}, c = (e, t) => {
|
|
14
|
-
|
|
14
|
+
e && typeof e == "object" || o();
|
|
15
15
|
let n = t.map((t) => {
|
|
16
16
|
let n = Object.getOwnPropertyDescriptor(e, t);
|
|
17
|
-
return
|
|
17
|
+
return n && "value" in n && typeof n.value == "function" || o(), [t, n.value.bind(e)];
|
|
18
18
|
});
|
|
19
19
|
return Object.freeze(Object.fromEntries(n));
|
|
20
20
|
}, l = (e) => ((typeof e != "string" || !/^[a-zA-Z0-9][a-zA-Z0-9:._-]{0,119}$/.test(e) || e.startsWith("voltro:")) && o(), e), u = (e) => {
|
|
@@ -63,5 +63,4 @@ var s = (e, t, n = []) => {
|
|
|
63
63
|
})
|
|
64
64
|
});
|
|
65
65
|
};
|
|
66
|
-
//#endregion
|
|
67
66
|
export { s as assertPortBindingKeys, c as capturePortMethods, f as capturePortPrivacyRequest, u as capturePortSources, d as capturePortSubject, l as capturePortVersion, o as invalidPortBinding, p as makeLeaderboardPortLifetime };
|
package/dist/ports.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { TournamentBracketPort as e } from "./bracketMatchPorts.js";
|
|
2
2
|
import { TournamentStagePort as t } from "./tournamentStagePorts.js";
|
|
3
3
|
import { Context as n } from "effect";
|
|
4
|
-
|
|
4
|
+
// src/bracketPorts.ts
|
|
5
5
|
var r = class extends n.Service()("@voltro/BracketAdmissionPort") {};
|
|
6
|
-
//#endregion
|
|
7
6
|
export { r as BracketAdmissionPort, e as TournamentBracketPort, t as TournamentStagePort };
|
package/dist/rankQuery.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LeaderboardError as e, leaderboardError as t } from "./errors.js";
|
|
2
2
|
import { rankLeaderboardRecords as n } from "./ranking.js";
|
|
3
3
|
import { Effect as r } from "effect";
|
|
4
|
-
|
|
4
|
+
// src/rankQuery.ts
|
|
5
5
|
var i = (i) => r.try({
|
|
6
6
|
try: () => Object.freeze(n(i.records, {
|
|
7
7
|
sort: i.sort,
|
|
@@ -20,5 +20,4 @@ var i = (i) => r.try({
|
|
|
20
20
|
}
|
|
21
21
|
return Object.freeze(a);
|
|
22
22
|
};
|
|
23
|
-
//#endregion
|
|
24
23
|
export { a as admitLeaderboardRankOrder, i as defaultLeaderboardRankQuery };
|
package/dist/ranking.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { leaderboardError as e } from "./errors.js";
|
|
2
2
|
import { leaderboardIdentifier as t } from "./leaderboard.js";
|
|
3
3
|
import { scoreString as n, scoreValue as r } from "./score.js";
|
|
4
|
-
|
|
4
|
+
// src/ranking.ts
|
|
5
5
|
var i = (e, t) => e < t ? -1 : +(e > t), a = (e, t) => {
|
|
6
6
|
let n = r(e.subscore), a = r(t.subscore);
|
|
7
7
|
return n > a ? -1 : n < a ? 1 : e.updatedAt - t.updatedAt || i(e.ownerId, t.ownerId) || i(e.id, t.id);
|
|
@@ -67,5 +67,4 @@ var i = (e, t) => e < t ? -1 : +(e > t), a = (e, t) => {
|
|
|
67
67
|
]))) o = BigInt.asUintN(64, (o ^ BigInt(e)) * 1099511628211n);
|
|
68
68
|
return Number(o % BigInt(a));
|
|
69
69
|
};
|
|
70
|
-
//#endregion
|
|
71
70
|
export { a as defaultLeaderboardTiebreak, c as defaultPeriodSummary, l as hashBucket, s as leaderboardAround, o as rankLeaderboardRecords };
|
package/dist/rating.js
CHANGED
|
@@ -2,7 +2,7 @@ import { leaderboardError as e } from "./errors.js";
|
|
|
2
2
|
import { leaderboardIdentifier as t } from "./leaderboard.js";
|
|
3
3
|
import { glicko2 as n } from "./glicko2.js";
|
|
4
4
|
import { openskill as r } from "./openskill.js";
|
|
5
|
-
|
|
5
|
+
// src/rating.ts
|
|
6
6
|
var i = (n = {}) => {
|
|
7
7
|
let r = n.k ?? 32, i = n.scale ?? 400;
|
|
8
8
|
if (!Number.isFinite(r) || r <= 0 || r > 1e6 || !Number.isFinite(i) || i <= 0 || i > 1e6) throw e("invalid_input");
|
|
@@ -46,5 +46,4 @@ var i = (n = {}) => {
|
|
|
46
46
|
}))));
|
|
47
47
|
};
|
|
48
48
|
};
|
|
49
|
-
//#endregion
|
|
50
49
|
export { i as elo, n as glicko2, r as openskill };
|
package/dist/ratingPools.js
CHANGED
|
@@ -5,7 +5,7 @@ import { glicko2 as i } from "./glicko2.js";
|
|
|
5
5
|
import { openskill as a } from "./openskill.js";
|
|
6
6
|
import { elo as o } from "./rating.js";
|
|
7
7
|
import { Schema as s } from "effect";
|
|
8
|
-
|
|
8
|
+
// src/ratingPools.ts
|
|
9
9
|
var c = s.Number.pipe(s.check(s.isFinite()), s.check(s.isBetween({
|
|
10
10
|
minimum: -1e9,
|
|
11
11
|
maximum: 1e9
|
|
@@ -130,5 +130,4 @@ var c = s.Number.pipe(s.check(s.isFinite()), s.check(s.isBetween({
|
|
|
130
130
|
maximum: 64
|
|
131
131
|
})))).pipe(s.check(s.isMinLength(2)), s.check(s.isMaxLength(64)))
|
|
132
132
|
});
|
|
133
|
-
//#endregion
|
|
134
133
|
export { m as PrepareRatingMatchSchema, u as RatingStateSchema, d as exactRatingState, f as resolveRatingPools };
|
package/dist/ratingStore.js
CHANGED
|
@@ -6,7 +6,7 @@ import { admitRatingStrategyResults as s } from "./ratingStrategies.js";
|
|
|
6
6
|
import { leaderboardRatingMatchesTable as c, leaderboardRatingPoolsTable as l, leaderboardRatingResultsTable as u, leaderboardRatingsTable as d } from "./tables.entity.js";
|
|
7
7
|
import { Effect as f, Schema as p } from "effect";
|
|
8
8
|
import { and as m, eq as h, queryFor as g } from "@voltro/database";
|
|
9
|
-
|
|
9
|
+
// src/ratingStore.ts
|
|
10
10
|
var _ = (n) => n instanceof e ? n : t("unavailable"), v = (e) => f.tryPromise({
|
|
11
11
|
try: e,
|
|
12
12
|
catch: _
|
|
@@ -330,5 +330,4 @@ var _ = (n) => n instanceof e ? n : t("unavailable"), v = (e) => f.tryPromise({
|
|
|
330
330
|
}
|
|
331
331
|
};
|
|
332
332
|
};
|
|
333
|
-
//#endregion
|
|
334
333
|
export { b as makeRatingStore };
|
package/dist/ratingStrategies.js
CHANGED
|
@@ -5,7 +5,7 @@ import { glicko2 as r } from "./glicko2.js";
|
|
|
5
5
|
import { openskill as i } from "./openskill.js";
|
|
6
6
|
import { elo as a } from "./rating.js";
|
|
7
7
|
import { exactRatingState as o } from "./ratingPools.js";
|
|
8
|
-
|
|
8
|
+
// src/ratingStrategies.ts
|
|
9
9
|
var s = (e) => e.pool.initial, c = (e) => e.state, l = (t) => {
|
|
10
10
|
let { pool: n, teams: s, ranks: c } = t;
|
|
11
11
|
if (n.algorithm === "elo") return Object.freeze(a(n.options)({
|
|
@@ -104,5 +104,4 @@ var s = (e) => e.pool.initial, c = (e) => e.state, l = (t) => {
|
|
|
104
104
|
}
|
|
105
105
|
return s;
|
|
106
106
|
};
|
|
107
|
-
//#endregion
|
|
108
107
|
export { f as admitRatingStrategyResults, c as defaultRatingDecay, s as defaultRatingPlacement, l as defaultRatingRate, d as resolveRatingStrategies };
|
package/dist/records.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { scoreString as e } from "./score.js";
|
|
2
2
|
import { RatingStateSchema as t } from "./ratingPools.js";
|
|
3
3
|
import { Schema as n } from "effect";
|
|
4
|
-
|
|
4
|
+
// src/records.ts
|
|
5
5
|
var r = "_voltro_lb_boards", i = "_voltro_lb_records", a = "_voltro_lb_periods", o = "_voltro_lb_submissions", s = "_voltro_lb_subject_admission", c = "_voltro_lb_tournaments", l = "_voltro_lb_tournament_entries", u = "_voltro_lb_bucket_assignments", d = n.String.pipe(n.check(n.isMaxLength(20)), n.check(n.makeFilter((t) => {
|
|
6
6
|
try {
|
|
7
7
|
return e(t) === t;
|
|
@@ -84,5 +84,4 @@ var r = "_voltro_lb_boards", i = "_voltro_lb_records", a = "_voltro_lb_periods",
|
|
|
84
84
|
]),
|
|
85
85
|
entry: n.NullOr(_)
|
|
86
86
|
});
|
|
87
|
-
//#endregion
|
|
88
87
|
export { r as BOARDS_TABLE, u as BUCKET_ASSIGNMENTS_TABLE, g as LeaderboardPeriodSchema, m as LeaderboardRecordSchema, _ as LeaderboardTournamentEntrySchema, v as LeaderboardTournamentStatusSchema, p as MyRatingSchema, a as PERIODS_TABLE, i as RECORDS_TABLE, s as SUBJECTS_TABLE, o as SUBMISSIONS_TABLE, c as TOURNAMENTS_TABLE, l as TOURNAMENT_ENTRIES_TABLE };
|
package/dist/rpc.js
CHANGED
|
@@ -3,7 +3,7 @@ import { BOARDS_TABLE as t, BUCKET_ASSIGNMENTS_TABLE as n, LeaderboardPeriodSche
|
|
|
3
3
|
import { TournamentAdvancePayload as f, TournamentStageNotification as p, TournamentStagePayload as m, TournamentStageWindow as h, TournamentWorkflowSummary as g } from "./tournamentWorkflowSchemas.js";
|
|
4
4
|
import { Schema as _ } from "effect";
|
|
5
5
|
import { defineAction as v, defineQuery as y } from "@voltro/protocol";
|
|
6
|
-
|
|
6
|
+
// src/rpc.ts
|
|
7
7
|
var b = "@voltro/plugin-leaderboards", x = "The adapter requires a verified human and resolves the tenant from the request, never a player-supplied tenant or score.", S = _.Struct({
|
|
8
8
|
...i.fields,
|
|
9
9
|
rank: _.Number.pipe(_.check(_.isInt()), _.check(_.isGreaterThan(0)))
|
|
@@ -302,5 +302,4 @@ var b = "@voltro/plugin-leaderboards", x = "The adapter requires a verified huma
|
|
|
302
302
|
}
|
|
303
303
|
}
|
|
304
304
|
];
|
|
305
|
-
//#endregion
|
|
306
305
|
export { b as BASE_NAME, C as BracketAdmissionStatusSchema, k as MyBracketMatchesSchema, f as TournamentAdvancePayload, j as TournamentBracketViewSchema, T as TournamentDisputeInput, p as TournamentStageNotification, m as TournamentStagePayload, h as TournamentStageWindow, g as TournamentWorkflowSummary, L as aroundDescriptor, W as bracketRpcClientImports, N as bracketStatusDescriptor, M as bracketViewDescriptor, O as checkInBracketDescriptor, E as disputeBracketDescriptor, R as historyDescriptor, z as joinTournamentDescriptor, V as leaderboardRpcClientImports, I as meDescriptor, A as myBracketMatchesDescriptor, P as myRatingDescriptor, U as ratingRpcClientImports, D as registerBracketDescriptor, F as topDescriptor, G as tournamentCoordinationRpcClientImports, H as tournamentRpcClientImports, B as tournamentStatusDescriptor };
|
package/dist/score.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { leaderboardError as e } from "./errors.js";
|
|
2
|
-
|
|
2
|
+
// src/score.ts
|
|
3
3
|
var t = -(1n << 63n), n = (1n << 63n) - 1n, r = (r) => {
|
|
4
4
|
let i;
|
|
5
5
|
if (typeof r == "bigint") i = r;
|
|
@@ -23,5 +23,4 @@ var t = -(1n << 63n), n = (1n << 63n) - 1n, r = (r) => {
|
|
|
23
23
|
case "decrement": return i((c ?? 0n) - s);
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
|
-
//#endregion
|
|
27
26
|
export { a as applyScore, i as scoreString, r as scoreValue };
|
package/dist/service.js
CHANGED
|
@@ -17,7 +17,7 @@ import { admitLeaderboardRankOrder as se, defaultLeaderboardRankQuery as ce } fr
|
|
|
17
17
|
import { Cron as le, Effect as k, Result as ue, Schema as A } from "effect";
|
|
18
18
|
import { createHash as de } from "node:crypto";
|
|
19
19
|
import { and as j, eq as M, gt as fe, queryFor as N } from "@voltro/database";
|
|
20
|
-
|
|
20
|
+
// src/service.ts
|
|
21
21
|
var pe = () => k.void, P = (n) => n instanceof e ? n : t("unavailable"), F = (e) => k.tryPromise({
|
|
22
22
|
try: e,
|
|
23
23
|
catch: P
|
|
@@ -945,5 +945,4 @@ var pe = () => k.void, P = (n) => n instanceof e ? n : t("unavailable"), F = (e)
|
|
|
945
945
|
}
|
|
946
946
|
};
|
|
947
947
|
};
|
|
948
|
-
//#endregion
|
|
949
948
|
export { pe as acceptLeaderboardSubmission, ge as dataStoreLeaderboards, he as resolveLeaderboardStoreOptions };
|
package/dist/subjectFences.js
CHANGED
|
@@ -3,7 +3,7 @@ import { canonicalLeaderboardJson as t } from "./json.js";
|
|
|
3
3
|
import { leaderboardSubjectsTable as n } from "./tables.entity.js";
|
|
4
4
|
import { createHash as r } from "node:crypto";
|
|
5
5
|
import { eq as i, queryFor as a } from "@voltro/database";
|
|
6
|
-
|
|
6
|
+
// src/subjectFences.ts
|
|
7
7
|
var o = (o) => {
|
|
8
8
|
let s = (e, n) => "lbo_" + r("sha256").update(t([e, n])).digest("hex").slice(0, 56), c = async (e, t) => {
|
|
9
9
|
let r = s(e, t);
|
|
@@ -40,5 +40,4 @@ var o = (o) => {
|
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
42
|
};
|
|
43
|
-
//#endregion
|
|
44
43
|
export { o as makeLeaderboardSubjectFences };
|
package/dist/tables.entity.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BOARDS_TABLE as e, PERIODS_TABLE as t, RECORDS_TABLE as n, SUBJECTS_TABLE as r, SUBMISSIONS_TABLE as i, TOURNAMENTS_TABLE as a, TOURNAMENT_ENTRIES_TABLE as o } from "./records.js";
|
|
2
2
|
import { bigint as s, boolean as c, id as l, integer as u, json as d, table as f, text as p, timestamp as m } from "@voltro/database";
|
|
3
|
-
|
|
3
|
+
// src/tables.entity.ts
|
|
4
4
|
var h = () => p().maxLength(256).externalId().sensitive("pii"), g = f(e, {
|
|
5
5
|
id: l({ prefix: "lbb" }),
|
|
6
6
|
tenantId: h(),
|
|
@@ -184,5 +184,4 @@ var h = () => p().maxLength(256).externalId().sensitive("pii"), g = f(e, {
|
|
|
184
184
|
O,
|
|
185
185
|
k
|
|
186
186
|
];
|
|
187
|
-
//#endregion
|
|
188
187
|
export { g as leaderboardBoardsTable, D as leaderboardBucketAssignmentsTable, O as leaderboardLeagueMembersTable, k as leaderboardLeagueRollsTable, v as leaderboardPeriodsTable, T as leaderboardRatingMatchesTable, C as leaderboardRatingPoolsTable, E as leaderboardRatingResultsTable, w as leaderboardRatingsTable, _ as leaderboardRecordsTable, b as leaderboardSubjectsTable, y as leaderboardSubmissionsTable, A as leaderboardTables, S as leaderboardTournamentEntriesTable, x as leaderboardTournamentsTable };
|
package/dist/testing.js
CHANGED
|
@@ -13,7 +13,7 @@ import { BracketAdmissionPort as h } from "./ports.js";
|
|
|
13
13
|
import { advanceDoubleElimination as g, advanceSingleElimination as _, roundRobin as v, seedDoubleElimination as y, seedSingleElimination as te, swissPairings as ne } from "./brackets.js";
|
|
14
14
|
import { Effect as b, Layer as x, Result as S } from "effect";
|
|
15
15
|
import { systemSubject as C } from "@voltro/protocol";
|
|
16
|
-
|
|
16
|
+
// src/testing.ts
|
|
17
17
|
var w = (e = "player") => ({
|
|
18
18
|
id: "record-" + e,
|
|
19
19
|
tenantId: "tenant",
|
|
@@ -364,5 +364,4 @@ var w = (e = "player") => ({
|
|
|
364
364
|
expected: "unavailable"
|
|
365
365
|
}
|
|
366
366
|
});
|
|
367
|
-
//#endregion
|
|
368
367
|
export { j as bracketAdmissionFakeLayer, M as bracketAdmissionPortFixture, ae as bracketAdmissionPortSystemFixture, X as bracketAdmissionSystemFakeLayer, K as bucketAssignSystemFixture, E as eloFixture, A as fakeBracketAdmissionService, N as fakeTournamentBracketService, I as fakeTournamentStageService, k as leaderboardBucketAssignFixture, T as leaderboardPureFixture, D as leaderboardRankQueryFixture, w as leaderboardRecordFixture, W as periodSummarySystemFixture, G as rankQuerySystemFixture, ie as ratingDecaySystemFixture, Y as ratingPlacementSystemFixture, J as ratingRateSystemFixture, O as ratingStrategiesFixture, U as tiebreakSystemFixture, P as tournamentBracketFakeLayer, F as tournamentBracketPortFixture, oe as tournamentBracketPortSystemFixture, Z as tournamentBracketSystemFakeLayer, re as tournamentPairingFixture, L as tournamentStageFakeLayer, R as tournamentStagePortFixture, se as tournamentStagePortSystemFixture, Q as tournamentStageSystemFakeLayer, q as validateSystemFixture };
|