lscontests 2.5.1 → 2.6.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/README.md +154 -66
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/server.js +19 -7
- package/dist/server.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ Options:
|
|
|
56
56
|
It performs as follows:
|
|
57
57
|
|
|
58
58
|
<!-- block_cli begin -->
|
|
59
|
-
(*The following content was automatically generated using [semantic-release](https://github.com/semantic-release/semantic-release) on Thu,
|
|
59
|
+
(*The following content was automatically generated using [semantic-release](https://github.com/semantic-release/semantic-release) on Thu, 04 Aug 2022 07:30:10 GMT*)
|
|
60
60
|
|
|
61
61
|
<details>
|
|
62
62
|
<summary> <code>> lsct -L en</code> </summary>
|
|
@@ -64,35 +64,84 @@ It performs as follows:
|
|
|
64
64
|
```text
|
|
65
65
|
There are no running contests on AtCoder,Codeforces,LeetCode,Luogu,NowCoder
|
|
66
66
|
|
|
67
|
-
There are
|
|
67
|
+
There are 11 contests on NowCoder,Codeforces,Luogu,AtCoder,LeetCode in the next 3 days
|
|
68
68
|
|
|
69
69
|
OJ: NowCoder
|
|
70
|
-
Contest name:
|
|
70
|
+
Contest name: 牛客 2022 年七夕节比赛
|
|
71
71
|
Rule: ICPC
|
|
72
|
-
Start time:
|
|
73
|
-
End time:
|
|
74
|
-
https://ac.nowcoder.com/acm/contest/
|
|
72
|
+
Start time: 8/4/2022, 11:00:00
|
|
73
|
+
End time: 8/4/2022, 14:00:00
|
|
74
|
+
https://ac.nowcoder.com/acm/contest/38105
|
|
75
|
+
|
|
76
|
+
OJ: Codeforces
|
|
77
|
+
Contest name: Educational Codeforces Round 133 (Rated for Div. 2)
|
|
78
|
+
Rule: ICPC
|
|
79
|
+
Start time: 8/4/2022, 14:35:00
|
|
80
|
+
End time: 8/4/2022, 16:35:00
|
|
81
|
+
https://codeforces.com/contests/1716
|
|
82
|
+
|
|
83
|
+
OJ: NowCoder
|
|
84
|
+
Contest name: 长沙学院 2022 暑假训练赛(一)
|
|
85
|
+
Rule: ICPC
|
|
86
|
+
Start time: 8/5/2022, 01:00:00
|
|
87
|
+
End time: 8/5/2022, 05:30:00
|
|
88
|
+
https://ac.nowcoder.com/acm/contest/38762
|
|
89
|
+
|
|
90
|
+
OJ: NowCoder
|
|
91
|
+
Contest name: "蔚来杯"2022 牛客暑期多校训练营 6
|
|
92
|
+
Rule: ICPC
|
|
93
|
+
Start time: 8/6/2022, 04:00:00
|
|
94
|
+
End time: 8/6/2022, 09:00:00
|
|
95
|
+
https://ac.nowcoder.com/acm/contest/33191
|
|
96
|
+
|
|
97
|
+
OJ: Luogu
|
|
98
|
+
Contest name: 【LGR-115】洛谷 8 月月赛 I & 终末祭 REOI Round 1
|
|
99
|
+
Rule: IOI
|
|
100
|
+
Start time: 8/6/2022, 06:00:00
|
|
101
|
+
End time: 8/6/2022, 10:00:00
|
|
102
|
+
https://www.luogu.com.cn/contest/76483
|
|
75
103
|
|
|
76
104
|
OJ: AtCoder
|
|
77
|
-
Contest name: Ⓐ AtCoder Beginner Contest
|
|
105
|
+
Contest name: Ⓐ LINE Verda Programming Contest(AtCoder Beginner Contest 263)
|
|
78
106
|
Rule: AtCoder
|
|
79
|
-
Start time:
|
|
80
|
-
End time:
|
|
81
|
-
https://atcoder.jp/contests/
|
|
107
|
+
Start time: 8/6/2022, 12:00:00
|
|
108
|
+
End time: 8/6/2022, 13:40:00
|
|
109
|
+
https://atcoder.jp/contests/abc263
|
|
82
110
|
|
|
83
111
|
OJ: LeetCode
|
|
84
|
-
Contest name:
|
|
112
|
+
Contest name: Biweekly Contest 84
|
|
85
113
|
Rule: AtCoder
|
|
86
|
-
Start time:
|
|
87
|
-
End time:
|
|
88
|
-
https://leetcode.com/contest/
|
|
114
|
+
Start time: 8/6/2022, 14:30:00
|
|
115
|
+
End time: 8/6/2022, 16:00:00
|
|
116
|
+
https://leetcode.com/contest/biweekly-contest-84
|
|
89
117
|
|
|
90
|
-
OJ:
|
|
91
|
-
Contest name:
|
|
118
|
+
OJ: Codeforces
|
|
119
|
+
Contest name: Codeforces Round #812 (Div. 2)
|
|
120
|
+
Rule: Codeforces
|
|
121
|
+
Start time: 8/6/2022, 14:35:00
|
|
122
|
+
End time: 8/6/2022, 16:35:00
|
|
123
|
+
https://codeforces.com/contests/1713
|
|
124
|
+
|
|
125
|
+
OJ: LeetCode
|
|
126
|
+
Contest name: Weekly Contest 305
|
|
92
127
|
Rule: AtCoder
|
|
93
|
-
Start time: 7/
|
|
94
|
-
End time: 7/
|
|
95
|
-
https://
|
|
128
|
+
Start time: 8/7/2022, 02:30:00
|
|
129
|
+
End time: 8/7/2022, 04:00:00
|
|
130
|
+
https://leetcode.com/contest/weekly-contest-305
|
|
131
|
+
|
|
132
|
+
OJ: NowCoder
|
|
133
|
+
Contest name: “ 科林明伦杯 & rdquo; 哈尔滨理工大学暑假训练赛
|
|
134
|
+
Rule: ICPC
|
|
135
|
+
Start time: 8/7/2022, 05:00:00
|
|
136
|
+
End time: 8/7/2022, 09:00:00
|
|
137
|
+
https://ac.nowcoder.com/acm/contest/37895
|
|
138
|
+
|
|
139
|
+
OJ: Luogu
|
|
140
|
+
Contest name: 【LGR-116】洛谷 8 月入门赛 & AyaOI Round 1
|
|
141
|
+
Rule: ICPC
|
|
142
|
+
Start time: 8/7/2022, 06:00:00
|
|
143
|
+
End time: 8/7/2022, 09:00:00
|
|
144
|
+
https://www.luogu.com.cn/contest/76791
|
|
96
145
|
```
|
|
97
146
|
|
|
98
147
|
</details>
|
|
@@ -103,28 +152,35 @@ https://atcoder.jp/contests/ahc012
|
|
|
103
152
|
```text
|
|
104
153
|
There are no running contests on AtCoder,Codeforces
|
|
105
154
|
|
|
106
|
-
There are
|
|
155
|
+
There are 4 contests on Codeforces,AtCoder in the next 7 days
|
|
107
156
|
|
|
108
|
-
OJ:
|
|
109
|
-
Contest name:
|
|
110
|
-
Rule:
|
|
111
|
-
Start time:
|
|
112
|
-
End time:
|
|
113
|
-
https://
|
|
157
|
+
OJ: Codeforces
|
|
158
|
+
Contest name: Educational Codeforces Round 133 (Rated for Div. 2)
|
|
159
|
+
Rule: ICPC
|
|
160
|
+
Start time: 8/4/2022, 14:35:00
|
|
161
|
+
End time: 8/4/2022, 16:35:00
|
|
162
|
+
https://codeforces.com/contests/1716
|
|
114
163
|
|
|
115
164
|
OJ: AtCoder
|
|
116
|
-
Contest name:
|
|
165
|
+
Contest name: Ⓐ LINE Verda Programming Contest(AtCoder Beginner Contest 263)
|
|
117
166
|
Rule: AtCoder
|
|
118
|
-
Start time:
|
|
119
|
-
End time:
|
|
120
|
-
https://atcoder.jp/contests/
|
|
167
|
+
Start time: 8/6/2022, 12:00:00
|
|
168
|
+
End time: 8/6/2022, 13:40:00
|
|
169
|
+
https://atcoder.jp/contests/abc263
|
|
121
170
|
|
|
122
171
|
OJ: Codeforces
|
|
123
|
-
Contest name: Codeforces Round #
|
|
172
|
+
Contest name: Codeforces Round #812 (Div. 2)
|
|
124
173
|
Rule: Codeforces
|
|
125
|
-
Start time:
|
|
126
|
-
End time:
|
|
127
|
-
https://codeforces.com/contests/
|
|
174
|
+
Start time: 8/6/2022, 14:35:00
|
|
175
|
+
End time: 8/6/2022, 16:35:00
|
|
176
|
+
https://codeforces.com/contests/1713
|
|
177
|
+
|
|
178
|
+
OJ: AtCoder
|
|
179
|
+
Contest name: Ⓗ RECRUIT Nihonbashi Half Marathon 2022 Summer(AHC013)
|
|
180
|
+
Rule: AtCoder
|
|
181
|
+
Start time: 8/9/2022, 12:00:00
|
|
182
|
+
End time: 8/16/2022, 12:00:00
|
|
183
|
+
https://atcoder.jp/contests/ahc013
|
|
128
184
|
```
|
|
129
185
|
|
|
130
186
|
</details>
|
|
@@ -138,67 +194,99 @@ https://codeforces.com/contests/1699
|
|
|
138
194
|
"upcoming": [
|
|
139
195
|
{
|
|
140
196
|
"ojName": "AtCoder",
|
|
141
|
-
"name": "Ⓐ AtCoder Beginner Contest
|
|
197
|
+
"name": "Ⓐ LINE Verda Programming Contest(AtCoder Beginner Contest 263)",
|
|
142
198
|
"rule": "AtCoder",
|
|
143
|
-
"startTime": "2022-
|
|
144
|
-
"endTime": "2022-
|
|
145
|
-
"url": "https://atcoder.jp/contests/
|
|
199
|
+
"startTime": "2022-08-06T12:00:00.000Z",
|
|
200
|
+
"endTime": "2022-08-06T13:40:00.000Z",
|
|
201
|
+
"url": "https://atcoder.jp/contests/abc263"
|
|
146
202
|
},
|
|
147
203
|
{
|
|
148
204
|
"ojName": "AtCoder",
|
|
149
|
-
"name": "Ⓗ
|
|
205
|
+
"name": "Ⓗ RECRUIT Nihonbashi Half Marathon 2022 Summer(AHC013)",
|
|
150
206
|
"rule": "AtCoder",
|
|
151
|
-
"startTime": "2022-
|
|
152
|
-
"endTime": "2022-
|
|
153
|
-
"url": "https://atcoder.jp/contests/
|
|
207
|
+
"startTime": "2022-08-09T12:00:00.000Z",
|
|
208
|
+
"endTime": "2022-08-16T12:00:00.000Z",
|
|
209
|
+
"url": "https://atcoder.jp/contests/ahc013"
|
|
154
210
|
},
|
|
155
211
|
{
|
|
156
212
|
"ojName": "AtCoder",
|
|
157
|
-
"name": "Ⓐ AtCoder Beginner Contest
|
|
213
|
+
"name": "Ⓐ freee Programming Contest 2022(AtCoder Beginner Contest 264)",
|
|
158
214
|
"rule": "AtCoder",
|
|
159
|
-
"startTime": "2022-
|
|
160
|
-
"endTime": "2022-
|
|
161
|
-
"url": "https://atcoder.jp/contests/
|
|
215
|
+
"startTime": "2022-08-13T12:00:00.000Z",
|
|
216
|
+
"endTime": "2022-08-13T13:40:00.000Z",
|
|
217
|
+
"url": "https://atcoder.jp/contests/abc264"
|
|
162
218
|
},
|
|
163
219
|
{
|
|
164
220
|
"ojName": "AtCoder",
|
|
165
|
-
"name": "Ⓐ AtCoder
|
|
221
|
+
"name": "Ⓐ AtCoder Grand Contest 058",
|
|
166
222
|
"rule": "AtCoder",
|
|
167
|
-
"startTime": "2022-
|
|
168
|
-
"endTime": "2022-
|
|
169
|
-
"url": "https://atcoder.jp/contests/
|
|
223
|
+
"startTime": "2022-08-14T12:00:00.000Z",
|
|
224
|
+
"endTime": "2022-08-14T15:00:00.000Z",
|
|
225
|
+
"url": "https://atcoder.jp/contests/agc058"
|
|
170
226
|
},
|
|
171
227
|
{
|
|
172
228
|
"ojName": "AtCoder",
|
|
173
|
-
"name": "Ⓐ AtCoder Beginner Contest
|
|
229
|
+
"name": "Ⓐ AtCoder Beginner Contest 265",
|
|
174
230
|
"rule": "AtCoder",
|
|
175
|
-
"startTime": "2022-
|
|
176
|
-
"endTime": "2022-
|
|
177
|
-
"url": "https://atcoder.jp/contests/
|
|
231
|
+
"startTime": "2022-08-20T12:00:00.000Z",
|
|
232
|
+
"endTime": "2022-08-20T13:40:00.000Z",
|
|
233
|
+
"url": "https://atcoder.jp/contests/abc265"
|
|
178
234
|
},
|
|
179
235
|
{
|
|
180
236
|
"ojName": "AtCoder",
|
|
181
|
-
"name": "Ⓐ AtCoder
|
|
237
|
+
"name": "Ⓐ AtCoder Beginner Contest 266",
|
|
182
238
|
"rule": "AtCoder",
|
|
183
|
-
"startTime": "2022-
|
|
184
|
-
"endTime": "2022-
|
|
185
|
-
"url": "https://atcoder.jp/contests/
|
|
239
|
+
"startTime": "2022-08-27T12:00:00.000Z",
|
|
240
|
+
"endTime": "2022-08-27T13:40:00.000Z",
|
|
241
|
+
"url": "https://atcoder.jp/contests/abc266"
|
|
186
242
|
},
|
|
187
243
|
{
|
|
188
244
|
"ojName": "AtCoder",
|
|
189
|
-
"name": "
|
|
245
|
+
"name": "Ⓗ 9th Asprova Programming Contest",
|
|
190
246
|
"rule": "AtCoder",
|
|
191
|
-
"startTime": "2022-08-
|
|
192
|
-
"endTime": "2022-
|
|
193
|
-
"url": "https://atcoder.jp/contests/
|
|
247
|
+
"startTime": "2022-08-28T01:00:00.000Z",
|
|
248
|
+
"endTime": "2022-09-04T11:00:00.000Z",
|
|
249
|
+
"url": "https://atcoder.jp/contests/asprocon9"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"ojName": "Codeforces",
|
|
253
|
+
"name": "Educational Codeforces Round 133 (Rated for Div. 2)",
|
|
254
|
+
"rule": "ICPC",
|
|
255
|
+
"startTime": "2022-08-04T14:35:00.000Z",
|
|
256
|
+
"endTime": "2022-08-04T16:35:00.000Z",
|
|
257
|
+
"url": "https://codeforces.com/contests/1716"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"ojName": "Codeforces",
|
|
261
|
+
"name": "Codeforces Round #812 (Div. 2)",
|
|
262
|
+
"rule": "Codeforces",
|
|
263
|
+
"startTime": "2022-08-06T14:35:00.000Z",
|
|
264
|
+
"endTime": "2022-08-06T16:35:00.000Z",
|
|
265
|
+
"url": "https://codeforces.com/contests/1713"
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"ojName": "Codeforces",
|
|
269
|
+
"name": "Codeforces Round (Div. 2)",
|
|
270
|
+
"rule": "Codeforces",
|
|
271
|
+
"startTime": "2022-08-13T14:35:00.000Z",
|
|
272
|
+
"endTime": "2022-08-13T16:35:00.000Z",
|
|
273
|
+
"url": "https://codeforces.com/contests/1712"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"ojName": "Codeforces",
|
|
277
|
+
"name": "Codeforces Round (Div. 2)",
|
|
278
|
+
"rule": "Codeforces",
|
|
279
|
+
"startTime": "2022-08-20T14:35:00.000Z",
|
|
280
|
+
"endTime": "2022-08-20T16:35:00.000Z",
|
|
281
|
+
"url": "https://codeforces.com/contests/1715"
|
|
194
282
|
},
|
|
195
283
|
{
|
|
196
284
|
"ojName": "Codeforces",
|
|
197
|
-
"name": "Codeforces Round
|
|
285
|
+
"name": "Codeforces Round (Div. 2)",
|
|
198
286
|
"rule": "Codeforces",
|
|
199
|
-
"startTime": "2022-
|
|
200
|
-
"endTime": "2022-
|
|
201
|
-
"url": "https://codeforces.com/contests/
|
|
287
|
+
"startTime": "2022-09-02T14:35:00.000Z",
|
|
288
|
+
"endTime": "2022-09-02T16:35:00.000Z",
|
|
289
|
+
"url": "https://codeforces.com/contests/1717"
|
|
202
290
|
}
|
|
203
291
|
]
|
|
204
292
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export interface LscontestsConfig {
|
|
|
9
9
|
silent?: boolean;
|
|
10
10
|
}
|
|
11
11
|
export default class Lscontests {
|
|
12
|
-
private config;
|
|
12
|
+
private readonly config;
|
|
13
13
|
private logger;
|
|
14
14
|
constructor(config?: LscontestsConfig, log_level?: string, log_transport?: winston.transports.ConsoleTransportInstance);
|
|
15
15
|
getContests(): Promise<{
|
package/dist/index.js
CHANGED
|
@@ -54,11 +54,13 @@ class Lscontests {
|
|
|
54
54
|
getContests() {
|
|
55
55
|
return __awaiter(this, void 0, void 0, function* () {
|
|
56
56
|
const contests = (yield Promise.all(this.config.abbrList.map((abbr) => __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
const startTime = new Date();
|
|
57
58
|
try {
|
|
58
59
|
const oj = oj_1.alloj[abbr];
|
|
59
60
|
this.logger.info(`Start getting contests information about ${oj.name}`);
|
|
60
61
|
const res = (yield oj.get()).sort((a, b) => a.startTime.getTime() - b.startTime.getTime());
|
|
61
|
-
|
|
62
|
+
const duration = (new Date().getTime() - startTime.getTime()) / 1000;
|
|
63
|
+
this.logger.info(`Successfully get contests information about ${oj.name} in ${duration} seconds`);
|
|
62
64
|
return res;
|
|
63
65
|
}
|
|
64
66
|
catch (e) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAuB;AACvB,kDAA0B;AAC1B,sDAA8B;AAE9B,iCAAiC;AACjC,qCAAuC;AAYvC,MAAqB,UAAU;IAY3B,YAAY,MAAyB,EAAE,SAAS,GAAG,MAAM,EAAE,aAAa,GAAG,iBAAO,CAAC,UAAU,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -22,8 +22,8 @@ const pangu_1 = __importDefault(require("pangu"));
|
|
|
22
22
|
const crypto_1 = require("crypto");
|
|
23
23
|
const commander_1 = require("commander");
|
|
24
24
|
const package_json_1 = require("../package.json");
|
|
25
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
26
25
|
const fs_1 = require("fs");
|
|
26
|
+
const await_lock_1 = __importDefault(require("await-lock"));
|
|
27
27
|
const app = (0, express_1.default)();
|
|
28
28
|
function assertType(obj) {
|
|
29
29
|
}
|
|
@@ -77,6 +77,7 @@ const contestsCache = {
|
|
|
77
77
|
contests: [],
|
|
78
78
|
lastUpdate: 0
|
|
79
79
|
};
|
|
80
|
+
const lock = new await_lock_1.default();
|
|
80
81
|
function icsPostProcess(value) {
|
|
81
82
|
return value
|
|
82
83
|
.replace("X-PUBLISHED-TTL:PT1H", "X-PUBLISHED-TTL:PT1H\r\nREFRESH-INTERVAL:PT1H")
|
|
@@ -93,14 +94,25 @@ function icsPostProcess(value) {
|
|
|
93
94
|
"END:STANDARD\r\n" +
|
|
94
95
|
"END:VTIMEZONE");
|
|
95
96
|
}
|
|
96
|
-
function
|
|
97
|
+
function checkCache() {
|
|
97
98
|
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
contestsCache.
|
|
101
|
-
|
|
102
|
-
|
|
99
|
+
yield lock.acquireAsync();
|
|
100
|
+
try {
|
|
101
|
+
if (contestsCache.lastUpdate < Date.now() - 1000 * 60 * 5) {
|
|
102
|
+
const c = yield new _1.default({ days: -1 }).getContests();
|
|
103
|
+
contestsCache.contests = c.running.concat(...c.upcoming);
|
|
104
|
+
contestsCache.contests = contestsCache.contests.filter(c => c.endTime.getTime() - c.startTime.getTime() < 1000 * 60 * 60 * 24 * 2); // ignore too long contests
|
|
105
|
+
contestsCache.lastUpdate = Date.now();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
lock.release();
|
|
103
110
|
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
function getIcs(lang, ojs) {
|
|
114
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
115
|
+
yield checkCache();
|
|
104
116
|
const contests = contestsCache.contests.filter(c => ojs.some(oj => c.ojName === oj_1.alloj[oj].name));
|
|
105
117
|
const langDict = yield (0, locale_1.getLangDict)(lang);
|
|
106
118
|
const events = contests.map((c) => {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,sDAA8B;AAC9B,yCAAwC;AACxC,iCAAiC;AACjC,qCAAuC;AACvC,6BAA6E;AAC7E,kDAA0B;AAC1B,mCAAoC;AACpC,yCAAoC;AACpC,kDAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lscontests",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.1",
|
|
4
4
|
"description": "A tool to get information about the contests on each OJ",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"start-s": "tsx src/server.ts"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
+
"await-lock": "^2.2.2",
|
|
38
39
|
"axios": "^0.27.2",
|
|
39
40
|
"axios-retry": "^3.2.5",
|
|
40
41
|
"cheerio": "^1.0.0-rc.11",
|
|
@@ -49,13 +50,13 @@
|
|
|
49
50
|
"@types/express": "^4.17.13",
|
|
50
51
|
"@types/lodash": "^4.14.182",
|
|
51
52
|
"@types/node": "^18.0.0",
|
|
52
|
-
"@types/pangu": "^
|
|
53
|
+
"@types/pangu": "^4.0.0",
|
|
53
54
|
"@typescript-eslint/eslint-plugin": "^5.27.1",
|
|
54
55
|
"@typescript-eslint/parser": "^5.27.1",
|
|
55
56
|
"cpy-cli": "^4.1.0",
|
|
56
57
|
"cz-conventional-changelog": "3.3.0",
|
|
57
58
|
"eslint": "^8.17.0",
|
|
58
|
-
"markdownlint-cli": "^0.
|
|
59
|
+
"markdownlint-cli": "^0.32.0",
|
|
59
60
|
"rimraf": "^3.0.2",
|
|
60
61
|
"tsx": "^3.4.2",
|
|
61
62
|
"typedoc": "^0.22.17",
|