hzl-cli 1.8.1 → 1.9.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/README.md +19 -0
- package/dist/commands/init.d.ts +11 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +118 -11
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/init.test.js +96 -8
- package/dist/commands/init.test.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -381,6 +381,7 @@ https://raw.githubusercontent.com/tmchow/hzl/main/docs/openclaw/tools-prompt.md
|
|
|
381
381
|
```bash
|
|
382
382
|
# Setup
|
|
383
383
|
hzl init # Initialize database (add --sync-url for cloud)
|
|
384
|
+
hzl init --reset-config # Reset config to default database location
|
|
384
385
|
|
|
385
386
|
# Projects
|
|
386
387
|
hzl project create <name> # Create a project
|
|
@@ -406,6 +407,10 @@ hzl sync # Sync with cloud (if configured)
|
|
|
406
407
|
hzl status # Show database and sync state
|
|
407
408
|
hzl doctor # Health checks
|
|
408
409
|
|
|
410
|
+
# ⚠️ DESTRUCTIVE - deletes all data
|
|
411
|
+
hzl init --force # Prompts for confirmation before deleting
|
|
412
|
+
hzl init --force --yes # Deletes WITHOUT confirmation (dangerous)
|
|
413
|
+
|
|
409
414
|
# Web Dashboard
|
|
410
415
|
hzl serve # Start dashboard (network accessible)
|
|
411
416
|
hzl serve --port 8080 # Custom port
|
|
@@ -461,6 +466,20 @@ The server binds to `0.0.0.0` by default, making it accessible over the network
|
|
|
461
466
|
|
|
462
467
|
---
|
|
463
468
|
|
|
469
|
+
## Packages
|
|
470
|
+
|
|
471
|
+
HZL is a monorepo with three packages:
|
|
472
|
+
|
|
473
|
+
| Package | Description | Install |
|
|
474
|
+
|---------|-------------|---------|
|
|
475
|
+
| [`hzl-cli`](https://www.npmjs.com/package/hzl-cli) | CLI for task management (`hzl` command) | `npm install -g hzl-cli` |
|
|
476
|
+
| [`hzl-core`](https://www.npmjs.com/package/hzl-core) | Core library for programmatic use | `npm install hzl-core` |
|
|
477
|
+
| [`hzl-web`](https://www.npmjs.com/package/hzl-web) | Web server and Kanban dashboard | `npm install hzl-web` |
|
|
478
|
+
|
|
479
|
+
Most users should install `hzl-cli`. Use `hzl-core` or `hzl-web` directly if you're building your own tooling or UI on top of HZL.
|
|
480
|
+
|
|
481
|
+
---
|
|
482
|
+
|
|
464
483
|
## License
|
|
465
484
|
|
|
466
485
|
MIT
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -16,12 +16,22 @@ export interface InitOptions {
|
|
|
16
16
|
pathSource: DbPathSource;
|
|
17
17
|
json: boolean;
|
|
18
18
|
configPath?: string;
|
|
19
|
-
|
|
19
|
+
/** Reset config to default database location (non-destructive) */
|
|
20
|
+
resetConfig?: boolean;
|
|
20
21
|
syncUrl?: string;
|
|
21
22
|
authToken?: string;
|
|
22
23
|
encryptionKey?: string;
|
|
23
24
|
local?: boolean;
|
|
24
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Delete existing database files for --force operation.
|
|
28
|
+
* Exported for testing.
|
|
29
|
+
*
|
|
30
|
+
* Note: Deletion is handled at the CLI layer (not in runInit) because it requires
|
|
31
|
+
* CLI-specific concerns: interactive confirmation prompts, TTY detection, and the
|
|
32
|
+
* ability to abort. runInit() remains idempotent and testable.
|
|
33
|
+
*/
|
|
34
|
+
export declare function deleteExistingDatabases(eventsDbPath: string, cacheDbPath: string): void;
|
|
25
35
|
export declare function runInit(options: InitOptions): InitResult;
|
|
26
36
|
export declare function createInitCommand(): Command;
|
|
27
37
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,OAAO,EASL,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAItB,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,YAAY,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAuED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAGvF;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,CA0HxD;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAwG3C"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import path from 'path';
|
|
4
|
+
import readline from 'readline';
|
|
4
5
|
import { z } from 'zod';
|
|
5
6
|
import { createDatastore } from 'hzl-core';
|
|
6
7
|
import { resolveDbPathsWithSource, getDefaultDbPath, ensureDbDirectory, writeConfig, readConfig, getConfigPath, isDevMode, deriveCachePath } from '../config.js';
|
|
8
|
+
import { CLIError, ExitCode } from '../errors.js';
|
|
7
9
|
import { GlobalOptionsSchema } from '../types.js';
|
|
8
10
|
function formatSourceHint(source) {
|
|
9
11
|
switch (source) {
|
|
@@ -18,13 +20,80 @@ function formatSourceHint(source) {
|
|
|
18
20
|
}
|
|
19
21
|
}
|
|
20
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Prompt for confirmation before destructive operations.
|
|
25
|
+
* Returns true if user confirms, false otherwise.
|
|
26
|
+
*/
|
|
27
|
+
async function confirmDestructiveAction(eventsDbPath, cacheDbPath) {
|
|
28
|
+
const rl = readline.createInterface({
|
|
29
|
+
input: process.stdin,
|
|
30
|
+
output: process.stderr, // Use stderr so prompts don't interfere with --json output
|
|
31
|
+
});
|
|
32
|
+
return new Promise((resolve) => {
|
|
33
|
+
console.error('');
|
|
34
|
+
console.error('⚠️ WARNING: This will permanently delete all HZL data:');
|
|
35
|
+
console.error(` - ${eventsDbPath}`);
|
|
36
|
+
if (fs.existsSync(cacheDbPath)) {
|
|
37
|
+
console.error(` - ${cacheDbPath}`);
|
|
38
|
+
}
|
|
39
|
+
console.error('');
|
|
40
|
+
console.error('This action cannot be undone. All tasks, projects, and history will be lost.');
|
|
41
|
+
console.error('');
|
|
42
|
+
console.error(`To backup first: cp "${eventsDbPath}" "${eventsDbPath}.backup"`);
|
|
43
|
+
console.error('');
|
|
44
|
+
rl.question("Type 'yes' to confirm: ", (answer) => {
|
|
45
|
+
rl.close();
|
|
46
|
+
resolve(answer.toLowerCase() === 'yes');
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Delete a SQLite database file and its WAL/SHM auxiliary files.
|
|
52
|
+
* Deletes auxiliary files FIRST to preserve recovery options if interrupted.
|
|
53
|
+
*/
|
|
54
|
+
function deleteDbWithAuxiliaryFiles(dbPath) {
|
|
55
|
+
// Delete auxiliary files BEFORE main database - if interrupted, WAL can still be recovered
|
|
56
|
+
for (const suffix of ['-wal', '-shm', '-journal']) {
|
|
57
|
+
const auxPath = dbPath + suffix;
|
|
58
|
+
try {
|
|
59
|
+
if (fs.existsSync(auxPath))
|
|
60
|
+
fs.unlinkSync(auxPath);
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
// Continue with other files even if one fails
|
|
64
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
65
|
+
throw new CLIError(`Failed to delete ${auxPath}: ${message}`, ExitCode.DatabaseError);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Delete main database file last
|
|
69
|
+
try {
|
|
70
|
+
if (fs.existsSync(dbPath))
|
|
71
|
+
fs.unlinkSync(dbPath);
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
75
|
+
throw new CLIError(`Failed to delete ${dbPath}: ${message}`, ExitCode.DatabaseError);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Delete existing database files for --force operation.
|
|
80
|
+
* Exported for testing.
|
|
81
|
+
*
|
|
82
|
+
* Note: Deletion is handled at the CLI layer (not in runInit) because it requires
|
|
83
|
+
* CLI-specific concerns: interactive confirmation prompts, TTY detection, and the
|
|
84
|
+
* ability to abort. runInit() remains idempotent and testable.
|
|
85
|
+
*/
|
|
86
|
+
export function deleteExistingDatabases(eventsDbPath, cacheDbPath) {
|
|
87
|
+
deleteDbWithAuxiliaryFiles(eventsDbPath);
|
|
88
|
+
deleteDbWithAuxiliaryFiles(cacheDbPath);
|
|
89
|
+
}
|
|
21
90
|
export function runInit(options) {
|
|
22
|
-
const { eventsDbPath, cacheDbPath, pathSource, json, configPath = getConfigPath(),
|
|
91
|
+
const { eventsDbPath, cacheDbPath, pathSource, json, configPath = getConfigPath(), resetConfig = false, syncUrl, authToken, encryptionKey, local } = options;
|
|
23
92
|
// Check for config conflict
|
|
24
93
|
const existingConfig = readConfig(configPath);
|
|
25
|
-
if (existingConfig.dbPath && existingConfig.dbPath !== eventsDbPath && !
|
|
94
|
+
if (existingConfig.dbPath && existingConfig.dbPath !== eventsDbPath && !resetConfig) {
|
|
26
95
|
throw new Error(`Config already points to: ${existingConfig.dbPath}\n` +
|
|
27
|
-
`Use --
|
|
96
|
+
`Use --reset-config to reset to default location, or --db <path> to use a specific location`);
|
|
28
97
|
}
|
|
29
98
|
const existed = fs.existsSync(eventsDbPath);
|
|
30
99
|
// Ensure the directories exist
|
|
@@ -62,8 +131,8 @@ export function runInit(options) {
|
|
|
62
131
|
// Overwrite config to remove sync keys
|
|
63
132
|
writeConfig(cleanConfig, configPath);
|
|
64
133
|
}
|
|
65
|
-
else if (
|
|
66
|
-
// --
|
|
134
|
+
else if (resetConfig) {
|
|
135
|
+
// --reset-config: clear old dbPath and write fresh config
|
|
67
136
|
const existing = readConfig(configPath);
|
|
68
137
|
const cleanConfig = {
|
|
69
138
|
defaultProject: existing.defaultProject,
|
|
@@ -123,21 +192,32 @@ export function runInit(options) {
|
|
|
123
192
|
export function createInitCommand() {
|
|
124
193
|
return new Command('init')
|
|
125
194
|
.description('Initialize a new HZL database')
|
|
126
|
-
.option('-
|
|
195
|
+
.option('--reset-config', 'Reset config to default database location (non-destructive)')
|
|
196
|
+
.option('-f, --force', 'DESTRUCTIVE: Delete existing database and create fresh. Prompts for confirmation.')
|
|
197
|
+
.option('-y, --yes', 'Skip confirmation prompt (use with --force)')
|
|
127
198
|
.option('--sync-url <url>', 'Turso sync URL (libsql://...)')
|
|
128
199
|
.option('--auth-token <token>', 'Turso auth token')
|
|
129
200
|
.option('--encryption-key <key>', 'Local encryption key')
|
|
130
201
|
.option('--local', 'Explicit local-only mode, don\'t configure sync')
|
|
131
|
-
.action(function () {
|
|
202
|
+
.action(async function () {
|
|
132
203
|
const globalOpts = GlobalOptionsSchema.parse(this.optsWithGlobals());
|
|
133
204
|
const opts = z.object({
|
|
205
|
+
resetConfig: z.boolean().optional(),
|
|
134
206
|
force: z.boolean().optional(),
|
|
207
|
+
yes: z.boolean().optional(),
|
|
135
208
|
syncUrl: z.string().optional(),
|
|
136
209
|
authToken: z.string().optional(),
|
|
137
210
|
encryptionKey: z.string().optional(),
|
|
138
211
|
local: z.boolean().optional()
|
|
139
212
|
}).parse(this.opts());
|
|
213
|
+
const resetConfig = opts.resetConfig ?? false;
|
|
140
214
|
const force = opts.force ?? false;
|
|
215
|
+
const yes = opts.yes ?? false;
|
|
216
|
+
const json = globalOpts.json ?? false;
|
|
217
|
+
// Validate flag combinations
|
|
218
|
+
if (force && resetConfig) {
|
|
219
|
+
throw new CLIError('Cannot use --force and --reset-config together. Choose one.', ExitCode.InvalidUsage);
|
|
220
|
+
}
|
|
141
221
|
let eventsDbPath;
|
|
142
222
|
let cacheDbPath;
|
|
143
223
|
let pathSource;
|
|
@@ -147,8 +227,8 @@ export function createInitCommand() {
|
|
|
147
227
|
cacheDbPath = deriveCachePath(eventsDbPath);
|
|
148
228
|
pathSource = 'cli';
|
|
149
229
|
}
|
|
150
|
-
else if (
|
|
151
|
-
// --
|
|
230
|
+
else if (resetConfig) {
|
|
231
|
+
// --reset-config without --db resets to default (or dev path in dev mode)
|
|
152
232
|
eventsDbPath = getDefaultDbPath();
|
|
153
233
|
cacheDbPath = deriveCachePath(eventsDbPath);
|
|
154
234
|
pathSource = isDevMode() ? 'dev' : 'default';
|
|
@@ -160,12 +240,39 @@ export function createInitCommand() {
|
|
|
160
240
|
cacheDbPath = resolved.cacheDbPath;
|
|
161
241
|
pathSource = resolved.source;
|
|
162
242
|
}
|
|
243
|
+
// Handle destructive --force flag
|
|
244
|
+
if (force) {
|
|
245
|
+
const dbExists = fs.existsSync(eventsDbPath);
|
|
246
|
+
if (dbExists) {
|
|
247
|
+
// In JSON mode without --yes, we can't prompt interactively
|
|
248
|
+
if (json && !yes) {
|
|
249
|
+
throw new CLIError('Cannot use --force with --json without --yes.\n' +
|
|
250
|
+
'Use --force --yes to confirm destruction, or remove --json to see the confirmation prompt.', ExitCode.InvalidUsage);
|
|
251
|
+
}
|
|
252
|
+
// Check if we can prompt (TTY available)
|
|
253
|
+
if (!yes && !process.stdin.isTTY) {
|
|
254
|
+
throw new CLIError('Cannot prompt for confirmation in non-interactive mode.\n' +
|
|
255
|
+
'Use --force --yes to confirm destruction without prompting.', ExitCode.InvalidUsage);
|
|
256
|
+
}
|
|
257
|
+
// Prompt for confirmation unless --yes is provided
|
|
258
|
+
if (!yes) {
|
|
259
|
+
const confirmed = await confirmDestructiveAction(eventsDbPath, cacheDbPath);
|
|
260
|
+
if (!confirmed) {
|
|
261
|
+
console.error('Aborted. No changes made.');
|
|
262
|
+
process.exit(1);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
// Delete existing databases
|
|
266
|
+
deleteExistingDatabases(eventsDbPath, cacheDbPath);
|
|
267
|
+
}
|
|
268
|
+
// If no database exists, --force just initializes normally (no deletion needed)
|
|
269
|
+
}
|
|
163
270
|
runInit({
|
|
164
271
|
eventsDbPath,
|
|
165
272
|
cacheDbPath,
|
|
166
273
|
pathSource,
|
|
167
|
-
json
|
|
168
|
-
|
|
274
|
+
json,
|
|
275
|
+
resetConfig,
|
|
169
276
|
syncUrl: opts.syncUrl,
|
|
170
277
|
authToken: opts.authToken,
|
|
171
278
|
encryptionKey: opts.encryptionKey,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,aAAa,EACb,SAAS,EACT,eAAe,EAEhB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAe,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
|
2
|
-
import { createInitCommand, runInit } from './init.js';
|
|
2
|
+
import { createInitCommand, runInit, deleteExistingDatabases } from './init.js';
|
|
3
3
|
import fs from 'fs';
|
|
4
4
|
import path from 'path';
|
|
5
5
|
import os from 'os';
|
|
@@ -113,7 +113,7 @@ describe('hzl init command', () => {
|
|
|
113
113
|
// Config file should not exist since no values were persisted
|
|
114
114
|
expect(fs.existsSync(configPath)).toBe(false);
|
|
115
115
|
});
|
|
116
|
-
it('clears existing config dbPath when using --
|
|
116
|
+
it('clears existing config dbPath when using --reset-config', () => {
|
|
117
117
|
const existingDbPath = '/existing/path/events.db';
|
|
118
118
|
fs.writeFileSync(configPath, JSON.stringify({ dbPath: existingDbPath }));
|
|
119
119
|
runInit({
|
|
@@ -122,13 +122,13 @@ describe('hzl init command', () => {
|
|
|
122
122
|
pathSource: 'default',
|
|
123
123
|
json: true,
|
|
124
124
|
configPath,
|
|
125
|
-
|
|
125
|
+
resetConfig: true
|
|
126
126
|
});
|
|
127
127
|
const savedConfig = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
128
|
-
// --
|
|
128
|
+
// --reset-config clears the old dbPath so default location is used
|
|
129
129
|
expect(savedConfig.dbPath).toBeUndefined();
|
|
130
130
|
});
|
|
131
|
-
it('preserves existing config dbPath without --
|
|
131
|
+
it('preserves existing config dbPath without --reset-config when pathSource is config', () => {
|
|
132
132
|
// Use paths in test directory
|
|
133
133
|
const existingDbPath = path.join(testDir, 'existing', 'events.db');
|
|
134
134
|
const existingCachePath = path.join(testDir, 'existing', 'cache.db');
|
|
@@ -139,22 +139,110 @@ describe('hzl init command', () => {
|
|
|
139
139
|
pathSource: 'config', // resolved from config, not default
|
|
140
140
|
json: true,
|
|
141
141
|
configPath,
|
|
142
|
-
|
|
142
|
+
resetConfig: false
|
|
143
143
|
});
|
|
144
144
|
const savedConfig = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
145
|
-
// Without --
|
|
145
|
+
// Without --reset-config, existing dbPath is preserved
|
|
146
146
|
expect(savedConfig.dbPath).toBe(existingDbPath);
|
|
147
147
|
});
|
|
148
148
|
});
|
|
149
149
|
describe('createInitCommand', () => {
|
|
150
|
+
// Helper to safely extract option long names from Commander
|
|
151
|
+
function getOptionLongNames(cmd) {
|
|
152
|
+
return cmd.options
|
|
153
|
+
.map((o) => {
|
|
154
|
+
const opt = o;
|
|
155
|
+
return typeof opt.long === 'string' ? opt.long : undefined;
|
|
156
|
+
})
|
|
157
|
+
.filter((x) => x !== undefined);
|
|
158
|
+
}
|
|
150
159
|
it('has sync options', () => {
|
|
151
160
|
const cmd = createInitCommand();
|
|
152
|
-
const opts = cmd
|
|
161
|
+
const opts = getOptionLongNames(cmd);
|
|
153
162
|
expect(opts).toContain('--sync-url');
|
|
154
163
|
expect(opts).toContain('--auth-token');
|
|
155
164
|
expect(opts).toContain('--encryption-key');
|
|
156
165
|
expect(opts).toContain('--local');
|
|
157
166
|
});
|
|
167
|
+
it('has --reset-config option without short flag (non-destructive)', () => {
|
|
168
|
+
const cmd = createInitCommand();
|
|
169
|
+
const opts = getOptionLongNames(cmd);
|
|
170
|
+
expect(opts).toContain('--reset-config');
|
|
171
|
+
// Verify no -r short flag (could be confused with -r for recursive)
|
|
172
|
+
const resetConfigOpt = cmd.options.find((o) => {
|
|
173
|
+
const opt = o;
|
|
174
|
+
return opt.long === '--reset-config';
|
|
175
|
+
});
|
|
176
|
+
expect(resetConfigOpt?.short).toBeUndefined();
|
|
177
|
+
});
|
|
178
|
+
it('has --force and --yes options for destructive reset', () => {
|
|
179
|
+
const cmd = createInitCommand();
|
|
180
|
+
const opts = getOptionLongNames(cmd);
|
|
181
|
+
expect(opts).toContain('--force');
|
|
182
|
+
expect(opts).toContain('--yes');
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
describe('deleteExistingDatabases (--force helper)', () => {
|
|
186
|
+
it('deletes events.db and cache.db files', () => {
|
|
187
|
+
const eventsDbPath = path.join(testDir, 'events.db');
|
|
188
|
+
const cacheDbPath = path.join(testDir, 'cache.db');
|
|
189
|
+
// Create test files
|
|
190
|
+
fs.writeFileSync(eventsDbPath, 'test data');
|
|
191
|
+
fs.writeFileSync(cacheDbPath, 'test data');
|
|
192
|
+
expect(fs.existsSync(eventsDbPath)).toBe(true);
|
|
193
|
+
expect(fs.existsSync(cacheDbPath)).toBe(true);
|
|
194
|
+
deleteExistingDatabases(eventsDbPath, cacheDbPath);
|
|
195
|
+
expect(fs.existsSync(eventsDbPath)).toBe(false);
|
|
196
|
+
expect(fs.existsSync(cacheDbPath)).toBe(false);
|
|
197
|
+
});
|
|
198
|
+
it('deletes WAL, SHM, and journal files if they exist', () => {
|
|
199
|
+
const eventsDbPath = path.join(testDir, 'events.db');
|
|
200
|
+
const cacheDbPath = path.join(testDir, 'cache.db');
|
|
201
|
+
// Create test files including WAL/SHM/journal
|
|
202
|
+
fs.writeFileSync(eventsDbPath, 'test data');
|
|
203
|
+
fs.writeFileSync(eventsDbPath + '-wal', 'wal data');
|
|
204
|
+
fs.writeFileSync(eventsDbPath + '-shm', 'shm data');
|
|
205
|
+
fs.writeFileSync(eventsDbPath + '-journal', 'journal data');
|
|
206
|
+
fs.writeFileSync(cacheDbPath, 'test data');
|
|
207
|
+
fs.writeFileSync(cacheDbPath + '-wal', 'wal data');
|
|
208
|
+
deleteExistingDatabases(eventsDbPath, cacheDbPath);
|
|
209
|
+
expect(fs.existsSync(eventsDbPath)).toBe(false);
|
|
210
|
+
expect(fs.existsSync(eventsDbPath + '-wal')).toBe(false);
|
|
211
|
+
expect(fs.existsSync(eventsDbPath + '-shm')).toBe(false);
|
|
212
|
+
expect(fs.existsSync(eventsDbPath + '-journal')).toBe(false);
|
|
213
|
+
expect(fs.existsSync(cacheDbPath)).toBe(false);
|
|
214
|
+
expect(fs.existsSync(cacheDbPath + '-wal')).toBe(false);
|
|
215
|
+
});
|
|
216
|
+
it('handles missing files gracefully', () => {
|
|
217
|
+
const eventsDbPath = path.join(testDir, 'nonexistent-events.db');
|
|
218
|
+
const cacheDbPath = path.join(testDir, 'nonexistent-cache.db');
|
|
219
|
+
// Should not throw
|
|
220
|
+
expect(() => deleteExistingDatabases(eventsDbPath, cacheDbPath)).not.toThrow();
|
|
221
|
+
});
|
|
222
|
+
it('deletes auxiliary files before main database (safe order)', () => {
|
|
223
|
+
const eventsDbPath = path.join(testDir, 'events.db');
|
|
224
|
+
const cacheDbPath = path.join(testDir, 'cache.db');
|
|
225
|
+
// Track deletion order
|
|
226
|
+
const deletionOrder = [];
|
|
227
|
+
const originalUnlink = fs.unlinkSync;
|
|
228
|
+
vi.spyOn(fs, 'unlinkSync').mockImplementation((p) => {
|
|
229
|
+
deletionOrder.push(path.basename(String(p)));
|
|
230
|
+
return originalUnlink(p);
|
|
231
|
+
});
|
|
232
|
+
// Create test files
|
|
233
|
+
fs.writeFileSync(eventsDbPath, 'test data');
|
|
234
|
+
fs.writeFileSync(eventsDbPath + '-wal', 'wal data');
|
|
235
|
+
fs.writeFileSync(eventsDbPath + '-shm', 'shm data');
|
|
236
|
+
fs.writeFileSync(cacheDbPath, 'test data');
|
|
237
|
+
deleteExistingDatabases(eventsDbPath, cacheDbPath);
|
|
238
|
+
// Verify auxiliary files deleted before main database
|
|
239
|
+
const eventsDbIndex = deletionOrder.indexOf('events.db');
|
|
240
|
+
const walIndex = deletionOrder.indexOf('events.db-wal');
|
|
241
|
+
const shmIndex = deletionOrder.indexOf('events.db-shm');
|
|
242
|
+
expect(walIndex).toBeLessThan(eventsDbIndex);
|
|
243
|
+
expect(shmIndex).toBeLessThan(eventsDbIndex);
|
|
244
|
+
vi.restoreAllMocks();
|
|
245
|
+
});
|
|
158
246
|
});
|
|
159
247
|
});
|
|
160
248
|
//# sourceMappingURL=init.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/commands/init.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/commands/init.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hzl-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "CLI for HZL - A shared task ledger for OpenClaw and poly-agent workflows.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"libsql": "^0.5.0",
|
|
40
40
|
"commander": "^14.0.0",
|
|
41
|
-
"hzl-core": "^1.
|
|
41
|
+
"hzl-core": "^1.9.0",
|
|
42
42
|
"hzl-web": "^1.7.6",
|
|
43
43
|
"zod": "^3.23.8"
|
|
44
44
|
},
|