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.
- package/LICENSE +1 -1
- package/README.md +92 -100
- package/bin/vectra.js +3 -0
- package/lib/BrowserWebFetcher.d.ts +75 -0
- package/lib/BrowserWebFetcher.d.ts.map +1 -0
- package/lib/BrowserWebFetcher.js +290 -0
- package/lib/BrowserWebFetcher.js.map +1 -0
- package/lib/FileFetcher.d.ts +5 -0
- package/lib/FileFetcher.d.ts.map +1 -0
- package/lib/FileFetcher.js +89 -0
- package/lib/FileFetcher.js.map +1 -0
- package/lib/FileFetcher.spec.d.ts +2 -0
- package/lib/FileFetcher.spec.d.ts.map +1 -0
- package/lib/FileFetcher.spec.js +244 -0
- package/lib/FileFetcher.spec.js.map +1 -0
- package/lib/FolderWatcher.d.ts +91 -0
- package/lib/FolderWatcher.d.ts.map +1 -0
- package/lib/FolderWatcher.js +304 -0
- package/lib/FolderWatcher.js.map +1 -0
- package/lib/FolderWatcher.spec.d.ts +2 -0
- package/lib/FolderWatcher.spec.d.ts.map +1 -0
- package/lib/FolderWatcher.spec.js +308 -0
- package/lib/FolderWatcher.spec.js.map +1 -0
- package/lib/GPT3Tokenizer.d.ts +9 -0
- package/lib/GPT3Tokenizer.spec.d.ts +2 -0
- package/lib/GPT3Tokenizer.spec.d.ts.map +1 -0
- package/lib/GPT3Tokenizer.spec.js +45 -0
- package/lib/GPT3Tokenizer.spec.js.map +1 -0
- package/lib/ItemSelector.d.ts +41 -0
- package/lib/ItemSelector.d.ts.map +1 -0
- package/lib/ItemSelector.js +179 -0
- package/lib/ItemSelector.js.map +1 -0
- package/lib/ItemSelector.spec.d.ts +2 -0
- package/lib/ItemSelector.spec.d.ts.map +1 -0
- package/lib/ItemSelector.spec.js +204 -0
- package/lib/ItemSelector.spec.js.map +1 -0
- package/lib/LocalDocument.d.ts +54 -0
- package/lib/LocalDocument.d.ts.map +1 -1
- package/lib/LocalDocument.js +116 -0
- package/lib/LocalDocument.js.map +1 -0
- package/lib/LocalDocument.spec.d.ts +2 -0
- package/lib/LocalDocument.spec.d.ts.map +1 -0
- package/lib/LocalDocument.spec.js +214 -0
- package/lib/LocalDocument.spec.js.map +1 -0
- package/lib/LocalDocumentIndex.d.ts +152 -0
- package/lib/LocalDocumentIndex.d.ts.map +1 -1
- package/lib/LocalDocumentIndex.js +420 -0
- package/lib/LocalDocumentIndex.js.map +1 -0
- package/lib/LocalDocumentIndex.spec.d.ts +2 -0
- package/lib/LocalDocumentIndex.spec.d.ts.map +1 -0
- package/lib/LocalDocumentIndex.spec.js +494 -0
- package/lib/LocalDocumentIndex.spec.js.map +1 -0
- package/lib/LocalDocumentResult.d.ts +66 -0
- package/lib/LocalDocumentResult.d.ts.map +1 -1
- package/lib/LocalDocumentResult.js +376 -0
- package/lib/LocalDocumentResult.js.map +1 -0
- package/lib/LocalDocumentResult.spec.d.ts +2 -0
- package/lib/LocalDocumentResult.spec.d.ts.map +1 -0
- package/lib/LocalDocumentResult.spec.js +373 -0
- package/lib/LocalDocumentResult.spec.js.map +1 -0
- package/lib/LocalEmbeddings.d.ts +59 -0
- package/lib/LocalEmbeddings.d.ts.map +1 -0
- package/lib/LocalEmbeddings.js +101 -0
- package/lib/LocalEmbeddings.js.map +1 -0
- package/lib/LocalEmbeddings.spec.d.ts +2 -0
- package/lib/LocalEmbeddings.spec.d.ts.map +1 -0
- package/lib/LocalEmbeddings.spec.js +155 -0
- package/lib/LocalEmbeddings.spec.js.map +1 -0
- package/lib/LocalIndex.d.ts +159 -0
- package/lib/LocalIndex.d.ts.map +1 -1
- package/lib/LocalIndex.js +519 -0
- package/lib/LocalIndex.js.map +1 -0
- package/lib/LocalIndex.spec.d.ts +2 -0
- package/lib/LocalIndex.spec.js +611 -9
- package/lib/LocalIndex.spec.js.map +1 -1
- package/lib/OpenAIEmbeddings.d.ts +124 -0
- package/lib/OpenAIEmbeddings.d.ts.map +1 -0
- package/lib/OpenAIEmbeddings.js +166 -0
- package/lib/OpenAIEmbeddings.js.map +1 -0
- package/lib/OpenAIEmbeddings.spec.d.ts +2 -0
- package/lib/OpenAIEmbeddings.spec.d.ts.map +1 -0
- package/lib/OpenAIEmbeddings.spec.js +298 -0
- package/lib/OpenAIEmbeddings.spec.js.map +1 -0
- package/lib/TextSplitter.d.ts +21 -0
- package/lib/TextSplitter.d.ts.map +1 -1
- package/lib/TextSplitter.js +500 -0
- package/lib/TextSplitter.js.map +1 -0
- package/lib/TextSplitter.spec.d.ts +2 -0
- package/lib/TextSplitter.spec.d.ts.map +1 -0
- package/lib/TextSplitter.spec.js +337 -0
- package/lib/TextSplitter.spec.js.map +1 -0
- package/lib/TransformersEmbeddings.d.ts +121 -0
- package/lib/TransformersEmbeddings.d.ts.map +1 -0
- package/lib/TransformersEmbeddings.js +176 -0
- package/lib/TransformersEmbeddings.js.map +1 -0
- package/lib/TransformersEmbeddings.spec.d.ts +2 -0
- package/lib/TransformersEmbeddings.spec.d.ts.map +1 -0
- package/lib/TransformersEmbeddings.spec.js +198 -0
- package/lib/TransformersEmbeddings.spec.js.map +1 -0
- package/lib/TransformersTokenizer.d.ts +33 -0
- package/lib/TransformersTokenizer.d.ts.map +1 -0
- package/lib/TransformersTokenizer.js +44 -0
- package/lib/TransformersTokenizer.js.map +1 -0
- package/lib/TransformersTokenizer.spec.d.ts +2 -0
- package/lib/TransformersTokenizer.spec.d.ts.map +1 -0
- package/lib/TransformersTokenizer.spec.js +112 -0
- package/lib/TransformersTokenizer.spec.js.map +1 -0
- package/lib/WebFetcher.d.ts +14 -0
- package/lib/WebFetcher.d.ts.map +1 -0
- package/lib/WebFetcher.js +238 -0
- package/lib/WebFetcher.js.map +1 -0
- package/lib/WebFetcher.spec.d.ts +2 -0
- package/lib/WebFetcher.spec.d.ts.map +1 -0
- package/lib/WebFetcher.spec.js +263 -0
- package/lib/WebFetcher.spec.js.map +1 -0
- package/lib/browser.d.ts +30 -0
- package/lib/browser.d.ts.map +1 -0
- package/lib/browser.js +52 -0
- package/lib/browser.js.map +1 -0
- package/lib/codecs/IndexCodec.d.ts +37 -0
- package/lib/codecs/IndexCodec.d.ts.map +1 -0
- package/lib/codecs/IndexCodec.js +3 -0
- package/lib/codecs/IndexCodec.js.map +1 -0
- package/lib/codecs/JsonCodec.d.ts +19 -0
- package/lib/codecs/JsonCodec.d.ts.map +1 -0
- package/lib/codecs/JsonCodec.js +35 -0
- package/lib/codecs/JsonCodec.js.map +1 -0
- package/lib/codecs/JsonCodec.spec.d.ts +2 -0
- package/lib/codecs/JsonCodec.spec.d.ts.map +1 -0
- package/lib/codecs/JsonCodec.spec.js +66 -0
- package/lib/codecs/JsonCodec.spec.js.map +1 -0
- package/lib/codecs/LocalIndex.protobuf.spec.d.ts +2 -0
- package/lib/codecs/LocalIndex.protobuf.spec.d.ts.map +1 -0
- package/lib/codecs/LocalIndex.protobuf.spec.js +108 -0
- package/lib/codecs/LocalIndex.protobuf.spec.js.map +1 -0
- package/lib/codecs/ProtobufCodec.d.ts +20 -0
- package/lib/codecs/ProtobufCodec.d.ts.map +1 -0
- package/lib/codecs/ProtobufCodec.js +225 -0
- package/lib/codecs/ProtobufCodec.js.map +1 -0
- package/lib/codecs/ProtobufCodec.spec.d.ts +2 -0
- package/lib/codecs/ProtobufCodec.spec.d.ts.map +1 -0
- package/lib/codecs/ProtobufCodec.spec.js +155 -0
- package/lib/codecs/ProtobufCodec.spec.js.map +1 -0
- package/lib/codecs/index.d.ts +5 -0
- package/lib/codecs/index.d.ts.map +1 -0
- package/lib/codecs/index.js +21 -0
- package/lib/codecs/index.js.map +1 -0
- package/lib/codecs/migrateIndex.d.ts +24 -0
- package/lib/codecs/migrateIndex.d.ts.map +1 -0
- package/lib/codecs/migrateIndex.js +119 -0
- package/lib/codecs/migrateIndex.js.map +1 -0
- package/lib/codecs/migrateIndex.spec.d.ts +2 -0
- package/lib/codecs/migrateIndex.spec.d.ts.map +1 -0
- package/lib/codecs/migrateIndex.spec.js +151 -0
- package/lib/codecs/migrateIndex.spec.js.map +1 -0
- package/lib/codecs/schemas/index.proto +34 -0
- package/lib/index.d.ts +20 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +36 -0
- package/lib/index.js.map +1 -0
- package/lib/internals/Colorize.d.ts +14 -0
- package/lib/internals/Colorize.d.ts.map +1 -0
- package/lib/internals/Colorize.js +69 -0
- package/lib/internals/Colorize.js.map +1 -0
- package/lib/internals/index.d.ts +3 -0
- package/lib/internals/index.d.ts.map +1 -0
- package/lib/internals/index.js +19 -0
- package/lib/internals/index.js.map +1 -0
- package/lib/internals/types.d.ts +43 -0
- package/lib/internals/types.d.ts.map +1 -0
- package/lib/internals/types.js +3 -0
- package/lib/internals/types.js.map +1 -0
- package/lib/server/IndexManager.d.ts +78 -0
- package/lib/server/IndexManager.d.ts.map +1 -0
- package/lib/server/IndexManager.js +259 -0
- package/lib/server/IndexManager.js.map +1 -0
- package/lib/server/VectraServer.d.ts +40 -0
- package/lib/server/VectraServer.d.ts.map +1 -0
- package/lib/server/VectraServer.js +151 -0
- package/lib/server/VectraServer.js.map +1 -0
- package/lib/server/VectraServer.spec.d.ts +2 -0
- package/lib/server/VectraServer.spec.d.ts.map +1 -0
- package/lib/server/VectraServer.spec.js +322 -0
- package/lib/server/VectraServer.spec.js.map +1 -0
- package/lib/server/handlers/documentHandlers.d.ts +15 -0
- package/lib/server/handlers/documentHandlers.d.ts.map +1 -0
- package/lib/server/handlers/documentHandlers.js +95 -0
- package/lib/server/handlers/documentHandlers.js.map +1 -0
- package/lib/server/handlers/helpers.d.ts +23 -0
- package/lib/server/handlers/helpers.d.ts.map +1 -0
- package/lib/server/handlers/helpers.js +138 -0
- package/lib/server/handlers/helpers.js.map +1 -0
- package/lib/server/handlers/index.d.ts +8 -0
- package/lib/server/handlers/index.d.ts.map +1 -0
- package/lib/server/handlers/index.js +22 -0
- package/lib/server/handlers/index.js.map +1 -0
- package/lib/server/handlers/indexHandlers.d.ts +14 -0
- package/lib/server/handlers/indexHandlers.d.ts.map +1 -0
- package/lib/server/handlers/indexHandlers.js +85 -0
- package/lib/server/handlers/indexHandlers.js.map +1 -0
- package/lib/server/handlers/itemHandlers.d.ts +34 -0
- package/lib/server/handlers/itemHandlers.d.ts.map +1 -0
- package/lib/server/handlers/itemHandlers.js +166 -0
- package/lib/server/handlers/itemHandlers.js.map +1 -0
- package/lib/server/handlers/lifecycleHandlers.d.ts +11 -0
- package/lib/server/handlers/lifecycleHandlers.d.ts.map +1 -0
- package/lib/server/handlers/lifecycleHandlers.js +31 -0
- package/lib/server/handlers/lifecycleHandlers.js.map +1 -0
- package/lib/server/handlers/queryHandlers.d.ts +27 -0
- package/lib/server/handlers/queryHandlers.d.ts.map +1 -0
- package/lib/server/handlers/queryHandlers.js +135 -0
- package/lib/server/handlers/queryHandlers.js.map +1 -0
- package/lib/server/handlers/statsHandlers.d.ts +17 -0
- package/lib/server/handlers/statsHandlers.d.ts.map +1 -0
- package/lib/server/handlers/statsHandlers.js +81 -0
- package/lib/server/handlers/statsHandlers.js.map +1 -0
- package/lib/server/index.d.ts +4 -0
- package/lib/server/index.d.ts.map +1 -0
- package/lib/server/index.js +23 -0
- package/lib/server/index.js.map +1 -0
- package/lib/storage/FileStorage.d.ts +92 -0
- package/lib/storage/FileStorage.d.ts.map +1 -0
- package/lib/storage/FileStorage.js +3 -0
- package/lib/storage/FileStorage.js.map +1 -0
- package/lib/storage/FileStorageUtilities.d.ts +36 -0
- package/lib/storage/FileStorageUtilities.d.ts.map +1 -0
- package/lib/storage/FileStorageUtilities.js +91 -0
- package/lib/storage/FileStorageUtilities.js.map +1 -0
- package/lib/storage/FileStorageUtilities.spec.d.ts +2 -0
- package/lib/storage/FileStorageUtilities.spec.d.ts.map +1 -0
- package/lib/storage/FileStorageUtilities.spec.js +98 -0
- package/lib/storage/FileStorageUtilities.spec.js.map +1 -0
- package/lib/storage/FileType.d.ts +29 -0
- package/lib/storage/FileType.d.ts.map +1 -0
- package/lib/storage/FileType.js +38 -0
- package/lib/storage/FileType.js.map +1 -0
- package/lib/storage/IndexedDBStorage.d.ts +47 -0
- package/lib/storage/IndexedDBStorage.d.ts.map +1 -0
- package/lib/storage/IndexedDBStorage.js +347 -0
- package/lib/storage/IndexedDBStorage.js.map +1 -0
- package/lib/storage/LocalFileStorage.browser.d.ts +19 -0
- package/lib/storage/LocalFileStorage.browser.d.ts.map +1 -0
- package/lib/storage/LocalFileStorage.browser.js +43 -0
- package/lib/storage/LocalFileStorage.browser.js.map +1 -0
- package/lib/storage/LocalFileStorage.d.ts +23 -0
- package/lib/storage/LocalFileStorage.d.ts.map +1 -0
- package/lib/storage/LocalFileStorage.js +152 -0
- package/lib/storage/LocalFileStorage.js.map +1 -0
- package/lib/storage/LocalFileStorage.spec.d.ts +2 -0
- package/lib/storage/LocalFileStorage.spec.d.ts.map +1 -0
- package/lib/storage/LocalFileStorage.spec.js +249 -0
- package/lib/storage/LocalFileStorage.spec.js.map +1 -0
- package/lib/storage/VirtualFileStorage.d.ts +18 -0
- package/lib/storage/VirtualFileStorage.d.ts.map +1 -0
- package/lib/storage/VirtualFileStorage.js +178 -0
- package/lib/storage/VirtualFileStorage.js.map +1 -0
- package/lib/storage/VirtualFileStorage.spec.d.ts +2 -0
- package/lib/storage/VirtualFileStorage.spec.d.ts.map +1 -0
- package/lib/storage/VirtualFileStorage.spec.js +302 -0
- package/lib/storage/VirtualFileStorage.spec.js.map +1 -0
- package/lib/storage/index.d.ts +6 -0
- package/lib/storage/index.d.ts.map +1 -0
- package/lib/storage/index.js +22 -0
- package/lib/storage/index.js.map +1 -0
- package/lib/templates/templates/csharp/README.md +48 -0
- package/lib/templates/templates/csharp/VectraClient.cs +234 -0
- package/lib/templates/templates/go/README.md +71 -0
- package/lib/templates/templates/go/vectra_client.go +322 -0
- package/lib/templates/templates/java/README.md +81 -0
- package/lib/templates/templates/java/VectraClient.java +232 -0
- package/lib/templates/templates/python/README.md +37 -0
- package/lib/templates/templates/python/vectra_client.py +279 -0
- package/lib/templates/templates/rust/Cargo.toml +14 -0
- package/lib/templates/templates/rust/README.md +39 -0
- package/lib/templates/templates/rust/build.rs +4 -0
- package/lib/templates/templates/rust/lib.rs +284 -0
- package/lib/templates/templates/typescript/README.md +96 -0
- package/lib/templates/templates/typescript/VectraClient.ts +374 -0
- package/lib/templates/typescript/VectraClient.d.ts +114 -0
- package/lib/templates/typescript/VectraClient.d.ts.map +1 -0
- package/lib/templates/typescript/VectraClient.js +328 -0
- package/lib/templates/typescript/VectraClient.js.map +1 -0
- package/lib/types.d.ts +153 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -0
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +18 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/pathUtils.d.ts +40 -0
- package/lib/utils/pathUtils.d.ts.map +1 -0
- package/lib/utils/pathUtils.js +98 -0
- package/lib/utils/pathUtils.js.map +1 -0
- package/lib/vectra-cli.d.ts +2 -0
- package/lib/vectra-cli.d.ts.map +1 -1
- package/lib/vectra-cli.generate.spec.d.ts +2 -0
- package/lib/vectra-cli.generate.spec.d.ts.map +1 -0
- package/lib/vectra-cli.generate.spec.js +112 -0
- package/lib/vectra-cli.generate.spec.js.map +1 -0
- package/lib/vectra-cli.js +760 -0
- package/lib/vectra-cli.js.map +1 -0
- package/lib/vectra-cli.spec.d.ts +1 -0
- package/lib/vectra-cli.spec.d.ts.map +1 -0
- package/lib/vectra-cli.spec.js +2 -0
- package/lib/vectra-cli.spec.js.map +1 -0
- package/package.json +91 -16
- package/proto/vectra_service.proto +276 -0
- package/src/BrowserWebFetcher.ts +345 -0
- package/src/FileFetcher.spec.ts +234 -0
- package/src/FileFetcher.ts +37 -25
- package/src/FolderWatcher.spec.ts +288 -0
- package/src/FolderWatcher.ts +304 -0
- package/src/GPT3Tokenizer.spec.ts +50 -0
- package/src/ItemSelector.spec.ts +252 -0
- package/src/ItemSelector.ts +163 -150
- package/src/LocalDocument.spec.ts +211 -0
- package/src/LocalDocument.ts +88 -94
- package/src/LocalDocumentIndex.spec.ts +481 -0
- package/src/LocalDocumentIndex.ts +39 -40
- package/src/LocalDocumentResult.spec.ts +373 -0
- package/src/LocalDocumentResult.ts +489 -319
- package/src/LocalEmbeddings.spec.ts +138 -0
- package/src/LocalEmbeddings.ts +120 -0
- package/src/LocalIndex.spec.ts +808 -66
- package/src/LocalIndex.ts +479 -429
- package/src/OpenAIEmbeddings.spec.ts +354 -0
- package/src/OpenAIEmbeddings.ts +26 -27
- package/src/TextSplitter.spec.ts +342 -0
- package/src/TextSplitter.ts +517 -532
- package/src/TransformersEmbeddings.spec.ts +188 -0
- package/src/TransformersEmbeddings.ts +232 -0
- package/src/TransformersTokenizer.spec.ts +143 -0
- package/src/TransformersTokenizer.ts +45 -0
- package/src/WebFetcher.spec.ts +288 -0
- package/src/WebFetcher.ts +184 -186
- package/src/browser.ts +69 -0
- package/src/codecs/IndexCodec.ts +40 -0
- package/src/codecs/JsonCodec.spec.ts +70 -0
- package/src/codecs/JsonCodec.ts +37 -0
- package/src/codecs/LocalIndex.protobuf.spec.ts +115 -0
- package/src/codecs/ProtobufCodec.spec.ts +166 -0
- package/src/codecs/ProtobufCodec.ts +193 -0
- package/src/codecs/index.ts +4 -0
- package/src/codecs/migrateIndex.spec.ts +176 -0
- package/src/codecs/migrateIndex.ts +125 -0
- package/src/codecs/schemas/index.proto +34 -0
- package/src/index.ts +9 -1
- package/src/internals/Colorize.ts +19 -16
- package/src/server/IndexManager.ts +243 -0
- package/src/server/VectraServer.spec.ts +303 -0
- package/src/server/VectraServer.ts +156 -0
- package/src/server/handlers/documentHandlers.ts +59 -0
- package/src/server/handlers/helpers.ts +93 -0
- package/src/server/handlers/index.ts +7 -0
- package/src/server/handlers/indexHandlers.ts +44 -0
- package/src/server/handlers/itemHandlers.ts +140 -0
- package/src/server/handlers/lifecycleHandlers.ts +26 -0
- package/src/server/handlers/queryHandlers.ts +96 -0
- package/src/server/handlers/statsHandlers.ts +38 -0
- package/src/server/index.ts +3 -0
- package/src/storage/FileStorage.ts +105 -0
- package/src/storage/FileStorageUtilities.spec.ts +106 -0
- package/src/storage/FileStorageUtilities.ts +77 -0
- package/src/storage/FileType.ts +61 -0
- package/src/storage/IndexedDBStorage.ts +365 -0
- package/src/storage/LocalFileStorage.browser.ts +52 -0
- package/src/storage/LocalFileStorage.spec.ts +292 -0
- package/src/storage/LocalFileStorage.ts +98 -0
- package/src/storage/VirtualFileStorage.spec.ts +307 -0
- package/src/storage/VirtualFileStorage.ts +169 -0
- package/src/storage/index.ts +5 -0
- package/src/templates/csharp/README.md +48 -0
- package/src/templates/csharp/VectraClient.cs +234 -0
- package/src/templates/go/README.md +71 -0
- package/src/templates/go/vectra_client.go +322 -0
- package/src/templates/java/README.md +81 -0
- package/src/templates/java/VectraClient.java +232 -0
- package/src/templates/python/README.md +37 -0
- package/src/templates/python/vectra_client.py +279 -0
- package/src/templates/rust/Cargo.toml +14 -0
- package/src/templates/rust/README.md +39 -0
- package/src/templates/rust/build.rs +4 -0
- package/src/templates/rust/lib.rs +284 -0
- package/src/templates/typescript/README.md +96 -0
- package/src/templates/typescript/VectraClient.ts +374 -0
- package/src/types.ts +131 -123
- package/src/utils/index.ts +1 -0
- package/src/utils/pathUtils.ts +106 -0
- package/src/vectra-cli.generate.spec.ts +72 -0
- package/src/vectra-cli.spec.ts +0 -0
- package/src/vectra-cli.ts +687 -246
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { pathUtils as path } from '../utils/pathUtils';
|
|
2
|
+
import { FileStorage, LocalFileStorage } from '../storage';
|
|
3
|
+
import { IndexCodec } from './IndexCodec';
|
|
4
|
+
import { JsonCodec } from './JsonCodec';
|
|
5
|
+
import { ProtobufCodec } from './ProtobufCodec';
|
|
6
|
+
|
|
7
|
+
export type FormatName = 'json' | 'protobuf';
|
|
8
|
+
|
|
9
|
+
function codecForFormat(format: FormatName): IndexCodec {
|
|
10
|
+
return format === 'protobuf' ? new ProtobufCodec() : new JsonCodec();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Detects the codec in use for an existing index folder.
|
|
15
|
+
* @remarks
|
|
16
|
+
* Checks for `index.json` and `index.pb` files. If both exist, throws an
|
|
17
|
+
* error directing the user to re-run migration. If neither exists, throws.
|
|
18
|
+
* @param folderPath Path to the index folder.
|
|
19
|
+
* @param storage Storage backend to use.
|
|
20
|
+
* @returns The detected codec.
|
|
21
|
+
*/
|
|
22
|
+
export async function detectCodec(folderPath: string, storage: FileStorage): Promise<IndexCodec> {
|
|
23
|
+
const hasJson = await storage.pathExists(path.join(folderPath, 'index.json'));
|
|
24
|
+
const hasPb = await storage.pathExists(path.join(folderPath, 'index.pb'));
|
|
25
|
+
|
|
26
|
+
if (hasJson && hasPb) {
|
|
27
|
+
throw new Error(
|
|
28
|
+
'Both index.json and index.pb found — the index may be in a partially migrated state. ' +
|
|
29
|
+
'Run `vectra migrate` or `migrateIndex()` to complete the migration.'
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
if (hasPb) return new ProtobufCodec();
|
|
33
|
+
if (hasJson) return new JsonCodec();
|
|
34
|
+
throw new Error('No index file found (expected index.json or index.pb).');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface MigrateOptions {
|
|
38
|
+
to: FormatName;
|
|
39
|
+
storage?: FileStorage;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Migrates an index folder from one serialization format to another.
|
|
44
|
+
* @param folderPath Path to the index folder.
|
|
45
|
+
* @param options Migration options.
|
|
46
|
+
*/
|
|
47
|
+
export async function migrateIndex(folderPath: string, options: MigrateOptions): Promise<void> {
|
|
48
|
+
const storage = options.storage || new LocalFileStorage();
|
|
49
|
+
const targetCodec = codecForFormat(options.to);
|
|
50
|
+
|
|
51
|
+
// Detect current format
|
|
52
|
+
const sourceCodec = await detectCodec(folderPath, storage);
|
|
53
|
+
|
|
54
|
+
if (sourceCodec.extension === targetCodec.extension) {
|
|
55
|
+
return; // Already in target format
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// --- Migrate index file ---
|
|
59
|
+
const sourceIndexPath = path.join(folderPath, `index${sourceCodec.extension}`);
|
|
60
|
+
const targetIndexPath = path.join(folderPath, `index${targetCodec.extension}`);
|
|
61
|
+
const indexBuffer = await storage.readFile(sourceIndexPath);
|
|
62
|
+
const indexData = sourceCodec.deserializeIndex(indexBuffer);
|
|
63
|
+
|
|
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 = path.join(folderPath, item.metadataFile);
|
|
69
|
+
const newMetaFile = `${baseName}${targetCodec.extension}`;
|
|
70
|
+
const newMetaPath = path.join(folderPath, newMetaFile);
|
|
71
|
+
|
|
72
|
+
// Read, re-serialize, write
|
|
73
|
+
const metaBuf = await storage.readFile(oldMetaPath);
|
|
74
|
+
const metadata = sourceCodec.deserializeMetadata(metaBuf);
|
|
75
|
+
await storage.upsertFile(newMetaPath, targetCodec.serializeMetadata(metadata));
|
|
76
|
+
|
|
77
|
+
// Update reference
|
|
78
|
+
item.metadataFile = newMetaFile;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Write new index
|
|
83
|
+
await storage.upsertFile(targetIndexPath, targetCodec.serializeIndex(indexData));
|
|
84
|
+
|
|
85
|
+
// --- Migrate catalog if present ---
|
|
86
|
+
const sourceCatalogPath = path.join(folderPath, `catalog${sourceCodec.extension}`);
|
|
87
|
+
const targetCatalogPath = path.join(folderPath, `catalog${targetCodec.extension}`);
|
|
88
|
+
if (await storage.pathExists(sourceCatalogPath)) {
|
|
89
|
+
const catalogBuffer = await storage.readFile(sourceCatalogPath);
|
|
90
|
+
const catalog = sourceCodec.deserializeCatalog(catalogBuffer);
|
|
91
|
+
|
|
92
|
+
// Migrate per-document metadata files
|
|
93
|
+
for (const docId of Object.values(catalog.idToUri ? catalog.idToUri : {})) {
|
|
94
|
+
// Document metadata uses documentId as filename base
|
|
95
|
+
}
|
|
96
|
+
// Actually the document IDs are the keys of idToUri
|
|
97
|
+
for (const docId of Object.keys(catalog.idToUri)) {
|
|
98
|
+
const oldDocMetaPath = path.join(folderPath, `${docId}${sourceCodec.extension}`);
|
|
99
|
+
if (await storage.pathExists(oldDocMetaPath)) {
|
|
100
|
+
const docMetaBuf = await storage.readFile(oldDocMetaPath);
|
|
101
|
+
const docMeta = sourceCodec.deserializeMetadata(docMetaBuf);
|
|
102
|
+
const newDocMetaPath = path.join(folderPath, `${docId}${targetCodec.extension}`);
|
|
103
|
+
await storage.upsertFile(newDocMetaPath, targetCodec.serializeMetadata(docMeta));
|
|
104
|
+
await storage.deleteFile(oldDocMetaPath);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
await storage.upsertFile(targetCatalogPath, targetCodec.serializeCatalog(catalog));
|
|
109
|
+
await storage.deleteFile(sourceCatalogPath);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// --- Clean up old files (after new files are safely written) ---
|
|
113
|
+
// Delete old external metadata files
|
|
114
|
+
for (const item of sourceCodec.deserializeIndex(indexBuffer).items) {
|
|
115
|
+
if (item.metadataFile) {
|
|
116
|
+
const oldMetaPath = path.join(folderPath, item.metadataFile);
|
|
117
|
+
if (await storage.pathExists(oldMetaPath)) {
|
|
118
|
+
await storage.deleteFile(oldMetaPath);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Delete old index file last
|
|
124
|
+
await storage.deleteFile(sourceIndexPath);
|
|
125
|
+
}
|
|
@@ -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/src/index.ts
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
|
+
export * from './codecs';
|
|
2
|
+
export * from './storage';
|
|
1
3
|
export * from './FileFetcher';
|
|
4
|
+
export * from './FolderWatcher';
|
|
2
5
|
export * from './GPT3Tokenizer';
|
|
3
6
|
export * from './ItemSelector';
|
|
7
|
+
export * from './LocalEmbeddings';
|
|
4
8
|
export * from './LocalIndex';
|
|
5
9
|
export * from './LocalDocument';
|
|
6
10
|
export * from './LocalDocumentIndex';
|
|
7
11
|
export * from './LocalDocumentResult';
|
|
8
|
-
export * from './OpenAIEmbeddings';
|
|
9
12
|
export * from './TextSplitter';
|
|
13
|
+
export * from './OpenAIEmbeddings';
|
|
14
|
+
export * from './TransformersEmbeddings';
|
|
15
|
+
export * from './TransformersTokenizer';
|
|
10
16
|
export * from './types';
|
|
11
17
|
export * from './WebFetcher';
|
|
18
|
+
export * from './server';
|
|
19
|
+
export * from './utils/pathUtils';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
const
|
|
1
|
+
const colorizerModule = require('json-colorizer');
|
|
2
|
+
const colorizeFn = colorizerModule?.default ?? colorizerModule;
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* @private
|
|
@@ -20,20 +21,23 @@ export class Colorize {
|
|
|
20
21
|
if (typeof output === 'string') {
|
|
21
22
|
return isBm25 ? `\x1b[34m${quote}${output}${quote}\x1b[0m` : `\x1b[32m${quote}${output}${quote}\x1b[0m`;
|
|
22
23
|
} else if (typeof output === 'object' && output !== null) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
24
|
+
if (typeof colorizeFn === 'function') {
|
|
25
|
+
return colorizeFn(output, {
|
|
26
|
+
pretty: true,
|
|
27
|
+
colors: {
|
|
28
|
+
BRACE: 'white',
|
|
29
|
+
BRACKET: 'white',
|
|
30
|
+
COLON: 'white',
|
|
31
|
+
COMMA: 'white',
|
|
32
|
+
STRING_KEY: 'white',
|
|
33
|
+
STRING_LITERAL: 'green',
|
|
34
|
+
NUMBER_LITERAL: 'blue',
|
|
35
|
+
BOOLEAN_LITERAL: 'blue',
|
|
36
|
+
NULL_LITERAL: 'blue'
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return JSON.stringify(output, null, 2);
|
|
37
41
|
} else if (typeof output == 'number') {
|
|
38
42
|
return `\x1b[34m${output}${units}\x1b[0m`;
|
|
39
43
|
} else {
|
|
@@ -59,6 +63,5 @@ export class Colorize {
|
|
|
59
63
|
|
|
60
64
|
public static warning(warning: string): string {
|
|
61
65
|
return `\x1b[33m${warning}\x1b[0m`;
|
|
62
|
-
|
|
63
66
|
}
|
|
64
67
|
}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import { LocalIndex, CreateIndexConfig } from '../LocalIndex';
|
|
4
|
+
import { LocalDocumentIndex, LocalDocumentIndexConfig } from '../LocalDocumentIndex';
|
|
5
|
+
import { LocalFileStorage } from '../storage/LocalFileStorage';
|
|
6
|
+
import { FileStorage } from '../storage';
|
|
7
|
+
import { EmbeddingsModel, MetadataTypes } from '../types';
|
|
8
|
+
import { detectCodec, IndexCodec, JsonCodec, ProtobufCodec } from '../codecs';
|
|
9
|
+
|
|
10
|
+
export interface ManagedIndex {
|
|
11
|
+
name: string;
|
|
12
|
+
index: LocalIndex | LocalDocumentIndex;
|
|
13
|
+
isDocumentIndex: boolean;
|
|
14
|
+
format: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface IndexManagerConfig {
|
|
18
|
+
/** Single index path (mutually exclusive with rootDir). */
|
|
19
|
+
indexPath?: string;
|
|
20
|
+
/** Root directory containing multiple index subdirectories. */
|
|
21
|
+
rootDir?: string;
|
|
22
|
+
/** Embeddings model for server-side embedding computation. */
|
|
23
|
+
embeddings?: EmbeddingsModel;
|
|
24
|
+
/** Polling interval in ms for auto-detecting new indexes (default: 3000). */
|
|
25
|
+
scanInterval?: number;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Manages loaded indexes for the gRPC server.
|
|
30
|
+
* Supports single-index and multi-index modes with auto-detection of new indexes.
|
|
31
|
+
*/
|
|
32
|
+
export class IndexManager {
|
|
33
|
+
private readonly _config: IndexManagerConfig;
|
|
34
|
+
private readonly _indexes: Map<string, ManagedIndex> = new Map();
|
|
35
|
+
private _scanTimer?: ReturnType<typeof setInterval>;
|
|
36
|
+
private _singleMode: boolean;
|
|
37
|
+
|
|
38
|
+
constructor(config: IndexManagerConfig) {
|
|
39
|
+
this._config = config;
|
|
40
|
+
this._singleMode = !!config.indexPath;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** Returns all currently loaded indexes. */
|
|
44
|
+
public get indexes(): Map<string, ManagedIndex> {
|
|
45
|
+
return this._indexes;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** Returns true if running in single-index mode. */
|
|
49
|
+
public get isSingleMode(): boolean {
|
|
50
|
+
return this._singleMode;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Initializes the index manager: loads existing indexes and starts auto-detection.
|
|
55
|
+
*/
|
|
56
|
+
public async initialize(): Promise<void> {
|
|
57
|
+
if (this._singleMode && this._config.indexPath) {
|
|
58
|
+
await this.loadSingleIndex(this._config.indexPath);
|
|
59
|
+
} else if (this._config.rootDir) {
|
|
60
|
+
await this.scanRootDir();
|
|
61
|
+
// Start periodic scanning for new indexes
|
|
62
|
+
const interval = this._config.scanInterval ?? 3000;
|
|
63
|
+
this._scanTimer = setInterval(() => {
|
|
64
|
+
this.scanRootDir().catch(() => {/* ignore scan errors */});
|
|
65
|
+
}, interval);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Shuts down the index manager: stops scanning and flushes all indexes.
|
|
71
|
+
*/
|
|
72
|
+
public async shutdown(): Promise<void> {
|
|
73
|
+
if (this._scanTimer) {
|
|
74
|
+
clearInterval(this._scanTimer);
|
|
75
|
+
this._scanTimer = undefined;
|
|
76
|
+
}
|
|
77
|
+
// No special flush needed — LocalIndex writes on endUpdate()
|
|
78
|
+
this._indexes.clear();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Gets a managed index by name.
|
|
83
|
+
* In single-index mode, any name (or empty string) returns the single index.
|
|
84
|
+
*/
|
|
85
|
+
public getIndex(name: string): ManagedIndex | undefined {
|
|
86
|
+
if (this._singleMode) {
|
|
87
|
+
// Return the single loaded index regardless of the name provided
|
|
88
|
+
const entries = Array.from(this._indexes.values());
|
|
89
|
+
return entries[0];
|
|
90
|
+
}
|
|
91
|
+
return this._indexes.get(name);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Gets a managed index, throwing NOT_FOUND-appropriate error if missing.
|
|
96
|
+
*/
|
|
97
|
+
public requireIndex(name: string): ManagedIndex {
|
|
98
|
+
const managed = this.getIndex(name);
|
|
99
|
+
if (!managed) {
|
|
100
|
+
throw new Error(`Index not found: ${name}`);
|
|
101
|
+
}
|
|
102
|
+
return managed;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Gets a managed document index, throwing if missing or not a document index.
|
|
107
|
+
*/
|
|
108
|
+
public requireDocumentIndex(name: string): { managed: ManagedIndex; docIndex: LocalDocumentIndex } {
|
|
109
|
+
const managed = this.requireIndex(name);
|
|
110
|
+
if (!managed.isDocumentIndex) {
|
|
111
|
+
throw new Error(`Index "${name}" is not a document index`);
|
|
112
|
+
}
|
|
113
|
+
return { managed, docIndex: managed.index as LocalDocumentIndex };
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Creates a new index on disk and loads it.
|
|
118
|
+
*/
|
|
119
|
+
public async createIndex(
|
|
120
|
+
name: string,
|
|
121
|
+
format: string,
|
|
122
|
+
isDocumentIndex: boolean,
|
|
123
|
+
documentConfig?: { version?: number; chunkSize?: number; chunkOverlap?: number }
|
|
124
|
+
): Promise<ManagedIndex> {
|
|
125
|
+
if (this._indexes.has(name)) {
|
|
126
|
+
throw new Error(`Index already exists: ${name}`);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const rootDir = this._config.rootDir;
|
|
130
|
+
if (!rootDir && !this._singleMode) {
|
|
131
|
+
throw new Error('Cannot create index: no root directory configured');
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
const folderPath = rootDir ? path.join(rootDir, name) : name;
|
|
135
|
+
const storage = new LocalFileStorage();
|
|
136
|
+
const codec = format === 'protobuf' ? new ProtobufCodec() : new JsonCodec();
|
|
137
|
+
|
|
138
|
+
let index: LocalIndex | LocalDocumentIndex;
|
|
139
|
+
if (isDocumentIndex) {
|
|
140
|
+
const config: LocalDocumentIndexConfig = {
|
|
141
|
+
folderPath,
|
|
142
|
+
storage,
|
|
143
|
+
codec,
|
|
144
|
+
embeddings: this._config.embeddings,
|
|
145
|
+
chunkingConfig: {
|
|
146
|
+
chunkSize: documentConfig?.chunkSize || 512,
|
|
147
|
+
chunkOverlap: documentConfig?.chunkOverlap || 0,
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
index = new LocalDocumentIndex(config);
|
|
151
|
+
} else {
|
|
152
|
+
index = new LocalIndex(folderPath, undefined, storage, codec);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
const createConfig: CreateIndexConfig = {
|
|
156
|
+
version: documentConfig?.version || 1,
|
|
157
|
+
deleteIfExists: false,
|
|
158
|
+
};
|
|
159
|
+
await index.createIndex(createConfig);
|
|
160
|
+
|
|
161
|
+
const managed: ManagedIndex = {
|
|
162
|
+
name,
|
|
163
|
+
index,
|
|
164
|
+
isDocumentIndex,
|
|
165
|
+
format: format || 'json',
|
|
166
|
+
};
|
|
167
|
+
this._indexes.set(name, managed);
|
|
168
|
+
return managed;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Deletes an index from disk and unloads it.
|
|
173
|
+
*/
|
|
174
|
+
public async deleteIndex(name: string): Promise<void> {
|
|
175
|
+
const managed = this.requireIndex(name);
|
|
176
|
+
await managed.index.deleteIndex();
|
|
177
|
+
this._indexes.delete(name);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Lists all loaded indexes.
|
|
182
|
+
*/
|
|
183
|
+
public listIndexes(): ManagedIndex[] {
|
|
184
|
+
return Array.from(this._indexes.values());
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
private async loadSingleIndex(indexPath: string): Promise<void> {
|
|
188
|
+
const name = path.basename(indexPath);
|
|
189
|
+
await this.loadIndex(name, indexPath);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
private async scanRootDir(): Promise<void> {
|
|
193
|
+
const rootDir = this._config.rootDir!;
|
|
194
|
+
if (!fs.existsSync(rootDir)) return;
|
|
195
|
+
|
|
196
|
+
const entries = fs.readdirSync(rootDir, { withFileTypes: true });
|
|
197
|
+
for (const entry of entries) {
|
|
198
|
+
if (!entry.isDirectory()) continue;
|
|
199
|
+
if (entry.name.startsWith('.')) continue;
|
|
200
|
+
if (this._indexes.has(entry.name)) continue;
|
|
201
|
+
|
|
202
|
+
const folderPath = path.join(rootDir, entry.name);
|
|
203
|
+
try {
|
|
204
|
+
await this.loadIndex(entry.name, folderPath);
|
|
205
|
+
} catch {
|
|
206
|
+
// Skip directories that aren't valid indexes
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
private async loadIndex(name: string, folderPath: string): Promise<void> {
|
|
212
|
+
const storage = new LocalFileStorage();
|
|
213
|
+
|
|
214
|
+
// Detect codec — throws if no index file found
|
|
215
|
+
const codec = await detectCodec(folderPath, storage);
|
|
216
|
+
const format = codec.extension === '.pb' ? 'protobuf' : 'json';
|
|
217
|
+
|
|
218
|
+
// Detect if it's a document index (has catalog file)
|
|
219
|
+
const hasCatalogJson = await storage.pathExists(path.join(folderPath, 'catalog.json'));
|
|
220
|
+
const hasCatalogPb = await storage.pathExists(path.join(folderPath, 'catalog.pb'));
|
|
221
|
+
const isDocumentIndex = hasCatalogJson || hasCatalogPb;
|
|
222
|
+
|
|
223
|
+
let index: LocalIndex | LocalDocumentIndex;
|
|
224
|
+
if (isDocumentIndex) {
|
|
225
|
+
index = new LocalDocumentIndex({
|
|
226
|
+
folderPath,
|
|
227
|
+
storage,
|
|
228
|
+
codec,
|
|
229
|
+
embeddings: this._config.embeddings,
|
|
230
|
+
});
|
|
231
|
+
} else {
|
|
232
|
+
index = new LocalIndex(folderPath, undefined, storage, codec);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
const managed: ManagedIndex = {
|
|
236
|
+
name,
|
|
237
|
+
index,
|
|
238
|
+
isDocumentIndex,
|
|
239
|
+
format,
|
|
240
|
+
};
|
|
241
|
+
this._indexes.set(name, managed);
|
|
242
|
+
}
|
|
243
|
+
}
|