wt-manager 1.4.0 → 1.7.1

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/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAA;AAE7D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,qEAAqE,CAAC;KAClF,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,2BAA2B,CAAC,CAAA;AAGrE,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAA;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;AACjC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAA;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAA;AACnC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;AAGjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAClC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAExH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;AAClC,CAAC;AAED,OAAO,CAAC,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAA;AAE7D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,qEAAqE,CAAC;KAClF,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,2BAA2B,CAAC,CAAA;AAGrE,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAA;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;AACjC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAA;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAA;AACnC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAA;AAGnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAClC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1H,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;AAClC,CAAC;AAED,OAAO,CAAC,KAAK,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function configCommand(): Command;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,wBAAgB,aAAa,YAqE5B"}
@@ -0,0 +1,69 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { join } from 'node:path';
4
+ import { getMainWorktreePath, getRepoName } from '../utils/git.js';
5
+ import { loadConfig } from '../utils/config.js';
6
+ export function configCommand() {
7
+ const cmd = new Command('config');
8
+ cmd.description('Display current .wtrc.json configuration').action(async () => {
9
+ try {
10
+ const mainWorktreePath = await getMainWorktreePath();
11
+ const repoName = await getRepoName();
12
+ const configPath = join(mainWorktreePath, '.wtrc.json');
13
+ const { config, source } = await loadConfig(mainWorktreePath);
14
+ if (source === 'defaults') {
15
+ console.log(chalk.gray('Config: No .wtrc.json found (using defaults)'));
16
+ }
17
+ else {
18
+ console.log(chalk.gray(`Config: ${configPath}`));
19
+ }
20
+ console.log();
21
+ console.log(chalk.bold('worktreePath:'), config.worktreePath);
22
+ const exampleDir = config.worktreePath
23
+ .replace(/\$REPO\b/g, repoName)
24
+ .replace(/\$DIR\b/g, '<branch>');
25
+ console.log(chalk.gray(` → ${exampleDir}`));
26
+ console.log();
27
+ console.log(chalk.bold('copy:'));
28
+ if (config.copy.length > 0) {
29
+ for (const pattern of config.copy) {
30
+ console.log(` - ${pattern}`);
31
+ }
32
+ }
33
+ else {
34
+ console.log(chalk.gray(' (none)'));
35
+ }
36
+ console.log();
37
+ console.log(chalk.bold('symlink:'));
38
+ if (config.symlink.length > 0) {
39
+ for (const pattern of config.symlink) {
40
+ console.log(` - ${pattern}`);
41
+ }
42
+ }
43
+ else {
44
+ console.log(chalk.gray(' (none)'));
45
+ }
46
+ console.log();
47
+ console.log(chalk.bold('postCreate:'));
48
+ if (config.postCreate.length > 0) {
49
+ for (const command of config.postCreate) {
50
+ console.log(` - ${command}`);
51
+ }
52
+ }
53
+ else {
54
+ console.log(chalk.gray(' (none)'));
55
+ }
56
+ }
57
+ catch (error) {
58
+ if (error instanceof Error) {
59
+ console.error(chalk.red(`Error: ${error.message}`));
60
+ }
61
+ else {
62
+ console.error(chalk.red('An unknown error occurred'));
63
+ }
64
+ process.exit(1);
65
+ }
66
+ });
67
+ return cmd;
68
+ }
69
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiBnC,wBAAgB,UAAU,YAiLzB"}
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAqBnC,wBAAgB,UAAU,YAiIzB"}
@@ -2,11 +2,9 @@ import { Command } from 'commander';
2
2
  import chalk from 'chalk';
3
3
  import ora from 'ora';
4
4
  import { join, dirname, basename } from 'node:path';
5
- import { symlink, copyFile, mkdir, readFile, cp, readdir } from 'node:fs/promises';
6
- import { existsSync, statSync } from 'node:fs';
7
- import { execa } from 'execa';
8
5
  import { getMainWorktreePath, getDefaultBranch, branchExists, ensureDir, createWorktree, fetchOrigin, } from '../utils/git.js';
9
6
  import { copyToClipboard } from '../utils/clipboard.js';
7
+ import { loadConfig, resolveTemplate, copyConfigFiles, runPostCreateCommands, } from '../utils/config.js';
10
8
  export function newCommand() {
11
9
  const cmd = new Command('new');
12
10
  cmd
@@ -23,9 +21,18 @@ export function newCommand() {
23
21
  spinner.start('Creating worktree...');
24
22
  const mainWorktreePath = await getMainWorktreePath();
25
23
  const repoName = basename(mainWorktreePath);
26
- const worktreeBaseDir = join(dirname(mainWorktreePath), `${repoName}-worktrees`);
24
+ const { config } = await loadConfig(mainWorktreePath);
27
25
  const dirName = branchName.replace(/\//g, '-');
28
- const worktreePath = join(worktreeBaseDir, dirName);
26
+ const templateVars = {
27
+ PATH: '',
28
+ BRANCH: branchName,
29
+ DIR: dirName,
30
+ REPO: repoName,
31
+ };
32
+ const resolvedWorktreePath = resolveTemplate(config.worktreePath, templateVars);
33
+ const worktreePath = join(dirname(mainWorktreePath), resolvedWorktreePath);
34
+ const worktreeBaseDir = dirname(worktreePath);
35
+ templateVars.PATH = worktreePath;
29
36
  const base = baseBranch || (await getDefaultBranch());
30
37
  let useRemoteBase = true;
31
38
  try {
@@ -43,84 +50,38 @@ export function newCommand() {
43
50
  await createWorktree(branchName, worktreePath, actualBase);
44
51
  spinner.stop();
45
52
  console.log(chalk.green(`✓ Created worktree for branch '${branchName}'`));
46
- try {
47
- const mainRoot = mainWorktreePath;
48
- const sourceEnvPath = join(mainRoot, '.env');
49
- const targetEnvPath = join(worktreePath, '.env');
50
- if (existsSync(sourceEnvPath)) {
51
- await symlink(sourceEnvPath, targetEnvPath);
52
- console.log(chalk.gray(' Symlinked .env from main worktree'));
53
+ if (config.copy.length > 0 || config.symlink.length > 0) {
54
+ const result = await copyConfigFiles({
55
+ mainWorktreePath,
56
+ worktreePath,
57
+ copyPatterns: config.copy,
58
+ symlinkPatterns: config.symlink,
59
+ });
60
+ if (result.copied.length > 0) {
61
+ console.log(chalk.gray(` Copied ${result.copied.length} file(s) from main worktree`));
53
62
  }
54
- const sourceSettingsPath = join(mainRoot, '.claude', 'settings.local.json');
55
- const targetSettingsPath = join(worktreePath, '.claude', 'settings.local.json');
56
- if (existsSync(sourceSettingsPath)) {
57
- await mkdir(dirname(targetSettingsPath), { recursive: true });
58
- await copyFile(sourceSettingsPath, targetSettingsPath);
59
- console.log(chalk.gray(' Copied .claude/settings.local.json from main worktree'));
63
+ if (result.symlinked.length > 0) {
64
+ console.log(chalk.gray(` Symlinked ${result.symlinked.length} file(s) from main worktree`));
60
65
  }
61
- const sourceIdeaPath = join(mainRoot, '.idea');
62
- const targetIdeaPath = join(worktreePath, '.idea');
63
- if (existsSync(sourceIdeaPath)) {
64
- let copiedAny = false;
65
- await mkdir(targetIdeaPath, { recursive: true });
66
- const dirsTocp = ['runConfigurations', 'codeStyles', 'inspectionProfiles', 'scopes'];
67
- for (const dir of dirsTocp) {
68
- const sourceDir = join(sourceIdeaPath, dir);
69
- const targetDir = join(targetIdeaPath, dir);
70
- if (existsSync(sourceDir) && statSync(sourceDir).isDirectory()) {
71
- await cp(sourceDir, targetDir, { recursive: true });
72
- copiedAny = true;
73
- }
74
- }
75
- const filesToCopy = ['modules.xml', 'vcs.xml', 'encodings.xml', 'misc.xml'];
76
- for (const file of filesToCopy) {
77
- const sourceFile = join(sourceIdeaPath, file);
78
- const targetFile = join(targetIdeaPath, file);
79
- if (existsSync(sourceFile)) {
80
- await copyFile(sourceFile, targetFile);
81
- copiedAny = true;
82
- }
83
- }
84
- const ideaFiles = await readdir(sourceIdeaPath);
85
- for (const file of ideaFiles) {
86
- if (file.endsWith('.iml')) {
87
- const sourceFile = join(sourceIdeaPath, file);
88
- const targetFile = join(targetIdeaPath, file);
89
- if (existsSync(sourceFile)) {
90
- await copyFile(sourceFile, targetFile);
91
- copiedAny = true;
92
- }
93
- }
94
- }
95
- if (copiedAny) {
96
- console.log(chalk.gray(' Copied WebStorm settings from main worktree'));
97
- }
66
+ for (const warning of result.warnings) {
67
+ console.log(chalk.yellow(` ⚠ ${warning}`));
98
68
  }
99
69
  }
100
- catch (error) {
101
- }
102
- try {
103
- const packageJsonPath = join(worktreePath, 'package.json');
104
- if (existsSync(packageJsonPath)) {
105
- const packageJsonContent = await readFile(packageJsonPath, 'utf-8');
106
- const packageJson = JSON.parse(packageJsonContent);
107
- const hookScript = packageJson.scripts?.['post-worktree-created'];
108
- if (hookScript) {
109
- spinner.stop();
110
- console.log(chalk.blue(`→ Running post-worktree-created: ${hookScript}`));
111
- spinner.start('Executing hook...');
112
- await execa('npm', ['run', 'post-worktree-created'], {
113
- cwd: worktreePath,
114
- });
115
- spinner.stop();
116
- console.log(chalk.green('✓ Post-worktree hook completed'));
117
- }
70
+ if (config.postCreate.length > 0) {
71
+ const resolvedCommands = config.postCreate.map(cmd => resolveTemplate(cmd, templateVars));
72
+ const result = await runPostCreateCommands({
73
+ worktreePath,
74
+ commands: resolvedCommands,
75
+ onCommand: (command) => {
76
+ console.log(chalk.blue(`→ ${command}`));
77
+ },
78
+ });
79
+ if (result.failed) {
80
+ console.log(chalk.yellow(`⚠ Command failed: ${result.failed.error}`));
81
+ }
82
+ else if (result.executed.length > 0) {
83
+ console.log(chalk.green('✓ Post-create commands completed'));
118
84
  }
119
- }
120
- catch (error) {
121
- spinner.stop();
122
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
123
- console.log(chalk.yellow(`⚠ Warning: Post-worktree hook failed: ${errorMessage}`));
124
85
  }
125
86
  console.log();
126
87
  const copied = await copyToClipboard(worktreePath);
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { z } from 'zod';
2
+ export interface WtConfig {
3
+ worktreePath: string;
4
+ copy: string[];
5
+ symlink: string[];
6
+ postCreate: string[];
7
+ }
8
+ export interface LoadConfigResult {
9
+ config: WtConfig;
10
+ source: 'file' | 'defaults';
11
+ }
12
+ export declare function getDefaults(): WtConfig;
13
+ export declare function loadConfig(mainWorktreePath: string): Promise<LoadConfigResult>;
14
+ export declare class ConfigValidationError extends Error {
15
+ readonly configPath: string;
16
+ readonly zodError?: z.ZodError | undefined;
17
+ constructor(message: string, configPath: string, zodError?: z.ZodError | undefined);
18
+ }
19
+ export interface TemplateVariables {
20
+ PATH: string;
21
+ BRANCH: string;
22
+ DIR: string;
23
+ REPO: string;
24
+ }
25
+ export declare function resolveTemplate(template: string, vars: TemplateVariables): string;
26
+ export declare function resolveConfig(config: WtConfig, vars: TemplateVariables): WtConfig;
27
+ export interface CopyConfigFilesOptions {
28
+ mainWorktreePath: string;
29
+ worktreePath: string;
30
+ copyPatterns: string[];
31
+ symlinkPatterns: string[];
32
+ }
33
+ export declare function copyConfigFiles(options: CopyConfigFilesOptions): Promise<{
34
+ copied: string[];
35
+ symlinked: string[];
36
+ warnings: string[];
37
+ }>;
38
+ export interface RunPostCreateCommandsOptions {
39
+ worktreePath: string;
40
+ commands: string[];
41
+ onCommand?: (command: string) => void;
42
+ }
43
+ export declare function runPostCreateCommands(options: RunPostCreateCommandsOptions): Promise<{
44
+ executed: string[];
45
+ failed?: {
46
+ command: string;
47
+ error: string;
48
+ };
49
+ }>;
50
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAevB,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAKD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,QAAQ,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,UAAU,CAAA;CAC5B;AAOD,wBAAgB,WAAW,IAAI,QAAQ,CAOtC;AAOD,wBAAsB,UAAU,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiDpF;AAKD,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,UAAU,EAAE,MAAM;aAClB,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ;gBAFrC,OAAO,EAAE,MAAM,EACC,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,YAAA;CAKxC;AAgBD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb;AAMD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAMjF;AAOD,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,GAAG,QAAQ,CAOjF;AAKD,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,eAAe,EAAE,MAAM,EAAE,CAAA;CAC1B;AAOD,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC;IAC9E,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAC,CA2DD;AAKD,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACtC;AAOD,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC;IAC1F,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5C,CAAC,CAkDD"}
@@ -0,0 +1,192 @@
1
+ import { readFile, copyFile, symlink, mkdir } from 'node:fs/promises';
2
+ import { join, dirname } from 'node:path';
3
+ import { spawn } from 'node:child_process';
4
+ import { globby } from 'globby';
5
+ import { z } from 'zod';
6
+ const WtConfigSchema = z.object({
7
+ worktreePath: z.string().optional(),
8
+ copy: z.array(z.string()).optional(),
9
+ symlink: z.array(z.string()).optional(),
10
+ postCreate: z.array(z.string()).optional(),
11
+ });
12
+ const CONFIG_FILENAME = '.wtrc.json';
13
+ export function getDefaults() {
14
+ return {
15
+ worktreePath: '$REPO-worktrees/$DIR',
16
+ copy: [],
17
+ symlink: [],
18
+ postCreate: [],
19
+ };
20
+ }
21
+ export async function loadConfig(mainWorktreePath) {
22
+ const defaults = getDefaults();
23
+ const configPath = join(mainWorktreePath, CONFIG_FILENAME);
24
+ try {
25
+ const content = await readFile(configPath, 'utf-8');
26
+ let parsed;
27
+ try {
28
+ parsed = JSON.parse(content);
29
+ }
30
+ catch (jsonError) {
31
+ throw new ConfigValidationError(`Invalid JSON in ${CONFIG_FILENAME}: ${jsonError.message}`, configPath);
32
+ }
33
+ const result = WtConfigSchema.safeParse(parsed);
34
+ if (!result.success) {
35
+ throw new ConfigValidationError(formatZodErrors(result.error), configPath, result.error);
36
+ }
37
+ const validated = result.data;
38
+ return {
39
+ config: {
40
+ worktreePath: validated.worktreePath ?? defaults.worktreePath,
41
+ copy: validated.copy ?? defaults.copy,
42
+ symlink: validated.symlink ?? defaults.symlink,
43
+ postCreate: validated.postCreate ?? defaults.postCreate,
44
+ },
45
+ source: 'file',
46
+ };
47
+ }
48
+ catch (error) {
49
+ if (error.code === 'ENOENT') {
50
+ return { config: defaults, source: 'defaults' };
51
+ }
52
+ if (error instanceof ConfigValidationError) {
53
+ throw error;
54
+ }
55
+ throw error;
56
+ }
57
+ }
58
+ export class ConfigValidationError extends Error {
59
+ configPath;
60
+ zodError;
61
+ constructor(message, configPath, zodError) {
62
+ super(message);
63
+ this.configPath = configPath;
64
+ this.zodError = zodError;
65
+ this.name = 'ConfigValidationError';
66
+ }
67
+ }
68
+ function formatZodErrors(error) {
69
+ const lines = error.issues.map(issue => {
70
+ const path = issue.path.length > 0 ? issue.path.join('.') : 'root';
71
+ return ` - ${path}: ${issue.message}`;
72
+ });
73
+ return `Invalid ${CONFIG_FILENAME}:\n${lines.join('\n')}`;
74
+ }
75
+ export function resolveTemplate(template, vars) {
76
+ return template
77
+ .replace(/\$PATH\b/g, vars.PATH)
78
+ .replace(/\$BRANCH\b/g, vars.BRANCH)
79
+ .replace(/\$DIR\b/g, vars.DIR)
80
+ .replace(/\$REPO\b/g, vars.REPO);
81
+ }
82
+ export function resolveConfig(config, vars) {
83
+ return {
84
+ worktreePath: resolveTemplate(config.worktreePath, vars),
85
+ copy: config.copy,
86
+ symlink: config.symlink,
87
+ postCreate: config.postCreate.map(cmd => resolveTemplate(cmd, vars)),
88
+ };
89
+ }
90
+ export async function copyConfigFiles(options) {
91
+ const { mainWorktreePath, worktreePath, copyPatterns, symlinkPatterns } = options;
92
+ const copied = [];
93
+ const symlinked = [];
94
+ const warnings = [];
95
+ if (copyPatterns.length > 0) {
96
+ try {
97
+ const filesToCopy = await globby(copyPatterns, {
98
+ cwd: mainWorktreePath,
99
+ dot: true,
100
+ onlyFiles: true,
101
+ });
102
+ for (const file of filesToCopy) {
103
+ const sourcePath = join(mainWorktreePath, file);
104
+ const targetPath = join(worktreePath, file);
105
+ try {
106
+ await mkdir(dirname(targetPath), { recursive: true });
107
+ await copyFile(sourcePath, targetPath);
108
+ copied.push(file);
109
+ }
110
+ catch (error) {
111
+ warnings.push(`Failed to copy ${file}: ${error.message}`);
112
+ }
113
+ }
114
+ }
115
+ catch (error) {
116
+ warnings.push(`Failed to process copy patterns: ${error.message}`);
117
+ }
118
+ }
119
+ if (symlinkPatterns.length > 0) {
120
+ try {
121
+ const filesToSymlink = await globby(symlinkPatterns, {
122
+ cwd: mainWorktreePath,
123
+ dot: true,
124
+ onlyFiles: true,
125
+ });
126
+ for (const file of filesToSymlink) {
127
+ const sourcePath = join(mainWorktreePath, file);
128
+ const targetPath = join(worktreePath, file);
129
+ try {
130
+ await mkdir(dirname(targetPath), { recursive: true });
131
+ await symlink(sourcePath, targetPath);
132
+ symlinked.push(file);
133
+ }
134
+ catch (error) {
135
+ warnings.push(`Failed to symlink ${file}: ${error.message}`);
136
+ }
137
+ }
138
+ }
139
+ catch (error) {
140
+ warnings.push(`Failed to process symlink patterns: ${error.message}`);
141
+ }
142
+ }
143
+ return { copied, symlinked, warnings };
144
+ }
145
+ export async function runPostCreateCommands(options) {
146
+ const { worktreePath, commands, onCommand } = options;
147
+ const executed = [];
148
+ for (const command of commands) {
149
+ onCommand?.(command);
150
+ if (command.endsWith(' &')) {
151
+ const cmd = command.slice(0, -2).trim();
152
+ spawn(cmd, {
153
+ cwd: worktreePath,
154
+ shell: true,
155
+ detached: true,
156
+ stdio: 'ignore',
157
+ }).unref();
158
+ executed.push(command);
159
+ }
160
+ else {
161
+ try {
162
+ await new Promise((resolve, reject) => {
163
+ const child = spawn(command, {
164
+ cwd: worktreePath,
165
+ shell: true,
166
+ stdio: 'inherit',
167
+ });
168
+ child.on('close', (code) => {
169
+ if (code === 0) {
170
+ resolve();
171
+ }
172
+ else {
173
+ reject(new Error(`Command exited with code ${code}`));
174
+ }
175
+ });
176
+ child.on('error', (error) => {
177
+ reject(error);
178
+ });
179
+ });
180
+ executed.push(command);
181
+ }
182
+ catch (error) {
183
+ return {
184
+ executed,
185
+ failed: { command, error: error.message },
186
+ };
187
+ }
188
+ }
189
+ }
190
+ return { executed };
191
+ }
192
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "wt-manager",
3
- "version": "1.4.0",
3
+ "version": "1.7.1",
4
4
  "description": "CLI tool for managing Git worktrees efficiently with GitHub integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "bin": {
9
- "wt": "./dist/cli.js"
9
+ "wt": "dist/cli.js"
10
10
  },
11
11
  "files": [
12
12
  "dist/",
@@ -22,13 +22,15 @@
22
22
  },
23
23
  "homepage": "https://github.com/daviddurika/git-worktree-manager#readme",
24
24
  "scripts": {
25
- "build": "tsc",
26
- "dev": "tsc --watch",
27
- "lint": "eslint src --ext .ts",
28
- "format": "prettier --write \"src/**/*.ts\"",
29
- "format:check": "prettier --check \"src/**/*.ts\"",
30
- "prepublishOnly": "npm run build",
31
- "post-worktree-created": "npm install"
25
+ "test": "bun test",
26
+ "build": "bun build ./src/cli.ts --outdir=dist --target=bun",
27
+ "build:binaries": "bun run scripts/build-binaries.ts",
28
+ "dev": "bun --watch src/cli.ts",
29
+ "typecheck": "tsc --noEmit",
30
+ "check": "biome check src/",
31
+ "check:fix": "biome check --write src/",
32
+ "prepublishOnly": "bun run build",
33
+ "post-worktree-created": "bun install"
32
34
  },
33
35
  "keywords": [
34
36
  "git",
@@ -40,22 +42,18 @@
40
42
  "author": "David Durika",
41
43
  "license": "MIT",
42
44
  "engines": {
43
- "node": ">=22.0.0"
45
+ "bun": ">=1.0.0"
44
46
  },
45
47
  "dependencies": {
46
- "@inquirer/prompts": "^8.0.2",
47
- "chalk": "^5.3.0",
48
+ "@clack/prompts": "^0.7.0",
48
49
  "commander": "^12.1.0",
49
- "execa": "^9.5.2",
50
50
  "octokit": "^4.0.2",
51
- "ora": "^8.1.1"
51
+ "picocolors": "^1.1.1",
52
+ "zod": "^4.3.4"
52
53
  },
53
54
  "devDependencies": {
54
- "@types/node": "^22.10.1",
55
- "@typescript-eslint/eslint-plugin": "^8.15.0",
56
- "@typescript-eslint/parser": "^8.15.0",
57
- "eslint": "^9.15.0",
58
- "prettier": "^3.3.3",
55
+ "@biomejs/biome": "^2.3.10",
56
+ "@types/bun": "^1.1.14",
59
57
  "typescript": "^5.7.2"
60
58
  }
61
59
  }