@xcpcio/core 0.50.3 → 0.50.4
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/index.cjs +13 -1
- package/dist/index.mjs +13 -1
- package/package.json +2 -2
- package/src/resolver.ts +16 -1
package/dist/index.cjs
CHANGED
|
@@ -2320,9 +2320,19 @@ class Resolver extends Rank {
|
|
|
2320
2320
|
let beforeFreezeSubmissions = submissions;
|
|
2321
2321
|
let afterFreezeSubmissions = submissions;
|
|
2322
2322
|
{
|
|
2323
|
+
let unFreezeDurationTimestamp = contest.unFreezeDurationTimestamp;
|
|
2324
|
+
if (contest.options.submissionTimestampUnit === "millisecond") {
|
|
2325
|
+
unFreezeDurationTimestamp *= 1e3;
|
|
2326
|
+
}
|
|
2327
|
+
if (contest.options.submissionTimestampUnit === "microsecond") {
|
|
2328
|
+
unFreezeDurationTimestamp *= 1e6;
|
|
2329
|
+
}
|
|
2330
|
+
if (contest.options.submissionTimestampUnit === "nanosecond") {
|
|
2331
|
+
unFreezeDurationTimestamp *= 1e9;
|
|
2332
|
+
}
|
|
2323
2333
|
const ix = ___default.sortedIndex(
|
|
2324
2334
|
submissions.map((s) => s.timestamp),
|
|
2325
|
-
|
|
2335
|
+
unFreezeDurationTimestamp
|
|
2326
2336
|
);
|
|
2327
2337
|
beforeFreezeSubmissions = submissions.slice(0, ix + 1);
|
|
2328
2338
|
afterFreezeSubmissions = submissions.slice(ix, -1);
|
|
@@ -2336,6 +2346,8 @@ class Resolver extends Rank {
|
|
|
2336
2346
|
buildResolver() {
|
|
2337
2347
|
this.buildRank();
|
|
2338
2348
|
this.finalRank.buildRank();
|
|
2349
|
+
this.teams.forEach((t) => t.rank = t.originalRank);
|
|
2350
|
+
this.finalRank.teams.forEach((t) => t.rank = t.originalRank);
|
|
2339
2351
|
for (const s of this.afterFreezeSubmissions) {
|
|
2340
2352
|
const teamId = s.teamId;
|
|
2341
2353
|
const problemId = s.problemId;
|
package/dist/index.mjs
CHANGED
|
@@ -2287,9 +2287,19 @@ class Resolver extends Rank {
|
|
|
2287
2287
|
let beforeFreezeSubmissions = submissions;
|
|
2288
2288
|
let afterFreezeSubmissions = submissions;
|
|
2289
2289
|
{
|
|
2290
|
+
let unFreezeDurationTimestamp = contest.unFreezeDurationTimestamp;
|
|
2291
|
+
if (contest.options.submissionTimestampUnit === "millisecond") {
|
|
2292
|
+
unFreezeDurationTimestamp *= 1e3;
|
|
2293
|
+
}
|
|
2294
|
+
if (contest.options.submissionTimestampUnit === "microsecond") {
|
|
2295
|
+
unFreezeDurationTimestamp *= 1e6;
|
|
2296
|
+
}
|
|
2297
|
+
if (contest.options.submissionTimestampUnit === "nanosecond") {
|
|
2298
|
+
unFreezeDurationTimestamp *= 1e9;
|
|
2299
|
+
}
|
|
2290
2300
|
const ix = _.sortedIndex(
|
|
2291
2301
|
submissions.map((s) => s.timestamp),
|
|
2292
|
-
|
|
2302
|
+
unFreezeDurationTimestamp
|
|
2293
2303
|
);
|
|
2294
2304
|
beforeFreezeSubmissions = submissions.slice(0, ix + 1);
|
|
2295
2305
|
afterFreezeSubmissions = submissions.slice(ix, -1);
|
|
@@ -2303,6 +2313,8 @@ class Resolver extends Rank {
|
|
|
2303
2313
|
buildResolver() {
|
|
2304
2314
|
this.buildRank();
|
|
2305
2315
|
this.finalRank.buildRank();
|
|
2316
|
+
this.teams.forEach((t) => t.rank = t.originalRank);
|
|
2317
|
+
this.finalRank.teams.forEach((t) => t.rank = t.originalRank);
|
|
2306
2318
|
for (const s of this.afterFreezeSubmissions) {
|
|
2307
2319
|
const teamId = s.teamId;
|
|
2308
2320
|
const problemId = s.problemId;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xcpcio/core",
|
|
3
|
-
"version": "0.50.
|
|
3
|
+
"version": "0.50.4",
|
|
4
4
|
"description": "XCPCIO Core",
|
|
5
5
|
"author": "Dup4 <lyuzhi.pan@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"papaparse": "^5.4.1",
|
|
50
50
|
"string-width": "^6.1.0",
|
|
51
51
|
"xlsx-js-style": "^1.2.0",
|
|
52
|
-
"@xcpcio/types": "0.50.
|
|
52
|
+
"@xcpcio/types": "0.50.4"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@babel/types": "^7.22.4",
|
package/src/resolver.ts
CHANGED
|
@@ -23,9 +23,21 @@ export class Resolver extends Rank {
|
|
|
23
23
|
let afterFreezeSubmissions = submissions;
|
|
24
24
|
|
|
25
25
|
{
|
|
26
|
+
// TODO(Dup4): Remove this block
|
|
27
|
+
let unFreezeDurationTimestamp = contest.unFreezeDurationTimestamp;
|
|
28
|
+
if (contest.options.submissionTimestampUnit === "millisecond") {
|
|
29
|
+
unFreezeDurationTimestamp *= 1000;
|
|
30
|
+
}
|
|
31
|
+
if (contest.options.submissionTimestampUnit === "microsecond") {
|
|
32
|
+
unFreezeDurationTimestamp *= 1000000;
|
|
33
|
+
}
|
|
34
|
+
if (contest.options.submissionTimestampUnit === "nanosecond") {
|
|
35
|
+
unFreezeDurationTimestamp *= 1000000000;
|
|
36
|
+
}
|
|
37
|
+
|
|
26
38
|
const ix = _.sortedIndex(
|
|
27
39
|
submissions.map(s => s.timestamp),
|
|
28
|
-
|
|
40
|
+
unFreezeDurationTimestamp,
|
|
29
41
|
);
|
|
30
42
|
|
|
31
43
|
beforeFreezeSubmissions = submissions.slice(0, ix + 1);
|
|
@@ -45,6 +57,9 @@ export class Resolver extends Rank {
|
|
|
45
57
|
this.buildRank();
|
|
46
58
|
this.finalRank.buildRank();
|
|
47
59
|
|
|
60
|
+
this.teams.forEach(t => t.rank = t.originalRank);
|
|
61
|
+
this.finalRank.teams.forEach(t => t.rank = t.originalRank);
|
|
62
|
+
|
|
48
63
|
for (const s of this.afterFreezeSubmissions) {
|
|
49
64
|
const teamId = s.teamId;
|
|
50
65
|
const problemId = s.problemId;
|