@j0hanz/fs-context-mcp 2.1.0 → 2.1.2

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 (784) hide show
  1. package/dist/server.d.ts.map +1 -1
  2. package/dist/server.js +26 -9
  3. package/dist/server.js.map +1 -1
  4. package/dist/tools.d.ts +7 -5
  5. package/dist/tools.d.ts.map +1 -1
  6. package/dist/tools.js +122 -29
  7. package/dist/tools.js.map +1 -1
  8. package/package.json +6 -6
  9. package/dist/__tests__/lib/errors-classify.test.d.ts +0 -2
  10. package/dist/__tests__/lib/errors-classify.test.d.ts.map +0 -1
  11. package/dist/__tests__/lib/errors-classify.test.js +0 -53
  12. package/dist/__tests__/lib/errors-classify.test.js.map +0 -1
  13. package/dist/__tests__/lib/errors-detailed.test.d.ts +0 -2
  14. package/dist/__tests__/lib/errors-detailed.test.d.ts.map +0 -1
  15. package/dist/__tests__/lib/errors-detailed.test.js +0 -38
  16. package/dist/__tests__/lib/errors-detailed.test.js.map +0 -1
  17. package/dist/__tests__/lib/errors-is-node-error.test.d.ts +0 -2
  18. package/dist/__tests__/lib/errors-is-node-error.test.d.ts.map +0 -1
  19. package/dist/__tests__/lib/errors-is-node-error.test.js +0 -21
  20. package/dist/__tests__/lib/errors-is-node-error.test.js.map +0 -1
  21. package/dist/__tests__/lib/errors-mcp-error.test.d.ts +0 -2
  22. package/dist/__tests__/lib/errors-mcp-error.test.d.ts.map +0 -1
  23. package/dist/__tests__/lib/errors-mcp-error.test.js +0 -29
  24. package/dist/__tests__/lib/errors-mcp-error.test.js.map +0 -1
  25. package/dist/__tests__/lib/errors-node-map.test.d.ts +0 -2
  26. package/dist/__tests__/lib/errors-node-map.test.d.ts.map +0 -1
  27. package/dist/__tests__/lib/errors-node-map.test.js +0 -16
  28. package/dist/__tests__/lib/errors-node-map.test.js.map +0 -1
  29. package/dist/__tests__/lib/errors-suggestion.test.d.ts +0 -2
  30. package/dist/__tests__/lib/errors-suggestion.test.d.ts.map +0 -1
  31. package/dist/__tests__/lib/errors-suggestion.test.js +0 -11
  32. package/dist/__tests__/lib/errors-suggestion.test.js.map +0 -1
  33. package/dist/__tests__/lib/errors.test.d.ts +0 -2
  34. package/dist/__tests__/lib/errors.test.d.ts.map +0 -1
  35. package/dist/__tests__/lib/errors.test.js +0 -171
  36. package/dist/__tests__/lib/errors.test.js.map +0 -1
  37. package/dist/__tests__/lib/file-operations/analyze-directory-edge-cases.test.d.ts +0 -2
  38. package/dist/__tests__/lib/file-operations/analyze-directory-edge-cases.test.d.ts.map +0 -1
  39. package/dist/__tests__/lib/file-operations/analyze-directory-edge-cases.test.js +0 -15
  40. package/dist/__tests__/lib/file-operations/analyze-directory-edge-cases.test.js.map +0 -1
  41. package/dist/__tests__/lib/file-operations/analyze-directory.test.d.ts +0 -2
  42. package/dist/__tests__/lib/file-operations/analyze-directory.test.d.ts.map +0 -1
  43. package/dist/__tests__/lib/file-operations/analyze-directory.test.js +0 -28
  44. package/dist/__tests__/lib/file-operations/analyze-directory.test.js.map +0 -1
  45. package/dist/__tests__/lib/file-operations/compute-checksums.test.d.ts +0 -2
  46. package/dist/__tests__/lib/file-operations/compute-checksums.test.d.ts.map +0 -1
  47. package/dist/__tests__/lib/file-operations/compute-checksums.test.js +0 -59
  48. package/dist/__tests__/lib/file-operations/compute-checksums.test.js.map +0 -1
  49. package/dist/__tests__/lib/file-operations/directory-tree-edge-cases.test.d.ts +0 -2
  50. package/dist/__tests__/lib/file-operations/directory-tree-edge-cases.test.d.ts.map +0 -1
  51. package/dist/__tests__/lib/file-operations/directory-tree-edge-cases.test.js +0 -29
  52. package/dist/__tests__/lib/file-operations/directory-tree-edge-cases.test.js.map +0 -1
  53. package/dist/__tests__/lib/file-operations/directory-tree.test.d.ts +0 -2
  54. package/dist/__tests__/lib/file-operations/directory-tree.test.d.ts.map +0 -1
  55. package/dist/__tests__/lib/file-operations/directory-tree.test.js +0 -75
  56. package/dist/__tests__/lib/file-operations/directory-tree.test.js.map +0 -1
  57. package/dist/__tests__/lib/file-operations/get-file-info.test.d.ts +0 -2
  58. package/dist/__tests__/lib/file-operations/get-file-info.test.d.ts.map +0 -1
  59. package/dist/__tests__/lib/file-operations/get-file-info.test.js +0 -17
  60. package/dist/__tests__/lib/file-operations/get-file-info.test.js.map +0 -1
  61. package/dist/__tests__/lib/file-operations/get-multiple-file-info.test.d.ts +0 -2
  62. package/dist/__tests__/lib/file-operations/get-multiple-file-info.test.d.ts.map +0 -1
  63. package/dist/__tests__/lib/file-operations/get-multiple-file-info.test.js +0 -46
  64. package/dist/__tests__/lib/file-operations/get-multiple-file-info.test.js.map +0 -1
  65. package/dist/__tests__/lib/file-operations/list-directory-edge-cases.test.d.ts +0 -2
  66. package/dist/__tests__/lib/file-operations/list-directory-edge-cases.test.d.ts.map +0 -1
  67. package/dist/__tests__/lib/file-operations/list-directory-edge-cases.test.js +0 -21
  68. package/dist/__tests__/lib/file-operations/list-directory-edge-cases.test.js.map +0 -1
  69. package/dist/__tests__/lib/file-operations/list-directory.test.d.ts +0 -2
  70. package/dist/__tests__/lib/file-operations/list-directory.test.d.ts.map +0 -1
  71. package/dist/__tests__/lib/file-operations/list-directory.test.js +0 -31
  72. package/dist/__tests__/lib/file-operations/list-directory.test.js.map +0 -1
  73. package/dist/__tests__/lib/file-operations/read-media-file.test.d.ts +0 -2
  74. package/dist/__tests__/lib/file-operations/read-media-file.test.d.ts.map +0 -1
  75. package/dist/__tests__/lib/file-operations/read-media-file.test.js +0 -21
  76. package/dist/__tests__/lib/file-operations/read-media-file.test.js.map +0 -1
  77. package/dist/__tests__/lib/file-operations/read-multiple-files-edge-cases.test.d.ts +0 -2
  78. package/dist/__tests__/lib/file-operations/read-multiple-files-edge-cases.test.d.ts.map +0 -1
  79. package/dist/__tests__/lib/file-operations/read-multiple-files-edge-cases.test.js +0 -40
  80. package/dist/__tests__/lib/file-operations/read-multiple-files-edge-cases.test.js.map +0 -1
  81. package/dist/__tests__/lib/file-operations/read-multiple-files.test.d.ts +0 -2
  82. package/dist/__tests__/lib/file-operations/read-multiple-files.test.d.ts.map +0 -1
  83. package/dist/__tests__/lib/file-operations/read-multiple-files.test.js +0 -57
  84. package/dist/__tests__/lib/file-operations/read-multiple-files.test.js.map +0 -1
  85. package/dist/__tests__/lib/file-operations/search-content-edge-cases.test.d.ts +0 -2
  86. package/dist/__tests__/lib/file-operations/search-content-edge-cases.test.d.ts.map +0 -1
  87. package/dist/__tests__/lib/file-operations/search-content-edge-cases.test.js +0 -57
  88. package/dist/__tests__/lib/file-operations/search-content-edge-cases.test.js.map +0 -1
  89. package/dist/__tests__/lib/file-operations/search-content.test.d.ts +0 -2
  90. package/dist/__tests__/lib/file-operations/search-content.test.d.ts.map +0 -1
  91. package/dist/__tests__/lib/file-operations/search-content.test.js +0 -73
  92. package/dist/__tests__/lib/file-operations/search-content.test.js.map +0 -1
  93. package/dist/__tests__/lib/file-operations/search-definitions-helpers.test.d.ts +0 -2
  94. package/dist/__tests__/lib/file-operations/search-definitions-helpers.test.d.ts.map +0 -1
  95. package/dist/__tests__/lib/file-operations/search-definitions-helpers.test.js +0 -43
  96. package/dist/__tests__/lib/file-operations/search-definitions-helpers.test.js.map +0 -1
  97. package/dist/__tests__/lib/file-operations/search-definitions.fixtures.d.ts +0 -7
  98. package/dist/__tests__/lib/file-operations/search-definitions.fixtures.d.ts.map +0 -1
  99. package/dist/__tests__/lib/file-operations/search-definitions.fixtures.js +0 -113
  100. package/dist/__tests__/lib/file-operations/search-definitions.fixtures.js.map +0 -1
  101. package/dist/__tests__/lib/file-operations/search-definitions.test.d.ts +0 -2
  102. package/dist/__tests__/lib/file-operations/search-definitions.test.d.ts.map +0 -1
  103. package/dist/__tests__/lib/file-operations/search-definitions.test.js +0 -163
  104. package/dist/__tests__/lib/file-operations/search-definitions.test.js.map +0 -1
  105. package/dist/__tests__/lib/file-operations/search-files-edge-cases.test.d.ts +0 -2
  106. package/dist/__tests__/lib/file-operations/search-files-edge-cases.test.d.ts.map +0 -1
  107. package/dist/__tests__/lib/file-operations/search-files-edge-cases.test.js +0 -13
  108. package/dist/__tests__/lib/file-operations/search-files-edge-cases.test.js.map +0 -1
  109. package/dist/__tests__/lib/file-operations/search-files.test.d.ts +0 -2
  110. package/dist/__tests__/lib/file-operations/search-files.test.d.ts.map +0 -1
  111. package/dist/__tests__/lib/file-operations/search-files.test.js +0 -31
  112. package/dist/__tests__/lib/file-operations/search-files.test.js.map +0 -1
  113. package/dist/__tests__/lib/file-operations/sorting.test.d.ts +0 -2
  114. package/dist/__tests__/lib/file-operations/sorting.test.d.ts.map +0 -1
  115. package/dist/__tests__/lib/file-operations/sorting.test.js +0 -22
  116. package/dist/__tests__/lib/file-operations/sorting.test.js.map +0 -1
  117. package/dist/__tests__/lib/file-operations.test.d.ts +0 -2
  118. package/dist/__tests__/lib/file-operations.test.d.ts.map +0 -1
  119. package/dist/__tests__/lib/file-operations.test.js +0 -475
  120. package/dist/__tests__/lib/file-operations.test.js.map +0 -1
  121. package/dist/__tests__/lib/fixtures/file-ops-fixture.d.ts +0 -7
  122. package/dist/__tests__/lib/fixtures/file-ops-fixture.d.ts.map +0 -1
  123. package/dist/__tests__/lib/fixtures/file-ops-fixture.js +0 -87
  124. package/dist/__tests__/lib/fixtures/file-ops-fixture.js.map +0 -1
  125. package/dist/__tests__/lib/fixtures/file-ops-hooks.d.ts +0 -2
  126. package/dist/__tests__/lib/fixtures/file-ops-hooks.d.ts.map +0 -1
  127. package/dist/__tests__/lib/fixtures/file-ops-hooks.js +0 -13
  128. package/dist/__tests__/lib/fixtures/file-ops-hooks.js.map +0 -1
  129. package/dist/__tests__/lib/fs-helpers/file-type.test.d.ts +0 -2
  130. package/dist/__tests__/lib/fs-helpers/file-type.test.d.ts.map +0 -1
  131. package/dist/__tests__/lib/fs-helpers/file-type.test.js +0 -15
  132. package/dist/__tests__/lib/fs-helpers/file-type.test.js.map +0 -1
  133. package/dist/__tests__/lib/fs-helpers/head-file-edge-cases.test.d.ts +0 -2
  134. package/dist/__tests__/lib/fs-helpers/head-file-edge-cases.test.d.ts.map +0 -1
  135. package/dist/__tests__/lib/fs-helpers/head-file-edge-cases.test.js +0 -19
  136. package/dist/__tests__/lib/fs-helpers/head-file-edge-cases.test.js.map +0 -1
  137. package/dist/__tests__/lib/fs-helpers/head-file.test.d.ts +0 -2
  138. package/dist/__tests__/lib/fs-helpers/head-file.test.d.ts.map +0 -1
  139. package/dist/__tests__/lib/fs-helpers/head-file.test.js +0 -12
  140. package/dist/__tests__/lib/fs-helpers/head-file.test.js.map +0 -1
  141. package/dist/__tests__/lib/fs-helpers/is-hidden.test.d.ts +0 -2
  142. package/dist/__tests__/lib/fs-helpers/is-hidden.test.d.ts.map +0 -1
  143. package/dist/__tests__/lib/fs-helpers/is-hidden.test.js +0 -7
  144. package/dist/__tests__/lib/fs-helpers/is-hidden.test.js.map +0 -1
  145. package/dist/__tests__/lib/fs-helpers/is-probably-binary.test.d.ts +0 -2
  146. package/dist/__tests__/lib/fs-helpers/is-probably-binary.test.d.ts.map +0 -1
  147. package/dist/__tests__/lib/fs-helpers/is-probably-binary.test.js +0 -33
  148. package/dist/__tests__/lib/fs-helpers/is-probably-binary.test.js.map +0 -1
  149. package/dist/__tests__/lib/fs-helpers/read-file-edge-cases.test.d.ts +0 -2
  150. package/dist/__tests__/lib/fs-helpers/read-file-edge-cases.test.d.ts.map +0 -1
  151. package/dist/__tests__/lib/fs-helpers/read-file-edge-cases.test.js +0 -57
  152. package/dist/__tests__/lib/fs-helpers/read-file-edge-cases.test.js.map +0 -1
  153. package/dist/__tests__/lib/fs-helpers/read-file.test.d.ts +0 -2
  154. package/dist/__tests__/lib/fs-helpers/read-file.test.d.ts.map +0 -1
  155. package/dist/__tests__/lib/fs-helpers/read-file.test.js +0 -21
  156. package/dist/__tests__/lib/fs-helpers/read-file.test.js.map +0 -1
  157. package/dist/__tests__/lib/fs-helpers/tail-file-edge-cases.test.d.ts +0 -2
  158. package/dist/__tests__/lib/fs-helpers/tail-file-edge-cases.test.d.ts.map +0 -1
  159. package/dist/__tests__/lib/fs-helpers/tail-file-edge-cases.test.js +0 -26
  160. package/dist/__tests__/lib/fs-helpers/tail-file-edge-cases.test.js.map +0 -1
  161. package/dist/__tests__/lib/fs-helpers/tail-file.test.d.ts +0 -2
  162. package/dist/__tests__/lib/fs-helpers/tail-file.test.d.ts.map +0 -1
  163. package/dist/__tests__/lib/fs-helpers/tail-file.test.js +0 -11
  164. package/dist/__tests__/lib/fs-helpers/tail-file.test.js.map +0 -1
  165. package/dist/__tests__/lib/fs-helpers/utf8.test.d.ts +0 -2
  166. package/dist/__tests__/lib/fs-helpers/utf8.test.d.ts.map +0 -1
  167. package/dist/__tests__/lib/fs-helpers/utf8.test.js +0 -43
  168. package/dist/__tests__/lib/fs-helpers/utf8.test.js.map +0 -1
  169. package/dist/__tests__/lib/fs-helpers.test.d.ts +0 -2
  170. package/dist/__tests__/lib/fs-helpers.test.d.ts.map +0 -1
  171. package/dist/__tests__/lib/fs-helpers.test.js +0 -183
  172. package/dist/__tests__/lib/fs-helpers.test.js.map +0 -1
  173. package/dist/__tests__/lib/path-validation-errors.test.d.ts +0 -2
  174. package/dist/__tests__/lib/path-validation-errors.test.d.ts.map +0 -1
  175. package/dist/__tests__/lib/path-validation-errors.test.js +0 -35
  176. package/dist/__tests__/lib/path-validation-errors.test.js.map +0 -1
  177. package/dist/__tests__/lib/path-validation-roots.test.d.ts +0 -2
  178. package/dist/__tests__/lib/path-validation-roots.test.d.ts.map +0 -1
  179. package/dist/__tests__/lib/path-validation-roots.test.js +0 -42
  180. package/dist/__tests__/lib/path-validation-roots.test.js.map +0 -1
  181. package/dist/__tests__/lib/path-validation.test.d.ts +0 -2
  182. package/dist/__tests__/lib/path-validation.test.d.ts.map +0 -1
  183. package/dist/__tests__/lib/path-validation.test.js +0 -127
  184. package/dist/__tests__/lib/path-validation.test.js.map +0 -1
  185. package/dist/__tests__/schemas/validators.test.d.ts +0 -2
  186. package/dist/__tests__/schemas/validators.test.d.ts.map +0 -1
  187. package/dist/__tests__/schemas/validators.test.js +0 -114
  188. package/dist/__tests__/schemas/validators.test.js.map +0 -1
  189. package/dist/__tests__/security/filesystem-boundary.test.d.ts +0 -2
  190. package/dist/__tests__/security/filesystem-boundary.test.d.ts.map +0 -1
  191. package/dist/__tests__/security/filesystem-boundary.test.js +0 -64
  192. package/dist/__tests__/security/filesystem-boundary.test.js.map +0 -1
  193. package/dist/config/formatting.d.ts +0 -7
  194. package/dist/config/formatting.d.ts.map +0 -1
  195. package/dist/config/formatting.js +0 -18
  196. package/dist/config/formatting.js.map +0 -1
  197. package/dist/config/types.d.ts +0 -111
  198. package/dist/config/types.d.ts.map +0 -1
  199. package/dist/config/types.js +0 -14
  200. package/dist/config/types.js.map +0 -1
  201. package/dist/lib/constants/binary-extensions.d.ts +0 -2
  202. package/dist/lib/constants/binary-extensions.d.ts.map +0 -1
  203. package/dist/lib/constants/binary-extensions.js +0 -43
  204. package/dist/lib/constants/binary-extensions.js.map +0 -1
  205. package/dist/lib/constants/exclude-patterns.d.ts +0 -2
  206. package/dist/lib/constants/exclude-patterns.d.ts.map +0 -1
  207. package/dist/lib/constants/exclude-patterns.js +0 -26
  208. package/dist/lib/constants/exclude-patterns.js.map +0 -1
  209. package/dist/lib/constants/mime-types.d.ts +0 -2
  210. package/dist/lib/constants/mime-types.d.ts.map +0 -1
  211. package/dist/lib/constants/mime-types.js +0 -63
  212. package/dist/lib/constants/mime-types.js.map +0 -1
  213. package/dist/lib/file-operations/analyze-directory-helpers.d.ts +0 -24
  214. package/dist/lib/file-operations/analyze-directory-helpers.d.ts.map +0 -1
  215. package/dist/lib/file-operations/analyze-directory-helpers.js +0 -50
  216. package/dist/lib/file-operations/analyze-directory-helpers.js.map +0 -1
  217. package/dist/lib/file-operations/analyze-directory.d.ts +0 -10
  218. package/dist/lib/file-operations/analyze-directory.d.ts.map +0 -1
  219. package/dist/lib/file-operations/analyze-directory.js +0 -120
  220. package/dist/lib/file-operations/analyze-directory.js.map +0 -1
  221. package/dist/lib/file-operations/batch-results.d.ts +0 -13
  222. package/dist/lib/file-operations/batch-results.d.ts.map +0 -1
  223. package/dist/lib/file-operations/batch-results.js +0 -23
  224. package/dist/lib/file-operations/batch-results.js.map +0 -1
  225. package/dist/lib/file-operations/compute-checksums.d.ts +0 -10
  226. package/dist/lib/file-operations/compute-checksums.d.ts.map +0 -1
  227. package/dist/lib/file-operations/compute-checksums.js +0 -134
  228. package/dist/lib/file-operations/compute-checksums.js.map +0 -1
  229. package/dist/lib/file-operations/directory-helpers.d.ts +0 -18
  230. package/dist/lib/file-operations/directory-helpers.d.ts.map +0 -1
  231. package/dist/lib/file-operations/directory-helpers.js +0 -80
  232. package/dist/lib/file-operations/directory-helpers.js.map +0 -1
  233. package/dist/lib/file-operations/directory-items.d.ts +0 -20
  234. package/dist/lib/file-operations/directory-items.d.ts.map +0 -1
  235. package/dist/lib/file-operations/directory-items.js +0 -85
  236. package/dist/lib/file-operations/directory-items.js.map +0 -1
  237. package/dist/lib/file-operations/directory-iteration.d.ts +0 -17
  238. package/dist/lib/file-operations/directory-iteration.d.ts.map +0 -1
  239. package/dist/lib/file-operations/directory-iteration.js +0 -55
  240. package/dist/lib/file-operations/directory-iteration.js.map +0 -1
  241. package/dist/lib/file-operations/directory-tree-builders.d.ts +0 -7
  242. package/dist/lib/file-operations/directory-tree-builders.d.ts.map +0 -1
  243. package/dist/lib/file-operations/directory-tree-builders.js +0 -58
  244. package/dist/lib/file-operations/directory-tree-builders.js.map +0 -1
  245. package/dist/lib/file-operations/directory-tree-helpers.d.ts +0 -33
  246. package/dist/lib/file-operations/directory-tree-helpers.d.ts.map +0 -1
  247. package/dist/lib/file-operations/directory-tree-helpers.js +0 -124
  248. package/dist/lib/file-operations/directory-tree-helpers.js.map +0 -1
  249. package/dist/lib/file-operations/directory-tree.d.ts +0 -10
  250. package/dist/lib/file-operations/directory-tree.d.ts.map +0 -1
  251. package/dist/lib/file-operations/directory-tree.js +0 -60
  252. package/dist/lib/file-operations/directory-tree.js.map +0 -1
  253. package/dist/lib/file-operations/get-multiple-file-info.d.ts +0 -8
  254. package/dist/lib/file-operations/get-multiple-file-info.d.ts.map +0 -1
  255. package/dist/lib/file-operations/get-multiple-file-info.js +0 -80
  256. package/dist/lib/file-operations/get-multiple-file-info.js.map +0 -1
  257. package/dist/lib/file-operations/list-directory-entry.d.ts +0 -20
  258. package/dist/lib/file-operations/list-directory-entry.d.ts.map +0 -1
  259. package/dist/lib/file-operations/list-directory-entry.js +0 -46
  260. package/dist/lib/file-operations/list-directory-entry.js.map +0 -1
  261. package/dist/lib/file-operations/list-directory-helpers.d.ts +0 -21
  262. package/dist/lib/file-operations/list-directory-helpers.d.ts.map +0 -1
  263. package/dist/lib/file-operations/list-directory-helpers.js +0 -110
  264. package/dist/lib/file-operations/list-directory-helpers.js.map +0 -1
  265. package/dist/lib/file-operations/list-directory-matching.d.ts +0 -6
  266. package/dist/lib/file-operations/list-directory-matching.d.ts.map +0 -1
  267. package/dist/lib/file-operations/list-directory-matching.js +0 -94
  268. package/dist/lib/file-operations/list-directory-matching.js.map +0 -1
  269. package/dist/lib/file-operations/pattern-complexity.d.ts +0 -16
  270. package/dist/lib/file-operations/pattern-complexity.d.ts.map +0 -1
  271. package/dist/lib/file-operations/pattern-complexity.js +0 -86
  272. package/dist/lib/file-operations/pattern-complexity.js.map +0 -1
  273. package/dist/lib/file-operations/pattern-validator.d.ts +0 -5
  274. package/dist/lib/file-operations/pattern-validator.d.ts.map +0 -1
  275. package/dist/lib/file-operations/pattern-validator.js +0 -70
  276. package/dist/lib/file-operations/pattern-validator.js.map +0 -1
  277. package/dist/lib/file-operations/read-media-file.d.ts +0 -5
  278. package/dist/lib/file-operations/read-media-file.d.ts.map +0 -1
  279. package/dist/lib/file-operations/read-media-file.js +0 -35
  280. package/dist/lib/file-operations/read-media-file.js.map +0 -1
  281. package/dist/lib/file-operations/read-multiple-budget.d.ts +0 -12
  282. package/dist/lib/file-operations/read-multiple-budget.d.ts.map +0 -1
  283. package/dist/lib/file-operations/read-multiple-budget.js +0 -40
  284. package/dist/lib/file-operations/read-multiple-budget.js.map +0 -1
  285. package/dist/lib/file-operations/read-multiple-files-helpers.d.ts +0 -47
  286. package/dist/lib/file-operations/read-multiple-files-helpers.d.ts.map +0 -1
  287. package/dist/lib/file-operations/read-multiple-files-helpers.js +0 -73
  288. package/dist/lib/file-operations/read-multiple-files-helpers.js.map +0 -1
  289. package/dist/lib/file-operations/read-multiple-utils.d.ts +0 -78
  290. package/dist/lib/file-operations/read-multiple-utils.d.ts.map +0 -1
  291. package/dist/lib/file-operations/read-multiple-utils.js +0 -120
  292. package/dist/lib/file-operations/read-multiple-utils.js.map +0 -1
  293. package/dist/lib/file-operations/search/context-manager.d.ts +0 -19
  294. package/dist/lib/file-operations/search/context-manager.d.ts.map +0 -1
  295. package/dist/lib/file-operations/search/context-manager.js +0 -82
  296. package/dist/lib/file-operations/search/context-manager.js.map +0 -1
  297. package/dist/lib/file-operations/search/engine-options.d.ts +0 -19
  298. package/dist/lib/file-operations/search/engine-options.d.ts.map +0 -1
  299. package/dist/lib/file-operations/search/engine-options.js +0 -25
  300. package/dist/lib/file-operations/search/engine-options.js.map +0 -1
  301. package/dist/lib/file-operations/search/engine-stream-state.d.ts +0 -17
  302. package/dist/lib/file-operations/search/engine-stream-state.d.ts.map +0 -1
  303. package/dist/lib/file-operations/search/engine-stream-state.js +0 -122
  304. package/dist/lib/file-operations/search/engine-stream-state.js.map +0 -1
  305. package/dist/lib/file-operations/search/engine-stream.d.ts +0 -6
  306. package/dist/lib/file-operations/search/engine-stream.d.ts.map +0 -1
  307. package/dist/lib/file-operations/search/engine-stream.js +0 -158
  308. package/dist/lib/file-operations/search/engine-stream.js.map +0 -1
  309. package/dist/lib/file-operations/search/engine.d.ts +0 -4
  310. package/dist/lib/file-operations/search/engine.d.ts.map +0 -1
  311. package/dist/lib/file-operations/search/engine.js +0 -116
  312. package/dist/lib/file-operations/search/engine.js.map +0 -1
  313. package/dist/lib/file-operations/search/file-processor.d.ts +0 -4
  314. package/dist/lib/file-operations/search/file-processor.d.ts.map +0 -1
  315. package/dist/lib/file-operations/search/file-processor.js +0 -148
  316. package/dist/lib/file-operations/search/file-processor.js.map +0 -1
  317. package/dist/lib/file-operations/search/line-iterator.d.ts +0 -3
  318. package/dist/lib/file-operations/search/line-iterator.d.ts.map +0 -1
  319. package/dist/lib/file-operations/search/line-iterator.js +0 -86
  320. package/dist/lib/file-operations/search/line-iterator.js.map +0 -1
  321. package/dist/lib/file-operations/search/match-strategy.d.ts +0 -8
  322. package/dist/lib/file-operations/search/match-strategy.d.ts.map +0 -1
  323. package/dist/lib/file-operations/search/match-strategy.js +0 -111
  324. package/dist/lib/file-operations/search/match-strategy.js.map +0 -1
  325. package/dist/lib/file-operations/search/options.d.ts +0 -23
  326. package/dist/lib/file-operations/search/options.d.ts.map +0 -1
  327. package/dist/lib/file-operations/search/options.js +0 -25
  328. package/dist/lib/file-operations/search/options.js.map +0 -1
  329. package/dist/lib/file-operations/search/scan-collector.d.ts +0 -20
  330. package/dist/lib/file-operations/search/scan-collector.d.ts.map +0 -1
  331. package/dist/lib/file-operations/search/scan-collector.js +0 -82
  332. package/dist/lib/file-operations/search/scan-collector.js.map +0 -1
  333. package/dist/lib/file-operations/search/scan-file.d.ts +0 -11
  334. package/dist/lib/file-operations/search/scan-file.d.ts.map +0 -1
  335. package/dist/lib/file-operations/search/scan-file.js +0 -87
  336. package/dist/lib/file-operations/search/scan-file.js.map +0 -1
  337. package/dist/lib/file-operations/search/scan-helpers.d.ts +0 -42
  338. package/dist/lib/file-operations/search/scan-helpers.d.ts.map +0 -1
  339. package/dist/lib/file-operations/search/scan-helpers.js +0 -56
  340. package/dist/lib/file-operations/search/scan-helpers.js.map +0 -1
  341. package/dist/lib/file-operations/search/scan-runner.d.ts +0 -14
  342. package/dist/lib/file-operations/search/scan-runner.d.ts.map +0 -1
  343. package/dist/lib/file-operations/search/scan-runner.js +0 -111
  344. package/dist/lib/file-operations/search/scan-runner.js.map +0 -1
  345. package/dist/lib/file-operations/search/scan-strategy-parallel.d.ts +0 -5
  346. package/dist/lib/file-operations/search/scan-strategy-parallel.d.ts.map +0 -1
  347. package/dist/lib/file-operations/search/scan-strategy-parallel.js +0 -136
  348. package/dist/lib/file-operations/search/scan-strategy-parallel.js.map +0 -1
  349. package/dist/lib/file-operations/search/scan-strategy-shared.d.ts +0 -12
  350. package/dist/lib/file-operations/search/scan-strategy-shared.d.ts.map +0 -1
  351. package/dist/lib/file-operations/search/scan-strategy-shared.js +0 -25
  352. package/dist/lib/file-operations/search/scan-strategy-shared.js.map +0 -1
  353. package/dist/lib/file-operations/search/scan-strategy.d.ts +0 -5
  354. package/dist/lib/file-operations/search/scan-strategy.d.ts.map +0 -1
  355. package/dist/lib/file-operations/search/scan-strategy.js +0 -27
  356. package/dist/lib/file-operations/search/scan-strategy.js.map +0 -1
  357. package/dist/lib/file-operations/search/scan-types.d.ts +0 -19
  358. package/dist/lib/file-operations/search/scan-types.d.ts.map +0 -1
  359. package/dist/lib/file-operations/search/scan-types.js +0 -2
  360. package/dist/lib/file-operations/search/scan-types.js.map +0 -1
  361. package/dist/lib/file-operations/search/search-worker.d.ts +0 -30
  362. package/dist/lib/file-operations/search/search-worker.d.ts.map +0 -1
  363. package/dist/lib/file-operations/search/search-worker.js +0 -112
  364. package/dist/lib/file-operations/search/search-worker.js.map +0 -1
  365. package/dist/lib/file-operations/search/types.d.ts +0 -39
  366. package/dist/lib/file-operations/search/types.d.ts.map +0 -1
  367. package/dist/lib/file-operations/search/types.js +0 -2
  368. package/dist/lib/file-operations/search/types.js.map +0 -1
  369. package/dist/lib/file-operations/search/worker-client.d.ts +0 -20
  370. package/dist/lib/file-operations/search/worker-client.d.ts.map +0 -1
  371. package/dist/lib/file-operations/search/worker-client.js +0 -144
  372. package/dist/lib/file-operations/search/worker-client.js.map +0 -1
  373. package/dist/lib/file-operations/search/worker-pool-helpers.d.ts +0 -10
  374. package/dist/lib/file-operations/search/worker-pool-helpers.d.ts.map +0 -1
  375. package/dist/lib/file-operations/search/worker-pool-helpers.js +0 -69
  376. package/dist/lib/file-operations/search/worker-pool-helpers.js.map +0 -1
  377. package/dist/lib/file-operations/search/worker-pool-manager.d.ts +0 -3
  378. package/dist/lib/file-operations/search/worker-pool-manager.d.ts.map +0 -1
  379. package/dist/lib/file-operations/search/worker-pool-manager.js +0 -21
  380. package/dist/lib/file-operations/search/worker-pool-manager.js.map +0 -1
  381. package/dist/lib/file-operations/search/worker-pool-types.d.ts +0 -39
  382. package/dist/lib/file-operations/search/worker-pool-types.d.ts.map +0 -1
  383. package/dist/lib/file-operations/search/worker-pool-types.js +0 -2
  384. package/dist/lib/file-operations/search/worker-pool-types.js.map +0 -1
  385. package/dist/lib/file-operations/search/worker-pool.d.ts +0 -28
  386. package/dist/lib/file-operations/search/worker-pool.d.ts.map +0 -1
  387. package/dist/lib/file-operations/search/worker-pool.js +0 -154
  388. package/dist/lib/file-operations/search/worker-pool.js.map +0 -1
  389. package/dist/lib/file-operations/search/worker-scan.d.ts +0 -26
  390. package/dist/lib/file-operations/search/worker-scan.d.ts.map +0 -1
  391. package/dist/lib/file-operations/search/worker-scan.js +0 -24
  392. package/dist/lib/file-operations/search/worker-scan.js.map +0 -1
  393. package/dist/lib/file-operations/search/worker.d.ts +0 -23
  394. package/dist/lib/file-operations/search/worker.d.ts.map +0 -1
  395. package/dist/lib/file-operations/search/worker.js +0 -28
  396. package/dist/lib/file-operations/search/worker.js.map +0 -1
  397. package/dist/lib/file-operations/search-content-scan.d.ts +0 -29
  398. package/dist/lib/file-operations/search-content-scan.d.ts.map +0 -1
  399. package/dist/lib/file-operations/search-content-scan.js +0 -468
  400. package/dist/lib/file-operations/search-content-scan.js.map +0 -1
  401. package/dist/lib/file-operations/search-content-worker-api.d.ts +0 -56
  402. package/dist/lib/file-operations/search-content-worker-api.d.ts.map +0 -1
  403. package/dist/lib/file-operations/search-content-worker-api.js +0 -239
  404. package/dist/lib/file-operations/search-content-worker-api.js.map +0 -1
  405. package/dist/lib/file-operations/search-definitions/matchers.d.ts +0 -12
  406. package/dist/lib/file-operations/search-definitions/matchers.d.ts.map +0 -1
  407. package/dist/lib/file-operations/search-definitions/matchers.js +0 -122
  408. package/dist/lib/file-operations/search-definitions/matchers.js.map +0 -1
  409. package/dist/lib/file-operations/search-definitions/patterns.d.ts +0 -14
  410. package/dist/lib/file-operations/search-definitions/patterns.d.ts.map +0 -1
  411. package/dist/lib/file-operations/search-definitions/patterns.js +0 -83
  412. package/dist/lib/file-operations/search-definitions/patterns.js.map +0 -1
  413. package/dist/lib/file-operations/search-definitions.d.ts +0 -6
  414. package/dist/lib/file-operations/search-definitions.d.ts.map +0 -1
  415. package/dist/lib/file-operations/search-definitions.js +0 -42
  416. package/dist/lib/file-operations/search-definitions.js.map +0 -1
  417. package/dist/lib/file-operations/search-files-collector.d.ts +0 -10
  418. package/dist/lib/file-operations/search-files-collector.d.ts.map +0 -1
  419. package/dist/lib/file-operations/search-files-collector.js +0 -123
  420. package/dist/lib/file-operations/search-files-collector.js.map +0 -1
  421. package/dist/lib/file-operations/search-files-helpers.d.ts +0 -17
  422. package/dist/lib/file-operations/search-files-helpers.d.ts.map +0 -1
  423. package/dist/lib/file-operations/search-files-helpers.js +0 -19
  424. package/dist/lib/file-operations/search-files-helpers.js.map +0 -1
  425. package/dist/lib/file-operations/search-files-options.d.ts +0 -33
  426. package/dist/lib/file-operations/search-files-options.d.ts.map +0 -1
  427. package/dist/lib/file-operations/search-files-options.js +0 -33
  428. package/dist/lib/file-operations/search-files-options.js.map +0 -1
  429. package/dist/lib/file-operations/search-files-state.d.ts +0 -12
  430. package/dist/lib/file-operations/search-files-state.d.ts.map +0 -1
  431. package/dist/lib/file-operations/search-files-state.js +0 -26
  432. package/dist/lib/file-operations/search-files-state.js.map +0 -1
  433. package/dist/lib/file-operations/search-files-stream-processor.d.ts +0 -7
  434. package/dist/lib/file-operations/search-files-stream-processor.d.ts.map +0 -1
  435. package/dist/lib/file-operations/search-files-stream-processor.js +0 -171
  436. package/dist/lib/file-operations/search-files-stream-processor.js.map +0 -1
  437. package/dist/lib/file-operations/search-files-stream-types.d.ts +0 -6
  438. package/dist/lib/file-operations/search-files-stream-types.d.ts.map +0 -1
  439. package/dist/lib/file-operations/search-files-stream-types.js +0 -2
  440. package/dist/lib/file-operations/search-files-stream-types.js.map +0 -1
  441. package/dist/lib/file-operations/search-files-stream.d.ts +0 -9
  442. package/dist/lib/file-operations/search-files-stream.d.ts.map +0 -1
  443. package/dist/lib/file-operations/search-files-stream.js +0 -74
  444. package/dist/lib/file-operations/search-files-stream.js.map +0 -1
  445. package/dist/lib/file-operations/sorting.d.ts +0 -9
  446. package/dist/lib/file-operations/sorting.d.ts.map +0 -1
  447. package/dist/lib/file-operations/sorting.js +0 -51
  448. package/dist/lib/file-operations/sorting.js.map +0 -1
  449. package/dist/lib/file-operations/stream-control.d.ts +0 -15
  450. package/dist/lib/file-operations/stream-control.d.ts.map +0 -1
  451. package/dist/lib/file-operations/stream-control.js +0 -60
  452. package/dist/lib/file-operations/stream-control.js.map +0 -1
  453. package/dist/lib/file-operations.d.ts +0 -8
  454. package/dist/lib/file-operations.d.ts.map +0 -1
  455. package/dist/lib/file-operations.js +0 -8
  456. package/dist/lib/file-operations.js.map +0 -1
  457. package/dist/lib/fs-helpers/abort.d.ts +0 -7
  458. package/dist/lib/fs-helpers/abort.d.ts.map +0 -1
  459. package/dist/lib/fs-helpers/abort.js +0 -109
  460. package/dist/lib/fs-helpers/abort.js.map +0 -1
  461. package/dist/lib/fs-helpers/binary-detect.d.ts +0 -3
  462. package/dist/lib/fs-helpers/binary-detect.d.ts.map +0 -1
  463. package/dist/lib/fs-helpers/binary-detect.js +0 -60
  464. package/dist/lib/fs-helpers/binary-detect.js.map +0 -1
  465. package/dist/lib/fs-helpers/concurrency.d.ts +0 -10
  466. package/dist/lib/fs-helpers/concurrency.d.ts.map +0 -1
  467. package/dist/lib/fs-helpers/concurrency.js +0 -106
  468. package/dist/lib/fs-helpers/concurrency.js.map +0 -1
  469. package/dist/lib/fs-helpers/fs-utils.d.ts +0 -5
  470. package/dist/lib/fs-helpers/fs-utils.d.ts.map +0 -1
  471. package/dist/lib/fs-helpers/fs-utils.js +0 -13
  472. package/dist/lib/fs-helpers/fs-utils.js.map +0 -1
  473. package/dist/lib/fs-helpers/readers/binary-check.d.ts +0 -3
  474. package/dist/lib/fs-helpers/readers/binary-check.d.ts.map +0 -1
  475. package/dist/lib/fs-helpers/readers/binary-check.js +0 -11
  476. package/dist/lib/fs-helpers/readers/binary-check.js.map +0 -1
  477. package/dist/lib/fs-helpers/readers/head-file.d.ts +0 -3
  478. package/dist/lib/fs-helpers/readers/head-file.d.ts.map +0 -1
  479. package/dist/lib/fs-helpers/readers/head-file.js +0 -21
  480. package/dist/lib/fs-helpers/readers/head-file.js.map +0 -1
  481. package/dist/lib/fs-helpers/readers/line-range.d.ts +0 -9
  482. package/dist/lib/fs-helpers/readers/line-range.d.ts.map +0 -1
  483. package/dist/lib/fs-helpers/readers/line-range.js +0 -86
  484. package/dist/lib/fs-helpers/readers/line-range.js.map +0 -1
  485. package/dist/lib/fs-helpers/readers/read-buffer.d.ts +0 -3
  486. package/dist/lib/fs-helpers/readers/read-buffer.d.ts.map +0 -1
  487. package/dist/lib/fs-helpers/readers/read-buffer.js +0 -43
  488. package/dist/lib/fs-helpers/readers/read-buffer.js.map +0 -1
  489. package/dist/lib/fs-helpers/readers/read-file-content.d.ts +0 -16
  490. package/dist/lib/fs-helpers/readers/read-file-content.d.ts.map +0 -1
  491. package/dist/lib/fs-helpers/readers/read-file-content.js +0 -29
  492. package/dist/lib/fs-helpers/readers/read-file-content.js.map +0 -1
  493. package/dist/lib/fs-helpers/readers/read-file-types.d.ts +0 -40
  494. package/dist/lib/fs-helpers/readers/read-file-types.d.ts.map +0 -1
  495. package/dist/lib/fs-helpers/readers/read-file-types.js +0 -2
  496. package/dist/lib/fs-helpers/readers/read-file-types.js.map +0 -1
  497. package/dist/lib/fs-helpers/readers/read-file-utils.d.ts +0 -43
  498. package/dist/lib/fs-helpers/readers/read-file-utils.d.ts.map +0 -1
  499. package/dist/lib/fs-helpers/readers/read-file-utils.js +0 -128
  500. package/dist/lib/fs-helpers/readers/read-file-utils.js.map +0 -1
  501. package/dist/lib/fs-helpers/readers/read-file.d.ts +0 -5
  502. package/dist/lib/fs-helpers/readers/read-file.d.ts.map +0 -1
  503. package/dist/lib/fs-helpers/readers/read-file.js +0 -42
  504. package/dist/lib/fs-helpers/readers/read-file.js.map +0 -1
  505. package/dist/lib/fs-helpers/readers/read-modes.d.ts +0 -5
  506. package/dist/lib/fs-helpers/readers/read-modes.d.ts.map +0 -1
  507. package/dist/lib/fs-helpers/readers/read-modes.js +0 -61
  508. package/dist/lib/fs-helpers/readers/read-modes.js.map +0 -1
  509. package/dist/lib/fs-helpers/readers/read-options.d.ts +0 -28
  510. package/dist/lib/fs-helpers/readers/read-options.d.ts.map +0 -1
  511. package/dist/lib/fs-helpers/readers/read-options.js +0 -21
  512. package/dist/lib/fs-helpers/readers/read-options.js.map +0 -1
  513. package/dist/lib/fs-helpers/readers/stream-lines.d.ts +0 -7
  514. package/dist/lib/fs-helpers/readers/stream-lines.d.ts.map +0 -1
  515. package/dist/lib/fs-helpers/readers/stream-lines.js +0 -61
  516. package/dist/lib/fs-helpers/readers/stream-lines.js.map +0 -1
  517. package/dist/lib/fs-helpers/readers/tail-file.d.ts +0 -3
  518. package/dist/lib/fs-helpers/readers/tail-file.d.ts.map +0 -1
  519. package/dist/lib/fs-helpers/readers/tail-file.js +0 -94
  520. package/dist/lib/fs-helpers/readers/tail-file.js.map +0 -1
  521. package/dist/lib/fs-helpers/readers/utf8.d.ts +0 -3
  522. package/dist/lib/fs-helpers/readers/utf8.d.ts.map +0 -1
  523. package/dist/lib/fs-helpers/readers/utf8.js +0 -33
  524. package/dist/lib/fs-helpers/readers/utf8.js.map +0 -1
  525. package/dist/lib/fs-helpers/readers.d.ts +0 -4
  526. package/dist/lib/fs-helpers/readers.d.ts.map +0 -1
  527. package/dist/lib/fs-helpers/readers.js +0 -4
  528. package/dist/lib/fs-helpers/readers.js.map +0 -1
  529. package/dist/lib/line-range.d.ts +0 -22
  530. package/dist/lib/line-range.d.ts.map +0 -1
  531. package/dist/lib/line-range.js +0 -54
  532. package/dist/lib/line-range.js.map +0 -1
  533. package/dist/lib/merge-defined.d.ts +0 -2
  534. package/dist/lib/merge-defined.d.ts.map +0 -1
  535. package/dist/lib/merge-defined.js +0 -8
  536. package/dist/lib/merge-defined.js.map +0 -1
  537. package/dist/lib/observability/diagnostics-helpers.d.ts +0 -3
  538. package/dist/lib/observability/diagnostics-helpers.d.ts.map +0 -1
  539. package/dist/lib/observability/diagnostics-helpers.js +0 -50
  540. package/dist/lib/observability/diagnostics-helpers.js.map +0 -1
  541. package/dist/lib/observability/diagnostics.d.ts +0 -15
  542. package/dist/lib/observability/diagnostics.d.ts.map +0 -1
  543. package/dist/lib/observability/diagnostics.js +0 -142
  544. package/dist/lib/observability/diagnostics.js.map +0 -1
  545. package/dist/lib/observability/perf.d.ts +0 -4
  546. package/dist/lib/observability/perf.d.ts.map +0 -1
  547. package/dist/lib/observability/perf.js +0 -8
  548. package/dist/lib/observability/perf.js.map +0 -1
  549. package/dist/lib/path-utils.d.ts +0 -3
  550. package/dist/lib/path-utils.d.ts.map +0 -1
  551. package/dist/lib/path-utils.js +0 -29
  552. package/dist/lib/path-utils.js.map +0 -1
  553. package/dist/lib/path-validation/allowed-directories.d.ts +0 -5
  554. package/dist/lib/path-validation/allowed-directories.d.ts.map +0 -1
  555. package/dist/lib/path-validation/allowed-directories.js +0 -68
  556. package/dist/lib/path-validation/allowed-directories.js.map +0 -1
  557. package/dist/lib/path-validation/errors.d.ts +0 -4
  558. package/dist/lib/path-validation/errors.d.ts.map +0 -1
  559. package/dist/lib/path-validation/errors.js +0 -47
  560. package/dist/lib/path-validation/errors.js.map +0 -1
  561. package/dist/lib/path-validation/path-errors.d.ts +0 -4
  562. package/dist/lib/path-validation/path-errors.d.ts.map +0 -1
  563. package/dist/lib/path-validation/path-errors.js +0 -51
  564. package/dist/lib/path-validation/path-errors.js.map +0 -1
  565. package/dist/lib/path-validation/path-rules.d.ts +0 -3
  566. package/dist/lib/path-validation/path-rules.d.ts.map +0 -1
  567. package/dist/lib/path-validation/path-rules.js +0 -88
  568. package/dist/lib/path-validation/path-rules.js.map +0 -1
  569. package/dist/lib/path-validation/roots.d.ts +0 -3
  570. package/dist/lib/path-validation/roots.d.ts.map +0 -1
  571. package/dist/lib/path-validation/roots.js +0 -56
  572. package/dist/lib/path-validation/roots.js.map +0 -1
  573. package/dist/lib/path-validation/validate-existing.d.ts +0 -10
  574. package/dist/lib/path-validation/validate-existing.d.ts.map +0 -1
  575. package/dist/lib/path-validation/validate-existing.js +0 -71
  576. package/dist/lib/path-validation/validate-existing.js.map +0 -1
  577. package/dist/lib/path-validation/validators.d.ts +0 -10
  578. package/dist/lib/path-validation/validators.d.ts.map +0 -1
  579. package/dist/lib/path-validation/validators.js +0 -113
  580. package/dist/lib/path-validation/validators.js.map +0 -1
  581. package/dist/lib/performance/monitor.d.ts +0 -25
  582. package/dist/lib/performance/monitor.d.ts.map +0 -1
  583. package/dist/lib/performance/monitor.js +0 -84
  584. package/dist/lib/performance/monitor.js.map +0 -1
  585. package/dist/lib/strict-stdio-transport.d.ts +0 -31
  586. package/dist/lib/strict-stdio-transport.d.ts.map +0 -1
  587. package/dist/lib/strict-stdio-transport.js +0 -158
  588. package/dist/lib/strict-stdio-transport.js.map +0 -1
  589. package/dist/schemas/common.d.ts +0 -14
  590. package/dist/schemas/common.d.ts.map +0 -1
  591. package/dist/schemas/common.js +0 -9
  592. package/dist/schemas/common.js.map +0 -1
  593. package/dist/schemas/error-schema.d.ts +0 -8
  594. package/dist/schemas/error-schema.d.ts.map +0 -1
  595. package/dist/schemas/error-schema.js +0 -8
  596. package/dist/schemas/error-schema.js.map +0 -1
  597. package/dist/schemas/file-type-schema.d.ts +0 -8
  598. package/dist/schemas/file-type-schema.d.ts.map +0 -1
  599. package/dist/schemas/file-type-schema.js +0 -3
  600. package/dist/schemas/file-type-schema.js.map +0 -1
  601. package/dist/schemas/index.d.ts +0 -3
  602. package/dist/schemas/index.d.ts.map +0 -1
  603. package/dist/schemas/index.js +0 -4
  604. package/dist/schemas/index.js.map +0 -1
  605. package/dist/schemas/input-helpers.d.ts +0 -38
  606. package/dist/schemas/input-helpers.d.ts.map +0 -1
  607. package/dist/schemas/input-helpers.js +0 -127
  608. package/dist/schemas/input-helpers.js.map +0 -1
  609. package/dist/schemas/inputs/checksums.d.ts +0 -8
  610. package/dist/schemas/inputs/checksums.d.ts.map +0 -1
  611. package/dist/schemas/inputs/checksums.js +0 -25
  612. package/dist/schemas/inputs/checksums.js.map +0 -1
  613. package/dist/schemas/inputs/directory.d.ts +0 -18
  614. package/dist/schemas/inputs/directory.d.ts.map +0 -1
  615. package/dist/schemas/inputs/directory.js +0 -70
  616. package/dist/schemas/inputs/directory.js.map +0 -1
  617. package/dist/schemas/inputs/file-info.d.ts +0 -8
  618. package/dist/schemas/inputs/file-info.d.ts.map +0 -1
  619. package/dist/schemas/inputs/file-info.js +0 -17
  620. package/dist/schemas/inputs/file-info.js.map +0 -1
  621. package/dist/schemas/inputs/helpers.d.ts +0 -2
  622. package/dist/schemas/inputs/helpers.d.ts.map +0 -1
  623. package/dist/schemas/inputs/helpers.js +0 -13
  624. package/dist/schemas/inputs/helpers.js.map +0 -1
  625. package/dist/schemas/inputs/read.d.ts +0 -10
  626. package/dist/schemas/inputs/read.d.ts.map +0 -1
  627. package/dist/schemas/inputs/read.js +0 -20
  628. package/dist/schemas/inputs/read.js.map +0 -1
  629. package/dist/schemas/inputs/roots.d.ts +0 -3
  630. package/dist/schemas/inputs/roots.d.ts.map +0 -1
  631. package/dist/schemas/inputs/roots.js +0 -5
  632. package/dist/schemas/inputs/roots.js.map +0 -1
  633. package/dist/schemas/inputs/safe-glob.d.ts +0 -2
  634. package/dist/schemas/inputs/safe-glob.d.ts.map +0 -1
  635. package/dist/schemas/inputs/safe-glob.js +0 -13
  636. package/dist/schemas/inputs/safe-glob.js.map +0 -1
  637. package/dist/schemas/inputs/search.d.ts +0 -26
  638. package/dist/schemas/inputs/search.d.ts.map +0 -1
  639. package/dist/schemas/inputs/search.js +0 -149
  640. package/dist/schemas/inputs/search.js.map +0 -1
  641. package/dist/schemas/inputs.d.ts +0 -6
  642. package/dist/schemas/inputs.d.ts.map +0 -1
  643. package/dist/schemas/inputs.js +0 -6
  644. package/dist/schemas/inputs.js.map +0 -1
  645. package/dist/schemas/line-range-schemas.d.ts +0 -3
  646. package/dist/schemas/line-range-schemas.d.ts.map +0 -1
  647. package/dist/schemas/line-range-schemas.js +0 -8
  648. package/dist/schemas/line-range-schemas.js.map +0 -1
  649. package/dist/schemas/output-helpers.d.ts +0 -25
  650. package/dist/schemas/output-helpers.d.ts.map +0 -1
  651. package/dist/schemas/output-helpers.js +0 -21
  652. package/dist/schemas/output-helpers.js.map +0 -1
  653. package/dist/schemas/outputs/checksums.d.ts +0 -93
  654. package/dist/schemas/outputs/checksums.d.ts.map +0 -1
  655. package/dist/schemas/outputs/checksums.js +0 -18
  656. package/dist/schemas/outputs/checksums.js.map +0 -1
  657. package/dist/schemas/outputs/directory.d.ts +0 -35
  658. package/dist/schemas/outputs/directory.d.ts.map +0 -1
  659. package/dist/schemas/outputs/directory.js +0 -24
  660. package/dist/schemas/outputs/directory.js.map +0 -1
  661. package/dist/schemas/outputs/file-info.d.ts +0 -65
  662. package/dist/schemas/outputs/file-info.d.ts.map +0 -1
  663. package/dist/schemas/outputs/file-info.js +0 -21
  664. package/dist/schemas/outputs/file-info.js.map +0 -1
  665. package/dist/schemas/outputs/read.d.ts +0 -35
  666. package/dist/schemas/outputs/read.d.ts.map +0 -1
  667. package/dist/schemas/outputs/read.js +0 -25
  668. package/dist/schemas/outputs/read.js.map +0 -1
  669. package/dist/schemas/outputs/search.d.ts +0 -36
  670. package/dist/schemas/outputs/search.d.ts.map +0 -1
  671. package/dist/schemas/outputs/search.js +0 -31
  672. package/dist/schemas/outputs/search.js.map +0 -1
  673. package/dist/schemas/outputs.d.ts +0 -5
  674. package/dist/schemas/outputs.d.ts.map +0 -1
  675. package/dist/schemas/outputs.js +0 -5
  676. package/dist/schemas/outputs.js.map +0 -1
  677. package/dist/server/cli.d.ts +0 -7
  678. package/dist/server/cli.d.ts.map +0 -1
  679. package/dist/server/cli.js +0 -81
  680. package/dist/server/cli.js.map +0 -1
  681. package/dist/server/roots.d.ts +0 -10
  682. package/dist/server/roots.d.ts.map +0 -1
  683. package/dist/server/roots.js +0 -130
  684. package/dist/server/roots.js.map +0 -1
  685. package/dist/tooling/tool-response.d.ts +0 -32
  686. package/dist/tooling/tool-response.d.ts.map +0 -1
  687. package/dist/tooling/tool-response.js +0 -63
  688. package/dist/tooling/tool-response.js.map +0 -1
  689. package/dist/tooling/tools-registry.d.ts +0 -5
  690. package/dist/tooling/tools-registry.d.ts.map +0 -1
  691. package/dist/tooling/tools-registry.js +0 -532
  692. package/dist/tooling/tools-registry.js.map +0 -1
  693. package/dist/tools/analyze-directory.d.ts +0 -3
  694. package/dist/tools/analyze-directory.d.ts.map +0 -1
  695. package/dist/tools/analyze-directory.js +0 -99
  696. package/dist/tools/analyze-directory.js.map +0 -1
  697. package/dist/tools/compute-checksums.d.ts +0 -3
  698. package/dist/tools/compute-checksums.d.ts.map +0 -1
  699. package/dist/tools/compute-checksums.js +0 -69
  700. package/dist/tools/compute-checksums.js.map +0 -1
  701. package/dist/tools/directory-tree.d.ts +0 -3
  702. package/dist/tools/directory-tree.d.ts.map +0 -1
  703. package/dist/tools/directory-tree.js +0 -82
  704. package/dist/tools/directory-tree.js.map +0 -1
  705. package/dist/tools/get-file-info.d.ts +0 -3
  706. package/dist/tools/get-file-info.d.ts.map +0 -1
  707. package/dist/tools/get-file-info.js +0 -50
  708. package/dist/tools/get-file-info.js.map +0 -1
  709. package/dist/tools/get-multiple-file-info.d.ts +0 -3
  710. package/dist/tools/get-multiple-file-info.d.ts.map +0 -1
  711. package/dist/tools/get-multiple-file-info.js +0 -75
  712. package/dist/tools/get-multiple-file-info.js.map +0 -1
  713. package/dist/tools/index.d.ts +0 -3
  714. package/dist/tools/index.d.ts.map +0 -1
  715. package/dist/tools/index.js +0 -19
  716. package/dist/tools/index.js.map +0 -1
  717. package/dist/tools/list-allowed-dirs.d.ts +0 -3
  718. package/dist/tools/list-allowed-dirs.d.ts.map +0 -1
  719. package/dist/tools/list-allowed-dirs.js +0 -41
  720. package/dist/tools/list-allowed-dirs.js.map +0 -1
  721. package/dist/tools/list-directory-formatting.d.ts +0 -5
  722. package/dist/tools/list-directory-formatting.d.ts.map +0 -1
  723. package/dist/tools/list-directory-formatting.js +0 -35
  724. package/dist/tools/list-directory-formatting.js.map +0 -1
  725. package/dist/tools/list-directory.d.ts +0 -3
  726. package/dist/tools/list-directory.d.ts.map +0 -1
  727. package/dist/tools/list-directory.js +0 -78
  728. package/dist/tools/list-directory.js.map +0 -1
  729. package/dist/tools/read-file.d.ts +0 -3
  730. package/dist/tools/read-file.d.ts.map +0 -1
  731. package/dist/tools/read-file.js +0 -57
  732. package/dist/tools/read-file.js.map +0 -1
  733. package/dist/tools/read-media-file.d.ts +0 -3
  734. package/dist/tools/read-media-file.d.ts.map +0 -1
  735. package/dist/tools/read-media-file.js +0 -52
  736. package/dist/tools/read-media-file.js.map +0 -1
  737. package/dist/tools/read-multiple-files.d.ts +0 -3
  738. package/dist/tools/read-multiple-files.d.ts.map +0 -1
  739. package/dist/tools/read-multiple-files.js +0 -74
  740. package/dist/tools/read-multiple-files.js.map +0 -1
  741. package/dist/tools/search-content.d.ts +0 -3
  742. package/dist/tools/search-content.d.ts.map +0 -1
  743. package/dist/tools/search-content.js +0 -76
  744. package/dist/tools/search-content.js.map +0 -1
  745. package/dist/tools/search-definitions.d.ts +0 -3
  746. package/dist/tools/search-definitions.d.ts.map +0 -1
  747. package/dist/tools/search-definitions.js +0 -133
  748. package/dist/tools/search-definitions.js.map +0 -1
  749. package/dist/tools/search-files.d.ts +0 -3
  750. package/dist/tools/search-files.d.ts.map +0 -1
  751. package/dist/tools/search-files.js +0 -71
  752. package/dist/tools/search-files.js.map +0 -1
  753. package/dist/tools/shared/abort.d.ts +0 -5
  754. package/dist/tools/shared/abort.d.ts.map +0 -1
  755. package/dist/tools/shared/abort.js +0 -41
  756. package/dist/tools/shared/abort.js.map +0 -1
  757. package/dist/tools/shared/file-info.d.ts +0 -19
  758. package/dist/tools/shared/file-info.d.ts.map +0 -1
  759. package/dist/tools/shared/file-info.js +0 -35
  760. package/dist/tools/shared/file-info.js.map +0 -1
  761. package/dist/tools/shared/formatting.d.ts +0 -18
  762. package/dist/tools/shared/formatting.d.ts.map +0 -1
  763. package/dist/tools/shared/formatting.js +0 -51
  764. package/dist/tools/shared/formatting.js.map +0 -1
  765. package/dist/tools/shared/read-range.d.ts +0 -7
  766. package/dist/tools/shared/read-range.d.ts.map +0 -1
  767. package/dist/tools/shared/read-range.js +0 -22
  768. package/dist/tools/shared/read-range.js.map +0 -1
  769. package/dist/tools/shared/resolve-path.d.ts +0 -2
  770. package/dist/tools/shared/resolve-path.d.ts.map +0 -1
  771. package/dist/tools/shared/resolve-path.js +0 -11
  772. package/dist/tools/shared/resolve-path.js.map +0 -1
  773. package/dist/tools/shared/search-formatting.d.ts +0 -8
  774. package/dist/tools/shared/search-formatting.d.ts.map +0 -1
  775. package/dist/tools/shared/search-formatting.js +0 -100
  776. package/dist/tools/shared/search-formatting.js.map +0 -1
  777. package/dist/tools/shared/with-timed-signal.d.ts +0 -2
  778. package/dist/tools/shared/with-timed-signal.d.ts.map +0 -1
  779. package/dist/tools/shared/with-timed-signal.js +0 -11
  780. package/dist/tools/shared/with-timed-signal.js.map +0 -1
  781. package/dist/tools/tool-response.d.ts +0 -31
  782. package/dist/tools/tool-response.d.ts.map +0 -1
  783. package/dist/tools/tool-response.js +0 -53
  784. package/dist/tools/tool-response.js.map +0 -1
@@ -1,475 +0,0 @@
1
- import * as fs from 'node:fs/promises';
2
- import * as os from 'node:os';
3
- import * as path from 'node:path';
4
- import { afterAll, beforeAll, describe, expect, it } from 'vitest';
5
- import { analyzeDirectory, getDirectoryTree, getFileInfo, listDirectory, readMediaFile, readMultipleFiles, searchContent, searchFiles, } from '../../lib/file-operations.js';
6
- import { normalizePath } from '../../lib/path-utils.js';
7
- import { setAllowedDirectories } from '../../lib/path-validation.js';
8
- describe('File Operations', () => {
9
- let testDir;
10
- beforeAll(async () => {
11
- // Create a temporary test directory with various files
12
- testDir = await fs.mkdtemp(path.join(os.tmpdir(), 'mcp-fileops-test-'));
13
- // Create test structure
14
- await fs.mkdir(path.join(testDir, 'src'));
15
- await fs.mkdir(path.join(testDir, 'docs'));
16
- await fs.mkdir(path.join(testDir, '.hidden'));
17
- // Create test files
18
- await fs.writeFile(path.join(testDir, 'README.md'), '# Test Project\nThis is a test.\n');
19
- await fs.writeFile(path.join(testDir, 'src', 'index.ts'), 'export const hello = "world";\n');
20
- await fs.writeFile(path.join(testDir, 'src', 'utils.ts'), 'export function add(a: number, b: number) { return a + b; }\n');
21
- await fs.writeFile(path.join(testDir, 'docs', 'guide.md'), '# Guide\nSome documentation.\n');
22
- await fs.writeFile(path.join(testDir, '.hidden', 'secret.txt'), 'hidden content');
23
- // Create a multi-line file for head/tail tests
24
- const lines = Array.from({ length: 100 }, (_, i) => `Line ${i + 1}`).join('\n');
25
- await fs.writeFile(path.join(testDir, 'multiline.txt'), lines);
26
- // Create a simple PNG-like binary file (just bytes, not a real image)
27
- const binaryData = Buffer.from([
28
- 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00,
29
- ]);
30
- await fs.writeFile(path.join(testDir, 'image.png'), binaryData);
31
- // Set allowed directories
32
- setAllowedDirectories([normalizePath(testDir)]);
33
- });
34
- afterAll(async () => {
35
- try {
36
- await fs.rm(testDir, { recursive: true, force: true });
37
- }
38
- catch {
39
- // Ignore cleanup errors
40
- }
41
- });
42
- describe('listDirectory', () => {
43
- it('should list directory contents', async () => {
44
- const result = await listDirectory(testDir);
45
- expect(result.entries.length).toBeGreaterThan(0);
46
- expect(result.summary.totalEntries).toBeGreaterThan(0);
47
- });
48
- it('should throw when path is a file', async () => {
49
- await expect(listDirectory(path.join(testDir, 'README.md'))).rejects.toThrow(/Not a directory/i);
50
- });
51
- it('should list recursively when specified', async () => {
52
- const result = await listDirectory(testDir, { recursive: true });
53
- expect(result.entries.some((e) => e.name === 'index.ts')).toBe(true);
54
- });
55
- it('should include hidden files when specified', async () => {
56
- const result = await listDirectory(testDir, { includeHidden: true });
57
- expect(result.entries.some((e) => e.name === '.hidden')).toBe(true);
58
- });
59
- it('should exclude hidden files by default', async () => {
60
- const result = await listDirectory(testDir, { includeHidden: false });
61
- expect(result.entries.some((e) => e.name === '.hidden')).toBe(false);
62
- });
63
- it('should respect maxEntries limit', async () => {
64
- const result = await listDirectory(testDir, { maxEntries: 2 });
65
- expect(result.entries.length).toBeLessThanOrEqual(2);
66
- expect(result.summary.truncated).toBe(true);
67
- });
68
- });
69
- describe('searchFiles', () => {
70
- it('should find files by glob pattern', async () => {
71
- const result = await searchFiles(testDir, '**/*.ts');
72
- expect(result.results.length).toBe(2);
73
- expect(result.results.some((r) => r.path.includes('index.ts'))).toBe(true);
74
- // Optional: validate modified is present on file results
75
- const first = result.results.find((r) => r.type === 'file');
76
- if (first) {
77
- expect(first.modified).toBeInstanceOf(Date);
78
- }
79
- });
80
- it('should find markdown files', async () => {
81
- const result = await searchFiles(testDir, '**/*.md');
82
- expect(result.results.length).toBe(2);
83
- });
84
- it('should return empty results for non-matching patterns', async () => {
85
- const result = await searchFiles(testDir, '**/*.xyz');
86
- expect(result.results.length).toBe(0);
87
- });
88
- it('should respect maxResults', async () => {
89
- const result = await searchFiles(testDir, '**/*', [], { maxResults: 1 });
90
- expect(result.results.length).toBeLessThanOrEqual(1);
91
- });
92
- });
93
- describe('readMultipleFiles', () => {
94
- it('should read multiple files in parallel', async () => {
95
- const paths = [
96
- path.join(testDir, 'README.md'),
97
- path.join(testDir, 'src', 'index.ts'),
98
- ];
99
- const results = await readMultipleFiles(paths);
100
- expect(results.length).toBe(2);
101
- expect(results.every((r) => r.content !== undefined)).toBe(true);
102
- });
103
- it('should handle individual file errors gracefully', async () => {
104
- const paths = [
105
- path.join(testDir, 'README.md'),
106
- path.join(testDir, 'non-existent.txt'),
107
- ];
108
- const results = await readMultipleFiles(paths);
109
- expect(results.length).toBe(2);
110
- expect(results[0]?.content).toBeDefined();
111
- expect(results[1]?.error).toBeDefined();
112
- });
113
- it('should not apply total size cap when only reading heads/tails', async () => {
114
- const big1 = path.join(testDir, 'big1.log');
115
- const big2 = path.join(testDir, 'big2.log');
116
- const largeContent = 'A'.repeat(50_000); // 50KB each
117
- await fs.writeFile(big1, largeContent);
118
- await fs.writeFile(big2, largeContent);
119
- const results = await readMultipleFiles([big1, big2], {
120
- head: 1,
121
- maxTotalSize: 10, // Would fail under old logic
122
- });
123
- expect(results.every((r) => r.content !== undefined)).toBe(true);
124
- await Promise.all([fs.rm(big1), fs.rm(big2)]).catch(() => { });
125
- });
126
- });
127
- describe('getFileInfo', () => {
128
- it('should return file metadata', async () => {
129
- const info = await getFileInfo(path.join(testDir, 'README.md'));
130
- expect(info.name).toBe('README.md');
131
- expect(info.type).toBe('file');
132
- expect(info.size).toBeGreaterThan(0);
133
- expect(info.created).toBeInstanceOf(Date);
134
- });
135
- it('should return directory metadata', async () => {
136
- const info = await getFileInfo(testDir);
137
- expect(info.type).toBe('directory');
138
- });
139
- });
140
- describe('searchContent', () => {
141
- it('should find content in files', async () => {
142
- const result = await searchContent(testDir, 'hello');
143
- expect(result.matches.length).toBeGreaterThan(0);
144
- expect(result.matches[0]?.file).toContain('index.ts');
145
- });
146
- it('should search case-insensitively by default', async () => {
147
- const result = await searchContent(testDir, 'HELLO');
148
- expect(result.matches.length).toBeGreaterThan(0);
149
- });
150
- it('should respect case sensitivity when specified', async () => {
151
- const result = await searchContent(testDir, 'HELLO', {
152
- caseSensitive: true,
153
- });
154
- expect(result.matches.length).toBe(0);
155
- });
156
- it('should enforce wholeWord when using literal search', async () => {
157
- const literalFile = path.join(testDir, 'literal.txt');
158
- await fs.writeFile(literalFile, 'concatenate cat scatter catapult cat\n');
159
- const result = await searchContent(testDir, 'cat', {
160
- isLiteral: true,
161
- wholeWord: true,
162
- filePattern: '**/*.txt',
163
- });
164
- expect(result.matches.length).toBe(1);
165
- expect(result.matches[0]?.matchCount).toBe(2);
166
- await fs.rm(literalFile).catch(() => { });
167
- });
168
- it('should skip binary files by default', async () => {
169
- const result = await searchContent(testDir, 'PNG');
170
- // Should not find matches in binary file
171
- expect(result.summary.skippedBinary).toBeGreaterThanOrEqual(0);
172
- });
173
- it('should respect file pattern filter', async () => {
174
- const result = await searchContent(testDir, 'export', {
175
- filePattern: '**/*.ts',
176
- });
177
- expect(result.matches.length).toBeGreaterThan(0);
178
- expect(result.matches.every((m) => m.file.endsWith('.ts'))).toBe(true);
179
- });
180
- it('should include hidden files when requested', async () => {
181
- const result = await searchContent(testDir, 'hidden', {
182
- includeHidden: true,
183
- filePattern: '**/*',
184
- isLiteral: true,
185
- });
186
- expect(result.matches.length).toBeGreaterThan(0);
187
- expect(result.matches.some((m) => m.file.includes(`.hidden${path.sep}`))).toBe(true);
188
- });
189
- it('should reject unsafe regex patterns (ReDoS protection)', async () => {
190
- // Classic ReDoS patterns detected by safe-regex2:
191
- // - Nested quantifiers like (a+)+
192
- // - Character class with nested quantifiers like ([a-zA-Z]+)*
193
- // - High repetition counts like (.*a){25}
194
- const unsafePatterns = [
195
- '(a+)+', // Nested quantifiers
196
- '([a-zA-Z]+)*', // Nested quantifiers with character class
197
- '(.*a){25}', // High repetition count
198
- ];
199
- for (const pattern of unsafePatterns) {
200
- await expect(searchContent(testDir, pattern)).rejects.toThrow(/ReDoS|unsafe/i);
201
- }
202
- });
203
- it('should accept safe regex patterns', async () => {
204
- // Safe patterns should work normally
205
- const safePatterns = ['hello', 'world\\d+', '[a-z]+', 'function\\s+\\w+'];
206
- for (const pattern of safePatterns) {
207
- // Should not throw
208
- const result = await searchContent(testDir, pattern, {
209
- filePattern: '**/*.ts',
210
- });
211
- expect(result).toBeDefined();
212
- }
213
- });
214
- });
215
- describe('analyzeDirectory', () => {
216
- it('should analyze directory structure', async () => {
217
- const result = await analyzeDirectory(testDir);
218
- expect(result.analysis.totalFiles).toBeGreaterThan(0);
219
- expect(result.analysis.totalDirectories).toBeGreaterThan(0);
220
- expect(result.analysis.totalSize).toBeGreaterThan(0);
221
- });
222
- it('should respect maxEntries and mark truncated', async () => {
223
- const result = await analyzeDirectory(testDir, { maxEntries: 1 });
224
- expect(result.summary.truncated).toBe(true);
225
- expect(result.analysis.totalFiles + result.analysis.totalDirectories).toBeLessThanOrEqual(1);
226
- });
227
- it('should list file types', async () => {
228
- const result = await analyzeDirectory(testDir);
229
- expect(Object.keys(result.analysis.fileTypes).length).toBeGreaterThan(0);
230
- });
231
- it('should track largest files', async () => {
232
- const result = await analyzeDirectory(testDir, { topN: 5 });
233
- expect(result.analysis.largestFiles.length).toBeLessThanOrEqual(5);
234
- });
235
- it('should throw when path is a file', async () => {
236
- await expect(analyzeDirectory(path.join(testDir, 'README.md'))).rejects.toThrow(/Not a directory/i);
237
- });
238
- });
239
- describe('getDirectoryTree', () => {
240
- it('should return tree structure', async () => {
241
- const result = await getDirectoryTree(testDir);
242
- expect(result.tree.type).toBe('directory');
243
- expect(result.tree.children).toBeDefined();
244
- expect(result.tree.children?.length).toBeGreaterThan(0);
245
- });
246
- it('should respect maxDepth', async () => {
247
- const result = await getDirectoryTree(testDir, { maxDepth: 1 });
248
- expect(result.summary.maxDepthReached).toBeLessThanOrEqual(1);
249
- });
250
- it('should exclude patterns', async () => {
251
- const result = await getDirectoryTree(testDir, {
252
- excludePatterns: ['docs'],
253
- });
254
- const hasDocsDir = result.tree.children?.some((c) => c.name === 'docs');
255
- expect(hasDocsDir).toBe(false);
256
- });
257
- it('should include sizes when specified', async () => {
258
- const result = await getDirectoryTree(testDir, { includeSize: true });
259
- const fileEntry = result.tree.children?.find((c) => c.type === 'file');
260
- expect(fileEntry?.size).toBeDefined();
261
- });
262
- it('should not traverse symlinks that escape allowed directories', async () => {
263
- const outsideDir = await fs.mkdtemp(path.join(os.tmpdir(), 'mcp-outside-'));
264
- const outsideFile = path.join(outsideDir, 'outside.txt');
265
- await fs.writeFile(outsideFile, 'outside');
266
- const linkPath = path.join(testDir, 'escape');
267
- const linkType = process.platform === 'win32' ? 'junction' : 'dir';
268
- let createdLink = false;
269
- try {
270
- // Symlink creation can fail on some Windows setups without admin/dev mode.
271
- // If creation fails, we treat this as a no-op environment limitation.
272
- await fs.symlink(outsideDir, linkPath, linkType);
273
- createdLink = true;
274
- const result = await getDirectoryTree(testDir, { maxDepth: 3 });
275
- // The symlink/junction itself should not appear in the tree (we skip symlinks).
276
- const childNames = (result.tree.children ?? []).map((c) => c.name);
277
- expect(childNames.includes('escape')).toBe(false);
278
- // And we must not traverse into the outside directory.
279
- const containsName = (entry, name) => {
280
- if (entry.name === name)
281
- return true;
282
- const { children } = entry;
283
- if (!children || !Array.isArray(children))
284
- return false;
285
- for (const child of children) {
286
- if (child &&
287
- typeof child === 'object' &&
288
- containsName(child, name)) {
289
- return true;
290
- }
291
- }
292
- return false;
293
- };
294
- expect(containsName(result.tree, 'outside.txt')).toBe(false);
295
- expect(result.summary.symlinksNotFollowed).toBeGreaterThanOrEqual(1);
296
- }
297
- catch {
298
- // Skip assertion when symlink creation isn't permitted in the environment.
299
- expect(createdLink).toBe(false);
300
- }
301
- finally {
302
- try {
303
- await fs.rm(linkPath, { recursive: true, force: true });
304
- }
305
- catch {
306
- // ignore cleanup errors
307
- }
308
- try {
309
- await fs.rm(outsideDir, { recursive: true, force: true });
310
- }
311
- catch {
312
- // ignore cleanup errors
313
- }
314
- }
315
- });
316
- });
317
- describe('readMediaFile', () => {
318
- it('should read binary file as base64', async () => {
319
- const result = await readMediaFile(path.join(testDir, 'image.png'));
320
- expect(result.mimeType).toBe('image/png');
321
- expect(result.data).toBeTruthy();
322
- expect(result.size).toBeGreaterThan(0);
323
- });
324
- it('should return correct MIME type for markdown files', async () => {
325
- const result = await readMediaFile(path.join(testDir, 'README.md'));
326
- expect(result.mimeType).toBe('text/markdown');
327
- expect(result.data).toBeTruthy();
328
- expect(result.size).toBeGreaterThan(0);
329
- });
330
- it('should reject files too large', async () => {
331
- await expect(readMediaFile(path.join(testDir, 'image.png'), { maxSize: 1 })).rejects.toThrow('too large');
332
- });
333
- });
334
- describe('Edge Cases and Input Validation', () => {
335
- describe('searchContent edge cases', () => {
336
- it('should handle empty search results gracefully', async () => {
337
- const result = await searchContent(testDir, 'xyznonexistent123', {
338
- filePattern: '**/*.ts',
339
- });
340
- expect(result.matches.length).toBe(0);
341
- expect(result.summary.filesMatched).toBe(0);
342
- });
343
- it('should handle special regex characters safely', async () => {
344
- // These are valid regex patterns with special chars
345
- const result = await searchContent(testDir, 'hello\\.world', {
346
- filePattern: '**/*.ts',
347
- });
348
- expect(result).toBeDefined();
349
- });
350
- it('should throw on invalid regex syntax', async () => {
351
- // Pattern that passes safe-regex2 but fails RegExp compilation
352
- // Using an invalid backreference that's syntactically incorrect
353
- await expect(searchContent(testDir, '(?')).rejects.toThrow(/Invalid regular expression|ReDoS/i);
354
- });
355
- it('should respect maxResults limit', async () => {
356
- const result = await searchContent(testDir, '\\w+', {
357
- filePattern: '**/*.ts',
358
- maxResults: 1,
359
- });
360
- expect(result.matches.length).toBeLessThanOrEqual(1);
361
- if (result.matches.length === 1) {
362
- expect(result.summary.truncated).toBe(true);
363
- }
364
- });
365
- it('should respect maxFilesScanned limit', async () => {
366
- const result = await searchContent(testDir, 'export', {
367
- filePattern: '**/*',
368
- maxFilesScanned: 1,
369
- });
370
- expect(result.summary.filesScanned).toBeLessThanOrEqual(1);
371
- });
372
- it('should handle timeout correctly', async () => {
373
- // Very short timeout should trigger timeout behavior
374
- const result = await searchContent(testDir, 'export', {
375
- filePattern: '**/*',
376
- timeoutMs: 1, // 1ms timeout
377
- });
378
- // Either completes quickly or times out
379
- expect(result).toBeDefined();
380
- });
381
- it('should stop early when maxResults is 0 (edge case)', async () => {
382
- const result = await searchContent(testDir, 'Line', { maxResults: 0 });
383
- expect(result.summary.truncated).toBe(true);
384
- expect(result.summary.stoppedReason).toBe('maxResults');
385
- });
386
- it('should match literal strings when isLiteral=true', async () => {
387
- const result = await searchContent(testDir, 'Test.*Project', {
388
- isLiteral: true,
389
- filePattern: '**/*.md',
390
- });
391
- // When literal, "Test.*Project" should NOT match "Test Project"
392
- expect(result.matches.length).toBe(0);
393
- });
394
- });
395
- describe('listDirectory edge cases', () => {
396
- it('should handle maxDepth=0', async () => {
397
- const result = await listDirectory(testDir, {
398
- recursive: true,
399
- maxDepth: 0,
400
- });
401
- // Should only list immediate children, not recurse
402
- expect(result.summary.maxDepthReached).toBe(0);
403
- });
404
- it('should handle empty directory', async () => {
405
- const emptyDir = path.join(testDir, 'empty-dir');
406
- await fs.mkdir(emptyDir, { recursive: true });
407
- const result = await listDirectory(emptyDir);
408
- expect(result.entries.length).toBe(0);
409
- await fs.rm(emptyDir, { recursive: true });
410
- });
411
- });
412
- describe('searchFiles edge cases', () => {
413
- it('should handle complex glob patterns', async () => {
414
- const result = await searchFiles(testDir, '**/*.{ts,md}');
415
- expect(result.results.length).toBeGreaterThan(0);
416
- });
417
- it('should handle negation in exclude patterns', async () => {
418
- const result = await searchFiles(testDir, '**/*', ['**/docs/**']);
419
- // Should not include files from docs directory
420
- expect(result.results.every((r) => !r.path.includes('docs'))).toBe(true);
421
- });
422
- });
423
- describe('getDirectoryTree edge cases', () => {
424
- it('should handle very deep nesting with truncation', async () => {
425
- const result = await getDirectoryTree(testDir, { maxDepth: 0 });
426
- expect(result.summary.truncated).toBe(true);
427
- });
428
- it('should sort entries correctly (directories first)', async () => {
429
- const result = await getDirectoryTree(testDir);
430
- const children = result.tree.children ?? [];
431
- const dirs = children.filter((c) => c.type === 'directory');
432
- const files = children.filter((c) => c.type === 'file');
433
- if (dirs.length > 0 && files.length > 0) {
434
- // Find first file index and last dir index
435
- const firstFileIdx = children.findIndex((c) => c.type === 'file');
436
- const lastDirIdx = children
437
- .map((c, i) => ({ c, i }))
438
- .filter(({ c }) => c.type === 'directory')
439
- .pop()?.i;
440
- if (lastDirIdx !== undefined) {
441
- expect(lastDirIdx).toBeLessThan(firstFileIdx);
442
- }
443
- }
444
- });
445
- });
446
- describe('analyzeDirectory edge cases', () => {
447
- it('should handle topN=1', async () => {
448
- const result = await analyzeDirectory(testDir, { topN: 1 });
449
- expect(result.analysis.largestFiles.length).toBeLessThanOrEqual(1);
450
- expect(result.analysis.recentlyModified.length).toBeLessThanOrEqual(1);
451
- });
452
- it('should correctly count file types', async () => {
453
- const result = await analyzeDirectory(testDir);
454
- expect(result.analysis.fileTypes['.ts']).toBe(2);
455
- expect(result.analysis.fileTypes['.md']).toBe(2);
456
- });
457
- });
458
- describe('readMultipleFiles edge cases', () => {
459
- it('should handle empty array', async () => {
460
- const results = await readMultipleFiles([]);
461
- expect(results.length).toBe(0);
462
- });
463
- it('should handle all files failing', async () => {
464
- const paths = [
465
- path.join(testDir, 'nonexistent1.txt'),
466
- path.join(testDir, 'nonexistent2.txt'),
467
- ];
468
- const results = await readMultipleFiles(paths);
469
- expect(results.length).toBe(2);
470
- expect(results.every((r) => r.error !== undefined)).toBe(true);
471
- });
472
- });
473
- });
474
- });
475
- //# sourceMappingURL=file-operations.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-operations.test.js","sourceRoot":"","sources":["../../../src/__tests__/lib/file-operations.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- interface FileOpsFixture {
2
- testDir: string;
3
- }
4
- export declare function acquireFileOpsFixture(): Promise<FileOpsFixture>;
5
- export declare function releaseFileOpsFixture(): Promise<void>;
6
- export {};
7
- //# sourceMappingURL=file-ops-fixture.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-ops-fixture.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/lib/fixtures/file-ops-fixture.ts"],"names":[],"mappings":"AAOA,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AA+FD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC,CAKrE;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ3D"}
@@ -1,87 +0,0 @@
1
- import * as fs from 'node:fs/promises';
2
- import * as os from 'node:os';
3
- import * as path from 'node:path';
4
- import { normalizePath } from '../../../lib/path-utils.js';
5
- import { setAllowedDirectories } from '../../../lib/path-validation.js';
6
- const TEST_DIR_PREFIX = 'mcp-fileops-test-';
7
- async function createBaseDir() {
8
- return await fs.mkdtemp(path.join(os.tmpdir(), TEST_DIR_PREFIX));
9
- }
10
- async function createDirectories(base) {
11
- await Promise.all([
12
- fs.mkdir(path.join(base, 'src')),
13
- fs.mkdir(path.join(base, 'docs')),
14
- fs.mkdir(path.join(base, '.hidden')),
15
- ]);
16
- }
17
- async function writeReadme(base) {
18
- await fs.writeFile(path.join(base, 'README.md'), '# Test Project\nThis is a test.\n');
19
- }
20
- async function writeSourceFiles(base) {
21
- await Promise.all([
22
- fs.writeFile(path.join(base, 'src', 'index.ts'), 'export const hello = "world";\n'),
23
- fs.writeFile(path.join(base, 'src', 'utils.ts'), 'export function add(a: number, b: number) { return a + b; }\n'),
24
- ]);
25
- }
26
- async function writeDocs(base) {
27
- await fs.writeFile(path.join(base, 'docs', 'guide.md'), '# Guide\nSome documentation.\n');
28
- }
29
- async function writeHidden(base) {
30
- await fs.writeFile(path.join(base, '.hidden', 'secret.txt'), 'hidden content');
31
- }
32
- async function writeMultiline(base) {
33
- const lines = Array.from({ length: 100 }, (_, i) => `Line ${i + 1}`).join('\n');
34
- await fs.writeFile(path.join(base, 'multiline.txt'), lines);
35
- }
36
- async function writeBinary(base) {
37
- const binaryData = Buffer.from([
38
- 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00,
39
- ]);
40
- await fs.writeFile(path.join(base, 'image.png'), binaryData);
41
- }
42
- async function populateTestDir(base) {
43
- await Promise.all([
44
- writeReadme(base),
45
- writeSourceFiles(base),
46
- writeDocs(base),
47
- writeHidden(base),
48
- writeMultiline(base),
49
- writeBinary(base),
50
- ]);
51
- }
52
- async function createFixture() {
53
- const testDir = await createBaseDir();
54
- await createDirectories(testDir);
55
- await populateTestDir(testDir);
56
- setAllowedDirectories([normalizePath(testDir)]);
57
- return { testDir };
58
- }
59
- async function cleanupFixture(testDir) {
60
- try {
61
- await fs.rm(testDir, { recursive: true, force: true });
62
- }
63
- catch {
64
- // ignore cleanup errors
65
- }
66
- }
67
- let activeUsers = 0;
68
- let fixturePromise = null;
69
- let sharedFixture = null;
70
- export async function acquireFileOpsFixture() {
71
- activeUsers += 1;
72
- fixturePromise ??= createFixture();
73
- sharedFixture = await fixturePromise;
74
- return sharedFixture;
75
- }
76
- export async function releaseFileOpsFixture() {
77
- if (activeUsers === 0)
78
- return;
79
- activeUsers -= 1;
80
- if (activeUsers !== 0 || !sharedFixture)
81
- return;
82
- const { testDir } = sharedFixture;
83
- sharedFixture = null;
84
- fixturePromise = null;
85
- await cleanupFixture(testDir);
86
- }
87
- //# sourceMappingURL=file-ops-fixture.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-ops-fixture.js","sourceRoot":"","sources":["../../../../src/__tests__/lib/fixtures/file-ops-fixture.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function useFileOpsFixture(): () => string;
2
- //# sourceMappingURL=file-ops-hooks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-ops-hooks.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/lib/fixtures/file-ops-hooks.ts"],"names":[],"mappings":"AAOA,wBAAgB,iBAAiB,IAAI,MAAM,MAAM,CAShD"}
@@ -1,13 +0,0 @@
1
- import { afterAll, beforeAll } from 'vitest';
2
- import { acquireFileOpsFixture, releaseFileOpsFixture, } from './file-ops-fixture.js';
3
- export function useFileOpsFixture() {
4
- let testDir = '';
5
- beforeAll(async () => {
6
- ({ testDir } = await acquireFileOpsFixture());
7
- });
8
- afterAll(async () => {
9
- await releaseFileOpsFixture();
10
- });
11
- return () => testDir;
12
- }
13
- //# sourceMappingURL=file-ops-hooks.js.map