axiodb 3.31.117 → 4.32.115

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 (39) hide show
  1. package/README.md +16 -17
  2. package/lib/Services/CRUD Operation/Create.operation.js +1 -1
  3. package/lib/Services/CRUD Operation/Create.operation.js.map +1 -1
  4. package/lib/Services/CRUD Operation/Delete.operation.js +17 -12
  5. package/lib/Services/CRUD Operation/Delete.operation.js.map +1 -1
  6. package/lib/Services/CRUD Operation/Reader.operation.js +27 -14
  7. package/lib/Services/CRUD Operation/Reader.operation.js.map +1 -1
  8. package/lib/Services/CRUD Operation/Update.operation.d.ts +1 -3
  9. package/lib/Services/CRUD Operation/Update.operation.js +20 -68
  10. package/lib/Services/CRUD Operation/Update.operation.js.map +1 -1
  11. package/lib/Services/Collection/collection.operation.d.ts +23 -3
  12. package/lib/Services/Collection/collection.operation.js +34 -22
  13. package/lib/Services/Collection/collection.operation.js.map +1 -1
  14. package/lib/Services/Database/database.operation.d.ts +27 -3
  15. package/lib/Services/Database/database.operation.js +55 -11
  16. package/lib/Services/Database/database.operation.js.map +1 -1
  17. package/lib/Services/Index/Index.service.d.ts +125 -0
  18. package/lib/Services/Index/Index.service.js +231 -0
  19. package/lib/Services/Index/Index.service.js.map +1 -0
  20. package/lib/Services/Index/InsertIndex.service.d.ts +34 -0
  21. package/lib/Services/Index/InsertIndex.service.js +79 -0
  22. package/lib/Services/Index/InsertIndex.service.js.map +1 -0
  23. package/lib/Services/Index/ReadIndex.service.d.ts +44 -0
  24. package/lib/Services/Index/ReadIndex.service.js +81 -0
  25. package/lib/Services/Index/ReadIndex.service.js.map +1 -0
  26. package/lib/config/DB.d.ts +1 -29
  27. package/lib/config/DB.js +1 -7
  28. package/lib/config/DB.js.map +1 -1
  29. package/lib/config/Interfaces/Operation/database.operation.interface.d.ts +0 -2
  30. package/lib/utility/BufferLoaderWithWorker.utils.js +28 -7
  31. package/lib/utility/BufferLoaderWithWorker.utils.js.map +1 -1
  32. package/lib/utility/Searcher.utils.js +1 -1
  33. package/package.json +1 -1
  34. package/lib/Schema/DataTypes.models.d.ts +0 -26
  35. package/lib/Schema/DataTypes.models.js +0 -36
  36. package/lib/Schema/DataTypes.models.js.map +0 -1
  37. package/lib/Schema/validator.models.d.ts +0 -10
  38. package/lib/Schema/validator.models.js +0 -51
  39. package/lib/Schema/validator.models.js.map +0 -1
@@ -20,26 +20,17 @@ const Delete_operation_1 = __importDefault(require("../CRUD Operation/Delete.ope
20
20
  const Update_operation_1 = __importDefault(require("../CRUD Operation/Update.operation"));
21
21
  const Aggregation_Operation_1 = __importDefault(require("../Aggregation/Aggregation.Operation"));
22
22
  const outers_1 = require("outers");
23
- // Validator
24
- const validator_models_1 = __importDefault(require("../../Schema/validator.models"));
25
23
  // Converter
26
24
  const Converter_helper_1 = __importDefault(require("../../Helper/Converter.helper"));
27
- const DataTypes_models_1 = require("../../Schema/DataTypes.models");
28
25
  const FolderManager_1 = __importDefault(require("../../engine/Filesystem/FolderManager"));
26
+ const InsertIndex_service_1 = __importDefault(require("../Index/InsertIndex.service"));
29
27
  /**
30
28
  * Represents a collection inside a database.
31
29
  */
32
30
  class Collection {
33
- constructor(name, path, isSchemaNeeded, schema, isEncrypted = false, cryptoInstance, encryptionKey) {
31
+ constructor(name, path, isEncrypted = false, cryptoInstance, encryptionKey) {
34
32
  this.name = name;
35
33
  this.path = path;
36
- if (isSchemaNeeded == true && !schema) {
37
- throw new Error("Schema is required when isSchemaNeeded is true");
38
- }
39
- else {
40
- this.isSchemaNeeded = isSchemaNeeded;
41
- this.schema = schema;
42
- }
43
34
  this.isEncrypted = isEncrypted;
44
35
  this.cryptoInstance = cryptoInstance;
45
36
  this.Converter = new Converter_helper_1.default();
@@ -47,6 +38,7 @@ class Collection {
47
38
  this.encryptionKey = encryptionKey;
48
39
  // Initialize the Insertion class
49
40
  this.Insertion = new Create_operation_1.default(this.name, this.path);
41
+ this.IndexManager = new InsertIndex_service_1.default(this.path);
50
42
  }
51
43
  /**
52
44
  * Get Numbers of Documents in the Collection
@@ -107,6 +99,35 @@ class Collection {
107
99
  }
108
100
  });
109
101
  }
102
+ /**
103
+ * Creates a new index on the specified fields by delegating to the IndexManager.
104
+ *
105
+ * @remarks
106
+ * This method accepts one or more field names and forwards them to IndexManager.createIndex.
107
+ * Index creation behavior (such as uniqueness, ordering, or persistence) is determined by the IndexManager implementation.
108
+ *
109
+ * @param fieldNames - One or more field names that should be included in the new index.
110
+ * @returns A promise that resolves with the result returned by IndexManager.createIndex.
111
+ * @throws Any errors thrown by IndexManager.createIndex (for example, validation or persistence errors) are propagated.
112
+ */
113
+ newIndex(...fieldNames) {
114
+ return __awaiter(this, void 0, void 0, function* () {
115
+ return yield this.IndexManager.createIndex(...fieldNames);
116
+ });
117
+ }
118
+ /**
119
+ * Drops an index by name from the collection.
120
+ *
121
+ * @param indexName - The name of the index to drop.
122
+ * @returns A promise that resolves with the result returned by IndexManager.dropIndex.
123
+ * @throws Will throw an error if the drop operation fails (for example, if the index does not exist
124
+ * or if the caller lacks necessary permissions).
125
+ */
126
+ dropIndex(indexName) {
127
+ return __awaiter(this, void 0, void 0, function* () {
128
+ return yield this.IndexManager.dropIndex(indexName);
129
+ });
130
+ }
110
131
  /**
111
132
  * Inserts a document into the collection.
112
133
  * @param {object} data - The data to be inserted.
@@ -125,18 +146,9 @@ class Collection {
125
146
  // Add the documentId to the data
126
147
  const documentId = yield this.Insertion.generateUniqueDocumentId();
127
148
  data.documentId = documentId;
149
+ yield this.IndexManager.InsertToIndex(data);
128
150
  // Insert the updatedAt field in schema & data
129
151
  data.updatedAt = this.updatedAt;
130
- if (this.isSchemaNeeded == true) {
131
- this.schema.updatedAt = DataTypes_models_1.SchemaTypes.date().required();
132
- this.schema.documentId = DataTypes_models_1.SchemaTypes.string().required();
133
- // Validate the data
134
- const validator = yield (0, validator_models_1.default)(this.schema, data, false);
135
- if (validator === null || validator === void 0 ? void 0 : validator.details) {
136
- outers_1.Console.red("Validation Error", validator.details);
137
- return new response_helper_1.default().Error(validator.details);
138
- }
139
- }
140
152
  // Encrypt the data if crypto is enabled
141
153
  if (this.cryptoInstance && this.isEncrypted) {
142
154
  data = yield this.cryptoInstance.encrypt(this.Converter.ToString(data));
@@ -235,7 +247,7 @@ class Collection {
235
247
  if (!query) {
236
248
  throw new Error("Query cannot be empty");
237
249
  }
238
- return new Update_operation_1.default(this.name, this.path, query, this.isSchemaNeeded, this.schema, this.isEncrypted, this.encryptionKey);
250
+ return new Update_operation_1.default(this.name, this.path, query, this.isEncrypted, this.encryptionKey);
239
251
  }
240
252
  }
241
253
  exports.default = Collection;
@@ -1 +1 @@
1
- {"version":3,"file":"collection.operation.js","sourceRoot":"","sources":["../../../source/Services/Collection/collection.operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection.operation.js","sourceRoot":"","sources":["../../../source/Services/Collection/collection.operation.ts"],"names":[],"mappings":"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"}
@@ -16,11 +16,9 @@ export default class Database {
16
16
  * @param {string} collectionName - Name of the collection.
17
17
  * @param {boolean} crypto - Enable crypto for the collection.
18
18
  * @param {string} key - Key for crypto.
19
- * @param {boolean} isSchemaNeeded - Whether the collection requires a schema.
20
- * @param {object} schema - Schema of the collection.
21
19
  * @returns {Promise<AxioDB>} - Returns the instance of AxioDB.
22
20
  */
23
- createCollection(collectionName: string, crypto?: boolean, key?: string | undefined, isSchemaNeeded?: boolean, schema?: object | any): Promise<Collection>;
21
+ createCollection(collectionName: string, crypto?: boolean, key?: string | undefined): Promise<Collection>;
24
22
  /**
25
23
  * Checks if a collection exists in the database.
26
24
  * @param {string} collectionName - Name of the collection to check.
@@ -40,6 +38,32 @@ export default class Database {
40
38
  * @throws {Error} - Throws an error if the database does not exist.
41
39
  */
42
40
  getCollectionInfo(): Promise<SuccessInterface | undefined>;
41
+ /**
42
+ * Removes the metadata entry for a collection from the collection metadata file.
43
+ *
44
+ * Reads the JSON file located at `${this.path}/collection.meta`, validates that the
45
+ * file exists and contains an array of collection metadata objects, removes any entry
46
+ * whose `name` matches the provided `collectionName`, and writes the updated array
47
+ * back to the same file.
48
+ *
49
+ * The method returns a SuccessInterface on successful removal (even if no matching
50
+ * collection was found) or an ErrorInterface describing the failure.
51
+ *
52
+ * @param collectionName - The name of the collection whose metadata should be removed.
53
+ * @returns A promise that resolves to SuccessInterface on success or ErrorInterface on failure.
54
+ *
55
+ * @remarks
56
+ * - If the metadata file does not exist, an ErrorInterface is returned.
57
+ * - If the metadata file cannot be parsed as a JSON array, an ErrorInterface is returned.
58
+ * - This method performs I/O using a FileManager instance and uses this.ResponseHelper
59
+ * to construct success/error responses. It does not throw; failures are reported via
60
+ * the returned ErrorInterface.
61
+ *
62
+ * @example
63
+ * // Remove the "users" collection metadata
64
+ * await db.dropCollectionMetadata("users");
65
+ */
66
+ dropCollectionMetadata(collectionName: string): Promise<SuccessInterface | ErrorInterface>;
43
67
  /**
44
68
  * Adds metadata for a collection to the collection metadata file.
45
69
  *
@@ -21,6 +21,7 @@ const path_1 = __importDefault(require("path"));
21
21
  const Crypto_helper_1 = require("../../Helper/Crypto.helper");
22
22
  const response_helper_1 = __importDefault(require("../../Helper/response.helper"));
23
23
  const outers_1 = require("outers");
24
+ const Index_service_1 = require("../Index/Index.service");
24
25
  /**
25
26
  * Represents a database instance.
26
27
  * This class provides methods to create, delete, and manage collections within a database.
@@ -38,19 +39,15 @@ class Database {
38
39
  * @param {string} collectionName - Name of the collection.
39
40
  * @param {boolean} crypto - Enable crypto for the collection.
40
41
  * @param {string} key - Key for crypto.
41
- * @param {boolean} isSchemaNeeded - Whether the collection requires a schema.
42
- * @param {object} schema - Schema of the collection.
43
42
  * @returns {Promise<AxioDB>} - Returns the instance of AxioDB.
44
43
  */
45
44
  createCollection(collectionName_1) {
46
- return __awaiter(this, arguments, void 0, function* (collectionName, crypto = false, key, isSchemaNeeded = false, schema) {
45
+ return __awaiter(this, arguments, void 0, function* (collectionName, crypto = false, key) {
47
46
  // Check if the collection already exists
48
47
  const collectionExists = yield this.folderManager.DirectoryExists(path_1.default.join(this.path, collectionName));
49
48
  const collectionPath = path_1.default.join(this.path, collectionName);
50
49
  const CollectionMeta = yield this.getCollectionMetaDetails(collectionName);
51
50
  if (CollectionMeta) {
52
- isSchemaNeeded = CollectionMeta.isSchemaNeeded;
53
- schema = CollectionMeta.schema;
54
51
  crypto = CollectionMeta.isEncrypted
55
52
  ? Boolean(CollectionMeta.isEncrypted)
56
53
  : false;
@@ -61,29 +58,28 @@ class Database {
61
58
  yield this.folderManager.CreateDirectory(collectionPath);
62
59
  console.log(`Collection Created: ${collectionPath}`);
63
60
  }
61
+ // Create AutoIndex meta for the collection
62
+ const Index = new Index_service_1.IndexManager(collectionPath);
63
+ yield Index.generateIndexMeta();
64
64
  // if crypto is enabled, hash the collection name
65
65
  if (crypto === true) {
66
66
  const newCryptoInstance = new Crypto_helper_1.CryptoHelper(key);
67
- const collection = new collection_operation_1.default(collectionName, collectionPath, isSchemaNeeded, schema, crypto, newCryptoInstance, key);
67
+ const collection = new collection_operation_1.default(collectionName, collectionPath, crypto, newCryptoInstance, key);
68
68
  // Store collection metadata in the collectionMap
69
69
  yield this.AddCollectionMetadata({
70
70
  name: collectionName,
71
71
  path: collectionPath,
72
- isSchemaNeeded: isSchemaNeeded === undefined ? false : isSchemaNeeded,
73
- schema: schema === undefined ? {} : schema,
74
72
  encryptionKey: key === undefined ? "" : key,
75
73
  isEncrypted: crypto === undefined ? false : crypto,
76
74
  });
77
75
  return collection;
78
76
  }
79
77
  else {
80
- const collection = new collection_operation_1.default(collectionName, collectionPath, isSchemaNeeded, schema);
78
+ const collection = new collection_operation_1.default(collectionName, collectionPath);
81
79
  // Store collection metadata in the collectionMap
82
80
  yield this.AddCollectionMetadata({
83
81
  name: collectionName,
84
82
  path: collectionPath,
85
- isSchemaNeeded: isSchemaNeeded === undefined ? false : isSchemaNeeded,
86
- schema: schema === undefined ? {} : schema,
87
83
  encryptionKey: key === undefined ? "" : key,
88
84
  isEncrypted: crypto === undefined ? false : crypto,
89
85
  });
@@ -114,6 +110,11 @@ class Database {
114
110
  const collectionPath = path_1.default.join(this.path, collectionName);
115
111
  const exists = yield this.folderManager.DirectoryExists(collectionPath);
116
112
  if (exists.statusCode === outers_1.StatusCodes.OK) {
113
+ // Remove collection metadata
114
+ const status = yield this.dropCollectionMetadata(collectionName);
115
+ if (status && "statusCode" in status && status.statusCode !== 200) {
116
+ return status;
117
+ }
117
118
  yield this.folderManager.DeleteDirectory(collectionPath);
118
119
  return this.ResponseHelper.Success(`Collection: ${collectionName} deleted successfully`);
119
120
  }
@@ -150,6 +151,49 @@ class Database {
150
151
  }
151
152
  });
152
153
  }
154
+ /**
155
+ * Removes the metadata entry for a collection from the collection metadata file.
156
+ *
157
+ * Reads the JSON file located at `${this.path}/collection.meta`, validates that the
158
+ * file exists and contains an array of collection metadata objects, removes any entry
159
+ * whose `name` matches the provided `collectionName`, and writes the updated array
160
+ * back to the same file.
161
+ *
162
+ * The method returns a SuccessInterface on successful removal (even if no matching
163
+ * collection was found) or an ErrorInterface describing the failure.
164
+ *
165
+ * @param collectionName - The name of the collection whose metadata should be removed.
166
+ * @returns A promise that resolves to SuccessInterface on success or ErrorInterface on failure.
167
+ *
168
+ * @remarks
169
+ * - If the metadata file does not exist, an ErrorInterface is returned.
170
+ * - If the metadata file cannot be parsed as a JSON array, an ErrorInterface is returned.
171
+ * - This method performs I/O using a FileManager instance and uses this.ResponseHelper
172
+ * to construct success/error responses. It does not throw; failures are reported via
173
+ * the returned ErrorInterface.
174
+ *
175
+ * @example
176
+ * // Remove the "users" collection metadata
177
+ * await db.dropCollectionMetadata("users");
178
+ */
179
+ dropCollectionMetadata(collectionName) {
180
+ return __awaiter(this, void 0, void 0, function* () {
181
+ const FileManagement = new FileManager_1.default();
182
+ const isFileExist = yield FileManagement.FileExists(`${this.path}/collection.meta`);
183
+ if (isFileExist.status == false) {
184
+ return this.ResponseHelper.Error("Collection metadata file does not exist");
185
+ }
186
+ else {
187
+ const FullData = JSON.parse((yield FileManagement.ReadFile(`${this.path}/collection.meta`)).data);
188
+ if (!Array.isArray(FullData)) {
189
+ return this.ResponseHelper.Error("Invalid collection metadata format");
190
+ }
191
+ const UpdatedData = FullData.filter((data) => data.name !== collectionName);
192
+ yield FileManagement.WriteFile(`${this.path}/collection.meta`, JSON.stringify(UpdatedData));
193
+ return this.ResponseHelper.Success(`Collection metadata for ${collectionName} dropped successfully`);
194
+ }
195
+ });
196
+ }
153
197
  /**
154
198
  * Adds metadata for a collection to the collection metadata file.
155
199
  *
@@ -1 +1 @@
1
- {"version":3,"file":"database.operation.js","sourceRoot":"","sources":["../../../source/Services/Database/database.operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.operation.js","sourceRoot":"","sources":["../../../source/Services/Database/database.operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ import { ErrorInterface, SuccessInterface } from "../../config/Interfaces/Helper/response.helper.interface";
2
+ import FileManager from "../../engine/Filesystem/FileManager";
3
+ import FolderManager from "../../engine/Filesystem/FolderManager";
4
+ import Converter from "../../Helper/Converter.helper";
5
+ import ResponseHelper from "../../Helper/response.helper";
6
+ export declare class IndexManager {
7
+ readonly path: string;
8
+ readonly indexFolderPath: string;
9
+ readonly indexMetaPath: string;
10
+ readonly fileManager: FileManager;
11
+ readonly folderManager: FolderManager;
12
+ readonly converter: Converter;
13
+ readonly ResponseHelper: ResponseHelper;
14
+ constructor(path: string);
15
+ /**
16
+ * Create one or more index files and register them in the index metadata.
17
+ *
18
+ * For each supplied field name this method:
19
+ * 1. Determines the index file path as `${indexName}.axiodb` inside the configured index folder.
20
+ * 2. Checks whether the index file already exists. If it does not, creates the file with an empty
21
+ * index structure ({ fieldName, indexEntries: [] }).
22
+ * 3. Reads the index metadata file (index.meta.json), parses it, and if an entry for the index
23
+ * field does not already exist, appends a metadata record `{ indexFieldName, fileName, path }`
24
+ * and writes the metadata file back.
25
+ *
26
+ * Side effects:
27
+ * - Writes new index files to disk via `fileManager.WriteFile`.
28
+ * - Reads and updates the index metadata file via `fileManager.ReadFile` / `WriteFile`.
29
+ * - Uses the configured `converter` to serialize/deserialize index and metadata content.
30
+ *
31
+ * Notes:
32
+ * - The operation is not atomic: some indexes may be created while others fail. The method will
33
+ * collect created and failed index names and include them in the returned response.
34
+ * - A failure is recorded for a field when the index file already exists, when the index already
35
+ * exists in the metadata, or when reading/writing the metadata file fails.
36
+ * - The method relies on `indexFolderPath`, `indexMetaPath`, `fileManager`, and `converter`
37
+ * being correctly configured and available on the instance.
38
+ *
39
+ * @param fieldNames - One or more field names for which to create indexes.
40
+ * @returns A promise that resolves to either:
41
+ * - SuccessInterface: indicates which indexes were created and which already existed / failed,
42
+ * typically containing a human-readable message listing affected and existing indexes.
43
+ * - ErrorInterface: returned when underlying file/IO operations fail in a way that prevents
44
+ * producing the expected success response.
45
+ *
46
+ * @example
47
+ * // Create a single index
48
+ * await service.createIndex('email');
49
+ *
50
+ * @example
51
+ * // Create multiple indexes
52
+ * await service.createIndex('email', 'username', 'createdAt');
53
+ */
54
+ createIndex(...fieldNames: string[]): Promise<SuccessInterface | undefined>;
55
+ /**
56
+ * Deletes an index file and removes its entry from the index metadata.
57
+ *
58
+ * This asynchronous method attempts to delete the index file located at
59
+ * `${this.indexFolderPath}/${indexName}.axiodb`. If the file exists it is removed,
60
+ * and the index metadata file at `this.indexMetaPath` is read and updated by
61
+ * filtering out the metadata entry whose `indexFieldName` matches `indexName`.
62
+ * The metadata update is performed only if the metadata file can be read successfully.
63
+ *
64
+ * @param indexName - The name of the index to delete (without extension).
65
+ * @returns A Promise that resolves to a SuccessInterface when the index was deleted
66
+ * (and metadata updated when possible), or an ErrorInterface when the
67
+ * specified index does not exist.
68
+ *
69
+ * @async
70
+ * @remarks
71
+ * - Side effects: removes a file from the file system and may modify the index metadata file.
72
+ * - Uses injected helpers: `fileManager` for filesystem operations, `converter` for
73
+ * (de)serialization of metadata, and `ResponseHelper` to construct the returned result.
74
+ * - If the metadata file cannot be read, the method still succeeds after deleting the index file.
75
+ *
76
+ * @throws {Error} May propagate errors from underlying file operations if those utilities throw.
77
+ */
78
+ dropIndex(indexName: string): Promise<SuccessInterface | ErrorInterface>;
79
+ /**
80
+ * Ensures the index folder and the index metadata file exist, creating them if necessary.
81
+ *
82
+ * This asynchronous method performs the following steps:
83
+ * 1. Checks whether the index folder at `this.indexFolderPath` exists; if not, creates it.
84
+ * 2. Checks whether the index metadata file at `this.indexMetaPath` exists; if not:
85
+ * a. Constructs a default index metadata entry for a unique "documentId" index:
86
+ * - indexFieldName: "documentId"
87
+ * - fileName: "documentId.axiodb"
88
+ * - path: `${this.indexFolderPath}/documentId.axiodb`
89
+ * - unique: true
90
+ * b. Calls `this.createIndex("documentId")` to create the underlying index file/structure.
91
+ * c. Writes the metadata array to `this.indexMetaPath` using `this.converter.ToString(...)`.
92
+ *
93
+ * The operation is idempotent: if the folder or metadata file already exist, no changes are made.
94
+ *
95
+ * @remarks
96
+ * - This method performs filesystem modifications via `folderManager` and `fileManager`.
97
+ * - Any errors thrown by `folderManager`, `fileManager`, `converter`, or `createIndex` will propagate to the caller.
98
+ * - Callers should `await` this method to ensure the initialization is complete before proceeding.
99
+ *
100
+ * @returns A Promise that resolves when initialization is complete.
101
+ *
102
+ * @throws Will reject if directory creation, file checks/writes, conversion, or index creation fails.
103
+ *
104
+ * @example
105
+ * // Ensure index folder and metadata exist before using the index service
106
+ * await indexService.generateIndexMeta();
107
+ */
108
+ generateIndexMeta(): Promise<void>;
109
+ /**
110
+ * Finds index metadata entries that correspond to properties present on the provided document.
111
+ *
112
+ * Reads the index metadata file at `this.indexMetaPath`, converts its content into an object,
113
+ * and returns the subset of metadata entries whose `indexFieldName` is an own property of `doc`.
114
+ *
115
+ * @param doc - The document to check for matching index fields. The function tests own properties
116
+ * (via `Object.prototype.hasOwnProperty.call`) rather than inherited properties.
117
+ * @returns A Promise that resolves to an array of matching index metadata entries, or `undefined`
118
+ * if the index metadata file could not be successfully read. The array may be empty if
119
+ * no metadata entries match.
120
+ *
121
+ * @throws May propagate errors from `fileManager.ReadFile` or `converter.ToObject` if those
122
+ * operations throw or reject.
123
+ */
124
+ protected findMatchingIndexMeta(doc: any): Promise<any[] | undefined>;
125
+ }