@theglitchking/hit-em-with-the-docs 2.0.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.
Files changed (200) hide show
  1. package/.claude-plugin/marketplace.json +46 -0
  2. package/.claude-plugin/plugin.json +114 -0
  3. package/LICENSE +21 -0
  4. package/MIGRATION.md +255 -0
  5. package/README.backup.md +714 -0
  6. package/README.md +869 -0
  7. package/action.yml +56 -0
  8. package/dist/action/action/index.d.ts +2 -0
  9. package/dist/action/action/index.d.ts.map +1 -0
  10. package/dist/action/cli/index.d.ts +3 -0
  11. package/dist/action/cli/index.d.ts.map +1 -0
  12. package/dist/action/core/audit/auditor.d.ts +43 -0
  13. package/dist/action/core/audit/auditor.d.ts.map +1 -0
  14. package/dist/action/core/audit/rules.d.ts +37 -0
  15. package/dist/action/core/audit/rules.d.ts.map +1 -0
  16. package/dist/action/core/discover/antipatterns.d.ts +24 -0
  17. package/dist/action/core/discover/antipatterns.d.ts.map +1 -0
  18. package/dist/action/core/discover/dependencies.d.ts +57 -0
  19. package/dist/action/core/discover/dependencies.d.ts.map +1 -0
  20. package/dist/action/core/discover/patterns.d.ts +38 -0
  21. package/dist/action/core/discover/patterns.d.ts.map +1 -0
  22. package/dist/action/core/discover/standards.d.ts +58 -0
  23. package/dist/action/core/discover/standards.d.ts.map +1 -0
  24. package/dist/action/core/domains/classifier.d.ts +41 -0
  25. package/dist/action/core/domains/classifier.d.ts.map +1 -0
  26. package/dist/action/core/domains/constants.d.ts +40 -0
  27. package/dist/action/core/domains/constants.d.ts.map +1 -0
  28. package/dist/action/core/domains/detector.d.ts +35 -0
  29. package/dist/action/core/domains/detector.d.ts.map +1 -0
  30. package/dist/action/core/integrate/integrator.d.ts +35 -0
  31. package/dist/action/core/integrate/integrator.d.ts.map +1 -0
  32. package/dist/action/core/links/checker.d.ts +64 -0
  33. package/dist/action/core/links/checker.d.ts.map +1 -0
  34. package/dist/action/core/links/tracker.d.ts +69 -0
  35. package/dist/action/core/links/tracker.d.ts.map +1 -0
  36. package/dist/action/core/maintain/orchestrator.d.ts +39 -0
  37. package/dist/action/core/maintain/orchestrator.d.ts.map +1 -0
  38. package/dist/action/core/metadata/generator.d.ts +26 -0
  39. package/dist/action/core/metadata/generator.d.ts.map +1 -0
  40. package/dist/action/core/metadata/schema.d.ts +201 -0
  41. package/dist/action/core/metadata/schema.d.ts.map +1 -0
  42. package/dist/action/core/metadata/sync.d.ts +36 -0
  43. package/dist/action/core/metadata/sync.d.ts.map +1 -0
  44. package/dist/action/generators/index-generator.d.ts +19 -0
  45. package/dist/action/generators/index-generator.d.ts.map +1 -0
  46. package/dist/action/generators/registry-generator.d.ts +11 -0
  47. package/dist/action/generators/registry-generator.d.ts.map +1 -0
  48. package/dist/action/generators/scaffold.d.ts +30 -0
  49. package/dist/action/generators/scaffold.d.ts.map +1 -0
  50. package/dist/action/generators/templates/document.d.ts +14 -0
  51. package/dist/action/generators/templates/document.d.ts.map +1 -0
  52. package/dist/action/generators/templates/domain-index.d.ts +6 -0
  53. package/dist/action/generators/templates/domain-index.d.ts.map +1 -0
  54. package/dist/action/generators/templates/domain-registry.d.ts +6 -0
  55. package/dist/action/generators/templates/domain-registry.d.ts.map +1 -0
  56. package/dist/action/index.d.ts +31 -0
  57. package/dist/action/index.d.ts.map +1 -0
  58. package/dist/action/index.js +17 -0
  59. package/dist/action/index.js.map +1 -0
  60. package/dist/action/package.json +3 -0
  61. package/dist/action/reports/audit-report.d.ts +15 -0
  62. package/dist/action/reports/audit-report.d.ts.map +1 -0
  63. package/dist/action/reports/health-report.d.ts +15 -0
  64. package/dist/action/reports/health-report.d.ts.map +1 -0
  65. package/dist/action/reports/link-report.d.ts +15 -0
  66. package/dist/action/reports/link-report.d.ts.map +1 -0
  67. package/dist/action/utils/frontmatter.d.ts +50 -0
  68. package/dist/action/utils/frontmatter.d.ts.map +1 -0
  69. package/dist/action/utils/glob.d.ts +63 -0
  70. package/dist/action/utils/glob.d.ts.map +1 -0
  71. package/dist/action/utils/logger.d.ts +42 -0
  72. package/dist/action/utils/logger.d.ts.map +1 -0
  73. package/dist/action/utils/markdown.d.ts +89 -0
  74. package/dist/action/utils/markdown.d.ts.map +1 -0
  75. package/dist/cli/index.d.ts +3 -0
  76. package/dist/cli/index.d.ts.map +1 -0
  77. package/dist/cli/index.js +287 -0
  78. package/dist/cli/index.js.map +1 -0
  79. package/dist/core/audit/auditor.d.ts +43 -0
  80. package/dist/core/audit/auditor.d.ts.map +1 -0
  81. package/dist/core/audit/auditor.js +273 -0
  82. package/dist/core/audit/auditor.js.map +1 -0
  83. package/dist/core/audit/rules.d.ts +37 -0
  84. package/dist/core/audit/rules.d.ts.map +1 -0
  85. package/dist/core/audit/rules.js +223 -0
  86. package/dist/core/audit/rules.js.map +1 -0
  87. package/dist/core/discover/antipatterns.d.ts +24 -0
  88. package/dist/core/discover/antipatterns.d.ts.map +1 -0
  89. package/dist/core/discover/antipatterns.js +354 -0
  90. package/dist/core/discover/antipatterns.js.map +1 -0
  91. package/dist/core/discover/dependencies.d.ts +57 -0
  92. package/dist/core/discover/dependencies.d.ts.map +1 -0
  93. package/dist/core/discover/dependencies.js +311 -0
  94. package/dist/core/discover/dependencies.js.map +1 -0
  95. package/dist/core/discover/patterns.d.ts +38 -0
  96. package/dist/core/discover/patterns.d.ts.map +1 -0
  97. package/dist/core/discover/patterns.js +371 -0
  98. package/dist/core/discover/patterns.js.map +1 -0
  99. package/dist/core/discover/standards.d.ts +58 -0
  100. package/dist/core/discover/standards.d.ts.map +1 -0
  101. package/dist/core/discover/standards.js +359 -0
  102. package/dist/core/discover/standards.js.map +1 -0
  103. package/dist/core/domains/classifier.d.ts +41 -0
  104. package/dist/core/domains/classifier.d.ts.map +1 -0
  105. package/dist/core/domains/classifier.js +208 -0
  106. package/dist/core/domains/classifier.js.map +1 -0
  107. package/dist/core/domains/constants.d.ts +40 -0
  108. package/dist/core/domains/constants.d.ts.map +1 -0
  109. package/dist/core/domains/constants.js +252 -0
  110. package/dist/core/domains/constants.js.map +1 -0
  111. package/dist/core/domains/detector.d.ts +35 -0
  112. package/dist/core/domains/detector.d.ts.map +1 -0
  113. package/dist/core/domains/detector.js +176 -0
  114. package/dist/core/domains/detector.js.map +1 -0
  115. package/dist/core/integrate/integrator.d.ts +35 -0
  116. package/dist/core/integrate/integrator.d.ts.map +1 -0
  117. package/dist/core/integrate/integrator.js +216 -0
  118. package/dist/core/integrate/integrator.js.map +1 -0
  119. package/dist/core/links/checker.d.ts +64 -0
  120. package/dist/core/links/checker.d.ts.map +1 -0
  121. package/dist/core/links/checker.js +190 -0
  122. package/dist/core/links/checker.js.map +1 -0
  123. package/dist/core/links/tracker.d.ts +69 -0
  124. package/dist/core/links/tracker.d.ts.map +1 -0
  125. package/dist/core/links/tracker.js +184 -0
  126. package/dist/core/links/tracker.js.map +1 -0
  127. package/dist/core/maintain/orchestrator.d.ts +39 -0
  128. package/dist/core/maintain/orchestrator.d.ts.map +1 -0
  129. package/dist/core/maintain/orchestrator.js +372 -0
  130. package/dist/core/maintain/orchestrator.js.map +1 -0
  131. package/dist/core/metadata/generator.d.ts +26 -0
  132. package/dist/core/metadata/generator.d.ts.map +1 -0
  133. package/dist/core/metadata/generator.js +221 -0
  134. package/dist/core/metadata/generator.js.map +1 -0
  135. package/dist/core/metadata/schema.d.ts +201 -0
  136. package/dist/core/metadata/schema.d.ts.map +1 -0
  137. package/dist/core/metadata/schema.js +184 -0
  138. package/dist/core/metadata/schema.js.map +1 -0
  139. package/dist/core/metadata/sync.d.ts +36 -0
  140. package/dist/core/metadata/sync.d.ts.map +1 -0
  141. package/dist/core/metadata/sync.js +195 -0
  142. package/dist/core/metadata/sync.js.map +1 -0
  143. package/dist/generators/index-generator.d.ts +19 -0
  144. package/dist/generators/index-generator.d.ts.map +1 -0
  145. package/dist/generators/index-generator.js +191 -0
  146. package/dist/generators/index-generator.js.map +1 -0
  147. package/dist/generators/registry-generator.d.ts +11 -0
  148. package/dist/generators/registry-generator.d.ts.map +1 -0
  149. package/dist/generators/registry-generator.js +156 -0
  150. package/dist/generators/registry-generator.js.map +1 -0
  151. package/dist/generators/scaffold.d.ts +30 -0
  152. package/dist/generators/scaffold.d.ts.map +1 -0
  153. package/dist/generators/scaffold.js +213 -0
  154. package/dist/generators/scaffold.js.map +1 -0
  155. package/dist/generators/templates/document.d.ts +14 -0
  156. package/dist/generators/templates/document.d.ts.map +1 -0
  157. package/dist/generators/templates/document.js +305 -0
  158. package/dist/generators/templates/document.js.map +1 -0
  159. package/dist/generators/templates/domain-index.d.ts +6 -0
  160. package/dist/generators/templates/domain-index.d.ts.map +1 -0
  161. package/dist/generators/templates/domain-index.js +68 -0
  162. package/dist/generators/templates/domain-index.js.map +1 -0
  163. package/dist/generators/templates/domain-registry.d.ts +6 -0
  164. package/dist/generators/templates/domain-registry.d.ts.map +1 -0
  165. package/dist/generators/templates/domain-registry.js +59 -0
  166. package/dist/generators/templates/domain-registry.js.map +1 -0
  167. package/dist/index.d.ts +32 -0
  168. package/dist/index.d.ts.map +1 -0
  169. package/dist/index.js +39 -0
  170. package/dist/index.js.map +1 -0
  171. package/dist/reports/audit-report.d.ts +15 -0
  172. package/dist/reports/audit-report.d.ts.map +1 -0
  173. package/dist/reports/audit-report.js +150 -0
  174. package/dist/reports/audit-report.js.map +1 -0
  175. package/dist/reports/health-report.d.ts +15 -0
  176. package/dist/reports/health-report.d.ts.map +1 -0
  177. package/dist/reports/health-report.js +175 -0
  178. package/dist/reports/health-report.js.map +1 -0
  179. package/dist/reports/link-report.d.ts +15 -0
  180. package/dist/reports/link-report.d.ts.map +1 -0
  181. package/dist/reports/link-report.js +165 -0
  182. package/dist/reports/link-report.js.map +1 -0
  183. package/dist/utils/frontmatter.d.ts +50 -0
  184. package/dist/utils/frontmatter.d.ts.map +1 -0
  185. package/dist/utils/frontmatter.js +93 -0
  186. package/dist/utils/frontmatter.js.map +1 -0
  187. package/dist/utils/glob.d.ts +63 -0
  188. package/dist/utils/glob.d.ts.map +1 -0
  189. package/dist/utils/glob.js +128 -0
  190. package/dist/utils/glob.js.map +1 -0
  191. package/dist/utils/logger.d.ts +42 -0
  192. package/dist/utils/logger.d.ts.map +1 -0
  193. package/dist/utils/logger.js +118 -0
  194. package/dist/utils/logger.js.map +1 -0
  195. package/dist/utils/markdown.d.ts +89 -0
  196. package/dist/utils/markdown.d.ts.map +1 -0
  197. package/dist/utils/markdown.js +192 -0
  198. package/dist/utils/markdown.js.map +1 -0
  199. package/package.json +100 -0
  200. package/templates/claude/CLAUDE.md +204 -0
@@ -0,0 +1,118 @@
1
+ import chalk from 'chalk';
2
+ class Logger {
3
+ silent = false;
4
+ verbose = false;
5
+ prefix = '';
6
+ configure(options) {
7
+ if (options.silent !== undefined)
8
+ this.silent = options.silent;
9
+ if (options.verbose !== undefined)
10
+ this.verbose = options.verbose;
11
+ if (options.prefix !== undefined)
12
+ this.prefix = options.prefix;
13
+ }
14
+ formatMessage(message) {
15
+ return this.prefix ? `${this.prefix} ${message}` : message;
16
+ }
17
+ debug(message, ...args) {
18
+ if (this.silent || !this.verbose)
19
+ return;
20
+ console.log(chalk.gray(`[DEBUG] ${this.formatMessage(message)}`), ...args);
21
+ }
22
+ info(message, ...args) {
23
+ if (this.silent)
24
+ return;
25
+ console.log(chalk.blue('ℹ'), this.formatMessage(message), ...args);
26
+ }
27
+ success(message, ...args) {
28
+ if (this.silent)
29
+ return;
30
+ console.log(chalk.green('✓'), this.formatMessage(message), ...args);
31
+ }
32
+ warn(message, ...args) {
33
+ if (this.silent)
34
+ return;
35
+ console.log(chalk.yellow('⚠'), this.formatMessage(message), ...args);
36
+ }
37
+ error(message, ...args) {
38
+ console.error(chalk.red('✗'), this.formatMessage(message), ...args);
39
+ }
40
+ // Styled output helpers
41
+ header(title) {
42
+ if (this.silent)
43
+ return;
44
+ console.log();
45
+ console.log(chalk.bold.cyan(`━━━ ${title} ━━━`));
46
+ console.log();
47
+ }
48
+ subheader(title) {
49
+ if (this.silent)
50
+ return;
51
+ console.log();
52
+ console.log(chalk.bold(title));
53
+ }
54
+ list(items, indent = 0) {
55
+ if (this.silent)
56
+ return;
57
+ const prefix = ' '.repeat(indent);
58
+ items.forEach((item) => {
59
+ console.log(`${prefix}• ${item}`);
60
+ });
61
+ }
62
+ table(headers, rows) {
63
+ if (this.silent)
64
+ return;
65
+ const colWidths = headers.map((h, i) => Math.max(h.length, ...rows.map((r) => (r[i] ?? '').length)));
66
+ const separator = colWidths.map((w) => '─'.repeat(w + 2)).join('┼');
67
+ const headerRow = headers
68
+ .map((h, i) => ` ${h.padEnd(colWidths[i] ?? 0)} `)
69
+ .join('│');
70
+ console.log(chalk.gray(`┌${separator.replace(/┼/g, '┬')}┐`));
71
+ console.log(chalk.bold(`│${headerRow}│`));
72
+ console.log(chalk.gray(`├${separator}┤`));
73
+ rows.forEach((row) => {
74
+ const rowStr = row
75
+ .map((cell, i) => ` ${(cell ?? '').padEnd(colWidths[i] ?? 0)} `)
76
+ .join('│');
77
+ console.log(`│${rowStr}│`);
78
+ });
79
+ console.log(chalk.gray(`└${separator.replace(/┼/g, '┴')}┘`));
80
+ }
81
+ progress(current, total, label) {
82
+ if (this.silent)
83
+ return;
84
+ const percentage = Math.round((current / total) * 100);
85
+ const barWidth = 30;
86
+ const filled = Math.round((current / total) * barWidth);
87
+ const empty = barWidth - filled;
88
+ const bar = chalk.green('█'.repeat(filled)) + chalk.gray('░'.repeat(empty));
89
+ const labelStr = label ? ` ${label}` : '';
90
+ process.stdout.write(`\r${bar} ${percentage}%${labelStr}`);
91
+ if (current === total)
92
+ console.log();
93
+ }
94
+ newline() {
95
+ if (this.silent)
96
+ return;
97
+ console.log();
98
+ }
99
+ // Emoji helpers
100
+ emoji = {
101
+ docs: '📚',
102
+ check: '✅',
103
+ cross: '❌',
104
+ warn: '⚠️',
105
+ info: 'ℹ️',
106
+ search: '🔍',
107
+ stats: '📊',
108
+ fix: '🔧',
109
+ link: '🔗',
110
+ folder: '📁',
111
+ file: '📄',
112
+ clock: '⏱️',
113
+ sparkles: '✨',
114
+ };
115
+ }
116
+ export const logger = new Logger();
117
+ export default logger;
118
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Markdown utilities for parsing and generating markdown content
3
+ */
4
+ export interface MarkdownLink {
5
+ text: string;
6
+ url: string;
7
+ title?: string;
8
+ isInternal: boolean;
9
+ lineNumber: number;
10
+ startIndex: number;
11
+ endIndex: number;
12
+ }
13
+ export interface MarkdownHeading {
14
+ level: number;
15
+ text: string;
16
+ lineNumber: number;
17
+ }
18
+ /**
19
+ * Extract all links from markdown content
20
+ */
21
+ export declare function extractLinks(content: string): MarkdownLink[];
22
+ /**
23
+ * Extract only internal links
24
+ */
25
+ export declare function extractInternalLinks(content: string): MarkdownLink[];
26
+ /**
27
+ * Extract all headings from markdown content
28
+ */
29
+ export declare function extractHeadings(content: string): MarkdownHeading[];
30
+ /**
31
+ * Get the title (first h1) from markdown content
32
+ */
33
+ export declare function extractTitle(content: string): string | null;
34
+ /**
35
+ * Count words in markdown content (excluding code blocks and frontmatter)
36
+ */
37
+ export declare function countWords(content: string): number;
38
+ /**
39
+ * Calculate estimated read time in minutes
40
+ */
41
+ export declare function calculateReadTime(content: string, wordsPerMinute?: number): number;
42
+ /**
43
+ * Format read time as string
44
+ */
45
+ export declare function formatReadTime(content: string): string;
46
+ /**
47
+ * Generate a markdown link
48
+ */
49
+ export declare function createLink(text: string, url: string, title?: string): string;
50
+ /**
51
+ * Generate a markdown heading
52
+ */
53
+ export declare function createHeading(text: string, level?: number): string;
54
+ /**
55
+ * Generate a markdown table
56
+ */
57
+ export declare function createTable(headers: string[], rows: string[][]): string;
58
+ /**
59
+ * Generate a markdown list
60
+ */
61
+ export declare function createList(items: string[], ordered?: boolean): string;
62
+ /**
63
+ * Generate a markdown checkbox list
64
+ */
65
+ export declare function createCheckboxList(items: {
66
+ text: string;
67
+ checked: boolean;
68
+ }[]): string;
69
+ /**
70
+ * Wrap text in a code block
71
+ */
72
+ export declare function createCodeBlock(code: string, language?: string): string;
73
+ /**
74
+ * Create an inline code span
75
+ */
76
+ export declare function createInlineCode(code: string): string;
77
+ /**
78
+ * Create a blockquote
79
+ */
80
+ export declare function createBlockquote(text: string): string;
81
+ /**
82
+ * Slugify text for use in URLs/anchors
83
+ */
84
+ export declare function slugify(text: string): string;
85
+ /**
86
+ * Extract first paragraph as excerpt
87
+ */
88
+ export declare function extractExcerpt(content: string, maxLength?: number): string;
89
+ //# sourceMappingURL=markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/utils/markdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAmC5D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAEpE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAmBlE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI3D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAclD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,GAAE,MAAY,GAAG,MAAM,CAGvF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAK5E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,CAGrE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAMvE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,OAAe,GAAG,MAAM,CAI5E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EAAE,GAC1C,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,MAAM,CAE3E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO5C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,MAAY,GAAG,MAAM,CAiB/E"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * Markdown utilities for parsing and generating markdown content
3
+ */
4
+ /**
5
+ * Extract all links from markdown content
6
+ */
7
+ export function extractLinks(content) {
8
+ const links = [];
9
+ const lines = content.split('\n');
10
+ // Match markdown links: [text](url) or [text](url "title")
11
+ const linkRegex = /\[([^\]]*)\]\(([^)\s]+)(?:\s+"([^"]*)")?\)/g;
12
+ lines.forEach((line, lineIndex) => {
13
+ let match;
14
+ while ((match = linkRegex.exec(line)) !== null) {
15
+ const [fullMatch, text, url, title] = match;
16
+ const urlStr = url ?? '';
17
+ const isInternal = !urlStr.startsWith('http://') &&
18
+ !urlStr.startsWith('https://') &&
19
+ !urlStr.startsWith('mailto:') &&
20
+ !urlStr.startsWith('#');
21
+ const link = {
22
+ text: text ?? '',
23
+ url: urlStr,
24
+ isInternal,
25
+ lineNumber: lineIndex + 1,
26
+ startIndex: match.index,
27
+ endIndex: match.index + (fullMatch?.length ?? 0),
28
+ };
29
+ if (title) {
30
+ link.title = title;
31
+ }
32
+ links.push(link);
33
+ }
34
+ // Reset regex lastIndex for next line
35
+ linkRegex.lastIndex = 0;
36
+ });
37
+ return links;
38
+ }
39
+ /**
40
+ * Extract only internal links
41
+ */
42
+ export function extractInternalLinks(content) {
43
+ return extractLinks(content).filter((link) => link.isInternal);
44
+ }
45
+ /**
46
+ * Extract all headings from markdown content
47
+ */
48
+ export function extractHeadings(content) {
49
+ const headings = [];
50
+ const lines = content.split('\n');
51
+ // Match ATX headings: # Heading
52
+ const headingRegex = /^(#{1,6})\s+(.+)$/;
53
+ lines.forEach((line, lineIndex) => {
54
+ const match = line.match(headingRegex);
55
+ if (match) {
56
+ headings.push({
57
+ level: match[1]?.length ?? 1,
58
+ text: (match[2] ?? '').trim(),
59
+ lineNumber: lineIndex + 1,
60
+ });
61
+ }
62
+ });
63
+ return headings;
64
+ }
65
+ /**
66
+ * Get the title (first h1) from markdown content
67
+ */
68
+ export function extractTitle(content) {
69
+ const headings = extractHeadings(content);
70
+ const h1 = headings.find((h) => h.level === 1);
71
+ return h1?.text ?? null;
72
+ }
73
+ /**
74
+ * Count words in markdown content (excluding code blocks and frontmatter)
75
+ */
76
+ export function countWords(content) {
77
+ // Remove frontmatter
78
+ let text = content.replace(/^---[\s\S]*?---\n*/m, '');
79
+ // Remove code blocks
80
+ text = text.replace(/```[\s\S]*?```/g, '');
81
+ text = text.replace(/`[^`]+`/g, '');
82
+ // Remove markdown syntax
83
+ text = text.replace(/[#*_~\[\]()]/g, ' ');
84
+ // Count words
85
+ const words = text.split(/\s+/).filter((word) => word.length > 0);
86
+ return words.length;
87
+ }
88
+ /**
89
+ * Calculate estimated read time in minutes
90
+ */
91
+ export function calculateReadTime(content, wordsPerMinute = 200) {
92
+ const wordCount = countWords(content);
93
+ return Math.ceil(wordCount / wordsPerMinute);
94
+ }
95
+ /**
96
+ * Format read time as string
97
+ */
98
+ export function formatReadTime(content) {
99
+ const minutes = calculateReadTime(content);
100
+ return `${minutes} minute${minutes === 1 ? '' : 's'}`;
101
+ }
102
+ /**
103
+ * Generate a markdown link
104
+ */
105
+ export function createLink(text, url, title) {
106
+ if (title) {
107
+ return `[${text}](${url} "${title}")`;
108
+ }
109
+ return `[${text}](${url})`;
110
+ }
111
+ /**
112
+ * Generate a markdown heading
113
+ */
114
+ export function createHeading(text, level = 1) {
115
+ const hashes = '#'.repeat(Math.min(Math.max(level, 1), 6));
116
+ return `${hashes} ${text}`;
117
+ }
118
+ /**
119
+ * Generate a markdown table
120
+ */
121
+ export function createTable(headers, rows) {
122
+ const headerRow = `| ${headers.join(' | ')} |`;
123
+ const separatorRow = `| ${headers.map(() => '---').join(' | ')} |`;
124
+ const dataRows = rows.map((row) => `| ${row.join(' | ')} |`);
125
+ return [headerRow, separatorRow, ...dataRows].join('\n');
126
+ }
127
+ /**
128
+ * Generate a markdown list
129
+ */
130
+ export function createList(items, ordered = false) {
131
+ return items
132
+ .map((item, index) => (ordered ? `${index + 1}. ${item}` : `- ${item}`))
133
+ .join('\n');
134
+ }
135
+ /**
136
+ * Generate a markdown checkbox list
137
+ */
138
+ export function createCheckboxList(items) {
139
+ return items
140
+ .map((item) => `- [${item.checked ? 'x' : ' '}] ${item.text}`)
141
+ .join('\n');
142
+ }
143
+ /**
144
+ * Wrap text in a code block
145
+ */
146
+ export function createCodeBlock(code, language = '') {
147
+ return `\`\`\`${language}\n${code}\n\`\`\``;
148
+ }
149
+ /**
150
+ * Create an inline code span
151
+ */
152
+ export function createInlineCode(code) {
153
+ return `\`${code}\``;
154
+ }
155
+ /**
156
+ * Create a blockquote
157
+ */
158
+ export function createBlockquote(text) {
159
+ return text
160
+ .split('\n')
161
+ .map((line) => `> ${line}`)
162
+ .join('\n');
163
+ }
164
+ /**
165
+ * Slugify text for use in URLs/anchors
166
+ */
167
+ export function slugify(text) {
168
+ return text
169
+ .toLowerCase()
170
+ .replace(/[^\w\s-]/g, '')
171
+ .replace(/\s+/g, '-')
172
+ .replace(/-+/g, '-')
173
+ .trim();
174
+ }
175
+ /**
176
+ * Extract first paragraph as excerpt
177
+ */
178
+ export function extractExcerpt(content, maxLength = 200) {
179
+ // Remove frontmatter
180
+ let text = content.replace(/^---[\s\S]*?---\n*/m, '');
181
+ // Remove headings
182
+ text = text.replace(/^#+\s+.*$/gm, '');
183
+ // Get first paragraph
184
+ const paragraphs = text.split(/\n\n+/).filter((p) => p.trim().length > 0);
185
+ const firstParagraph = paragraphs[0] ?? '';
186
+ // Truncate if needed
187
+ if (firstParagraph.length <= maxLength) {
188
+ return firstParagraph.trim();
189
+ }
190
+ return firstParagraph.slice(0, maxLength).trim() + '...';
191
+ }
192
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/utils/markdown.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,100 @@
1
+ {
2
+ "name": "@theglitchking/hit-em-with-the-docs",
3
+ "version": "2.0.0",
4
+ "description": "Self-managing documentation system with hierarchical structure, intelligent automation, pattern discovery, and agent orchestration",
5
+ "type": "module",
6
+ "main": "dist/cli/index.js",
7
+ "bin": {
8
+ "hit-em-with-the-docs": "dist/cli/index.js",
9
+ "hewtd": "dist/cli/index.js"
10
+ },
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.js",
14
+ "types": "./dist/index.d.ts"
15
+ },
16
+ "./cli": {
17
+ "import": "./dist/cli/index.js"
18
+ },
19
+ "./action": {
20
+ "import": "./dist/action/index.js"
21
+ }
22
+ },
23
+ "files": [
24
+ "dist",
25
+ "templates",
26
+ ".claude-plugin",
27
+ "action.yml",
28
+ "README.md",
29
+ "LICENSE",
30
+ "MIGRATION.md"
31
+ ],
32
+ "scripts": {
33
+ "build": "tsc",
34
+ "build:action": "ncc build src/action/index.ts -o dist/action --minify",
35
+ "build:all": "npm run build && npm run build:action",
36
+ "dev": "tsc --watch",
37
+ "test": "vitest run",
38
+ "test:watch": "vitest",
39
+ "test:coverage": "vitest run --coverage",
40
+ "lint": "eslint src --ext .ts",
41
+ "lint:fix": "eslint src --ext .ts --fix",
42
+ "format": "prettier --write \"src/**/*.ts\"",
43
+ "typecheck": "tsc --noEmit",
44
+ "prepublishOnly": "npm run build:all && npm run test && bash scripts/validate-version.sh",
45
+ "cli": "node dist/cli/index.js"
46
+ },
47
+ "publishConfig": {
48
+ "access": "public"
49
+ },
50
+ "keywords": [
51
+ "documentation",
52
+ "github-action",
53
+ "docs",
54
+ "markdown",
55
+ "automation",
56
+ "cli",
57
+ "hierarchical",
58
+ "metadata",
59
+ "pattern-discovery",
60
+ "code-quality",
61
+ "self-managing",
62
+ "dsmp"
63
+ ],
64
+ "author": "",
65
+ "license": "MIT",
66
+ "repository": {
67
+ "type": "git",
68
+ "url": "git+https://github.com/TheGlitchKing/hit-em-with-the-docs.git"
69
+ },
70
+ "bugs": {
71
+ "url": "https://github.com/TheGlitchKing/hit-em-with-the-docs/issues"
72
+ },
73
+ "homepage": "https://github.com/TheGlitchKing/hit-em-with-the-docs#readme",
74
+ "engines": {
75
+ "node": ">=20.0.0"
76
+ },
77
+ "dependencies": {
78
+ "chalk": "^5.3.0",
79
+ "commander": "^12.1.0",
80
+ "fast-levenshtein": "^3.0.0",
81
+ "glob": "^10.4.5",
82
+ "gray-matter": "^4.0.3",
83
+ "yaml": "^2.6.1",
84
+ "zod": "^3.24.1"
85
+ },
86
+ "devDependencies": {
87
+ "@actions/core": "^1.11.1",
88
+ "@actions/github": "^6.0.0",
89
+ "@types/fast-levenshtein": "^0.0.4",
90
+ "@types/node": "^20.17.12",
91
+ "@typescript-eslint/eslint-plugin": "^7.18.0",
92
+ "@typescript-eslint/parser": "^7.18.0",
93
+ "@vercel/ncc": "^0.38.3",
94
+ "@vitest/coverage-v8": "^2.1.8",
95
+ "eslint": "^8.57.1",
96
+ "prettier": "^3.4.2",
97
+ "typescript": "^5.7.3",
98
+ "vitest": "^2.1.8"
99
+ }
100
+ }