axiodb 12.10.26 → 13.0.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/README.md +15 -45
- package/lib/Helper/DocumentLoader.helper.d.ts +1 -1
- package/lib/Helper/DocumentLoader.helper.js +3 -3
- package/lib/Helper/DocumentLoader.helper.js.map +1 -1
- package/lib/Helper/SortedIndexValues.helper.d.ts +45 -0
- package/lib/Helper/SortedIndexValues.helper.js +105 -0
- package/lib/Helper/SortedIndexValues.helper.js.map +1 -0
- package/lib/Services/Aggregation/Aggregation.Operation.d.ts +3 -8
- package/lib/Services/Aggregation/Aggregation.Operation.js +4 -11
- package/lib/Services/Aggregation/Aggregation.Operation.js.map +1 -1
- package/lib/Services/CRUD Operation/Create.operation.js +14 -2
- package/lib/Services/CRUD Operation/Create.operation.js.map +1 -1
- package/lib/Services/CRUD Operation/Delete.operation.d.ts +3 -7
- package/lib/Services/CRUD Operation/Delete.operation.js +37 -24
- package/lib/Services/CRUD Operation/Delete.operation.js.map +1 -1
- package/lib/Services/CRUD Operation/Reader.operation.d.ts +3 -8
- package/lib/Services/CRUD Operation/Reader.operation.js +8 -12
- package/lib/Services/CRUD Operation/Reader.operation.js.map +1 -1
- package/lib/Services/CRUD Operation/Update.operation.d.ts +3 -18
- package/lib/Services/CRUD Operation/Update.operation.js +68 -50
- package/lib/Services/CRUD Operation/Update.operation.js.map +1 -1
- package/lib/Services/Collection/collection.operation.d.ts +14 -7
- package/lib/Services/Collection/collection.operation.js +52 -53
- package/lib/Services/Collection/collection.operation.js.map +1 -1
- package/lib/Services/Database/database.operation.d.ts +1 -3
- package/lib/Services/Database/database.operation.js +14 -59
- package/lib/Services/Database/database.operation.js.map +1 -1
- package/lib/Services/Index/DeleteIndex.service.js +11 -1
- package/lib/Services/Index/DeleteIndex.service.js.map +1 -1
- package/lib/Services/Index/Index.service.js +1 -0
- package/lib/Services/Index/Index.service.js.map +1 -1
- package/lib/Services/Index/IndexCache.service.d.ts +39 -12
- package/lib/Services/Index/IndexCache.service.js +64 -24
- package/lib/Services/Index/IndexCache.service.js.map +1 -1
- package/lib/Services/Index/InsertIndex.service.js +13 -1
- package/lib/Services/Index/InsertIndex.service.js.map +1 -1
- package/lib/Services/Index/ReadIndex.service.d.ts +31 -0
- package/lib/Services/Index/ReadIndex.service.js +50 -1
- package/lib/Services/Index/ReadIndex.service.js.map +1 -1
- package/lib/Services/Transaction/LockManager.service.d.ts +6 -1
- package/lib/Services/Transaction/LockManager.service.js +36 -26
- package/lib/Services/Transaction/LockManager.service.js.map +1 -1
- package/lib/Services/Transaction/Session.service.d.ts +1 -3
- package/lib/Services/Transaction/Session.service.js +2 -4
- package/lib/Services/Transaction/Session.service.js.map +1 -1
- package/lib/Services/Transaction/Transaction.service.d.ts +1 -4
- package/lib/Services/Transaction/Transaction.service.js +26 -24
- package/lib/Services/Transaction/Transaction.service.js.map +1 -1
- package/lib/Services/Transaction/TransactionIndexManager.service.d.ts +2 -4
- package/lib/Services/Transaction/TransactionIndexManager.service.js +48 -32
- package/lib/Services/Transaction/TransactionIndexManager.service.js.map +1 -1
- package/lib/Services/Transaction/TransactionRegistry.service.js +3 -3
- package/lib/Services/Transaction/TransactionRegistry.service.js.map +1 -1
- package/lib/Services/Transaction/WriteAheadLog.service.d.ts +1 -3
- package/lib/Services/Transaction/WriteAheadLog.service.js +4 -21
- package/lib/Services/Transaction/WriteAheadLog.service.js.map +1 -1
- package/lib/client/DatabaseProxy.d.ts +1 -1
- package/lib/client/DatabaseProxy.js +1 -3
- package/lib/client/DatabaseProxy.js.map +1 -1
- package/lib/config/DB.d.ts +0 -3
- package/lib/config/DB.js +0 -2
- package/lib/config/DB.js.map +1 -1
- package/lib/engine/Filesystem/FileManager.d.ts +9 -0
- package/lib/engine/Filesystem/FileManager.js +70 -1
- package/lib/engine/Filesystem/FileManager.js.map +1 -1
- package/lib/engine/node/WorkerForDataLoad.engine.js +8 -26
- package/lib/engine/node/WorkerForDataLoad.engine.js.map +1 -1
- package/lib/server/controller/Collections/Collection.controller.js +2 -2
- package/lib/server/controller/Collections/Collection.controller.js.map +1 -1
- package/lib/server/public/AxioControl/.vite/manifest.json +2 -2
- package/lib/server/public/AxioControl/assets/index-05O5admf.css +1 -0
- package/lib/server/public/AxioControl/assets/{index-DyJg6FRw.js → index-Ddne1B8d.js} +11 -11
- package/lib/server/public/AxioControl/index.html +2 -2
- package/lib/server/public/AxioControl/sw.js +1 -1
- package/lib/tcp/handler/handlers/Collection.handler.js +2 -2
- package/lib/tcp/handler/handlers/Collection.handler.js.map +1 -1
- package/lib/utility/BufferLoaderWithWorker.utils.d.ts +1 -3
- package/lib/utility/BufferLoaderWithWorker.utils.js +8 -32
- package/lib/utility/BufferLoaderWithWorker.utils.js.map +1 -1
- package/package.json +1 -3
- package/lib/Helper/Crypto.helper.d.ts +0 -14
- package/lib/Helper/Crypto.helper.js +0 -55
- package/lib/Helper/Crypto.helper.js.map +0 -1
- package/lib/Helper/CryptoGraphy.helper.d.ts +0 -15
- package/lib/Helper/CryptoGraphy.helper.js +0 -52
- package/lib/Helper/CryptoGraphy.helper.js.map +0 -1
- package/lib/server/public/AxioControl/assets/index-D3V1EZ2f.css +0 -1
|
@@ -13,8 +13,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
14
|
};
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
const Converter_helper_1 = __importDefault(require("../../Helper/Converter.helper"));
|
|
17
|
-
const Crypto_helper_1 = require("../../Helper/Crypto.helper");
|
|
18
16
|
const response_helper_1 = __importDefault(require("../../Helper/response.helper"));
|
|
19
17
|
const DocumentLoader_helper_1 = __importDefault(require("../../Helper/DocumentLoader.helper"));
|
|
20
18
|
const FileManager_1 = __importDefault(require("../../engine/Filesystem/FileManager"));
|
|
@@ -32,23 +30,14 @@ const LockManager_service_1 = __importDefault(require("../Transaction/LockManage
|
|
|
32
30
|
* This class provides methods to delete a single document that matches the base query.
|
|
33
31
|
*/
|
|
34
32
|
class DeleteOperation {
|
|
35
|
-
constructor(collectionName, path, baseQuery
|
|
33
|
+
constructor(collectionName, path, baseQuery) {
|
|
36
34
|
this.allDataWithFileName = [];
|
|
37
35
|
this.collectionName = collectionName;
|
|
38
36
|
this.path = path;
|
|
39
37
|
this.baseQuery = baseQuery;
|
|
40
|
-
this.isEncrypted = isEncrypted;
|
|
41
|
-
this.encryptionKey = encryptionKey;
|
|
42
38
|
this.sort = {};
|
|
43
39
|
this.ResponseHelper = new response_helper_1.default();
|
|
44
|
-
this.Converter = new Converter_helper_1.default();
|
|
45
40
|
this.fileManager = new FileManager_1.default();
|
|
46
|
-
if (this.isEncrypted === true) {
|
|
47
|
-
if (!this.encryptionKey) {
|
|
48
|
-
throw new Error("Encryption key must be provided when isEncrypted is true.");
|
|
49
|
-
}
|
|
50
|
-
this.cryptoInstance = new Crypto_helper_1.CryptoHelper(this.encryptionKey);
|
|
51
|
-
}
|
|
52
41
|
this.allDataWithFileName = []; // To store all data with file name
|
|
53
42
|
}
|
|
54
43
|
// Methods
|
|
@@ -72,7 +61,7 @@ class DeleteOperation {
|
|
|
72
61
|
deleteOne() {
|
|
73
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
74
63
|
var _a;
|
|
75
|
-
const lockManager =
|
|
64
|
+
const lockManager = LockManager_service_1.default.getInstance(this.path);
|
|
76
65
|
const operationId = (0, crypto_1.randomUUID)();
|
|
77
66
|
const timestamp = Date.now();
|
|
78
67
|
let documentId = null;
|
|
@@ -117,18 +106,27 @@ class DeleteOperation {
|
|
|
117
106
|
if (!("data" in lockResult)) {
|
|
118
107
|
return this.ResponseHelper.Error("Lock acquisition failed");
|
|
119
108
|
}
|
|
120
|
-
// STEP 3:
|
|
109
|
+
// STEP 3: Re-read under lock. The Step 1 snapshot's field values can be stale if
|
|
110
|
+
// another writer updated this document while we waited for the lock - deleting
|
|
111
|
+
// the file is unaffected by that, but cleaning up the index with stale field
|
|
112
|
+
// values would remove the wrong index entry and leave a dangling one behind.
|
|
113
|
+
const freshRead = yield DocumentLoader_helper_1.default.loadDocuments(this.path, [fileName], true);
|
|
114
|
+
if (!("data" in freshRead) || freshRead.data.length === 0) {
|
|
115
|
+
return this.ResponseHelper.Error("Document no longer exists");
|
|
116
|
+
}
|
|
117
|
+
const currentData = freshRead.data[0].data;
|
|
118
|
+
// STEP 4: Delete the file (now safe - locked)
|
|
121
119
|
const deleteResponse = yield this.deleteFile(fileName);
|
|
122
120
|
if (!("data" in deleteResponse)) {
|
|
123
121
|
return this.ResponseHelper.Error("Failed to delete data");
|
|
124
122
|
}
|
|
125
123
|
// Fire-and-forget: Remove from indexes and invalidate cache asynchronously for faster response
|
|
126
|
-
const isDeleted = yield new DeleteIndex_service_1.default(this.path).RemoveFromIndex(documentId,
|
|
124
|
+
const isDeleted = yield new DeleteIndex_service_1.default(this.path).RemoveFromIndex(documentId, currentData).catch(() => { });
|
|
127
125
|
if (isDeleted) {
|
|
128
126
|
yield memory_operation_1.default.invalidateByDocument(this.path, documentId).catch(() => { });
|
|
129
127
|
return this.ResponseHelper.Success({
|
|
130
128
|
message: "Data deleted successfully",
|
|
131
|
-
deleteData:
|
|
129
|
+
deleteData: currentData,
|
|
132
130
|
});
|
|
133
131
|
}
|
|
134
132
|
else {
|
|
@@ -163,7 +161,7 @@ class DeleteOperation {
|
|
|
163
161
|
*/
|
|
164
162
|
deleteMany() {
|
|
165
163
|
return __awaiter(this, void 0, void 0, function* () {
|
|
166
|
-
const lockManager =
|
|
164
|
+
const lockManager = LockManager_service_1.default.getInstance(this.path);
|
|
167
165
|
const operationId = (0, crypto_1.randomUUID)();
|
|
168
166
|
const timestamp = Date.now();
|
|
169
167
|
const acquiredLocks = [];
|
|
@@ -195,22 +193,37 @@ class DeleteOperation {
|
|
|
195
193
|
}
|
|
196
194
|
acquiredLocks.push(docId);
|
|
197
195
|
}
|
|
198
|
-
// STEP 3: All locks acquired -
|
|
196
|
+
// STEP 3: All locks acquired - re-read current data under lock. The Step 1
|
|
197
|
+
// snapshot can be stale for any document another writer touched while we were
|
|
198
|
+
// queued behind its lock (see UpdateOne for the full race) - deleting the file
|
|
199
|
+
// is unaffected, but stale field values would clean up the wrong index entry.
|
|
200
|
+
const fileNamesToRefresh = SearchedData.map((d) => d.fileName);
|
|
201
|
+
const freshRead = yield DocumentLoader_helper_1.default.loadDocuments(this.path, fileNamesToRefresh, true);
|
|
202
|
+
if (!("data" in freshRead)) {
|
|
203
|
+
return this.ResponseHelper.Error("Failed to re-read documents under lock");
|
|
204
|
+
}
|
|
205
|
+
const freshDataByFileName = new Map(freshRead.data.map((d) => [d.fileName, d.data]));
|
|
206
|
+
// STEP 4: All locks acquired - now perform deletions safely
|
|
199
207
|
const deleteIndexService = new DeleteIndex_service_1.default(this.path);
|
|
200
208
|
for (let i = 0; i < SearchedData.length; i++) {
|
|
201
|
-
const
|
|
209
|
+
const fileName = SearchedData[i].fileName;
|
|
210
|
+
const currentData = freshDataByFileName.get(fileName);
|
|
211
|
+
if (!currentData) {
|
|
212
|
+
return this.ResponseHelper.Error(`Document ${fileName} no longer exists`);
|
|
213
|
+
}
|
|
214
|
+
const deleteResponse = yield this.deleteFile(fileName);
|
|
202
215
|
if (!("data" in deleteResponse)) {
|
|
203
216
|
return this.ResponseHelper.Error("Failed to delete data");
|
|
204
217
|
}
|
|
205
218
|
// Fire-and-forget: Remove from indexes asynchronously
|
|
206
|
-
yield deleteIndexService.RemoveFromIndex(
|
|
219
|
+
yield deleteIndexService.RemoveFromIndex(fileName.split('.')[0], currentData).catch(() => { });
|
|
207
220
|
}
|
|
208
221
|
// Fire-and-forget: Invalidate cache asynchronously
|
|
209
222
|
const isRemoved = yield memory_operation_1.default.invalidateByDocuments(this.path, documentIds).catch(() => { });
|
|
210
223
|
if (isRemoved) {
|
|
211
224
|
return this.ResponseHelper.Success({
|
|
212
225
|
message: "Data deleted successfully",
|
|
213
|
-
deleteData: SearchedData.map((data) => data.
|
|
226
|
+
deleteData: SearchedData.map((data) => freshDataByFileName.get(data.fileName)),
|
|
214
227
|
});
|
|
215
228
|
}
|
|
216
229
|
else {
|
|
@@ -231,8 +244,8 @@ class DeleteOperation {
|
|
|
231
244
|
* This method performs the following steps:
|
|
232
245
|
* 1. Checks if the directory is locked.
|
|
233
246
|
* 2. If the directory is not locked, it lists all files in the directory.
|
|
234
|
-
* 3. Reads each file
|
|
235
|
-
* 4. Stores the
|
|
247
|
+
* 3. Reads each file.
|
|
248
|
+
* 4. Stores the data in the `AllData` array.
|
|
236
249
|
* 5. If the directory is locked, it unlocks the directory, reads the files, and then locks the directory again.
|
|
237
250
|
*
|
|
238
251
|
* @returns {Promise<SuccessInterface | ErrorInterface>} A promise that resolves to a success or error response.
|
|
@@ -242,7 +255,7 @@ class DeleteOperation {
|
|
|
242
255
|
LoadAllBufferRawData(documentIdDirectFile) {
|
|
243
256
|
return __awaiter(this, void 0, void 0, function* () {
|
|
244
257
|
// Use shared DocumentLoader helper (DRY - consolidates duplicated code)
|
|
245
|
-
const result = yield DocumentLoader_helper_1.default.loadDocuments(this.path,
|
|
258
|
+
const result = yield DocumentLoader_helper_1.default.loadDocuments(this.path, documentIdDirectFile, true // Include fileName for Delete operations
|
|
246
259
|
);
|
|
247
260
|
// Store result in allDataWithFileName if successful
|
|
248
261
|
if ("data" in result) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Delete.operation.js","sourceRoot":"","sources":["../../../source/Services/CRUD Operation/Delete.operation.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;;;;;;;;;;;;AAMvD,
|
|
1
|
+
{"version":3,"file":"Delete.operation.js","sourceRoot":"","sources":["../../../source/Services/CRUD Operation/Delete.operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,9 +10,6 @@ export default class Reader {
|
|
|
10
10
|
private limit;
|
|
11
11
|
private skip;
|
|
12
12
|
private sort;
|
|
13
|
-
private isEncrypted;
|
|
14
|
-
private encryptionKey;
|
|
15
|
-
private cryptoInstance?;
|
|
16
13
|
private totalCount;
|
|
17
14
|
private FindOneStatus;
|
|
18
15
|
private project;
|
|
@@ -23,10 +20,8 @@ export default class Reader {
|
|
|
23
20
|
* @param {string} collectionName - The name of the collection.
|
|
24
21
|
* @param {string} path - The data to be read.
|
|
25
22
|
* @param {object} baseQuery - The base query to be used.
|
|
26
|
-
* @param {boolean} isEncrypted - The encryption status.
|
|
27
|
-
* @param {string} encryptionKey - The encryption key.
|
|
28
23
|
*/
|
|
29
|
-
constructor(collectionName: string, path: string, baseQuery: object | any
|
|
24
|
+
constructor(collectionName: string, path: string, baseQuery: object | any);
|
|
30
25
|
/**
|
|
31
26
|
* Generates a comprehensive cache key including collection context
|
|
32
27
|
* Prevents cache collisions between different collections with same query
|
|
@@ -97,8 +92,8 @@ export default class Reader {
|
|
|
97
92
|
* This method performs the following steps:
|
|
98
93
|
* 1. Checks if the directory is locked.
|
|
99
94
|
* 2. If the directory is not locked, it lists all files in the directory.
|
|
100
|
-
* 3. Reads each file
|
|
101
|
-
* 4. Stores the
|
|
95
|
+
* 3. Reads each file.
|
|
96
|
+
* 4. Stores the data in the `AllData` array.
|
|
102
97
|
* 5. If the directory is locked, it unlocks the directory, reads the files, and then locks the directory again.
|
|
103
98
|
*
|
|
104
99
|
* @returns {Promise<SuccessInterface | ErrorInterface>} A promise that resolves to a success or error response.
|
|
@@ -15,7 +15,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
// Import All helpers
|
|
16
16
|
const memory_operation_1 = __importDefault(require("../../Memory/memory.operation"));
|
|
17
17
|
const Converter_helper_1 = __importDefault(require("../../Helper/Converter.helper"));
|
|
18
|
-
const Crypto_helper_1 = require("../../Helper/Crypto.helper");
|
|
19
18
|
const response_helper_1 = __importDefault(require("../../Helper/response.helper"));
|
|
20
19
|
const PathSanitizer_helper_1 = __importDefault(require("../../Helper/PathSanitizer.helper"));
|
|
21
20
|
const DocumentLoader_helper_1 = __importDefault(require("../../Helper/DocumentLoader.helper"));
|
|
@@ -33,27 +32,20 @@ class Reader {
|
|
|
33
32
|
* @param {string} collectionName - The name of the collection.
|
|
34
33
|
* @param {string} path - The data to be read.
|
|
35
34
|
* @param {object} baseQuery - The base query to be used.
|
|
36
|
-
* @param {boolean} isEncrypted - The encryption status.
|
|
37
|
-
* @param {string} encryptionKey - The encryption key.
|
|
38
35
|
*/
|
|
39
|
-
constructor(collectionName, path, baseQuery
|
|
36
|
+
constructor(collectionName, path, baseQuery) {
|
|
40
37
|
this.collectionName = collectionName;
|
|
41
38
|
this.path = path;
|
|
42
39
|
this.limit = 10;
|
|
43
40
|
this.skip = 0;
|
|
44
41
|
this.FindOneStatus = false; // Default value for FindOneStatus
|
|
45
|
-
this.isEncrypted = isEncrypted;
|
|
46
42
|
this.sort = {};
|
|
47
43
|
this.project = {};
|
|
48
44
|
this.baseQuery = baseQuery;
|
|
49
45
|
this.Converter = new Converter_helper_1.default();
|
|
50
|
-
this.encryptionKey = encryptionKey;
|
|
51
46
|
this.ResponseHelper = new response_helper_1.default();
|
|
52
47
|
this.totalCount = false;
|
|
53
48
|
this.AllData = [];
|
|
54
|
-
if (this.isEncrypted === true) {
|
|
55
|
-
this.cryptoInstance = new Crypto_helper_1.CryptoHelper(this.encryptionKey);
|
|
56
|
-
}
|
|
57
49
|
}
|
|
58
50
|
/**
|
|
59
51
|
* Generates a comprehensive cache key including collection context
|
|
@@ -132,6 +124,10 @@ class Reader {
|
|
|
132
124
|
indexedFileNames = yield indexReader.getFileFromIndex(this.baseQuery);
|
|
133
125
|
}
|
|
134
126
|
}
|
|
127
|
+
// OPTIMIZED: Use sorted-index range lookup for $gt/$gte/$lt/$lte (O(log U + K) vs O(N))
|
|
128
|
+
else if ('$gt' in fieldValue || '$gte' in fieldValue || '$lt' in fieldValue || '$lte' in fieldValue) {
|
|
129
|
+
indexedFileNames = yield indexReader.getFilesForRangeOperator(fieldName, fieldValue);
|
|
130
|
+
}
|
|
135
131
|
// Other operators - use standard lookup
|
|
136
132
|
else {
|
|
137
133
|
indexedFileNames = yield indexReader.getFileFromIndex(this.baseQuery);
|
|
@@ -303,8 +299,8 @@ class Reader {
|
|
|
303
299
|
* This method performs the following steps:
|
|
304
300
|
* 1. Checks if the directory is locked.
|
|
305
301
|
* 2. If the directory is not locked, it lists all files in the directory.
|
|
306
|
-
* 3. Reads each file
|
|
307
|
-
* 4. Stores the
|
|
302
|
+
* 3. Reads each file.
|
|
303
|
+
* 4. Stores the data in the `AllData` array.
|
|
308
304
|
* 5. If the directory is locked, it unlocks the directory, reads the files, and then locks the directory again.
|
|
309
305
|
*
|
|
310
306
|
* @returns {Promise<SuccessInterface | ErrorInterface>} A promise that resolves to a success or error response.
|
|
@@ -314,7 +310,7 @@ class Reader {
|
|
|
314
310
|
LoadAllBufferRawData(documentIdDirectFile) {
|
|
315
311
|
return __awaiter(this, void 0, void 0, function* () {
|
|
316
312
|
// Use shared DocumentLoader helper (DRY - consolidates duplicated code)
|
|
317
|
-
const result = yield DocumentLoader_helper_1.default.loadDocuments(this.path,
|
|
313
|
+
const result = yield DocumentLoader_helper_1.default.loadDocuments(this.path, documentIdDirectFile, false // Don't include fileName for Reader
|
|
318
314
|
);
|
|
319
315
|
// Store result in AllData if successful
|
|
320
316
|
if ("data" in result) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reader.operation.js","sourceRoot":"","sources":["../../../source/Services/CRUD Operation/Reader.operation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Reader.operation.js","sourceRoot":"","sources":["../../../source/Services/CRUD Operation/Reader.operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,17 +3,12 @@ export default class UpdateOperation {
|
|
|
3
3
|
protected readonly collectionName: string;
|
|
4
4
|
private readonly baseQuery;
|
|
5
5
|
private readonly path;
|
|
6
|
-
private readonly isEncrypted;
|
|
7
|
-
private readonly encryptionKey;
|
|
8
6
|
private readonly ResponseHelper;
|
|
9
|
-
private readonly cryptoInstance?;
|
|
10
|
-
private readonly Converter;
|
|
11
|
-
private readonly fileManager;
|
|
12
7
|
private allDataWithFileName;
|
|
13
8
|
private sort;
|
|
14
9
|
private updatedAt;
|
|
15
10
|
private readonly Insertion;
|
|
16
|
-
constructor(collectionName: string, path: string, baseQuery: object | any
|
|
11
|
+
constructor(collectionName: string, path: string, baseQuery: object | any);
|
|
17
12
|
/**
|
|
18
13
|
* Updates a single document that matches the base query.
|
|
19
14
|
*
|
|
@@ -62,8 +57,8 @@ export default class UpdateOperation {
|
|
|
62
57
|
* This method performs the following steps:
|
|
63
58
|
* 1. Checks if the directory is locked.
|
|
64
59
|
* 2. If the directory is not locked, it lists all files in the directory.
|
|
65
|
-
* 3. Reads each file
|
|
66
|
-
* 4. Stores the
|
|
60
|
+
* 3. Reads each file.
|
|
61
|
+
* 4. Stores the data in the `AllData` array.
|
|
67
62
|
* 5. If the directory is locked, it unlocks the directory, reads the files, and then locks the directory again.
|
|
68
63
|
*
|
|
69
64
|
* @returns {Promise<SuccessInterface | ErrorInterface>} A promise that resolves to a success or error response.
|
|
@@ -71,16 +66,6 @@ export default class UpdateOperation {
|
|
|
71
66
|
* @throws {Error} Throws an error if any operation fails.
|
|
72
67
|
*/
|
|
73
68
|
private LoadAllBufferRawData;
|
|
74
|
-
/**
|
|
75
|
-
* Deletes a file from the specified path.
|
|
76
|
-
*
|
|
77
|
-
* @param fileName - The name of the file to be deleted
|
|
78
|
-
* @returns A response object indicating success or failure
|
|
79
|
-
* Success response: { status: true, message: "File deleted successfully" }
|
|
80
|
-
* Error response: { status: false, message: <error message> }
|
|
81
|
-
* @private
|
|
82
|
-
*/
|
|
83
|
-
private deleteFileUpdate;
|
|
84
69
|
/**
|
|
85
70
|
* Inserts a document into the collection.
|
|
86
71
|
* @param {object} data - The data to be inserted.
|
|
@@ -12,11 +12,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const Converter_helper_1 = __importDefault(require("../../Helper/Converter.helper"));
|
|
16
|
-
const Crypto_helper_1 = require("../../Helper/Crypto.helper");
|
|
17
15
|
const response_helper_1 = __importDefault(require("../../Helper/response.helper"));
|
|
18
16
|
const DocumentLoader_helper_1 = __importDefault(require("../../Helper/DocumentLoader.helper"));
|
|
19
|
-
const FileManager_1 = __importDefault(require("../../engine/Filesystem/FileManager"));
|
|
20
17
|
const Searcher_utils_1 = __importDefault(require("../../utility/Searcher.utils"));
|
|
21
18
|
const SortData_utils_1 = __importDefault(require("../../utility/SortData.utils"));
|
|
22
19
|
const crypto_1 = require("crypto");
|
|
@@ -25,24 +22,19 @@ const Create_operation_1 = __importDefault(require("./Create.operation"));
|
|
|
25
22
|
const memory_operation_1 = __importDefault(require("../../Memory/memory.operation"));
|
|
26
23
|
const Keys_1 = require("../../config/Keys/Keys");
|
|
27
24
|
const ReadIndex_service_1 = require("../Index/ReadIndex.service");
|
|
25
|
+
const DeleteIndex_service_1 = __importDefault(require("../Index/DeleteIndex.service"));
|
|
26
|
+
const InsertIndex_service_1 = __importDefault(require("../Index/InsertIndex.service"));
|
|
28
27
|
const LockManager_service_1 = __importDefault(require("../Transaction/LockManager.service"));
|
|
29
28
|
class UpdateOperation {
|
|
30
|
-
constructor(collectionName, path, baseQuery
|
|
29
|
+
constructor(collectionName, path, baseQuery) {
|
|
31
30
|
this.allDataWithFileName = [];
|
|
32
31
|
this.collectionName = collectionName;
|
|
33
32
|
this.path = path;
|
|
34
33
|
this.baseQuery = baseQuery;
|
|
35
|
-
this.isEncrypted = isEncrypted;
|
|
36
|
-
this.encryptionKey = encryptionKey;
|
|
37
34
|
this.updatedAt = new Date().toISOString();
|
|
38
35
|
this.sort = {};
|
|
39
36
|
this.Insertion = new Create_operation_1.default(this.collectionName, this.path);
|
|
40
37
|
this.ResponseHelper = new response_helper_1.default();
|
|
41
|
-
this.Converter = new Converter_helper_1.default();
|
|
42
|
-
this.fileManager = new FileManager_1.default();
|
|
43
|
-
if (this.isEncrypted === true) {
|
|
44
|
-
this.cryptoInstance = new Crypto_helper_1.CryptoHelper(this.encryptionKey);
|
|
45
|
-
}
|
|
46
38
|
this.allDataWithFileName = []; // To store all data with file name
|
|
47
39
|
}
|
|
48
40
|
/**
|
|
@@ -65,7 +57,7 @@ class UpdateOperation {
|
|
|
65
57
|
UpdateOne(newData) {
|
|
66
58
|
return __awaiter(this, void 0, void 0, function* () {
|
|
67
59
|
var _a;
|
|
68
|
-
const lockManager =
|
|
60
|
+
const lockManager = LockManager_service_1.default.getInstance(this.path);
|
|
69
61
|
const operationId = (0, crypto_1.randomUUID)();
|
|
70
62
|
const timestamp = Date.now();
|
|
71
63
|
let documentId = null;
|
|
@@ -118,8 +110,17 @@ class UpdateOperation {
|
|
|
118
110
|
if (!("data" in lockResult)) {
|
|
119
111
|
return this.ResponseHelper.Error("Lock acquisition failed");
|
|
120
112
|
}
|
|
121
|
-
// STEP 3:
|
|
122
|
-
|
|
113
|
+
// STEP 3: Re-read the document now that we hold the lock. The Step 1 snapshot
|
|
114
|
+
// can be stale: Wait-Die queues an older transaction behind the lock instead of
|
|
115
|
+
// aborting it, so by the time we acquire the lock, whoever held it may already
|
|
116
|
+
// have committed a change - merging against the pre-lock snapshot would silently
|
|
117
|
+
// overwrite that change (lost update).
|
|
118
|
+
const freshRead = yield DocumentLoader_helper_1.default.loadDocuments(this.path, [fileName], true);
|
|
119
|
+
if (!("data" in freshRead) || freshRead.data.length === 0) {
|
|
120
|
+
return this.ResponseHelper.Error("Document no longer exists");
|
|
121
|
+
}
|
|
122
|
+
// STEP 4: Perform update operation (now safe - locked, and on current data)
|
|
123
|
+
const documentOldData = freshRead.data[0].data; // Current data, read under lock
|
|
123
124
|
const dataForRest = Object.assign({}, documentOldData); // Get the data for rest of the fields
|
|
124
125
|
// Update All new Fields in the old data
|
|
125
126
|
for (const key in newData) {
|
|
@@ -127,16 +128,26 @@ class UpdateOperation {
|
|
|
127
128
|
// also change the updatedAt field
|
|
128
129
|
documentOldData.updatedAt = this.updatedAt;
|
|
129
130
|
}
|
|
130
|
-
//
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
return this.ResponseHelper.Error("Failed to delete file");
|
|
134
|
-
}
|
|
135
|
-
// Insert the new Data in the file
|
|
131
|
+
// Atomically replace the file's content in place (Create.operation.ts's Save()
|
|
132
|
+
// writes to a temp file and renames over the target - no unlink step, so a
|
|
133
|
+
// concurrent unlocked reader never observes a "file missing" gap here).
|
|
136
134
|
const InsertResponse = yield this.insertUpdate(documentOldData, documentId);
|
|
137
135
|
if (!("data" in InsertResponse)) {
|
|
138
136
|
return this.ResponseHelper.Error("Failed to insert data");
|
|
139
137
|
}
|
|
138
|
+
// Keep indexes in sync - but only for fields whose value actually changed.
|
|
139
|
+
const changedOldValues = { documentId };
|
|
140
|
+
const changedNewValues = { documentId };
|
|
141
|
+
for (const key in newData) {
|
|
142
|
+
if (dataForRest[key] !== documentOldData[key]) {
|
|
143
|
+
changedOldValues[key] = dataForRest[key];
|
|
144
|
+
changedNewValues[key] = documentOldData[key];
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (Object.keys(changedOldValues).length > 1) {
|
|
148
|
+
yield new DeleteIndex_service_1.default(this.path).RemoveFromIndex(documentId, changedOldValues).catch(() => { });
|
|
149
|
+
yield new InsertIndex_service_1.default(this.path).InsertToIndex(changedNewValues).catch(() => { });
|
|
150
|
+
}
|
|
140
151
|
// Fire-and-forget: Invalidate cache asynchronously
|
|
141
152
|
memory_operation_1.default.invalidateByDocument(this.path, documentId).catch(() => { });
|
|
142
153
|
return this.ResponseHelper.Success({
|
|
@@ -176,7 +187,7 @@ class UpdateOperation {
|
|
|
176
187
|
*/
|
|
177
188
|
UpdateMany(newData) {
|
|
178
189
|
return __awaiter(this, void 0, void 0, function* () {
|
|
179
|
-
const lockManager =
|
|
190
|
+
const lockManager = LockManager_service_1.default.getInstance(this.path);
|
|
180
191
|
const operationId = (0, crypto_1.randomUUID)();
|
|
181
192
|
const timestamp = Date.now();
|
|
182
193
|
const acquiredLocks = [];
|
|
@@ -225,11 +236,26 @@ class UpdateOperation {
|
|
|
225
236
|
}
|
|
226
237
|
acquiredLocks.push(docId);
|
|
227
238
|
}
|
|
228
|
-
// STEP 4: All locks acquired -
|
|
239
|
+
// STEP 4: All locks acquired - re-read current data for every document under lock.
|
|
240
|
+
// The Step 1 snapshot can be stale for any document another writer committed to
|
|
241
|
+
// while we were queued behind its lock (see UpdateOne for the full race).
|
|
242
|
+
const fileNamesToRefresh = SearchedData.map((d) => d.fileName);
|
|
243
|
+
const freshRead = yield DocumentLoader_helper_1.default.loadDocuments(this.path, fileNamesToRefresh, true);
|
|
244
|
+
if (!("data" in freshRead)) {
|
|
245
|
+
return this.ResponseHelper.Error("Failed to re-read documents under lock");
|
|
246
|
+
}
|
|
247
|
+
const freshDataByFileName = new Map(freshRead.data.map((d) => [d.fileName, d.data]));
|
|
248
|
+
// STEP 5: All locks acquired - now perform updates safely
|
|
249
|
+
const deleteIndexService = new DeleteIndex_service_1.default(this.path);
|
|
250
|
+
const insertIndexService = new InsertIndex_service_1.default(this.path);
|
|
229
251
|
for (let i = 0; i < SearchedData.length; i++) {
|
|
230
252
|
let selectedData = SearchedData[i];
|
|
231
253
|
let fileName = selectedData === null || selectedData === void 0 ? void 0 : selectedData.fileName;
|
|
232
|
-
const documentOldData =
|
|
254
|
+
const documentOldData = freshDataByFileName.get(fileName);
|
|
255
|
+
if (!documentOldData) {
|
|
256
|
+
return this.ResponseHelper.Error(`Document ${fileName} no longer exists`);
|
|
257
|
+
}
|
|
258
|
+
const previousData = Object.assign({}, documentOldData);
|
|
233
259
|
// Sort the data if sort is provided
|
|
234
260
|
if (Object.keys(this.sort).length !== 0) {
|
|
235
261
|
const Sorter = new SortData_utils_1.default(SearchedData, this.sort);
|
|
@@ -243,16 +269,26 @@ class UpdateOperation {
|
|
|
243
269
|
documentOldData[key] = newData[key];
|
|
244
270
|
documentOldData.updatedAt = newData.updatedAt;
|
|
245
271
|
}
|
|
246
|
-
//
|
|
247
|
-
|
|
248
|
-
if (!("data" in deleteResponse)) {
|
|
249
|
-
return this.ResponseHelper.Error(`Failed to delete file for document ${documentId}`);
|
|
250
|
-
}
|
|
251
|
-
// Insert the new Data in the file
|
|
272
|
+
// Atomically replace the file's content in place (see UpdateOne for why -
|
|
273
|
+
// no unlink step, so concurrent unlocked readers never see a missing file).
|
|
252
274
|
const InsertResponse = yield this.insertUpdate(documentOldData, documentId);
|
|
253
275
|
if (!("data" in InsertResponse)) {
|
|
254
276
|
return this.ResponseHelper.Error(`Failed to insert data for document ${documentId}`);
|
|
255
277
|
}
|
|
278
|
+
// Keep indexes in sync - only for fields whose value actually changed (see
|
|
279
|
+
// UpdateOne for why: touching unchanged fields reorders their index bucket).
|
|
280
|
+
const changedOldValues = { documentId };
|
|
281
|
+
const changedNewValues = { documentId };
|
|
282
|
+
for (const key in newData) {
|
|
283
|
+
if (previousData[key] !== documentOldData[key]) {
|
|
284
|
+
changedOldValues[key] = previousData[key];
|
|
285
|
+
changedNewValues[key] = documentOldData[key];
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
if (Object.keys(changedOldValues).length > 1) {
|
|
289
|
+
yield deleteIndexService.RemoveFromIndex(documentId, changedOldValues).catch(() => { });
|
|
290
|
+
yield insertIndexService.InsertToIndex(changedNewValues).catch(() => { });
|
|
291
|
+
}
|
|
256
292
|
}
|
|
257
293
|
// Fire-and-forget: Invalidate cache asynchronously
|
|
258
294
|
memory_operation_1.default.invalidateByDocuments(this.path, documentIds).catch(() => { });
|
|
@@ -289,8 +325,8 @@ class UpdateOperation {
|
|
|
289
325
|
* This method performs the following steps:
|
|
290
326
|
* 1. Checks if the directory is locked.
|
|
291
327
|
* 2. If the directory is not locked, it lists all files in the directory.
|
|
292
|
-
* 3. Reads each file
|
|
293
|
-
* 4. Stores the
|
|
328
|
+
* 3. Reads each file.
|
|
329
|
+
* 4. Stores the data in the `AllData` array.
|
|
294
330
|
* 5. If the directory is locked, it unlocks the directory, reads the files, and then locks the directory again.
|
|
295
331
|
*
|
|
296
332
|
* @returns {Promise<SuccessInterface | ErrorInterface>} A promise that resolves to a success or error response.
|
|
@@ -300,7 +336,7 @@ class UpdateOperation {
|
|
|
300
336
|
LoadAllBufferRawData(documentIdDirectFile) {
|
|
301
337
|
return __awaiter(this, void 0, void 0, function* () {
|
|
302
338
|
// Use shared DocumentLoader helper (DRY - consolidates duplicated code)
|
|
303
|
-
const result = yield DocumentLoader_helper_1.default.loadDocuments(this.path,
|
|
339
|
+
const result = yield DocumentLoader_helper_1.default.loadDocuments(this.path, documentIdDirectFile, true // Include fileName for Update operations
|
|
304
340
|
);
|
|
305
341
|
// Store result in allDataWithFileName if successful
|
|
306
342
|
if ("data" in result) {
|
|
@@ -309,20 +345,6 @@ class UpdateOperation {
|
|
|
309
345
|
return result;
|
|
310
346
|
});
|
|
311
347
|
}
|
|
312
|
-
/**
|
|
313
|
-
* Deletes a file from the specified path.
|
|
314
|
-
*
|
|
315
|
-
* @param fileName - The name of the file to be deleted
|
|
316
|
-
* @returns A response object indicating success or failure
|
|
317
|
-
* Success response: { status: true, message: "File deleted successfully" }
|
|
318
|
-
* Error response: { status: false, message: <error message> }
|
|
319
|
-
* @private
|
|
320
|
-
*/
|
|
321
|
-
deleteFileUpdate(fileName) {
|
|
322
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
323
|
-
return yield this.fileManager.DeleteFileWithLock(this.path, fileName);
|
|
324
|
-
});
|
|
325
|
-
}
|
|
326
348
|
/**
|
|
327
349
|
* Inserts a document into the collection.
|
|
328
350
|
* @param {object} data - The data to be inserted.
|
|
@@ -338,10 +360,6 @@ class UpdateOperation {
|
|
|
338
360
|
if (typeof data !== "object") {
|
|
339
361
|
throw new Error("Data must be an object.");
|
|
340
362
|
}
|
|
341
|
-
// Encrypt the data if crypto is enabled
|
|
342
|
-
if (this.isEncrypted && this.cryptoInstance !== undefined) {
|
|
343
|
-
data = yield this.cryptoInstance.encrypt(this.Converter.ToString(data));
|
|
344
|
-
}
|
|
345
363
|
// Save the data
|
|
346
364
|
return yield this.Insertion.Save(data, ExistingdocumentId);
|
|
347
365
|
});
|