vectra 0.12.2 → 0.14.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 (392) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +92 -100
  3. package/bin/vectra.js +3 -0
  4. package/lib/BrowserWebFetcher.d.ts +75 -0
  5. package/lib/BrowserWebFetcher.d.ts.map +1 -0
  6. package/lib/BrowserWebFetcher.js +290 -0
  7. package/lib/BrowserWebFetcher.js.map +1 -0
  8. package/lib/FileFetcher.d.ts +5 -0
  9. package/lib/FileFetcher.d.ts.map +1 -0
  10. package/lib/FileFetcher.js +89 -0
  11. package/lib/FileFetcher.js.map +1 -0
  12. package/lib/FileFetcher.spec.d.ts +2 -0
  13. package/lib/FileFetcher.spec.d.ts.map +1 -0
  14. package/lib/FileFetcher.spec.js +244 -0
  15. package/lib/FileFetcher.spec.js.map +1 -0
  16. package/lib/FolderWatcher.d.ts +91 -0
  17. package/lib/FolderWatcher.d.ts.map +1 -0
  18. package/lib/FolderWatcher.js +304 -0
  19. package/lib/FolderWatcher.js.map +1 -0
  20. package/lib/FolderWatcher.spec.d.ts +2 -0
  21. package/lib/FolderWatcher.spec.d.ts.map +1 -0
  22. package/lib/FolderWatcher.spec.js +308 -0
  23. package/lib/FolderWatcher.spec.js.map +1 -0
  24. package/lib/GPT3Tokenizer.d.ts +9 -0
  25. package/lib/GPT3Tokenizer.spec.d.ts +2 -0
  26. package/lib/GPT3Tokenizer.spec.d.ts.map +1 -0
  27. package/lib/GPT3Tokenizer.spec.js +45 -0
  28. package/lib/GPT3Tokenizer.spec.js.map +1 -0
  29. package/lib/ItemSelector.d.ts +41 -0
  30. package/lib/ItemSelector.d.ts.map +1 -0
  31. package/lib/ItemSelector.js +179 -0
  32. package/lib/ItemSelector.js.map +1 -0
  33. package/lib/ItemSelector.spec.d.ts +2 -0
  34. package/lib/ItemSelector.spec.d.ts.map +1 -0
  35. package/lib/ItemSelector.spec.js +204 -0
  36. package/lib/ItemSelector.spec.js.map +1 -0
  37. package/lib/LocalDocument.d.ts +54 -0
  38. package/lib/LocalDocument.d.ts.map +1 -1
  39. package/lib/LocalDocument.js +116 -0
  40. package/lib/LocalDocument.js.map +1 -0
  41. package/lib/LocalDocument.spec.d.ts +2 -0
  42. package/lib/LocalDocument.spec.d.ts.map +1 -0
  43. package/lib/LocalDocument.spec.js +214 -0
  44. package/lib/LocalDocument.spec.js.map +1 -0
  45. package/lib/LocalDocumentIndex.d.ts +152 -0
  46. package/lib/LocalDocumentIndex.d.ts.map +1 -1
  47. package/lib/LocalDocumentIndex.js +420 -0
  48. package/lib/LocalDocumentIndex.js.map +1 -0
  49. package/lib/LocalDocumentIndex.spec.d.ts +2 -0
  50. package/lib/LocalDocumentIndex.spec.d.ts.map +1 -0
  51. package/lib/LocalDocumentIndex.spec.js +494 -0
  52. package/lib/LocalDocumentIndex.spec.js.map +1 -0
  53. package/lib/LocalDocumentResult.d.ts +66 -0
  54. package/lib/LocalDocumentResult.d.ts.map +1 -1
  55. package/lib/LocalDocumentResult.js +376 -0
  56. package/lib/LocalDocumentResult.js.map +1 -0
  57. package/lib/LocalDocumentResult.spec.d.ts +2 -0
  58. package/lib/LocalDocumentResult.spec.d.ts.map +1 -0
  59. package/lib/LocalDocumentResult.spec.js +373 -0
  60. package/lib/LocalDocumentResult.spec.js.map +1 -0
  61. package/lib/LocalEmbeddings.d.ts +59 -0
  62. package/lib/LocalEmbeddings.d.ts.map +1 -0
  63. package/lib/LocalEmbeddings.js +101 -0
  64. package/lib/LocalEmbeddings.js.map +1 -0
  65. package/lib/LocalEmbeddings.spec.d.ts +2 -0
  66. package/lib/LocalEmbeddings.spec.d.ts.map +1 -0
  67. package/lib/LocalEmbeddings.spec.js +155 -0
  68. package/lib/LocalEmbeddings.spec.js.map +1 -0
  69. package/lib/LocalIndex.d.ts +159 -0
  70. package/lib/LocalIndex.d.ts.map +1 -1
  71. package/lib/LocalIndex.js +519 -0
  72. package/lib/LocalIndex.js.map +1 -0
  73. package/lib/LocalIndex.spec.d.ts +2 -0
  74. package/lib/LocalIndex.spec.js +611 -9
  75. package/lib/LocalIndex.spec.js.map +1 -1
  76. package/lib/OpenAIEmbeddings.d.ts +124 -0
  77. package/lib/OpenAIEmbeddings.d.ts.map +1 -0
  78. package/lib/OpenAIEmbeddings.js +166 -0
  79. package/lib/OpenAIEmbeddings.js.map +1 -0
  80. package/lib/OpenAIEmbeddings.spec.d.ts +2 -0
  81. package/lib/OpenAIEmbeddings.spec.d.ts.map +1 -0
  82. package/lib/OpenAIEmbeddings.spec.js +298 -0
  83. package/lib/OpenAIEmbeddings.spec.js.map +1 -0
  84. package/lib/TextSplitter.d.ts +21 -0
  85. package/lib/TextSplitter.d.ts.map +1 -1
  86. package/lib/TextSplitter.js +500 -0
  87. package/lib/TextSplitter.js.map +1 -0
  88. package/lib/TextSplitter.spec.d.ts +2 -0
  89. package/lib/TextSplitter.spec.d.ts.map +1 -0
  90. package/lib/TextSplitter.spec.js +337 -0
  91. package/lib/TextSplitter.spec.js.map +1 -0
  92. package/lib/TransformersEmbeddings.d.ts +121 -0
  93. package/lib/TransformersEmbeddings.d.ts.map +1 -0
  94. package/lib/TransformersEmbeddings.js +176 -0
  95. package/lib/TransformersEmbeddings.js.map +1 -0
  96. package/lib/TransformersEmbeddings.spec.d.ts +2 -0
  97. package/lib/TransformersEmbeddings.spec.d.ts.map +1 -0
  98. package/lib/TransformersEmbeddings.spec.js +198 -0
  99. package/lib/TransformersEmbeddings.spec.js.map +1 -0
  100. package/lib/TransformersTokenizer.d.ts +33 -0
  101. package/lib/TransformersTokenizer.d.ts.map +1 -0
  102. package/lib/TransformersTokenizer.js +44 -0
  103. package/lib/TransformersTokenizer.js.map +1 -0
  104. package/lib/TransformersTokenizer.spec.d.ts +2 -0
  105. package/lib/TransformersTokenizer.spec.d.ts.map +1 -0
  106. package/lib/TransformersTokenizer.spec.js +112 -0
  107. package/lib/TransformersTokenizer.spec.js.map +1 -0
  108. package/lib/WebFetcher.d.ts +14 -0
  109. package/lib/WebFetcher.d.ts.map +1 -0
  110. package/lib/WebFetcher.js +238 -0
  111. package/lib/WebFetcher.js.map +1 -0
  112. package/lib/WebFetcher.spec.d.ts +2 -0
  113. package/lib/WebFetcher.spec.d.ts.map +1 -0
  114. package/lib/WebFetcher.spec.js +263 -0
  115. package/lib/WebFetcher.spec.js.map +1 -0
  116. package/lib/browser.d.ts +30 -0
  117. package/lib/browser.d.ts.map +1 -0
  118. package/lib/browser.js +52 -0
  119. package/lib/browser.js.map +1 -0
  120. package/lib/codecs/IndexCodec.d.ts +37 -0
  121. package/lib/codecs/IndexCodec.d.ts.map +1 -0
  122. package/lib/codecs/IndexCodec.js +3 -0
  123. package/lib/codecs/IndexCodec.js.map +1 -0
  124. package/lib/codecs/JsonCodec.d.ts +19 -0
  125. package/lib/codecs/JsonCodec.d.ts.map +1 -0
  126. package/lib/codecs/JsonCodec.js +35 -0
  127. package/lib/codecs/JsonCodec.js.map +1 -0
  128. package/lib/codecs/JsonCodec.spec.d.ts +2 -0
  129. package/lib/codecs/JsonCodec.spec.d.ts.map +1 -0
  130. package/lib/codecs/JsonCodec.spec.js +66 -0
  131. package/lib/codecs/JsonCodec.spec.js.map +1 -0
  132. package/lib/codecs/LocalIndex.protobuf.spec.d.ts +2 -0
  133. package/lib/codecs/LocalIndex.protobuf.spec.d.ts.map +1 -0
  134. package/lib/codecs/LocalIndex.protobuf.spec.js +108 -0
  135. package/lib/codecs/LocalIndex.protobuf.spec.js.map +1 -0
  136. package/lib/codecs/ProtobufCodec.d.ts +20 -0
  137. package/lib/codecs/ProtobufCodec.d.ts.map +1 -0
  138. package/lib/codecs/ProtobufCodec.js +225 -0
  139. package/lib/codecs/ProtobufCodec.js.map +1 -0
  140. package/lib/codecs/ProtobufCodec.spec.d.ts +2 -0
  141. package/lib/codecs/ProtobufCodec.spec.d.ts.map +1 -0
  142. package/lib/codecs/ProtobufCodec.spec.js +155 -0
  143. package/lib/codecs/ProtobufCodec.spec.js.map +1 -0
  144. package/lib/codecs/index.d.ts +5 -0
  145. package/lib/codecs/index.d.ts.map +1 -0
  146. package/lib/codecs/index.js +21 -0
  147. package/lib/codecs/index.js.map +1 -0
  148. package/lib/codecs/migrateIndex.d.ts +24 -0
  149. package/lib/codecs/migrateIndex.d.ts.map +1 -0
  150. package/lib/codecs/migrateIndex.js +119 -0
  151. package/lib/codecs/migrateIndex.js.map +1 -0
  152. package/lib/codecs/migrateIndex.spec.d.ts +2 -0
  153. package/lib/codecs/migrateIndex.spec.d.ts.map +1 -0
  154. package/lib/codecs/migrateIndex.spec.js +151 -0
  155. package/lib/codecs/migrateIndex.spec.js.map +1 -0
  156. package/lib/codecs/schemas/index.proto +34 -0
  157. package/lib/index.d.ts +20 -0
  158. package/lib/index.d.ts.map +1 -1
  159. package/lib/index.js +36 -0
  160. package/lib/index.js.map +1 -0
  161. package/lib/internals/Colorize.d.ts +14 -0
  162. package/lib/internals/Colorize.d.ts.map +1 -0
  163. package/lib/internals/Colorize.js +69 -0
  164. package/lib/internals/Colorize.js.map +1 -0
  165. package/lib/internals/index.d.ts +3 -0
  166. package/lib/internals/index.d.ts.map +1 -0
  167. package/lib/internals/index.js +19 -0
  168. package/lib/internals/index.js.map +1 -0
  169. package/lib/internals/types.d.ts +43 -0
  170. package/lib/internals/types.d.ts.map +1 -0
  171. package/lib/internals/types.js +3 -0
  172. package/lib/internals/types.js.map +1 -0
  173. package/lib/server/IndexManager.d.ts +78 -0
  174. package/lib/server/IndexManager.d.ts.map +1 -0
  175. package/lib/server/IndexManager.js +259 -0
  176. package/lib/server/IndexManager.js.map +1 -0
  177. package/lib/server/VectraServer.d.ts +40 -0
  178. package/lib/server/VectraServer.d.ts.map +1 -0
  179. package/lib/server/VectraServer.js +151 -0
  180. package/lib/server/VectraServer.js.map +1 -0
  181. package/lib/server/VectraServer.spec.d.ts +2 -0
  182. package/lib/server/VectraServer.spec.d.ts.map +1 -0
  183. package/lib/server/VectraServer.spec.js +322 -0
  184. package/lib/server/VectraServer.spec.js.map +1 -0
  185. package/lib/server/handlers/documentHandlers.d.ts +15 -0
  186. package/lib/server/handlers/documentHandlers.d.ts.map +1 -0
  187. package/lib/server/handlers/documentHandlers.js +95 -0
  188. package/lib/server/handlers/documentHandlers.js.map +1 -0
  189. package/lib/server/handlers/helpers.d.ts +23 -0
  190. package/lib/server/handlers/helpers.d.ts.map +1 -0
  191. package/lib/server/handlers/helpers.js +138 -0
  192. package/lib/server/handlers/helpers.js.map +1 -0
  193. package/lib/server/handlers/index.d.ts +8 -0
  194. package/lib/server/handlers/index.d.ts.map +1 -0
  195. package/lib/server/handlers/index.js +22 -0
  196. package/lib/server/handlers/index.js.map +1 -0
  197. package/lib/server/handlers/indexHandlers.d.ts +14 -0
  198. package/lib/server/handlers/indexHandlers.d.ts.map +1 -0
  199. package/lib/server/handlers/indexHandlers.js +85 -0
  200. package/lib/server/handlers/indexHandlers.js.map +1 -0
  201. package/lib/server/handlers/itemHandlers.d.ts +34 -0
  202. package/lib/server/handlers/itemHandlers.d.ts.map +1 -0
  203. package/lib/server/handlers/itemHandlers.js +166 -0
  204. package/lib/server/handlers/itemHandlers.js.map +1 -0
  205. package/lib/server/handlers/lifecycleHandlers.d.ts +11 -0
  206. package/lib/server/handlers/lifecycleHandlers.d.ts.map +1 -0
  207. package/lib/server/handlers/lifecycleHandlers.js +31 -0
  208. package/lib/server/handlers/lifecycleHandlers.js.map +1 -0
  209. package/lib/server/handlers/queryHandlers.d.ts +27 -0
  210. package/lib/server/handlers/queryHandlers.d.ts.map +1 -0
  211. package/lib/server/handlers/queryHandlers.js +135 -0
  212. package/lib/server/handlers/queryHandlers.js.map +1 -0
  213. package/lib/server/handlers/statsHandlers.d.ts +17 -0
  214. package/lib/server/handlers/statsHandlers.d.ts.map +1 -0
  215. package/lib/server/handlers/statsHandlers.js +81 -0
  216. package/lib/server/handlers/statsHandlers.js.map +1 -0
  217. package/lib/server/index.d.ts +4 -0
  218. package/lib/server/index.d.ts.map +1 -0
  219. package/lib/server/index.js +23 -0
  220. package/lib/server/index.js.map +1 -0
  221. package/lib/storage/FileStorage.d.ts +92 -0
  222. package/lib/storage/FileStorage.d.ts.map +1 -0
  223. package/lib/storage/FileStorage.js +3 -0
  224. package/lib/storage/FileStorage.js.map +1 -0
  225. package/lib/storage/FileStorageUtilities.d.ts +36 -0
  226. package/lib/storage/FileStorageUtilities.d.ts.map +1 -0
  227. package/lib/storage/FileStorageUtilities.js +91 -0
  228. package/lib/storage/FileStorageUtilities.js.map +1 -0
  229. package/lib/storage/FileStorageUtilities.spec.d.ts +2 -0
  230. package/lib/storage/FileStorageUtilities.spec.d.ts.map +1 -0
  231. package/lib/storage/FileStorageUtilities.spec.js +98 -0
  232. package/lib/storage/FileStorageUtilities.spec.js.map +1 -0
  233. package/lib/storage/FileType.d.ts +29 -0
  234. package/lib/storage/FileType.d.ts.map +1 -0
  235. package/lib/storage/FileType.js +38 -0
  236. package/lib/storage/FileType.js.map +1 -0
  237. package/lib/storage/IndexedDBStorage.d.ts +47 -0
  238. package/lib/storage/IndexedDBStorage.d.ts.map +1 -0
  239. package/lib/storage/IndexedDBStorage.js +347 -0
  240. package/lib/storage/IndexedDBStorage.js.map +1 -0
  241. package/lib/storage/LocalFileStorage.browser.d.ts +19 -0
  242. package/lib/storage/LocalFileStorage.browser.d.ts.map +1 -0
  243. package/lib/storage/LocalFileStorage.browser.js +43 -0
  244. package/lib/storage/LocalFileStorage.browser.js.map +1 -0
  245. package/lib/storage/LocalFileStorage.d.ts +23 -0
  246. package/lib/storage/LocalFileStorage.d.ts.map +1 -0
  247. package/lib/storage/LocalFileStorage.js +152 -0
  248. package/lib/storage/LocalFileStorage.js.map +1 -0
  249. package/lib/storage/LocalFileStorage.spec.d.ts +2 -0
  250. package/lib/storage/LocalFileStorage.spec.d.ts.map +1 -0
  251. package/lib/storage/LocalFileStorage.spec.js +249 -0
  252. package/lib/storage/LocalFileStorage.spec.js.map +1 -0
  253. package/lib/storage/VirtualFileStorage.d.ts +18 -0
  254. package/lib/storage/VirtualFileStorage.d.ts.map +1 -0
  255. package/lib/storage/VirtualFileStorage.js +178 -0
  256. package/lib/storage/VirtualFileStorage.js.map +1 -0
  257. package/lib/storage/VirtualFileStorage.spec.d.ts +2 -0
  258. package/lib/storage/VirtualFileStorage.spec.d.ts.map +1 -0
  259. package/lib/storage/VirtualFileStorage.spec.js +302 -0
  260. package/lib/storage/VirtualFileStorage.spec.js.map +1 -0
  261. package/lib/storage/index.d.ts +6 -0
  262. package/lib/storage/index.d.ts.map +1 -0
  263. package/lib/storage/index.js +22 -0
  264. package/lib/storage/index.js.map +1 -0
  265. package/lib/templates/templates/csharp/README.md +48 -0
  266. package/lib/templates/templates/csharp/VectraClient.cs +234 -0
  267. package/lib/templates/templates/go/README.md +71 -0
  268. package/lib/templates/templates/go/vectra_client.go +322 -0
  269. package/lib/templates/templates/java/README.md +81 -0
  270. package/lib/templates/templates/java/VectraClient.java +232 -0
  271. package/lib/templates/templates/python/README.md +37 -0
  272. package/lib/templates/templates/python/vectra_client.py +279 -0
  273. package/lib/templates/templates/rust/Cargo.toml +14 -0
  274. package/lib/templates/templates/rust/README.md +39 -0
  275. package/lib/templates/templates/rust/build.rs +4 -0
  276. package/lib/templates/templates/rust/lib.rs +284 -0
  277. package/lib/templates/templates/typescript/README.md +96 -0
  278. package/lib/templates/templates/typescript/VectraClient.ts +374 -0
  279. package/lib/templates/typescript/VectraClient.d.ts +114 -0
  280. package/lib/templates/typescript/VectraClient.d.ts.map +1 -0
  281. package/lib/templates/typescript/VectraClient.js +328 -0
  282. package/lib/templates/typescript/VectraClient.js.map +1 -0
  283. package/lib/types.d.ts +153 -0
  284. package/lib/types.d.ts.map +1 -0
  285. package/lib/types.js +3 -0
  286. package/lib/types.js.map +1 -0
  287. package/lib/utils/index.d.ts +2 -0
  288. package/lib/utils/index.d.ts.map +1 -0
  289. package/lib/utils/index.js +18 -0
  290. package/lib/utils/index.js.map +1 -0
  291. package/lib/utils/pathUtils.d.ts +40 -0
  292. package/lib/utils/pathUtils.d.ts.map +1 -0
  293. package/lib/utils/pathUtils.js +98 -0
  294. package/lib/utils/pathUtils.js.map +1 -0
  295. package/lib/vectra-cli.d.ts +2 -0
  296. package/lib/vectra-cli.d.ts.map +1 -1
  297. package/lib/vectra-cli.generate.spec.d.ts +2 -0
  298. package/lib/vectra-cli.generate.spec.d.ts.map +1 -0
  299. package/lib/vectra-cli.generate.spec.js +112 -0
  300. package/lib/vectra-cli.generate.spec.js.map +1 -0
  301. package/lib/vectra-cli.js +760 -0
  302. package/lib/vectra-cli.js.map +1 -0
  303. package/lib/vectra-cli.spec.d.ts +1 -0
  304. package/lib/vectra-cli.spec.d.ts.map +1 -0
  305. package/lib/vectra-cli.spec.js +2 -0
  306. package/lib/vectra-cli.spec.js.map +1 -0
  307. package/package.json +91 -16
  308. package/proto/vectra_service.proto +276 -0
  309. package/src/BrowserWebFetcher.ts +345 -0
  310. package/src/FileFetcher.spec.ts +234 -0
  311. package/src/FileFetcher.ts +37 -25
  312. package/src/FolderWatcher.spec.ts +288 -0
  313. package/src/FolderWatcher.ts +304 -0
  314. package/src/GPT3Tokenizer.spec.ts +50 -0
  315. package/src/ItemSelector.spec.ts +252 -0
  316. package/src/ItemSelector.ts +163 -150
  317. package/src/LocalDocument.spec.ts +211 -0
  318. package/src/LocalDocument.ts +88 -94
  319. package/src/LocalDocumentIndex.spec.ts +481 -0
  320. package/src/LocalDocumentIndex.ts +39 -40
  321. package/src/LocalDocumentResult.spec.ts +373 -0
  322. package/src/LocalDocumentResult.ts +489 -319
  323. package/src/LocalEmbeddings.spec.ts +138 -0
  324. package/src/LocalEmbeddings.ts +120 -0
  325. package/src/LocalIndex.spec.ts +808 -66
  326. package/src/LocalIndex.ts +479 -429
  327. package/src/OpenAIEmbeddings.spec.ts +354 -0
  328. package/src/OpenAIEmbeddings.ts +26 -27
  329. package/src/TextSplitter.spec.ts +342 -0
  330. package/src/TextSplitter.ts +517 -532
  331. package/src/TransformersEmbeddings.spec.ts +188 -0
  332. package/src/TransformersEmbeddings.ts +232 -0
  333. package/src/TransformersTokenizer.spec.ts +143 -0
  334. package/src/TransformersTokenizer.ts +45 -0
  335. package/src/WebFetcher.spec.ts +288 -0
  336. package/src/WebFetcher.ts +184 -186
  337. package/src/browser.ts +69 -0
  338. package/src/codecs/IndexCodec.ts +40 -0
  339. package/src/codecs/JsonCodec.spec.ts +70 -0
  340. package/src/codecs/JsonCodec.ts +37 -0
  341. package/src/codecs/LocalIndex.protobuf.spec.ts +115 -0
  342. package/src/codecs/ProtobufCodec.spec.ts +166 -0
  343. package/src/codecs/ProtobufCodec.ts +193 -0
  344. package/src/codecs/index.ts +4 -0
  345. package/src/codecs/migrateIndex.spec.ts +176 -0
  346. package/src/codecs/migrateIndex.ts +125 -0
  347. package/src/codecs/schemas/index.proto +34 -0
  348. package/src/index.ts +9 -1
  349. package/src/internals/Colorize.ts +19 -16
  350. package/src/server/IndexManager.ts +243 -0
  351. package/src/server/VectraServer.spec.ts +303 -0
  352. package/src/server/VectraServer.ts +156 -0
  353. package/src/server/handlers/documentHandlers.ts +59 -0
  354. package/src/server/handlers/helpers.ts +93 -0
  355. package/src/server/handlers/index.ts +7 -0
  356. package/src/server/handlers/indexHandlers.ts +44 -0
  357. package/src/server/handlers/itemHandlers.ts +140 -0
  358. package/src/server/handlers/lifecycleHandlers.ts +26 -0
  359. package/src/server/handlers/queryHandlers.ts +96 -0
  360. package/src/server/handlers/statsHandlers.ts +38 -0
  361. package/src/server/index.ts +3 -0
  362. package/src/storage/FileStorage.ts +105 -0
  363. package/src/storage/FileStorageUtilities.spec.ts +106 -0
  364. package/src/storage/FileStorageUtilities.ts +77 -0
  365. package/src/storage/FileType.ts +61 -0
  366. package/src/storage/IndexedDBStorage.ts +365 -0
  367. package/src/storage/LocalFileStorage.browser.ts +52 -0
  368. package/src/storage/LocalFileStorage.spec.ts +292 -0
  369. package/src/storage/LocalFileStorage.ts +98 -0
  370. package/src/storage/VirtualFileStorage.spec.ts +307 -0
  371. package/src/storage/VirtualFileStorage.ts +169 -0
  372. package/src/storage/index.ts +5 -0
  373. package/src/templates/csharp/README.md +48 -0
  374. package/src/templates/csharp/VectraClient.cs +234 -0
  375. package/src/templates/go/README.md +71 -0
  376. package/src/templates/go/vectra_client.go +322 -0
  377. package/src/templates/java/README.md +81 -0
  378. package/src/templates/java/VectraClient.java +232 -0
  379. package/src/templates/python/README.md +37 -0
  380. package/src/templates/python/vectra_client.py +279 -0
  381. package/src/templates/rust/Cargo.toml +14 -0
  382. package/src/templates/rust/README.md +39 -0
  383. package/src/templates/rust/build.rs +4 -0
  384. package/src/templates/rust/lib.rs +284 -0
  385. package/src/templates/typescript/README.md +96 -0
  386. package/src/templates/typescript/VectraClient.ts +374 -0
  387. package/src/types.ts +131 -123
  388. package/src/utils/index.ts +1 -0
  389. package/src/utils/pathUtils.ts +106 -0
  390. package/src/vectra-cli.generate.spec.ts +72 -0
  391. package/src/vectra-cli.spec.ts +0 -0
  392. package/src/vectra-cli.ts +687 -246
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_assert_1 = __importDefault(require("node:assert"));
7
+ const ProtobufCodec_1 = require("./ProtobufCodec");
8
+ const JsonCodec_1 = require("./JsonCodec");
9
+ describe('ProtobufCodec', () => {
10
+ const codec = new ProtobufCodec_1.ProtobufCodec();
11
+ it('has .pb extension', () => {
12
+ node_assert_1.default.equal(codec.extension, '.pb');
13
+ });
14
+ describe('serializeIndex / deserializeIndex', () => {
15
+ it('round-trips IndexData', () => {
16
+ const data = {
17
+ version: 1,
18
+ metadata_config: { indexed: ['category'] },
19
+ items: [
20
+ { id: 'a', metadata: { category: 'food', score: 42 }, vector: [1.5, 2.5, 3.5], norm: 4.5 },
21
+ { id: 'b', metadata: {}, vector: [0, 0, 0], norm: 0, metadataFile: 'ext.pb' },
22
+ ],
23
+ };
24
+ const buf = codec.serializeIndex(data);
25
+ node_assert_1.default.ok(Buffer.isBuffer(buf));
26
+ const result = codec.deserializeIndex(buf);
27
+ node_assert_1.default.equal(result.version, data.version);
28
+ node_assert_1.default.deepStrictEqual(result.metadata_config, data.metadata_config);
29
+ node_assert_1.default.equal(result.items.length, 2);
30
+ node_assert_1.default.equal(result.items[0].id, 'a');
31
+ node_assert_1.default.deepStrictEqual(result.items[0].metadata, { category: 'food', score: 42 });
32
+ // Float32 precision: vectors should be close but not exact
33
+ node_assert_1.default.ok(Math.abs(result.items[0].vector[0] - 1.5) < 0.001);
34
+ node_assert_1.default.ok(Math.abs(result.items[0].vector[1] - 2.5) < 0.001);
35
+ node_assert_1.default.ok(Math.abs(result.items[0].vector[2] - 3.5) < 0.001);
36
+ node_assert_1.default.equal(result.items[0].norm, 4.5); // norm is double, exact
37
+ node_assert_1.default.equal(result.items[1].metadataFile, 'ext.pb');
38
+ });
39
+ it('handles empty items', () => {
40
+ const data = { version: 2, metadata_config: {}, items: [] };
41
+ const result = codec.deserializeIndex(codec.serializeIndex(data));
42
+ node_assert_1.default.equal(result.version, 2);
43
+ node_assert_1.default.deepStrictEqual(result.items, []);
44
+ });
45
+ it('handles boolean metadata values', () => {
46
+ const data = {
47
+ version: 1,
48
+ metadata_config: {},
49
+ items: [
50
+ { id: 'x', metadata: { active: true, deleted: false }, vector: [1], norm: 1 },
51
+ ],
52
+ };
53
+ // Note: false/0/"" are proto3 default values — test the tricky case
54
+ const result = codec.deserializeIndex(codec.serializeIndex(data));
55
+ node_assert_1.default.equal(result.items[0].metadata.active, true);
56
+ });
57
+ it('handles string metadata', () => {
58
+ const data = {
59
+ version: 1,
60
+ metadata_config: {},
61
+ items: [
62
+ { id: 'x', metadata: { name: 'hello', tag: 'world' }, vector: [1], norm: 1 },
63
+ ],
64
+ };
65
+ const result = codec.deserializeIndex(codec.serializeIndex(data));
66
+ node_assert_1.default.equal(result.items[0].metadata.name, 'hello');
67
+ node_assert_1.default.equal(result.items[0].metadata.tag, 'world');
68
+ });
69
+ });
70
+ describe('serializeCatalog / deserializeCatalog', () => {
71
+ it('round-trips DocumentCatalog', () => {
72
+ const catalog = {
73
+ version: 1,
74
+ count: 2,
75
+ uriToId: { 'http://a': 'id-a', 'http://b': 'id-b' },
76
+ idToUri: { 'id-a': 'http://a', 'id-b': 'http://b' },
77
+ };
78
+ const buf = codec.serializeCatalog(catalog);
79
+ node_assert_1.default.ok(Buffer.isBuffer(buf));
80
+ const result = codec.deserializeCatalog(buf);
81
+ node_assert_1.default.deepStrictEqual(result, catalog);
82
+ });
83
+ it('handles empty catalog', () => {
84
+ const catalog = { version: 1, count: 0, uriToId: {}, idToUri: {} };
85
+ const result = codec.deserializeCatalog(codec.serializeCatalog(catalog));
86
+ node_assert_1.default.deepStrictEqual(result, catalog);
87
+ });
88
+ });
89
+ describe('serializeMetadata / deserializeMetadata', () => {
90
+ it('round-trips metadata (uses JSON for external files)', () => {
91
+ const metadata = { name: 'test', score: 42, active: true };
92
+ const buf = codec.serializeMetadata(metadata);
93
+ const result = codec.deserializeMetadata(buf);
94
+ node_assert_1.default.deepStrictEqual(result, metadata);
95
+ });
96
+ });
97
+ describe('cross-codec compatibility', () => {
98
+ const json = new JsonCodec_1.JsonCodec();
99
+ const pb = new ProtobufCodec_1.ProtobufCodec();
100
+ it('data serialized with JSON can be re-serialized with Protobuf and back (logical equivalence)', () => {
101
+ const data = {
102
+ version: 1,
103
+ metadata_config: { indexed: ['cat'] },
104
+ items: [
105
+ { id: 'item1', metadata: { cat: 'a', num: 7 }, vector: [0.1, 0.2, 0.3], norm: 0.374 },
106
+ ],
107
+ };
108
+ // JSON -> Protobuf
109
+ const jsonBuf = json.serializeIndex(data);
110
+ const fromJson = json.deserializeIndex(jsonBuf);
111
+ const pbBuf = pb.serializeIndex(fromJson);
112
+ const fromPb = pb.deserializeIndex(pbBuf);
113
+ node_assert_1.default.equal(fromPb.version, data.version);
114
+ node_assert_1.default.deepStrictEqual(fromPb.metadata_config, data.metadata_config);
115
+ node_assert_1.default.equal(fromPb.items[0].id, data.items[0].id);
116
+ node_assert_1.default.deepStrictEqual(fromPb.items[0].metadata, data.items[0].metadata);
117
+ // Protobuf -> JSON
118
+ const jsonBuf2 = json.serializeIndex(fromPb);
119
+ const final = json.deserializeIndex(jsonBuf2);
120
+ node_assert_1.default.equal(final.items[0].id, 'item1');
121
+ node_assert_1.default.deepStrictEqual(final.items[0].metadata, { cat: 'a', num: 7 });
122
+ });
123
+ it('catalog round-trips across codecs', () => {
124
+ const catalog = {
125
+ version: 1,
126
+ count: 1,
127
+ uriToId: { 'file://doc.txt': 'uuid-1' },
128
+ idToUri: { 'uuid-1': 'file://doc.txt' },
129
+ };
130
+ const pbBuf = pb.serializeCatalog(catalog);
131
+ const fromPb = pb.deserializeCatalog(pbBuf);
132
+ const jsonBuf = json.serializeCatalog(fromPb);
133
+ const final = json.deserializeCatalog(jsonBuf);
134
+ node_assert_1.default.deepStrictEqual(final, catalog);
135
+ });
136
+ });
137
+ describe('protobuf produces smaller output than JSON for vector data', () => {
138
+ it('binary is smaller than JSON for a 1536-dim vector', () => {
139
+ const vector = Array.from({ length: 1536 }, (_, i) => Math.random() * 2 - 1);
140
+ const norm = Math.sqrt(vector.reduce((s, v) => s + v * v, 0));
141
+ const data = {
142
+ version: 1,
143
+ metadata_config: {},
144
+ items: [{ id: 'vec', metadata: {}, vector, norm }],
145
+ };
146
+ const jsonSize = new JsonCodec_1.JsonCodec().serializeIndex(data).length;
147
+ const pbSize = codec.serializeIndex(data).length;
148
+ // Protobuf should be significantly smaller
149
+ node_assert_1.default.ok(pbSize < jsonSize, `Expected pb (${pbSize}) < json (${jsonSize})`);
150
+ // Spec says ~40-50% savings
151
+ node_assert_1.default.ok(pbSize < jsonSize * 0.7, `Expected at least 30% savings, got ${((1 - pbSize / jsonSize) * 100).toFixed(1)}%`);
152
+ });
153
+ });
154
+ });
155
+ //# sourceMappingURL=ProtobufCodec.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtobufCodec.spec.js","sourceRoot":"","sources":["../../src/codecs/ProtobufCodec.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './IndexCodec';
2
+ export * from './JsonCodec';
3
+ export * from './ProtobufCodec';
4
+ export * from './migrateIndex';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codecs/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./IndexCodec"), exports);
18
+ __exportStar(require("./JsonCodec"), exports);
19
+ __exportStar(require("./ProtobufCodec"), exports);
20
+ __exportStar(require("./migrateIndex"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codecs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,8CAA4B;AAC5B,kDAAgC;AAChC,iDAA+B"}
@@ -0,0 +1,24 @@
1
+ import { FileStorage } from '../storage';
2
+ import { IndexCodec } from './IndexCodec';
3
+ export type FormatName = 'json' | 'protobuf';
4
+ /**
5
+ * Detects the codec in use for an existing index folder.
6
+ * @remarks
7
+ * Checks for `index.json` and `index.pb` files. If both exist, throws an
8
+ * error directing the user to re-run migration. If neither exists, throws.
9
+ * @param folderPath Path to the index folder.
10
+ * @param storage Storage backend to use.
11
+ * @returns The detected codec.
12
+ */
13
+ export declare function detectCodec(folderPath: string, storage: FileStorage): Promise<IndexCodec>;
14
+ export interface MigrateOptions {
15
+ to: FormatName;
16
+ storage?: FileStorage;
17
+ }
18
+ /**
19
+ * Migrates an index folder from one serialization format to another.
20
+ * @param folderPath Path to the index folder.
21
+ * @param options Migration options.
22
+ */
23
+ export declare function migrateIndex(folderPath: string, options: MigrateOptions): Promise<void>;
24
+ //# sourceMappingURL=migrateIndex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrateIndex.d.ts","sourceRoot":"","sources":["../../src/codecs/migrateIndex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAoB,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAM7C;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAa/F;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,UAAU,CAAC;IACf,OAAO,CAAC,EAAE,WAAW,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA8E7F"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.detectCodec = detectCodec;
13
+ exports.migrateIndex = migrateIndex;
14
+ const pathUtils_1 = require("../utils/pathUtils");
15
+ const storage_1 = require("../storage");
16
+ const JsonCodec_1 = require("./JsonCodec");
17
+ const ProtobufCodec_1 = require("./ProtobufCodec");
18
+ function codecForFormat(format) {
19
+ return format === 'protobuf' ? new ProtobufCodec_1.ProtobufCodec() : new JsonCodec_1.JsonCodec();
20
+ }
21
+ /**
22
+ * Detects the codec in use for an existing index folder.
23
+ * @remarks
24
+ * Checks for `index.json` and `index.pb` files. If both exist, throws an
25
+ * error directing the user to re-run migration. If neither exists, throws.
26
+ * @param folderPath Path to the index folder.
27
+ * @param storage Storage backend to use.
28
+ * @returns The detected codec.
29
+ */
30
+ function detectCodec(folderPath, storage) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ const hasJson = yield storage.pathExists(pathUtils_1.pathUtils.join(folderPath, 'index.json'));
33
+ const hasPb = yield storage.pathExists(pathUtils_1.pathUtils.join(folderPath, 'index.pb'));
34
+ if (hasJson && hasPb) {
35
+ throw new Error('Both index.json and index.pb found — the index may be in a partially migrated state. ' +
36
+ 'Run `vectra migrate` or `migrateIndex()` to complete the migration.');
37
+ }
38
+ if (hasPb)
39
+ return new ProtobufCodec_1.ProtobufCodec();
40
+ if (hasJson)
41
+ return new JsonCodec_1.JsonCodec();
42
+ throw new Error('No index file found (expected index.json or index.pb).');
43
+ });
44
+ }
45
+ /**
46
+ * Migrates an index folder from one serialization format to another.
47
+ * @param folderPath Path to the index folder.
48
+ * @param options Migration options.
49
+ */
50
+ function migrateIndex(folderPath, options) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ const storage = options.storage || new storage_1.LocalFileStorage();
53
+ const targetCodec = codecForFormat(options.to);
54
+ // Detect current format
55
+ const sourceCodec = yield detectCodec(folderPath, storage);
56
+ if (sourceCodec.extension === targetCodec.extension) {
57
+ return; // Already in target format
58
+ }
59
+ // --- Migrate index file ---
60
+ const sourceIndexPath = pathUtils_1.pathUtils.join(folderPath, `index${sourceCodec.extension}`);
61
+ const targetIndexPath = pathUtils_1.pathUtils.join(folderPath, `index${targetCodec.extension}`);
62
+ const indexBuffer = yield storage.readFile(sourceIndexPath);
63
+ const indexData = sourceCodec.deserializeIndex(indexBuffer);
64
+ // Rewrite external metadata file references
65
+ for (const item of indexData.items) {
66
+ if (item.metadataFile && item.metadataFile.endsWith(sourceCodec.extension)) {
67
+ const baseName = item.metadataFile.slice(0, -sourceCodec.extension.length);
68
+ const oldMetaPath = pathUtils_1.pathUtils.join(folderPath, item.metadataFile);
69
+ const newMetaFile = `${baseName}${targetCodec.extension}`;
70
+ const newMetaPath = pathUtils_1.pathUtils.join(folderPath, newMetaFile);
71
+ // Read, re-serialize, write
72
+ const metaBuf = yield storage.readFile(oldMetaPath);
73
+ const metadata = sourceCodec.deserializeMetadata(metaBuf);
74
+ yield storage.upsertFile(newMetaPath, targetCodec.serializeMetadata(metadata));
75
+ // Update reference
76
+ item.metadataFile = newMetaFile;
77
+ }
78
+ }
79
+ // Write new index
80
+ yield storage.upsertFile(targetIndexPath, targetCodec.serializeIndex(indexData));
81
+ // --- Migrate catalog if present ---
82
+ const sourceCatalogPath = pathUtils_1.pathUtils.join(folderPath, `catalog${sourceCodec.extension}`);
83
+ const targetCatalogPath = pathUtils_1.pathUtils.join(folderPath, `catalog${targetCodec.extension}`);
84
+ if (yield storage.pathExists(sourceCatalogPath)) {
85
+ const catalogBuffer = yield storage.readFile(sourceCatalogPath);
86
+ const catalog = sourceCodec.deserializeCatalog(catalogBuffer);
87
+ // Migrate per-document metadata files
88
+ for (const docId of Object.values(catalog.idToUri ? catalog.idToUri : {})) {
89
+ // Document metadata uses documentId as filename base
90
+ }
91
+ // Actually the document IDs are the keys of idToUri
92
+ for (const docId of Object.keys(catalog.idToUri)) {
93
+ const oldDocMetaPath = pathUtils_1.pathUtils.join(folderPath, `${docId}${sourceCodec.extension}`);
94
+ if (yield storage.pathExists(oldDocMetaPath)) {
95
+ const docMetaBuf = yield storage.readFile(oldDocMetaPath);
96
+ const docMeta = sourceCodec.deserializeMetadata(docMetaBuf);
97
+ const newDocMetaPath = pathUtils_1.pathUtils.join(folderPath, `${docId}${targetCodec.extension}`);
98
+ yield storage.upsertFile(newDocMetaPath, targetCodec.serializeMetadata(docMeta));
99
+ yield storage.deleteFile(oldDocMetaPath);
100
+ }
101
+ }
102
+ yield storage.upsertFile(targetCatalogPath, targetCodec.serializeCatalog(catalog));
103
+ yield storage.deleteFile(sourceCatalogPath);
104
+ }
105
+ // --- Clean up old files (after new files are safely written) ---
106
+ // Delete old external metadata files
107
+ for (const item of sourceCodec.deserializeIndex(indexBuffer).items) {
108
+ if (item.metadataFile) {
109
+ const oldMetaPath = pathUtils_1.pathUtils.join(folderPath, item.metadataFile);
110
+ if (yield storage.pathExists(oldMetaPath)) {
111
+ yield storage.deleteFile(oldMetaPath);
112
+ }
113
+ }
114
+ }
115
+ // Delete old index file last
116
+ yield storage.deleteFile(sourceIndexPath);
117
+ });
118
+ }
119
+ //# sourceMappingURL=migrateIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrateIndex.js","sourceRoot":"","sources":["../../src/codecs/migrateIndex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=migrateIndex.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrateIndex.spec.d.ts","sourceRoot":"","sources":["../../src/codecs/migrateIndex.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const node_assert_1 = __importDefault(require("node:assert"));
16
+ const storage_1 = require("../storage");
17
+ const JsonCodec_1 = require("./JsonCodec");
18
+ const ProtobufCodec_1 = require("./ProtobufCodec");
19
+ const migrateIndex_1 = require("./migrateIndex");
20
+ describe('detectCodec', () => {
21
+ it('detects JSON format', () => __awaiter(void 0, void 0, void 0, function* () {
22
+ const storage = new storage_1.VirtualFileStorage();
23
+ yield storage.createFolder('/idx');
24
+ yield storage.upsertFile('/idx/index.json', '{}');
25
+ const codec = yield (0, migrateIndex_1.detectCodec)('/idx', storage);
26
+ node_assert_1.default.equal(codec.extension, '.json');
27
+ }));
28
+ it('detects Protobuf format', () => __awaiter(void 0, void 0, void 0, function* () {
29
+ const storage = new storage_1.VirtualFileStorage();
30
+ yield storage.createFolder('/idx');
31
+ yield storage.upsertFile('/idx/index.pb', Buffer.from([0]));
32
+ const codec = yield (0, migrateIndex_1.detectCodec)('/idx', storage);
33
+ node_assert_1.default.equal(codec.extension, '.pb');
34
+ }));
35
+ it('throws when both formats exist', () => __awaiter(void 0, void 0, void 0, function* () {
36
+ const storage = new storage_1.VirtualFileStorage();
37
+ yield storage.createFolder('/idx');
38
+ yield storage.upsertFile('/idx/index.json', '{}');
39
+ yield storage.upsertFile('/idx/index.pb', Buffer.from([0]));
40
+ yield node_assert_1.default.rejects(() => (0, migrateIndex_1.detectCodec)('/idx', storage), /Both index\.json and index\.pb found/);
41
+ }));
42
+ it('throws when no index file exists', () => __awaiter(void 0, void 0, void 0, function* () {
43
+ const storage = new storage_1.VirtualFileStorage();
44
+ yield storage.createFolder('/idx');
45
+ yield node_assert_1.default.rejects(() => (0, migrateIndex_1.detectCodec)('/idx', storage), /No index file found/);
46
+ }));
47
+ });
48
+ describe('migrateIndex', () => {
49
+ const json = new JsonCodec_1.JsonCodec();
50
+ const pb = new ProtobufCodec_1.ProtobufCodec();
51
+ function makeIndexData() {
52
+ return {
53
+ version: 1,
54
+ metadata_config: { indexed: ['cat'] },
55
+ items: [
56
+ { id: 'item1', metadata: { cat: 'food' }, vector: [0.1, 0.2, 0.3], norm: 0.374 },
57
+ { id: 'item2', metadata: { cat: 'drink' }, vector: [0.4, 0.5, 0.6], norm: 0.877, metadataFile: 'abc.json' },
58
+ ],
59
+ };
60
+ }
61
+ function makeCatalog() {
62
+ return {
63
+ version: 1,
64
+ count: 1,
65
+ uriToId: { 'doc.txt': 'doc-id-1' },
66
+ idToUri: { 'doc-id-1': 'doc.txt' },
67
+ };
68
+ }
69
+ it('migrates JSON -> Protobuf', () => __awaiter(void 0, void 0, void 0, function* () {
70
+ const storage = new storage_1.VirtualFileStorage();
71
+ yield storage.createFolder('/idx');
72
+ const data = makeIndexData();
73
+ yield storage.upsertFile('/idx/index.json', json.serializeIndex(data));
74
+ yield storage.upsertFile('/idx/abc.json', json.serializeMetadata({ cat: 'drink', extra: 'data' }));
75
+ yield (0, migrateIndex_1.migrateIndex)('/idx', { to: 'protobuf', storage });
76
+ // Old files should be gone
77
+ node_assert_1.default.equal(yield storage.pathExists('/idx/index.json'), false);
78
+ node_assert_1.default.equal(yield storage.pathExists('/idx/abc.json'), false);
79
+ // New files should exist
80
+ node_assert_1.default.equal(yield storage.pathExists('/idx/index.pb'), true);
81
+ node_assert_1.default.equal(yield storage.pathExists('/idx/abc.pb'), true);
82
+ // Data should be intact
83
+ const result = pb.deserializeIndex(yield storage.readFile('/idx/index.pb'));
84
+ node_assert_1.default.equal(result.items.length, 2);
85
+ node_assert_1.default.equal(result.items[0].id, 'item1');
86
+ node_assert_1.default.equal(result.items[1].metadataFile, 'abc.pb');
87
+ // External metadata should be readable
88
+ const meta = pb.deserializeMetadata(yield storage.readFile('/idx/abc.pb'));
89
+ node_assert_1.default.equal(meta.cat, 'drink');
90
+ node_assert_1.default.equal(meta.extra, 'data');
91
+ }));
92
+ it('migrates Protobuf -> JSON', () => __awaiter(void 0, void 0, void 0, function* () {
93
+ const storage = new storage_1.VirtualFileStorage();
94
+ yield storage.createFolder('/idx');
95
+ const data = makeIndexData();
96
+ // Adjust metadataFile extension
97
+ data.items[1].metadataFile = 'abc.pb';
98
+ yield storage.upsertFile('/idx/index.pb', pb.serializeIndex(data));
99
+ yield storage.upsertFile('/idx/abc.pb', pb.serializeMetadata({ cat: 'drink', extra: 'data' }));
100
+ yield (0, migrateIndex_1.migrateIndex)('/idx', { to: 'json', storage });
101
+ node_assert_1.default.equal(yield storage.pathExists('/idx/index.pb'), false);
102
+ node_assert_1.default.equal(yield storage.pathExists('/idx/index.json'), true);
103
+ const result = json.deserializeIndex(yield storage.readFile('/idx/index.json'));
104
+ node_assert_1.default.equal(result.items.length, 2);
105
+ node_assert_1.default.equal(result.items[1].metadataFile, 'abc.json');
106
+ }));
107
+ it('migrates catalog along with index', () => __awaiter(void 0, void 0, void 0, function* () {
108
+ const storage = new storage_1.VirtualFileStorage();
109
+ yield storage.createFolder('/idx');
110
+ const data = { version: 1, metadata_config: {}, items: [] };
111
+ const catalog = makeCatalog();
112
+ yield storage.upsertFile('/idx/index.json', json.serializeIndex(data));
113
+ yield storage.upsertFile('/idx/catalog.json', json.serializeCatalog(catalog));
114
+ yield (0, migrateIndex_1.migrateIndex)('/idx', { to: 'protobuf', storage });
115
+ node_assert_1.default.equal(yield storage.pathExists('/idx/catalog.json'), false);
116
+ node_assert_1.default.equal(yield storage.pathExists('/idx/catalog.pb'), true);
117
+ const result = pb.deserializeCatalog(yield storage.readFile('/idx/catalog.pb'));
118
+ node_assert_1.default.deepStrictEqual(result, catalog);
119
+ }));
120
+ it('migrates document metadata files referenced by catalog', () => __awaiter(void 0, void 0, void 0, function* () {
121
+ const storage = new storage_1.VirtualFileStorage();
122
+ yield storage.createFolder('/idx');
123
+ const data = { version: 1, metadata_config: {}, items: [] };
124
+ const catalog = makeCatalog();
125
+ yield storage.upsertFile('/idx/index.json', json.serializeIndex(data));
126
+ yield storage.upsertFile('/idx/catalog.json', json.serializeCatalog(catalog));
127
+ yield storage.upsertFile('/idx/doc-id-1.json', json.serializeMetadata({ author: 'test' }));
128
+ yield (0, migrateIndex_1.migrateIndex)('/idx', { to: 'protobuf', storage });
129
+ node_assert_1.default.equal(yield storage.pathExists('/idx/doc-id-1.json'), false);
130
+ node_assert_1.default.equal(yield storage.pathExists('/idx/doc-id-1.pb'), true);
131
+ const meta = pb.deserializeMetadata(yield storage.readFile('/idx/doc-id-1.pb'));
132
+ node_assert_1.default.equal(meta.author, 'test');
133
+ }));
134
+ it('no-op when already in target format', () => __awaiter(void 0, void 0, void 0, function* () {
135
+ const storage = new storage_1.VirtualFileStorage();
136
+ yield storage.createFolder('/idx');
137
+ const data = { version: 1, metadata_config: {}, items: [] };
138
+ yield storage.upsertFile('/idx/index.json', json.serializeIndex(data));
139
+ yield (0, migrateIndex_1.migrateIndex)('/idx', { to: 'json', storage });
140
+ // Should still be there, unchanged
141
+ node_assert_1.default.equal(yield storage.pathExists('/idx/index.json'), true);
142
+ }));
143
+ it('interruption detection: dual format raises error on detectCodec', () => __awaiter(void 0, void 0, void 0, function* () {
144
+ const storage = new storage_1.VirtualFileStorage();
145
+ yield storage.createFolder('/idx');
146
+ yield storage.upsertFile('/idx/index.json', '{}');
147
+ yield storage.upsertFile('/idx/index.pb', Buffer.from([0]));
148
+ yield node_assert_1.default.rejects(() => (0, migrateIndex_1.detectCodec)('/idx', storage), /Both index\.json and index\.pb found/);
149
+ }));
150
+ });
151
+ //# sourceMappingURL=migrateIndex.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrateIndex.spec.js","sourceRoot":"","sources":["../../src/codecs/migrateIndex.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ syntax = "proto3";
2
+
3
+ message IndexData {
4
+ uint32 version = 1;
5
+ MetadataConfig metadata_config = 2;
6
+ repeated IndexItem items = 3;
7
+ }
8
+
9
+ message MetadataConfig {
10
+ repeated string indexed = 1;
11
+ }
12
+
13
+ message IndexItem {
14
+ string id = 1;
15
+ map<string, MetadataValue> metadata = 2;
16
+ repeated float vector = 3 [packed = true];
17
+ double norm = 4;
18
+ optional string metadata_file = 5;
19
+ }
20
+
21
+ message MetadataValue {
22
+ oneof value {
23
+ string string_value = 1;
24
+ double number_value = 2;
25
+ bool bool_value = 3;
26
+ }
27
+ }
28
+
29
+ message DocumentCatalog {
30
+ uint32 version = 1;
31
+ uint32 count = 2;
32
+ map<string, string> uri_to_id = 3;
33
+ map<string, string> id_to_uri = 4;
34
+ }
package/lib/index.d.ts ADDED
@@ -0,0 +1,20 @@
1
+ export * from './codecs';
2
+ export * from './storage';
3
+ export * from './FileFetcher';
4
+ export * from './FolderWatcher';
5
+ export * from './GPT3Tokenizer';
6
+ export * from './ItemSelector';
7
+ export * from './LocalEmbeddings';
8
+ export * from './LocalIndex';
9
+ export * from './LocalDocument';
10
+ export * from './LocalDocumentIndex';
11
+ export * from './LocalDocumentResult';
12
+ export * from './TextSplitter';
13
+ export * from './OpenAIEmbeddings';
14
+ export * from './TransformersEmbeddings';
15
+ export * from './TransformersTokenizer';
16
+ export * from './types';
17
+ export * from './WebFetcher';
18
+ export * from './server';
19
+ export * from './utils/pathUtils';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC"}