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,29 @@
1
+ export declare const ImageFileExt: string[];
2
+ export type ImageFileType = typeof ImageFileExt[number];
3
+ export declare const VideoFileExt: string[];
4
+ export type VideoFileType = typeof VideoFileExt[number];
5
+ export declare const AudioFileExt: string[];
6
+ export type AudioFileType = typeof AudioFileExt[number];
7
+ export declare const MediaFileExt: string[];
8
+ export type MediaFileType = ImageFileType | VideoFileType | AudioFileType;
9
+ export declare const ModelFileExt: string[];
10
+ export type ModelFileType = typeof ModelFileExt[number];
11
+ export declare const ArchiveFileExt: string[];
12
+ export type ArchiveFileType = typeof ArchiveFileExt[number];
13
+ export declare const SystemFileExt: string[];
14
+ export type SystemFileType = typeof SystemFileExt[number];
15
+ export declare const DatabaseFileExt: string[];
16
+ export type DatabaseFileType = typeof DatabaseFileExt[number];
17
+ export declare const BinaryFileExt: string[];
18
+ export declare const DocumentFileExt: string[];
19
+ export type DocumentFileType = typeof DocumentFileExt[number];
20
+ export declare const TextDocumentFileExt: string[];
21
+ export type TextDocumentFileType = typeof TextDocumentFileExt[number];
22
+ export declare const CodeFileExt: string[];
23
+ export type CodeFileType = typeof CodeFileExt[number];
24
+ export declare const PlainTextFileExt: string[];
25
+ export type PlainTextFileType = TextDocumentFileType | CodeFileType;
26
+ export declare const FileExt: string[];
27
+ export type FileType = typeof FileExt[number] | 'folder';
28
+ export declare const ContentTypeMap: Record<string, FileType>;
29
+ //# sourceMappingURL=FileType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileType.d.ts","sourceRoot":"","sources":["../../src/storage/FileType.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,UAAqF,CAAC;AAC/G,MAAM,MAAM,aAAa,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,YAAY,UAA2E,CAAC;AACrG,MAAM,MAAM,aAAa,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,YAAY,UAAqE,CAAC;AAC/F,MAAM,MAAM,aAAa,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,YAAY,UAAsD,CAAC;AAChF,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,CAAC;AAE1E,eAAO,MAAM,YAAY,UAA4D,CAAC;AACtF,MAAM,MAAM,aAAa,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc,UAA2C,CAAC;AACvE,MAAM,MAAM,eAAe,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAE5D,eAAO,MAAM,aAAa,UAA4F,CAAC;AACvH,MAAM,MAAM,cAAc,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAE1D,eAAO,MAAM,eAAe,UAAoC,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,aAAa,UAA8F,CAAC;AAEzH,eAAO,MAAM,eAAe,UAAqE,CAAC;AAClG,MAAM,MAAM,gBAAgB,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,mBAAmB,UAAqC,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAEtE,eAAO,MAAM,WAAW,UAAkP,CAAC;AAC3Q,MAAM,MAAM,YAAY,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAEtD,eAAO,MAAM,gBAAgB,UAA2C,CAAC;AACzE,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,YAAY,CAAC;AAEpE,eAAO,MAAM,OAAO,UAA8D,CAAC;AACnF,MAAM,MAAM,QAAQ,GAAG,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AAEzD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAmBnD,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContentTypeMap = exports.FileExt = exports.PlainTextFileExt = exports.CodeFileExt = exports.TextDocumentFileExt = exports.DocumentFileExt = exports.BinaryFileExt = exports.DatabaseFileExt = exports.SystemFileExt = exports.ArchiveFileExt = exports.ModelFileExt = exports.MediaFileExt = exports.AudioFileExt = exports.VideoFileExt = exports.ImageFileExt = void 0;
4
+ exports.ImageFileExt = ['png', 'jpg', 'jpeg', 'gif', 'bmp', 'tiff', 'tif', 'webp', 'svg', 'heic', 'heif'];
5
+ exports.VideoFileExt = ['mp4', 'avi', 'mov', 'wmv', 'flv', 'mkv', 'webm', 'mpg', 'mpeg', '3gp'];
6
+ exports.AudioFileExt = ['mp3', 'wav', 'flac', 'm4a', 'aac', 'ogg', 'wma', 'aiff', 'alac'];
7
+ exports.MediaFileExt = [...exports.ImageFileExt, ...exports.VideoFileExt, ...exports.AudioFileExt];
8
+ exports.ModelFileExt = ['obj', 'fbx', 'stl', 'dae', 'ply', '3ds', 'gltf', 'glb'];
9
+ exports.ArchiveFileExt = ['zip', 'tar', 'gz', '7z', 'rar', 'tgz'];
10
+ exports.SystemFileExt = ['exe', 'dll', 'bin', 'iso', 'dmg', 'msi', 'deb', 'rpm', 'apk', 'appimage', 'rom', 'efi'];
11
+ exports.DatabaseFileExt = ['sqlite', 'sql', 'mdb', 'accdb'];
12
+ exports.BinaryFileExt = [...exports.MediaFileExt, ...exports.ModelFileExt, ...exports.ArchiveFileExt, ...exports.SystemFileExt, ...exports.DatabaseFileExt];
13
+ exports.DocumentFileExt = ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'rtf', 'tex'];
14
+ exports.TextDocumentFileExt = ['txt', 'csv', 'log', 'md', 'rst'];
15
+ exports.CodeFileExt = ['js', 'ts', 'jsx', 'tsx', 'py', 'java', 'c', 'cpp', 'cs', 'php', 'go', 'rb', 'rs', 'swift', 'kt', 'dart', 'sh', 'bash', 'ps1', 'bat', 'cmd', 'html', 'css', 'scss', 'sass', 'less', 'xml', 'json', 'yaml', 'yml', 'ini', 'conf', 'cfg', 'env'];
16
+ exports.PlainTextFileExt = [...exports.TextDocumentFileExt, ...exports.CodeFileExt];
17
+ exports.FileExt = [...exports.BinaryFileExt, ...exports.DocumentFileExt, ...exports.PlainTextFileExt];
18
+ exports.ContentTypeMap = {
19
+ "text/html": "html",
20
+ "text/plain": "txt",
21
+ "text/css": "css",
22
+ "text/javascript": "js",
23
+ "application/json": "json",
24
+ "application/xml": "xml",
25
+ "application/javascript": "js",
26
+ "application/pdf": "pdf",
27
+ "image/jpeg": "jpg",
28
+ "image/png": "png",
29
+ "image/gif": "gif",
30
+ "image/svg+xml": "svg",
31
+ "application/zip": "zip",
32
+ "application/octet-stream": "bin",
33
+ "audio/mpeg": "mp3",
34
+ "video/mp4": "mp4",
35
+ "video/webm": "webm",
36
+ "text/csv": "csv",
37
+ };
38
+ //# sourceMappingURL=FileType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileType.js","sourceRoot":"","sources":["../../src/storage/FileType.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { Buffer } from 'buffer';
2
+ import { FileDetails, FileStorage, ListFilesFilter } from "./FileStorage";
3
+ /**
4
+ * Browser-compatible FileStorage implementation using IndexedDB.
5
+ * @remarks
6
+ * This storage backend works in browsers and Electron renderer processes.
7
+ * Data persists across page reloads and browser sessions.
8
+ */
9
+ export declare class IndexedDBStorage implements FileStorage {
10
+ private readonly _dbName;
11
+ private _db;
12
+ /**
13
+ * Creates a new `IndexedDBStorage` instance.
14
+ * @param dbName Name of the IndexedDB database. Defaults to 'vectra-db'.
15
+ */
16
+ constructor(dbName?: string);
17
+ /**
18
+ * Opens or creates the IndexedDB database.
19
+ */
20
+ private getDB;
21
+ /**
22
+ * Normalizes a path for consistent storage.
23
+ */
24
+ private normalizePath;
25
+ /**
26
+ * Gets the parent path of a given path.
27
+ */
28
+ private getParentPath;
29
+ createFile(filePath: string, content: Buffer | string): Promise<void>;
30
+ createFolder(folderPath: string): Promise<void>;
31
+ deleteFile(filePath: string): Promise<void>;
32
+ deleteFolder(folderPath: string): Promise<void>;
33
+ getDetails(fileOrFolderPath: string): Promise<FileDetails>;
34
+ listFiles(folderPath: string, filter?: ListFilesFilter): Promise<FileDetails[]>;
35
+ pathExists(fileOrFolderPath: string): Promise<boolean>;
36
+ readFile(filePath: string): Promise<Buffer>;
37
+ upsertFile(filePath: string, content: Buffer | string): Promise<void>;
38
+ /**
39
+ * Closes the database connection.
40
+ */
41
+ close(): void;
42
+ /**
43
+ * Deletes the entire database.
44
+ */
45
+ destroy(): Promise<void>;
46
+ }
47
+ //# sourceMappingURL=IndexedDBStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedDBStorage.d.ts","sourceRoot":"","sources":["../../src/storage/IndexedDBStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAI1E;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,GAAG,CAA0B;IAErC;;;OAGG;gBACS,MAAM,GAAE,MAAoB;IAIxC;;OAEG;YACW,KAAK;IAiCnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAMf,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BrE,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B/C,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa3C,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC/C,UAAU,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA0C1D,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAiD/E,UAAU,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAStD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB3C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B3E;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CASjC"}
@@ -0,0 +1,347 @@
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.IndexedDBStorage = void 0;
13
+ const buffer_1 = require("buffer");
14
+ const FileStorageUtilities_1 = require("./FileStorageUtilities");
15
+ const pathUtils_1 = require("../utils/pathUtils");
16
+ /**
17
+ * Browser-compatible FileStorage implementation using IndexedDB.
18
+ * @remarks
19
+ * This storage backend works in browsers and Electron renderer processes.
20
+ * Data persists across page reloads and browser sessions.
21
+ */
22
+ class IndexedDBStorage {
23
+ /**
24
+ * Creates a new `IndexedDBStorage` instance.
25
+ * @param dbName Name of the IndexedDB database. Defaults to 'vectra-db'.
26
+ */
27
+ constructor(dbName = 'vectra-db') {
28
+ this._dbName = dbName;
29
+ }
30
+ /**
31
+ * Opens or creates the IndexedDB database.
32
+ */
33
+ getDB() {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ if (this._db) {
36
+ return this._db;
37
+ }
38
+ return new Promise((resolve, reject) => {
39
+ const request = indexedDB.open(this._dbName, 1);
40
+ request.onerror = () => { var _a; return reject(new Error(`Failed to open IndexedDB: ${(_a = request.error) === null || _a === void 0 ? void 0 : _a.message}`)); };
41
+ request.onsuccess = () => {
42
+ this._db = request.result;
43
+ resolve(this._db);
44
+ };
45
+ request.onupgradeneeded = (event) => {
46
+ const db = event.target.result;
47
+ // Store for files: { path, content, createdAt, updatedAt }
48
+ if (!db.objectStoreNames.contains('files')) {
49
+ const fileStore = db.createObjectStore('files', { keyPath: 'path' });
50
+ fileStore.createIndex('parentPath', 'parentPath', { unique: false });
51
+ }
52
+ // Store for folders: { path, createdAt }
53
+ if (!db.objectStoreNames.contains('folders')) {
54
+ const folderStore = db.createObjectStore('folders', { keyPath: 'path' });
55
+ folderStore.createIndex('parentPath', 'parentPath', { unique: false });
56
+ }
57
+ };
58
+ });
59
+ });
60
+ }
61
+ /**
62
+ * Normalizes a path for consistent storage.
63
+ */
64
+ normalizePath(filePath) {
65
+ // Normalize and ensure forward slashes
66
+ let normalized = pathUtils_1.pathUtils.normalize(filePath);
67
+ // Remove trailing slash unless it's the root
68
+ if (normalized.length > 1 && normalized.endsWith('/')) {
69
+ normalized = normalized.slice(0, -1);
70
+ }
71
+ return normalized;
72
+ }
73
+ /**
74
+ * Gets the parent path of a given path.
75
+ */
76
+ getParentPath(filePath) {
77
+ const normalized = this.normalizePath(filePath);
78
+ const parent = pathUtils_1.pathUtils.dirname(normalized);
79
+ return parent === normalized ? '' : parent;
80
+ }
81
+ createFile(filePath, content) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ const db = yield this.getDB();
84
+ const normalizedPath = this.normalizePath(filePath);
85
+ // Convert content to ArrayBuffer for storage
86
+ let arrayBuffer;
87
+ if (typeof content === 'string') {
88
+ arrayBuffer = new TextEncoder().encode(content).buffer;
89
+ }
90
+ else {
91
+ arrayBuffer = content.buffer.slice(content.byteOffset, content.byteOffset + content.byteLength);
92
+ }
93
+ return new Promise((resolve, reject) => {
94
+ const tx = db.transaction('files', 'readwrite');
95
+ const store = tx.objectStore('files');
96
+ const record = {
97
+ path: normalizedPath,
98
+ parentPath: this.getParentPath(normalizedPath),
99
+ content: arrayBuffer,
100
+ createdAt: Date.now(),
101
+ updatedAt: Date.now()
102
+ };
103
+ const request = store.add(record);
104
+ request.onsuccess = () => resolve();
105
+ request.onerror = () => reject(new Error(`File already exists: ${filePath}`));
106
+ });
107
+ });
108
+ }
109
+ createFolder(folderPath) {
110
+ return __awaiter(this, void 0, void 0, function* () {
111
+ const db = yield this.getDB();
112
+ const normalizedPath = this.normalizePath(folderPath);
113
+ // Create all parent folders recursively
114
+ const parts = normalizedPath.split('/').filter(Boolean);
115
+ let currentPath = '';
116
+ const tx = db.transaction('folders', 'readwrite');
117
+ const store = tx.objectStore('folders');
118
+ for (const part of parts) {
119
+ const parentPath = currentPath;
120
+ currentPath = currentPath ? `${currentPath}/${part}` : part;
121
+ // Use put to create or update (idempotent)
122
+ store.put({
123
+ path: currentPath,
124
+ parentPath: parentPath,
125
+ createdAt: Date.now()
126
+ });
127
+ }
128
+ return new Promise((resolve, reject) => {
129
+ tx.oncomplete = () => resolve();
130
+ tx.onerror = () => reject(new Error(`Failed to create folder: ${folderPath}`));
131
+ });
132
+ });
133
+ }
134
+ deleteFile(filePath) {
135
+ return __awaiter(this, void 0, void 0, function* () {
136
+ const db = yield this.getDB();
137
+ const normalizedPath = this.normalizePath(filePath);
138
+ return new Promise((resolve, reject) => {
139
+ const tx = db.transaction('files', 'readwrite');
140
+ const store = tx.objectStore('files');
141
+ const request = store.delete(normalizedPath);
142
+ request.onsuccess = () => resolve();
143
+ request.onerror = () => reject(new Error(`Failed to delete file: ${filePath}`));
144
+ });
145
+ });
146
+ }
147
+ deleteFolder(folderPath) {
148
+ return __awaiter(this, void 0, void 0, function* () {
149
+ const db = yield this.getDB();
150
+ const normalizedPath = this.normalizePath(folderPath);
151
+ const prefix = normalizedPath + '/';
152
+ return new Promise((resolve, reject) => {
153
+ const tx = db.transaction(['files', 'folders'], 'readwrite');
154
+ const fileStore = tx.objectStore('files');
155
+ const folderStore = tx.objectStore('folders');
156
+ // Delete all files with matching prefix
157
+ const filesCursor = fileStore.openCursor();
158
+ filesCursor.onsuccess = (event) => {
159
+ const cursor = event.target.result;
160
+ if (cursor) {
161
+ if (cursor.value.path === normalizedPath || cursor.value.path.startsWith(prefix)) {
162
+ cursor.delete();
163
+ }
164
+ cursor.continue();
165
+ }
166
+ };
167
+ // Delete all folders with matching prefix
168
+ const foldersCursor = folderStore.openCursor();
169
+ foldersCursor.onsuccess = (event) => {
170
+ const cursor = event.target.result;
171
+ if (cursor) {
172
+ if (cursor.value.path === normalizedPath || cursor.value.path.startsWith(prefix)) {
173
+ cursor.delete();
174
+ }
175
+ cursor.continue();
176
+ }
177
+ };
178
+ tx.oncomplete = () => resolve();
179
+ tx.onerror = () => reject(new Error(`Failed to delete folder: ${folderPath}`));
180
+ });
181
+ });
182
+ }
183
+ getDetails(fileOrFolderPath) {
184
+ return __awaiter(this, void 0, void 0, function* () {
185
+ const db = yield this.getDB();
186
+ const normalizedPath = this.normalizePath(fileOrFolderPath);
187
+ // Try to find as file first
188
+ const file = yield new Promise((resolve) => {
189
+ const tx = db.transaction('files', 'readonly');
190
+ const store = tx.objectStore('files');
191
+ const request = store.get(normalizedPath);
192
+ request.onsuccess = () => resolve(request.result);
193
+ request.onerror = () => resolve(undefined);
194
+ });
195
+ if (file) {
196
+ return {
197
+ name: pathUtils_1.pathUtils.basename(normalizedPath),
198
+ path: normalizedPath,
199
+ isFolder: false,
200
+ fileType: FileStorageUtilities_1.FileStorageUtilities.getFileType(normalizedPath)
201
+ };
202
+ }
203
+ // Try to find as folder
204
+ const folder = yield new Promise((resolve) => {
205
+ const tx = db.transaction('folders', 'readonly');
206
+ const store = tx.objectStore('folders');
207
+ const request = store.get(normalizedPath);
208
+ request.onsuccess = () => resolve(request.result);
209
+ request.onerror = () => resolve(undefined);
210
+ });
211
+ if (folder) {
212
+ return {
213
+ name: pathUtils_1.pathUtils.basename(normalizedPath),
214
+ path: normalizedPath,
215
+ isFolder: true
216
+ };
217
+ }
218
+ throw new Error(`Path not found: ${fileOrFolderPath}`);
219
+ });
220
+ }
221
+ listFiles(folderPath, filter) {
222
+ return __awaiter(this, void 0, void 0, function* () {
223
+ const db = yield this.getDB();
224
+ const normalizedPath = this.normalizePath(folderPath);
225
+ const results = [];
226
+ // Get files in folder
227
+ if (filter !== 'folders') {
228
+ const files = yield new Promise((resolve) => {
229
+ const tx = db.transaction('files', 'readonly');
230
+ const store = tx.objectStore('files');
231
+ const index = store.index('parentPath');
232
+ const request = index.getAll(normalizedPath);
233
+ request.onsuccess = () => resolve(request.result || []);
234
+ request.onerror = () => resolve([]);
235
+ });
236
+ for (const file of files) {
237
+ results.push({
238
+ name: pathUtils_1.pathUtils.basename(file.path),
239
+ path: file.path,
240
+ isFolder: false,
241
+ fileType: FileStorageUtilities_1.FileStorageUtilities.getFileType(file.path)
242
+ });
243
+ }
244
+ }
245
+ // Get subfolders
246
+ if (filter !== 'files') {
247
+ const folders = yield new Promise((resolve) => {
248
+ const tx = db.transaction('folders', 'readonly');
249
+ const store = tx.objectStore('folders');
250
+ const index = store.index('parentPath');
251
+ const request = index.getAll(normalizedPath);
252
+ request.onsuccess = () => resolve(request.result || []);
253
+ request.onerror = () => resolve([]);
254
+ });
255
+ for (const folder of folders) {
256
+ results.push({
257
+ name: pathUtils_1.pathUtils.basename(folder.path),
258
+ path: folder.path,
259
+ isFolder: true
260
+ });
261
+ }
262
+ }
263
+ return results;
264
+ });
265
+ }
266
+ pathExists(fileOrFolderPath) {
267
+ return __awaiter(this, void 0, void 0, function* () {
268
+ try {
269
+ yield this.getDetails(fileOrFolderPath);
270
+ return true;
271
+ }
272
+ catch (_a) {
273
+ return false;
274
+ }
275
+ });
276
+ }
277
+ readFile(filePath) {
278
+ return __awaiter(this, void 0, void 0, function* () {
279
+ const db = yield this.getDB();
280
+ const normalizedPath = this.normalizePath(filePath);
281
+ const file = yield new Promise((resolve, reject) => {
282
+ const tx = db.transaction('files', 'readonly');
283
+ const store = tx.objectStore('files');
284
+ const request = store.get(normalizedPath);
285
+ request.onsuccess = () => resolve(request.result);
286
+ request.onerror = () => reject(new Error(`Failed to read file: ${filePath}`));
287
+ });
288
+ if (!file) {
289
+ throw new Error(`File not found: ${filePath}`);
290
+ }
291
+ // Convert ArrayBuffer back to Buffer
292
+ return buffer_1.Buffer.from(file.content);
293
+ });
294
+ }
295
+ upsertFile(filePath, content) {
296
+ return __awaiter(this, void 0, void 0, function* () {
297
+ const db = yield this.getDB();
298
+ const normalizedPath = this.normalizePath(filePath);
299
+ // Convert content to ArrayBuffer for storage
300
+ let arrayBuffer;
301
+ if (typeof content === 'string') {
302
+ arrayBuffer = new TextEncoder().encode(content).buffer;
303
+ }
304
+ else {
305
+ arrayBuffer = content.buffer.slice(content.byteOffset, content.byteOffset + content.byteLength);
306
+ }
307
+ return new Promise((resolve, reject) => {
308
+ const tx = db.transaction('files', 'readwrite');
309
+ const store = tx.objectStore('files');
310
+ const record = {
311
+ path: normalizedPath,
312
+ parentPath: this.getParentPath(normalizedPath),
313
+ content: arrayBuffer,
314
+ createdAt: Date.now(),
315
+ updatedAt: Date.now()
316
+ };
317
+ const request = store.put(record);
318
+ request.onsuccess = () => resolve();
319
+ request.onerror = () => reject(new Error(`Failed to write file: ${filePath}`));
320
+ });
321
+ });
322
+ }
323
+ /**
324
+ * Closes the database connection.
325
+ */
326
+ close() {
327
+ if (this._db) {
328
+ this._db.close();
329
+ this._db = undefined;
330
+ }
331
+ }
332
+ /**
333
+ * Deletes the entire database.
334
+ */
335
+ destroy() {
336
+ return __awaiter(this, void 0, void 0, function* () {
337
+ this.close();
338
+ return new Promise((resolve, reject) => {
339
+ const request = indexedDB.deleteDatabase(this._dbName);
340
+ request.onsuccess = () => resolve();
341
+ request.onerror = () => reject(new Error(`Failed to delete database: ${this._dbName}`));
342
+ });
343
+ });
344
+ }
345
+ }
346
+ exports.IndexedDBStorage = IndexedDBStorage;
347
+ //# sourceMappingURL=IndexedDBStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedDBStorage.js","sourceRoot":"","sources":["../../src/storage/IndexedDBStorage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Browser stub for LocalFileStorage.
3
+ * This module throws an error if LocalFileStorage is used in a browser environment.
4
+ * Use IndexedDBStorage or VirtualFileStorage instead.
5
+ */
6
+ import { FileStorage, FileDetails } from "./FileStorage";
7
+ export declare class LocalFileStorage implements FileStorage {
8
+ constructor();
9
+ createFile(): Promise<void>;
10
+ createFolder(): Promise<void>;
11
+ deleteFile(): Promise<void>;
12
+ deleteFolder(): Promise<void>;
13
+ getDetails(): Promise<FileDetails>;
14
+ listFiles(): Promise<FileDetails[]>;
15
+ pathExists(): Promise<boolean>;
16
+ readFile(): Promise<Buffer>;
17
+ upsertFile(): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=LocalFileStorage.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalFileStorage.browser.d.ts","sourceRoot":"","sources":["../../src/storage/LocalFileStorage.browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAC;AAE1E,qBAAa,gBAAiB,YAAW,WAAW;;IAQhD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAIlC,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAInC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAI3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ /**
3
+ * Browser stub for LocalFileStorage.
4
+ * This module throws an error if LocalFileStorage is used in a browser environment.
5
+ * Use IndexedDBStorage or VirtualFileStorage instead.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.LocalFileStorage = void 0;
9
+ class LocalFileStorage {
10
+ constructor() {
11
+ throw new Error('LocalFileStorage is not supported in browser environments. ' +
12
+ 'Use IndexedDBStorage or VirtualFileStorage instead.');
13
+ }
14
+ createFile() {
15
+ throw new Error('LocalFileStorage is not supported in browser environments.');
16
+ }
17
+ createFolder() {
18
+ throw new Error('LocalFileStorage is not supported in browser environments.');
19
+ }
20
+ deleteFile() {
21
+ throw new Error('LocalFileStorage is not supported in browser environments.');
22
+ }
23
+ deleteFolder() {
24
+ throw new Error('LocalFileStorage is not supported in browser environments.');
25
+ }
26
+ getDetails() {
27
+ throw new Error('LocalFileStorage is not supported in browser environments.');
28
+ }
29
+ listFiles() {
30
+ throw new Error('LocalFileStorage is not supported in browser environments.');
31
+ }
32
+ pathExists() {
33
+ throw new Error('LocalFileStorage is not supported in browser environments.');
34
+ }
35
+ readFile() {
36
+ throw new Error('LocalFileStorage is not supported in browser environments.');
37
+ }
38
+ upsertFile() {
39
+ throw new Error('LocalFileStorage is not supported in browser environments.');
40
+ }
41
+ }
42
+ exports.LocalFileStorage = LocalFileStorage;
43
+ //# sourceMappingURL=LocalFileStorage.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalFileStorage.browser.js","sourceRoot":"","sources":["../../src/storage/LocalFileStorage.browser.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAIH,MAAa,gBAAgB;IACzB;QACI,MAAM,IAAI,KAAK,CACX,6DAA6D;YAC7D,qDAAqD,CACxD,CAAC;IACN,CAAC;IAED,UAAU;QACN,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAClF,CAAC;IAED,YAAY;QACR,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAClF,CAAC;IAED,UAAU;QACN,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAClF,CAAC;IAED,YAAY;QACR,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAClF,CAAC;IAED,UAAU;QACN,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAClF,CAAC;IAED,SAAS;QACL,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAClF,CAAC;IAED,UAAU;QACN,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAClF,CAAC;IAED,QAAQ;QACJ,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAClF,CAAC;IAED,UAAU;QACN,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAClF,CAAC;CACJ;AA3CD,4CA2CC"}
@@ -0,0 +1,23 @@
1
+ import { FileDetails, FileStorage, ListFilesFilter } from "./FileStorage";
2
+ /**
3
+ * A `FileStorage` implementation that uses the local file system.
4
+ */
5
+ export declare class LocalFileStorage implements FileStorage {
6
+ private _rootFolder;
7
+ /**
8
+ * Creates a new `LocalFileStorage` instance.
9
+ * @param rootFolder Optional. Root folder to use for file operations. If not provided, paths passed to operations should be fully qualified.
10
+ */
11
+ constructor(rootFolder?: string);
12
+ createFile(filePath: string, content: Buffer | string): Promise<void>;
13
+ createFolder(folderPath: string): Promise<void>;
14
+ deleteFile(filePath: string): Promise<void>;
15
+ deleteFolder(folderPath: string): Promise<void>;
16
+ getDetails(fileOrFolderPath: string): Promise<FileDetails>;
17
+ listFiles(folderPath: string, _filter?: ListFilesFilter | undefined): Promise<FileDetails[]>;
18
+ pathExists(fileOrFolderPath: string): Promise<boolean>;
19
+ readFile(filePath: string): Promise<Buffer>;
20
+ upsertFile(filePath: string, content: Buffer | string): Promise<void>;
21
+ private getFullPath;
22
+ }
23
+ //# sourceMappingURL=LocalFileStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalFileStorage.d.ts","sourceRoot":"","sources":["../../src/storage/LocalFileStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAK1E;;GAEG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAChD,OAAO,CAAC,WAAW,CAAqB;IAExC;;;OAGG;gBACS,UAAU,CAAC,EAAE,MAAM;IAIzB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,UAAU,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAU1D,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAa5F,UAAU,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAStD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzE,OAAO,CAAC,WAAW;CAUtB"}