@round2ai/r2-cli 1.0.2 → 1.0.3

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 (158) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +843 -181
  3. package/dist/index.js.map +7 -1
  4. package/package.json +8 -4
  5. package/dist/api.d.ts +0 -45
  6. package/dist/api.d.ts.map +0 -1
  7. package/dist/api.js +0 -90
  8. package/dist/api.js.map +0 -1
  9. package/dist/auth.d.ts +0 -35
  10. package/dist/auth.d.ts.map +0 -1
  11. package/dist/auth.js +0 -240
  12. package/dist/auth.js.map +0 -1
  13. package/dist/commands/ai/chat.d.ts +0 -9
  14. package/dist/commands/ai/chat.d.ts.map +0 -1
  15. package/dist/commands/ai/chat.js +0 -16
  16. package/dist/commands/ai/chat.js.map +0 -1
  17. package/dist/commands/ai/skills.d.ts +0 -9
  18. package/dist/commands/ai/skills.d.ts.map +0 -1
  19. package/dist/commands/ai/skills.js +0 -16
  20. package/dist/commands/ai/skills.js.map +0 -1
  21. package/dist/commands/auth/login.d.ts +0 -24
  22. package/dist/commands/auth/login.d.ts.map +0 -1
  23. package/dist/commands/auth/login.js +0 -288
  24. package/dist/commands/auth/login.js.map +0 -1
  25. package/dist/commands/auth/logout.d.ts +0 -16
  26. package/dist/commands/auth/logout.d.ts.map +0 -1
  27. package/dist/commands/auth/logout.js +0 -49
  28. package/dist/commands/auth/logout.js.map +0 -1
  29. package/dist/commands/auth/status.d.ts +0 -28
  30. package/dist/commands/auth/status.d.ts.map +0 -1
  31. package/dist/commands/auth/status.js +0 -92
  32. package/dist/commands/auth/status.js.map +0 -1
  33. package/dist/commands/base.d.ts +0 -107
  34. package/dist/commands/base.d.ts.map +0 -1
  35. package/dist/commands/base.js +0 -153
  36. package/dist/commands/base.js.map +0 -1
  37. package/dist/commands/business/pricing.d.ts +0 -9
  38. package/dist/commands/business/pricing.d.ts.map +0 -1
  39. package/dist/commands/business/pricing.js +0 -16
  40. package/dist/commands/business/pricing.js.map +0 -1
  41. package/dist/commands/business/report.d.ts +0 -9
  42. package/dist/commands/business/report.d.ts.map +0 -1
  43. package/dist/commands/business/report.js +0 -16
  44. package/dist/commands/business/report.js.map +0 -1
  45. package/dist/commands/inventory/risk.d.ts +0 -9
  46. package/dist/commands/inventory/risk.d.ts.map +0 -1
  47. package/dist/commands/inventory/risk.js +0 -16
  48. package/dist/commands/inventory/risk.js.map +0 -1
  49. package/dist/config.d.ts +0 -54
  50. package/dist/config.d.ts.map +0 -1
  51. package/dist/config.js +0 -111
  52. package/dist/config.js.map +0 -1
  53. package/dist/index.d.ts +0 -7
  54. package/dist/index.d.ts.map +0 -1
  55. package/dist/query/executor.d.ts +0 -138
  56. package/dist/query/executor.d.ts.map +0 -1
  57. package/dist/query/executor.js +0 -232
  58. package/dist/query/executor.js.map +0 -1
  59. package/dist/query/types.d.ts +0 -116
  60. package/dist/query/types.d.ts.map +0 -1
  61. package/dist/query/types.js +0 -15
  62. package/dist/query/types.js.map +0 -1
  63. package/dist/query/utils.d.ts +0 -99
  64. package/dist/query/utils.d.ts.map +0 -1
  65. package/dist/query/utils.js +0 -151
  66. package/dist/query/utils.js.map +0 -1
  67. package/dist/services/ServiceContainer.d.ts +0 -110
  68. package/dist/services/ServiceContainer.d.ts.map +0 -1
  69. package/dist/services/ServiceContainer.js +0 -242
  70. package/dist/services/ServiceContainer.js.map +0 -1
  71. package/dist/services/api/client.d.ts +0 -88
  72. package/dist/services/api/client.d.ts.map +0 -1
  73. package/dist/services/api/client.js +0 -188
  74. package/dist/services/api/client.js.map +0 -1
  75. package/dist/services/api/types.d.ts +0 -233
  76. package/dist/services/api/types.d.ts.map +0 -1
  77. package/dist/services/api/types.js +0 -83
  78. package/dist/services/api/types.js.map +0 -1
  79. package/dist/services/auth/provider.d.ts +0 -73
  80. package/dist/services/auth/provider.d.ts.map +0 -1
  81. package/dist/services/auth/provider.js +0 -339
  82. package/dist/services/auth/provider.js.map +0 -1
  83. package/dist/services/auth/session.d.ts +0 -73
  84. package/dist/services/auth/session.d.ts.map +0 -1
  85. package/dist/services/auth/session.js +0 -200
  86. package/dist/services/auth/session.js.map +0 -1
  87. package/dist/services/business/demand.d.ts +0 -70
  88. package/dist/services/business/demand.d.ts.map +0 -1
  89. package/dist/services/business/demand.js +0 -240
  90. package/dist/services/business/demand.js.map +0 -1
  91. package/dist/services/business/fulfillment.d.ts +0 -122
  92. package/dist/services/business/fulfillment.d.ts.map +0 -1
  93. package/dist/services/business/fulfillment.js +0 -267
  94. package/dist/services/business/fulfillment.js.map +0 -1
  95. package/dist/services/business/inventory.d.ts +0 -54
  96. package/dist/services/business/inventory.d.ts.map +0 -1
  97. package/dist/services/business/inventory.js +0 -245
  98. package/dist/services/business/inventory.js.map +0 -1
  99. package/dist/services/business/pricing.d.ts +0 -41
  100. package/dist/services/business/pricing.d.ts.map +0 -1
  101. package/dist/services/business/pricing.js +0 -133
  102. package/dist/services/business/pricing.js.map +0 -1
  103. package/dist/services/business/report.d.ts +0 -74
  104. package/dist/services/business/report.d.ts.map +0 -1
  105. package/dist/services/business/report.js +0 -380
  106. package/dist/services/business/report.js.map +0 -1
  107. package/dist/services/config/manager.d.ts +0 -105
  108. package/dist/services/config/manager.d.ts.map +0 -1
  109. package/dist/services/config/manager.js +0 -324
  110. package/dist/services/config/manager.js.map +0 -1
  111. package/dist/services/config/types.d.ts +0 -128
  112. package/dist/services/config/types.d.ts.map +0 -1
  113. package/dist/services/config/types.js +0 -209
  114. package/dist/services/config/types.js.map +0 -1
  115. package/dist/services/index.d.ts +0 -17
  116. package/dist/services/index.d.ts.map +0 -1
  117. package/dist/services/index.js +0 -44
  118. package/dist/services/index.js.map +0 -1
  119. package/dist/services/storage/index.d.ts +0 -63
  120. package/dist/services/storage/index.d.ts.map +0 -1
  121. package/dist/services/storage/index.js +0 -136
  122. package/dist/services/storage/index.js.map +0 -1
  123. package/dist/types/api.d.ts +0 -58
  124. package/dist/types/api.d.ts.map +0 -1
  125. package/dist/types/api.js +0 -5
  126. package/dist/types/api.js.map +0 -1
  127. package/dist/types/auth.d.ts +0 -59
  128. package/dist/types/auth.d.ts.map +0 -1
  129. package/dist/types/auth.js +0 -11
  130. package/dist/types/auth.js.map +0 -1
  131. package/dist/types/business.d.ts +0 -201
  132. package/dist/types/business.d.ts.map +0 -1
  133. package/dist/types/business.js +0 -5
  134. package/dist/types/business.js.map +0 -1
  135. package/dist/types/command.d.ts +0 -106
  136. package/dist/types/command.d.ts.map +0 -1
  137. package/dist/types/command.js +0 -5
  138. package/dist/types/command.js.map +0 -1
  139. package/dist/types/config.d.ts +0 -66
  140. package/dist/types/config.d.ts.map +0 -1
  141. package/dist/types/config.js +0 -5
  142. package/dist/types/config.js.map +0 -1
  143. package/dist/utils/async.d.ts +0 -79
  144. package/dist/utils/async.d.ts.map +0 -1
  145. package/dist/utils/async.js +0 -179
  146. package/dist/utils/async.js.map +0 -1
  147. package/dist/utils/format.d.ts +0 -90
  148. package/dist/utils/format.d.ts.map +0 -1
  149. package/dist/utils/format.js +0 -227
  150. package/dist/utils/format.js.map +0 -1
  151. package/dist/utils/logger.d.ts +0 -136
  152. package/dist/utils/logger.d.ts.map +0 -1
  153. package/dist/utils/logger.js +0 -249
  154. package/dist/utils/logger.js.map +0 -1
  155. package/dist/utils/validation.d.ts +0 -100
  156. package/dist/utils/validation.d.ts.map +0 -1
  157. package/dist/utils/validation.js +0 -334
  158. package/dist/utils/validation.js.map +0 -1
package/dist/config.js DELETED
@@ -1,111 +0,0 @@
1
- import fse from "fs-extra";
2
- import path from "node:path";
3
- import os from "node:os";
4
- const CONFIG_DIR = path.join(os.homedir(), ".r2-cli");
5
- const CONFIG_FILE = path.join(CONFIG_DIR, "config.json");
6
- /**
7
- * 确保配置目录存在
8
- */
9
- async function ensureConfigDir() {
10
- await fse.ensureDir(CONFIG_DIR);
11
- }
12
- /**
13
- * 读取配置文件
14
- */
15
- export async function readConfig() {
16
- try {
17
- await ensureConfigDir();
18
- if (await fse.pathExists(CONFIG_FILE)) {
19
- return await fse.readJSON(CONFIG_FILE);
20
- }
21
- return {};
22
- }
23
- catch (error) {
24
- console.error("读取配置文件失败:", error);
25
- return {};
26
- }
27
- }
28
- /**
29
- * 写入配置文件
30
- */
31
- export async function writeConfig(config) {
32
- try {
33
- await ensureConfigDir();
34
- await fse.writeJSON(CONFIG_FILE, config, { spaces: 2 });
35
- }
36
- catch (error) {
37
- console.error("写入配置文件失败:", error);
38
- throw error;
39
- }
40
- }
41
- /**
42
- * 更新配置
43
- */
44
- export async function updateConfig(updates) {
45
- const config = await readConfig();
46
- const newConfig = { ...config, ...updates };
47
- await writeConfig(newConfig);
48
- return newConfig;
49
- }
50
- /**
51
- * 获取登录状态
52
- */
53
- export async function getAuthStatus() {
54
- const config = await readConfig();
55
- if (!config.auth?.accessToken || !config.auth?.expiresAt) {
56
- return false;
57
- }
58
- // 检查 token 是否过期
59
- const now = Date.now();
60
- return config.auth.expiresAt > now;
61
- }
62
- /**
63
- * 保存登录信息
64
- */
65
- export async function saveAuthInfo(authInfo) {
66
- const expiresAt = Date.now() + authInfo.expiresIn * 1000;
67
- await updateConfig({
68
- auth: {
69
- accessToken: authInfo.accessToken,
70
- refreshToken: authInfo.refreshToken,
71
- userId: authInfo.userId,
72
- username: authInfo.username,
73
- expiresAt,
74
- },
75
- });
76
- }
77
- /**
78
- * 清除登录信息
79
- */
80
- export async function clearAuthInfo() {
81
- const config = await readConfig();
82
- delete config.auth;
83
- await writeConfig(config);
84
- }
85
- /**
86
- * 获取访问令牌
87
- */
88
- export async function getAccessToken() {
89
- const config = await readConfig();
90
- if (!(await getAuthStatus())) {
91
- return null;
92
- }
93
- return config.auth?.accessToken || null;
94
- }
95
- /**
96
- * 获取用户信息
97
- */
98
- export async function getUserInfo() {
99
- const config = await readConfig();
100
- if (!(await getAuthStatus())) {
101
- return null;
102
- }
103
- if (!config.auth?.userId || !config.auth?.username) {
104
- return null;
105
- }
106
- return {
107
- userId: config.auth.userId,
108
- username: config.auth.username,
109
- };
110
- }
111
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * R2-CLI 主入口
4
- * 向 AI 开放二手潮奢交易全链路能力
5
- */
6
- export {};
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
@@ -1,138 +0,0 @@
1
- /**
2
- * 查询执行器 - 参考 claude-code 的 query.ts 设计
3
- * 支持异步流式输出、进度报告、状态管理
4
- */
5
- /** 查询进度事件类型 */
6
- export type ProgressEventType = "start" | "update" | "complete" | "error";
7
- /** 查询进度事件 */
8
- export interface ProgressEvent {
9
- type: ProgressEventType;
10
- message: string;
11
- progress?: number;
12
- timestamp?: number;
13
- }
14
- /** 查询结果元数据 */
15
- export interface QueryMetadata {
16
- duration: number;
17
- success: boolean;
18
- errors?: string[];
19
- [key: string]: unknown;
20
- }
21
- /** 查询结果 */
22
- export interface QueryResult<T = unknown> {
23
- data: T;
24
- metadata: QueryMetadata;
25
- progress?: ProgressEvent[];
26
- }
27
- /** 查询定义 */
28
- export interface QueryDefinition<T = unknown> {
29
- /** 查询唯一标识 */
30
- id: string;
31
- /** 查询描述 */
32
- description: string;
33
- /** 查询执行依赖 */
34
- deps: QueryDeps;
35
- /** 查询执行函数 */
36
- execute: (deps: QueryDeps, signal?: AbortSignal) => Promise<T>;
37
- /** 查询选项 */
38
- options?: {
39
- /** 超时时间(毫秒) */
40
- timeout?: number;
41
- /** 是否启用进度报告 */
42
- enableProgress?: boolean;
43
- };
44
- }
45
- /** 查询依赖 */
46
- export interface QueryDeps {
47
- /** 信号控制器 */
48
- signal: AbortSignal | null;
49
- /** 生成 UUID */
50
- uuid: () => string;
51
- /** API 客户端 */
52
- api: {
53
- get: <T = unknown>(url: string) => Promise<T>;
54
- post: <T = unknown>(url: string, body?: unknown) => Promise<T>;
55
- };
56
- /** 日志记录 */
57
- log: {
58
- info: (message: string) => void;
59
- error: (message: string, error?: unknown) => void;
60
- debug: (message: string) => void;
61
- };
62
- }
63
- /** 查询状态 */
64
- export type QueryStatus = "idle" | "running" | "completed" | "error" | "aborted";
65
- /** 查询上下文 - 查询执行过程中的状态管理 */
66
- export interface QueryContext<T = unknown> {
67
- /** 查询 ID */
68
- id: string;
69
- /** 查询状态 */
70
- status: QueryStatus;
71
- /** 开始时间 */
72
- startTime: number;
73
- /** 结束时间 */
74
- endTime?: number;
75
- /** 当前进度 */
76
- progress: number;
77
- /** 进度事件历史 */
78
- progressEvents: ProgressEvent[];
79
- /** 结果数据 */
80
- result?: QueryResult<T>;
81
- /** 错误信息 */
82
- error?: Error;
83
- }
84
- /**
85
- * 异步查询执行器
86
- *
87
- * 参考 claude-code 的 query 函数设计,使用 AsyncGenerator 模式
88
- * 支持流式输出进度事件和最终结果
89
- *
90
- * @example
91
- * ```typescript
92
- * const query: QueryDefinition<UserInfo> = {
93
- * id: "qrcode-login",
94
- * description: "扫码登录",
95
- * deps: deps,
96
- * execute: async (deps, signal) => {
97
- * return await loginWithQrcode(deps, signal);
98
- * }
99
- * };
100
- *
101
- * for await (const event of executeQuery(query)) {
102
- * if (event.type === "progress") {
103
- * console.log(event.message, event.progress);
104
- * } else if (event.type === "result") {
105
- * console.log("完成:", event.data);
106
- * }
107
- * }
108
- * ```
109
- */
110
- export declare function executeQuery<T = unknown>(query: QueryDefinition<T>, customDeps?: Partial<QueryDeps>): AsyncGenerator<ProgressEvent | QueryResult<T>, QueryResult<T>, unknown>;
111
- /**
112
- * 轮询查询执行器 - 适用于需要轮询检查状态的场景
113
- * 如:扫码登录状态轮询
114
- */
115
- export interface PollingQueryOptions<T> {
116
- /** 轮询间隔(毫秒) */
117
- interval: number;
118
- /** 超时时间(毫秒) */
119
- timeout: number;
120
- /** 条件函数 - 判断是否完成 */
121
- condition: (data: T) => boolean;
122
- /** 进度回调 */
123
- onProgress?: (progress: number, message: string) => void;
124
- }
125
- export declare function executePollingQuery<T = unknown>(query: QueryDefinition<T>, options: PollingQueryOptions<T>): AsyncGenerator<ProgressEvent | QueryResult<T>, QueryResult<T>, unknown>;
126
- /**
127
- * 延迟函数
128
- */
129
- export declare function sleep(ms: number): Promise<void>;
130
- /**
131
- * 生成 UUID
132
- */
133
- export declare function createUUID(): string;
134
- /**
135
- * 创建默认的查询依赖
136
- */
137
- export declare function createDefaultDeps(signal?: AbortSignal | null): QueryDeps;
138
- //# sourceMappingURL=executor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/query/executor.ts"],"names":[],"mappings":"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"}
@@ -1,232 +0,0 @@
1
- /**
2
- * 查询执行器 - 参考 claude-code 的 query.ts 设计
3
- * 支持异步流式输出、进度报告、状态管理
4
- */
5
- // ==================== 查询执行器 ====================
6
- /**
7
- * 异步查询执行器
8
- *
9
- * 参考 claude-code 的 query 函数设计,使用 AsyncGenerator 模式
10
- * 支持流式输出进度事件和最终结果
11
- *
12
- * @example
13
- * ```typescript
14
- * const query: QueryDefinition<UserInfo> = {
15
- * id: "qrcode-login",
16
- * description: "扫码登录",
17
- * deps: deps,
18
- * execute: async (deps, signal) => {
19
- * return await loginWithQrcode(deps, signal);
20
- * }
21
- * };
22
- *
23
- * for await (const event of executeQuery(query)) {
24
- * if (event.type === "progress") {
25
- * console.log(event.message, event.progress);
26
- * } else if (event.type === "result") {
27
- * console.log("完成:", event.data);
28
- * }
29
- * }
30
- * ```
31
- */
32
- export async function* executeQuery(query, customDeps) {
33
- const deps = {
34
- ...query.deps,
35
- ...customDeps,
36
- };
37
- const ctx = {
38
- id: query.id,
39
- status: "idle",
40
- startTime: Date.now(),
41
- progress: 0,
42
- progressEvents: [],
43
- };
44
- ctx.status = "running";
45
- try {
46
- // 发送开始事件
47
- const startEvent = {
48
- type: "start",
49
- message: `开始执行: ${query.description}`,
50
- timestamp: Date.now(),
51
- };
52
- ctx.progressEvents.push(startEvent);
53
- yield startEvent;
54
- // 执行查询
55
- const startTime = Date.now();
56
- const data = await query.execute(deps, deps.signal ?? undefined);
57
- const duration = Date.now() - startTime;
58
- // 发送完成事件
59
- const completeEvent = {
60
- type: "complete",
61
- message: `${query.description} 完成`,
62
- progress: 100,
63
- timestamp: Date.now(),
64
- };
65
- ctx.progressEvents.push(completeEvent);
66
- yield completeEvent;
67
- // 构建结果
68
- const result = {
69
- data,
70
- metadata: {
71
- duration,
72
- success: true,
73
- },
74
- progress: ctx.progressEvents,
75
- };
76
- ctx.status = "completed";
77
- ctx.endTime = Date.now();
78
- ctx.result = result;
79
- return result;
80
- }
81
- catch (error) {
82
- const errorMessage = error instanceof Error ? error.message : String(error);
83
- // 发送错误事件
84
- const errorEvent = {
85
- type: "error",
86
- message: `执行失败: ${errorMessage}`,
87
- timestamp: Date.now(),
88
- };
89
- ctx.progressEvents.push(errorEvent);
90
- yield errorEvent;
91
- ctx.status = "error";
92
- ctx.endTime = Date.now();
93
- ctx.error = error instanceof Error ? error : new Error(errorMessage);
94
- // 返回错误结果
95
- const errorResult = {
96
- data: null,
97
- metadata: {
98
- duration: Date.now() - ctx.startTime,
99
- success: false,
100
- errors: [errorMessage],
101
- },
102
- progress: ctx.progressEvents,
103
- };
104
- throw error;
105
- }
106
- }
107
- export async function* executePollingQuery(query, options) {
108
- const { interval, timeout, condition, onProgress } = options;
109
- const startTime = Date.now();
110
- yield {
111
- type: "start",
112
- message: `开始轮询: ${query.description}`,
113
- timestamp: startTime,
114
- };
115
- let attempts = 0;
116
- let lastData = null;
117
- while (Date.now() - startTime < timeout) {
118
- attempts++;
119
- // 检查是否被中止
120
- if (query.deps.signal?.aborted) {
121
- throw new Error("查询被中止");
122
- }
123
- try {
124
- const data = await query.execute(query.deps);
125
- lastData = data;
126
- // 计算进度
127
- const progress = Math.min(Math.floor(((Date.now() - startTime) / timeout) * 100), 99);
128
- // 触发进度回调
129
- onProgress?.(progress, `轮询中... (第 ${attempts} 次)`);
130
- yield {
131
- type: "update",
132
- message: `轮询中... (第 ${attempts} 次)`,
133
- progress,
134
- timestamp: Date.now(),
135
- };
136
- // 检查条件是否满足
137
- if (condition(data)) {
138
- const duration = Date.now() - startTime;
139
- yield {
140
- type: "complete",
141
- message: `轮询完成 (共 ${attempts} 次)`,
142
- progress: 100,
143
- timestamp: Date.now(),
144
- };
145
- return {
146
- data,
147
- metadata: {
148
- duration,
149
- success: true,
150
- attempts,
151
- },
152
- };
153
- }
154
- }
155
- catch (error) {
156
- const errorMessage = error instanceof Error ? error.message : String(error);
157
- yield {
158
- type: "error",
159
- message: `轮询错误: ${errorMessage}`,
160
- timestamp: Date.now(),
161
- };
162
- throw error;
163
- }
164
- // 等待下一次轮询
165
- await sleep(interval);
166
- }
167
- // 超时
168
- throw new Error(`轮询超时: ${query.description} (已等待 ${timeout}ms, 共 ${attempts} 次)`);
169
- }
170
- // ==================== 工具函数 ====================
171
- /**
172
- * 延迟函数
173
- */
174
- export function sleep(ms) {
175
- return new Promise(resolve => setTimeout(resolve, ms));
176
- }
177
- /**
178
- * 生成 UUID
179
- */
180
- export function createUUID() {
181
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, c => {
182
- const r = (Math.random() * 16) | 0;
183
- const v = c === "x" ? r : (r & 0x3) | 0x8;
184
- return v.toString(16);
185
- });
186
- }
187
- /**
188
- * 创建默认的查询依赖
189
- */
190
- export function createDefaultDeps(signal = null) {
191
- return {
192
- signal,
193
- uuid: createUUID,
194
- api: {
195
- get: async (url) => {
196
- const response = await fetch(url);
197
- if (!response.ok) {
198
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
199
- }
200
- return response.json();
201
- },
202
- post: async (url, body) => {
203
- const init = {
204
- method: "POST",
205
- headers: {
206
- "Content-Type": "application/json",
207
- },
208
- };
209
- if (body !== undefined) {
210
- init.body = JSON.stringify(body);
211
- }
212
- const response = await fetch(url, init);
213
- if (!response.ok) {
214
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
215
- }
216
- return response.json();
217
- },
218
- },
219
- log: {
220
- info: (message) => console.log(`[INFO] ${message}`),
221
- error: (message, error) => {
222
- console.error(`[ERROR] ${message}`, error);
223
- },
224
- debug: (message) => {
225
- if (process.env.DEBUG === "true") {
226
- console.log(`[DEBUG] ${message}`);
227
- }
228
- },
229
- },
230
- };
231
- }
232
- //# sourceMappingURL=executor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/query/executor.ts"],"names":[],"mappings":"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"}
@@ -1,116 +0,0 @@
1
- /**
2
- * 查询相关类型定义
3
- */
4
- /**
5
- * 查询进度事件类型
6
- */
7
- export type ProgressEventType = "start" | "update" | "complete" | "error" | "warning";
8
- /**
9
- * 查询进度事件
10
- */
11
- export interface ProgressEvent {
12
- type: ProgressEventType;
13
- message: string;
14
- progress?: number;
15
- timestamp: Date;
16
- details?: unknown;
17
- }
18
- /**
19
- * 查询结果元数据
20
- */
21
- export interface QueryMetadata {
22
- id: string;
23
- type: string;
24
- startTime: Date;
25
- endTime?: Date;
26
- duration?: number;
27
- status: "pending" | "running" | "completed" | "failed" | "cancelled";
28
- errors?: string[];
29
- }
30
- /**
31
- * 查询结果
32
- */
33
- export interface QueryResult<T = unknown> {
34
- data: T;
35
- metadata: QueryMetadata;
36
- progress: ProgressEvent[];
37
- }
38
- /**
39
- * 查询定义
40
- */
41
- export interface QueryDefinition<T> {
42
- id: string;
43
- type: string;
44
- params: Record<string, unknown>;
45
- execute: (params: Record<string, unknown>, deps: QueryDeps) => Promise<T>;
46
- metadata?: {
47
- retryCount?: number;
48
- [key: string]: unknown;
49
- };
50
- }
51
- /**
52
- * 查询请求定义(用于命令层)
53
- */
54
- export interface QueryRequest<T> {
55
- query: QueryDefinition<T>;
56
- deps: QueryDeps;
57
- options?: QueryOptions;
58
- }
59
- /**
60
- * 查询依赖
61
- */
62
- export interface QueryDeps {
63
- api: any;
64
- auth: any;
65
- config: any;
66
- services: Map<string, unknown>;
67
- }
68
- /**
69
- * 查询状态
70
- */
71
- export declare enum QueryState {
72
- IDLE = "idle",
73
- RUNNING = "running",
74
- COMPLETED = "completed",
75
- FAILED = "failed",
76
- CANCELLED = "cancelled"
77
- }
78
- /**
79
- * 查询上下文
80
- */
81
- export interface QueryContext {
82
- id: string;
83
- type: string;
84
- state: QueryState;
85
- params: Record<string, unknown>;
86
- startTime: Date;
87
- endTime?: Date;
88
- progress: ProgressEvent[];
89
- errors: Error[];
90
- }
91
- /**
92
- * 查询处理器
93
- */
94
- export interface QueryHandler {
95
- canHandle(queryType: string): boolean;
96
- handle(context: QueryContext, deps: QueryDeps): Promise<QueryResult>;
97
- }
98
- /**
99
- * 查询配置
100
- */
101
- export interface QueryConfig {
102
- maxConcurrent: number;
103
- timeout: number;
104
- retryCount: number;
105
- enableProgress: boolean;
106
- }
107
- /**
108
- * 查询选项
109
- */
110
- export interface QueryOptions {
111
- context?: Partial<QueryContext>;
112
- onProgress?: (event: ProgressEvent) => void;
113
- onError?: (error: Error) => void;
114
- timeout?: number;
115
- }
116
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/query/types.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * 查询相关类型定义
3
- */
4
- /**
5
- * 查询状态
6
- */
7
- export var QueryState;
8
- (function (QueryState) {
9
- QueryState["IDLE"] = "idle";
10
- QueryState["RUNNING"] = "running";
11
- QueryState["COMPLETED"] = "completed";
12
- QueryState["FAILED"] = "failed";
13
- QueryState["CANCELLED"] = "cancelled";
14
- })(QueryState || (QueryState = {}));
15
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/query/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyEH;;GAEG;AACH,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,2BAAa,CAAA;IACb,iCAAmB,CAAA;IACnB,qCAAuB,CAAA;IACvB,+BAAiB,CAAA;IACjB,qCAAuB,CAAA;AACzB,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB"}