electerm-data-tool 1.0.0 → 1.101.16

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/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Electerm Data Tool
2
2
 
3
+ [中文文档 (Chinese README)](./README.zh-CN.md)
4
+
3
5
  A command-line utility for managing Electerm application data, including database migration from v1 (NeDB) to v2 (SQLite) and data export functionality.
4
6
 
5
7
  ## Features
@@ -147,10 +149,6 @@ The exported JSON follows this structure:
147
149
 
148
150
  - **Node.js**: 16.0.0 or higher
149
151
  - **For SQLite (v2)**: Node.js 22.0.0 or higher
150
- - **Dependencies**:
151
- - `commander` - CLI framework
152
- - `@yetzt/nedb` - NeDB database support
153
- - `nanoid` - ID generation
154
152
 
155
153
  ## File Locations
156
154
 
@@ -204,19 +202,6 @@ electerm-data-tool info
204
202
  electerm-data-tool export ~/electerm-backup-after-migration.json
205
203
  ```
206
204
 
207
- ### Using with npm scripts
208
-
209
- ```bash
210
- # Quick migration
211
- npm run migrate
212
-
213
- # Quick export
214
- npm run export ~/backup.json
215
-
216
- # Quick info
217
- npm run info
218
- ```
219
-
220
205
  ## Troubleshooting
221
206
 
222
207
  ### Migration Issues
@@ -0,0 +1,185 @@
1
+ # Electerm 数据工具
2
+
3
+ [English README](./README.md)
4
+
5
+ 一个用于管理 Electerm 应用数据的命令行工具,支持从 v1 (NeDB) 到 v2 (SQLite) 的数据库迁移,以及数据导出。
6
+
7
+ ## 功能特性
8
+
9
+ - 🔄 **数据库迁移**:将 Electerm 数据从 v1 (NeDB) 迁移到 v2 (SQLite)
10
+ - 📤 **数据导出**:将所有 Electerm 数据导出为一个包含明文密码的 JSON 文件
11
+ - 📊 **数据库信息**:显示当前 Electerm 数据库的信息
12
+ - 🔐 **密码解密**:导出时自动解密密码,便于备份
13
+
14
+ ## 安装
15
+
16
+ ### 推荐:npx 直接运行
17
+
18
+ 无需安装,直接使用 npx 运行:
19
+
20
+ ```bash
21
+ npx electerm-data-tool migrate
22
+ npx electerm-data-tool export ~/backup.json
23
+ npx electerm-data-tool info
24
+ ```
25
+
26
+ ### 全局安装
27
+
28
+ ```bash
29
+ npm install -g electerm-data-tool
30
+ ```
31
+
32
+ ## 使用方法
33
+
34
+ ### 命令总览
35
+
36
+ **npx 方式(无需安装):**
37
+ ```bash
38
+ npx electerm-data-tool [command] [options]
39
+ ```
40
+
41
+ **全局安装方式:**
42
+ ```bash
43
+ electerm-data-tool [command] [options]
44
+ ```
45
+
46
+ 可用命令:
47
+
48
+ - `migrate` - 数据库从 v1 迁移到 v2
49
+ - `export <path>` - 导出所有数据为 JSON 文件
50
+ - `info` - 显示数据库信息
51
+ - `--help` - 显示帮助信息
52
+ - `--version` - 显示版本号
53
+
54
+ ### 1. 数据库迁移
55
+
56
+ 将 Electerm 数据库从 v1 (NeDB) 迁移到 v2 (SQLite):
57
+
58
+ ```bash
59
+ electerm-data-tool migrate
60
+ ```
61
+
62
+ 此命令将:
63
+ - 检查是否需要迁移
64
+ - 将所有 NeDB 文件数据迁移到 SQLite 数据库
65
+ - 备份原始 NeDB 文件(带时间戳)
66
+ - 执行必要的数据升级
67
+
68
+ **注意**:需要 Node.js 22.0.0 及以上版本。
69
+
70
+ ### 2. 数据导出
71
+
72
+ 将所有 Electerm 数据导出为包含明文密码的 JSON 文件:
73
+
74
+ ```bash
75
+ electerm-data-tool export /path/to/backup.json
76
+ ```
77
+
78
+ 示例:
79
+ ```bash
80
+ electerm-data-tool export ~/electerm-backup-2025-09-03.json
81
+ ```
82
+
83
+ ### 3. 数据库信息
84
+
85
+ 查看当前 Electerm 数据库信息:
86
+
87
+ ```bash
88
+ electerm-data-tool info
89
+ ```
90
+
91
+ 将显示:
92
+ - 数据库类型(v1 NeDB 或 v2 SQLite)
93
+ - 各表数据条数
94
+ - 如需迁移会有提示
95
+
96
+ ## 数据库自动检测
97
+
98
+ 工具会自动检测当前数据库类型:
99
+ - **v1 (NeDB)**:原始文件型数据库
100
+ - **v2 (SQLite)**:新版数据库(需 Node.js 22+)
101
+
102
+ 导出时:
103
+ - 检测到 v1 用 NeDB 方式导出
104
+ - 检测到 v2 用 SQLite 方式导出
105
+ - 密码自动解密为明文
106
+
107
+ ## 数据结构
108
+
109
+ 导出 JSON 结构如下:
110
+
111
+ ```json
112
+ {
113
+ "bookmarks": [...],
114
+ "bookmarkGroups": [...],
115
+ "terminalThemes": [...],
116
+ "quickCommands": [...],
117
+ "profiles": [...],
118
+ "config": {...},
119
+ "addressBookmarks": [...],
120
+ "lastStates": [...],
121
+ "data": [...],
122
+ "log": [...],
123
+ "dbUpgradeLog": [...]
124
+ }
125
+ ```
126
+
127
+ ## 密码处理
128
+
129
+ - Electerm 内部密码为加密存储
130
+ - 导出时自动解密为明文
131
+ - 导出数据不含 `passwordEncrypted` 字段
132
+ - 便于备份和迁移
133
+
134
+ ## 依赖要求
135
+
136
+ - **Node.js**:16.0.0 及以上
137
+ - **SQLite (v2)**:需 Node.js 22.0.0 及以上
138
+ - **依赖包**:
139
+ - `commander` - CLI 框架
140
+ - `@yetzt/nedb` - NeDB 支持
141
+ - `nanoid` - ID 生成
142
+
143
+ ## 数据文件位置
144
+
145
+ - NeDB (v1):`~/.electerm/users/{username}/electerm.{table}.nedb`
146
+ - SQLite (v2):`~/.electerm/users/{username}/electerm.db`
147
+
148
+ 迁移时 NeDB 文件会自动备份为:
149
+ - `electerm.bookmarks.nedb-{timestamp}.bak`
150
+
151
+ ## 示例流程
152
+
153
+ ```bash
154
+ # 1. 查看数据库状态
155
+ npx electerm-data-tool info
156
+
157
+ # 2. 迁移前导出备份
158
+ npx electerm-data-tool export ~/electerm-backup-before-migration.json
159
+
160
+ # 3. 执行迁移
161
+ npx electerm-data-tool migrate
162
+
163
+ # 4. 验证迁移结果
164
+ npx electerm-data-tool info
165
+
166
+ # 5. 迁移后再导出一次
167
+ npx electerm-data-tool export ~/electerm-backup-after-migration.json
168
+ ```
169
+
170
+ ## 常见问题
171
+
172
+ - **迁移报错/SQLite 报错**:请确认 Node.js 版本 >= 22
173
+ - **导出密码为乱码**:请升级到最新版工具
174
+ - **命令未找到**:请确认已全局安装或用 npx 运行
175
+
176
+ ## 安全提示
177
+
178
+ - 导出文件包含明文密码,请妥善保存
179
+ - 用完请及时删除导出文件
180
+ - 本工具所有操作均在本地完成,不会上传数据
181
+
182
+ ## 相关链接
183
+
184
+ - [Electerm 主项目](https://github.com/electerm/electerm)
185
+ - [English README](./README.md)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "electerm-data-tool",
3
- "version": "1.0.0",
3
+ "version": "1.101.16",
4
4
  "description": "electerm data export/migrate tool",
5
5
  "main": "src/index.js",
6
6
  "bin": {