lscontests 1.8.8 → 1.8.11
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 +215 -52
- package/dist/index.js +16 -5
- package/dist/index.js.map +1 -1
- package/dist/locale/en.json +1 -1
- package/dist/locale/zh-CN.json +1 -1
- package/dist/locale/zh-TW.json +1 -1
- package/package.json +17 -12
- package/dist/tsconfig.json +0 -23
package/README.md
CHANGED
@@ -1,23 +1,38 @@
|
|
1
1
|
# lscontests
|
2
2
|
|
3
|
-

|
4
|
-

|
5
|
-
](https://github.com/StableAgOH/lscontests)
|
4
|
+
[](https://github.com/StableAgOH/lscontests)
|
5
|
+
[](https://github.com/StableAgOH/lscontests)
|
6
6
|
[](https://github.com/semantic-release/semantic-release)
|
7
7
|
|
8
|
-

|
9
|
-

|
8
|
+
[](https://www.npmjs.com/package/lscontests)
|
9
|
+
[](https://www.npmjs.com/package/lscontests)
|
10
10
|
|
11
11
|
A tool to get information about the contests on each OJ.
|
12
12
|
|
13
|
+
## Installation
|
14
|
+
|
15
|
+
### Only use CLI
|
16
|
+
|
17
|
+
For npm: `npm install -g lscontests`
|
18
|
+
|
19
|
+
For yarn: `yarn global add lscontests`
|
20
|
+
|
21
|
+
### Add to your package
|
22
|
+
|
23
|
+
For npm: `npm install lscontests`
|
24
|
+
|
25
|
+
For yarn: `yarn add lscontests`
|
26
|
+
|
13
27
|
## Usage
|
14
28
|
|
15
29
|
### CLI
|
16
30
|
|
17
31
|
You can use cli to get a list of information about upcoming contests easily.
|
18
32
|
|
33
|
+
<!-- block_help begin -->
|
19
34
|
```text
|
20
|
-
lsct [options]
|
35
|
+
Usage: lsct [options]
|
21
36
|
|
22
37
|
Options:
|
23
38
|
-V, --version output the version number
|
@@ -25,107 +40,255 @@ Options:
|
|
25
40
|
-l, --list list all supported OJ and it's abbreviation
|
26
41
|
-o, --oj <ojs...> OJs to display (choices: "at", "cf", "lg", "nc")
|
27
42
|
-r, --raw print raw contest list
|
28
|
-
-L, --language <lang> set output language (choices: "en", "zh-CN", "zh-TW",
|
43
|
+
-L, --language <lang> set output language (choices: "en", "zh-CN", "zh-TW",
|
44
|
+
default: "zh-CN")
|
29
45
|
--no-sort do not sort by contests start time, but by OJ order
|
30
46
|
-h, --help display help for command
|
31
47
|
```
|
48
|
+
<!-- block_help end -->
|
32
49
|
|
33
50
|
It performs as follows:
|
34
51
|
|
52
|
+
<!-- block_cli begin -->
|
53
|
+
(*The following content was automatically generated in 5/13/2022, 11:23:42*)
|
54
|
+
|
55
|
+
<details>
|
56
|
+
<summary> <code>> lsct </code> </summary>
|
57
|
+
|
58
|
+
```text
|
59
|
+
最近的 3 天内在 AtCoder,Codeforces,Luogu,NowCoder 上有 12 场比赛
|
60
|
+
|
61
|
+
比赛平台: NowCoder
|
62
|
+
比赛名称: 牛客竞赛博弈专题班Sprague-Grundy函数(SG函数、图游戏、Nim和)
|
63
|
+
赛制: ICPC
|
64
|
+
开始时间: 5/13/2022, 04:00:00
|
65
|
+
结束时间: 5/21/2022, 13:00:00
|
66
|
+
https://ac.nowcoder.com/acm/contest/34655
|
67
|
+
|
68
|
+
比赛平台: NowCoder
|
69
|
+
比赛名称: 2022图论班第一章图匹配例题与习题
|
70
|
+
赛制: ICPC
|
71
|
+
开始时间: 5/13/2022, 06:00:00
|
72
|
+
结束时间: 5/30/2022, 08:00:00
|
73
|
+
https://ac.nowcoder.com/acm/contest/34649
|
74
|
+
|
75
|
+
比赛平台: NowCoder
|
76
|
+
比赛名称: 牛客挑战赛60
|
77
|
+
赛制: ICPC
|
78
|
+
开始时间: 5/13/2022, 11:00:00
|
79
|
+
结束时间: 5/13/2022, 14:00:00
|
80
|
+
https://ac.nowcoder.com/acm/contest/11200
|
81
|
+
|
82
|
+
比赛平台: Codeforces
|
83
|
+
比赛名称: Educational Codeforces Round 128 (Rated for Div. 2)
|
84
|
+
赛制: ICPC
|
85
|
+
开始时间: 5/13/2022, 14:35:00
|
86
|
+
结束时间: 5/13/2022, 16:35:00
|
87
|
+
https://codeforces.com/contests/1680
|
88
|
+
|
89
|
+
比赛平台: NowCoder
|
90
|
+
比赛名称: 第二届天元编程邀请赛(提高组)
|
91
|
+
赛制: undefined
|
92
|
+
开始时间: 5/14/2022, 04:30:00
|
93
|
+
结束时间: 5/14/2022, 09:00:00
|
94
|
+
https://ac.nowcoder.com/acm/contest/33335
|
95
|
+
|
96
|
+
比赛平台: NowCoder
|
97
|
+
比赛名称: 第二届天元编程邀请赛(普及组)
|
98
|
+
赛制: undefined
|
99
|
+
开始时间: 5/14/2022, 04:30:00
|
100
|
+
结束时间: 5/14/2022, 08:00:00
|
101
|
+
https://ac.nowcoder.com/acm/contest/33341
|
102
|
+
|
103
|
+
比赛平台: NowCoder
|
104
|
+
比赛名称: 第十八届西南科技大学ACM程序设计竞赛(同步赛)
|
105
|
+
赛制: ICPC
|
106
|
+
开始时间: 5/14/2022, 05:00:00
|
107
|
+
结束时间: 5/14/2022, 10:00:00
|
108
|
+
https://ac.nowcoder.com/acm/contest/33540
|
109
|
+
|
110
|
+
比赛平台: Luogu
|
111
|
+
比赛名称: 【LGR-109】洛谷 5 月月赛 II & Windy Round 6
|
112
|
+
赛制: IOI
|
113
|
+
开始时间: 5/14/2022, 06:00:00
|
114
|
+
结束时间: 5/14/2022, 10:00:00
|
115
|
+
https://www.luogu.com.cn/contest/68326
|
116
|
+
|
117
|
+
比赛平台: Codeforces
|
118
|
+
比赛名称: Codeforces Round #791 (Div. 2)
|
119
|
+
赛制: Codeforces
|
120
|
+
开始时间: 5/14/2022, 09:35:00
|
121
|
+
结束时间: 5/14/2022, 11:35:00
|
122
|
+
https://codeforces.com/contests/1679
|
123
|
+
|
124
|
+
比赛平台: AtCoder
|
125
|
+
比赛名称: Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)
|
126
|
+
赛制: AtCoder
|
127
|
+
开始时间: 5/14/2022, 12:00:00
|
128
|
+
结束时间: 5/14/2022, 12:01:40
|
129
|
+
https://atcoder.jp/contests/abc251
|
130
|
+
|
131
|
+
比赛平台: Luogu
|
132
|
+
比赛名称: 「WHOI」Round 1
|
133
|
+
赛制: IOI
|
134
|
+
开始时间: 5/15/2022, 06:00:00
|
135
|
+
结束时间: 5/15/2022, 10:00:00
|
136
|
+
https://www.luogu.com.cn/contest/67377
|
137
|
+
|
138
|
+
比赛平台: AtCoder
|
139
|
+
比赛名称: Ⓐ AtCoder Regular Contest 140
|
140
|
+
赛制: AtCoder
|
141
|
+
开始时间: 5/15/2022, 12:00:00
|
142
|
+
结束时间: 5/15/2022, 12:02:00
|
143
|
+
https://atcoder.jp/contests/arc140
|
144
|
+
```
|
145
|
+
|
146
|
+
</details>
|
147
|
+
|
35
148
|
<details>
|
36
|
-
<summary> <code>> lsct -o at cf</code> </summary>
|
149
|
+
<summary> <code>> lsct -o at cf -d 7</code> </summary>
|
37
150
|
|
38
151
|
```text
|
39
|
-
|
152
|
+
最近的 7 天内在 AtCoder,Codeforces 上有 4 场比赛
|
40
153
|
|
41
154
|
比赛平台: Codeforces
|
42
155
|
比赛名称: Educational Codeforces Round 128 (Rated for Div. 2)
|
43
156
|
赛制: ICPC
|
44
|
-
开始时间:
|
45
|
-
结束时间:
|
157
|
+
开始时间: 5/13/2022, 14:35:00
|
158
|
+
结束时间: 5/13/2022, 16:35:00
|
46
159
|
https://codeforces.com/contests/1680
|
47
160
|
|
48
161
|
比赛平台: Codeforces
|
49
162
|
比赛名称: Codeforces Round #791 (Div. 2)
|
50
163
|
赛制: Codeforces
|
51
|
-
开始时间:
|
52
|
-
结束时间:
|
164
|
+
开始时间: 5/14/2022, 09:35:00
|
165
|
+
结束时间: 5/14/2022, 11:35:00
|
53
166
|
https://codeforces.com/contests/1679
|
54
167
|
|
55
168
|
比赛平台: AtCoder
|
56
169
|
比赛名称: Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)
|
57
170
|
赛制: AtCoder
|
58
|
-
开始时间:
|
59
|
-
结束时间:
|
171
|
+
开始时间: 5/14/2022, 12:00:00
|
172
|
+
结束时间: 5/14/2022, 12:01:40
|
60
173
|
https://atcoder.jp/contests/abc251
|
174
|
+
|
175
|
+
比赛平台: AtCoder
|
176
|
+
比赛名称: Ⓐ AtCoder Regular Contest 140
|
177
|
+
赛制: AtCoder
|
178
|
+
开始时间: 5/15/2022, 12:00:00
|
179
|
+
结束时间: 5/15/2022, 12:02:00
|
180
|
+
https://atcoder.jp/contests/arc140
|
61
181
|
```
|
62
182
|
|
63
183
|
</details>
|
64
184
|
|
65
185
|
<details>
|
66
|
-
<summary> <code>> lsct -o lg -d 7 -L en</code> </summary>
|
186
|
+
<summary> <code>> lsct -o lg nc -d 7 -L en</code> </summary>
|
67
187
|
|
68
188
|
```text
|
69
|
-
|
189
|
+
8 contests on Luogu,NowCoder in the last 7 days
|
190
|
+
|
191
|
+
OJ: NowCoder
|
192
|
+
Contest name: 牛客竞赛博弈专题班Sprague-Grundy函数(SG函数、图游戏、Nim和)
|
193
|
+
Rule: ICPC
|
194
|
+
Start time: 5/13/2022, 04:00:00
|
195
|
+
End time: 5/21/2022, 13:00:00
|
196
|
+
https://ac.nowcoder.com/acm/contest/34655
|
197
|
+
|
198
|
+
OJ: NowCoder
|
199
|
+
Contest name: 2022图论班第一章图匹配例题与习题
|
200
|
+
Rule: ICPC
|
201
|
+
Start time: 5/13/2022, 06:00:00
|
202
|
+
End time: 5/30/2022, 08:00:00
|
203
|
+
https://ac.nowcoder.com/acm/contest/34649
|
204
|
+
|
205
|
+
OJ: NowCoder
|
206
|
+
Contest name: 牛客挑战赛60
|
207
|
+
Rule: ICPC
|
208
|
+
Start time: 5/13/2022, 11:00:00
|
209
|
+
End time: 5/13/2022, 14:00:00
|
210
|
+
https://ac.nowcoder.com/acm/contest/11200
|
211
|
+
|
212
|
+
OJ: NowCoder
|
213
|
+
Contest name: 第二届天元编程邀请赛(提高组)
|
214
|
+
Rule: undefined
|
215
|
+
Start time: 5/14/2022, 04:30:00
|
216
|
+
End time: 5/14/2022, 09:00:00
|
217
|
+
https://ac.nowcoder.com/acm/contest/33335
|
218
|
+
|
219
|
+
OJ: NowCoder
|
220
|
+
Contest name: 第二届天元编程邀请赛(普及组)
|
221
|
+
Rule: undefined
|
222
|
+
Start time: 5/14/2022, 04:30:00
|
223
|
+
End time: 5/14/2022, 08:00:00
|
224
|
+
https://ac.nowcoder.com/acm/contest/33341
|
225
|
+
|
226
|
+
OJ: NowCoder
|
227
|
+
Contest name: 第十八届西南科技大学ACM程序设计竞赛(同步赛)
|
228
|
+
Rule: ICPC
|
229
|
+
Start time: 5/14/2022, 05:00:00
|
230
|
+
End time: 5/14/2022, 10:00:00
|
231
|
+
https://ac.nowcoder.com/acm/contest/33540
|
70
232
|
|
71
233
|
OJ: Luogu
|
72
234
|
Contest name: 【LGR-109】洛谷 5 月月赛 II & Windy Round 6
|
73
235
|
Rule: IOI
|
74
|
-
Start time:
|
75
|
-
End time:
|
236
|
+
Start time: 5/14/2022, 06:00:00
|
237
|
+
End time: 5/14/2022, 10:00:00
|
76
238
|
https://www.luogu.com.cn/contest/68326
|
77
239
|
|
78
240
|
OJ: Luogu
|
79
241
|
Contest name: 「WHOI」Round 1
|
80
242
|
Rule: IOI
|
81
|
-
Start time:
|
82
|
-
End time:
|
243
|
+
Start time: 5/15/2022, 06:00:00
|
244
|
+
End time: 5/15/2022, 10:00:00
|
83
245
|
https://www.luogu.com.cn/contest/67377
|
84
246
|
```
|
85
247
|
|
86
248
|
</details>
|
87
249
|
|
88
250
|
<details>
|
89
|
-
<summary> <code>> lsct -
|
251
|
+
<summary> <code>> lsct -o at cf -d 7 -r --no-sort</code> </summary>
|
90
252
|
|
91
|
-
```
|
253
|
+
```json
|
92
254
|
[
|
93
255
|
{
|
94
|
-
ojName:
|
95
|
-
name:
|
96
|
-
rule:
|
97
|
-
startTime: 2022-05-
|
98
|
-
endTime: 2022-05-
|
99
|
-
url:
|
256
|
+
"ojName": "AtCoder",
|
257
|
+
"name": "Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)",
|
258
|
+
"rule": "AtCoder",
|
259
|
+
"startTime": "2022-05-14T12:00:00.000Z",
|
260
|
+
"endTime": "2022-05-14T12:01:40.000Z",
|
261
|
+
"url": "https://atcoder.jp/contests/abc251"
|
100
262
|
},
|
101
263
|
{
|
102
|
-
ojName:
|
103
|
-
name:
|
104
|
-
rule:
|
105
|
-
startTime: 2022-05-
|
106
|
-
endTime: 2022-05-
|
107
|
-
url:
|
264
|
+
"ojName": "AtCoder",
|
265
|
+
"name": "Ⓐ AtCoder Regular Contest 140",
|
266
|
+
"rule": "AtCoder",
|
267
|
+
"startTime": "2022-05-15T12:00:00.000Z",
|
268
|
+
"endTime": "2022-05-15T12:02:00.000Z",
|
269
|
+
"url": "https://atcoder.jp/contests/arc140"
|
108
270
|
},
|
109
271
|
{
|
110
|
-
ojName:
|
111
|
-
name:
|
112
|
-
rule:
|
113
|
-
startTime: 2022-05-
|
114
|
-
endTime: 2022-05-
|
115
|
-
url:
|
272
|
+
"ojName": "Codeforces",
|
273
|
+
"name": "Codeforces Round #791 (Div. 2)",
|
274
|
+
"rule": "Codeforces",
|
275
|
+
"startTime": "2022-05-14T09:35:00.000Z",
|
276
|
+
"endTime": "2022-05-14T11:35:00.000Z",
|
277
|
+
"url": "https://codeforces.com/contests/1679"
|
116
278
|
},
|
117
279
|
{
|
118
|
-
ojName:
|
119
|
-
name:
|
120
|
-
rule:
|
121
|
-
startTime: 2022-05-
|
122
|
-
endTime: 2022-05-
|
123
|
-
url:
|
280
|
+
"ojName": "Codeforces",
|
281
|
+
"name": "Educational Codeforces Round 128 (Rated for Div. 2)",
|
282
|
+
"rule": "ICPC",
|
283
|
+
"startTime": "2022-05-13T14:35:00.000Z",
|
284
|
+
"endTime": "2022-05-13T16:35:00.000Z",
|
285
|
+
"url": "https://codeforces.com/contests/1680"
|
124
286
|
}
|
125
287
|
]
|
126
288
|
```
|
127
289
|
|
128
290
|
</details>
|
291
|
+
<!-- block_cli end -->
|
129
292
|
|
130
293
|
### API
|
131
294
|
|
@@ -179,13 +342,13 @@ main();
|
|
179
342
|
This code gives the following results:
|
180
343
|
|
181
344
|
```text
|
182
|
-
1 contests in the last 1 days
|
345
|
+
1 contests on Codeforces,testOJ in the last 1 days
|
183
346
|
|
184
347
|
OJ: testOJ
|
185
348
|
Contest name: testContest
|
186
349
|
Rule: ICPC
|
187
|
-
Start time: 2022/5/
|
188
|
-
End time: 2022/5/
|
350
|
+
Start time: 2022/5/13 19:34:10
|
351
|
+
End time: 2022/5/14 19:34:10
|
189
352
|
https://www.test.com
|
190
353
|
|
191
354
|
[
|
@@ -193,8 +356,8 @@ https://www.test.com
|
|
193
356
|
ojName: 'testOJ',
|
194
357
|
name: 'testContest',
|
195
358
|
rule: 'ICPC',
|
196
|
-
startTime: 2022-05-
|
197
|
-
endTime: 2022-05-
|
359
|
+
startTime: 2022-05-13T11:34:13.464Z,
|
360
|
+
endTime: 2022-05-14T11:34:13.464Z,
|
198
361
|
url: 'https://www.test.com'
|
199
362
|
},
|
200
363
|
{
|
package/dist/index.js
CHANGED
@@ -21,9 +21,15 @@ const defaultConfig = {
|
|
21
21
|
days: 3,
|
22
22
|
sort: true
|
23
23
|
};
|
24
|
+
function resolveConfig(config) {
|
25
|
+
const cfg = Object.assign(Object.assign({}, defaultConfig), config);
|
26
|
+
if (cfg.abbrList.length == 0)
|
27
|
+
cfg.abbrList = defaultConfig.abbrList;
|
28
|
+
return cfg;
|
29
|
+
}
|
24
30
|
function getContestList(config) {
|
25
31
|
return __awaiter(this, void 0, void 0, function* () {
|
26
|
-
const cfg =
|
32
|
+
const cfg = resolveConfig(config);
|
27
33
|
const contests = (yield Promise.all(cfg.abbrList.map((abbr) => __awaiter(this, void 0, void 0, function* () {
|
28
34
|
try {
|
29
35
|
const cts = yield oj_1.alloj[abbr].get();
|
@@ -43,17 +49,22 @@ function getContestList(config) {
|
|
43
49
|
exports.getContestList = getContestList;
|
44
50
|
function getContestInfo(config, language = "zh-CN") {
|
45
51
|
return __awaiter(this, void 0, void 0, function* () {
|
52
|
+
const cfg = resolveConfig(config);
|
46
53
|
const lang = yield (0, locale_1.getLangDict)(language);
|
47
|
-
const contests = yield getContestList(
|
54
|
+
const contests = yield getContestList(cfg);
|
48
55
|
const info = [];
|
49
|
-
info.push(lodash_1.default.template(lang.welcome)({
|
56
|
+
info.push(lodash_1.default.template(lang.welcome)({
|
57
|
+
contestCount: contests.length,
|
58
|
+
days: cfg.days,
|
59
|
+
oj: cfg.abbrList.map(abbr => oj_1.alloj[abbr].name).join(",")
|
60
|
+
}));
|
50
61
|
for (const contest of contests) {
|
51
62
|
const msg = [];
|
52
63
|
msg.push(`${lang.ojName}: ${contest.ojName}`);
|
53
64
|
msg.push(`${lang.name}: ${contest.name}`);
|
54
65
|
msg.push(`${lang.rule}: ${contest.rule}`);
|
55
|
-
msg.push(`${lang.startTime}: ${contest.startTime.toLocaleString()}`);
|
56
|
-
msg.push(`${lang.endTime}: ${contest.endTime.toLocaleString()}`);
|
66
|
+
msg.push(`${lang.startTime}: ${contest.startTime.toLocaleString(undefined, { hourCycle: "h23" })}`);
|
67
|
+
msg.push(`${lang.endTime}: ${contest.endTime.toLocaleString(undefined, { hourCycle: "h23" })}`);
|
57
68
|
msg.push(contest.url);
|
58
69
|
info.push(msg.join("\n"));
|
59
70
|
}
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,qCAAuC;AACvC,oDAAuB;AAQvB,MAAM,aAAa,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,UAAK,CAAC;IAC5B,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,IAAI;CACb,CAAC;AAEF,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/locale/en.json
CHANGED
package/dist/locale/zh-CN.json
CHANGED
package/dist/locale/zh-TW.json
CHANGED
package/package.json
CHANGED
@@ -1,18 +1,21 @@
|
|
1
1
|
{
|
2
2
|
"name": "lscontests",
|
3
|
-
"version": "1.8.
|
3
|
+
"version": "1.8.11",
|
4
4
|
"description": "A tool to get information about the contests on each OJ",
|
5
5
|
"keywords": [
|
6
6
|
"cli",
|
7
|
-
"
|
8
|
-
"
|
7
|
+
"crawler",
|
8
|
+
"oj",
|
9
|
+
"atcoder",
|
10
|
+
"codeforces",
|
11
|
+
"luogu",
|
12
|
+
"nowcoder",
|
9
13
|
"competitive-programming"
|
10
14
|
],
|
11
15
|
"repository": "https://github.com/StableAgOH/lscontests",
|
12
16
|
"bugs": "https://github.com/StableAgOH/lscontests/issues",
|
13
17
|
"author": "StableAgOH <stagoh17@gmail.com>",
|
14
18
|
"license": "GPL-3.0",
|
15
|
-
"private": false,
|
16
19
|
"main": "./dist/index.js",
|
17
20
|
"bin": {
|
18
21
|
"lsct": "./dist/cli.js"
|
@@ -23,7 +26,10 @@
|
|
23
26
|
"scripts": {
|
24
27
|
"build": "rimraf ./dist/* && tsc -p src",
|
25
28
|
"clean": "rimraf ./dist",
|
26
|
-
"
|
29
|
+
"docs": "typedoc --out docs ./src/index.ts",
|
30
|
+
"lint": "eslint && markdownlint README.md",
|
31
|
+
"prestart": "yarn build",
|
32
|
+
"start": "node ./dist/cli.js"
|
27
33
|
},
|
28
34
|
"dependencies": {
|
29
35
|
"axios": "^0.27.2",
|
@@ -32,16 +38,15 @@
|
|
32
38
|
"lodash": "^4.17.21"
|
33
39
|
},
|
34
40
|
"devDependencies": {
|
35
|
-
"@semantic-release/changelog": "^6.0.1",
|
36
|
-
"@semantic-release/git": "^10.0.1",
|
37
41
|
"@types/lodash": "^4.14.182",
|
38
|
-
"@types/node": "^17.0.
|
39
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
40
|
-
"@typescript-eslint/parser": "^5.
|
42
|
+
"@types/node": "^17.0.33",
|
43
|
+
"@typescript-eslint/eslint-plugin": "^5.23.0",
|
44
|
+
"@typescript-eslint/parser": "^5.23.0",
|
41
45
|
"cz-conventional-changelog": "3.3.0",
|
42
|
-
"eslint": "^8.
|
46
|
+
"eslint": "^8.15.0",
|
47
|
+
"markdownlint-cli": "^0.31.1",
|
43
48
|
"rimraf": "^3.0.2",
|
44
|
-
"
|
49
|
+
"typedoc": "^0.22.15",
|
45
50
|
"typescript": "^4.6.4"
|
46
51
|
},
|
47
52
|
"config": {
|
package/dist/tsconfig.json
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"compilerOptions": {
|
3
|
-
"target": "es6",
|
4
|
-
"module": "commonjs",
|
5
|
-
"esModuleInterop": true,
|
6
|
-
"forceConsistentCasingInFileNames": true,
|
7
|
-
"strict": true,
|
8
|
-
"skipLibCheck": true,
|
9
|
-
"sourceMap": true,
|
10
|
-
"declaration": true,
|
11
|
-
"outDir": "../dist/",
|
12
|
-
"resolveJsonModule": true
|
13
|
-
},
|
14
|
-
"include": [
|
15
|
-
"**/*.ts",
|
16
|
-
"**/*.json"
|
17
|
-
],
|
18
|
-
"references": [
|
19
|
-
{
|
20
|
-
"path": "../"
|
21
|
-
}
|
22
|
-
]
|
23
|
-
}
|