@dayinxisheng/novel-tools 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +60 -0
- package/README.md +19 -0
- package/dist/commands/check.js +4 -4
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/config.d.ts +6 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +164 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/event.js +3 -3
- package/dist/commands/event.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +11 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/query.js +5 -5
- package/dist/commands/query.js.map +1 -1
- package/dist/commands/shared.d.ts +8 -3
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/shared.js +17 -2
- package/dist/commands/shared.js.map +1 -1
- package/dist/commands/snapshot.js +3 -3
- package/dist/commands/snapshot.js.map +1 -1
- package/dist/commands/temp-setting.js +4 -4
- package/dist/commands/temp-setting.js.map +1 -1
- package/dist/core/constants.d.ts +0 -1
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +0 -1
- package/dist/core/constants.js.map +1 -1
- package/dist/core/git.d.ts +28 -0
- package/dist/core/git.d.ts.map +1 -0
- package/dist/core/git.js +71 -0
- package/dist/core/git.js.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/types.d.ts +10 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/services/config.service.d.ts +78 -0
- package/dist/services/config.service.d.ts.map +1 -0
- package/dist/services/config.service.js +178 -0
- package/dist/services/config.service.js.map +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -0
- package/dist/services/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,66 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.3.0] - 2026-03-11
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
#### config 命令 - 全局配置管理
|
|
13
|
+
- `config set <path>` - 为当前项目设置小说路径
|
|
14
|
+
- 自动检测 git 仓库根目录
|
|
15
|
+
- 支持相对路径和绝对路径
|
|
16
|
+
- 验证小说项目有效性
|
|
17
|
+
- `config get` - 查看当前项目配置
|
|
18
|
+
- 显示项目根目录
|
|
19
|
+
- 显示小说路径
|
|
20
|
+
- `config list` - 列出所有已配置的项目
|
|
21
|
+
- 显示所有项目映射
|
|
22
|
+
- 按项目根目录排序
|
|
23
|
+
- `config unset` - 删除当前项目配置
|
|
24
|
+
- 支持强制删除(--force)
|
|
25
|
+
- 支持交互式确认
|
|
26
|
+
|
|
27
|
+
#### Git 工具类
|
|
28
|
+
- `GitUtils.findRepositoryRoot()` - 查找 git 仓库根目录
|
|
29
|
+
- 从当前目录向上查找 .git 目录
|
|
30
|
+
- 支持文件和目录形式的 .git
|
|
31
|
+
- `GitUtils.normalizePath()` - 规范化路径
|
|
32
|
+
- 解析符号链接
|
|
33
|
+
- 去除末尾斜杠
|
|
34
|
+
- `GitUtils.isInGitRepository()` - 检查是否在 git 仓库中
|
|
35
|
+
|
|
36
|
+
#### 配置服务
|
|
37
|
+
- `ConfigService` - 全局配置管理服务
|
|
38
|
+
- 配置文件位置: `~/.novel-tools/config.json`
|
|
39
|
+
- 支持多项目配置
|
|
40
|
+
- 自动创建配置目录
|
|
41
|
+
- 路径规范化处理
|
|
42
|
+
|
|
43
|
+
#### 自动路径解析
|
|
44
|
+
- 所有命令支持自动路径解析
|
|
45
|
+
- 优先级: `-p` 参数 > 全局配置 > 当前目录
|
|
46
|
+
- 在项目任何子目录执行命令时自动找到配置
|
|
47
|
+
- 不同项目有各自配置,互不干扰
|
|
48
|
+
|
|
49
|
+
#### 配置类型定义
|
|
50
|
+
- `NovelToolsConfig` - 全局配置接口
|
|
51
|
+
- `ProjectMapping` - 项目映射接口
|
|
52
|
+
- `ConfigOptions` - 配置选项接口
|
|
53
|
+
|
|
54
|
+
### Changed
|
|
55
|
+
|
|
56
|
+
#### CliUtils.resolveProjectPath()
|
|
57
|
+
- 从同步方法改为异步方法
|
|
58
|
+
- 支持从全局配置查找小说路径
|
|
59
|
+
- 所有命令的 `resolveProjectPath` 调用更新为 `await`
|
|
60
|
+
|
|
61
|
+
#### 核心模块导出
|
|
62
|
+
- `core/index.ts` - 新增 GitUtils 导出
|
|
63
|
+
|
|
64
|
+
### Breaking Changes
|
|
65
|
+
- `CliUtils.resolveProjectPath()` 现在是异步方法
|
|
66
|
+
- 所有直接调用此方法的代码需要使用 `await`
|
|
67
|
+
|
|
8
68
|
## [0.2.2] - 2026-03-10
|
|
9
69
|
|
|
10
70
|
### Added
|
package/README.md
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
## 功能
|
|
10
10
|
|
|
11
|
+
- **全局配置**:管理项目路径配置,支持自动路径解析
|
|
11
12
|
- **项目初始化**:创建标准的小说项目目录结构
|
|
12
13
|
- **查询功能**:查询静态设定、人物信息、状态快照、人物关系、伏笔等
|
|
13
14
|
- **事件管理**:追加事件、生成章节摘要、列出事件
|
|
@@ -29,6 +30,24 @@ npm install @dayinxisheng/novel-tools
|
|
|
29
30
|
|
|
30
31
|
## 使用
|
|
31
32
|
|
|
33
|
+
### 全局配置管理
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 设置当前项目的小说路径
|
|
37
|
+
novel-tools config set my-novel
|
|
38
|
+
|
|
39
|
+
# 查看当前项目配置
|
|
40
|
+
novel-tools config get
|
|
41
|
+
|
|
42
|
+
# 列出所有已配置的项目
|
|
43
|
+
novel-tools config list
|
|
44
|
+
|
|
45
|
+
# 删除当前项目配置
|
|
46
|
+
novel-tools config unset
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
配置后,在项目的任何子目录执行命令都会自动使用配置的小说路径,无需每次指定 `-p` 参数。
|
|
50
|
+
|
|
32
51
|
### 初始化项目
|
|
33
52
|
|
|
34
53
|
```bash
|
package/dist/commands/check.js
CHANGED
|
@@ -13,7 +13,7 @@ export function createCheckCommand() {
|
|
|
13
13
|
.option('-p, --path <path>', '项目路径')
|
|
14
14
|
.action(async (options) => {
|
|
15
15
|
try {
|
|
16
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
16
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
17
17
|
const validateService = new ValidateService();
|
|
18
18
|
CliUtils.title('检查大纲');
|
|
19
19
|
const result = await validateService.validateOutline(projectPath);
|
|
@@ -34,7 +34,7 @@ export function createCheckCommand() {
|
|
|
34
34
|
.option('-p, --path <path>', '项目路径')
|
|
35
35
|
.action(async (chapterStr, options) => {
|
|
36
36
|
try {
|
|
37
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
37
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
38
38
|
const validateService = new ValidateService();
|
|
39
39
|
const chapter = parseInt(chapterStr, 10);
|
|
40
40
|
if (isNaN(chapter) || chapter < 1) {
|
|
@@ -60,7 +60,7 @@ export function createCheckCommand() {
|
|
|
60
60
|
.option('-p, --path <path>', '项目路径')
|
|
61
61
|
.action(async (arcName, options) => {
|
|
62
62
|
try {
|
|
63
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
63
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
64
64
|
const validateService = new ValidateService();
|
|
65
65
|
CliUtils.title(`检查剧情弧: ${arcName}`);
|
|
66
66
|
const result = await validateService.validateArc(projectPath, arcName);
|
|
@@ -81,7 +81,7 @@ export function createCheckCommand() {
|
|
|
81
81
|
.option('-p, --path <path>', '项目路径')
|
|
82
82
|
.action(async (volumeStr, options) => {
|
|
83
83
|
try {
|
|
84
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
84
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
85
85
|
const validateService = new ValidateService();
|
|
86
86
|
const volume = parseInt(volumeStr, 10);
|
|
87
87
|
if (isNaN(volume) || volume < 1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAE7B,OAAO;IACP,GAAG;SACA,OAAO,CAAC,SAAS,CAAC;SAClB,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAsK7C"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { ConfigService } from '../services/config.service.js';
|
|
4
|
+
import { GitUtils } from '../core/git.js';
|
|
5
|
+
import { CliUtils } from './shared.js';
|
|
6
|
+
import { FileUtils } from '../core/file.js';
|
|
7
|
+
/**
|
|
8
|
+
* 创建 config 命令
|
|
9
|
+
*/
|
|
10
|
+
export function createConfigCommand() {
|
|
11
|
+
const cmd = new Command('config');
|
|
12
|
+
cmd.description('管理 novel-tools 全局配置');
|
|
13
|
+
// 设置当前项目的小说路径
|
|
14
|
+
cmd
|
|
15
|
+
.command('set')
|
|
16
|
+
.argument('<path>', '小说项目路径(相对或绝对)')
|
|
17
|
+
.option('-r, --root <path>', '项目根目录(默认为当前 git 仓库根目录)')
|
|
18
|
+
.action(async (novelPath, options) => {
|
|
19
|
+
try {
|
|
20
|
+
const configService = new ConfigService();
|
|
21
|
+
// 确定项目根目录
|
|
22
|
+
let projectRoot;
|
|
23
|
+
if (options.root) {
|
|
24
|
+
projectRoot = await GitUtils.normalizePath(options.root);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
const root = await GitUtils.findRepositoryRoot(process.cwd());
|
|
28
|
+
if (!root) {
|
|
29
|
+
CliUtils.error('当前目录不在 git 仓库中,请使用 --root 参数指定项目根目录');
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
projectRoot = await GitUtils.normalizePath(root);
|
|
33
|
+
}
|
|
34
|
+
// 验证小说路径是否存在
|
|
35
|
+
const resolvedPath = configService.resolveNovelPath(projectRoot, novelPath);
|
|
36
|
+
const projectJsonPath = path.join(resolvedPath, 'project.json');
|
|
37
|
+
if (!FileUtils.exists(projectJsonPath)) {
|
|
38
|
+
CliUtils.warning(`警告: ${resolvedPath} 中未找到 project.json 文件`);
|
|
39
|
+
const confirmed = await CliUtils.confirm('是否继续保存配置?');
|
|
40
|
+
if (!confirmed) {
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// 保存配置
|
|
45
|
+
await configService.addProject(projectRoot, novelPath);
|
|
46
|
+
CliUtils.success('配置已保存');
|
|
47
|
+
CliUtils.printKeyValue('项目根目录', projectRoot);
|
|
48
|
+
CliUtils.printKeyValue('小说路径', novelPath);
|
|
49
|
+
CliUtils.printKeyValue('实际路径', resolvedPath);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
CliUtils.error(error instanceof Error ? error.message : String(error));
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
// 显示当前项目配置
|
|
57
|
+
cmd
|
|
58
|
+
.command('get')
|
|
59
|
+
.option('-r, --root <path>', '项目根目录')
|
|
60
|
+
.action(async (options) => {
|
|
61
|
+
try {
|
|
62
|
+
const configService = new ConfigService();
|
|
63
|
+
// 确定项目根目录
|
|
64
|
+
let projectRoot;
|
|
65
|
+
if (options.root) {
|
|
66
|
+
projectRoot = await GitUtils.normalizePath(options.root);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const root = await GitUtils.findRepositoryRoot(process.cwd());
|
|
70
|
+
if (!root) {
|
|
71
|
+
CliUtils.info('当前目录不在 git 仓库中');
|
|
72
|
+
CliUtils.info('使用 --root 参数指定项目根目录可查看配置');
|
|
73
|
+
process.exit(0);
|
|
74
|
+
}
|
|
75
|
+
projectRoot = await GitUtils.normalizePath(root);
|
|
76
|
+
}
|
|
77
|
+
// 查询配置
|
|
78
|
+
const hasConfig = await configService.hasProjectConfig(projectRoot);
|
|
79
|
+
if (!hasConfig) {
|
|
80
|
+
CliUtils.info('当前项目没有配置');
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const projectConfig = await configService.getCurrentProjectConfig(projectRoot);
|
|
84
|
+
if (projectConfig) {
|
|
85
|
+
CliUtils.title('当前项目配置');
|
|
86
|
+
CliUtils.printKeyValue('项目根目录', projectConfig.root);
|
|
87
|
+
CliUtils.printKeyValue('小说路径', projectConfig.novelPath);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
CliUtils.error(error instanceof Error ? error.message : String(error));
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
// 列出所有项目配置
|
|
96
|
+
cmd
|
|
97
|
+
.command('list')
|
|
98
|
+
.action(async () => {
|
|
99
|
+
try {
|
|
100
|
+
const configService = new ConfigService();
|
|
101
|
+
const projects = await configService.listProjects();
|
|
102
|
+
CliUtils.title(`已配置项目 (${projects.length})`);
|
|
103
|
+
if (projects.length === 0) {
|
|
104
|
+
CliUtils.info('暂无配置');
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
for (const project of projects) {
|
|
108
|
+
console.log();
|
|
109
|
+
CliUtils.printKeyValue('项目根目录', project.root);
|
|
110
|
+
CliUtils.printKeyValue('小说路径', project.novelPath);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
CliUtils.error(error instanceof Error ? error.message : String(error));
|
|
115
|
+
process.exit(1);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
// 删除当前项目配置
|
|
119
|
+
cmd
|
|
120
|
+
.command('unset')
|
|
121
|
+
.option('-r, --root <path>', '项目根目录')
|
|
122
|
+
.option('-f, --force', '强制删除,无需确认')
|
|
123
|
+
.action(async (options) => {
|
|
124
|
+
try {
|
|
125
|
+
const configService = new ConfigService();
|
|
126
|
+
// 确定项目根目录
|
|
127
|
+
let projectRoot;
|
|
128
|
+
if (options.root) {
|
|
129
|
+
projectRoot = await GitUtils.normalizePath(options.root);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
const root = await GitUtils.findRepositoryRoot(process.cwd());
|
|
133
|
+
if (!root) {
|
|
134
|
+
CliUtils.error('当前目录不在 git 仓库中,请使用 --root 参数指定项目根目录');
|
|
135
|
+
process.exit(1);
|
|
136
|
+
}
|
|
137
|
+
projectRoot = await GitUtils.normalizePath(root);
|
|
138
|
+
}
|
|
139
|
+
// 检查是否存在配置
|
|
140
|
+
const hasConfig = await configService.hasProjectConfig(projectRoot);
|
|
141
|
+
if (!hasConfig) {
|
|
142
|
+
CliUtils.info('当前项目没有配置');
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
// 确认删除
|
|
146
|
+
if (!options.force) {
|
|
147
|
+
const confirmed = await CliUtils.confirm(`确定要删除项目 ${projectRoot} 的配置吗?`);
|
|
148
|
+
if (!confirmed) {
|
|
149
|
+
CliUtils.info('操作已取消');
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// 删除配置
|
|
154
|
+
await configService.removeProject(projectRoot);
|
|
155
|
+
CliUtils.success('配置已删除');
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
CliUtils.error(error instanceof Error ? error.message : String(error));
|
|
159
|
+
process.exit(1);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
return cmd;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElC,GAAG,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAEvC,cAAc;IACd,GAAG;SACA,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;SACnC,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,OAAO,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;YAE1C,UAAU;YACV,IAAI,WAAmB,CAAC;YACxB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,WAAW,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC9D,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,QAAQ,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;oBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,WAAW,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC;YAED,aAAa;YACb,MAAM,YAAY,GAAG,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YAChE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;gBACvC,QAAQ,CAAC,OAAO,CAAC,OAAO,YAAY,uBAAuB,CAAC,CAAC;gBAC7D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACtD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,OAAO;YACP,MAAM,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAEvD,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1B,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC7C,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC1C,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,WAAW;IACX,GAAG;SACA,OAAO,CAAC,KAAK,CAAC;SACd,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC;SACpC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;YAE1C,UAAU;YACV,IAAI,WAAmB,CAAC;YACxB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,WAAW,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC9D,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAChC,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;oBAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,WAAW,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC;YAED,OAAO;YACP,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;YAC/E,IAAI,aAAa,EAAE,CAAC;gBAClB,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACzB,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBACpD,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,WAAW;IACX,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,CAAC;YAEpD,QAAQ,CAAC,KAAK,CAAC,UAAU,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAE7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC9C,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,WAAW;IACX,GAAG;SACA,OAAO,CAAC,OAAO,CAAC;SAChB,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC;SACpC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;YAE1C,UAAU;YACV,IAAI,WAAmB,CAAC;YACxB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,WAAW,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC9D,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,QAAQ,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;oBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,WAAW,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC;YAED,WAAW;YACX,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,OAAO;YACP,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,WAAW,QAAQ,CAAC,CAAC;gBACzE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACvB,OAAO;gBACT,CAAC;YACH,CAAC;YAED,OAAO;YACP,MAAM,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC/C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/commands/event.js
CHANGED
|
@@ -18,7 +18,7 @@ export function createEventCommand() {
|
|
|
18
18
|
.option('-p, --path <path>', '项目路径')
|
|
19
19
|
.action(async (chapter, options) => {
|
|
20
20
|
try {
|
|
21
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
21
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
22
22
|
const chapterNum = parseInt(chapter, 10);
|
|
23
23
|
if (isNaN(chapterNum) || chapterNum < 1) {
|
|
24
24
|
CliUtils.error('章节号必须是正整数');
|
|
@@ -52,7 +52,7 @@ export function createEventCommand() {
|
|
|
52
52
|
.option('-p, --path <path>', '项目路径')
|
|
53
53
|
.action(async (chapter, options) => {
|
|
54
54
|
try {
|
|
55
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
55
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
56
56
|
const chapterNum = parseInt(chapter, 10);
|
|
57
57
|
if (isNaN(chapterNum) || chapterNum < 1) {
|
|
58
58
|
CliUtils.error('章节号必须是正整数');
|
|
@@ -85,7 +85,7 @@ export function createEventCommand() {
|
|
|
85
85
|
.option('-p, --path <path>', '项目路径')
|
|
86
86
|
.action(async (options) => {
|
|
87
87
|
try {
|
|
88
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
88
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
89
89
|
const service = new EventCommandService();
|
|
90
90
|
let chapter;
|
|
91
91
|
if (options.chapter) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/commands/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5B,sBAAsB;IACtB,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;SAC5B,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;SAC5C,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAC;SAC3C,MAAM,CAAC,mBAAmB,EAAE,SAAS,CAAC;SACtC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC;SAC/B,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAO,EAAE,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/commands/event.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6CpC,eAAO,MAAM,GAAG,SAAc,CAAC"}
|
package/dist/commands/index.js
CHANGED
|
@@ -7,7 +7,16 @@ import { createSnapshotCommand } from './snapshot.js';
|
|
|
7
7
|
import { createEventCommand } from './event.js';
|
|
8
8
|
import { createTempSettingCommand } from './temp-setting.js';
|
|
9
9
|
import { createStyleCommand } from './style.js';
|
|
10
|
-
import {
|
|
10
|
+
import { createConfigCommand } from './config.js';
|
|
11
|
+
import { CLI_NAME, CLI_DESCRIPTION } from '../core/constants.js';
|
|
12
|
+
import { readFileSync } from 'fs';
|
|
13
|
+
import { fileURLToPath } from 'url';
|
|
14
|
+
import { dirname, join } from 'path';
|
|
15
|
+
// 从 package.json 读取版本号
|
|
16
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
17
|
+
const __dirname = dirname(__filename);
|
|
18
|
+
const packageJson = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf-8'));
|
|
19
|
+
const CLI_VERSION = packageJson.version;
|
|
11
20
|
/**
|
|
12
21
|
* 主 CLI 程序
|
|
13
22
|
*/
|
|
@@ -25,6 +34,7 @@ function createCli() {
|
|
|
25
34
|
program.addCommand(createEventCommand());
|
|
26
35
|
program.addCommand(createTempSettingCommand());
|
|
27
36
|
program.addCommand(createStyleCommand());
|
|
37
|
+
program.addCommand(createConfigCommand());
|
|
28
38
|
return program;
|
|
29
39
|
}
|
|
30
40
|
// 导出供测试使用
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,uBAAuB;AACvB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7F,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;AAExC;;GAEG;AACH,SAAS,SAAS;IAChB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,eAAe,CAAC;SAC5B,OAAO,CAAC,WAAW,CAAC,CAAC;IAExB,QAAQ;IACR,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAExC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,UAAU;AACV,MAAM,CAAC,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;AAE/B,cAAc;AACd,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC3C,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/commands/query.js
CHANGED
|
@@ -17,7 +17,7 @@ export function createQueryCommand() {
|
|
|
17
17
|
.option('-s, --section <title>', '提取指定大章节内容')
|
|
18
18
|
.action(async (type, options) => {
|
|
19
19
|
try {
|
|
20
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
20
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
21
21
|
const queryService = new QueryService();
|
|
22
22
|
if (!await queryService.validateProjectPath(projectPath)) {
|
|
23
23
|
CliUtils.error('未找到小说项目配置文件 (project.json)');
|
|
@@ -64,7 +64,7 @@ export function createQueryCommand() {
|
|
|
64
64
|
.option('-p, --path <path>', '项目路径')
|
|
65
65
|
.action(async (name, options) => {
|
|
66
66
|
try {
|
|
67
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
67
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
68
68
|
const queryService = new QueryService();
|
|
69
69
|
if (!await queryService.validateProjectPath(projectPath)) {
|
|
70
70
|
CliUtils.error('未找到小说项目配置文件 (project.json)');
|
|
@@ -98,7 +98,7 @@ export function createQueryCommand() {
|
|
|
98
98
|
.option('-p, --path <path>', '项目路径')
|
|
99
99
|
.action(async (name, options) => {
|
|
100
100
|
try {
|
|
101
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
101
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
102
102
|
const queryService = new QueryService();
|
|
103
103
|
if (!await queryService.validateProjectPath(projectPath)) {
|
|
104
104
|
CliUtils.error('未找到小说项目配置文件 (project.json)');
|
|
@@ -126,7 +126,7 @@ export function createQueryCommand() {
|
|
|
126
126
|
.option('-p, --path <path>', '项目路径')
|
|
127
127
|
.action(async (options) => {
|
|
128
128
|
try {
|
|
129
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
129
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
130
130
|
const queryService = new QueryService();
|
|
131
131
|
if (!await queryService.validateProjectPath(projectPath)) {
|
|
132
132
|
CliUtils.error('未找到小说项目配置文件 (project.json)');
|
|
@@ -158,7 +158,7 @@ export function createQueryCommand() {
|
|
|
158
158
|
.option('-p, --path <path>', '项目路径')
|
|
159
159
|
.action(async (options) => {
|
|
160
160
|
try {
|
|
161
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
161
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
162
162
|
const queryService = new QueryService();
|
|
163
163
|
if (!await queryService.validateProjectPath(projectPath)) {
|
|
164
164
|
CliUtils.error('未找到小说项目配置文件 (project.json)');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAE3B,SAAS;IACT,GAAG;SACA,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CAAC,QAAQ,EAAE,qCAAqC,CAAC;SACzD,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC;SACnC,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC;SACxC,MAAM,CAAC,uBAAuB,EAAE,WAAW,CAAC;SAC5C,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAO,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,8 +44,13 @@ export declare class CliUtils {
|
|
|
44
44
|
*/
|
|
45
45
|
static confirm(message: string): Promise<boolean>;
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
* 获取项目路径(异步)
|
|
48
|
+
*
|
|
49
|
+
* 解析优先级:
|
|
50
|
+
* 1. 显式指定的 -p/--path 参数
|
|
51
|
+
* 2. 全局配置中的小说路径
|
|
52
|
+
* 3. 当前工作目录
|
|
53
|
+
*/
|
|
54
|
+
static resolveProjectPath(projectPath?: string): Promise<string>;
|
|
50
55
|
}
|
|
51
56
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,qBAAa,QAAQ;IACnB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMnC;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAyB5D;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI/D;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,IAAI;IAIxB;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,SAAI,GAAG,IAAI;IAOnD;;OAEG;WACU,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAevD
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,qBAAa,QAAQ;IACnB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMnC;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAyB5D;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI/D;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,IAAI;IAIxB;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,SAAI,GAAG,IAAI;IAOnD;;OAEG;WACU,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAevD;;;;;;;OAOG;WACU,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAmBvE"}
|
package/dist/commands/shared.js
CHANGED
|
@@ -98,12 +98,27 @@ export class CliUtils {
|
|
|
98
98
|
});
|
|
99
99
|
}
|
|
100
100
|
/**
|
|
101
|
-
*
|
|
101
|
+
* 获取项目路径(异步)
|
|
102
|
+
*
|
|
103
|
+
* 解析优先级:
|
|
104
|
+
* 1. 显式指定的 -p/--path 参数
|
|
105
|
+
* 2. 全局配置中的小说路径
|
|
106
|
+
* 3. 当前工作目录
|
|
102
107
|
*/
|
|
103
|
-
static resolveProjectPath(projectPath) {
|
|
108
|
+
static async resolveProjectPath(projectPath) {
|
|
109
|
+
// 如果显式指定路径,直接使用
|
|
104
110
|
if (projectPath) {
|
|
105
111
|
return projectPath;
|
|
106
112
|
}
|
|
113
|
+
// 否则,尝试从全局配置查找
|
|
114
|
+
const { ConfigService } = await import('../services/config.service.js');
|
|
115
|
+
const configService = new ConfigService();
|
|
116
|
+
// 从当前目录查找对应的小说路径
|
|
117
|
+
const novelPath = await configService.findNovelPath(process.cwd());
|
|
118
|
+
if (novelPath) {
|
|
119
|
+
return novelPath;
|
|
120
|
+
}
|
|
121
|
+
// 没有找到配置,使用当前目录
|
|
107
122
|
return process.cwd();
|
|
108
123
|
}
|
|
109
124
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export function createSnapshotCommand() {
|
|
|
18
18
|
.option('-p, --path <path>', '项目路径')
|
|
19
19
|
.action(async (options) => {
|
|
20
20
|
try {
|
|
21
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
21
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
22
22
|
const snapshotService = new SnapshotService();
|
|
23
23
|
CliUtils.title('生成状态快照');
|
|
24
24
|
const volume = options.volume ? parseInt(options.volume, 10) : undefined;
|
|
@@ -57,7 +57,7 @@ export function createSnapshotCommand() {
|
|
|
57
57
|
.option('-p, --path <path>', '项目路径')
|
|
58
58
|
.action(async (options) => {
|
|
59
59
|
try {
|
|
60
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
60
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
61
61
|
const snapshotService = new SnapshotService();
|
|
62
62
|
const snapshots = await snapshotService.listSnapshots(projectPath);
|
|
63
63
|
if (snapshots.length === 0) {
|
|
@@ -88,7 +88,7 @@ export function createSnapshotCommand() {
|
|
|
88
88
|
.option('-p, --path <path>', '项目路径')
|
|
89
89
|
.action(async (name, options) => {
|
|
90
90
|
try {
|
|
91
|
-
const projectPath = CliUtils.resolveProjectPath(options.path);
|
|
91
|
+
const projectPath = await CliUtils.resolveProjectPath(options.path);
|
|
92
92
|
const snapshotService = new SnapshotService();
|
|
93
93
|
let snapshot;
|
|
94
94
|
if (name) {
|