helixlife-expert-cli 0.3.2 → 0.4.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.
Files changed (57) hide show
  1. package/README.md +3 -3
  2. package/cli/dist/modules/analysis/api.d.ts +28 -0
  3. package/cli/dist/modules/analysis/api.d.ts.map +1 -0
  4. package/cli/dist/modules/analysis/api.js +265 -0
  5. package/cli/dist/modules/analysis/api.js.map +1 -0
  6. package/cli/dist/modules/analysis/bio.d.ts +159 -0
  7. package/cli/dist/modules/analysis/bio.d.ts.map +1 -0
  8. package/cli/dist/modules/analysis/bio.js +275 -0
  9. package/cli/dist/modules/analysis/bio.js.map +1 -0
  10. package/cli/dist/modules/analysis/catalog.d.ts +22 -0
  11. package/cli/dist/modules/analysis/catalog.d.ts.map +1 -0
  12. package/cli/dist/modules/analysis/catalog.js +126 -0
  13. package/cli/dist/modules/analysis/catalog.js.map +1 -0
  14. package/cli/dist/modules/analysis/commands.d.ts +15 -0
  15. package/cli/dist/modules/analysis/commands.d.ts.map +1 -0
  16. package/cli/dist/modules/analysis/commands.js +475 -0
  17. package/cli/dist/modules/analysis/commands.js.map +1 -0
  18. package/cli/dist/modules/analysis/constants.d.ts +14 -0
  19. package/cli/dist/modules/analysis/constants.d.ts.map +1 -1
  20. package/cli/dist/modules/analysis/constants.js +15 -0
  21. package/cli/dist/modules/analysis/constants.js.map +1 -1
  22. package/cli/dist/modules/analysis/errors.d.ts +12 -0
  23. package/cli/dist/modules/analysis/errors.d.ts.map +1 -0
  24. package/cli/dist/modules/analysis/errors.js +96 -0
  25. package/cli/dist/modules/analysis/errors.js.map +1 -0
  26. package/cli/dist/modules/analysis/files.d.ts +8 -0
  27. package/cli/dist/modules/analysis/files.d.ts.map +1 -0
  28. package/cli/dist/modules/analysis/files.js +59 -0
  29. package/cli/dist/modules/analysis/files.js.map +1 -0
  30. package/cli/dist/modules/analysis/flags.d.ts +27 -0
  31. package/cli/dist/modules/analysis/flags.d.ts.map +1 -0
  32. package/cli/dist/modules/analysis/flags.js +58 -0
  33. package/cli/dist/modules/analysis/flags.js.map +1 -0
  34. package/cli/dist/modules/analysis/index.d.ts.map +1 -1
  35. package/cli/dist/modules/analysis/index.js +154 -8
  36. package/cli/dist/modules/analysis/index.js.map +1 -1
  37. package/cli/dist/modules/analysis/inputs.d.ts +36 -0
  38. package/cli/dist/modules/analysis/inputs.d.ts.map +1 -0
  39. package/cli/dist/modules/analysis/inputs.js +120 -0
  40. package/cli/dist/modules/analysis/inputs.js.map +1 -0
  41. package/cli/dist/modules/analysis/json.d.ts +7 -0
  42. package/cli/dist/modules/analysis/json.d.ts.map +1 -0
  43. package/cli/dist/modules/analysis/json.js +30 -0
  44. package/cli/dist/modules/analysis/json.js.map +1 -0
  45. package/cli/dist/modules/analysis/overrides.d.ts +12 -0
  46. package/cli/dist/modules/analysis/overrides.d.ts.map +1 -0
  47. package/cli/dist/modules/analysis/overrides.js +185 -0
  48. package/cli/dist/modules/analysis/overrides.js.map +1 -0
  49. package/cli/dist/modules/analysis/prepare.d.ts +47 -0
  50. package/cli/dist/modules/analysis/prepare.d.ts.map +1 -0
  51. package/cli/dist/modules/analysis/prepare.js +941 -0
  52. package/cli/dist/modules/analysis/prepare.js.map +1 -0
  53. package/cli/dist/modules/analysis/schema.d.ts +5 -0
  54. package/cli/dist/modules/analysis/schema.d.ts.map +1 -0
  55. package/cli/dist/modules/analysis/schema.js +39 -0
  56. package/cli/dist/modules/analysis/schema.js.map +1 -0
  57. package/package.json +1 -1
package/README.md CHANGED
@@ -62,7 +62,7 @@ npm publish
62
62
 
63
63
  > **发布约定**:本仓库 npm 包**不含** Skill。每次发给用户一个专家目录;替换 Agent 侧 Skill 即可,**不必**为此升 CLI 版本。
64
64
 
65
- 安装 / 升级 / 错误码的正文只维护在 `cli/skills/_fragments/common.md`。数据分析、课题方案另有 `external-xt.md` / `external-newidea.md`,由 `npm run sync:skills` 追加到对应专家的 `references/common.md`。**不要**把 `_fragments` 或整个 `cli/skills/` 发给用户。
65
+ 安装 / 升级 / 错误码的正文只维护在 `cli/skills/_fragments/common.md`。课题方案另有 `external-newidea.md`,由 `npm run sync:skills` 追加到该专家的 `references/common.md`。**不要**把 `_fragments` 或整个 `cli/skills/` 发给用户。
66
66
 
67
67
  ### 交付某一个专家
68
68
 
@@ -126,7 +126,7 @@ helixlife-expert-cli/
126
126
  | Meta 分析 | `helixlife-expert meta workflow create` | 已实现(选题/检索/筛选/抽提/统计/写作六步全流程) |
127
127
  | 基金写作 | `helixlife-expert fund nsfc hypothesis create` | 已实现(国自然四步 + 临床申请书三步) |
128
128
  | SCI 写作 | `helixlife-expert sci outline create` | 已实现(拟定主题/确认提纲/生成全文三步流程) |
129
- | 数据分析 | `helixlife-expert analysis info` | 已实现(经外部仙桃 xt CLI 执行,共用本地凭证) |
129
+ | 数据分析 | `helixlife-expert analysis tool exec` | 已实现(本 CLI 直接调用菜单、生信统一入口与上传接口) |
130
130
  | 文献调研 | `helixlife-expert literature workflow run` | 已实现(信息调研/结构化拆解/文献阅读/研究假设四工作流) |
131
131
  | 课题方案 | `helixlife-expert proposal clinical run` | 已实现(基础研究经外部 newidea CLI;临床研究五工作流 + 生信方案) |
132
132
 
@@ -138,7 +138,7 @@ SCI 写作专家迁移自 `helixlife-service-cli` 的 `workbench sci`,命令
138
138
 
139
139
  文献调研专家提供四个工作流(`WF01` 信息调研、`WF02` 结构化拆解、`WF03` 文献阅读、`WF04` 研究假设),命令树为 `literature workflow list|params|run`。四者均为「`params` 取动态表单 → `run` 填参执行」两步式,表单字段由后端实时返回,CLI 不做本地映射。主线为 WF01 → WF02 → WF04,工作流间数据由 Agent 串联,CLI 不隐式串。该专家不走 `site-configs` 门禁(细则见 `cli/skills/helixlife-expert-literature/references/literature.md`)。
140
140
 
141
- 数据分析专家不在本 CLI 内实现业务命令:分析/绘图经外部仙桃 CLI(`xt`,npm:`@helixlife-ai/xiantao`)执行,与本 CLI 共用 `~/.config/helixlife/` 凭证文件,按需被动安装;Skill 细则见 `cli/skills/helixlife-expert-analysis/references/`(路由索引 + 393 项冻结目录 + 执行手册)。**禁止**执行 `xt login` / `xt status`。
141
+ 数据分析专家由本 CLI 直接执行:`helixlife-expert analysis tool search|menus|inspect|cloud|specific-search|prepare|exec` 与 `helixlife-expert analysis history list|view|download|rename|delete|save`。菜单与菜单详情走 `agent_api` 的 `/api/v1/agent/client/tool/menus`,生信统一入口走 `/api/v1/agent/client/bio-api`;文件上传仍取 `/api/v1/agent/upload/config` 后直传 OSS。凭证与其他专家相同,读 `~/.config/helixlife/`。Skill 细则见 `cli/skills/helixlife-expert-analysis/references/`(路由索引 + 393 项冻结目录 + 执行手册)。
142
142
 
143
143
  课题方案专家先做基础 / 临床 / 生信三方向识别(证据不唯一时由 Skill 弹选择器兜底)。基础研究业务经外部 newidea CLI(`newidea`,npm:`@helixlife-ai/newidea`)执行,与本 CLI 共用 `~/.config/helixlife/` 凭证文件,按需被动安装(命令不存在再 `npm install -g @helixlife-ai/newidea@latest`);Agent 直接调用 `newidea invocation start` / `invocation process`,成功后交付 ZIP 下载链接,不落盘、不解压。**禁止**执行 `newidea login` / `newidea status` / `newidea logout`。
144
144
 
@@ -0,0 +1,28 @@
1
+ import { type JsonObject } from "./json.js";
2
+ export interface AgentResponse {
3
+ success?: boolean;
4
+ code?: number | string;
5
+ message?: string;
6
+ data?: unknown;
7
+ }
8
+ export interface UploadedObject {
9
+ fileName: string;
10
+ fileOss: string;
11
+ fileOssPath: string;
12
+ fileSize: number;
13
+ fileSizeMb: number;
14
+ }
15
+ export declare function encryptMenuQuery(value: unknown): string;
16
+ export declare function resolveToolProductUuid(override: string | undefined): string;
17
+ export declare function fetchToolMenus(toolProductUuid: string): Promise<unknown[]>;
18
+ export declare function fetchToolMenu(menu: string, toolProductUuid: string): Promise<unknown>;
19
+ export declare function callBioApi(body: JsonObject, options?: {
20
+ allowSubmittedMessage?: boolean;
21
+ }): Promise<unknown>;
22
+ export declare function callBioApiEnvelope(body: JsonObject, options?: {
23
+ allowSubmittedMessage?: boolean;
24
+ }): Promise<AgentResponse>;
25
+ export declare function bioBody(name: string, args: JsonObject, extra?: JsonObject): JsonObject;
26
+ export declare function uploadLocalFile(filePath: string): Promise<UploadedObject>;
27
+ export declare function historyId(fuid?: string): JsonObject;
28
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/modules/analysis/api.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAkC,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5E,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAWD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIvD;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG3E;AAED,wBAAsB,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAShF;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3F;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5C,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5C,OAAO,CAAC,aAAa,CAAC,CAOxB;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,CAOtF;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA+C/E;AAuMD,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAKnD"}
@@ -0,0 +1,265 @@
1
+ // 数据分析 HTTP:菜单与生信入口走 agent_api 上的 /api/v1/agent/client/...,上传凭证仍走 /api/v1/agent/upload/config
2
+ import { readFile, stat } from "node:fs/promises";
3
+ import { basename } from "node:path";
4
+ import { fetchWithTimeout, getDefaultAuthBaseUrl, getPackageVersion, helixlifeError, helixlifeErrorCode, NOT_AUTHENTICATED_MESSAGE, TOKEN_EXPIRED_MESSAGE, createNetworkBlockedError, isNetworkBlockedText, loadTokenFromFile, resolveUserPath, } from "../../core/index.js";
5
+ import { ANALYSIS_BIO_API_PATH, ANALYSIS_BIO_TIMEOUT_MS, ANALYSIS_BIO_VERSION, ANALYSIS_HISTORY_UUID, ANALYSIS_MENU_TIMEOUT_MS, ANALYSIS_MENUS_PATH, ANALYSIS_UPLOAD_CONFIG_PATH, DEFAULT_TOOL_PRODUCT_UUID, } from "./constants.js";
6
+ import { AnalysisError } from "./errors.js";
7
+ import { clarifyConfArgsMessage } from "./overrides.js";
8
+ import { asObject, isJsonObject, textOf } from "./json.js";
9
+ // 菜单查询参数 f:JSON → encodeURI → base64,去掉填充等号
10
+ export function encryptMenuQuery(value) {
11
+ return Buffer.from(encodeURI(JSON.stringify(value)), "utf8")
12
+ .toString("base64")
13
+ .replace(/=/g, "");
14
+ }
15
+ export function resolveToolProductUuid(override) {
16
+ const value = override?.trim();
17
+ return value || DEFAULT_TOOL_PRODUCT_UUID;
18
+ }
19
+ export async function fetchToolMenus(toolProductUuid) {
20
+ const data = await requestAgent(ANALYSIS_MENUS_PATH, {
21
+ method: "GET",
22
+ params: {
23
+ f: encryptMenuQuery({ is_all: 1, tool_product_uuid: toolProductUuid }),
24
+ },
25
+ timeoutMs: ANALYSIS_MENU_TIMEOUT_MS,
26
+ });
27
+ return Array.isArray(data) ? data : [];
28
+ }
29
+ export async function fetchToolMenu(menu, toolProductUuid) {
30
+ const path = `${ANALYSIS_MENUS_PATH}/${encodeURIComponent(menu)}`;
31
+ return requestAgent(path, {
32
+ method: "GET",
33
+ params: { f: encryptMenuQuery({ tool_product_uuid: toolProductUuid }) },
34
+ timeoutMs: ANALYSIS_MENU_TIMEOUT_MS,
35
+ });
36
+ }
37
+ export async function callBioApi(body, options) {
38
+ const envelope = await callBioApiEnvelope(body, options);
39
+ return envelope.data;
40
+ }
41
+ export async function callBioApiEnvelope(body, options) {
42
+ return requestAgentEnvelope(ANALYSIS_BIO_API_PATH, {
43
+ method: "POST",
44
+ body,
45
+ timeoutMs: ANALYSIS_BIO_TIMEOUT_MS,
46
+ allowSubmittedMessage: options?.allowSubmittedMessage,
47
+ });
48
+ }
49
+ export function bioBody(name, args, extra) {
50
+ return {
51
+ version: ANALYSIS_BIO_VERSION,
52
+ name,
53
+ ...(extra ? { extra_args: extra } : {}),
54
+ args,
55
+ };
56
+ }
57
+ export async function uploadLocalFile(filePath) {
58
+ const resolved = resolveUserPath(filePath);
59
+ let fileStat;
60
+ try {
61
+ fileStat = await stat(resolved);
62
+ }
63
+ catch {
64
+ throw new AnalysisError(`无法读取文件: ${filePath}`);
65
+ }
66
+ const buffer = await readFile(resolved);
67
+ const fileName = basename(resolved);
68
+ const ticket = await fetchUploadTicket();
69
+ const key = `${ticket.dir}/${fileName}`;
70
+ const form = new FormData();
71
+ form.set("key", key);
72
+ form.set("policy", ticket.policy);
73
+ form.set("OSSAccessKeyId", ticket.access_id);
74
+ form.set("success_action_status", "200");
75
+ form.set("signature", ticket.signature);
76
+ form.set("file", new Blob([new Uint8Array(buffer)]), fileName);
77
+ const host = ticket.host;
78
+ let response;
79
+ try {
80
+ response = await fetchWithTimeout(host, {
81
+ method: "POST",
82
+ headers: { "x-oss-object-acl": "public-read" },
83
+ body: form,
84
+ }, ANALYSIS_MENU_TIMEOUT_MS);
85
+ }
86
+ catch (error) {
87
+ if (error instanceof helixlifeError)
88
+ throw error;
89
+ throw new AnalysisError("文件上传失败,请检查网络后重试。");
90
+ }
91
+ if (!response.ok) {
92
+ throw new AnalysisError(`文件上传失败 (${response.status})`);
93
+ }
94
+ const hostRoot = host.replace(/\/$/, "");
95
+ return {
96
+ fileName,
97
+ fileOss: `${hostRoot}/${key}`,
98
+ fileOssPath: key,
99
+ fileSize: fileStat.size,
100
+ fileSizeMb: Number((fileStat.size / (1024 * 1024)).toFixed(2)),
101
+ };
102
+ }
103
+ async function fetchUploadTicket() {
104
+ const data = await requestAgent(ANALYSIS_UPLOAD_CONFIG_PATH, {
105
+ method: "GET",
106
+ params: { type: "bio", oss_type: "bio" },
107
+ timeoutMs: ANALYSIS_MENU_TIMEOUT_MS,
108
+ });
109
+ const ticket = decodeUploadTicket(data);
110
+ if (!ticket.host || !ticket.dir || !ticket.policy || !ticket.access_id || !ticket.signature) {
111
+ throw new AnalysisError("上传凭证缺少 host、dir 或签名字段。");
112
+ }
113
+ return ticket;
114
+ }
115
+ function decodeUploadTicket(data) {
116
+ const source = typeof data === "string" ? parseUploadTicket(data) : asObject(data);
117
+ if (!source) {
118
+ throw new AnalysisError("上传凭证不是有效 JSON。");
119
+ }
120
+ return {
121
+ host: textOf(source.host),
122
+ dir: textOf(source.dir),
123
+ policy: textOf(source.policy),
124
+ access_id: textOf(source.access_id),
125
+ signature: textOf(source.signature),
126
+ };
127
+ }
128
+ function parseUploadTicket(encoded) {
129
+ const decoded = Buffer.from(encoded, "base64").toString("utf8");
130
+ const json = decodeURIComponent(decoded.replaceAll("+", " "));
131
+ try {
132
+ const parsed = JSON.parse(json);
133
+ return asObject(parsed);
134
+ }
135
+ catch {
136
+ throw new AnalysisError("上传凭证不是有效 JSON。");
137
+ }
138
+ }
139
+ async function requestAgent(path, options) {
140
+ const envelope = await requestAgentEnvelope(path, options);
141
+ return envelope.data;
142
+ }
143
+ async function requestAgentEnvelope(path, options) {
144
+ const token = loadTokenFromFile();
145
+ if (!token) {
146
+ throw new helixlifeError(helixlifeErrorCode.NOT_AUTHENTICATED, NOT_AUTHENTICATED_MESSAGE);
147
+ }
148
+ const baseUrl = getDefaultAuthBaseUrl();
149
+ const url = new URL(path, baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`);
150
+ if (options.params) {
151
+ for (const [key, value] of Object.entries(options.params)) {
152
+ url.searchParams.set(key, String(value));
153
+ }
154
+ }
155
+ const version = getPackageVersion();
156
+ const headers = {
157
+ Accept: "application/json",
158
+ Authorization: `Bearer ${token}`,
159
+ platform: "pc",
160
+ source: "PC",
161
+ website: "helixlife-ai",
162
+ "x-user-identity": "open-sience-pro",
163
+ origin: baseUrl,
164
+ referer: baseUrl,
165
+ "User-Agent": `helix-cli/${version}`,
166
+ "X-Client-Version": version,
167
+ };
168
+ if (options.body) {
169
+ headers["Content-Type"] = "application/json";
170
+ }
171
+ const response = await fetchWithTimeout(url.toString(), {
172
+ method: options.method,
173
+ headers,
174
+ body: options.body ? JSON.stringify(options.body) : undefined,
175
+ }, options.timeoutMs);
176
+ const text = await response.text();
177
+ const payload = parsePayload(text, response.status);
178
+ if (!response.ok) {
179
+ if (options.allowSubmittedMessage && textOf(payload.message).includes("任务提交成功")) {
180
+ return payload;
181
+ }
182
+ throw mapHttpError(response.status, payload, text, url);
183
+ }
184
+ if (payload.success === false) {
185
+ if (options.allowSubmittedMessage && textOf(payload.message).includes("任务提交成功")) {
186
+ return payload;
187
+ }
188
+ throw mapBusinessError(payload);
189
+ }
190
+ return payload;
191
+ }
192
+ function parsePayload(text, status) {
193
+ if (!text.trim()) {
194
+ return {};
195
+ }
196
+ try {
197
+ const parsed = JSON.parse(text);
198
+ if (isJsonObject(parsed)) {
199
+ return parsed;
200
+ }
201
+ return { data: parsed };
202
+ }
203
+ catch {
204
+ throw new AnalysisError(`服务返回了无法解析的响应(HTTP ${status})。`);
205
+ }
206
+ }
207
+ function mapHttpError(status, payload, text, url) {
208
+ if (status === 401) {
209
+ return new helixlifeError(helixlifeErrorCode.TOKEN_EXPIRED, TOKEN_EXPIRED_MESSAGE);
210
+ }
211
+ if (status === 403 && isNetworkBlockedText(text)) {
212
+ return createNetworkBlockedError(url.hostname);
213
+ }
214
+ return mapBusinessError(payload, status);
215
+ }
216
+ function mapBusinessError(payload, status) {
217
+ const message = clarifyConfArgsMessage(textOf(payload.message) || "请求失败");
218
+ const code = String(payload.code ?? "");
219
+ if (isAuthMessage(message)) {
220
+ return new AnalysisError("您的授权已过期或无效,请重新完成授权。");
221
+ }
222
+ if (code.startsWith("403") || message.includes("无权限") || message.includes("权限")) {
223
+ const link = readPurchaseLink(payload) ?? "https://www.helixlife.cn/main/vip";
224
+ return new AnalysisError(`您的账号暂无使用权限,需要购买会员。购买链接: ${link}`);
225
+ }
226
+ if (code === "5000000101") {
227
+ return new AnalysisError("当前网络状态异常,请前往 https://www.helixlife.cn 联系客服");
228
+ }
229
+ if (code === "4000020101" || code === "400008") {
230
+ return new AnalysisError("您的账号状态异常,请联系 https://www.helixlife.cn");
231
+ }
232
+ if (code === "400004") {
233
+ return new AnalysisError("该菜单或商品已下架,请更换 tool_product_uuid 或 menu uuid。");
234
+ }
235
+ if (code === "50000" || code === "40000" || code === "40004") {
236
+ return new AnalysisError("请前往 https://www.helixlife.cn 联系客服");
237
+ }
238
+ if (message.includes("速率限制")) {
239
+ return new AnalysisError("建议次日再试");
240
+ }
241
+ if (status && status !== 200) {
242
+ return new AnalysisError(message || `请求失败 (${status})`);
243
+ }
244
+ return new AnalysisError(message || "操作失败,请联系客服 https://www.helixlife.cn");
245
+ }
246
+ function isAuthMessage(message) {
247
+ return (message.includes("未授权") ||
248
+ message.includes("请登录") ||
249
+ message.includes("重新登录") ||
250
+ message.includes("身份验证已过期"));
251
+ }
252
+ function readPurchaseLink(payload) {
253
+ const data = asObject(payload.data);
254
+ const link = textOf(data?.vip_buy_link);
255
+ if (link)
256
+ return link;
257
+ return textOf(payload.message).match(/https?:\/\/[^\s,。))]+/)?.[0];
258
+ }
259
+ export function historyId(fuid) {
260
+ return {
261
+ ...(fuid ? { fuid } : {}),
262
+ uuid: ANALYSIS_HISTORY_UUID,
263
+ };
264
+ }
265
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/modules/analysis/api.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAmB,MAAM,WAAW,CAAC;AAyB5E,4CAA4C;AAC5C,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;SACzD,QAAQ,CAAC,QAAQ,CAAC;SAClB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAA4B;IACjE,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/B,OAAO,KAAK,IAAI,yBAAyB,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,eAAuB;IAC1D,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,mBAAmB,EAAE;QACnD,MAAM,EAAE,KAAK;QACb,MAAM,EAAE;YACN,CAAC,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC;SACvE;QACD,SAAS,EAAE,wBAAwB;KACpC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,eAAuB;IACvE,MAAM,IAAI,GAAG,GAAG,mBAAmB,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;IAClE,OAAO,YAAY,CAAC,IAAI,EAAE;QACxB,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC,EAAE;QACvE,SAAS,EAAE,wBAAwB;KACpC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAgB,EAChB,OAA6C;IAE7C,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAgB,EAChB,OAA6C;IAE7C,OAAO,oBAAoB,CAAC,qBAAqB,EAAE;QACjD,MAAM,EAAE,MAAM;QACd,IAAI;QACJ,SAAS,EAAE,uBAAuB;QAClC,qBAAqB,EAAE,OAAO,EAAE,qBAAqB;KACtD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,IAAgB,EAAE,KAAkB;IACxE,OAAO;QACL,OAAO,EAAE,oBAAoB;QAC7B,IAAI;QACJ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,aAAa,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACzC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE/D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,gBAAgB,CAC/B,IAAI,EACJ;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE;YAC9C,IAAI,EAAE,IAAI;SACX,EACD,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,cAAc;YAAE,MAAM,KAAK,CAAC;QACjD,MAAM,IAAI,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,aAAa,CAAC,WAAW,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzC,OAAO;QACL,QAAQ;QACR,OAAO,EAAE,GAAG,QAAQ,IAAI,GAAG,EAAE;QAC7B,WAAW,EAAE,GAAG;QAChB,QAAQ,EAAE,QAAQ,CAAC,IAAI;QACvB,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB;IAC9B,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,2BAA2B,EAAE;QAC3D,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;QACxC,SAAS,EAAE,wBAAwB;KACpC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5F,MAAM,IAAI,aAAa,CAAC,wBAAwB,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAa;IACvC,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QACzB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,IAAY,EACZ,OAMC;IAED,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,IAAY,EACZ,OAMC;IAED,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,cAAc,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC3E,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,MAAM,OAAO,GAA2B;QACtC,MAAM,EAAE,kBAAkB;QAC1B,aAAa,EAAE,UAAU,KAAK,EAAE;QAChC,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,cAAc;QACvB,iBAAiB,EAAE,iBAAiB;QACpC,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,aAAa,OAAO,EAAE;QACpC,kBAAkB,EAAE,OAAO;KAC5B,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,GAAG,CAAC,QAAQ,EAAE,EACd;QACE,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO;QACP,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9D,EACD,OAAO,CAAC,SAAS,CAClB,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,OAAO,CAAC,qBAAqB,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChF,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,qBAAqB,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChF,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,MAAc;IAChD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,MAAuB,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,aAAa,CACrB,qBAAqB,MAAM,IAAI,CAChC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CACnB,MAAc,EACd,OAAsB,EACtB,IAAY,EACZ,GAAQ;IAER,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,OAAO,IAAI,cAAc,CAAC,kBAAkB,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAsB,EAAE,MAAe;IAC/D,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACxC,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,mCAAmC,CAAC;QAC9E,OAAO,IAAI,aAAa,CACtB,2BAA2B,IAAI,EAAE,CAClC,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,OAAO,IAAI,aAAa,CAAC,4CAA4C,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO,IAAI,aAAa,CAAC,uCAAuC,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,IAAI,aAAa,CAAC,8CAA8C,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7D,OAAO,IAAI,aAAa,CAAC,mCAAmC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,MAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QAC7B,OAAO,IAAI,aAAa,CAAC,OAAO,IAAI,SAAS,MAAM,GAAG,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,aAAa,CAAC,OAAO,IAAI,qCAAqC,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAsB;IAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACxC,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,OAAO;QACL,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,IAAI,EAAE,qBAAqB;KAC5B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,159 @@
1
+ import { type JsonObject } from "./json.js";
2
+ export interface FetchAllResult {
3
+ args_main: unknown[];
4
+ args_specific: unknown[];
5
+ args_data: unknown[];
6
+ notice: string;
7
+ id: JsonObject;
8
+ }
9
+ export interface DownloadItem {
10
+ device: string;
11
+ endpoint: string;
12
+ fuid: string;
13
+ index: unknown;
14
+ info: unknown;
15
+ label: string;
16
+ pos: unknown;
17
+ sign: unknown;
18
+ }
19
+ export interface HistoryPage {
20
+ currentPage: number;
21
+ info: string;
22
+ lastPage: number;
23
+ perPage: number;
24
+ records: JsonObject[];
25
+ total: number;
26
+ }
27
+ export interface CloudPage {
28
+ columnAttrs: unknown[];
29
+ currentPage: number;
30
+ filter: {
31
+ options: unknown[];
32
+ value: unknown[];
33
+ };
34
+ info: string;
35
+ lastPage: number;
36
+ perPage: number;
37
+ records: JsonObject[];
38
+ total: number;
39
+ }
40
+ export interface SubmitResult {
41
+ asyncSubmission: boolean;
42
+ body: string;
43
+ downloads: DownloadItem[];
44
+ file?: string;
45
+ message: string;
46
+ }
47
+ export interface UploadRef {
48
+ fileName: string;
49
+ fileOss: string;
50
+ fileOssPath?: string;
51
+ fileSize: number;
52
+ fileSizeMb?: number;
53
+ }
54
+ export type PreparedInput = {
55
+ kind: "none";
56
+ } | {
57
+ kind: "cloud";
58
+ cloud: {
59
+ key: string;
60
+ label: string;
61
+ record: JsonObject;
62
+ };
63
+ } | {
64
+ kind: "record";
65
+ record: {
66
+ key: string;
67
+ label: string;
68
+ moduleId: string;
69
+ moduleName: string;
70
+ recordId: string;
71
+ recordName: string;
72
+ time: string;
73
+ };
74
+ } | {
75
+ kind: "upload";
76
+ uploads: Array<{
77
+ key: string;
78
+ label: string;
79
+ upload: UploadRef;
80
+ }>;
81
+ };
82
+ export declare function fetchAllArgs(moduleId: string, uuid: string): Promise<FetchAllResult>;
83
+ export declare function updateArgs(input: {
84
+ moduleId: string;
85
+ uuid: string;
86
+ argsData: JsonObject;
87
+ argsKey: string;
88
+ argsMain: JsonObject;
89
+ argsSpecific: JsonObject;
90
+ }): Promise<FetchAllResult>;
91
+ export declare function searchSpecificOptions(input: {
92
+ moduleId: string;
93
+ uuid: string;
94
+ argsData: JsonObject;
95
+ argsKey: string;
96
+ listen: unknown;
97
+ searchString: string;
98
+ selected: unknown;
99
+ }): Promise<unknown[]>;
100
+ export declare function fetchCloudPage(input: {
101
+ moduleId: string;
102
+ uuid: string;
103
+ argsKey: string;
104
+ currentPage: number;
105
+ filter: string;
106
+ selectedRecord?: JsonObject;
107
+ }): Promise<CloudPage>;
108
+ export declare function verifyUpload(input: {
109
+ moduleId: string;
110
+ uuid: string;
111
+ argsMain: JsonObject;
112
+ uploads: Array<{
113
+ key: string;
114
+ upload: UploadRef;
115
+ }>;
116
+ }): Promise<{
117
+ duid: string;
118
+ schema: unknown[];
119
+ }>;
120
+ export declare function submitModule(input: {
121
+ moduleId: string;
122
+ uuid: string;
123
+ route: string;
124
+ argsMain: JsonObject;
125
+ argsSpecific: JsonObject;
126
+ argsData: JsonObject;
127
+ }): Promise<SubmitResult>;
128
+ export declare function resolveDownloadUrl(input: {
129
+ moduleId: string;
130
+ uuid: string;
131
+ item: DownloadItem;
132
+ }): Promise<{
133
+ url: string;
134
+ fileName?: string;
135
+ }>;
136
+ export declare function saveOutput(input: {
137
+ fuid: string;
138
+ uuid: string;
139
+ moduleId: string;
140
+ name: string;
141
+ }): Promise<void>;
142
+ export declare function fetchHistoryPage(currentPage: number): Promise<HistoryPage>;
143
+ export declare function fetchHistoryDownloads(fuid: string): Promise<{
144
+ body: string;
145
+ downloads: DownloadItem[];
146
+ }>;
147
+ export declare function renameHistory(fuid: string, newName: string): Promise<void>;
148
+ export declare function deleteHistory(fuid: string): Promise<void>;
149
+ export declare function findHistoryByFuid(fuid: string): Promise<JsonObject | null>;
150
+ export declare function historyStatus(record: JsonObject): string;
151
+ export declare function isHistoryFinished(status: string): boolean;
152
+ export declare function isHistoryFailed(status: string): boolean;
153
+ export declare function collectResultDownloads(data: unknown): DownloadItem[];
154
+ export declare function uploadInfo(uploads: Array<{
155
+ key: string;
156
+ upload: UploadRef;
157
+ }>): JsonObject;
158
+ export declare function buildSubmitArgsData(duid: string, input: PreparedInput): JsonObject;
159
+ //# sourceMappingURL=bio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bio.d.ts","sourceRoot":"","sources":["../../../src/modules/analysis/bio.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,UAAU,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,OAAO,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAAC,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAA;CAAE,GAC5E;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AAE1F,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAS1F;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,UAAU,CAAC;CAC1B,GAAG,OAAO,CAAC,cAAc,CAAC,CAa1B;AAED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAcrB;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,UAAU,CAAC;CAC7B,GAAG,OAAO,CAAC,SAAS,CAAC,CAmCrB;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;CACpD,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CAe/C;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,UAAU,CAAC;IACzB,QAAQ,EAAE,UAAU,CAAC;CACtB,GAAG,OAAO,CAAC,YAAY,CAAC,CA2BxB;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;CACpB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqB9C;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhB;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAiBhF;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B,CAAC,CAYD;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhF;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM/D;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAahF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAExD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,EAAE,CASpE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,GAAG,UAAU,CAYzF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,UAAU,CAwBlF"}