@round2ai/r2-cli 1.0.1 → 1.0.2
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/dist/api.d.ts +45 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +90 -0
- package/dist/api.js.map +1 -0
- package/dist/auth.d.ts +35 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +240 -0
- package/dist/auth.js.map +1 -0
- package/dist/commands/ai/chat.d.ts +9 -0
- package/dist/commands/ai/chat.d.ts.map +1 -0
- package/dist/commands/ai/chat.js +16 -0
- package/dist/commands/ai/chat.js.map +1 -0
- package/dist/commands/ai/skills.d.ts +9 -0
- package/dist/commands/ai/skills.d.ts.map +1 -0
- package/dist/commands/ai/skills.js +16 -0
- package/dist/commands/ai/skills.js.map +1 -0
- package/dist/commands/auth/login.d.ts +24 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +288 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.d.ts +16 -0
- package/dist/commands/auth/logout.d.ts.map +1 -0
- package/dist/commands/auth/logout.js +49 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/auth/status.d.ts +28 -0
- package/dist/commands/auth/status.d.ts.map +1 -0
- package/dist/commands/auth/status.js +92 -0
- package/dist/commands/auth/status.js.map +1 -0
- package/dist/commands/base.d.ts +107 -0
- package/dist/commands/base.d.ts.map +1 -0
- package/dist/commands/base.js +153 -0
- package/dist/commands/base.js.map +1 -0
- package/dist/commands/business/pricing.d.ts +9 -0
- package/dist/commands/business/pricing.d.ts.map +1 -0
- package/dist/commands/business/pricing.js +16 -0
- package/dist/commands/business/pricing.js.map +1 -0
- package/dist/commands/business/report.d.ts +9 -0
- package/dist/commands/business/report.d.ts.map +1 -0
- package/dist/commands/business/report.js +16 -0
- package/dist/commands/business/report.js.map +1 -0
- package/dist/commands/inventory/risk.d.ts +9 -0
- package/dist/commands/inventory/risk.d.ts.map +1 -0
- package/dist/commands/inventory/risk.js +16 -0
- package/dist/commands/inventory/risk.js.map +1 -0
- package/dist/config.d.ts +54 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +111 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +66 -116
- package/dist/index.js.map +1 -1
- package/dist/query/executor.d.ts +138 -0
- package/dist/query/executor.d.ts.map +1 -0
- package/dist/query/executor.js +232 -0
- package/dist/query/executor.js.map +1 -0
- package/dist/query/types.d.ts +116 -0
- package/dist/query/types.d.ts.map +1 -0
- package/dist/query/types.js +15 -0
- package/dist/query/types.js.map +1 -0
- package/dist/query/utils.d.ts +99 -0
- package/dist/query/utils.d.ts.map +1 -0
- package/dist/query/utils.js +151 -0
- package/dist/query/utils.js.map +1 -0
- package/dist/services/ServiceContainer.d.ts +110 -0
- package/dist/services/ServiceContainer.d.ts.map +1 -0
- package/dist/services/ServiceContainer.js +242 -0
- package/dist/services/ServiceContainer.js.map +1 -0
- package/dist/services/api/client.d.ts +88 -0
- package/dist/services/api/client.d.ts.map +1 -0
- package/dist/services/api/client.js +188 -0
- package/dist/services/api/client.js.map +1 -0
- package/dist/services/api/types.d.ts +233 -0
- package/dist/services/api/types.d.ts.map +1 -0
- package/dist/services/api/types.js +83 -0
- package/dist/services/api/types.js.map +1 -0
- package/dist/services/auth/provider.d.ts +73 -0
- package/dist/services/auth/provider.d.ts.map +1 -0
- package/dist/services/auth/provider.js +339 -0
- package/dist/services/auth/provider.js.map +1 -0
- package/dist/services/auth/session.d.ts +73 -0
- package/dist/services/auth/session.d.ts.map +1 -0
- package/dist/services/auth/session.js +200 -0
- package/dist/services/auth/session.js.map +1 -0
- package/dist/services/business/demand.d.ts +70 -0
- package/dist/services/business/demand.d.ts.map +1 -0
- package/dist/services/business/demand.js +240 -0
- package/dist/services/business/demand.js.map +1 -0
- package/dist/services/business/fulfillment.d.ts +122 -0
- package/dist/services/business/fulfillment.d.ts.map +1 -0
- package/dist/services/business/fulfillment.js +267 -0
- package/dist/services/business/fulfillment.js.map +1 -0
- package/dist/services/business/inventory.d.ts +54 -0
- package/dist/services/business/inventory.d.ts.map +1 -0
- package/dist/services/business/inventory.js +245 -0
- package/dist/services/business/inventory.js.map +1 -0
- package/dist/services/business/pricing.d.ts +41 -0
- package/dist/services/business/pricing.d.ts.map +1 -0
- package/dist/services/business/pricing.js +133 -0
- package/dist/services/business/pricing.js.map +1 -0
- package/dist/services/business/report.d.ts +74 -0
- package/dist/services/business/report.d.ts.map +1 -0
- package/dist/services/business/report.js +380 -0
- package/dist/services/business/report.js.map +1 -0
- package/dist/services/config/manager.d.ts +105 -0
- package/dist/services/config/manager.d.ts.map +1 -0
- package/dist/services/config/manager.js +324 -0
- package/dist/services/config/manager.js.map +1 -0
- package/dist/services/config/types.d.ts +128 -0
- package/dist/services/config/types.d.ts.map +1 -0
- package/dist/services/config/types.js +209 -0
- package/dist/services/config/types.js.map +1 -0
- package/dist/services/index.d.ts +17 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +44 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/storage/index.d.ts +63 -0
- package/dist/services/storage/index.d.ts.map +1 -0
- package/dist/services/storage/index.js +136 -0
- package/dist/services/storage/index.js.map +1 -0
- package/dist/types/api.d.ts +58 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +5 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/auth.d.ts +59 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +11 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/business.d.ts +201 -0
- package/dist/types/business.d.ts.map +1 -0
- package/dist/types/business.js +5 -0
- package/dist/types/business.js.map +1 -0
- package/dist/types/command.d.ts +106 -0
- package/dist/types/command.d.ts.map +1 -0
- package/dist/types/command.js +5 -0
- package/dist/types/command.js.map +1 -0
- package/dist/types/config.d.ts +66 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +5 -0
- package/dist/types/config.js.map +1 -0
- package/dist/utils/async.d.ts +79 -0
- package/dist/utils/async.d.ts.map +1 -0
- package/dist/utils/async.js +179 -0
- package/dist/utils/async.js.map +1 -0
- package/dist/utils/format.d.ts +90 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +227 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/logger.d.ts +136 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +249 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/validation.d.ts +100 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +334 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +6 -2
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 命令基类
|
|
3
|
+
*/
|
|
4
|
+
import chalk from "chalk";
|
|
5
|
+
import { ServiceContainer } from "../services/ServiceContainer.js";
|
|
6
|
+
import { createTable } from "../utils/format.js";
|
|
7
|
+
/**
|
|
8
|
+
* 命令基类
|
|
9
|
+
*/
|
|
10
|
+
export class BaseCommand {
|
|
11
|
+
container;
|
|
12
|
+
events = [];
|
|
13
|
+
constructor(container) {
|
|
14
|
+
this.container = container;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 通知进度(内部使用)
|
|
18
|
+
*/
|
|
19
|
+
notify(type, message, progress) {
|
|
20
|
+
const event = {
|
|
21
|
+
type,
|
|
22
|
+
message,
|
|
23
|
+
timestamp: new Date(),
|
|
24
|
+
...(progress !== undefined ? { progress } : {}),
|
|
25
|
+
};
|
|
26
|
+
this.events.push(event);
|
|
27
|
+
this.onProgress(event);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 进度回调(可重写)
|
|
31
|
+
*/
|
|
32
|
+
onProgress(event) {
|
|
33
|
+
console.log(`[${event.timestamp.toLocaleTimeString()}] ${event.message}`);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 显示错误
|
|
37
|
+
*/
|
|
38
|
+
showError(error) {
|
|
39
|
+
const message = typeof error === "string" ? error : error.message;
|
|
40
|
+
console.error(chalk.red(`❌ ${message}`));
|
|
41
|
+
if (typeof error !== "string" && error.stack) {
|
|
42
|
+
console.error(chalk.gray(error.stack));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 显示成功消息
|
|
47
|
+
*/
|
|
48
|
+
showSuccess(message) {
|
|
49
|
+
console.log(chalk.green(`✅ ${message}`));
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* 显示警告
|
|
53
|
+
*/
|
|
54
|
+
showWarning(message) {
|
|
55
|
+
console.log(chalk.yellow(`⚠️ ${message}`));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 显示信息
|
|
59
|
+
*/
|
|
60
|
+
showInfo(message) {
|
|
61
|
+
console.log(chalk.blue(`ℹ️ ${message}`));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* 显示表
|
|
65
|
+
*/
|
|
66
|
+
showTable(headers, data) {
|
|
67
|
+
console.log(createTable(headers, data));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* 格式化货币
|
|
71
|
+
*/
|
|
72
|
+
formatCurrency(amount) {
|
|
73
|
+
return `$${amount.toLocaleString()}`;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* 格式化百分比
|
|
77
|
+
*/
|
|
78
|
+
formatPercentage(value) {
|
|
79
|
+
return `${(value * 100).toFixed(2)}%`;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* 获取服务
|
|
83
|
+
*/
|
|
84
|
+
getService(name) {
|
|
85
|
+
return this.container.resolve(name);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 获取配置
|
|
89
|
+
*/
|
|
90
|
+
async getConfig(key) {
|
|
91
|
+
const configService = this.getService("config");
|
|
92
|
+
return configService.get(key);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* 设置配置
|
|
96
|
+
*/
|
|
97
|
+
async setConfig(key, value) {
|
|
98
|
+
const configService = this.getService("config");
|
|
99
|
+
await configService.set(key, value);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* 获取所有事件
|
|
103
|
+
*/
|
|
104
|
+
getEvents() {
|
|
105
|
+
return [...this.events];
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* 认证命令基类
|
|
110
|
+
*/
|
|
111
|
+
export class AuthenticatedCommand extends BaseCommand {
|
|
112
|
+
/**
|
|
113
|
+
* 验证认证状态
|
|
114
|
+
*/
|
|
115
|
+
async authenticate() {
|
|
116
|
+
const authService = this.getService("auth");
|
|
117
|
+
const isValid = await authService.isValid();
|
|
118
|
+
if (!isValid) {
|
|
119
|
+
this.showError("未登录或登录已过期,请先登录");
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* 获取当前用户信息
|
|
126
|
+
*/
|
|
127
|
+
async getUserInfo() {
|
|
128
|
+
const authService = this.getService("auth");
|
|
129
|
+
return await authService.getCurrentUser();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* 需要 API 的命令基类
|
|
134
|
+
*/
|
|
135
|
+
export class ApiCommand extends BaseCommand {
|
|
136
|
+
/**
|
|
137
|
+
* 初始化 API 客户端
|
|
138
|
+
*/
|
|
139
|
+
async initApiClient() {
|
|
140
|
+
const configService = this.getService("config");
|
|
141
|
+
const apiConfig = await configService.get("api");
|
|
142
|
+
// TODO: 初始化 API 客户端
|
|
143
|
+
// await apiClient.init(apiConfig);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* 发送 API 请求
|
|
147
|
+
*/
|
|
148
|
+
async apiRequest(endpoint, options) {
|
|
149
|
+
// TODO: 实现 API 请求
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/commands/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../../src/commands/business/pricing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAS5D"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 价格分析命令 - 简化版
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from "commander";
|
|
5
|
+
/**
|
|
6
|
+
* 创建价格分析命令
|
|
7
|
+
*/
|
|
8
|
+
export function createPricingCommand(container) {
|
|
9
|
+
const command = new Command("pricing");
|
|
10
|
+
command.description("基于真实成交数据给出收货价与售卖价建议");
|
|
11
|
+
command.action(() => {
|
|
12
|
+
console.log("价格分析功能开发中...");
|
|
13
|
+
});
|
|
14
|
+
return command;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=pricing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../../src/commands/business/pricing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAc;IACjD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAE3C,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/commands/business/report.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAS3D"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 报告命令 - 简化版
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from "commander";
|
|
5
|
+
/**
|
|
6
|
+
* 创建报告命令
|
|
7
|
+
*/
|
|
8
|
+
export function createReportCommand(container) {
|
|
9
|
+
const command = new Command("report");
|
|
10
|
+
command.description("生成经营日报/周报");
|
|
11
|
+
command.action(() => {
|
|
12
|
+
console.log("报告生成功能开发中...");
|
|
13
|
+
});
|
|
14
|
+
return command;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/commands/business/report.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAc;IAChD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAEjC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"risk.d.ts","sourceRoot":"","sources":["../../../src/commands/inventory/risk.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CASlE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 库存风险命令 - 简化版
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from "commander";
|
|
5
|
+
/**
|
|
6
|
+
* 创建库存风险命令
|
|
7
|
+
*/
|
|
8
|
+
export function createInventoryRiskCommand(container) {
|
|
9
|
+
const command = new Command("risk");
|
|
10
|
+
command.description("库存风险识别");
|
|
11
|
+
command.action(() => {
|
|
12
|
+
console.log("库存风险识别功能开发中...");
|
|
13
|
+
});
|
|
14
|
+
return command;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=risk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"risk.js","sourceRoot":"","sources":["../../../src/commands/inventory/risk.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,SAAc;IACvD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE9B,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export interface Config {
|
|
2
|
+
auth?: {
|
|
3
|
+
accessToken?: string;
|
|
4
|
+
refreshToken?: string;
|
|
5
|
+
userId?: string;
|
|
6
|
+
username?: string;
|
|
7
|
+
expiresAt?: number;
|
|
8
|
+
};
|
|
9
|
+
api?: {
|
|
10
|
+
baseUrl?: string;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 读取配置文件
|
|
15
|
+
*/
|
|
16
|
+
export declare function readConfig(): Promise<Config>;
|
|
17
|
+
/**
|
|
18
|
+
* 写入配置文件
|
|
19
|
+
*/
|
|
20
|
+
export declare function writeConfig(config: Config): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* 更新配置
|
|
23
|
+
*/
|
|
24
|
+
export declare function updateConfig(updates: Partial<Config>): Promise<Config>;
|
|
25
|
+
/**
|
|
26
|
+
* 获取登录状态
|
|
27
|
+
*/
|
|
28
|
+
export declare function getAuthStatus(): Promise<boolean>;
|
|
29
|
+
/**
|
|
30
|
+
* 保存登录信息
|
|
31
|
+
*/
|
|
32
|
+
export declare function saveAuthInfo(authInfo: {
|
|
33
|
+
accessToken: string;
|
|
34
|
+
refreshToken: string;
|
|
35
|
+
userId: string;
|
|
36
|
+
username: string;
|
|
37
|
+
expiresIn: number;
|
|
38
|
+
}): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* 清除登录信息
|
|
41
|
+
*/
|
|
42
|
+
export declare function clearAuthInfo(): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* 获取访问令牌
|
|
45
|
+
*/
|
|
46
|
+
export declare function getAccessToken(): Promise<string | null>;
|
|
47
|
+
/**
|
|
48
|
+
* 获取用户信息
|
|
49
|
+
*/
|
|
50
|
+
export declare function getUserInfo(): Promise<{
|
|
51
|
+
userId: string;
|
|
52
|
+
username: string;
|
|
53
|
+
} | null>;
|
|
54
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,MAAM;IACrB,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;AASD;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAWlD;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ/D;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAK5E;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAStD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhB;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAInD;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAM7D;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAYxF"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
|