gangtise-openapi-cli 0.5.0 → 0.6.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.
@@ -2,7 +2,7 @@ import { request } from "undici";
2
2
  import { normalizeToken, readTokenCache, requireAccessCredentials, writeTokenCache } from "./auth.js";
3
3
  import { ApiError, ValidationError } from "./errors.js";
4
4
  import { ENDPOINTS, ENDPOINT_REGISTRY } from "./endpoints.js";
5
- import { ANNOUNCEMENT_CATEGORIES, BROKER_ORGS, INDUSTRIES, MEETING_ORGS, REGIONS, RESEARCH_AREAS } from "./lookupData.js";
5
+ import { getLookupData } from "./lookupData/index.js";
6
6
  export class GangtiseClient {
7
7
  config;
8
8
  constructor(config) {
@@ -47,23 +47,19 @@ export class GangtiseClient {
47
47
  return parsed;
48
48
  }
49
49
  async readLocalLookup(endpoint) {
50
- if (endpoint.key === "lookup.research-areas.list") {
51
- return RESEARCH_AREAS;
52
- }
53
- if (endpoint.key === "lookup.broker-orgs.list") {
54
- return BROKER_ORGS;
55
- }
56
- if (endpoint.key === "lookup.meeting-orgs.list") {
57
- return MEETING_ORGS;
58
- }
59
- if (endpoint.key === "lookup.industries.list") {
60
- return INDUSTRIES;
61
- }
62
- if (endpoint.key === "lookup.regions.list") {
63
- return REGIONS;
64
- }
65
- if (endpoint.key === "lookup.announcement-categories.list") {
66
- return ANNOUNCEMENT_CATEGORIES;
50
+ const keyMapping = {
51
+ "lookup.research-areas.list": "research-areas",
52
+ "lookup.broker-orgs.list": "broker-orgs",
53
+ "lookup.meeting-orgs.list": "meeting-orgs",
54
+ "lookup.industries.list": "industries",
55
+ "lookup.regions.list": "regions",
56
+ "lookup.announcement-categories.list": "announcement-categories",
57
+ "lookup.industry-codes.list": "industry-codes",
58
+ "lookup.theme-ids.list": "theme-ids",
59
+ };
60
+ const lookupKey = keyMapping[endpoint.key];
61
+ if (lookupKey) {
62
+ return getLookupData(lookupKey);
67
63
  }
68
64
  throw new ApiError(`Unsupported local lookup endpoint: ${endpoint.key}`);
69
65
  }
@@ -250,4 +246,3 @@ export class GangtiseClient {
250
246
  return this.requestJson(endpoint, body);
251
247
  }
252
248
  }
253
- //# sourceMappingURL=client.js.map
@@ -15,4 +15,3 @@ export function loadConfig() {
15
15
  tokenCachePath: process.env.GANGTISE_TOKEN_CACHE_PATH ?? DEFAULT_TOKEN_CACHE_PATH,
16
16
  };
17
17
  }
18
- //# sourceMappingURL=config.js.map
@@ -48,6 +48,20 @@ export const ENDPOINTS = {
48
48
  kind: "json",
49
49
  description: "List announcement categories from local docs",
50
50
  },
51
+ lookupIndustryCodes: {
52
+ key: "lookup.industry-codes.list",
53
+ method: "GET",
54
+ path: "/guide/industry-codes-local",
55
+ kind: "json",
56
+ description: "List Shenwan industry codes from local docs",
57
+ },
58
+ lookupThemeIds: {
59
+ key: "lookup.theme-ids.list",
60
+ method: "GET",
61
+ path: "/guide/theme-ids-local",
62
+ kind: "json",
63
+ description: "List theme IDs from local docs",
64
+ },
51
65
  insightOpinionList: {
52
66
  key: "insight.opinion.list",
53
67
  method: "POST",
@@ -158,9 +172,23 @@ export const ENDPOINTS = {
158
172
  fundamentalIncomeStatement: {
159
173
  key: "fundamental.income-statement",
160
174
  method: "POST",
161
- path: "/application/open-fundamental/financial-report/income-statement",
175
+ path: "/application/open-fundamental/financial-report/income-statement/accumulated",
176
+ kind: "json",
177
+ description: "Query income statement (accumulated)",
178
+ },
179
+ fundamentalBalanceSheet: {
180
+ key: "fundamental.balance-sheet",
181
+ method: "POST",
182
+ path: "/application/open-fundamental/financial-report/balance-sheet/accumulated",
183
+ kind: "json",
184
+ description: "Query balance sheet (accumulated)",
185
+ },
186
+ fundamentalCashFlow: {
187
+ key: "fundamental.cash-flow",
188
+ method: "POST",
189
+ path: "/application/open-fundamental/financial-report/cash-flow-statement/accumulated",
162
190
  kind: "json",
163
- description: "Query income statement",
191
+ description: "Query cash flow statement (accumulated)",
164
192
  },
165
193
  fundamentalMainBusiness: {
166
194
  key: "fundamental.main-business",
@@ -219,6 +247,34 @@ export const ENDPOINTS = {
219
247
  kind: "json",
220
248
  description: "Generate peer comparison",
221
249
  },
250
+ aiEarningsReviewGetId: {
251
+ key: "ai.earnings-review.get-id",
252
+ method: "POST",
253
+ path: "/application/open-ai/agent/earnings-review-getid",
254
+ kind: "json",
255
+ description: "Get earnings review ID",
256
+ },
257
+ aiEarningsReviewGetContent: {
258
+ key: "ai.earnings-review.get-content",
259
+ method: "POST",
260
+ path: "/application/open-ai/agent/earnings-review-getcontent",
261
+ kind: "json",
262
+ description: "Get earnings review content",
263
+ },
264
+ aiThemeTracking: {
265
+ key: "ai.theme-tracking",
266
+ method: "POST",
267
+ path: "/application/open-ai/agent/theme-tracking",
268
+ kind: "json",
269
+ description: "Get theme tracking daily report",
270
+ },
271
+ aiResearchOutline: {
272
+ key: "ai.research-outline",
273
+ method: "POST",
274
+ path: "/application/open-ai/agent/research-outline",
275
+ kind: "json",
276
+ description: "Get company research outline",
277
+ },
222
278
  aiCloudDiskList: {
223
279
  key: "ai.cloud-disk.list",
224
280
  method: "POST",
@@ -239,4 +295,3 @@ export const ENDPOINT_REGISTRY = Object.values(ENDPOINTS).reduce((accumulator, e
239
295
  accumulator[endpoint.key] = endpoint;
240
296
  return accumulator;
241
297
  }, {});
242
- //# sourceMappingURL=endpoints.js.map
@@ -35,4 +35,3 @@ export class ApiError extends CliError {
35
35
  this.hint = code ? ERROR_HINTS[code] : undefined;
36
36
  }
37
37
  }
38
- //# sourceMappingURL=errors.js.map
@@ -0,0 +1,554 @@
1
+ export const announcementCategories = [
2
+ {
3
+ "id": "103910100",
4
+ "name": "IPO",
5
+ "level": 1,
6
+ "parentId": "103910000"
7
+ },
8
+ {
9
+ "id": "103910101",
10
+ "name": "招股说明书(申报稿)",
11
+ "level": 2,
12
+ "parentId": "103910100"
13
+ },
14
+ {
15
+ "id": "103910102",
16
+ "name": "申报反馈",
17
+ "level": 2,
18
+ "parentId": "103910100"
19
+ },
20
+ {
21
+ "id": "103910103",
22
+ "name": "招股说明书",
23
+ "level": 2,
24
+ "parentId": "103910100"
25
+ },
26
+ {
27
+ "id": "103910104",
28
+ "name": "发行定价",
29
+ "level": 2,
30
+ "parentId": "103910100"
31
+ },
32
+ {
33
+ "id": "103910105",
34
+ "name": "发行结果",
35
+ "level": 2,
36
+ "parentId": "103910100"
37
+ },
38
+ {
39
+ "id": "103910106",
40
+ "name": "上市公告书",
41
+ "level": 2,
42
+ "parentId": "103910100"
43
+ },
44
+ {
45
+ "id": "103910108",
46
+ "name": "其他首发公告",
47
+ "level": 2,
48
+ "parentId": "103910100"
49
+ },
50
+ {
51
+ "id": "103910200",
52
+ "name": "财务报告",
53
+ "level": 1,
54
+ "parentId": "103910000"
55
+ },
56
+ {
57
+ "id": "103910201",
58
+ "name": "业绩预告",
59
+ "level": 2,
60
+ "parentId": "103910200"
61
+ },
62
+ {
63
+ "id": "103910202",
64
+ "name": "业绩快报",
65
+ "level": 2,
66
+ "parentId": "103910200"
67
+ },
68
+ {
69
+ "id": "103910203",
70
+ "name": "一季度报告",
71
+ "level": 2,
72
+ "parentId": "103910200"
73
+ },
74
+ {
75
+ "id": "103910205",
76
+ "name": "三季度报告",
77
+ "level": 2,
78
+ "parentId": "103910200"
79
+ },
80
+ {
81
+ "id": "103910207",
82
+ "name": "半年度报告",
83
+ "level": 2,
84
+ "parentId": "103910200"
85
+ },
86
+ {
87
+ "id": "103910208",
88
+ "name": "年度报告",
89
+ "level": 2,
90
+ "parentId": "103910200"
91
+ },
92
+ {
93
+ "id": "103910209",
94
+ "name": "补充更正",
95
+ "level": 2,
96
+ "parentId": "103910200"
97
+ },
98
+ {
99
+ "id": "103910210",
100
+ "name": "其他财务报告",
101
+ "level": 2,
102
+ "parentId": "103910200"
103
+ },
104
+ {
105
+ "id": "103910214",
106
+ "name": "财报摘要",
107
+ "level": 2,
108
+ "parentId": "103910200"
109
+ },
110
+ {
111
+ "id": "103910300",
112
+ "name": "重大事项",
113
+ "level": 1,
114
+ "parentId": "103910000"
115
+ },
116
+ {
117
+ "id": "103910301",
118
+ "name": "董事会公告",
119
+ "level": 2,
120
+ "parentId": "103910300"
121
+ },
122
+ {
123
+ "id": "103910302",
124
+ "name": "股东大会公告",
125
+ "level": 2,
126
+ "parentId": "103910300"
127
+ },
128
+ {
129
+ "id": "103910303",
130
+ "name": "利润分配",
131
+ "level": 2,
132
+ "parentId": "103910300"
133
+ },
134
+ {
135
+ "id": "103910304",
136
+ "name": "资产重组",
137
+ "level": 2,
138
+ "parentId": "103910300"
139
+ },
140
+ {
141
+ "id": "103910305",
142
+ "name": "收购兼并",
143
+ "level": 2,
144
+ "parentId": "103910300"
145
+ },
146
+ {
147
+ "id": "103910306",
148
+ "name": "关联交易",
149
+ "level": 2,
150
+ "parentId": "103910300"
151
+ },
152
+ {
153
+ "id": "103910307",
154
+ "name": "借贷担保",
155
+ "level": 2,
156
+ "parentId": "103910300"
157
+ },
158
+ {
159
+ "id": "103910308",
160
+ "name": "合同及协议",
161
+ "level": 2,
162
+ "parentId": "103910300"
163
+ },
164
+ {
165
+ "id": "103910309",
166
+ "name": "人事变动",
167
+ "level": 2,
168
+ "parentId": "103910300"
169
+ },
170
+ {
171
+ "id": "103910310",
172
+ "name": "资金投向",
173
+ "level": 2,
174
+ "parentId": "103910300"
175
+ },
176
+ {
177
+ "id": "103910311",
178
+ "name": "违纪违规",
179
+ "level": 2,
180
+ "parentId": "103910300"
181
+ },
182
+ {
183
+ "id": "103910319",
184
+ "name": "资金占用",
185
+ "level": 2,
186
+ "parentId": "103910300"
187
+ },
188
+ {
189
+ "id": "103910400",
190
+ "name": "交易提示",
191
+ "level": 1,
192
+ "parentId": "103910000"
193
+ },
194
+ {
195
+ "id": "103910401",
196
+ "name": "停复牌提示",
197
+ "level": 2,
198
+ "parentId": "103910400"
199
+ },
200
+ {
201
+ "id": "103910402",
202
+ "name": "交易异动",
203
+ "level": 2,
204
+ "parentId": "103910400"
205
+ },
206
+ {
207
+ "id": "103910403",
208
+ "name": "澄清致歉",
209
+ "level": 2,
210
+ "parentId": "103910400"
211
+ },
212
+ {
213
+ "id": "103910404",
214
+ "name": "风险提示",
215
+ "level": 2,
216
+ "parentId": "103910400"
217
+ },
218
+ {
219
+ "id": "103910405",
220
+ "name": "特别处理",
221
+ "level": 2,
222
+ "parentId": "103910400"
223
+ },
224
+ {
225
+ "id": "103910406",
226
+ "name": "终止上市",
227
+ "level": 2,
228
+ "parentId": "103910400"
229
+ },
230
+ {
231
+ "id": "103910407",
232
+ "name": "恢复上市",
233
+ "level": 2,
234
+ "parentId": "103910400"
235
+ },
236
+ {
237
+ "id": "103910408",
238
+ "name": "暂停上市",
239
+ "level": 2,
240
+ "parentId": "103910400"
241
+ },
242
+ {
243
+ "id": "103910409",
244
+ "name": "披露提示",
245
+ "level": 2,
246
+ "parentId": "103910400"
247
+ },
248
+ {
249
+ "id": "103910500",
250
+ "name": "配股",
251
+ "level": 1,
252
+ "parentId": "103910000"
253
+ },
254
+ {
255
+ "id": "103910501",
256
+ "name": "配股预案",
257
+ "level": 2,
258
+ "parentId": "103910500"
259
+ },
260
+ {
261
+ "id": "103910502",
262
+ "name": "配股说明书",
263
+ "level": 2,
264
+ "parentId": "103910500"
265
+ },
266
+ {
267
+ "id": "103910503",
268
+ "name": "配股获准",
269
+ "level": 2,
270
+ "parentId": "103910500"
271
+ },
272
+ {
273
+ "id": "103910504",
274
+ "name": "配股发行",
275
+ "level": 2,
276
+ "parentId": "103910500"
277
+ },
278
+ {
279
+ "id": "103910505",
280
+ "name": "配股上市",
281
+ "level": 2,
282
+ "parentId": "103910500"
283
+ },
284
+ {
285
+ "id": "103910506",
286
+ "name": "配股结果",
287
+ "level": 2,
288
+ "parentId": "103910500"
289
+ },
290
+ {
291
+ "id": "103910507",
292
+ "name": "其他配股公告",
293
+ "level": 2,
294
+ "parentId": "103910500"
295
+ },
296
+ {
297
+ "id": "103910600",
298
+ "name": "增发",
299
+ "level": 1,
300
+ "parentId": "103910000"
301
+ },
302
+ {
303
+ "id": "103910601",
304
+ "name": "增发预案",
305
+ "level": 2,
306
+ "parentId": "103910600"
307
+ },
308
+ {
309
+ "id": "103910602",
310
+ "name": "增发说明书",
311
+ "level": 2,
312
+ "parentId": "103910600"
313
+ },
314
+ {
315
+ "id": "103910603",
316
+ "name": "增发获准",
317
+ "level": 2,
318
+ "parentId": "103910600"
319
+ },
320
+ {
321
+ "id": "103910604",
322
+ "name": "增发发行",
323
+ "level": 2,
324
+ "parentId": "103910600"
325
+ },
326
+ {
327
+ "id": "103910605",
328
+ "name": "增发上市",
329
+ "level": 2,
330
+ "parentId": "103910600"
331
+ },
332
+ {
333
+ "id": "103910607",
334
+ "name": "其他增发公告",
335
+ "level": 2,
336
+ "parentId": "103910600"
337
+ },
338
+ {
339
+ "id": "103910608",
340
+ "name": "增发结果",
341
+ "level": 2,
342
+ "parentId": "103910600"
343
+ },
344
+ {
345
+ "id": "103910700",
346
+ "name": "股权股本",
347
+ "level": 1,
348
+ "parentId": "103910000"
349
+ },
350
+ {
351
+ "id": "103910701",
352
+ "name": "股权变动",
353
+ "level": 2,
354
+ "parentId": "103910700"
355
+ },
356
+ {
357
+ "id": "103910702",
358
+ "name": "股本变动",
359
+ "level": 2,
360
+ "parentId": "103910700"
361
+ },
362
+ {
363
+ "id": "103910703",
364
+ "name": "质押冻结",
365
+ "level": 2,
366
+ "parentId": "103910700"
367
+ },
368
+ {
369
+ "id": "103910704",
370
+ "name": "质押式回购",
371
+ "level": 2,
372
+ "parentId": "103910700"
373
+ },
374
+ {
375
+ "id": "103910705",
376
+ "name": "股权回购",
377
+ "level": 2,
378
+ "parentId": "103910700"
379
+ },
380
+ {
381
+ "id": "103910706",
382
+ "name": "约定购回",
383
+ "level": 2,
384
+ "parentId": "103910700"
385
+ },
386
+ {
387
+ "id": "103910707",
388
+ "name": "股权分置改革",
389
+ "level": 2,
390
+ "parentId": "103910700"
391
+ },
392
+ {
393
+ "id": "103910708",
394
+ "name": "可转债",
395
+ "level": 2,
396
+ "parentId": "103910700"
397
+ },
398
+ {
399
+ "id": "103910800",
400
+ "name": "一般公告",
401
+ "level": 1,
402
+ "parentId": "103910000"
403
+ },
404
+ {
405
+ "id": "103910801",
406
+ "name": "投资理财",
407
+ "level": 2,
408
+ "parentId": "103910800"
409
+ },
410
+ {
411
+ "id": "103910802",
412
+ "name": "员工持股",
413
+ "level": 2,
414
+ "parentId": "103910800"
415
+ },
416
+ {
417
+ "id": "103910803",
418
+ "name": "股权激励",
419
+ "level": 2,
420
+ "parentId": "103910800"
421
+ },
422
+ {
423
+ "id": "103910804",
424
+ "name": "政策影响",
425
+ "level": 2,
426
+ "parentId": "103910800"
427
+ },
428
+ {
429
+ "id": "103910805",
430
+ "name": "权证公告",
431
+ "level": 2,
432
+ "parentId": "103910800"
433
+ },
434
+ {
435
+ "id": "103910806",
436
+ "name": "中介公告",
437
+ "level": 2,
438
+ "parentId": "103910800"
439
+ },
440
+ {
441
+ "id": "103910807",
442
+ "name": "法律纠纷",
443
+ "level": 2,
444
+ "parentId": "103910800"
445
+ },
446
+ {
447
+ "id": "103910808",
448
+ "name": "融资融券",
449
+ "level": 2,
450
+ "parentId": "103910800"
451
+ },
452
+ {
453
+ "id": "103910809",
454
+ "name": "投资者关系",
455
+ "level": 2,
456
+ "parentId": "103910800"
457
+ },
458
+ {
459
+ "id": "103910810",
460
+ "name": "公司资料变更",
461
+ "level": 2,
462
+ "parentId": "103910800"
463
+ },
464
+ {
465
+ "id": "103910812",
466
+ "name": "一般补充更正",
467
+ "level": 2,
468
+ "parentId": "103910800"
469
+ },
470
+ {
471
+ "id": "103910813",
472
+ "name": "其他公告",
473
+ "level": 2,
474
+ "parentId": "103910800"
475
+ },
476
+ {
477
+ "id": "103910817",
478
+ "name": "经营快报",
479
+ "level": 2,
480
+ "parentId": "103910800"
481
+ },
482
+ {
483
+ "id": "103910818",
484
+ "name": "股份增减持",
485
+ "level": 2,
486
+ "parentId": "103910800"
487
+ },
488
+ {
489
+ "id": "103910819",
490
+ "name": "公司制度文件",
491
+ "level": 2,
492
+ "parentId": "103910800"
493
+ },
494
+ {
495
+ "id": "103910820",
496
+ "name": "ESG报告",
497
+ "level": 2,
498
+ "parentId": "103910800"
499
+ },
500
+ {
501
+ "id": "103910822",
502
+ "name": "监事会公告",
503
+ "level": 2,
504
+ "parentId": "103910800"
505
+ },
506
+ {
507
+ "id": "103910823",
508
+ "name": "问询函及回复",
509
+ "level": 2,
510
+ "parentId": "103910800"
511
+ },
512
+ {
513
+ "id": "103910827",
514
+ "name": "独立董事声明",
515
+ "level": 2,
516
+ "parentId": "103910800"
517
+ },
518
+ {
519
+ "id": "103910832",
520
+ "name": "发明专利证书",
521
+ "level": 2,
522
+ "parentId": "103910800"
523
+ },
524
+ {
525
+ "id": "103910833",
526
+ "name": "关联H股",
527
+ "level": 2,
528
+ "parentId": "103910800"
529
+ },
530
+ {
531
+ "id": "103910900",
532
+ "name": "公司治理",
533
+ "level": 1,
534
+ "parentId": "103910000"
535
+ },
536
+ {
537
+ "id": "103910901",
538
+ "name": "董监高工作报告",
539
+ "level": 2,
540
+ "parentId": "103910900"
541
+ },
542
+ {
543
+ "id": "103910902",
544
+ "name": "内部控制与自查",
545
+ "level": 2,
546
+ "parentId": "103910900"
547
+ },
548
+ {
549
+ "id": "103910903",
550
+ "name": "专项意见",
551
+ "level": 2,
552
+ "parentId": "103910900"
553
+ }
554
+ ];