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 CHANGED
@@ -1,23 +1,38 @@
1
1
  # lscontests
2
2
 
3
- ![GitHub Repo stars](https://img.shields.io/github/stars/StableAgOH/lscontests?style=social)
4
- ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/StableAgOH/lscontests)
5
- ![GitHub](https://img.shields.io/github/license/StableAgOH/lscontests)
3
+ [![GitHub Repo stars](https://img.shields.io/github/stars/StableAgOH/lscontests?style=social)](https://github.com/StableAgOH/lscontests)
4
+ [![GitHub commit activity](https://img.shields.io/github/commit-activity/m/StableAgOH/lscontests?logo=github)](https://github.com/StableAgOH/lscontests)
5
+ [![License](https://img.shields.io/github/license/StableAgOH/lscontests)](https://github.com/StableAgOH/lscontests)
6
6
  [![semantic-release: angular](https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release)](https://github.com/semantic-release/semantic-release)
7
7
 
8
- ![npm](https://img.shields.io/npm/v/lscontests)
9
- ![npm](https://img.shields.io/npm/dw/lscontests)
8
+ [![npm](https://img.shields.io/npm/v/lscontests?logo=npm)](https://www.npmjs.com/package/lscontests)
9
+ [![npm](https://img.shields.io/npm/dw/lscontests?logo=npm)](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", default: "zh-CN")
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
- 在最近的 3 天内有 3 场比赛
152
+ 最近的 7 天内在 AtCoder,Codeforces 上有 4 场比赛
40
153
 
41
154
  比赛平台: Codeforces
42
155
  比赛名称: Educational Codeforces Round 128 (Rated for Div. 2)
43
156
  赛制: ICPC
44
- 开始时间: 2022/5/13 22:35:00
45
- 结束时间: 2022/5/14 00:35:00
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
- 开始时间: 2022/5/14 17:35:00
52
- 结束时间: 2022/5/14 19:35:00
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
- 开始时间: 2022/5/14 20:00:00
59
- 结束时间: 2022/5/14 20:01:40
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
- 2 contests in the last 7 days
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: 2022/5/14 14:00:00
75
- End time: 2022/5/14 18:00:00
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: 2022/5/15 14:00:00
82
- End time: 2022/5/15 18:00:00
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 -r -o cf nc --no-sort</code> </summary>
251
+ <summary> <code>> lsct -o at cf -d 7 -r --no-sort</code> </summary>
90
252
 
91
- ```bash
253
+ ```json
92
254
  [
93
255
  {
94
- ojName: 'Codeforces',
95
- name: 'Codeforces Round #791 (Div. 2)',
96
- rule: 'Codeforces',
97
- startTime: 2022-05-14T09:35:00.000Z,
98
- endTime: 2022-05-14T11:35:00.000Z,
99
- url: 'https://codeforces.com/contests/1679'
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: 'Codeforces',
103
- name: 'Educational Codeforces Round 128 (Rated for Div. 2)',
104
- rule: 'ICPC',
105
- startTime: 2022-05-13T14:35:00.000Z,
106
- endTime: 2022-05-13T16:35:00.000Z,
107
- url: 'https://codeforces.com/contests/1680'
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: 'NowCoder',
111
- name: '牛客挑战赛60',
112
- rule: 'ICPC',
113
- startTime: 2022-05-13T11:00:00.000Z,
114
- endTime: 2022-05-13T14:00:00.000Z,
115
- url: 'https://ac.nowcoder.com/acm/contest/11200'
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: 'NowCoder',
119
- name: '第十八届西南科技大学ACM程序设计竞赛(同步赛)',
120
- rule: 'ICPC',
121
- startTime: 2022-05-14T05:00:00.000Z,
122
- endTime: 2022-05-14T10:00:00.000Z,
123
- url: 'https://ac.nowcoder.com/acm/contest/33540'
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/12 22:54:43
188
- End time: 2022/5/13 22:54:43
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-12T14:54:46.240Z,
197
- endTime: 2022-05-13T14:54:46.240Z,
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 = lodash_1.default.defaultsDeep(config, defaultConfig);
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(config);
54
+ const contests = yield getContestList(cfg);
48
55
  const info = [];
49
- info.push(lodash_1.default.template(lang.welcome)({ contestCount: contests.length, days: config ? config.days : defaultConfig.days }));
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  {
2
- "welcome": "${contestCount} contests in the last ${days} days",
2
+ "welcome": "${contestCount} contests on ${oj} in the last ${days} days",
3
3
  "ojName": "OJ",
4
4
  "name": "Contest name",
5
5
  "rule": "Rule",
@@ -1,5 +1,5 @@
1
1
  {
2
- "welcome": "在最近的 ${days} 天内有 ${contestCount} 场比赛",
2
+ "welcome": "最近的 ${days} 天内在 ${oj} 上有 ${contestCount} 场比赛",
3
3
  "ojName": "比赛平台",
4
4
  "name": "比赛名称",
5
5
  "rule": "赛制",
@@ -1,5 +1,5 @@
1
1
  {
2
- "welcome": "在最近的 ${days} 天內有 ${contestCount} 場比賽",
2
+ "welcome": "最近的 ${days} 天內在 ${oj} 上有 ${contestCount} 場比賽",
3
3
  "ojName": "比賽平台",
4
4
  "name": "比賽名稱",
5
5
  "rule": "賽制",
package/package.json CHANGED
@@ -1,18 +1,21 @@
1
1
  {
2
2
  "name": "lscontests",
3
- "version": "1.8.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
- "OJ",
8
- "Codeforces",
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
- "prepack": "yarn build"
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.31",
39
- "@typescript-eslint/eslint-plugin": "^5.22.0",
40
- "@typescript-eslint/parser": "^5.22.0",
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.14.0",
46
+ "eslint": "^8.15.0",
47
+ "markdownlint-cli": "^0.31.1",
43
48
  "rimraf": "^3.0.2",
44
- "semantic-release": "^19.0.2",
49
+ "typedoc": "^0.22.15",
45
50
  "typescript": "^4.6.4"
46
51
  },
47
52
  "config": {
@@ -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
- }