@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
@@ -1,201 +0,0 @@
1
- /**
2
- * 业务领域类型定义
3
- */
4
- /**
5
- * 商品 SKU 信息
6
- */
7
- export interface SKU {
8
- id: string;
9
- name: string;
10
- brand: string;
11
- category: string;
12
- condition: "A" | "B" | "C" | "D";
13
- originalPrice?: number;
14
- currentValue?: number;
15
- images?: string[];
16
- description?: string;
17
- }
18
- /**
19
- * 地区信息
20
- */
21
- export interface Region {
22
- code: string;
23
- name: string;
24
- level: "national" | "provincial" | "city" | "district";
25
- }
26
- /**
27
- * 市场需求分析结果
28
- */
29
- export interface DemandAnalysis {
30
- sku: SKU;
31
- region: Region;
32
- demandLevel: "low" | "medium" | "high";
33
- gapPercentage: number;
34
- trend: "rising" | "stable" | "falling";
35
- lastUpdated: Date;
36
- }
37
- /**
38
- * 价格分析结果
39
- */
40
- export interface PricingAnalysis {
41
- sku: SKU;
42
- recentTrades: TradeRecord[];
43
- suggestedBuyPrice: number;
44
- suggestedSellPrice: number;
45
- priceRange: {
46
- min: number;
47
- max: number;
48
- avg: number;
49
- };
50
- confidence: number;
51
- }
52
- /**
53
- * 交易记录
54
- */
55
- export interface TradeRecord {
56
- id: string;
57
- skuId: string;
58
- soldPrice: number;
59
- soldDate: Date;
60
- buyerRegion: string;
61
- condition: "A" | "B" | "C" | "D";
62
- platform: "online" | "offline" | "secondary";
63
- }
64
- /**
65
- * 库存记录
66
- */
67
- export interface InventoryItem {
68
- id: string;
69
- sku: SKU;
70
- warehouseCode: string;
71
- quantity: number;
72
- stockInDate: Date;
73
- daysInStock: number;
74
- lastMovedDate?: Date;
75
- riskLevel: "low" | "medium" | "high";
76
- }
77
- /**
78
- * 库存风险分析
79
- */
80
- export interface InventoryRisk {
81
- warehouseCode: string;
82
- totalItems: number;
83
- riskBreakdown: {
84
- stagnant: number;
85
- depreciating: number;
86
- overdue: number;
87
- safe: number;
88
- };
89
- recommendations: InventoryRecommendation[];
90
- }
91
- /**
92
- * 库存建议
93
- */
94
- export interface InventoryRecommendation {
95
- type: "clearance" | "price_adjustment" | "transfer" | "hold";
96
- priority: "high" | "medium" | "low";
97
- skuId: string;
98
- reason: string;
99
- action: string;
100
- estimatedImpact: string;
101
- }
102
- /**
103
- * 经营报告
104
- */
105
- export interface BusinessReport {
106
- type: "daily" | "weekly" | "monthly";
107
- period: {
108
- startDate: Date;
109
- endDate: Date;
110
- };
111
- sales: SalesData;
112
- profit: ProfitData;
113
- inventory: InventoryData;
114
- alerts: Alert[];
115
- recommendations: Recommendation[];
116
- }
117
- /**
118
- * 销售数据
119
- */
120
- export interface SalesData {
121
- totalRevenue: number;
122
- totalOrders: number;
123
- avgOrderValue: number;
124
- topSellingProducts: ProductSale[];
125
- revenueByRegion: RegionSales[];
126
- growthRate: number;
127
- }
128
- /**
129
- * 利润数据
130
- */
131
- export interface ProfitData {
132
- totalProfit: number;
133
- profitMargin: number;
134
- avgProfitPerOrder: number;
135
- profitByCategory: CategoryProfit[];
136
- }
137
- /**
138
- * 库存数据
139
- */
140
- export interface InventoryData {
141
- totalValue: number;
142
- turnoverRate: number;
143
- averageDaysInStock: number;
144
- distributionByCondition: ConditionDistribution[];
145
- }
146
- /**
147
- * 产品销售记录
148
- */
149
- export interface ProductSale {
150
- sku: SKU;
151
- quantity: number;
152
- revenue: number;
153
- profit: number;
154
- }
155
- /**
156
- * 地区销售数据
157
- */
158
- export interface RegionSales {
159
- region: Region;
160
- revenue: number;
161
- orders: number;
162
- growthRate: number;
163
- }
164
- /**
165
- * 类别利润
166
- */
167
- export interface CategoryProfit {
168
- category: string;
169
- profit: number;
170
- margin: number;
171
- }
172
- /**
173
- * 成色分布
174
- */
175
- export interface ConditionDistribution {
176
- condition: "A" | "B" | "C" | "D";
177
- quantity: number;
178
- value: number;
179
- percentage: number;
180
- }
181
- /**
182
- * 警报信息
183
- */
184
- export interface Alert {
185
- type: "stagnant" | "overstock" | "price_drop" | "expiring";
186
- severity: "high" | "medium" | "low";
187
- message: string;
188
- skuIds: string[];
189
- timestamp: Date;
190
- }
191
- /**
192
- * 建议
193
- */
194
- export interface Recommendation {
195
- type: "restock" | "clearance" | "price_optimization" | "supplier_change";
196
- priority: "high" | "medium" | "low";
197
- message: string;
198
- targetSkuIds: string[];
199
- expectedBenefit: string;
200
- }
201
- //# sourceMappingURL=business.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"business.d.ts","sourceRoot":"","sources":["../../src/types/business.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * 业务领域类型定义
3
- */
4
- export {};
5
- //# sourceMappingURL=business.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"business.js","sourceRoot":"","sources":["../../src/types/business.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,106 +0,0 @@
1
- /**
2
- * 命令相关类型定义
3
- */
4
- import type { ProgressEvent } from "../query/types.js";
5
- /**
6
- * 命令参数接口
7
- */
8
- export interface CommandParams {
9
- [key: string]: unknown;
10
- }
11
- /**
12
- * 命令选项接口
13
- */
14
- export interface CommandOptions {
15
- [key: string]: unknown;
16
- }
17
- /**
18
- * 命令执行结果
19
- */
20
- export interface CommandResult<T = unknown> {
21
- success: boolean;
22
- data?: T;
23
- error?: {
24
- message: string;
25
- code?: string;
26
- details?: unknown;
27
- };
28
- metadata?: {
29
- duration?: number;
30
- progress?: ProgressEvent[];
31
- };
32
- }
33
- /**
34
- * 命令配置
35
- */
36
- export interface CommandConfig {
37
- name: string;
38
- description: string;
39
- aliases?: string[];
40
- hidden?: boolean;
41
- allowUnknownOptions?: boolean;
42
- }
43
- /**
44
- * 命令注册器
45
- */
46
- export interface CommandRegistry {
47
- register(command: any): void;
48
- unregister(name: string): void;
49
- get(name: string): any | undefined;
50
- list(): any[];
51
- execute(name: string, params: CommandParams): Promise<CommandResult>;
52
- }
53
- /**
54
- * 进度报告器
55
- */
56
- export interface ProgressReporter {
57
- start(message: string, total?: number): void;
58
- update(message: string, current?: number, total?: number): void;
59
- complete(message: string): void;
60
- error(message: string): void;
61
- }
62
- /**
63
- * 命令执行上下文
64
- */
65
- export interface CommandContext {
66
- options: CommandOptions;
67
- reporter: ProgressReporter;
68
- container: ServiceContainer;
69
- }
70
- /**
71
- * 服务容器接口(待实现)
72
- */
73
- export interface ServiceContainer {
74
- resolve<T>(name: string): T;
75
- register<T>(name: string, service: T): void;
76
- has(name: string): boolean;
77
- }
78
- /**
79
- * 输入验证规则
80
- */
81
- export interface ValidationRule {
82
- required?: boolean;
83
- type?: "string" | "number" | "boolean" | "array" | "object";
84
- min?: number;
85
- max?: number;
86
- pattern?: RegExp;
87
- message?: string;
88
- validator?: (value: unknown) => boolean | string;
89
- }
90
- /**
91
- * 验证结果
92
- */
93
- export interface ValidationResult {
94
- isValid: boolean;
95
- errors?: string[];
96
- value?: unknown;
97
- }
98
- /**
99
- * 命令参数 schema
100
- */
101
- export interface CommandSchema {
102
- properties: Record<string, ValidationRule>;
103
- required?: string[];
104
- additionalProperties?: boolean;
105
- }
106
- //# sourceMappingURL=command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/types/command.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * 命令相关类型定义
3
- */
4
- export {};
5
- //# sourceMappingURL=command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/types/command.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,66 +0,0 @@
1
- /**
2
- * 配置相关类型定义
3
- */
4
- /**
5
- * 应用程序配置
6
- */
7
- export interface AppConfig {
8
- api?: ApiConfig;
9
- auth?: AuthConfig;
10
- cache?: CacheConfig;
11
- logging?: LoggingConfig;
12
- }
13
- /**
14
- * API 配置
15
- */
16
- export interface ApiConfig {
17
- baseUrl?: string;
18
- timeout?: number;
19
- retries?: number;
20
- }
21
- /**
22
- * 认证配置
23
- */
24
- export interface AuthConfig {
25
- tokenRefreshThreshold?: number;
26
- }
27
- /**
28
- * 缓存配置
29
- */
30
- export interface CacheConfig {
31
- enabled?: boolean;
32
- ttl?: number;
33
- }
34
- /**
35
- * 日志配置
36
- */
37
- export interface LoggingConfig {
38
- level?: "debug" | "info" | "warn" | "error";
39
- format?: "json" | "text";
40
- }
41
- /**
42
- * 用户配置文件
43
- */
44
- export interface UserConfig {
45
- auth?: {
46
- accessToken?: string;
47
- refreshToken?: string;
48
- userId?: string;
49
- username?: string;
50
- expiresAt?: number;
51
- };
52
- api?: {
53
- baseUrl?: string;
54
- };
55
- }
56
- /**
57
- * 配置管理器接口
58
- */
59
- export interface IConfigManager {
60
- readConfig(): Promise<UserConfig>;
61
- writeConfig(config: UserConfig): Promise<void>;
62
- updateConfig(updates: Partial<UserConfig>): Promise<UserConfig>;
63
- get(key: string): Promise<unknown>;
64
- set(key: string, value: unknown): Promise<void>;
65
- }
66
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD"}
@@ -1,5 +0,0 @@
1
- /**
2
- * 配置相关类型定义
3
- */
4
- export {};
5
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,79 +0,0 @@
1
- /**
2
- * 异步工具函数
3
- */
4
- /**
5
- * 延迟函数
6
- */
7
- export declare function delay(ms: number): Promise<void>;
8
- /**
9
- * 带超时的 Promise
10
- */
11
- export declare function timeout<T>(promise: Promise<T>, ms: number, errorMessage?: string): Promise<T>;
12
- /**
13
- * 重试执行函数
14
- */
15
- export declare function retry<T>(fn: () => Promise<T>, options?: {
16
- retries?: number;
17
- delay?: number;
18
- backoff?: number;
19
- onError?: (error: Error, attempt: number) => void;
20
- }): Promise<T>;
21
- /**
22
- * 轮询执行直到条件满足或超时
23
- */
24
- export declare function poll<T>(checkFn: () => Promise<T>, options?: {
25
- interval?: number;
26
- timeout?: number;
27
- condition?: (result: T) => boolean;
28
- onPoll?: (attempt: number, result: T) => void;
29
- }): Promise<T>;
30
- /**
31
- * 批量处理函数(并发控制)
32
- */
33
- export declare function batchProcess<T, R>(items: T[], processor: (item: T, index: number) => Promise<R>, options?: {
34
- concurrency?: number;
35
- delay?: number;
36
- onProgress?: (processed: number, total: number) => void;
37
- }): Promise<R[]>;
38
- /**
39
- * 异步队列
40
- */
41
- export declare class AsyncQueue<T> {
42
- private processor;
43
- private concurrency;
44
- private queue;
45
- private processing;
46
- constructor(processor: (item: T) => Promise<void>, concurrency?: number);
47
- /**
48
- * 添加项目到队列
49
- */
50
- add(item: T): Promise<void>;
51
- /**
52
- * 处理队列
53
- */
54
- private process;
55
- }
56
- /**
57
- * 取消控制器
58
- */
59
- export declare class AbortController {
60
- private abortController;
61
- private listeners;
62
- /**
63
- * 中断操作
64
- */
65
- abort(): void;
66
- /**
67
- * 添加取消监听器
68
- */
69
- addListener(listener: () => void): void;
70
- /**
71
- * 移除取消监听器
72
- */
73
- removeListener(listener: () => void): void;
74
- /**
75
- * 获取信号
76
- */
77
- get signal(): AbortSignal;
78
- }
79
- //# sourceMappingURL=async.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../src/utils/async.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EACvB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,EAAE,EAAE,MAAM,EACV,YAAY,SAAwB,GACnC,OAAO,CAAC,CAAC,CAAC,CAOZ;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,CAAC,EAC3B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,GACL,OAAO,CAAC,CAAC,CAAC,CA4BZ;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,CAAC,EAC1B,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;CAC1C,GACL,OAAO,CAAC,CAAC,CAAC,CAsBZ;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,CAAC,EACrC,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD,GACL,OAAO,CAAC,CAAC,EAAE,CAAC,CAgDd;AAED;;GAEG;AACH,qBAAa,UAAU,CAAC,CAAC;IAKrB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IALrB,OAAO,CAAC,KAAK,CAAqD;IAClE,OAAO,CAAC,UAAU,CAAS;gBAGjB,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EACrC,WAAW,SAAI;IAKzB;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;YACW,OAAO;CAwBtB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,SAAS,CAA8B;IAE/C;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIvC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAI1C;;OAEG;IACH,IAAI,MAAM,IAAI,WAAW,CAExB;CACF"}
@@ -1,179 +0,0 @@
1
- /**
2
- * 异步工具函数
3
- */
4
- /**
5
- * 延迟函数
6
- */
7
- export function delay(ms) {
8
- return new Promise((resolve) => setTimeout(resolve, ms));
9
- }
10
- /**
11
- * 带超时的 Promise
12
- */
13
- export function timeout(promise, ms, errorMessage = "Operation timed out") {
14
- return Promise.race([
15
- promise,
16
- new Promise((_, reject) => {
17
- setTimeout(() => reject(new Error(errorMessage)), ms);
18
- }),
19
- ]);
20
- }
21
- /**
22
- * 重试执行函数
23
- */
24
- export async function retry(fn, options = {}) {
25
- const { retries = 3, delay = 1000, backoff = 2, onError, } = options;
26
- let lastError;
27
- let currentDelay = delay;
28
- for (let attempt = 1; attempt <= retries; attempt++) {
29
- try {
30
- return await fn();
31
- }
32
- catch (error) {
33
- lastError = error;
34
- onError?.(lastError, attempt);
35
- if (attempt === retries) {
36
- throw lastError;
37
- }
38
- await delay(currentDelay);
39
- currentDelay *= backoff;
40
- }
41
- }
42
- throw lastError;
43
- }
44
- /**
45
- * 轮询执行直到条件满足或超时
46
- */
47
- export async function poll(checkFn, options = {}) {
48
- const { interval = 5000, timeout = 60000, condition = () => true, onPoll, } = options;
49
- const startTime = Date.now();
50
- while (Date.now() - startTime < timeout) {
51
- const result = await checkFn();
52
- if (condition(result)) {
53
- return result;
54
- }
55
- onPoll?.(Date.now() - startTime, result);
56
- await delay(interval);
57
- }
58
- throw new Error("Polling timeout");
59
- }
60
- /**
61
- * 批量处理函数(并发控制)
62
- */
63
- export async function batchProcess(items, processor, options = {}) {
64
- const { concurrency = 3, delay = 0, onProgress, } = options;
65
- const results = [];
66
- let processed = 0;
67
- let activePromises = [];
68
- for (let i = 0; i < items.length; i++) {
69
- // 如果达到并发限制,等待一个完成
70
- if (activePromises.length >= concurrency) {
71
- await Promise.race(activePromises);
72
- activePromises = activePromises.filter((p) => !p.isFulfilled && !p.isRejected);
73
- }
74
- const promise = processor(items[i], i)
75
- .then((result) => {
76
- results[i] = result;
77
- processed++;
78
- onProgress?.(processed, items.length);
79
- if (delay > 0) {
80
- delay(delay);
81
- }
82
- })
83
- .catch((error) => {
84
- console.error(`Error processing item ${i}:`, error);
85
- results[i] = error;
86
- processed++;
87
- onProgress?.(processed, items.length);
88
- });
89
- activePromises.push(promise);
90
- // 如果添加了延迟,稍等一下
91
- if (delay > 0) {
92
- await delay(10);
93
- }
94
- }
95
- // 等待所有处理完成
96
- await Promise.all(activePromises);
97
- return results;
98
- }
99
- /**
100
- * 异步队列
101
- */
102
- export class AsyncQueue {
103
- processor;
104
- concurrency;
105
- queue;
106
- processing = false;
107
- constructor(processor, concurrency = 1) {
108
- this.processor = processor;
109
- this.concurrency = concurrency;
110
- this.queue = [];
111
- }
112
- /**
113
- * 添加项目到队列
114
- */
115
- async add(item) {
116
- return new Promise((resolve) => {
117
- this.queue.push({ item, resolve });
118
- this.process();
119
- });
120
- }
121
- /**
122
- * 处理队列
123
- */
124
- async process() {
125
- if (this.processing || this.queue.length === 0) {
126
- return;
127
- }
128
- this.processing = true;
129
- const currentBatch = this.queue.splice(0, this.concurrency);
130
- const promises = currentBatch.map(async ({ item, resolve }) => {
131
- try {
132
- await this.processor(item);
133
- resolve();
134
- }
135
- catch (error) {
136
- console.error("Error processing item:", error);
137
- resolve();
138
- }
139
- });
140
- await Promise.all(promises);
141
- this.processing = false;
142
- // 继续处理队列中的下一批
143
- this.process();
144
- }
145
- }
146
- /**
147
- * 取消控制器
148
- */
149
- export class AbortController {
150
- abortController = new globalThis.AbortController();
151
- listeners = new Set();
152
- /**
153
- * 中断操作
154
- */
155
- abort() {
156
- this.abortController.abort();
157
- this.listeners.forEach((listener) => listener());
158
- this.listeners.clear();
159
- }
160
- /**
161
- * 添加取消监听器
162
- */
163
- addListener(listener) {
164
- this.listeners.add(listener);
165
- }
166
- /**
167
- * 移除取消监听器
168
- */
169
- removeListener(listener) {
170
- this.listeners.delete(listener);
171
- }
172
- /**
173
- * 获取信号
174
- */
175
- get signal() {
176
- return this.abortController.signal;
177
- }
178
- }
179
- //# sourceMappingURL=async.js.map