@thebushidocollective/han 1.12.4 → 1.13.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.
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../lib/validate.ts"],"names":[],"mappings":"AAIA,UAAU,eAAe;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CAChB;AAgFD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAsDvD"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../lib/validate.ts"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CAChB;AAuGD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAyDvD"}
@@ -1,6 +1,24 @@
1
1
  import { execSync } from "node:child_process";
2
- import { readdirSync } from "node:fs";
3
- import { join } from "node:path";
2
+ import { existsSync, readFileSync, readdirSync } from "node:fs";
3
+ import { join, relative } from "node:path";
4
+ import ignore from "ignore";
5
+ // Load .gitignore rules from root directory
6
+ function loadGitignoreRules(rootDir) {
7
+ const ig = ignore();
8
+ const gitignorePath = join(rootDir, ".gitignore");
9
+ if (existsSync(gitignorePath)) {
10
+ try {
11
+ const gitignoreContent = readFileSync(gitignorePath, "utf8");
12
+ ig.add(gitignoreContent);
13
+ }
14
+ catch (_e) {
15
+ // If we can't read .gitignore, continue without it
16
+ }
17
+ }
18
+ // Always ignore common patterns
19
+ ig.add(["node_modules/", ".git/"]);
20
+ return ig;
21
+ }
4
22
  // Check if a filename matches a pattern (supports * wildcard)
5
23
  function matchesPattern(filename, pattern) {
6
24
  // Convert glob pattern to regex
@@ -29,12 +47,13 @@ function hasMarkerFile(dir, patterns) {
29
47
  }
30
48
  }
31
49
  // Recursively find all directories containing a marker file
32
- function findDirectoriesWithMarker(rootDir, markerPatterns) {
50
+ function findDirectoriesWithMarker(rootDir, markerPatterns, ig) {
33
51
  const dirs = [];
34
52
  function searchDir(dir) {
35
- // Skip hidden directories and node_modules
36
- const basename = dir.split("/").pop() || "";
37
- if (basename.startsWith(".") || basename === "node_modules") {
53
+ // Get relative path from root for gitignore matching
54
+ const relativePath = relative(rootDir, dir);
55
+ // Skip if this path is git-ignored (only check subdirectories, not root)
56
+ if (relativePath && ig.ignores(relativePath)) {
38
57
  return;
39
58
  }
40
59
  try {
@@ -81,7 +100,9 @@ export function validate(options) {
81
100
  }
82
101
  // Parse comma-delimited patterns
83
102
  const patterns = dirsWith.split(",").map((p) => p.trim());
84
- const targetDirs = findDirectoriesWithMarker(rootDir, patterns);
103
+ // Load .gitignore rules
104
+ const ig = loadGitignoreRules(rootDir);
105
+ const targetDirs = findDirectoriesWithMarker(rootDir, patterns, ig);
85
106
  if (targetDirs.length === 0) {
86
107
  console.log(`No directories found with ${dirsWith}`);
87
108
  process.exit(0);
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../lib/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC,8DAA8D;AAC9D,SAAS,cAAc,CAAC,QAAgB,EAAE,OAAe;IACxD,gCAAgC;IAChC,MAAM,YAAY,GAAG,OAAO;SAC1B,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,+DAA+D;AAC/D,SAAS,aAAa,CAAC,GAAW,EAAE,QAAkB;IACrD,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;oBACpC,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED,4DAA4D;AAC5D,SAAS,yBAAyB,CACjC,OAAe,EACf,cAAwB;IAExB,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,SAAS,SAAS,CAAC,GAAW;QAC7B,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC5C,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YAC7D,OAAO;QACR,CAAC;QAED,IAAI,CAAC;YACJ,2DAA2D;YAC3D,IAAI,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;YAED,oCAAoC;YACpC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACzB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClC,CAAC;YACF,CAAC;QACF,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACb,iCAAiC;QAClC,CAAC;IACF,CAAC;IAED,SAAS,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,IAAI,CAAC;AACb,CAAC;AAED,2BAA2B;AAC3B,SAAS,UAAU,CAAC,GAAW,EAAE,GAAW;IAC3C,IAAI,CAAC;QACJ,QAAQ,CAAC,GAAG,EAAE;YACb,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAwB;IAChD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAE9D,iBAAiB;IACjB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEhE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,iCAAiC;IACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAE1D,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEhE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,EAAE,EAAE,CAAC,CAAC;YACpD,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE5B,OAAO,CAAC,KAAK,CACZ,iCAAiC,YAAY,sBAAsB,YAAY,MAAM,CACrF,CAAC;YAEF,IAAI,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;IACF,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CACZ,OAAO,QAAQ,CAAC,MAAM,YAAY,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,uBAAuB,CAC5F,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,GAAG,CACV,WAAW,UAAU,CAAC,MAAM,YAAY,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,oBAAoB,CACjG,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../lib/validate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thebushidocollective/han",
3
- "version": "1.12.4",
3
+ "version": "1.13.0",
4
4
  "description": "CLI for installing and managing curated Claude Code plugins from the Han marketplace",
5
5
  "main": "dist/lib/main.js",
6
6
  "types": "dist/lib/main.d.ts",
@@ -54,11 +54,13 @@
54
54
  "dependencies": {
55
55
  "@anthropic-ai/claude-agent-sdk": "0.1.50",
56
56
  "commander": "14.0.2",
57
+ "ignore": "^7.0.5",
57
58
  "ink": "6.5.1",
58
59
  "ink-select-input": "^6.2.0",
59
60
  "ink-spinner": "5.0.0",
60
61
  "ink-text-input": "^6.0.0",
61
62
  "marked-terminal": "7.3.0",
63
+ "parse-gitignore": "^2.0.0",
62
64
  "react": "19.2.0"
63
65
  }
64
66
  }