@thebushidocollective/han 1.2.0 → 1.3.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.
@@ -1,13 +1,13 @@
1
- import { execSync } from "node:child_process";
2
- import { readdirSync } from "node:fs";
3
- import { join } from "node:path";
1
+ import { execSync } from 'node:child_process';
2
+ import { readdirSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
4
  // Check if a filename matches a pattern (supports * wildcard)
5
5
  function matchesPattern(filename, pattern) {
6
6
  // Convert glob pattern to regex
7
7
  const regexPattern = pattern
8
- .replace(/\./g, "\\.")
9
- .replace(/\*/g, ".*")
10
- .replace(/\?/g, ".");
8
+ .replace(/\./g, '\\.')
9
+ .replace(/\*/g, '.*')
10
+ .replace(/\?/g, '.');
11
11
  const regex = new RegExp(`^${regexPattern}$`);
12
12
  return regex.test(filename);
13
13
  }
@@ -33,8 +33,8 @@ function findDirectoriesWithMarker(rootDir, markerPatterns) {
33
33
  const dirs = [];
34
34
  function searchDir(dir) {
35
35
  // Skip hidden directories and node_modules
36
- const basename = dir.split("/").pop() || "";
37
- if (basename.startsWith(".") || basename === "node_modules") {
36
+ const basename = dir.split('/').pop() || '';
37
+ if (basename.startsWith('.') || basename === 'node_modules') {
38
38
  return;
39
39
  }
40
40
  try {
@@ -62,8 +62,8 @@ function runCommand(dir, cmd) {
62
62
  try {
63
63
  execSync(cmd, {
64
64
  cwd: dir,
65
- stdio: "inherit",
66
- encoding: "utf8",
65
+ stdio: 'inherit',
66
+ encoding: 'utf8',
67
67
  });
68
68
  return true;
69
69
  }
@@ -76,11 +76,11 @@ export function validate(options) {
76
76
  // Main execution
77
77
  const rootDir = process.env.CLAUDE_PROJECT_DIR || process.cwd();
78
78
  if (!dirsWith) {
79
- console.error("Error: --dirs-with <file> is required");
79
+ console.error('Error: --dirs-with <file> is required');
80
80
  process.exit(1);
81
81
  }
82
82
  // Parse comma-delimited patterns
83
- const patterns = dirsWith.split(",").map((p) => p.trim());
83
+ const patterns = dirsWith.split(',').map((p) => p.trim());
84
84
  const targetDirs = findDirectoriesWithMarker(rootDir, patterns);
85
85
  if (targetDirs.length === 0) {
86
86
  console.log(`No directories found with ${dirsWith}`);
@@ -90,7 +90,7 @@ export function validate(options) {
90
90
  for (const dir of targetDirs) {
91
91
  const success = runCommand(dir, commandToRun);
92
92
  if (!success) {
93
- const relativePath = dir.replace(`${rootDir}/`, "");
93
+ const relativePath = dir.replace(`${rootDir}/`, '');
94
94
  failures.push(relativePath);
95
95
  console.error(`\nFailed when trying to run \`${commandToRun}\` in directory: \`${relativePath}\`\n`);
96
96
  if (failFast) {
@@ -99,13 +99,13 @@ export function validate(options) {
99
99
  }
100
100
  }
101
101
  if (failures.length > 0) {
102
- console.error(`\n❌ ${failures.length} director${failures.length === 1 ? "y" : "ies"} failed validation:\n`);
102
+ console.error(`\n❌ ${failures.length} director${failures.length === 1 ? 'y' : 'ies'} failed validation:\n`);
103
103
  for (const dir of failures) {
104
104
  console.error(` - ${dir}`);
105
105
  }
106
106
  process.exit(2);
107
107
  }
108
- console.log(`\n✅ All ${targetDirs.length} director${targetDirs.length === 1 ? "y" : "ies"} passed validation`);
108
+ console.log(`\n✅ All ${targetDirs.length} director${targetDirs.length === 1 ? 'y' : 'ies'} passed validation`);
109
109
  process.exit(0);
110
110
  }
111
111
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../lib/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../lib/validate.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,21 @@
1
- import { strictEqual } from "node:assert";
2
- import { execSync, } from "node:child_process";
3
- import { mkdirSync, rmSync, writeFileSync } from "node:fs";
4
- import { dirname, join } from "node:path";
5
- import { fileURLToPath } from "node:url";
1
+ import { strictEqual } from 'node:assert';
2
+ import { execSync, } from 'node:child_process';
3
+ import { mkdirSync, rmSync, writeFileSync } from 'node:fs';
4
+ import { dirname, join } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
6
  // Get __dirname equivalent in ES modules
7
7
  const __filename = fileURLToPath(import.meta.url);
8
8
  const __dirname = dirname(__filename);
9
9
  // Test runs from dist/test, so go up to dist, then to lib/main.js
10
- const binPath = join(__dirname, "..", "lib", "main.js");
10
+ const binPath = join(__dirname, '..', 'lib', 'main.js');
11
11
  function setup() {
12
- const testDir = join(__dirname, "fixtures");
12
+ const testDir = join(__dirname, 'fixtures');
13
13
  rmSync(testDir, { recursive: true, force: true });
14
14
  mkdirSync(testDir, { recursive: true });
15
15
  return testDir;
16
16
  }
17
17
  function teardown() {
18
- const testDir = join(__dirname, "fixtures");
18
+ const testDir = join(__dirname, 'fixtures');
19
19
  rmSync(testDir, { recursive: true, force: true });
20
20
  }
21
21
  function test(name, fn) {
@@ -30,90 +30,90 @@ function test(name, fn) {
30
30
  }
31
31
  }
32
32
  // Test: shows help when no command provided
33
- test("shows help when no command provided", () => {
33
+ test('shows help when no command provided', () => {
34
34
  try {
35
- execSync(`node ${binPath} --help`, { encoding: "utf8" });
35
+ execSync(`node ${binPath} --help`, { encoding: 'utf8' });
36
36
  // Help command should exit with 0
37
37
  }
38
38
  catch (error) {
39
39
  const execError = error;
40
- const stdout = execError.message || "";
41
- strictEqual(stdout.includes("Usage:") || stdout.includes("han"), true);
40
+ const stdout = execError.message || '';
41
+ strictEqual(stdout.includes('Usage:') || stdout.includes('han'), true);
42
42
  }
43
43
  });
44
44
  // Test: shows error when validate has no command argument
45
- test("shows error when validate has no command argument", () => {
45
+ test('shows error when validate has no command argument', () => {
46
46
  try {
47
- execSync(`node ${binPath} validate`, { encoding: "utf8" });
48
- throw new Error("Should have failed");
47
+ execSync(`node ${binPath} validate`, { encoding: 'utf8' });
48
+ throw new Error('Should have failed');
49
49
  }
50
50
  catch (error) {
51
51
  const execError = error;
52
52
  strictEqual(execError.status, 1);
53
- const stderr = execError.stderr?.toString() || "";
54
- strictEqual(stderr.includes("missing required argument") ||
55
- stderr.includes("error") ||
53
+ const stderr = execError.stderr?.toString() || '';
54
+ strictEqual(stderr.includes('missing required argument') ||
55
+ stderr.includes('error') ||
56
56
  stderr.length > 0, true);
57
57
  }
58
58
  });
59
59
  // Test: passes when no directories match filter
60
- test("passes when no directories match filter", () => {
60
+ test('passes when no directories match filter', () => {
61
61
  const testDir = setup();
62
62
  try {
63
- const output = execSync(`node ${binPath} validate --dirs-with nonexistent.txt echo test`, { cwd: testDir, encoding: "utf8" });
64
- strictEqual(output.includes("No directories found with nonexistent.txt"), true);
63
+ const output = execSync(`node ${binPath} validate --dirs-with nonexistent.txt echo test`, { cwd: testDir, encoding: 'utf8' });
64
+ strictEqual(output.includes('No directories found with nonexistent.txt'), true);
65
65
  }
66
66
  finally {
67
67
  teardown();
68
68
  }
69
69
  });
70
70
  // Test: runs command in matching directories
71
- test("runs command in matching directories", () => {
71
+ test('runs command in matching directories', () => {
72
72
  const testDir = setup();
73
73
  try {
74
74
  // Create test structure
75
- mkdirSync(join(testDir, "pkg1"));
76
- mkdirSync(join(testDir, "pkg2"));
77
- writeFileSync(join(testDir, "pkg1", "package.json"), "{}");
78
- writeFileSync(join(testDir, "pkg2", "package.json"), "{}");
75
+ mkdirSync(join(testDir, 'pkg1'));
76
+ mkdirSync(join(testDir, 'pkg2'));
77
+ writeFileSync(join(testDir, 'pkg1', 'package.json'), '{}');
78
+ writeFileSync(join(testDir, 'pkg2', 'package.json'), '{}');
79
79
  // Initialize git repo so directories are discovered
80
- execSync("git init", { cwd: testDir });
81
- execSync("git add .", { cwd: testDir });
80
+ execSync('git init', { cwd: testDir });
81
+ execSync('git add .', { cwd: testDir });
82
82
  const output = execSync(`node ${binPath} validate --dirs-with package.json echo success`, {
83
83
  cwd: testDir,
84
- encoding: "utf8",
85
- stdio: ["pipe", "pipe", "pipe"],
84
+ encoding: 'utf8',
85
+ stdio: ['pipe', 'pipe', 'pipe'],
86
86
  });
87
- strictEqual(output.includes("success"), true);
88
- strictEqual(output.includes("passed validation"), true);
87
+ strictEqual(output.includes('success'), true);
88
+ strictEqual(output.includes('passed validation'), true);
89
89
  }
90
90
  finally {
91
91
  teardown();
92
92
  }
93
93
  });
94
94
  // Test: fails with exit code 2 when command fails
95
- test("fails with exit code 2 when command fails", () => {
95
+ test('fails with exit code 2 when command fails', () => {
96
96
  const testDir = setup();
97
97
  try {
98
- mkdirSync(join(testDir, "pkg1"));
99
- writeFileSync(join(testDir, "pkg1", "package.json"), "{}");
98
+ mkdirSync(join(testDir, 'pkg1'));
99
+ writeFileSync(join(testDir, 'pkg1', 'package.json'), '{}');
100
100
  // Initialize git repo
101
- execSync("git init", { cwd: testDir });
102
- execSync("git add .", { cwd: testDir });
101
+ execSync('git init', { cwd: testDir });
102
+ execSync('git add .', { cwd: testDir });
103
103
  try {
104
104
  execSync(`node ${binPath} validate --dirs-with package.json exit 1`, {
105
105
  cwd: testDir,
106
- encoding: "utf8",
107
- stdio: "pipe",
106
+ encoding: 'utf8',
107
+ stdio: 'pipe',
108
108
  });
109
- throw new Error("Should have failed");
109
+ throw new Error('Should have failed');
110
110
  }
111
111
  catch (error) {
112
112
  const execError = error;
113
113
  const exitCode = execError.status || execError.code;
114
114
  strictEqual(exitCode, 2, `Expected exit code 2, got ${exitCode}`);
115
- const stderr = execError.stderr?.toString() || "";
116
- strictEqual(stderr.includes("failed validation") || stderr.includes("Failed when"), true);
115
+ const stderr = execError.stderr?.toString() || '';
116
+ strictEqual(stderr.includes('failed validation') || stderr.includes('Failed when'), true);
117
117
  }
118
118
  }
119
119
  finally {
@@ -121,31 +121,31 @@ test("fails with exit code 2 when command fails", () => {
121
121
  }
122
122
  });
123
123
  // Test: stops on first failure with --fail-fast
124
- test("stops on first failure with --fail-fast", () => {
124
+ test('stops on first failure with --fail-fast', () => {
125
125
  const testDir = setup();
126
126
  try {
127
- mkdirSync(join(testDir, "pkg1"));
128
- mkdirSync(join(testDir, "pkg2"));
129
- writeFileSync(join(testDir, "pkg1", "package.json"), "{}");
130
- writeFileSync(join(testDir, "pkg2", "package.json"), "{}");
127
+ mkdirSync(join(testDir, 'pkg1'));
128
+ mkdirSync(join(testDir, 'pkg2'));
129
+ writeFileSync(join(testDir, 'pkg1', 'package.json'), '{}');
130
+ writeFileSync(join(testDir, 'pkg2', 'package.json'), '{}');
131
131
  // Initialize git repo
132
- execSync("git init", { cwd: testDir });
133
- execSync("git add .", { cwd: testDir });
132
+ execSync('git init', { cwd: testDir });
133
+ execSync('git add .', { cwd: testDir });
134
134
  try {
135
- execSync(`node ${binPath} validate --fail-fast --dirs-with package.json exit 1`, { cwd: testDir, encoding: "utf8", stdio: "pipe" });
136
- throw new Error("Should have failed");
135
+ execSync(`node ${binPath} validate --fail-fast --dirs-with package.json exit 1`, { cwd: testDir, encoding: 'utf8', stdio: 'pipe' });
136
+ throw new Error('Should have failed');
137
137
  }
138
138
  catch (error) {
139
139
  const execError = error;
140
140
  const exitCode = execError.status || execError.code;
141
141
  strictEqual(exitCode, 2, `Expected exit code 2, got ${exitCode}`);
142
- const stderr = execError.stderr?.toString() || "";
143
- strictEqual(stderr.includes("Failed when trying to run"), true);
142
+ const stderr = execError.stderr?.toString() || '';
143
+ strictEqual(stderr.includes('Failed when trying to run'), true);
144
144
  }
145
145
  }
146
146
  finally {
147
147
  teardown();
148
148
  }
149
149
  });
150
- console.log("\nAll tests passed! ✓");
150
+ console.log('\nAll tests passed! ✓');
151
151
  //# sourceMappingURL=han.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"han.test.js","sourceRoot":"","sources":["../../test/han.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"han.test.js","sourceRoot":"","sources":["../../test/han.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,64 +1,64 @@
1
1
  {
2
- "name": "@thebushidocollective/han",
3
- "version": "1.2.0",
4
- "description": "Monorepo validation tool for Claude Code hooks",
5
- "main": "dist/lib/main.js",
6
- "types": "dist/lib/main.d.ts",
7
- "type": "module",
8
- "bin": {
9
- "han": "dist/lib/main.js"
10
- },
11
- "scripts": {
12
- "build": "tsc",
13
- "postbuild": "chmod +x dist/lib/main.js",
14
- "typecheck": "tsc --noEmit",
15
- "test": "node dist/test/han.test.js",
16
- "lint": "biome check .",
17
- "lint:fix": "biome check --write .",
18
- "prepack": "npm run build && npm test"
19
- },
20
- "repository": {
21
- "type": "git",
22
- "url": "git+https://github.com/thebushidocollective/han.git"
23
- },
24
- "homepage": "https://github.com/thebushidocollective/han",
25
- "bugs": {
26
- "url": "https://github.com/thebushidocollective/han/issues"
27
- },
28
- "keywords": [
29
- "bushido",
30
- "monorepo",
31
- "validation",
32
- "hooks",
33
- "claude",
34
- "claude-code",
35
- "testing",
36
- "ci"
37
- ],
38
- "author": "The Bushido Collective",
39
- "license": "MIT",
40
- "engines": {
41
- "node": ">=24"
42
- },
43
- "files": [
44
- "dist/",
45
- "README.md"
46
- ],
47
- "devDependencies": {
48
- "@biomejs/biome": "^2.3.6",
49
- "@types/commander": "^2.12.0",
50
- "@types/marked-terminal": "^6.1.1",
51
- "@types/node": "^20.19.25",
52
- "@types/react": "^19.2.6",
53
- "typescript": "^5.9.3"
54
- },
55
- "dependencies": {
56
- "@anthropic-ai/claude-agent-sdk": "^0.1.47",
57
- "commander": "^14.0.2",
58
- "ink": "^6.5.1",
59
- "ink-spinner": "^5.0.0",
60
- "marked": "^15.0.12",
61
- "marked-terminal": "^7.3.0",
62
- "react": "^19.2.0"
63
- }
2
+ "name": "@thebushidocollective/han",
3
+ "version": "1.3.1",
4
+ "description": "Monorepo validation tool for Claude Code hooks",
5
+ "main": "dist/lib/main.js",
6
+ "types": "dist/lib/main.d.ts",
7
+ "type": "module",
8
+ "bin": {
9
+ "han": "dist/lib/main.js"
10
+ },
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "postbuild": "chmod +x dist/lib/main.js",
14
+ "typecheck": "tsc --noEmit",
15
+ "test": "node dist/test/han.test.js",
16
+ "lint": "biome check .",
17
+ "lint:fix": "biome check --write .",
18
+ "prepack": "npm run build && npm test"
19
+ },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/thebushidocollective/han.git"
23
+ },
24
+ "homepage": "https://github.com/thebushidocollective/han",
25
+ "bugs": {
26
+ "url": "https://github.com/thebushidocollective/han/issues"
27
+ },
28
+ "keywords": [
29
+ "bushido",
30
+ "monorepo",
31
+ "validation",
32
+ "hooks",
33
+ "claude",
34
+ "claude-code",
35
+ "testing",
36
+ "ci"
37
+ ],
38
+ "author": "The Bushido Collective",
39
+ "license": "MIT",
40
+ "engines": {
41
+ "node": ">=24"
42
+ },
43
+ "files": [
44
+ "dist/",
45
+ "README.md"
46
+ ],
47
+ "devDependencies": {
48
+ "@biomejs/biome": "2.3.6",
49
+ "@types/commander": "2.12.0",
50
+ "@types/marked-terminal": "6.1.1",
51
+ "@types/node": "20.19.25",
52
+ "@types/react": "19.2.6",
53
+ "typescript": "5.9.3"
54
+ },
55
+ "dependencies": {
56
+ "@anthropic-ai/claude-agent-sdk": "0.1.47",
57
+ "commander": "14.0.2",
58
+ "ink": "6.5.1",
59
+ "ink-spinner": "5.0.0",
60
+ "marked": "15.0.12",
61
+ "marked-terminal": "7.3.0",
62
+ "react": "19.2.0"
63
+ }
64
64
  }