doc-freshness-checker 1.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 (246) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +305 -0
  3. package/dist/cache/cacheManager.d.ts +42 -0
  4. package/dist/cache/cacheManager.js +138 -0
  5. package/dist/cache/cacheManager.js.map +1 -0
  6. package/dist/cache/cacheManager.test.d.ts +1 -0
  7. package/dist/cache/cacheManager.test.js +142 -0
  8. package/dist/cache/cacheManager.test.js.map +1 -0
  9. package/dist/cli.d.ts +32 -0
  10. package/dist/cli.js +137 -0
  11. package/dist/cli.js.map +1 -0
  12. package/dist/cli.test.d.ts +1 -0
  13. package/dist/cli.test.js +184 -0
  14. package/dist/cli.test.js.map +1 -0
  15. package/dist/config/defaults.d.ts +5 -0
  16. package/dist/config/defaults.js +135 -0
  17. package/dist/config/defaults.js.map +1 -0
  18. package/dist/config/defineConfig.d.ts +28 -0
  19. package/dist/config/defineConfig.js +30 -0
  20. package/dist/config/defineConfig.js.map +1 -0
  21. package/dist/config/defineConfig.test.d.ts +1 -0
  22. package/dist/config/defineConfig.test.js +10 -0
  23. package/dist/config/defineConfig.test.js.map +1 -0
  24. package/dist/config/loader.d.ts +7 -0
  25. package/dist/config/loader.js +250 -0
  26. package/dist/config/loader.js.map +1 -0
  27. package/dist/config/loader.test.d.ts +1 -0
  28. package/dist/config/loader.test.js +276 -0
  29. package/dist/config/loader.test.js.map +1 -0
  30. package/dist/git/changeTracker.d.ts +44 -0
  31. package/dist/git/changeTracker.js +149 -0
  32. package/dist/git/changeTracker.js.map +1 -0
  33. package/dist/git/changeTracker.test.d.ts +1 -0
  34. package/dist/git/changeTracker.test.js +184 -0
  35. package/dist/git/changeTracker.test.js.map +1 -0
  36. package/dist/graph/codeDocGraph.d.ts +43 -0
  37. package/dist/graph/codeDocGraph.js +103 -0
  38. package/dist/graph/codeDocGraph.js.map +1 -0
  39. package/dist/graph/codeDocGraph.test.d.ts +1 -0
  40. package/dist/graph/codeDocGraph.test.js +78 -0
  41. package/dist/graph/codeDocGraph.test.js.map +1 -0
  42. package/dist/graph/graphBuilder.d.ts +17 -0
  43. package/dist/graph/graphBuilder.js +76 -0
  44. package/dist/graph/graphBuilder.js.map +1 -0
  45. package/dist/graph/graphBuilder.test.d.ts +1 -0
  46. package/dist/graph/graphBuilder.test.js +87 -0
  47. package/dist/graph/graphBuilder.test.js.map +1 -0
  48. package/dist/index.d.ts +37 -0
  49. package/dist/index.js +37 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/parsers/documentParser.d.ts +22 -0
  52. package/dist/parsers/documentParser.js +76 -0
  53. package/dist/parsers/documentParser.js.map +1 -0
  54. package/dist/parsers/documentParser.test.d.ts +1 -0
  55. package/dist/parsers/documentParser.test.js +116 -0
  56. package/dist/parsers/documentParser.test.js.map +1 -0
  57. package/dist/parsers/extractors/baseExtractor.d.ts +19 -0
  58. package/dist/parsers/extractors/baseExtractor.js +33 -0
  59. package/dist/parsers/extractors/baseExtractor.js.map +1 -0
  60. package/dist/parsers/extractors/baseExtractor.test.d.ts +1 -0
  61. package/dist/parsers/extractors/baseExtractor.test.js +43 -0
  62. package/dist/parsers/extractors/baseExtractor.test.js.map +1 -0
  63. package/dist/parsers/extractors/codePatternExtractor.d.ts +13 -0
  64. package/dist/parsers/extractors/codePatternExtractor.js +108 -0
  65. package/dist/parsers/extractors/codePatternExtractor.js.map +1 -0
  66. package/dist/parsers/extractors/codePatternExtractor.test.d.ts +1 -0
  67. package/dist/parsers/extractors/codePatternExtractor.test.js +49 -0
  68. package/dist/parsers/extractors/codePatternExtractor.test.js.map +1 -0
  69. package/dist/parsers/extractors/dependencyExtractor.d.ts +12 -0
  70. package/dist/parsers/extractors/dependencyExtractor.js +92 -0
  71. package/dist/parsers/extractors/dependencyExtractor.js.map +1 -0
  72. package/dist/parsers/extractors/dependencyExtractor.test.d.ts +1 -0
  73. package/dist/parsers/extractors/dependencyExtractor.test.js +48 -0
  74. package/dist/parsers/extractors/dependencyExtractor.test.js.map +1 -0
  75. package/dist/parsers/extractors/directoryStructureExtractor.d.ts +34 -0
  76. package/dist/parsers/extractors/directoryStructureExtractor.js +168 -0
  77. package/dist/parsers/extractors/directoryStructureExtractor.js.map +1 -0
  78. package/dist/parsers/extractors/directoryStructureExtractor.test.d.ts +1 -0
  79. package/dist/parsers/extractors/directoryStructureExtractor.test.js +121 -0
  80. package/dist/parsers/extractors/directoryStructureExtractor.test.js.map +1 -0
  81. package/dist/parsers/extractors/externalUrlExtractor.d.ts +14 -0
  82. package/dist/parsers/extractors/externalUrlExtractor.js +53 -0
  83. package/dist/parsers/extractors/externalUrlExtractor.js.map +1 -0
  84. package/dist/parsers/extractors/externalUrlExtractor.test.d.ts +1 -0
  85. package/dist/parsers/extractors/externalUrlExtractor.test.js +85 -0
  86. package/dist/parsers/extractors/externalUrlExtractor.test.js.map +1 -0
  87. package/dist/parsers/extractors/filePathExtractor.d.ts +18 -0
  88. package/dist/parsers/extractors/filePathExtractor.js +72 -0
  89. package/dist/parsers/extractors/filePathExtractor.js.map +1 -0
  90. package/dist/parsers/extractors/filePathExtractor.test.d.ts +1 -0
  91. package/dist/parsers/extractors/filePathExtractor.test.js +73 -0
  92. package/dist/parsers/extractors/filePathExtractor.test.js.map +1 -0
  93. package/dist/parsers/extractors/versionExtractor.d.ts +11 -0
  94. package/dist/parsers/extractors/versionExtractor.js +74 -0
  95. package/dist/parsers/extractors/versionExtractor.js.map +1 -0
  96. package/dist/parsers/extractors/versionExtractor.test.d.ts +1 -0
  97. package/dist/parsers/extractors/versionExtractor.test.js +55 -0
  98. package/dist/parsers/extractors/versionExtractor.test.js.map +1 -0
  99. package/dist/plugins/plugin.d.ts +32 -0
  100. package/dist/plugins/plugin.js +40 -0
  101. package/dist/plugins/plugin.js.map +1 -0
  102. package/dist/plugins/plugin.test.d.ts +1 -0
  103. package/dist/plugins/plugin.test.js +23 -0
  104. package/dist/plugins/plugin.test.js.map +1 -0
  105. package/dist/reporters/consoleReporter.d.ts +15 -0
  106. package/dist/reporters/consoleReporter.js +73 -0
  107. package/dist/reporters/consoleReporter.js.map +1 -0
  108. package/dist/reporters/consoleReporter.test.d.ts +1 -0
  109. package/dist/reporters/consoleReporter.test.js +155 -0
  110. package/dist/reporters/consoleReporter.test.js.map +1 -0
  111. package/dist/reporters/enhancedReporter.d.ts +12 -0
  112. package/dist/reporters/enhancedReporter.js +81 -0
  113. package/dist/reporters/enhancedReporter.js.map +1 -0
  114. package/dist/reporters/enhancedReporter.test.d.ts +1 -0
  115. package/dist/reporters/enhancedReporter.test.js +152 -0
  116. package/dist/reporters/enhancedReporter.test.js.map +1 -0
  117. package/dist/reporters/jsonReporter.d.ts +11 -0
  118. package/dist/reporters/jsonReporter.js +20 -0
  119. package/dist/reporters/jsonReporter.js.map +1 -0
  120. package/dist/reporters/jsonReporter.test.d.ts +1 -0
  121. package/dist/reporters/jsonReporter.test.js +31 -0
  122. package/dist/reporters/jsonReporter.test.js.map +1 -0
  123. package/dist/reporters/markdownReporter.d.ts +11 -0
  124. package/dist/reporters/markdownReporter.js +55 -0
  125. package/dist/reporters/markdownReporter.js.map +1 -0
  126. package/dist/reporters/markdownReporter.test.d.ts +1 -0
  127. package/dist/reporters/markdownReporter.test.js +136 -0
  128. package/dist/reporters/markdownReporter.test.js.map +1 -0
  129. package/dist/runner.d.ts +9 -0
  130. package/dist/runner.js +265 -0
  131. package/dist/runner.js.map +1 -0
  132. package/dist/runner.test.d.ts +1 -0
  133. package/dist/runner.test.js +353 -0
  134. package/dist/runner.test.js.map +1 -0
  135. package/dist/scoring/freshnessScorer.d.ts +40 -0
  136. package/dist/scoring/freshnessScorer.js +170 -0
  137. package/dist/scoring/freshnessScorer.js.map +1 -0
  138. package/dist/scoring/freshnessScorer.test.d.ts +1 -0
  139. package/dist/scoring/freshnessScorer.test.js +397 -0
  140. package/dist/scoring/freshnessScorer.test.js.map +1 -0
  141. package/dist/semantic/vectorSearch.d.ts +84 -0
  142. package/dist/semantic/vectorSearch.js +484 -0
  143. package/dist/semantic/vectorSearch.js.map +1 -0
  144. package/dist/semantic/vectorSearch.test.d.ts +1 -0
  145. package/dist/semantic/vectorSearch.test.js +660 -0
  146. package/dist/semantic/vectorSearch.test.js.map +1 -0
  147. package/dist/setupTests.d.ts +4 -0
  148. package/dist/setupTests.js +11 -0
  149. package/dist/setupTests.js.map +1 -0
  150. package/dist/test-utils/console.d.ts +2 -0
  151. package/dist/test-utils/console.js +3 -0
  152. package/dist/test-utils/console.js.map +1 -0
  153. package/dist/test-utils/factories.d.ts +3 -0
  154. package/dist/test-utils/factories.js +25 -0
  155. package/dist/test-utils/factories.js.map +1 -0
  156. package/dist/test-utils/tempFiles.d.ts +1 -0
  157. package/dist/test-utils/tempFiles.js +12 -0
  158. package/dist/test-utils/tempFiles.js.map +1 -0
  159. package/dist/types.d.ts +304 -0
  160. package/dist/types.js +5 -0
  161. package/dist/types.js.map +1 -0
  162. package/dist/utils/boundedMap.d.ts +8 -0
  163. package/dist/utils/boundedMap.js +22 -0
  164. package/dist/utils/boundedMap.js.map +1 -0
  165. package/dist/utils/boundedMap.test.d.ts +1 -0
  166. package/dist/utils/boundedMap.test.js +57 -0
  167. package/dist/utils/boundedMap.test.js.map +1 -0
  168. package/dist/utils/illustrativePatterns.d.ts +28 -0
  169. package/dist/utils/illustrativePatterns.js +80 -0
  170. package/dist/utils/illustrativePatterns.js.map +1 -0
  171. package/dist/utils/illustrativePatterns.test.d.ts +1 -0
  172. package/dist/utils/illustrativePatterns.test.js +48 -0
  173. package/dist/utils/illustrativePatterns.test.js.map +1 -0
  174. package/dist/utils/incremental.d.ts +36 -0
  175. package/dist/utils/incremental.js +87 -0
  176. package/dist/utils/incremental.js.map +1 -0
  177. package/dist/utils/incremental.test.d.ts +1 -0
  178. package/dist/utils/incremental.test.js +84 -0
  179. package/dist/utils/incremental.test.js.map +1 -0
  180. package/dist/utils/parallel.d.ts +14 -0
  181. package/dist/utils/parallel.js +43 -0
  182. package/dist/utils/parallel.js.map +1 -0
  183. package/dist/utils/parallel.test.d.ts +1 -0
  184. package/dist/utils/parallel.test.js +48 -0
  185. package/dist/utils/parallel.test.js.map +1 -0
  186. package/dist/utils/pathSecurity.d.ts +12 -0
  187. package/dist/utils/pathSecurity.js +22 -0
  188. package/dist/utils/pathSecurity.js.map +1 -0
  189. package/dist/utils/pathSecurity.test.d.ts +1 -0
  190. package/dist/utils/pathSecurity.test.js +34 -0
  191. package/dist/utils/pathSecurity.test.js.map +1 -0
  192. package/dist/utils/similarity.d.ts +12 -0
  193. package/dist/utils/similarity.js +64 -0
  194. package/dist/utils/similarity.js.map +1 -0
  195. package/dist/utils/similarity.test.d.ts +1 -0
  196. package/dist/utils/similarity.test.js +49 -0
  197. package/dist/utils/similarity.test.js.map +1 -0
  198. package/dist/utils/validation.d.ts +13 -0
  199. package/dist/utils/validation.js +24 -0
  200. package/dist/utils/validation.js.map +1 -0
  201. package/dist/utils/validation.test.d.ts +1 -0
  202. package/dist/utils/validation.test.js +28 -0
  203. package/dist/utils/validation.test.js.map +1 -0
  204. package/dist/validators/codePatternValidator.d.ts +28 -0
  205. package/dist/validators/codePatternValidator.js +200 -0
  206. package/dist/validators/codePatternValidator.js.map +1 -0
  207. package/dist/validators/codePatternValidator.test.d.ts +1 -0
  208. package/dist/validators/codePatternValidator.test.js +86 -0
  209. package/dist/validators/codePatternValidator.test.js.map +1 -0
  210. package/dist/validators/dependencyValidator.d.ts +12 -0
  211. package/dist/validators/dependencyValidator.js +102 -0
  212. package/dist/validators/dependencyValidator.js.map +1 -0
  213. package/dist/validators/dependencyValidator.test.d.ts +1 -0
  214. package/dist/validators/dependencyValidator.test.js +179 -0
  215. package/dist/validators/dependencyValidator.test.js.map +1 -0
  216. package/dist/validators/directoryValidator.d.ts +30 -0
  217. package/dist/validators/directoryValidator.js +192 -0
  218. package/dist/validators/directoryValidator.js.map +1 -0
  219. package/dist/validators/directoryValidator.test.d.ts +1 -0
  220. package/dist/validators/directoryValidator.test.js +193 -0
  221. package/dist/validators/directoryValidator.test.js.map +1 -0
  222. package/dist/validators/fileValidator.d.ts +16 -0
  223. package/dist/validators/fileValidator.js +114 -0
  224. package/dist/validators/fileValidator.js.map +1 -0
  225. package/dist/validators/fileValidator.test.d.ts +1 -0
  226. package/dist/validators/fileValidator.test.js +108 -0
  227. package/dist/validators/fileValidator.test.js.map +1 -0
  228. package/dist/validators/urlValidator.d.ts +25 -0
  229. package/dist/validators/urlValidator.js +320 -0
  230. package/dist/validators/urlValidator.js.map +1 -0
  231. package/dist/validators/urlValidator.test.d.ts +1 -0
  232. package/dist/validators/urlValidator.test.js +252 -0
  233. package/dist/validators/urlValidator.test.js.map +1 -0
  234. package/dist/validators/validationEngine.d.ts +23 -0
  235. package/dist/validators/validationEngine.js +117 -0
  236. package/dist/validators/validationEngine.js.map +1 -0
  237. package/dist/validators/validationEngine.test.d.ts +1 -0
  238. package/dist/validators/validationEngine.test.js +82 -0
  239. package/dist/validators/validationEngine.test.js.map +1 -0
  240. package/dist/validators/versionValidator.d.ts +18 -0
  241. package/dist/validators/versionValidator.js +211 -0
  242. package/dist/validators/versionValidator.js.map +1 -0
  243. package/dist/validators/versionValidator.test.d.ts +1 -0
  244. package/dist/validators/versionValidator.test.js +308 -0
  245. package/dist/validators/versionValidator.test.js.map +1 -0
  246. package/package.json +98 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vectorSearch.test.js","sourceRoot":"","sources":["../../src/semantic/vectorSearch.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Global test setup for Vitest
3
+ */
4
+ export {};
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Global test setup for Vitest
3
+ */
4
+ import createFetchMock from 'vitest-fetch-mock';
5
+ const fetchMocker = createFetchMock(vi);
6
+ fetchMocker.enableMocks();
7
+ afterEach(() => {
8
+ fetchMocker.resetMocks();
9
+ vi.clearAllMocks();
10
+ });
11
+ //# sourceMappingURL=setupTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupTests.js","sourceRoot":"","sources":["../src/setupTests.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;AACxC,WAAW,CAAC,WAAW,EAAE,CAAC;AAE1B,SAAS,CAAC,GAAG,EAAE;IACb,WAAW,CAAC,UAAU,EAAE,CAAC;IACzB,EAAE,CAAC,aAAa,EAAE,CAAC;AACrB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const captureConsoleLog: () => import("vitest").Mock<(...data: any[]) => void>;
2
+ export declare const captureConsoleWarn: () => import("vitest").Mock<(...data: any[]) => void>;
@@ -0,0 +1,3 @@
1
+ export const captureConsoleLog = () => vi.spyOn(console, 'log').mockImplementation(() => { });
2
+ export const captureConsoleWarn = () => vi.spyOn(console, 'warn').mockImplementation(() => { });
3
+ //# sourceMappingURL=console.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/test-utils/console.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Document, Reference } from '../types.js';
2
+ export declare function makeDoc(overrides?: Partial<Document>): Document;
3
+ export declare function makeRef(type: string, value: string, overrides?: Partial<Reference>): Reference;
@@ -0,0 +1,25 @@
1
+ export function makeDoc(overrides = {}) {
2
+ const docPath = overrides.path ?? 'doc.md';
3
+ const absolutePath = overrides.absolutePath ?? `/project/${docPath}`;
4
+ const format = overrides.format ?? 'markdown';
5
+ return {
6
+ path: docPath,
7
+ absolutePath,
8
+ content: '',
9
+ format: format,
10
+ lines: [],
11
+ references: [],
12
+ ...overrides,
13
+ };
14
+ }
15
+ export function makeRef(type, value, overrides = {}) {
16
+ return {
17
+ type,
18
+ value,
19
+ lineNumber: 1,
20
+ raw: value,
21
+ sourceFile: 'doc.md',
22
+ ...overrides,
23
+ };
24
+ }
25
+ //# sourceMappingURL=factories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factories.js","sourceRoot":"","sources":["../../src/test-utils/factories.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CAAC,YAA+B,EAAE;IACvD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,IAAI,QAAQ,CAAC;IAC3C,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,IAAI,YAAY,OAAO,EAAE,CAAC;IACrE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,UAAU,CAAC;IAE9C,OAAO;QACL,IAAI,EAAE,OAAO;QACb,YAAY;QACZ,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,MAAwB;QAChC,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,EAAE;QACd,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,YAAgC,EAAE;IACrF,OAAO;QACL,IAAI;QACJ,KAAK;QACL,UAAU,EAAE,CAAC;QACb,GAAG,EAAE,KAAK;QACV,UAAU,EAAE,QAAQ;QACpB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function withOutputFile(cacheRoot: string, fileName: string, runAssert: (outputPath: string) => Promise<void>): Promise<void>;
@@ -0,0 +1,12 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ export async function withOutputFile(cacheRoot, fileName, runAssert) {
4
+ const outputPath = path.join(cacheRoot, fileName);
5
+ try {
6
+ await runAssert(outputPath);
7
+ }
8
+ finally {
9
+ await fs.promises.unlink(outputPath).catch(() => { });
10
+ }
11
+ }
12
+ //# sourceMappingURL=tempFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tempFiles.js","sourceRoot":"","sources":["../../src/test-utils/tempFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAiB,EAAE,QAAgB,EAAE,SAAgD;IACxH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
@@ -0,0 +1,304 @@
1
+ /**
2
+ * Core type definitions for Documentation Freshness Checker
3
+ */
4
+ export type Severity = 'error' | 'warning' | 'info';
5
+ export interface RuleConfig {
6
+ enabled?: boolean;
7
+ severity?: Severity;
8
+ }
9
+ export interface FilePathRuleConfig extends RuleConfig {
10
+ /**
11
+ * Patterns to identify illustrative/placeholder paths that shouldn't be validated
12
+ * These are typically example paths in tutorials/guides that don't actually exist
13
+ * Supports regex patterns (as strings) that match against the full path or filename
14
+ */
15
+ illustrativePatterns?: string[];
16
+ /**
17
+ * Skip validation for paths detected as illustrative (default: true)
18
+ * When true, illustrative paths won't generate errors/warnings
19
+ * When false, they'll be flagged with reduced severity (info)
20
+ */
21
+ skipIllustrative?: boolean;
22
+ }
23
+ export interface DirectoryStructureRuleConfig extends RuleConfig {
24
+ /**
25
+ * Patterns to identify illustrative/placeholder paths in directory trees
26
+ */
27
+ illustrativePatterns?: string[];
28
+ /**
29
+ * Skip validation for paths detected as illustrative (default: true)
30
+ */
31
+ skipIllustrative?: boolean;
32
+ }
33
+ export interface VersionRuleConfig extends RuleConfig {
34
+ allowMinorDrift?: boolean;
35
+ }
36
+ export interface RulesConfig {
37
+ 'file-path'?: FilePathRuleConfig;
38
+ 'external-url'?: RuleConfig;
39
+ version?: VersionRuleConfig;
40
+ 'directory-structure'?: DirectoryStructureRuleConfig;
41
+ 'code-pattern'?: RuleConfig;
42
+ dependency?: RuleConfig;
43
+ [key: string]: RuleConfig | VersionRuleConfig | FilePathRuleConfig | DirectoryStructureRuleConfig | undefined;
44
+ }
45
+ export interface UrlValidationConfig {
46
+ enabled?: boolean;
47
+ timeout?: number;
48
+ concurrency?: number;
49
+ skipDomains?: string[];
50
+ cacheSeconds?: number;
51
+ }
52
+ export interface GraphConfig {
53
+ enabled?: boolean;
54
+ cacheDir?: string;
55
+ cacheMaxAge?: number;
56
+ }
57
+ export interface GitConfig {
58
+ enabled?: boolean;
59
+ trackChanges?: boolean;
60
+ changeWindow?: number;
61
+ }
62
+ export interface FreshnessScoringWeights {
63
+ referenceValidity?: number;
64
+ gitTimeDelta?: number;
65
+ codeChangeFrequency?: number;
66
+ symbolCoverage?: number;
67
+ }
68
+ export interface FreshnessScoringThresholds {
69
+ gradeA?: number;
70
+ gradeB?: number;
71
+ gradeC?: number;
72
+ gradeD?: number;
73
+ }
74
+ export interface FreshnessScoringConfig {
75
+ enabled?: boolean;
76
+ weights?: FreshnessScoringWeights;
77
+ thresholds?: FreshnessScoringThresholds;
78
+ }
79
+ export interface VectorSearchConfig {
80
+ enabled?: boolean;
81
+ similarityThreshold?: number;
82
+ indexCodeComments?: boolean;
83
+ indexDocstrings?: boolean;
84
+ }
85
+ export interface CacheConfig {
86
+ enabled?: boolean;
87
+ dir?: string;
88
+ maxAge?: number;
89
+ }
90
+ export interface IncrementalConfig {
91
+ enabled?: boolean;
92
+ }
93
+ export type ReporterType = 'console' | 'json' | 'markdown' | 'enhanced';
94
+ export interface DocFreshnessConfig {
95
+ rootDir?: string;
96
+ include?: string[];
97
+ exclude?: string[];
98
+ manifestFiles?: string[] | null;
99
+ sourcePatterns?: string[] | null;
100
+ urlValidation?: UrlValidationConfig;
101
+ rules?: RulesConfig;
102
+ reporters?: ReporterType[];
103
+ outputDir?: string;
104
+ outputPath?: string;
105
+ ignorePatterns?: string[];
106
+ customExtractors?: BaseExtractor[];
107
+ customValidators?: Record<string, BaseValidator>;
108
+ graph?: GraphConfig;
109
+ git?: GitConfig;
110
+ freshnessScoring?: FreshnessScoringConfig;
111
+ vectorSearch?: VectorSearchConfig;
112
+ cache?: CacheConfig;
113
+ incremental?: IncrementalConfig;
114
+ verbose?: boolean;
115
+ clearCache?: boolean;
116
+ technologies?: string[];
117
+ languageAliases?: Record<string, string[]>;
118
+ languagePatterns?: Record<string, LanguagePattern[]>;
119
+ ecosystems?: string[];
120
+ _configFile?: string;
121
+ _noConfigFile?: boolean;
122
+ }
123
+ export type DocumentFormat = 'markdown' | 'restructuredtext' | 'asciidoc' | 'plaintext';
124
+ export interface Reference {
125
+ type: string;
126
+ value: string;
127
+ lineNumber: number;
128
+ raw: string;
129
+ sourceFile: string;
130
+ linkText?: string;
131
+ technology?: string;
132
+ version?: string;
133
+ kind?: string;
134
+ language?: string;
135
+ ecosystem?: string;
136
+ lineRef?: string;
137
+ isIllustrative?: boolean;
138
+ }
139
+ export interface Document {
140
+ path: string;
141
+ absolutePath: string;
142
+ content: string;
143
+ format: DocumentFormat;
144
+ lines: string[];
145
+ references: Reference[];
146
+ }
147
+ export interface ValidationResult {
148
+ reference: Reference;
149
+ valid: boolean;
150
+ severity?: Severity;
151
+ message?: string;
152
+ suggestion?: string | null;
153
+ resolvedPath?: string;
154
+ foundIn?: string[];
155
+ foundAt?: string;
156
+ statusCode?: number;
157
+ skipped?: boolean;
158
+ }
159
+ export interface DocumentIssues {
160
+ path: string;
161
+ issues: ValidationResult[];
162
+ }
163
+ export interface ValidationSummary {
164
+ total: number;
165
+ valid: number;
166
+ errors: number;
167
+ warnings: number;
168
+ skipped: number;
169
+ }
170
+ export interface VectorMismatch {
171
+ docPath: string;
172
+ docSection: string;
173
+ docText: string;
174
+ bestMatchScore: number;
175
+ bestMatch: IndexMetadata | null;
176
+ suggestion: string;
177
+ }
178
+ export interface ValidationResults {
179
+ documents: DocumentIssues[];
180
+ summary: ValidationSummary;
181
+ vectorMismatches?: VectorMismatch[];
182
+ }
183
+ export interface LanguagePattern {
184
+ regex: RegExp;
185
+ kind: string;
186
+ }
187
+ export interface BaseExtractor {
188
+ type: string;
189
+ supportedFormats: DocumentFormat[];
190
+ supportsFormat(format: DocumentFormat): boolean;
191
+ extract(document: Document): Reference[];
192
+ findLineNumber(content: string, matchIndex: number): number;
193
+ getContext(lines: string[], lineNumber: number, contextLines?: number): string;
194
+ }
195
+ export interface BaseValidator {
196
+ validateBatch(references: Reference[], document: Document, config: DocFreshnessConfig): Promise<ValidationResult[]>;
197
+ }
198
+ export interface GraphReference extends Reference {
199
+ resolvedCodeFile: string;
200
+ }
201
+ export interface SerializedGraph {
202
+ docToCode: Record<string, string[]>;
203
+ codeToDoc: Record<string, string[]>;
204
+ codeSymbols: Record<string, string[]>;
205
+ docReferences: Record<string, GraphReference[]>;
206
+ buildTimestamp: number | null;
207
+ gitCommit: string | null;
208
+ configHash: string | null;
209
+ }
210
+ export interface SymbolLocation {
211
+ filePath: string;
212
+ kind: string;
213
+ language: string;
214
+ }
215
+ export interface SourceFileData {
216
+ content: string;
217
+ language: string;
218
+ }
219
+ export interface CodeFile {
220
+ path: string;
221
+ content: string;
222
+ language: string;
223
+ }
224
+ export type Grade = 'A' | 'B' | 'C' | 'D' | 'F';
225
+ export interface DocScore {
226
+ document: string;
227
+ totalScore: number;
228
+ factors: {
229
+ referenceValidity: number;
230
+ gitTimeDelta: number;
231
+ codeChangeFrequency: number;
232
+ symbolCoverage: number;
233
+ };
234
+ grade: Grade;
235
+ }
236
+ export interface ProjectScores {
237
+ projectScore: number;
238
+ projectGrade: Grade;
239
+ documents: DocScore[];
240
+ summary: {
241
+ total: number;
242
+ gradeA: number;
243
+ gradeB: number;
244
+ gradeC: number;
245
+ gradeD: number;
246
+ gradeF: number;
247
+ };
248
+ }
249
+ export interface CommitInfo {
250
+ hash: string;
251
+ timestamp: number;
252
+ message: string;
253
+ }
254
+ export interface ChangeSummaryItem {
255
+ codeFile: string;
256
+ affectedDocs: string[];
257
+ lastCommit: CommitInfo | null;
258
+ }
259
+ export interface IndexMetadata {
260
+ type: 'doc' | 'code';
261
+ path: string;
262
+ section?: string;
263
+ symbol?: string;
264
+ text: string;
265
+ }
266
+ export interface Section {
267
+ heading: string;
268
+ text: string;
269
+ }
270
+ export interface Comment {
271
+ text: string;
272
+ symbol: string;
273
+ }
274
+ export interface CacheStats {
275
+ cachedEmbeddings: number;
276
+ indexedDocSections: number;
277
+ indexedCodeComments: number;
278
+ }
279
+ export interface CacheStats2 {
280
+ exists: boolean;
281
+ graphSize: number;
282
+ urlCacheSize: number;
283
+ lastUpdated: Date | null;
284
+ }
285
+ export interface UrlCacheEntry {
286
+ result: {
287
+ valid: boolean;
288
+ severity?: Severity;
289
+ message?: string;
290
+ statusCode?: number;
291
+ };
292
+ timestamp: number;
293
+ }
294
+ export interface IncrementalStats {
295
+ total: number;
296
+ changed: number;
297
+ skipped: number;
298
+ percentSkipped: number;
299
+ }
300
+ export type ManifestParser = (filePath: string) => Promise<Map<string, string>>;
301
+ export interface LanguageConfig {
302
+ extensions: string[];
303
+ patterns: LanguagePattern[];
304
+ }
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Core type definitions for Documentation Freshness Checker
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Keep only the newest maxEntries items by removing oldest insertions.
3
+ */
4
+ export declare function pruneOldestEntries<K, V>(map: Map<K, V>, maxEntries: number): void;
5
+ /**
6
+ * Set an entry and enforce a maximum map size.
7
+ */
8
+ export declare function setWithMaxEntries<K, V>(map: Map<K, V>, key: K, value: V, maxEntries: number): void;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Keep only the newest maxEntries items by removing oldest insertions.
3
+ */
4
+ export function pruneOldestEntries(map, maxEntries) {
5
+ if (maxEntries < 0)
6
+ return;
7
+ if (map.size <= maxEntries)
8
+ return;
9
+ const overflow = map.size - maxEntries;
10
+ const keys = Array.from(map.keys());
11
+ for (let i = 0; i < overflow; i++) {
12
+ map.delete(keys[i]);
13
+ }
14
+ }
15
+ /**
16
+ * Set an entry and enforce a maximum map size.
17
+ */
18
+ export function setWithMaxEntries(map, key, value, maxEntries) {
19
+ map.set(key, value);
20
+ pruneOldestEntries(map, maxEntries);
21
+ }
22
+ //# sourceMappingURL=boundedMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boundedMap.js","sourceRoot":"","sources":["../../src/utils/boundedMap.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAO,GAAc,EAAE,UAAkB;IACzE,IAAI,UAAU,GAAG,CAAC;QAAE,OAAO;IAC3B,IAAI,GAAG,CAAC,IAAI,IAAI,UAAU;QAAE,OAAO;IAEnC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC;IACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAO,GAAc,EAAE,GAAM,EAAE,KAAQ,EAAE,UAAkB;IAC1F,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpB,kBAAkB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,57 @@
1
+ import { pruneOldestEntries, setWithMaxEntries } from './boundedMap.js';
2
+ describe('pruneOldestEntries', () => {
3
+ it('does nothing when map size is within limit or limit is negative', () => {
4
+ const map = new Map([
5
+ ['a', 1],
6
+ ['b', 2],
7
+ ]);
8
+ pruneOldestEntries(map, 5);
9
+ expect(map.size).toBe(2);
10
+ pruneOldestEntries(map, -1);
11
+ expect(map.size).toBe(2);
12
+ });
13
+ it('removes oldest entries to enforce maxEntries', () => {
14
+ const map = new Map([
15
+ ['a', 1],
16
+ ['b', 2],
17
+ ['c', 3],
18
+ ['d', 4],
19
+ ]);
20
+ pruneOldestEntries(map, 2);
21
+ expect(map.size).toBe(2);
22
+ expect(map.has('a')).toBe(false);
23
+ expect(map.has('b')).toBe(false);
24
+ expect(map.has('c')).toBe(true);
25
+ expect(map.has('d')).toBe(true);
26
+ });
27
+ it('handles maxEntries of 0 by clearing the map', () => {
28
+ const map = new Map([
29
+ ['a', 1],
30
+ ['b', 2],
31
+ ]);
32
+ pruneOldestEntries(map, 0);
33
+ expect(map.size).toBe(0);
34
+ });
35
+ });
36
+ describe('setWithMaxEntries', () => {
37
+ it('adds entry and prunes if over limit', () => {
38
+ const map = new Map([
39
+ ['a', 1],
40
+ ['b', 2],
41
+ ]);
42
+ setWithMaxEntries(map, 'c', 3, 2);
43
+ expect(map.size).toBe(2);
44
+ expect(map.has('a')).toBe(false);
45
+ expect(map.get('c')).toBe(3);
46
+ });
47
+ it('updates existing entry without pruning unnecessarily', () => {
48
+ const map = new Map([
49
+ ['a', 1],
50
+ ['b', 2],
51
+ ]);
52
+ setWithMaxEntries(map, 'a', 10, 2);
53
+ expect(map.size).toBe(2);
54
+ expect(map.get('a')).toBe(10);
55
+ });
56
+ });
57
+ //# sourceMappingURL=boundedMap.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boundedMap.test.js","sourceRoot":"","sources":["../../src/utils/boundedMap.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Centralized patterns for detecting illustrative/placeholder content in documentation
3
+ *
4
+ * These patterns identify paths, filenames, and code symbols that are commonly used
5
+ * as examples in tutorials and documentation but don't represent actual files/code.
6
+ */
7
+ /**
8
+ * Patterns for detecting illustrative file/directory paths
9
+ * Used by: FilePathExtractor, DirectoryStructureExtractor, FileValidator, DirectoryValidator
10
+ */
11
+ export declare const ILLUSTRATIVE_PATH_PATTERNS: RegExp[];
12
+ /**
13
+ * Patterns for detecting illustrative code symbol names
14
+ * Used by: CodePatternExtractor, CodePatternValidator
15
+ */
16
+ export declare const ILLUSTRATIVE_SYMBOL_PATTERNS: RegExp[];
17
+ /**
18
+ * Check if a path looks like an illustrative/placeholder path
19
+ */
20
+ export declare function isIllustrativePath(itemPath: string, customPatterns?: RegExp[]): boolean;
21
+ /**
22
+ * Check if a code symbol name looks like an illustrative/placeholder name
23
+ */
24
+ export declare function isIllustrativeSymbol(name: string, customPatterns?: RegExp[]): boolean;
25
+ /**
26
+ * Convert string patterns from config to RegExp objects
27
+ */
28
+ export declare function compilePatterns(patterns: string[]): RegExp[];