sciverse 0.3.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.
- package/README.md +282 -0
- package/dist/client.d.ts +37 -0
- package/dist/client.js +124 -0
- package/dist/credentials.d.ts +10 -0
- package/dist/credentials.js +53 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +2 -0
- package/dist/tools.d.ts +357 -0
- package/dist/tools.js +429 -0
- package/dist/types.d.ts +370 -0
- package/dist/types.js +5 -0
- package/package.json +52 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto-generated by openapi-typescript.
|
|
3
|
+
* Do not make direct changes to the file.
|
|
4
|
+
*/
|
|
5
|
+
export interface paths {
|
|
6
|
+
"/meta-search": {
|
|
7
|
+
/**
|
|
8
|
+
* 按结构化条件检索学术文献元数据
|
|
9
|
+
* @description 按结构化条件检索学术文献元数据(标题、作者、期刊、年份、摘要等)。
|
|
10
|
+
* 适用:「查找 Hinton 在 2020-2023 年发表的论文」「找 Nature 上关于 CRISPR 的近期文献」。
|
|
11
|
+
* 不适用:自然语言问答检索 → 用 semantic_search;查全文片段 → 用 read_content。
|
|
12
|
+
* 返回:论文元数据列表,每条含 doc_id、title、author、abstract、publication_venue_name、publication_published_year 等。
|
|
13
|
+
*/
|
|
14
|
+
post: operations["search_papers"];
|
|
15
|
+
};
|
|
16
|
+
"/agentic-search": {
|
|
17
|
+
/**
|
|
18
|
+
* 自然语言语义检索(RAG 用)
|
|
19
|
+
* @description 自然语言语义检索,返回相关文献片段(chunk)用于 RAG 回答。
|
|
20
|
+
* 适用:「Transformer 注意力机制如何工作?」「最新的蛋白质折叠预测方法有哪些?」
|
|
21
|
+
* 不适用:精确字段过滤 → search_papers;取完整原文 → read_content。
|
|
22
|
+
* 返回:相关 chunk 列表,每条含 chunk_id/doc_id/abstract/chunk/score/title/offset。
|
|
23
|
+
* 典型链路:semantic_search → 选取 chunk → read_content(doc_id, offset)。
|
|
24
|
+
*/
|
|
25
|
+
post: operations["semantic_search"];
|
|
26
|
+
};
|
|
27
|
+
"/meta-catalog": {
|
|
28
|
+
/**
|
|
29
|
+
* 列出所有可用字段、能否过滤/排序、枚举值样本
|
|
30
|
+
* @description 返回 search_papers 所有可用字段的 catalog:字段名、类型、能否过滤/排序、
|
|
31
|
+
* 是否默认返回、字段说明、FilterOperator 清单等。
|
|
32
|
+
* 适用:「我该用哪个字段过滤 DOI?」「access_oa_status 有哪些可能值?」
|
|
33
|
+
* 「`metadata_type` 的合法取值是?」
|
|
34
|
+
* 不适用:实际查询文献,那是 search_papers / semantic_search 的事。
|
|
35
|
+
* 典型用法:Agent 第一次接触 SciVerse 或碰到模糊字段需求时先调一次本接口,
|
|
36
|
+
* 把 schema 装进 working memory,后续精确构造 search_papers 的 filters。
|
|
37
|
+
* include_sample_values=true 时返回枚举值样本(OpenSearch terms agg,缓存 24h)。
|
|
38
|
+
*/
|
|
39
|
+
get: operations["list_catalog"];
|
|
40
|
+
};
|
|
41
|
+
"/content": {
|
|
42
|
+
/**
|
|
43
|
+
* 按字节区间读取文献原文片段
|
|
44
|
+
* @description 按字节区间读取文献原文片段。通常配合 semantic_search 返回的 doc_id/offset 使用,
|
|
45
|
+
* 用于扩展上下文(往前/往后读更多字节)。
|
|
46
|
+
* 返回:UTF-8 文本片段、bytes_returned、next_offset、是否还有后续。
|
|
47
|
+
*/
|
|
48
|
+
get: operations["read_content"];
|
|
49
|
+
};
|
|
50
|
+
"/resource": {
|
|
51
|
+
/**
|
|
52
|
+
* 取文献附属图片(论文中的 Figure / Table 等)
|
|
53
|
+
* @description 按文件名取文献中嵌入的图片字节流(PNG / JPG 等)。
|
|
54
|
+
* 触发场景:read_content 返回的 Markdown 中含 `` 形式的图片占位,
|
|
55
|
+
* agent 需要把图给用户看时调本接口。
|
|
56
|
+
* 入参 file_name 来自 markdown 内的 url 段(相对路径,禁止 `\\` 或 `..`)。
|
|
57
|
+
* 返回:HTTP 二进制流 + image/* Content-Type。
|
|
58
|
+
* SDK / MCP server 包装层会做 base64 + mime 转换以便 agent 多模态使用。
|
|
59
|
+
*/
|
|
60
|
+
get: operations["get_resource"];
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export type webhooks = Record<string, never>;
|
|
64
|
+
export interface components {
|
|
65
|
+
schemas: {
|
|
66
|
+
SearchPapersRequest: {
|
|
67
|
+
/** @description BM25 全文关键词,匹配标题/摘要/期刊名/关键词字段。留空则纯靠结构化过滤。 */
|
|
68
|
+
query?: string;
|
|
69
|
+
/** @description 标题中必须包含的词(仅匹配 title 字段)。 */
|
|
70
|
+
title_contains?: string;
|
|
71
|
+
/** @description 摘要中必须包含的词(仅匹配 abstract 字段)。 */
|
|
72
|
+
abstract_contains?: string;
|
|
73
|
+
/** @description 作者名(任一命中即可)。SDK 内部映射到后端 `author` 字段(FILTER_OP_IN)。 */
|
|
74
|
+
authors?: string[];
|
|
75
|
+
/** @description 起始发表年(含)。 */
|
|
76
|
+
year_from?: number;
|
|
77
|
+
/** @description 结束发表年(含)。 */
|
|
78
|
+
year_to?: number;
|
|
79
|
+
/** @description 期刊名(任一命中即可)。SDK 内部映射到后端 `publication_venue_name` 字段(FILTER_OP_IN)。 */
|
|
80
|
+
journals?: string[];
|
|
81
|
+
/** @description 学科分类,如 "computer science"、"biology"。 */
|
|
82
|
+
subjects?: string[];
|
|
83
|
+
/** @description 高级过滤逃生舱(仅当上述字段不够用时使用)。 */
|
|
84
|
+
filters_advanced?: ({
|
|
85
|
+
field: string;
|
|
86
|
+
/**
|
|
87
|
+
* @default FILTER_OP_EQ
|
|
88
|
+
* @enum {string}
|
|
89
|
+
*/
|
|
90
|
+
operator?: "FILTER_OP_EQ" | "FILTER_OP_NE" | "FILTER_OP_GT" | "FILTER_OP_GTE" | "FILTER_OP_LT" | "FILTER_OP_LTE" | "FILTER_OP_IN" | "FILTER_OP_NIN" | "FILTER_OP_CONTAINS";
|
|
91
|
+
value: unknown;
|
|
92
|
+
})[];
|
|
93
|
+
/**
|
|
94
|
+
* @default desc
|
|
95
|
+
* @enum {string}
|
|
96
|
+
*/
|
|
97
|
+
sort_by_year?: "desc" | "asc" | "none";
|
|
98
|
+
/** @default 1 */
|
|
99
|
+
page?: number;
|
|
100
|
+
/** @default 10 */
|
|
101
|
+
page_size?: number;
|
|
102
|
+
};
|
|
103
|
+
SearchPapersResponse: {
|
|
104
|
+
hits: components["schemas"]["PaperMetadata"][];
|
|
105
|
+
total: number;
|
|
106
|
+
page: number;
|
|
107
|
+
page_size: number;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* @description 文献元数据。字段名与 metadata-service 后端 `fields.py` 的真实字段一致,
|
|
111
|
+
* SDK 不做响应转换。`doc_id` 由 metadata-service 注入(OpenSearch `_id`)。
|
|
112
|
+
*/
|
|
113
|
+
PaperMetadata: {
|
|
114
|
+
/** @description 文献唯一 ID(OpenSearch _id,通常为内容 sha256)。 */
|
|
115
|
+
doc_id: string;
|
|
116
|
+
title: string;
|
|
117
|
+
/** @description 作者列表(fields.py 中字段名是 author 单数,但类型是 List[string])。 */
|
|
118
|
+
author?: string[];
|
|
119
|
+
abstract?: string;
|
|
120
|
+
/** @description 期刊/会议名(fields.py 中是 String 类型)。 */
|
|
121
|
+
publication_venue_name?: string;
|
|
122
|
+
publication_published_year?: number;
|
|
123
|
+
subjects?: string[];
|
|
124
|
+
keywords?: string[];
|
|
125
|
+
doi?: string;
|
|
126
|
+
};
|
|
127
|
+
SemanticSearchRequest: {
|
|
128
|
+
/** @description 自然语言查询,1-200 字最佳。 */
|
|
129
|
+
query: string;
|
|
130
|
+
/** @default 10 */
|
|
131
|
+
top_k?: number;
|
|
132
|
+
source_types?: ("web" | "pdf")[];
|
|
133
|
+
/**
|
|
134
|
+
* @description fast = 仅关键词召回 (~200ms);balanced = 混合检索 (~600ms);quality = LLM 改写 + 混合 (~2-4s)。
|
|
135
|
+
*
|
|
136
|
+
* @default balanced
|
|
137
|
+
* @enum {string}
|
|
138
|
+
*/
|
|
139
|
+
mode?: "fast" | "balanced" | "quality";
|
|
140
|
+
};
|
|
141
|
+
SemanticSearchResponse: {
|
|
142
|
+
hits: components["schemas"]["SearchChunk"][];
|
|
143
|
+
};
|
|
144
|
+
SearchChunk: {
|
|
145
|
+
chunk_id: string;
|
|
146
|
+
doc_id: string;
|
|
147
|
+
title: string;
|
|
148
|
+
abstract?: string;
|
|
149
|
+
chunk?: string;
|
|
150
|
+
/** Format: float */
|
|
151
|
+
score: number;
|
|
152
|
+
/**
|
|
153
|
+
* Format: int64
|
|
154
|
+
* @description chunk 在原文中的字节偏移,可直接传给 read_content。
|
|
155
|
+
*/
|
|
156
|
+
offset: number;
|
|
157
|
+
page_no?: number;
|
|
158
|
+
source_type?: string;
|
|
159
|
+
};
|
|
160
|
+
ReadContentResponse: {
|
|
161
|
+
text: string;
|
|
162
|
+
bytes_returned: number;
|
|
163
|
+
/** Format: int64 */
|
|
164
|
+
next_offset: number;
|
|
165
|
+
/** @description 为 true 表示可能还有后续字节,可用 next_offset 继续请求。 */
|
|
166
|
+
more: boolean;
|
|
167
|
+
};
|
|
168
|
+
CatalogResponse: {
|
|
169
|
+
fields: components["schemas"]["FieldCatalogEntry"][];
|
|
170
|
+
/** @description search_papers 不传 fields 时默认返回的字段名清单。 */
|
|
171
|
+
default_fields: string[];
|
|
172
|
+
/** @description 支持的 FilterOperator 名(不带 FILTER_OP_ 前缀,如 "EQ" / "IN" / "CONTAINS")。 */
|
|
173
|
+
filter_operators: string[];
|
|
174
|
+
};
|
|
175
|
+
FieldCatalogEntry: {
|
|
176
|
+
/** @description 字段名(与 search_papers 的 filters[].field 一致)。 */
|
|
177
|
+
name: string;
|
|
178
|
+
/** @description 业务类型,如 String / Integer / Boolean / Float / List[string] / List[object] / Object。 */
|
|
179
|
+
type: string;
|
|
180
|
+
filterable: boolean;
|
|
181
|
+
sortable: boolean;
|
|
182
|
+
/** @description 是否参与 query(BM25 全文搜索)。 */
|
|
183
|
+
searchable: boolean;
|
|
184
|
+
/** @description 未指定 fields 时是否默认返回。 */
|
|
185
|
+
default_returned: boolean;
|
|
186
|
+
/** @description 人类可读的字段说明(中文)。 */
|
|
187
|
+
description?: string;
|
|
188
|
+
/** @description 该字段的取值样本(仅 enum-like 字段;高 cardinality 字段为空)。 */
|
|
189
|
+
sample_values?: string[];
|
|
190
|
+
/** @description 适用的 FilterOperator 名(参考性,后端不强校验)。 */
|
|
191
|
+
operators?: string[];
|
|
192
|
+
};
|
|
193
|
+
ApiError: {
|
|
194
|
+
code: string;
|
|
195
|
+
message: string;
|
|
196
|
+
request_id?: string;
|
|
197
|
+
};
|
|
198
|
+
};
|
|
199
|
+
responses: {
|
|
200
|
+
/** @description 请求参数错误 */
|
|
201
|
+
BadRequest: {
|
|
202
|
+
content: {
|
|
203
|
+
"application/json": components["schemas"]["ApiError"];
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
/** @description Bearer Token 缺失或无效 */
|
|
207
|
+
Unauthorized: {
|
|
208
|
+
content: {
|
|
209
|
+
"application/json": components["schemas"]["ApiError"];
|
|
210
|
+
};
|
|
211
|
+
};
|
|
212
|
+
/** @description 上游服务不可用 */
|
|
213
|
+
BadGateway: {
|
|
214
|
+
content: {
|
|
215
|
+
"application/json": components["schemas"]["ApiError"];
|
|
216
|
+
};
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
parameters: never;
|
|
220
|
+
requestBodies: never;
|
|
221
|
+
headers: never;
|
|
222
|
+
pathItems: never;
|
|
223
|
+
}
|
|
224
|
+
export type $defs = Record<string, never>;
|
|
225
|
+
export type external = Record<string, never>;
|
|
226
|
+
export interface operations {
|
|
227
|
+
/**
|
|
228
|
+
* 按结构化条件检索学术文献元数据
|
|
229
|
+
* @description 按结构化条件检索学术文献元数据(标题、作者、期刊、年份、摘要等)。
|
|
230
|
+
* 适用:「查找 Hinton 在 2020-2023 年发表的论文」「找 Nature 上关于 CRISPR 的近期文献」。
|
|
231
|
+
* 不适用:自然语言问答检索 → 用 semantic_search;查全文片段 → 用 read_content。
|
|
232
|
+
* 返回:论文元数据列表,每条含 doc_id、title、author、abstract、publication_venue_name、publication_published_year 等。
|
|
233
|
+
*/
|
|
234
|
+
search_papers: {
|
|
235
|
+
requestBody: {
|
|
236
|
+
content: {
|
|
237
|
+
"application/json": components["schemas"]["SearchPapersRequest"];
|
|
238
|
+
};
|
|
239
|
+
};
|
|
240
|
+
responses: {
|
|
241
|
+
/** @description 检索结果 */
|
|
242
|
+
200: {
|
|
243
|
+
content: {
|
|
244
|
+
"application/json": components["schemas"]["SearchPapersResponse"];
|
|
245
|
+
};
|
|
246
|
+
};
|
|
247
|
+
400: components["responses"]["BadRequest"];
|
|
248
|
+
401: components["responses"]["Unauthorized"];
|
|
249
|
+
502: components["responses"]["BadGateway"];
|
|
250
|
+
};
|
|
251
|
+
};
|
|
252
|
+
/**
|
|
253
|
+
* 自然语言语义检索(RAG 用)
|
|
254
|
+
* @description 自然语言语义检索,返回相关文献片段(chunk)用于 RAG 回答。
|
|
255
|
+
* 适用:「Transformer 注意力机制如何工作?」「最新的蛋白质折叠预测方法有哪些?」
|
|
256
|
+
* 不适用:精确字段过滤 → search_papers;取完整原文 → read_content。
|
|
257
|
+
* 返回:相关 chunk 列表,每条含 chunk_id/doc_id/abstract/chunk/score/title/offset。
|
|
258
|
+
* 典型链路:semantic_search → 选取 chunk → read_content(doc_id, offset)。
|
|
259
|
+
*/
|
|
260
|
+
semantic_search: {
|
|
261
|
+
requestBody: {
|
|
262
|
+
content: {
|
|
263
|
+
"application/json": components["schemas"]["SemanticSearchRequest"];
|
|
264
|
+
};
|
|
265
|
+
};
|
|
266
|
+
responses: {
|
|
267
|
+
/** @description 检索结果 */
|
|
268
|
+
200: {
|
|
269
|
+
content: {
|
|
270
|
+
"application/json": components["schemas"]["SemanticSearchResponse"];
|
|
271
|
+
};
|
|
272
|
+
};
|
|
273
|
+
400: components["responses"]["BadRequest"];
|
|
274
|
+
401: components["responses"]["Unauthorized"];
|
|
275
|
+
502: components["responses"]["BadGateway"];
|
|
276
|
+
/** @description 嵌入或检索后端暂不可用 */
|
|
277
|
+
503: {
|
|
278
|
+
content: {
|
|
279
|
+
"application/json": components["schemas"]["ApiError"];
|
|
280
|
+
};
|
|
281
|
+
};
|
|
282
|
+
};
|
|
283
|
+
};
|
|
284
|
+
/**
|
|
285
|
+
* 列出所有可用字段、能否过滤/排序、枚举值样本
|
|
286
|
+
* @description 返回 search_papers 所有可用字段的 catalog:字段名、类型、能否过滤/排序、
|
|
287
|
+
* 是否默认返回、字段说明、FilterOperator 清单等。
|
|
288
|
+
* 适用:「我该用哪个字段过滤 DOI?」「access_oa_status 有哪些可能值?」
|
|
289
|
+
* 「`metadata_type` 的合法取值是?」
|
|
290
|
+
* 不适用:实际查询文献,那是 search_papers / semantic_search 的事。
|
|
291
|
+
* 典型用法:Agent 第一次接触 SciVerse 或碰到模糊字段需求时先调一次本接口,
|
|
292
|
+
* 把 schema 装进 working memory,后续精确构造 search_papers 的 filters。
|
|
293
|
+
* include_sample_values=true 时返回枚举值样本(OpenSearch terms agg,缓存 24h)。
|
|
294
|
+
*/
|
|
295
|
+
list_catalog: {
|
|
296
|
+
parameters: {
|
|
297
|
+
query?: {
|
|
298
|
+
/** @description 是否拉取 enum-like 字段的取值样本。false 仅返回静态 schema(毫秒级);true 触发 OpenSearch terms agg(首次几百毫秒,之后 24h 走缓存)。 */
|
|
299
|
+
include_sample_values?: boolean;
|
|
300
|
+
};
|
|
301
|
+
};
|
|
302
|
+
responses: {
|
|
303
|
+
/** @description catalog */
|
|
304
|
+
200: {
|
|
305
|
+
content: {
|
|
306
|
+
"application/json": components["schemas"]["CatalogResponse"];
|
|
307
|
+
};
|
|
308
|
+
};
|
|
309
|
+
401: components["responses"]["Unauthorized"];
|
|
310
|
+
502: components["responses"]["BadGateway"];
|
|
311
|
+
};
|
|
312
|
+
};
|
|
313
|
+
/**
|
|
314
|
+
* 按字节区间读取文献原文片段
|
|
315
|
+
* @description 按字节区间读取文献原文片段。通常配合 semantic_search 返回的 doc_id/offset 使用,
|
|
316
|
+
* 用于扩展上下文(往前/往后读更多字节)。
|
|
317
|
+
* 返回:UTF-8 文本片段、bytes_returned、next_offset、是否还有后续。
|
|
318
|
+
*/
|
|
319
|
+
read_content: {
|
|
320
|
+
parameters: {
|
|
321
|
+
query: {
|
|
322
|
+
/** @description 文献 ID(来自 search_papers / semantic_search)。 */
|
|
323
|
+
doc_id: string;
|
|
324
|
+
offset?: number;
|
|
325
|
+
limit?: number;
|
|
326
|
+
};
|
|
327
|
+
};
|
|
328
|
+
responses: {
|
|
329
|
+
/** @description 内容片段 */
|
|
330
|
+
200: {
|
|
331
|
+
content: {
|
|
332
|
+
"application/json": components["schemas"]["ReadContentResponse"];
|
|
333
|
+
};
|
|
334
|
+
};
|
|
335
|
+
400: components["responses"]["BadRequest"];
|
|
336
|
+
401: components["responses"]["Unauthorized"];
|
|
337
|
+
502: components["responses"]["BadGateway"];
|
|
338
|
+
};
|
|
339
|
+
};
|
|
340
|
+
/**
|
|
341
|
+
* 取文献附属图片(论文中的 Figure / Table 等)
|
|
342
|
+
* @description 按文件名取文献中嵌入的图片字节流(PNG / JPG 等)。
|
|
343
|
+
* 触发场景:read_content 返回的 Markdown 中含 `` 形式的图片占位,
|
|
344
|
+
* agent 需要把图给用户看时调本接口。
|
|
345
|
+
* 入参 file_name 来自 markdown 内的 url 段(相对路径,禁止 `\\` 或 `..`)。
|
|
346
|
+
* 返回:HTTP 二进制流 + image/* Content-Type。
|
|
347
|
+
* SDK / MCP server 包装层会做 base64 + mime 转换以便 agent 多模态使用。
|
|
348
|
+
*/
|
|
349
|
+
get_resource: {
|
|
350
|
+
parameters: {
|
|
351
|
+
query: {
|
|
352
|
+
/** @description 图片相对路径,来自 read_content Markdown 中的 `` 占位。禁止 `\\` 与 `..`,不能以 `/` 开头。 */
|
|
353
|
+
file_name: string;
|
|
354
|
+
};
|
|
355
|
+
};
|
|
356
|
+
responses: {
|
|
357
|
+
/** @description 图片二进制流 */
|
|
358
|
+
200: {
|
|
359
|
+
content: {
|
|
360
|
+
"image/png": string;
|
|
361
|
+
"image/jpeg": string;
|
|
362
|
+
"image/*": string;
|
|
363
|
+
};
|
|
364
|
+
};
|
|
365
|
+
400: components["responses"]["BadRequest"];
|
|
366
|
+
401: components["responses"]["Unauthorized"];
|
|
367
|
+
502: components["responses"]["BadGateway"];
|
|
368
|
+
};
|
|
369
|
+
};
|
|
370
|
+
}
|
package/dist/types.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sciverse",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "SciVerse Agent Tools — OpenAI/Anthropic/LangChain compatible tool schema and async client for SciVerse retrieval APIs",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"homepage": "https://github.com/opendatalab/SciVerse-agent-tools/tree/main/packages/typescript",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/opendatalab/SciVerse-agent-tools.git",
|
|
10
|
+
"directory": "packages/typescript"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/opendatalab/SciVerse-agent-tools/issues"
|
|
14
|
+
},
|
|
15
|
+
"author": "SciVerse Platform Team",
|
|
16
|
+
"keywords": [
|
|
17
|
+
"sciverse",
|
|
18
|
+
"agent",
|
|
19
|
+
"llm",
|
|
20
|
+
"tool-calling",
|
|
21
|
+
"scientific-papers",
|
|
22
|
+
"rag"
|
|
23
|
+
],
|
|
24
|
+
"type": "module",
|
|
25
|
+
"main": "./dist/index.js",
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"import": "./dist/index.js"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"files": [
|
|
34
|
+
"dist",
|
|
35
|
+
"README.md"
|
|
36
|
+
],
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "tsc -p tsconfig.json",
|
|
39
|
+
"test": "vitest run",
|
|
40
|
+
"typecheck": "tsc --noEmit"
|
|
41
|
+
},
|
|
42
|
+
"engines": {
|
|
43
|
+
"node": ">=18"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"typescript": "^5.4",
|
|
47
|
+
"vitest": "^1.4",
|
|
48
|
+
"openapi-typescript": "^6.7",
|
|
49
|
+
"msw": "^2.0",
|
|
50
|
+
"@types/node": "^20"
|
|
51
|
+
}
|
|
52
|
+
}
|