@hazeljs/rag 0.2.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/LICENSE +192 -0
  2. package/README.md +504 -0
  3. package/dist/__tests__/graph/community-detector.test.d.ts +2 -0
  4. package/dist/__tests__/graph/community-detector.test.d.ts.map +1 -0
  5. package/dist/__tests__/graph/community-detector.test.js +87 -0
  6. package/dist/__tests__/graph/community-detector.test.js.map +1 -0
  7. package/dist/__tests__/graph/community-summarizer.test.d.ts +2 -0
  8. package/dist/__tests__/graph/community-summarizer.test.d.ts.map +1 -0
  9. package/dist/__tests__/graph/community-summarizer.test.js +131 -0
  10. package/dist/__tests__/graph/community-summarizer.test.js.map +1 -0
  11. package/dist/__tests__/graph/entity-extractor.test.d.ts +2 -0
  12. package/dist/__tests__/graph/entity-extractor.test.d.ts.map +1 -0
  13. package/dist/__tests__/graph/entity-extractor.test.js +129 -0
  14. package/dist/__tests__/graph/entity-extractor.test.js.map +1 -0
  15. package/dist/__tests__/graph/graph-rag-pipeline.test.d.ts +2 -0
  16. package/dist/__tests__/graph/graph-rag-pipeline.test.d.ts.map +1 -0
  17. package/dist/__tests__/graph/graph-rag-pipeline.test.js +158 -0
  18. package/dist/__tests__/graph/graph-rag-pipeline.test.js.map +1 -0
  19. package/dist/__tests__/graph/knowledge-graph.test.d.ts +2 -0
  20. package/dist/__tests__/graph/knowledge-graph.test.d.ts.map +1 -0
  21. package/dist/__tests__/graph/knowledge-graph.test.js +208 -0
  22. package/dist/__tests__/graph/knowledge-graph.test.js.map +1 -0
  23. package/dist/__tests__/loaders/base.loader.test.d.ts +2 -0
  24. package/dist/__tests__/loaders/base.loader.test.d.ts.map +1 -0
  25. package/dist/__tests__/loaders/base.loader.test.js +114 -0
  26. package/dist/__tests__/loaders/base.loader.test.js.map +1 -0
  27. package/dist/__tests__/loaders/csv-file.loader.test.d.ts +2 -0
  28. package/dist/__tests__/loaders/csv-file.loader.test.d.ts.map +1 -0
  29. package/dist/__tests__/loaders/csv-file.loader.test.js +98 -0
  30. package/dist/__tests__/loaders/csv-file.loader.test.js.map +1 -0
  31. package/dist/__tests__/loaders/directory.loader.test.d.ts +2 -0
  32. package/dist/__tests__/loaders/directory.loader.test.d.ts.map +1 -0
  33. package/dist/__tests__/loaders/directory.loader.test.js +154 -0
  34. package/dist/__tests__/loaders/directory.loader.test.js.map +1 -0
  35. package/dist/__tests__/loaders/html-file.loader.test.d.ts +2 -0
  36. package/dist/__tests__/loaders/html-file.loader.test.d.ts.map +1 -0
  37. package/dist/__tests__/loaders/html-file.loader.test.js +93 -0
  38. package/dist/__tests__/loaders/html-file.loader.test.js.map +1 -0
  39. package/dist/__tests__/loaders/json-file.loader.test.d.ts +2 -0
  40. package/dist/__tests__/loaders/json-file.loader.test.d.ts.map +1 -0
  41. package/dist/__tests__/loaders/json-file.loader.test.js +84 -0
  42. package/dist/__tests__/loaders/json-file.loader.test.js.map +1 -0
  43. package/dist/__tests__/loaders/markdown-file.loader.test.d.ts +2 -0
  44. package/dist/__tests__/loaders/markdown-file.loader.test.d.ts.map +1 -0
  45. package/dist/__tests__/loaders/markdown-file.loader.test.js +83 -0
  46. package/dist/__tests__/loaders/markdown-file.loader.test.js.map +1 -0
  47. package/dist/__tests__/loaders/text-file.loader.test.d.ts +2 -0
  48. package/dist/__tests__/loaders/text-file.loader.test.d.ts.map +1 -0
  49. package/dist/__tests__/loaders/text-file.loader.test.js +50 -0
  50. package/dist/__tests__/loaders/text-file.loader.test.js.map +1 -0
  51. package/dist/__tests__/rag-pipeline.test.d.ts +2 -0
  52. package/dist/__tests__/rag-pipeline.test.d.ts.map +1 -0
  53. package/dist/__tests__/rag-pipeline.test.js +210 -0
  54. package/dist/__tests__/rag-pipeline.test.js.map +1 -0
  55. package/dist/__tests__/retrieval/bm25.test.d.ts +2 -0
  56. package/dist/__tests__/retrieval/bm25.test.d.ts.map +1 -0
  57. package/dist/__tests__/retrieval/bm25.test.js +86 -0
  58. package/dist/__tests__/retrieval/bm25.test.js.map +1 -0
  59. package/dist/__tests__/retrieval/hybrid-search.test.d.ts +2 -0
  60. package/dist/__tests__/retrieval/hybrid-search.test.d.ts.map +1 -0
  61. package/dist/__tests__/retrieval/hybrid-search.test.js +85 -0
  62. package/dist/__tests__/retrieval/hybrid-search.test.js.map +1 -0
  63. package/dist/__tests__/retrieval/multi-query.test.d.ts +2 -0
  64. package/dist/__tests__/retrieval/multi-query.test.d.ts.map +1 -0
  65. package/dist/__tests__/retrieval/multi-query.test.js +90 -0
  66. package/dist/__tests__/retrieval/multi-query.test.js.map +1 -0
  67. package/dist/__tests__/text-splitters/recursive-text-splitter.test.d.ts +2 -0
  68. package/dist/__tests__/text-splitters/recursive-text-splitter.test.d.ts.map +1 -0
  69. package/dist/__tests__/text-splitters/recursive-text-splitter.test.js +97 -0
  70. package/dist/__tests__/text-splitters/recursive-text-splitter.test.js.map +1 -0
  71. package/dist/__tests__/utils/similarity.test.d.ts +2 -0
  72. package/dist/__tests__/utils/similarity.test.d.ts.map +1 -0
  73. package/dist/__tests__/utils/similarity.test.js +47 -0
  74. package/dist/__tests__/utils/similarity.test.js.map +1 -0
  75. package/dist/agentic/agentic-rag.service.d.ts +49 -0
  76. package/dist/agentic/agentic-rag.service.d.ts.map +1 -0
  77. package/dist/agentic/agentic-rag.service.js +149 -0
  78. package/dist/agentic/agentic-rag.service.js.map +1 -0
  79. package/dist/agentic/decorators/active-learning.decorator.d.ts +19 -0
  80. package/dist/agentic/decorators/active-learning.decorator.d.ts.map +1 -0
  81. package/dist/agentic/decorators/active-learning.decorator.js +98 -0
  82. package/dist/agentic/decorators/active-learning.decorator.js.map +1 -0
  83. package/dist/agentic/decorators/adaptive-retrieval.decorator.d.ts +17 -0
  84. package/dist/agentic/decorators/adaptive-retrieval.decorator.d.ts.map +1 -0
  85. package/dist/agentic/decorators/adaptive-retrieval.decorator.js +103 -0
  86. package/dist/agentic/decorators/adaptive-retrieval.decorator.js.map +1 -0
  87. package/dist/agentic/decorators/cached.decorator.d.ts +18 -0
  88. package/dist/agentic/decorators/cached.decorator.d.ts.map +1 -0
  89. package/dist/agentic/decorators/cached.decorator.js +93 -0
  90. package/dist/agentic/decorators/cached.decorator.js.map +1 -0
  91. package/dist/agentic/decorators/context-aware.decorator.d.ts +16 -0
  92. package/dist/agentic/decorators/context-aware.decorator.d.ts.map +1 -0
  93. package/dist/agentic/decorators/context-aware.decorator.js +169 -0
  94. package/dist/agentic/decorators/context-aware.decorator.js.map +1 -0
  95. package/dist/agentic/decorators/corrective-rag.decorator.d.ts +16 -0
  96. package/dist/agentic/decorators/corrective-rag.decorator.d.ts.map +1 -0
  97. package/dist/agentic/decorators/corrective-rag.decorator.js +142 -0
  98. package/dist/agentic/decorators/corrective-rag.decorator.js.map +1 -0
  99. package/dist/agentic/decorators/hyde.decorator.d.ts +15 -0
  100. package/dist/agentic/decorators/hyde.decorator.d.ts.map +1 -0
  101. package/dist/agentic/decorators/hyde.decorator.js +91 -0
  102. package/dist/agentic/decorators/hyde.decorator.js.map +1 -0
  103. package/dist/agentic/decorators/index.d.ts +16 -0
  104. package/dist/agentic/decorators/index.d.ts.map +1 -0
  105. package/dist/agentic/decorators/index.js +32 -0
  106. package/dist/agentic/decorators/index.js.map +1 -0
  107. package/dist/agentic/decorators/multi-hop.decorator.d.ts +15 -0
  108. package/dist/agentic/decorators/multi-hop.decorator.d.ts.map +1 -0
  109. package/dist/agentic/decorators/multi-hop.decorator.js +109 -0
  110. package/dist/agentic/decorators/multi-hop.decorator.js.map +1 -0
  111. package/dist/agentic/decorators/query-planner.decorator.d.ts +20 -0
  112. package/dist/agentic/decorators/query-planner.decorator.d.ts.map +1 -0
  113. package/dist/agentic/decorators/query-planner.decorator.js +213 -0
  114. package/dist/agentic/decorators/query-planner.decorator.js.map +1 -0
  115. package/dist/agentic/decorators/query-rewriter.decorator.d.ts +16 -0
  116. package/dist/agentic/decorators/query-rewriter.decorator.d.ts.map +1 -0
  117. package/dist/agentic/decorators/query-rewriter.decorator.js +143 -0
  118. package/dist/agentic/decorators/query-rewriter.decorator.js.map +1 -0
  119. package/dist/agentic/decorators/self-reflective.decorator.d.ts +20 -0
  120. package/dist/agentic/decorators/self-reflective.decorator.d.ts.map +1 -0
  121. package/dist/agentic/decorators/self-reflective.decorator.js +189 -0
  122. package/dist/agentic/decorators/self-reflective.decorator.js.map +1 -0
  123. package/dist/agentic/decorators/source-verification.decorator.d.ts +15 -0
  124. package/dist/agentic/decorators/source-verification.decorator.d.ts.map +1 -0
  125. package/dist/agentic/decorators/source-verification.decorator.js +121 -0
  126. package/dist/agentic/decorators/source-verification.decorator.js.map +1 -0
  127. package/dist/agentic/index.d.ts +9 -0
  128. package/dist/agentic/index.d.ts.map +1 -0
  129. package/dist/agentic/index.js +25 -0
  130. package/dist/agentic/index.js.map +1 -0
  131. package/dist/agentic/types.d.ts +210 -0
  132. package/dist/agentic/types.d.ts.map +1 -0
  133. package/dist/agentic/types.js +7 -0
  134. package/dist/agentic/types.js.map +1 -0
  135. package/dist/decorators/embeddable.decorator.d.ts +31 -0
  136. package/dist/decorators/embeddable.decorator.d.ts.map +1 -0
  137. package/dist/decorators/embeddable.decorator.js +44 -0
  138. package/dist/decorators/embeddable.decorator.js.map +1 -0
  139. package/dist/decorators/rag.decorator.d.ts +58 -0
  140. package/dist/decorators/rag.decorator.d.ts.map +1 -0
  141. package/dist/decorators/rag.decorator.js +78 -0
  142. package/dist/decorators/rag.decorator.js.map +1 -0
  143. package/dist/decorators/semantic-search.decorator.d.ts +69 -0
  144. package/dist/decorators/semantic-search.decorator.d.ts.map +1 -0
  145. package/dist/decorators/semantic-search.decorator.js +116 -0
  146. package/dist/decorators/semantic-search.decorator.js.map +1 -0
  147. package/dist/embeddings/cohere-embeddings.d.ts +33 -0
  148. package/dist/embeddings/cohere-embeddings.d.ts.map +1 -0
  149. package/dist/embeddings/cohere-embeddings.js +91 -0
  150. package/dist/embeddings/cohere-embeddings.js.map +1 -0
  151. package/dist/embeddings/openai-embeddings.d.ts +21 -0
  152. package/dist/embeddings/openai-embeddings.d.ts.map +1 -0
  153. package/dist/embeddings/openai-embeddings.js +53 -0
  154. package/dist/embeddings/openai-embeddings.js.map +1 -0
  155. package/dist/graph/community-detector.d.ts +45 -0
  156. package/dist/graph/community-detector.d.ts.map +1 -0
  157. package/dist/graph/community-detector.js +153 -0
  158. package/dist/graph/community-detector.js.map +1 -0
  159. package/dist/graph/community-summarizer.d.ts +41 -0
  160. package/dist/graph/community-summarizer.d.ts.map +1 -0
  161. package/dist/graph/community-summarizer.js +119 -0
  162. package/dist/graph/community-summarizer.js.map +1 -0
  163. package/dist/graph/entity-extractor.d.ts +47 -0
  164. package/dist/graph/entity-extractor.d.ts.map +1 -0
  165. package/dist/graph/entity-extractor.js +224 -0
  166. package/dist/graph/entity-extractor.js.map +1 -0
  167. package/dist/graph/graph-rag-pipeline.d.ts +83 -0
  168. package/dist/graph/graph-rag-pipeline.d.ts.map +1 -0
  169. package/dist/graph/graph-rag-pipeline.js +390 -0
  170. package/dist/graph/graph-rag-pipeline.js.map +1 -0
  171. package/dist/graph/graph.types.d.ts +186 -0
  172. package/dist/graph/graph.types.d.ts.map +1 -0
  173. package/dist/graph/graph.types.js +20 -0
  174. package/dist/graph/graph.types.js.map +1 -0
  175. package/dist/graph/index.d.ts +15 -0
  176. package/dist/graph/index.d.ts.map +1 -0
  177. package/dist/graph/index.js +31 -0
  178. package/dist/graph/index.js.map +1 -0
  179. package/dist/graph/knowledge-graph.d.ts +57 -0
  180. package/dist/graph/knowledge-graph.d.ts.map +1 -0
  181. package/dist/graph/knowledge-graph.js +198 -0
  182. package/dist/graph/knowledge-graph.js.map +1 -0
  183. package/dist/index.d.ts +29 -0
  184. package/dist/index.d.ts.map +1 -0
  185. package/dist/index.js +58 -0
  186. package/dist/index.js.map +1 -0
  187. package/dist/loaders/base.loader.d.ts +108 -0
  188. package/dist/loaders/base.loader.d.ts.map +1 -0
  189. package/dist/loaders/base.loader.js +123 -0
  190. package/dist/loaders/base.loader.js.map +1 -0
  191. package/dist/loaders/csv-file.loader.d.ts +61 -0
  192. package/dist/loaders/csv-file.loader.d.ts.map +1 -0
  193. package/dist/loaders/csv-file.loader.js +162 -0
  194. package/dist/loaders/csv-file.loader.js.map +1 -0
  195. package/dist/loaders/directory.loader.d.ts +67 -0
  196. package/dist/loaders/directory.loader.d.ts.map +1 -0
  197. package/dist/loaders/directory.loader.js +163 -0
  198. package/dist/loaders/directory.loader.js.map +1 -0
  199. package/dist/loaders/docx.loader.d.ts +52 -0
  200. package/dist/loaders/docx.loader.d.ts.map +1 -0
  201. package/dist/loaders/docx.loader.js +110 -0
  202. package/dist/loaders/docx.loader.js.map +1 -0
  203. package/dist/loaders/github.loader.d.ts +114 -0
  204. package/dist/loaders/github.loader.d.ts.map +1 -0
  205. package/dist/loaders/github.loader.js +217 -0
  206. package/dist/loaders/github.loader.js.map +1 -0
  207. package/dist/loaders/html-file.loader.d.ts +55 -0
  208. package/dist/loaders/html-file.loader.d.ts.map +1 -0
  209. package/dist/loaders/html-file.loader.js +170 -0
  210. package/dist/loaders/html-file.loader.js.map +1 -0
  211. package/dist/loaders/index.d.ts +52 -0
  212. package/dist/loaders/index.d.ts.map +1 -0
  213. package/dist/loaders/index.js +61 -0
  214. package/dist/loaders/index.js.map +1 -0
  215. package/dist/loaders/json-file.loader.d.ts +51 -0
  216. package/dist/loaders/json-file.loader.d.ts.map +1 -0
  217. package/dist/loaders/json-file.loader.js +100 -0
  218. package/dist/loaders/json-file.loader.js.map +1 -0
  219. package/dist/loaders/markdown-file.loader.d.ts +61 -0
  220. package/dist/loaders/markdown-file.loader.d.ts.map +1 -0
  221. package/dist/loaders/markdown-file.loader.js +148 -0
  222. package/dist/loaders/markdown-file.loader.js.map +1 -0
  223. package/dist/loaders/pdf.loader.d.ts +64 -0
  224. package/dist/loaders/pdf.loader.d.ts.map +1 -0
  225. package/dist/loaders/pdf.loader.js +163 -0
  226. package/dist/loaders/pdf.loader.js.map +1 -0
  227. package/dist/loaders/text-file.loader.d.ts +39 -0
  228. package/dist/loaders/text-file.loader.d.ts.map +1 -0
  229. package/dist/loaders/text-file.loader.js +69 -0
  230. package/dist/loaders/text-file.loader.js.map +1 -0
  231. package/dist/loaders/web.loader.d.ts +87 -0
  232. package/dist/loaders/web.loader.d.ts.map +1 -0
  233. package/dist/loaders/web.loader.js +194 -0
  234. package/dist/loaders/web.loader.js.map +1 -0
  235. package/dist/loaders/youtube-transcript.loader.d.ts +92 -0
  236. package/dist/loaders/youtube-transcript.loader.d.ts.map +1 -0
  237. package/dist/loaders/youtube-transcript.loader.js +254 -0
  238. package/dist/loaders/youtube-transcript.loader.js.map +1 -0
  239. package/dist/memory/index.d.ts +11 -0
  240. package/dist/memory/index.d.ts.map +1 -0
  241. package/dist/memory/index.js +31 -0
  242. package/dist/memory/index.js.map +1 -0
  243. package/dist/memory/memory-manager.d.ts +96 -0
  244. package/dist/memory/memory-manager.d.ts.map +1 -0
  245. package/dist/memory/memory-manager.js +369 -0
  246. package/dist/memory/memory-manager.js.map +1 -0
  247. package/dist/memory/memory-store.interface.d.ts +73 -0
  248. package/dist/memory/memory-store.interface.d.ts.map +1 -0
  249. package/dist/memory/memory-store.interface.js +6 -0
  250. package/dist/memory/memory-store.interface.js.map +1 -0
  251. package/dist/memory/stores/buffer-memory.d.ts +47 -0
  252. package/dist/memory/stores/buffer-memory.d.ts.map +1 -0
  253. package/dist/memory/stores/buffer-memory.js +280 -0
  254. package/dist/memory/stores/buffer-memory.js.map +1 -0
  255. package/dist/memory/stores/hybrid-memory.d.ts +49 -0
  256. package/dist/memory/stores/hybrid-memory.d.ts.map +1 -0
  257. package/dist/memory/stores/hybrid-memory.js +194 -0
  258. package/dist/memory/stores/hybrid-memory.js.map +1 -0
  259. package/dist/memory/stores/vector-memory.d.ts +48 -0
  260. package/dist/memory/stores/vector-memory.d.ts.map +1 -0
  261. package/dist/memory/stores/vector-memory.js +312 -0
  262. package/dist/memory/stores/vector-memory.js.map +1 -0
  263. package/dist/memory/types.d.ts +119 -0
  264. package/dist/memory/types.d.ts.map +1 -0
  265. package/dist/memory/types.js +18 -0
  266. package/dist/memory/types.js.map +1 -0
  267. package/dist/prompts/agentic/adaptive-retrieval.prompt.d.ts +8 -0
  268. package/dist/prompts/agentic/adaptive-retrieval.prompt.d.ts.map +1 -0
  269. package/dist/prompts/agentic/adaptive-retrieval.prompt.js +27 -0
  270. package/dist/prompts/agentic/adaptive-retrieval.prompt.js.map +1 -0
  271. package/dist/prompts/agentic/corrective-rag.prompt.d.ts +9 -0
  272. package/dist/prompts/agentic/corrective-rag.prompt.d.ts.map +1 -0
  273. package/dist/prompts/agentic/corrective-rag.prompt.js +23 -0
  274. package/dist/prompts/agentic/corrective-rag.prompt.js.map +1 -0
  275. package/dist/prompts/agentic/hyde.prompt.d.ts +9 -0
  276. package/dist/prompts/agentic/hyde.prompt.d.ts.map +1 -0
  277. package/dist/prompts/agentic/hyde.prompt.js +18 -0
  278. package/dist/prompts/agentic/hyde.prompt.js.map +1 -0
  279. package/dist/prompts/agentic/multi-hop.prompt.d.ts +15 -0
  280. package/dist/prompts/agentic/multi-hop.prompt.d.ts.map +1 -0
  281. package/dist/prompts/agentic/multi-hop.prompt.js +38 -0
  282. package/dist/prompts/agentic/multi-hop.prompt.js.map +1 -0
  283. package/dist/prompts/agentic/query-planner.prompt.d.ts +8 -0
  284. package/dist/prompts/agentic/query-planner.prompt.d.ts.map +1 -0
  285. package/dist/prompts/agentic/query-planner.prompt.js +30 -0
  286. package/dist/prompts/agentic/query-planner.prompt.js.map +1 -0
  287. package/dist/prompts/agentic/query-rewriter.prompt.d.ts +10 -0
  288. package/dist/prompts/agentic/query-rewriter.prompt.d.ts.map +1 -0
  289. package/dist/prompts/agentic/query-rewriter.prompt.js +17 -0
  290. package/dist/prompts/agentic/query-rewriter.prompt.js.map +1 -0
  291. package/dist/prompts/agentic/self-reflective-improve.prompt.d.ts +10 -0
  292. package/dist/prompts/agentic/self-reflective-improve.prompt.d.ts.map +1 -0
  293. package/dist/prompts/agentic/self-reflective-improve.prompt.js +24 -0
  294. package/dist/prompts/agentic/self-reflective-improve.prompt.js.map +1 -0
  295. package/dist/prompts/agentic/self-reflective.prompt.d.ts +9 -0
  296. package/dist/prompts/agentic/self-reflective.prompt.d.ts.map +1 -0
  297. package/dist/prompts/agentic/self-reflective.prompt.js +32 -0
  298. package/dist/prompts/agentic/self-reflective.prompt.js.map +1 -0
  299. package/dist/prompts/community-summary.prompt.d.ts +9 -0
  300. package/dist/prompts/community-summary.prompt.d.ts.map +1 -0
  301. package/dist/prompts/community-summary.prompt.js +30 -0
  302. package/dist/prompts/community-summary.prompt.js.map +1 -0
  303. package/dist/prompts/entity-extraction.prompt.d.ts +10 -0
  304. package/dist/prompts/entity-extraction.prompt.d.ts.map +1 -0
  305. package/dist/prompts/entity-extraction.prompt.js +39 -0
  306. package/dist/prompts/entity-extraction.prompt.js.map +1 -0
  307. package/dist/prompts/graph-search.prompt.d.ts +10 -0
  308. package/dist/prompts/graph-search.prompt.d.ts.map +1 -0
  309. package/dist/prompts/graph-search.prompt.js +23 -0
  310. package/dist/prompts/graph-search.prompt.js.map +1 -0
  311. package/dist/prompts/index.d.ts +13 -0
  312. package/dist/prompts/index.d.ts.map +1 -0
  313. package/dist/prompts/index.js +29 -0
  314. package/dist/prompts/index.js.map +1 -0
  315. package/dist/prompts/rag-answer.prompt.d.ts +9 -0
  316. package/dist/prompts/rag-answer.prompt.d.ts.map +1 -0
  317. package/dist/prompts/rag-answer.prompt.js +20 -0
  318. package/dist/prompts/rag-answer.prompt.js.map +1 -0
  319. package/dist/rag-pipeline-with-memory.d.ts +68 -0
  320. package/dist/rag-pipeline-with-memory.d.ts.map +1 -0
  321. package/dist/rag-pipeline-with-memory.js +186 -0
  322. package/dist/rag-pipeline-with-memory.js.map +1 -0
  323. package/dist/rag-pipeline.d.ts +59 -0
  324. package/dist/rag-pipeline.d.ts.map +1 -0
  325. package/dist/rag-pipeline.js +181 -0
  326. package/dist/rag-pipeline.js.map +1 -0
  327. package/dist/rag.module.d.ts +26 -0
  328. package/dist/rag.module.d.ts.map +1 -0
  329. package/dist/rag.module.js +40 -0
  330. package/dist/rag.module.js.map +1 -0
  331. package/dist/rag.service.d.ts +96 -0
  332. package/dist/rag.service.d.ts.map +1 -0
  333. package/dist/rag.service.js +173 -0
  334. package/dist/rag.service.js.map +1 -0
  335. package/dist/retrieval/bm25.d.ts +57 -0
  336. package/dist/retrieval/bm25.d.ts.map +1 -0
  337. package/dist/retrieval/bm25.js +106 -0
  338. package/dist/retrieval/bm25.js.map +1 -0
  339. package/dist/retrieval/hybrid-search.d.ts +48 -0
  340. package/dist/retrieval/hybrid-search.d.ts.map +1 -0
  341. package/dist/retrieval/hybrid-search.js +123 -0
  342. package/dist/retrieval/hybrid-search.js.map +1 -0
  343. package/dist/retrieval/multi-query.d.ts +38 -0
  344. package/dist/retrieval/multi-query.d.ts.map +1 -0
  345. package/dist/retrieval/multi-query.js +135 -0
  346. package/dist/retrieval/multi-query.js.map +1 -0
  347. package/dist/text-splitters/recursive-text-splitter.d.ts +21 -0
  348. package/dist/text-splitters/recursive-text-splitter.d.ts.map +1 -0
  349. package/dist/text-splitters/recursive-text-splitter.js +95 -0
  350. package/dist/text-splitters/recursive-text-splitter.js.map +1 -0
  351. package/dist/types/index.d.ts +144 -0
  352. package/dist/types/index.d.ts.map +1 -0
  353. package/dist/types/index.js +16 -0
  354. package/dist/types/index.js.map +1 -0
  355. package/dist/utils/similarity.d.ts +16 -0
  356. package/dist/utils/similarity.d.ts.map +1 -0
  357. package/dist/utils/similarity.js +58 -0
  358. package/dist/utils/similarity.js.map +1 -0
  359. package/dist/vector-stores/chroma.store.d.ts +42 -0
  360. package/dist/vector-stores/chroma.store.d.ts.map +1 -0
  361. package/dist/vector-stores/chroma.store.js +242 -0
  362. package/dist/vector-stores/chroma.store.js.map +1 -0
  363. package/dist/vector-stores/memory-vector-store.d.ts +20 -0
  364. package/dist/vector-stores/memory-vector-store.d.ts.map +1 -0
  365. package/dist/vector-stores/memory-vector-store.js +94 -0
  366. package/dist/vector-stores/memory-vector-store.js.map +1 -0
  367. package/dist/vector-stores/pinecone.store.d.ts +34 -0
  368. package/dist/vector-stores/pinecone.store.d.ts.map +1 -0
  369. package/dist/vector-stores/pinecone.store.js +146 -0
  370. package/dist/vector-stores/pinecone.store.js.map +1 -0
  371. package/dist/vector-stores/qdrant.store.d.ts +33 -0
  372. package/dist/vector-stores/qdrant.store.d.ts.map +1 -0
  373. package/dist/vector-stores/qdrant.store.js +174 -0
  374. package/dist/vector-stores/qdrant.store.js.map +1 -0
  375. package/dist/vector-stores/weaviate.store.d.ts +37 -0
  376. package/dist/vector-stores/weaviate.store.d.ts.map +1 -0
  377. package/dist/vector-stores/weaviate.store.js +226 -0
  378. package/dist/vector-stores/weaviate.store.js.map +1 -0
  379. package/package.json +146 -0
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ /**
3
+ * JSONFileLoader
4
+ *
5
+ * Loads a JSON file and converts it to documents.
6
+ *
7
+ * Supports two shapes:
8
+ * - **Array mode** (default) — if the root value is an array, each element
9
+ * becomes a document. The element's text is either the value of `textKey`
10
+ * (a specific field) or the full JSON stringification of the element.
11
+ * - **Object mode** — a single root object becomes one document.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // articles.json = [{ "title": "...", "body": "..." }, ...]
16
+ * const loader = new JSONFileLoader({
17
+ * path: './articles.json',
18
+ * textKey: 'body', // use "body" field as content
19
+ * metadataKeys: ['title'], // include "title" in metadata
20
+ * });
21
+ * const docs = await loader.load();
22
+ * ```
23
+ */
24
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
25
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
26
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
28
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
29
+ };
30
+ var __metadata = (this && this.__metadata) || function (k, v) {
31
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
32
+ };
33
+ Object.defineProperty(exports, "__esModule", { value: true });
34
+ exports.JSONFileLoader = void 0;
35
+ const promises_1 = require("fs/promises");
36
+ const path_1 = require("path");
37
+ const base_loader_1 = require("./base.loader");
38
+ let JSONFileLoader = class JSONFileLoader extends base_loader_1.BaseDocumentLoader {
39
+ constructor(options) {
40
+ super();
41
+ this.opts = {
42
+ path: options.path,
43
+ textKey: options.textKey,
44
+ metadataKeys: options.metadataKeys ?? [],
45
+ metadata: options.metadata ?? {},
46
+ jsonPointer: options.jsonPointer,
47
+ };
48
+ }
49
+ async load() {
50
+ const raw = await (0, promises_1.readFile)(this.opts.path, { encoding: 'utf-8' });
51
+ let parsed = JSON.parse(raw);
52
+ // Navigate to a nested array via dot-separated pointer
53
+ if (this.opts.jsonPointer) {
54
+ for (const key of this.opts.jsonPointer.split('.')) {
55
+ parsed = parsed[key];
56
+ if (parsed === undefined) {
57
+ throw new Error(`JSONFileLoader: key "${key}" not found at path "${this.opts.jsonPointer}" in ${this.opts.path}`);
58
+ }
59
+ }
60
+ }
61
+ const items = Array.isArray(parsed) ? parsed : [parsed];
62
+ const fileName = (0, path_1.basename)(this.opts.path);
63
+ return items.map((item, idx) => {
64
+ const obj = (typeof item === 'object' && item !== null ? item : {});
65
+ // Build content
66
+ let content;
67
+ if (this.opts.textKey && this.opts.textKey in obj) {
68
+ content = String(obj[this.opts.textKey]);
69
+ }
70
+ else {
71
+ content = JSON.stringify(item, null, 2);
72
+ }
73
+ // Build metadata
74
+ const metadata = {
75
+ source: fileName,
76
+ filePath: this.opts.path,
77
+ index: idx,
78
+ loaderType: 'json',
79
+ ...this.opts.metadata,
80
+ };
81
+ for (const key of this.opts.metadataKeys) {
82
+ if (key in obj) {
83
+ metadata[key] = obj[key];
84
+ }
85
+ }
86
+ return this.createDocument(content, metadata);
87
+ });
88
+ }
89
+ };
90
+ exports.JSONFileLoader = JSONFileLoader;
91
+ exports.JSONFileLoader = JSONFileLoader = __decorate([
92
+ (0, base_loader_1.Loader)({
93
+ name: 'JSONFileLoader',
94
+ description: 'Loads documents from a JSON file (array or object).',
95
+ extensions: ['.json'],
96
+ mimeTypes: ['application/json'],
97
+ }),
98
+ __metadata("design:paramtypes", [Object])
99
+ ], JSONFileLoader);
100
+ //# sourceMappingURL=json-file.loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-file.loader.js","sourceRoot":"","sources":["../../src/loaders/json-file.loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * MarkdownFileLoader
3
+ *
4
+ * Loads Markdown files from disk. Supports two modes:
5
+ *
6
+ * - **single document** (default) — the entire file becomes one `Document`.
7
+ * - **split by heading** — splits the file at every `## ` (H2) heading,
8
+ * producing one document per section. Each document's metadata includes
9
+ * the section heading.
10
+ *
11
+ * Front-matter (`---` blocks) is optionally parsed and stored in metadata.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const loader = new MarkdownFileLoader({
16
+ * path: './README.md',
17
+ * splitByHeading: 'h2', // split on ##
18
+ * });
19
+ * const docs = await loader.load();
20
+ * // docs[0].content === "# Introduction\n..."
21
+ * // docs[0].metadata.heading === "Introduction"
22
+ * ```
23
+ */
24
+ import { BaseDocumentLoader } from './base.loader';
25
+ import type { Document } from '../types';
26
+ export interface MarkdownFileLoaderOptions {
27
+ /** Path to the Markdown file. */
28
+ path?: string;
29
+ /** Multiple file paths. */
30
+ paths?: string[];
31
+ /**
32
+ * Split on heading level.
33
+ * `'h1'` → splits on `# `, `'h2'` → splits on `## `, etc.
34
+ * @default undefined (no splitting — one document per file)
35
+ */
36
+ splitByHeading?: 'h1' | 'h2' | 'h3';
37
+ /**
38
+ * Strip YAML front-matter (`---` block) from content.
39
+ * Front-matter keys are stored in document metadata.
40
+ * @default true
41
+ */
42
+ parseFrontMatter?: boolean;
43
+ /** Extra metadata merged into every document. */
44
+ metadata?: Record<string, unknown>;
45
+ }
46
+ export declare class MarkdownFileLoader extends BaseDocumentLoader {
47
+ private readonly paths;
48
+ private readonly splitByHeading?;
49
+ private readonly parseFrontMatter;
50
+ private readonly extraMetadata;
51
+ constructor(options: MarkdownFileLoaderOptions);
52
+ load(): Promise<Document[]>;
53
+ private extractFrontMatter;
54
+ /**
55
+ * Minimal YAML-like parser for simple key: value front-matter.
56
+ * Does not support nested objects, arrays, or multi-line values.
57
+ */
58
+ private parseYAMLLike;
59
+ private splitOnHeading;
60
+ }
61
+ //# sourceMappingURL=markdown-file.loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-file.loader.d.ts","sourceRoot":"","sources":["../../src/loaders/markdown-file.loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EAAE,kBAAkB,EAAU,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,yBAAyB;IACxC,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;OAIG;IACH,cAAc,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACpC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qBAMa,kBAAmB,SAAQ,kBAAkB;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;gBAE5C,OAAO,EAAE,yBAAyB;IAWxC,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAsCjC,OAAO,CAAC,kBAAkB;IAe1B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,cAAc;CAiCvB"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ /**
3
+ * MarkdownFileLoader
4
+ *
5
+ * Loads Markdown files from disk. Supports two modes:
6
+ *
7
+ * - **single document** (default) — the entire file becomes one `Document`.
8
+ * - **split by heading** — splits the file at every `## ` (H2) heading,
9
+ * producing one document per section. Each document's metadata includes
10
+ * the section heading.
11
+ *
12
+ * Front-matter (`---` blocks) is optionally parsed and stored in metadata.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const loader = new MarkdownFileLoader({
17
+ * path: './README.md',
18
+ * splitByHeading: 'h2', // split on ##
19
+ * });
20
+ * const docs = await loader.load();
21
+ * // docs[0].content === "# Introduction\n..."
22
+ * // docs[0].metadata.heading === "Introduction"
23
+ * ```
24
+ */
25
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
26
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
27
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
28
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
29
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
30
+ };
31
+ var __metadata = (this && this.__metadata) || function (k, v) {
32
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.MarkdownFileLoader = void 0;
36
+ const promises_1 = require("fs/promises");
37
+ const path_1 = require("path");
38
+ const base_loader_1 = require("./base.loader");
39
+ let MarkdownFileLoader = class MarkdownFileLoader extends base_loader_1.BaseDocumentLoader {
40
+ constructor(options) {
41
+ super();
42
+ if (!options.path && (!options.paths || options.paths.length === 0)) {
43
+ throw new Error('MarkdownFileLoader: provide at least one path via `path` or `paths`.');
44
+ }
45
+ this.paths = options.paths ?? (options.path ? [options.path] : []);
46
+ this.splitByHeading = options.splitByHeading;
47
+ this.parseFrontMatter = options.parseFrontMatter ?? true;
48
+ this.extraMetadata = options.metadata ?? {};
49
+ }
50
+ async load() {
51
+ const docs = [];
52
+ for (const filePath of this.paths) {
53
+ const raw = await (0, promises_1.readFile)(filePath, { encoding: 'utf-8' });
54
+ const fileName = (0, path_1.basename)(filePath);
55
+ const { content, frontMatter } = this.extractFrontMatter(raw);
56
+ const baseMetadata = {
57
+ source: fileName,
58
+ filePath,
59
+ loaderType: 'markdown',
60
+ ...frontMatter,
61
+ ...this.extraMetadata,
62
+ };
63
+ if (!this.splitByHeading) {
64
+ docs.push(this.createDocument(content, baseMetadata));
65
+ }
66
+ else {
67
+ const sections = this.splitOnHeading(content, this.splitByHeading);
68
+ for (const section of sections) {
69
+ if (section.text.trim()) {
70
+ docs.push(this.createDocument(section.text, {
71
+ ...baseMetadata,
72
+ heading: section.heading,
73
+ }));
74
+ }
75
+ }
76
+ }
77
+ }
78
+ return docs;
79
+ }
80
+ // ── Private helpers ──────────────────────────────────────────────────────
81
+ extractFrontMatter(text) {
82
+ if (!this.parseFrontMatter)
83
+ return { content: text, frontMatter: {} };
84
+ const match = text.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n/);
85
+ if (!match)
86
+ return { content: text, frontMatter: {} };
87
+ const frontMatterRaw = match[1];
88
+ const content = text.slice(match[0].length);
89
+ const frontMatter = this.parseYAMLLike(frontMatterRaw);
90
+ return { content, frontMatter };
91
+ }
92
+ /**
93
+ * Minimal YAML-like parser for simple key: value front-matter.
94
+ * Does not support nested objects, arrays, or multi-line values.
95
+ */
96
+ parseYAMLLike(raw) {
97
+ const result = {};
98
+ for (const line of raw.split(/\r?\n/)) {
99
+ const colonIdx = line.indexOf(':');
100
+ if (colonIdx < 1)
101
+ continue;
102
+ const key = line.slice(0, colonIdx).trim();
103
+ const value = line
104
+ .slice(colonIdx + 1)
105
+ .trim()
106
+ .replace(/^["']|["']$/g, '');
107
+ result[key] = value;
108
+ }
109
+ return result;
110
+ }
111
+ splitOnHeading(text, level) {
112
+ const hashes = { h1: '#', h2: '##', h3: '###' }[level];
113
+ const pattern = new RegExp(`^${hashes}\\s+(.+)$`, 'gm');
114
+ const sections = [];
115
+ let lastIndex = 0;
116
+ let lastHeading = '';
117
+ let match;
118
+ while ((match = pattern.exec(text)) !== null) {
119
+ if (lastIndex > 0 || lastHeading) {
120
+ sections.push({
121
+ heading: lastHeading,
122
+ text: text.slice(lastIndex, match.index).trim(),
123
+ });
124
+ }
125
+ lastHeading = match[1].trim();
126
+ lastIndex = match.index;
127
+ }
128
+ // Push the final section
129
+ if (lastHeading || lastIndex === 0) {
130
+ sections.push({
131
+ heading: lastHeading,
132
+ text: text.slice(lastIndex).trim(),
133
+ });
134
+ }
135
+ return sections;
136
+ }
137
+ };
138
+ exports.MarkdownFileLoader = MarkdownFileLoader;
139
+ exports.MarkdownFileLoader = MarkdownFileLoader = __decorate([
140
+ (0, base_loader_1.Loader)({
141
+ name: 'MarkdownFileLoader',
142
+ description: 'Loads Markdown files, optionally splitting by heading level.',
143
+ extensions: ['.md', '.markdown', '.mdx'],
144
+ mimeTypes: ['text/markdown'],
145
+ }),
146
+ __metadata("design:paramtypes", [Object])
147
+ ], MarkdownFileLoader);
148
+ //# sourceMappingURL=markdown-file.loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-file.loader.js","sourceRoot":"","sources":["../../src/loaders/markdown-file.loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * PdfLoader
3
+ *
4
+ * Loads PDF files and converts them to `Document` objects using the
5
+ * optional `pdf-parse` peer dependency.
6
+ *
7
+ * Install the peer dependency:
8
+ * ```bash
9
+ * npm install pdf-parse
10
+ * # or
11
+ * npm install pdfjs-dist # alternative — see pdfMode option
12
+ * ```
13
+ *
14
+ * Each PDF can be loaded as:
15
+ * - **one document** (default) — the entire extracted text as a single chunk
16
+ * - **one document per page** — `splitPages: true`
17
+ *
18
+ * Metadata extracted from the PDF info dictionary (author, creation date,
19
+ * title, subject, keywords, page count) is stored in each document.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const loader = new PdfLoader({ path: './report.pdf' });
24
+ * const docs = await loader.load();
25
+ * // docs[0].content === full extracted text
26
+ * // docs[0].metadata.pageCount === 42
27
+ *
28
+ * // One document per page:
29
+ * const loader = new PdfLoader({ path: './report.pdf', splitPages: true });
30
+ * const docs = await loader.load();
31
+ * // docs.length === 42
32
+ * // docs[0].metadata.pageNumber === 1
33
+ * ```
34
+ */
35
+ import { BaseDocumentLoader } from './base.loader';
36
+ import type { Document } from '../types';
37
+ export interface PdfLoaderOptions {
38
+ /** Path to the PDF file. */
39
+ path: string;
40
+ /**
41
+ * Split the PDF into one document per page.
42
+ * @default false
43
+ */
44
+ splitPages?: boolean;
45
+ /**
46
+ * Maximum number of pages to extract.
47
+ * @default all pages
48
+ */
49
+ maxPages?: number;
50
+ /**
51
+ * Password for encrypted PDFs.
52
+ */
53
+ password?: string;
54
+ /** Extra metadata merged into every document. */
55
+ metadata?: Record<string, unknown>;
56
+ }
57
+ export declare class PdfLoader extends BaseDocumentLoader {
58
+ private readonly opts;
59
+ constructor(options: PdfLoaderOptions);
60
+ load(): Promise<Document[]>;
61
+ private loadByPage;
62
+ private extractInfoMetadata;
63
+ }
64
+ //# sourceMappingURL=pdf.loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf.loader.d.ts","sourceRoot":"","sources":["../../src/loaders/pdf.loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAIH,OAAO,EAAE,kBAAkB,EAAU,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qBAMa,SAAU,SAAQ,kBAAkB;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAGnB;gBAEU,OAAO,EAAE,gBAAgB;IAW/B,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAqDnB,UAAU;IA2DxB,OAAO,CAAC,mBAAmB;CAiB5B"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ /**
3
+ * PdfLoader
4
+ *
5
+ * Loads PDF files and converts them to `Document` objects using the
6
+ * optional `pdf-parse` peer dependency.
7
+ *
8
+ * Install the peer dependency:
9
+ * ```bash
10
+ * npm install pdf-parse
11
+ * # or
12
+ * npm install pdfjs-dist # alternative — see pdfMode option
13
+ * ```
14
+ *
15
+ * Each PDF can be loaded as:
16
+ * - **one document** (default) — the entire extracted text as a single chunk
17
+ * - **one document per page** — `splitPages: true`
18
+ *
19
+ * Metadata extracted from the PDF info dictionary (author, creation date,
20
+ * title, subject, keywords, page count) is stored in each document.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const loader = new PdfLoader({ path: './report.pdf' });
25
+ * const docs = await loader.load();
26
+ * // docs[0].content === full extracted text
27
+ * // docs[0].metadata.pageCount === 42
28
+ *
29
+ * // One document per page:
30
+ * const loader = new PdfLoader({ path: './report.pdf', splitPages: true });
31
+ * const docs = await loader.load();
32
+ * // docs.length === 42
33
+ * // docs[0].metadata.pageNumber === 1
34
+ * ```
35
+ */
36
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
37
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
40
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
41
+ };
42
+ var __metadata = (this && this.__metadata) || function (k, v) {
43
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
44
+ };
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.PdfLoader = void 0;
47
+ const promises_1 = require("fs/promises");
48
+ const path_1 = require("path");
49
+ const base_loader_1 = require("./base.loader");
50
+ let PdfLoader = class PdfLoader extends base_loader_1.BaseDocumentLoader {
51
+ constructor(options) {
52
+ super();
53
+ this.opts = {
54
+ path: options.path,
55
+ splitPages: options.splitPages ?? false,
56
+ maxPages: options.maxPages,
57
+ password: options.password,
58
+ metadata: options.metadata ?? {},
59
+ };
60
+ }
61
+ async load() {
62
+ // Dynamic import so pdf-parse is only required when PdfLoader is actually used
63
+ let pdfParse;
64
+ try {
65
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
66
+ const mod = require('pdf-parse');
67
+ pdfParse = (typeof mod === 'function' ? mod : mod.default);
68
+ }
69
+ catch {
70
+ throw new Error('[PdfLoader] pdf-parse is not installed. Run: npm install pdf-parse\n' +
71
+ 'Alternatively, install pdfjs-dist and use PdfjsLoader.');
72
+ }
73
+ const buffer = await (0, promises_1.readFile)(this.opts.path);
74
+ const fileName = (0, path_1.basename)(this.opts.path);
75
+ const parseOptions = {};
76
+ if (this.opts.password)
77
+ parseOptions['password'] = this.opts.password;
78
+ if (this.opts.maxPages)
79
+ parseOptions['max'] = this.opts.maxPages;
80
+ // pdf-parse extracts text page-by-page via a custom renderer when we need per-page docs
81
+ if (this.opts.splitPages) {
82
+ return this.loadByPage(pdfParse, buffer, fileName, parseOptions);
83
+ }
84
+ const result = await pdfParse(buffer, parseOptions);
85
+ const infoMetadata = this.extractInfoMetadata(result.info);
86
+ return [
87
+ this.createDocument(result.text, {
88
+ source: fileName,
89
+ filePath: this.opts.path,
90
+ loaderType: 'pdf',
91
+ pageCount: result.numpages,
92
+ pdfVersion: result.version,
93
+ ...infoMetadata,
94
+ ...this.opts.metadata,
95
+ }),
96
+ ];
97
+ }
98
+ async loadByPage(pdfParse, buffer, fileName, baseOptions) {
99
+ const pages = [];
100
+ const options = {
101
+ ...baseOptions,
102
+ // pdf-parse page renderer — called once per page
103
+ pagerender: (pageData) => pageData.getTextContent().then((textContent) => {
104
+ const lastY = { y: -1 };
105
+ let text = '';
106
+ for (const item of textContent.items) {
107
+ const y = item.transform[5];
108
+ if (lastY.y !== -1 && Math.abs(lastY.y - y) > 1) {
109
+ text += '\n';
110
+ }
111
+ text += item.str;
112
+ lastY.y = y;
113
+ }
114
+ pages.push(text);
115
+ return text;
116
+ }),
117
+ };
118
+ const result = await pdfParse(buffer, options);
119
+ const infoMetadata = this.extractInfoMetadata(result.info);
120
+ const fileName2 = fileName;
121
+ return pages
122
+ .map((pageText, idx) => this.createDocument(pageText, {
123
+ source: fileName2,
124
+ filePath: this.opts.path,
125
+ loaderType: 'pdf',
126
+ pageNumber: idx + 1,
127
+ pageCount: result.numpages,
128
+ pdfVersion: result.version,
129
+ ...infoMetadata,
130
+ ...this.opts.metadata,
131
+ }))
132
+ .filter((doc) => doc.content.length > 0);
133
+ }
134
+ extractInfoMetadata(info) {
135
+ const meta = {};
136
+ const fieldMap = {
137
+ Title: 'title',
138
+ Author: 'author',
139
+ Subject: 'subject',
140
+ Keywords: 'keywords',
141
+ Creator: 'creator',
142
+ Producer: 'producer',
143
+ CreationDate: 'creationDate',
144
+ ModDate: 'modificationDate',
145
+ };
146
+ for (const [pdfKey, metaKey] of Object.entries(fieldMap)) {
147
+ if (info[pdfKey])
148
+ meta[metaKey] = info[pdfKey];
149
+ }
150
+ return meta;
151
+ }
152
+ };
153
+ exports.PdfLoader = PdfLoader;
154
+ exports.PdfLoader = PdfLoader = __decorate([
155
+ (0, base_loader_1.Loader)({
156
+ name: 'PdfLoader',
157
+ description: 'Loads PDF files using pdf-parse (optional peer dependency).',
158
+ extensions: ['.pdf'],
159
+ mimeTypes: ['application/pdf'],
160
+ }),
161
+ __metadata("design:paramtypes", [Object])
162
+ ], PdfLoader);
163
+ //# sourceMappingURL=pdf.loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf.loader.js","sourceRoot":"","sources":["../../src/loaders/pdf.loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * TextFileLoader
3
+ *
4
+ * Loads one or more plain-text files (.txt, .log, .tsv, etc.) from disk.
5
+ * Each file becomes a single `Document`.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const loader = new TextFileLoader({ path: './docs/notes.txt' });
10
+ * const docs = await loader.load();
11
+ * // docs[0].content === "...file contents..."
12
+ * // docs[0].metadata.source === "notes.txt"
13
+ * ```
14
+ *
15
+ * Multiple files:
16
+ * ```typescript
17
+ * const loader = new TextFileLoader({ paths: ['./a.txt', './b.txt'] });
18
+ * ```
19
+ */
20
+ import { BaseDocumentLoader } from './base.loader';
21
+ import type { Document } from '../types';
22
+ export interface TextFileLoaderOptions {
23
+ /** Single file path. */
24
+ path?: string;
25
+ /** Multiple file paths — documents are returned in the same order. */
26
+ paths?: string[];
27
+ /** File encoding. @default 'utf-8' */
28
+ encoding?: BufferEncoding;
29
+ /** Extra metadata merged into every document produced by this loader. */
30
+ metadata?: Record<string, unknown>;
31
+ }
32
+ export declare class TextFileLoader extends BaseDocumentLoader {
33
+ private readonly paths;
34
+ private readonly encoding;
35
+ private readonly extraMetadata;
36
+ constructor(options: TextFileLoaderOptions);
37
+ load(): Promise<Document[]>;
38
+ }
39
+ //# sourceMappingURL=text-file.loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-file.loader.d.ts","sourceRoot":"","sources":["../../src/loaders/text-file.loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAE,kBAAkB,EAAU,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,qBAAqB;IACpC,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qBAMa,cAAe,SAAQ,kBAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;gBAE5C,OAAO,EAAE,qBAAqB;IAUpC,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;CAiBlC"}