@code-rag/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +19 -0
  3. package/dist/auth/audit-log.d.ts +35 -0
  4. package/dist/auth/audit-log.js +110 -0
  5. package/dist/auth/audit-log.js.map +1 -0
  6. package/dist/auth/audit-log.test.d.ts +1 -0
  7. package/dist/auth/audit-log.test.js +261 -0
  8. package/dist/auth/audit-log.test.js.map +1 -0
  9. package/dist/auth/index.d.ts +6 -0
  10. package/dist/auth/index.js +5 -0
  11. package/dist/auth/index.js.map +1 -0
  12. package/dist/auth/oidc-provider.d.ts +49 -0
  13. package/dist/auth/oidc-provider.js +358 -0
  14. package/dist/auth/oidc-provider.js.map +1 -0
  15. package/dist/auth/oidc-provider.test.d.ts +1 -0
  16. package/dist/auth/oidc-provider.test.js +520 -0
  17. package/dist/auth/oidc-provider.test.js.map +1 -0
  18. package/dist/auth/rbac.d.ts +29 -0
  19. package/dist/auth/rbac.js +75 -0
  20. package/dist/auth/rbac.js.map +1 -0
  21. package/dist/auth/rbac.test.d.ts +1 -0
  22. package/dist/auth/rbac.test.js +224 -0
  23. package/dist/auth/rbac.test.js.map +1 -0
  24. package/dist/auth/saml-provider.d.ts +51 -0
  25. package/dist/auth/saml-provider.js +355 -0
  26. package/dist/auth/saml-provider.js.map +1 -0
  27. package/dist/auth/saml-provider.test.d.ts +1 -0
  28. package/dist/auth/saml-provider.test.js +422 -0
  29. package/dist/auth/saml-provider.test.js.map +1 -0
  30. package/dist/auth/types.d.ts +81 -0
  31. package/dist/auth/types.js +11 -0
  32. package/dist/auth/types.js.map +1 -0
  33. package/dist/auth/types.test.d.ts +1 -0
  34. package/dist/auth/types.test.js +147 -0
  35. package/dist/auth/types.test.js.map +1 -0
  36. package/dist/backlog/ab-reference-scanner.d.ts +10 -0
  37. package/dist/backlog/ab-reference-scanner.js +22 -0
  38. package/dist/backlog/ab-reference-scanner.js.map +1 -0
  39. package/dist/backlog/ab-reference-scanner.test.d.ts +1 -0
  40. package/dist/backlog/ab-reference-scanner.test.js +83 -0
  41. package/dist/backlog/ab-reference-scanner.test.js.map +1 -0
  42. package/dist/backlog/azure-devops-provider.d.ts +59 -0
  43. package/dist/backlog/azure-devops-provider.js +283 -0
  44. package/dist/backlog/azure-devops-provider.js.map +1 -0
  45. package/dist/backlog/backlog-provider.d.ts +13 -0
  46. package/dist/backlog/backlog-provider.js +6 -0
  47. package/dist/backlog/backlog-provider.js.map +1 -0
  48. package/dist/backlog/backlog-provider.test.d.ts +1 -0
  49. package/dist/backlog/backlog-provider.test.js +426 -0
  50. package/dist/backlog/backlog-provider.test.js.map +1 -0
  51. package/dist/backlog/clickup-provider.d.ts +55 -0
  52. package/dist/backlog/clickup-provider.js +301 -0
  53. package/dist/backlog/clickup-provider.js.map +1 -0
  54. package/dist/backlog/clickup-provider.test.d.ts +1 -0
  55. package/dist/backlog/clickup-provider.test.js +426 -0
  56. package/dist/backlog/clickup-provider.test.js.map +1 -0
  57. package/dist/backlog/clickup-reference-scanner.d.ts +10 -0
  58. package/dist/backlog/clickup-reference-scanner.js +32 -0
  59. package/dist/backlog/clickup-reference-scanner.js.map +1 -0
  60. package/dist/backlog/clickup-reference-scanner.test.d.ts +1 -0
  61. package/dist/backlog/clickup-reference-scanner.test.js +92 -0
  62. package/dist/backlog/clickup-reference-scanner.test.js.map +1 -0
  63. package/dist/backlog/code-linker.d.ts +63 -0
  64. package/dist/backlog/code-linker.js +90 -0
  65. package/dist/backlog/code-linker.js.map +1 -0
  66. package/dist/backlog/code-linker.test.d.ts +1 -0
  67. package/dist/backlog/code-linker.test.js +325 -0
  68. package/dist/backlog/code-linker.test.js.map +1 -0
  69. package/dist/backlog/index.d.ts +14 -0
  70. package/dist/backlog/index.js +8 -0
  71. package/dist/backlog/index.js.map +1 -0
  72. package/dist/backlog/jira-provider.d.ts +60 -0
  73. package/dist/backlog/jira-provider.js +272 -0
  74. package/dist/backlog/jira-provider.js.map +1 -0
  75. package/dist/backlog/jira-provider.test.d.ts +1 -0
  76. package/dist/backlog/jira-provider.test.js +449 -0
  77. package/dist/backlog/jira-provider.test.js.map +1 -0
  78. package/dist/backlog/jira-reference-scanner.d.ts +11 -0
  79. package/dist/backlog/jira-reference-scanner.js +26 -0
  80. package/dist/backlog/jira-reference-scanner.js.map +1 -0
  81. package/dist/backlog/jira-reference-scanner.test.d.ts +1 -0
  82. package/dist/backlog/jira-reference-scanner.test.js +127 -0
  83. package/dist/backlog/jira-reference-scanner.test.js.map +1 -0
  84. package/dist/backlog/types.d.ts +22 -0
  85. package/dist/backlog/types.js +1 -0
  86. package/dist/backlog/types.js.map +1 -0
  87. package/dist/chunker/ast-chunker.d.ts +45 -0
  88. package/dist/chunker/ast-chunker.js +292 -0
  89. package/dist/chunker/ast-chunker.js.map +1 -0
  90. package/dist/chunker/ast-chunker.test.d.ts +1 -0
  91. package/dist/chunker/ast-chunker.test.js +391 -0
  92. package/dist/chunker/ast-chunker.test.js.map +1 -0
  93. package/dist/chunker/chunker.d.ts +8 -0
  94. package/dist/chunker/chunker.js +1 -0
  95. package/dist/chunker/chunker.js.map +1 -0
  96. package/dist/chunker/index.d.ts +3 -0
  97. package/dist/chunker/index.js +2 -0
  98. package/dist/chunker/index.js.map +1 -0
  99. package/dist/config/config-parser.d.ts +15 -0
  100. package/dist/config/config-parser.js +283 -0
  101. package/dist/config/config-parser.js.map +1 -0
  102. package/dist/config/config-parser.test.d.ts +1 -0
  103. package/dist/config/config-parser.test.js +699 -0
  104. package/dist/config/config-parser.test.js.map +1 -0
  105. package/dist/docs/confluence-provider.d.ts +121 -0
  106. package/dist/docs/confluence-provider.js +459 -0
  107. package/dist/docs/confluence-provider.js.map +1 -0
  108. package/dist/docs/confluence-provider.test.d.ts +1 -0
  109. package/dist/docs/confluence-provider.test.js +765 -0
  110. package/dist/docs/confluence-provider.test.js.map +1 -0
  111. package/dist/docs/index.d.ts +4 -0
  112. package/dist/docs/index.js +2 -0
  113. package/dist/docs/index.js.map +1 -0
  114. package/dist/docs/sharepoint-provider.d.ts +150 -0
  115. package/dist/docs/sharepoint-provider.js +637 -0
  116. package/dist/docs/sharepoint-provider.js.map +1 -0
  117. package/dist/docs/sharepoint-provider.test.d.ts +1 -0
  118. package/dist/docs/sharepoint-provider.test.js +873 -0
  119. package/dist/docs/sharepoint-provider.test.js.map +1 -0
  120. package/dist/embedding/bm25-index.d.ts +12 -0
  121. package/dist/embedding/bm25-index.js +89 -0
  122. package/dist/embedding/bm25-index.js.map +1 -0
  123. package/dist/embedding/bm25-index.test.d.ts +1 -0
  124. package/dist/embedding/bm25-index.test.js +289 -0
  125. package/dist/embedding/bm25-index.test.js.map +1 -0
  126. package/dist/embedding/hybrid-search.d.ts +13 -0
  127. package/dist/embedding/hybrid-search.js +124 -0
  128. package/dist/embedding/hybrid-search.js.map +1 -0
  129. package/dist/embedding/hybrid-search.test.d.ts +1 -0
  130. package/dist/embedding/hybrid-search.test.js +266 -0
  131. package/dist/embedding/hybrid-search.test.js.map +1 -0
  132. package/dist/embedding/index.d.ts +11 -0
  133. package/dist/embedding/index.js +7 -0
  134. package/dist/embedding/index.js.map +1 -0
  135. package/dist/embedding/lancedb-store.d.ts +21 -0
  136. package/dist/embedding/lancedb-store.js +172 -0
  137. package/dist/embedding/lancedb-store.js.map +1 -0
  138. package/dist/embedding/lancedb-store.test.d.ts +1 -0
  139. package/dist/embedding/lancedb-store.test.js +268 -0
  140. package/dist/embedding/lancedb-store.test.js.map +1 -0
  141. package/dist/embedding/model-lifecycle-manager.d.ts +83 -0
  142. package/dist/embedding/model-lifecycle-manager.js +419 -0
  143. package/dist/embedding/model-lifecycle-manager.js.map +1 -0
  144. package/dist/embedding/model-lifecycle-manager.test.d.ts +1 -0
  145. package/dist/embedding/model-lifecycle-manager.test.js +642 -0
  146. package/dist/embedding/model-lifecycle-manager.test.js.map +1 -0
  147. package/dist/embedding/ollama-embedding-provider.d.ts +16 -0
  148. package/dist/embedding/ollama-embedding-provider.js +74 -0
  149. package/dist/embedding/ollama-embedding-provider.js.map +1 -0
  150. package/dist/embedding/ollama-embedding-provider.test.d.ts +1 -0
  151. package/dist/embedding/ollama-embedding-provider.test.js +198 -0
  152. package/dist/embedding/ollama-embedding-provider.test.js.map +1 -0
  153. package/dist/embedding/openai-compatible-embedding-provider.d.ts +19 -0
  154. package/dist/embedding/openai-compatible-embedding-provider.js +108 -0
  155. package/dist/embedding/openai-compatible-embedding-provider.js.map +1 -0
  156. package/dist/embedding/openai-compatible-embedding-provider.test.d.ts +1 -0
  157. package/dist/embedding/openai-compatible-embedding-provider.test.js +456 -0
  158. package/dist/embedding/openai-compatible-embedding-provider.test.js.map +1 -0
  159. package/dist/embedding/qdrant-store.d.ts +28 -0
  160. package/dist/embedding/qdrant-store.js +174 -0
  161. package/dist/embedding/qdrant-store.js.map +1 -0
  162. package/dist/embedding/qdrant-store.test.d.ts +1 -0
  163. package/dist/embedding/qdrant-store.test.js +359 -0
  164. package/dist/embedding/qdrant-store.test.js.map +1 -0
  165. package/dist/enrichment/index.d.ts +4 -0
  166. package/dist/enrichment/index.js +2 -0
  167. package/dist/enrichment/index.js.map +1 -0
  168. package/dist/enrichment/nl-enricher.d.ts +16 -0
  169. package/dist/enrichment/nl-enricher.js +47 -0
  170. package/dist/enrichment/nl-enricher.js.map +1 -0
  171. package/dist/enrichment/nl-enricher.test.d.ts +1 -0
  172. package/dist/enrichment/nl-enricher.test.js +154 -0
  173. package/dist/enrichment/nl-enricher.test.js.map +1 -0
  174. package/dist/enrichment/ollama-client.d.ts +18 -0
  175. package/dist/enrichment/ollama-client.js +55 -0
  176. package/dist/enrichment/ollama-client.js.map +1 -0
  177. package/dist/enrichment/ollama-client.test.d.ts +1 -0
  178. package/dist/enrichment/ollama-client.test.js +129 -0
  179. package/dist/enrichment/ollama-client.test.js.map +1 -0
  180. package/dist/git/git-client.d.ts +22 -0
  181. package/dist/git/git-client.js +6 -0
  182. package/dist/git/git-client.js.map +1 -0
  183. package/dist/git/git-client.test.d.ts +1 -0
  184. package/dist/git/git-client.test.js +200 -0
  185. package/dist/git/git-client.test.js.map +1 -0
  186. package/dist/git/ignore-filter.d.ts +2 -0
  187. package/dist/git/ignore-filter.js +31 -0
  188. package/dist/git/ignore-filter.js.map +1 -0
  189. package/dist/git/ignore-filter.test.d.ts +1 -0
  190. package/dist/git/ignore-filter.test.js +87 -0
  191. package/dist/git/ignore-filter.test.js.map +1 -0
  192. package/dist/git/index.d.ts +4 -0
  193. package/dist/git/index.js +3 -0
  194. package/dist/git/index.js.map +1 -0
  195. package/dist/git/simple-git-client.d.ts +12 -0
  196. package/dist/git/simple-git-client.js +138 -0
  197. package/dist/git/simple-git-client.js.map +1 -0
  198. package/dist/graph/cross-repo-resolver.d.ts +50 -0
  199. package/dist/graph/cross-repo-resolver.js +315 -0
  200. package/dist/graph/cross-repo-resolver.js.map +1 -0
  201. package/dist/graph/cross-repo-resolver.test.d.ts +1 -0
  202. package/dist/graph/cross-repo-resolver.test.js +548 -0
  203. package/dist/graph/cross-repo-resolver.test.js.map +1 -0
  204. package/dist/graph/dependency-graph.d.ts +44 -0
  205. package/dist/graph/dependency-graph.js +108 -0
  206. package/dist/graph/dependency-graph.js.map +1 -0
  207. package/dist/graph/dependency-graph.test.d.ts +1 -0
  208. package/dist/graph/dependency-graph.test.js +276 -0
  209. package/dist/graph/dependency-graph.test.js.map +1 -0
  210. package/dist/graph/graph-builder.d.ts +11 -0
  211. package/dist/graph/graph-builder.js +113 -0
  212. package/dist/graph/graph-builder.js.map +1 -0
  213. package/dist/graph/graph-builder.test.d.ts +1 -0
  214. package/dist/graph/graph-builder.test.js +178 -0
  215. package/dist/graph/graph-builder.test.js.map +1 -0
  216. package/dist/graph/import-resolver.d.ts +11 -0
  217. package/dist/graph/import-resolver.js +199 -0
  218. package/dist/graph/import-resolver.js.map +1 -0
  219. package/dist/graph/import-resolver.test.d.ts +1 -0
  220. package/dist/graph/import-resolver.test.js +282 -0
  221. package/dist/graph/import-resolver.test.js.map +1 -0
  222. package/dist/graph/index.d.ts +7 -0
  223. package/dist/graph/index.js +4 -0
  224. package/dist/graph/index.js.map +1 -0
  225. package/dist/index.d.ts +31 -0
  226. package/dist/index.js +15 -0
  227. package/dist/index.js.map +1 -0
  228. package/dist/indexer/file-scanner.d.ts +34 -0
  229. package/dist/indexer/file-scanner.js +69 -0
  230. package/dist/indexer/file-scanner.js.map +1 -0
  231. package/dist/indexer/file-scanner.test.d.ts +1 -0
  232. package/dist/indexer/file-scanner.test.js +110 -0
  233. package/dist/indexer/file-scanner.test.js.map +1 -0
  234. package/dist/indexer/file-watcher.d.ts +79 -0
  235. package/dist/indexer/file-watcher.js +148 -0
  236. package/dist/indexer/incremental-indexer.d.ts +67 -0
  237. package/dist/indexer/incremental-indexer.js +142 -0
  238. package/dist/indexer/incremental-indexer.js.map +1 -0
  239. package/dist/indexer/incremental-indexer.test.d.ts +1 -0
  240. package/dist/indexer/incremental-indexer.test.js +266 -0
  241. package/dist/indexer/incremental-indexer.test.js.map +1 -0
  242. package/dist/indexer/index-check.d.ts +22 -0
  243. package/dist/indexer/index-check.js +74 -0
  244. package/dist/indexer/index-check.js.map +1 -0
  245. package/dist/indexer/index-check.test.d.ts +1 -0
  246. package/dist/indexer/index-check.test.js +100 -0
  247. package/dist/indexer/index-check.test.js.map +1 -0
  248. package/dist/indexer/index-state.d.ts +61 -0
  249. package/dist/indexer/index-state.js +82 -0
  250. package/dist/indexer/index-state.js.map +1 -0
  251. package/dist/indexer/index-state.test.d.ts +1 -0
  252. package/dist/indexer/index-state.test.js +140 -0
  253. package/dist/indexer/index-state.test.js.map +1 -0
  254. package/dist/indexer/index.d.ts +12 -0
  255. package/dist/indexer/index.js +6 -0
  256. package/dist/indexer/index.js.map +1 -0
  257. package/dist/indexer/multi-repo-indexer.d.ts +63 -0
  258. package/dist/indexer/multi-repo-indexer.js +144 -0
  259. package/dist/indexer/multi-repo-indexer.js.map +1 -0
  260. package/dist/indexer/multi-repo-indexer.test.d.ts +1 -0
  261. package/dist/indexer/multi-repo-indexer.test.js +238 -0
  262. package/dist/indexer/multi-repo-indexer.test.js.map +1 -0
  263. package/dist/parser/index.d.ts +4 -0
  264. package/dist/parser/index.js +3 -0
  265. package/dist/parser/index.js.map +1 -0
  266. package/dist/parser/language-registry.d.ts +46 -0
  267. package/dist/parser/language-registry.js +219 -0
  268. package/dist/parser/language-registry.js.map +1 -0
  269. package/dist/parser/language-registry.test.d.ts +1 -0
  270. package/dist/parser/language-registry.test.js +225 -0
  271. package/dist/parser/language-registry.test.js.map +1 -0
  272. package/dist/parser/markdown-parser.d.ts +124 -0
  273. package/dist/parser/markdown-parser.js +487 -0
  274. package/dist/parser/markdown-parser.js.map +1 -0
  275. package/dist/parser/markdown-parser.test.d.ts +1 -0
  276. package/dist/parser/markdown-parser.test.js +600 -0
  277. package/dist/parser/markdown-parser.test.js.map +1 -0
  278. package/dist/parser/tree-sitter-parser.d.ts +32 -0
  279. package/dist/parser/tree-sitter-parser.js +146 -0
  280. package/dist/parser/tree-sitter-parser.js.map +1 -0
  281. package/dist/retrieval/context-expander.d.ts +51 -0
  282. package/dist/retrieval/context-expander.js +218 -0
  283. package/dist/retrieval/context-expander.js.map +1 -0
  284. package/dist/retrieval/context-expander.test.d.ts +1 -0
  285. package/dist/retrieval/context-expander.test.js +339 -0
  286. package/dist/retrieval/context-expander.test.js.map +1 -0
  287. package/dist/retrieval/cross-encoder-reranker.d.ts +16 -0
  288. package/dist/retrieval/cross-encoder-reranker.js +90 -0
  289. package/dist/retrieval/cross-encoder-reranker.js.map +1 -0
  290. package/dist/retrieval/cross-encoder-reranker.test.d.ts +1 -0
  291. package/dist/retrieval/cross-encoder-reranker.test.js +305 -0
  292. package/dist/retrieval/cross-encoder-reranker.test.js.map +1 -0
  293. package/dist/retrieval/index.d.ts +8 -0
  294. package/dist/retrieval/index.js +4 -0
  295. package/dist/retrieval/index.js.map +1 -0
  296. package/dist/retrieval/query-analyzer.d.ts +29 -0
  297. package/dist/retrieval/query-analyzer.js +238 -0
  298. package/dist/retrieval/query-analyzer.js.map +1 -0
  299. package/dist/retrieval/query-analyzer.test.d.ts +1 -0
  300. package/dist/retrieval/query-analyzer.test.js +236 -0
  301. package/dist/retrieval/query-analyzer.test.js.map +1 -0
  302. package/dist/retrieval/token-budget.d.ts +51 -0
  303. package/dist/retrieval/token-budget.js +141 -0
  304. package/dist/retrieval/token-budget.js.map +1 -0
  305. package/dist/retrieval/token-budget.test.d.ts +1 -0
  306. package/dist/retrieval/token-budget.test.js +404 -0
  307. package/dist/retrieval/token-budget.test.js.map +1 -0
  308. package/dist/storage/azure-blob-provider.d.ts +19 -0
  309. package/dist/storage/azure-blob-provider.js +199 -0
  310. package/dist/storage/azure-blob-provider.js.map +1 -0
  311. package/dist/storage/azure-blob-provider.test.d.ts +1 -0
  312. package/dist/storage/azure-blob-provider.test.js +250 -0
  313. package/dist/storage/azure-blob-provider.test.js.map +1 -0
  314. package/dist/storage/gcs-provider.d.ts +22 -0
  315. package/dist/storage/gcs-provider.js +241 -0
  316. package/dist/storage/gcs-provider.js.map +1 -0
  317. package/dist/storage/gcs-provider.test.d.ts +1 -0
  318. package/dist/storage/gcs-provider.test.js +299 -0
  319. package/dist/storage/gcs-provider.test.js.map +1 -0
  320. package/dist/storage/index.d.ts +5 -0
  321. package/dist/storage/index.js +4 -0
  322. package/dist/storage/index.js.map +1 -0
  323. package/dist/storage/s3-provider.d.ts +21 -0
  324. package/dist/storage/s3-provider.js +220 -0
  325. package/dist/storage/s3-provider.js.map +1 -0
  326. package/dist/storage/s3-provider.test.d.ts +1 -0
  327. package/dist/storage/s3-provider.test.js +329 -0
  328. package/dist/storage/s3-provider.test.js.map +1 -0
  329. package/dist/storage/types.d.ts +65 -0
  330. package/dist/storage/types.js +12 -0
  331. package/dist/storage/types.js.map +1 -0
  332. package/dist/types/chunk.d.ts +32 -0
  333. package/dist/types/chunk.js +1 -0
  334. package/dist/types/chunk.js.map +1 -0
  335. package/dist/types/config.d.ts +71 -0
  336. package/dist/types/config.js +1 -0
  337. package/dist/types/config.js.map +1 -0
  338. package/dist/types/index.d.ts +5 -0
  339. package/dist/types/index.js +1 -0
  340. package/dist/types/index.js.map +1 -0
  341. package/dist/types/provider.d.ts +54 -0
  342. package/dist/types/provider.js +36 -0
  343. package/dist/types/provider.js.map +1 -0
  344. package/dist/types/search.d.ts +27 -0
  345. package/dist/types/search.js +1 -0
  346. package/dist/types/search.js.map +1 -0
  347. package/package.json +70 -0
@@ -0,0 +1,637 @@
1
+ import { ok, err } from 'neverthrow';
2
+ // ---------------------------------------------------------------------------
3
+ // Error
4
+ // ---------------------------------------------------------------------------
5
+ export class SharePointError extends Error {
6
+ constructor(message) {
7
+ super(message);
8
+ this.name = 'SharePointError';
9
+ }
10
+ }
11
+ // ---------------------------------------------------------------------------
12
+ // Constants
13
+ // ---------------------------------------------------------------------------
14
+ const GRAPH_BASE_URL = 'https://graph.microsoft.com/v1.0';
15
+ const LOGIN_BASE_URL = 'https://login.microsoftonline.com';
16
+ const DEFAULT_MAX_PAGES = 25;
17
+ const SUPPORTED_DOC_TYPES = new Set([
18
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', // .docx
19
+ 'application/pdf',
20
+ ]);
21
+ // ---------------------------------------------------------------------------
22
+ // Text extraction helpers
23
+ // ---------------------------------------------------------------------------
24
+ /**
25
+ * Extracts plain text from a .docx file (Office Open XML).
26
+ *
27
+ * A .docx file is a ZIP archive containing XML files. The main document
28
+ * body is in `word/document.xml`. This function performs a lightweight
29
+ * extraction by finding `<w:t>` elements (text runs) in the XML.
30
+ *
31
+ * For full-fidelity extraction a library like `mammoth` would be needed,
32
+ * but this zero-dependency approach is sufficient for search indexing.
33
+ */
34
+ export function extractTextFromDocx(content) {
35
+ const bytes = new Uint8Array(content);
36
+ // A .docx is a ZIP file. Find the word/document.xml entry.
37
+ const documentXml = extractFileFromZip(bytes, 'word/document.xml');
38
+ if (!documentXml) {
39
+ return '';
40
+ }
41
+ const xmlText = new TextDecoder('utf-8').decode(documentXml);
42
+ // Extract text from <w:t> and <w:t xml:space="preserve"> elements
43
+ const textParts = [];
44
+ const wtRegex = /<w:t[^>]*>([\s\S]*?)<\/w:t>/g;
45
+ let match;
46
+ while ((match = wtRegex.exec(xmlText)) !== null) {
47
+ if (match[1]) {
48
+ textParts.push(match[1]);
49
+ }
50
+ }
51
+ // Insert paragraph breaks at </w:p> boundaries
52
+ // We detect paragraph boundaries by looking at <w:p> tags
53
+ let result = xmlText;
54
+ // Replace paragraph boundaries with newline markers
55
+ result = result.replace(/<\/w:p>/g, '{{PARA_BREAK}}');
56
+ // Now extract text
57
+ const paragraphs = [];
58
+ const parts = result.split('{{PARA_BREAK}}');
59
+ for (const part of parts) {
60
+ const paraTexts = [];
61
+ const partWtRegex = /<w:t[^>]*>([\s\S]*?)<\/w:t>/g;
62
+ let partMatch;
63
+ while ((partMatch = partWtRegex.exec(part)) !== null) {
64
+ if (partMatch[1]) {
65
+ paraTexts.push(partMatch[1]);
66
+ }
67
+ }
68
+ if (paraTexts.length > 0) {
69
+ paragraphs.push(paraTexts.join(''));
70
+ }
71
+ }
72
+ return paragraphs.join('\n').trim();
73
+ }
74
+ /**
75
+ * Extracts plain text from a PDF file.
76
+ *
77
+ * This is a lightweight extraction that finds text streams in the PDF.
78
+ * It handles simple text content but not complex encodings, CMap tables,
79
+ * or compressed streams beyond basic FlateDecode.
80
+ *
81
+ * For production use, a dedicated PDF library (pdf-parse, pdfjs-dist) would
82
+ * provide better results. This zero-dependency approach covers common cases
83
+ * for search indexing.
84
+ */
85
+ export function extractTextFromPdf(content) {
86
+ const bytes = new Uint8Array(content);
87
+ const text = new TextDecoder('latin1').decode(bytes);
88
+ const textParts = [];
89
+ // Extract text from BT ... ET blocks (text objects)
90
+ const btEtRegex = /BT\s([\s\S]*?)ET/g;
91
+ let btMatch;
92
+ while ((btMatch = btEtRegex.exec(text)) !== null) {
93
+ const block = btMatch[1] ?? '';
94
+ // Extract text from Tj and TJ operators
95
+ // Tj: (text) Tj
96
+ const tjRegex = /\(((?:[^\\)]|\\.)*)\)\s*Tj/g;
97
+ let tjMatch;
98
+ while ((tjMatch = tjRegex.exec(block)) !== null) {
99
+ const decoded = decodePdfString(tjMatch[1] ?? '');
100
+ if (decoded.trim()) {
101
+ textParts.push(decoded);
102
+ }
103
+ }
104
+ // TJ: [(text) num (text) ...] TJ
105
+ const tjArrayRegex = /\[([\s\S]*?)\]\s*TJ/g;
106
+ let tjArrayMatch;
107
+ while ((tjArrayMatch = tjArrayRegex.exec(block)) !== null) {
108
+ const arrayContent = tjArrayMatch[1] ?? '';
109
+ const innerRegex = /\(((?:[^\\)]|\\.)*)\)/g;
110
+ let innerMatch;
111
+ while ((innerMatch = innerRegex.exec(arrayContent)) !== null) {
112
+ const decoded = decodePdfString(innerMatch[1] ?? '');
113
+ if (decoded.trim()) {
114
+ textParts.push(decoded);
115
+ }
116
+ }
117
+ }
118
+ }
119
+ // Join and normalize whitespace
120
+ return textParts
121
+ .join(' ')
122
+ .replace(/\s+/g, ' ')
123
+ .trim();
124
+ }
125
+ /**
126
+ * Decodes escaped characters in a PDF string literal.
127
+ */
128
+ function decodePdfString(raw) {
129
+ return raw
130
+ .replace(/\\n/g, '\n')
131
+ .replace(/\\r/g, '\r')
132
+ .replace(/\\t/g, '\t')
133
+ .replace(/\\\(/g, '(')
134
+ .replace(/\\\)/g, ')')
135
+ .replace(/\\\\/g, '\\');
136
+ }
137
+ /**
138
+ * Strips HTML tags and decodes basic entities, producing plain text.
139
+ */
140
+ function htmlToPlainText(html) {
141
+ if (!html) {
142
+ return '';
143
+ }
144
+ let text = html;
145
+ // Convert block elements to newlines
146
+ const blockElements = [
147
+ 'p', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
148
+ 'li', 'tr', 'br', 'hr', 'blockquote', 'pre',
149
+ ];
150
+ const blockPattern = new RegExp(`<\\/?(${blockElements.join('|')})[^>]*>`, 'gi');
151
+ text = text.replace(blockPattern, '\n');
152
+ // Strip remaining tags
153
+ text = text.replace(/<[^>]+>/g, '');
154
+ // Decode basic HTML entities
155
+ text = text
156
+ .replaceAll('&amp;', '&')
157
+ .replaceAll('&lt;', '<')
158
+ .replaceAll('&gt;', '>')
159
+ .replaceAll('&quot;', '"')
160
+ .replaceAll('&#39;', "'")
161
+ .replaceAll('&nbsp;', ' ');
162
+ // Normalize whitespace
163
+ text = text
164
+ .split('\n')
165
+ .map((line) => line.trim())
166
+ .filter((line, i, arr) => {
167
+ if (line === '' && i > 0 && arr[i - 1] === '') {
168
+ return false;
169
+ }
170
+ return true;
171
+ })
172
+ .join('\n')
173
+ .trim();
174
+ return text;
175
+ }
176
+ // ---------------------------------------------------------------------------
177
+ // Minimal ZIP reader (for .docx extraction)
178
+ // ---------------------------------------------------------------------------
179
+ /**
180
+ * Extracts a single file from a ZIP archive by filename.
181
+ * Only supports Store (no compression) and entries with local file headers.
182
+ * This is intentionally minimal — .docx word/document.xml is typically stored.
183
+ */
184
+ function extractFileFromZip(zipBytes, targetFilename) {
185
+ const view = new DataView(zipBytes.buffer, zipBytes.byteOffset, zipBytes.byteLength);
186
+ let offset = 0;
187
+ while (offset < zipBytes.length - 30) {
188
+ // Local file header signature = 0x04034b50
189
+ const signature = view.getUint32(offset, true);
190
+ if (signature !== 0x04034b50) {
191
+ break;
192
+ }
193
+ const compressionMethod = view.getUint16(offset + 8, true);
194
+ const compressedSize = view.getUint32(offset + 18, true);
195
+ const filenameLength = view.getUint16(offset + 26, true);
196
+ const extraFieldLength = view.getUint16(offset + 28, true);
197
+ const filenameBytes = zipBytes.slice(offset + 30, offset + 30 + filenameLength);
198
+ const filename = new TextDecoder('utf-8').decode(filenameBytes);
199
+ const dataOffset = offset + 30 + filenameLength + extraFieldLength;
200
+ if (filename === targetFilename) {
201
+ if (compressionMethod === 0) {
202
+ // Stored (no compression)
203
+ return zipBytes.slice(dataOffset, dataOffset + compressedSize);
204
+ }
205
+ // Compressed — we can't handle this without a decompression library
206
+ // Return null rather than corrupted data
207
+ return null;
208
+ }
209
+ offset = dataOffset + compressedSize;
210
+ }
211
+ return null;
212
+ }
213
+ // ---------------------------------------------------------------------------
214
+ // SharePointProvider
215
+ // ---------------------------------------------------------------------------
216
+ /**
217
+ * SharePoint documentation provider.
218
+ *
219
+ * Fetches site pages and documents from SharePoint Online via the
220
+ * Microsoft Graph API. Supports:
221
+ * - OAuth2 client credentials flow (Azure AD app registration)
222
+ * - Site pages (SharePoint modern pages)
223
+ * - Document libraries (.docx, .pdf text extraction)
224
+ * - Delta queries for incremental sync
225
+ * - Site and library filtering
226
+ */
227
+ export class SharePointProvider {
228
+ name = 'sharepoint';
229
+ config = null;
230
+ accessToken = '';
231
+ tokenExpiresAt = 0;
232
+ /**
233
+ * Validates the configuration and acquires an access token.
234
+ */
235
+ async initialize(config) {
236
+ const { tenantId, clientId, clientSecret, siteIds, libraryNames, maxPages } = config;
237
+ if (!tenantId || typeof tenantId !== 'string') {
238
+ return err(new SharePointError('SharePoint config missing required field: tenantId'));
239
+ }
240
+ if (!clientId || typeof clientId !== 'string') {
241
+ return err(new SharePointError('SharePoint config missing required field: clientId'));
242
+ }
243
+ if (!clientSecret || typeof clientSecret !== 'string') {
244
+ return err(new SharePointError('SharePoint config missing required field: clientSecret'));
245
+ }
246
+ this.config = {
247
+ tenantId,
248
+ clientId,
249
+ clientSecret,
250
+ siteIds: Array.isArray(siteIds)
251
+ ? siteIds.filter((s) => typeof s === 'string')
252
+ : undefined,
253
+ libraryNames: Array.isArray(libraryNames)
254
+ ? libraryNames.filter((s) => typeof s === 'string')
255
+ : undefined,
256
+ maxPages: typeof maxPages === 'number' && maxPages > 0
257
+ ? maxPages
258
+ : DEFAULT_MAX_PAGES,
259
+ };
260
+ // Acquire initial access token
261
+ const tokenResult = await this.acquireToken();
262
+ if (tokenResult.isErr()) {
263
+ return err(tokenResult.error);
264
+ }
265
+ return ok(undefined);
266
+ }
267
+ /**
268
+ * Fetches site pages from the specified sites (or configured sites).
269
+ */
270
+ async fetchPages(siteIds) {
271
+ this.ensureInitialized();
272
+ const effectiveSiteIds = siteIds ?? this.config.siteIds;
273
+ try {
274
+ await this.ensureValidToken();
275
+ if (!effectiveSiteIds || effectiveSiteIds.length === 0) {
276
+ return err(new SharePointError('No site IDs provided. Configure siteIds in SharePoint config or pass them explicitly.'));
277
+ }
278
+ const allPages = [];
279
+ for (const siteId of effectiveSiteIds) {
280
+ const pagesResult = await this.fetchSitePages(siteId);
281
+ if (pagesResult.isErr()) {
282
+ return err(pagesResult.error);
283
+ }
284
+ allPages.push(...pagesResult.value);
285
+ }
286
+ return ok(allPages);
287
+ }
288
+ catch (error) {
289
+ const message = error instanceof Error ? error.message : 'Unknown error';
290
+ return err(new SharePointError(`Failed to fetch pages: ${message}`));
291
+ }
292
+ }
293
+ /**
294
+ * Fetches documents from a site's document libraries.
295
+ * Optionally filters by library name.
296
+ */
297
+ async fetchDocuments(siteId, libraryName) {
298
+ this.ensureInitialized();
299
+ try {
300
+ await this.ensureValidToken();
301
+ // Get drives (document libraries) for the site
302
+ const drivesResult = await this.fetchDrives(siteId);
303
+ if (drivesResult.isErr()) {
304
+ return err(drivesResult.error);
305
+ }
306
+ const effectiveLibraryNames = libraryName
307
+ ? [libraryName]
308
+ : this.config.libraryNames;
309
+ let drives = drivesResult.value;
310
+ if (effectiveLibraryNames && effectiveLibraryNames.length > 0) {
311
+ drives = drives.filter((d) => effectiveLibraryNames.some((name) => d.name.toLowerCase() === name.toLowerCase()));
312
+ }
313
+ const allDocuments = [];
314
+ for (const drive of drives) {
315
+ const docsResult = await this.fetchDriveItems(siteId, drive);
316
+ if (docsResult.isErr()) {
317
+ return err(docsResult.error);
318
+ }
319
+ allDocuments.push(...docsResult.value);
320
+ }
321
+ return ok(allDocuments);
322
+ }
323
+ catch (error) {
324
+ const message = error instanceof Error ? error.message : 'Unknown error';
325
+ return err(new SharePointError(`Failed to fetch documents: ${message}`));
326
+ }
327
+ }
328
+ /**
329
+ * Returns items that changed since the specified date using delta queries.
330
+ * Uses the Microsoft Graph delta API for efficient incremental sync.
331
+ */
332
+ async getChangedItems(since) {
333
+ this.ensureInitialized();
334
+ try {
335
+ await this.ensureValidToken();
336
+ const effectiveSiteIds = this.config.siteIds;
337
+ if (!effectiveSiteIds || effectiveSiteIds.length === 0) {
338
+ return err(new SharePointError('No site IDs configured for delta query.'));
339
+ }
340
+ const allChanges = [];
341
+ for (const siteId of effectiveSiteIds) {
342
+ const changesResult = await this.fetchDelta(siteId, since);
343
+ if (changesResult.isErr()) {
344
+ return err(changesResult.error);
345
+ }
346
+ allChanges.push(...changesResult.value);
347
+ }
348
+ return ok(allChanges);
349
+ }
350
+ catch (error) {
351
+ const message = error instanceof Error ? error.message : 'Unknown error';
352
+ return err(new SharePointError(`Failed to fetch changed items: ${message}`));
353
+ }
354
+ }
355
+ // ---------------------------------------------------------------------------
356
+ // Private helpers
357
+ // ---------------------------------------------------------------------------
358
+ ensureInitialized() {
359
+ if (!this.config) {
360
+ throw new SharePointError('SharePointProvider has not been initialized. Call initialize() first.');
361
+ }
362
+ }
363
+ /**
364
+ * Acquires an OAuth2 access token using client credentials flow.
365
+ */
366
+ async acquireToken() {
367
+ const config = this.config;
368
+ const tokenUrl = `${LOGIN_BASE_URL}/${encodeURIComponent(config.tenantId)}/oauth2/v2.0/token`;
369
+ const body = new URLSearchParams({
370
+ client_id: config.clientId,
371
+ client_secret: config.clientSecret,
372
+ scope: 'https://graph.microsoft.com/.default',
373
+ grant_type: 'client_credentials',
374
+ });
375
+ try {
376
+ const response = await fetch(tokenUrl, {
377
+ method: 'POST',
378
+ headers: {
379
+ 'Content-Type': 'application/x-www-form-urlencoded',
380
+ },
381
+ body: body.toString(),
382
+ });
383
+ if (!response.ok) {
384
+ return err(new SharePointError(`OAuth2 token acquisition failed: ${response.status} ${response.statusText}`));
385
+ }
386
+ const data = (await response.json());
387
+ this.accessToken = data.access_token;
388
+ // Set expiry with 60-second buffer
389
+ this.tokenExpiresAt = Date.now() + (data.expires_in - 60) * 1000;
390
+ return ok(undefined);
391
+ }
392
+ catch (error) {
393
+ const message = error instanceof Error ? error.message : 'Unknown error';
394
+ return err(new SharePointError(`OAuth2 token acquisition failed: ${message}`));
395
+ }
396
+ }
397
+ /**
398
+ * Ensures the access token is still valid; re-acquires if expired.
399
+ */
400
+ async ensureValidToken() {
401
+ if (Date.now() >= this.tokenExpiresAt) {
402
+ const result = await this.acquireToken();
403
+ if (result.isErr()) {
404
+ throw result.error;
405
+ }
406
+ }
407
+ }
408
+ /**
409
+ * Makes an authenticated GET request to the Graph API.
410
+ */
411
+ async graphGet(url) {
412
+ try {
413
+ const response = await fetch(url, {
414
+ headers: {
415
+ Authorization: `Bearer ${this.accessToken}`,
416
+ Accept: 'application/json',
417
+ },
418
+ });
419
+ if (!response.ok) {
420
+ return err(new SharePointError(`Graph API request failed: ${response.status} ${response.statusText} (${url})`));
421
+ }
422
+ const data = (await response.json());
423
+ return ok(data);
424
+ }
425
+ catch (error) {
426
+ const message = error instanceof Error ? error.message : 'Unknown error';
427
+ return err(new SharePointError(`Graph API request failed: ${message}`));
428
+ }
429
+ }
430
+ /**
431
+ * Fetches site pages for a single site with pagination.
432
+ */
433
+ async fetchSitePages(siteId) {
434
+ const pages = [];
435
+ const limit = this.config.maxPages ?? DEFAULT_MAX_PAGES;
436
+ let url = `${GRAPH_BASE_URL}/sites/${encodeURIComponent(siteId)}/pages?$top=${limit}`;
437
+ while (url) {
438
+ const pageResult = await this.graphGet(url);
439
+ if (pageResult.isErr()) {
440
+ return err(pageResult.error);
441
+ }
442
+ const data = pageResult.value;
443
+ for (const item of data.value) {
444
+ pages.push({
445
+ id: item.id,
446
+ title: item.title,
447
+ siteId,
448
+ type: 'page',
449
+ plainText: '', // Pages need a separate content fetch; title serves as initial text
450
+ htmlContent: '',
451
+ url: item.webUrl,
452
+ lastModified: new Date(item.lastModifiedDateTime),
453
+ metadata: {
454
+ contentType: item.contentType?.name,
455
+ },
456
+ });
457
+ }
458
+ url = data['@odata.nextLink'];
459
+ }
460
+ // Fetch content for each page
461
+ for (const page of pages) {
462
+ const contentResult = await this.fetchPageContent(siteId, page.id);
463
+ if (contentResult.isOk()) {
464
+ page.htmlContent = contentResult.value;
465
+ page.plainText = htmlToPlainText(contentResult.value);
466
+ }
467
+ // If content fetch fails, we keep empty plainText (page still indexed by title)
468
+ }
469
+ return ok(pages);
470
+ }
471
+ /**
472
+ * Fetches the HTML content of a single site page.
473
+ */
474
+ async fetchPageContent(siteId, pageId) {
475
+ const url = `${GRAPH_BASE_URL}/sites/${encodeURIComponent(siteId)}/pages/${encodeURIComponent(pageId)}/microsoft.graph.sitePage/webParts`;
476
+ try {
477
+ const response = await fetch(url, {
478
+ headers: {
479
+ Authorization: `Bearer ${this.accessToken}`,
480
+ Accept: 'application/json',
481
+ },
482
+ });
483
+ if (!response.ok) {
484
+ return err(new SharePointError(`Failed to fetch page content: ${response.status} ${response.statusText}`));
485
+ }
486
+ const data = (await response.json());
487
+ // Combine all web part HTML content
488
+ const htmlParts = [];
489
+ for (const webPart of data.value) {
490
+ if (webPart.innerHtml) {
491
+ htmlParts.push(webPart.innerHtml);
492
+ }
493
+ if (webPart.data?.innerHTML) {
494
+ htmlParts.push(webPart.data.innerHTML);
495
+ }
496
+ }
497
+ return ok(htmlParts.join('\n'));
498
+ }
499
+ catch (error) {
500
+ const message = error instanceof Error ? error.message : 'Unknown error';
501
+ return err(new SharePointError(`Failed to fetch page content: ${message}`));
502
+ }
503
+ }
504
+ /**
505
+ * Fetches document libraries (drives) for a site.
506
+ */
507
+ async fetchDrives(siteId) {
508
+ const drives = [];
509
+ let url = `${GRAPH_BASE_URL}/sites/${encodeURIComponent(siteId)}/drives`;
510
+ while (url) {
511
+ const driveResult = await this.graphGet(url);
512
+ if (driveResult.isErr()) {
513
+ return err(driveResult.error);
514
+ }
515
+ const drivesData = driveResult.value;
516
+ drives.push(...drivesData.value);
517
+ url = drivesData['@odata.nextLink'];
518
+ }
519
+ return ok(drives);
520
+ }
521
+ /**
522
+ * Fetches items from a document library (drive), filtering for supported types.
523
+ */
524
+ async fetchDriveItems(siteId, drive) {
525
+ const documents = [];
526
+ const limit = this.config.maxPages ?? DEFAULT_MAX_PAGES;
527
+ let url = `${GRAPH_BASE_URL}/sites/${encodeURIComponent(siteId)}/drives/${encodeURIComponent(drive.id)}/root/children?$top=${limit}`;
528
+ while (url) {
529
+ const itemsResult = await this.graphGet(url);
530
+ if (itemsResult.isErr()) {
531
+ return err(itemsResult.error);
532
+ }
533
+ const itemsData = itemsResult.value;
534
+ for (const item of itemsData.value) {
535
+ // Only process files with supported MIME types
536
+ if (!item.file || !SUPPORTED_DOC_TYPES.has(item.file.mimeType)) {
537
+ continue;
538
+ }
539
+ // Download file content for text extraction
540
+ const textResult = await this.downloadAndExtractText(siteId, drive.id, item.id, item.file.mimeType);
541
+ documents.push({
542
+ id: item.id,
543
+ name: item.name,
544
+ siteId,
545
+ libraryName: drive.name,
546
+ type: 'document',
547
+ plainText: textResult.isOk() ? textResult.value : '',
548
+ mimeType: item.file.mimeType,
549
+ size: item.size,
550
+ url: item.webUrl,
551
+ lastModified: new Date(item.lastModifiedDateTime),
552
+ metadata: {
553
+ driveId: drive.id,
554
+ driveName: drive.name,
555
+ },
556
+ });
557
+ }
558
+ url = itemsData['@odata.nextLink'];
559
+ }
560
+ return ok(documents);
561
+ }
562
+ /**
563
+ * Downloads a file from a drive and extracts text content.
564
+ */
565
+ async downloadAndExtractText(siteId, driveId, itemId, mimeType) {
566
+ const url = `${GRAPH_BASE_URL}/sites/${encodeURIComponent(siteId)}/drives/${encodeURIComponent(driveId)}/items/${encodeURIComponent(itemId)}/content`;
567
+ try {
568
+ const response = await fetch(url, {
569
+ headers: {
570
+ Authorization: `Bearer ${this.accessToken}`,
571
+ },
572
+ });
573
+ if (!response.ok) {
574
+ return err(new SharePointError(`Failed to download file: ${response.status} ${response.statusText}`));
575
+ }
576
+ const buffer = await response.arrayBuffer();
577
+ if (mimeType ===
578
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') {
579
+ return ok(extractTextFromDocx(buffer));
580
+ }
581
+ if (mimeType === 'application/pdf') {
582
+ return ok(extractTextFromPdf(buffer));
583
+ }
584
+ return ok('');
585
+ }
586
+ catch (error) {
587
+ const message = error instanceof Error ? error.message : 'Unknown error';
588
+ return err(new SharePointError(`Failed to download file: ${message}`));
589
+ }
590
+ }
591
+ /**
592
+ * Fetches changed items using the Microsoft Graph delta API.
593
+ */
594
+ async fetchDelta(siteId, since) {
595
+ const changes = [];
596
+ // Use delta query on the default drive
597
+ const drivesResult = await this.fetchDrives(siteId);
598
+ if (drivesResult.isErr()) {
599
+ return err(drivesResult.error);
600
+ }
601
+ const effectiveLibraryNames = this.config.libraryNames;
602
+ let drives = drivesResult.value;
603
+ if (effectiveLibraryNames && effectiveLibraryNames.length > 0) {
604
+ drives = drives.filter((d) => effectiveLibraryNames.some((name) => d.name.toLowerCase() === name.toLowerCase()));
605
+ }
606
+ for (const drive of drives) {
607
+ let url = `${GRAPH_BASE_URL}/drives/${encodeURIComponent(drive.id)}/root/delta`;
608
+ while (url) {
609
+ const deltaResult = await this.graphGet(url);
610
+ if (deltaResult.isErr()) {
611
+ return err(deltaResult.error);
612
+ }
613
+ const deltaData = deltaResult.value;
614
+ for (const item of deltaData.value) {
615
+ const itemDate = new Date(item.lastModifiedDateTime);
616
+ if (itemDate < since) {
617
+ continue;
618
+ }
619
+ let changeType = 'updated';
620
+ if (item.deleted) {
621
+ changeType = 'deleted';
622
+ }
623
+ const itemType = item.file ? 'document' : 'page';
624
+ changes.push({
625
+ id: item.id,
626
+ name: item.name,
627
+ type: itemType,
628
+ changeType,
629
+ lastModified: itemDate,
630
+ });
631
+ }
632
+ url = deltaData['@odata.nextLink'];
633
+ }
634
+ }
635
+ return ok(changes);
636
+ }
637
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharepoint-provider.js","sourceRoot":"","sources":["../../src/docs/sharepoint-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};