axiodb 19.1.1 → 20.3.2
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 +86 -9
- package/cli/VERSION +1 -1
- package/cli/cmd/auth_management.go +68 -0
- package/cli/cmd/document.go +33 -0
- package/cli/cmd/health.go +19 -0
- package/cli/cmd/transaction.go +191 -0
- package/cli/cmd/version.go +1 -1
- package/cli/pkg/commands/document.go +19 -0
- package/cli/pkg/commands/health.go +18 -0
- package/cli/pkg/commands/transaction.go +84 -0
- package/cli/pkg/httpclient/client.go +76 -0
- package/lib/Helper/Console.helper.js.map +1 -1
- package/lib/Helper/Converter.helper.d.ts +1 -1
- package/lib/Helper/Converter.helper.js +0 -1
- package/lib/Helper/Converter.helper.js.map +1 -1
- package/lib/Helper/DocumentLoader.helper.js +2 -1
- package/lib/Helper/DocumentLoader.helper.js.map +1 -1
- package/lib/Helper/Logger.helper.d.ts +5 -0
- package/lib/Helper/Logger.helper.js +45 -0
- package/lib/Helper/Logger.helper.js.map +1 -0
- package/lib/Helper/PathSanitizer.helper.js.map +1 -1
- package/lib/Helper/SortedIndexValues.helper.js.map +1 -1
- package/lib/Helper/UniqueGenerator.helper.js.map +1 -1
- package/lib/Helper/response.helper.d.ts +2 -2
- package/lib/Helper/response.helper.js +6 -3
- package/lib/Helper/response.helper.js.map +1 -1
- package/lib/Memory/memory.operation.d.ts +9 -4
- package/lib/Memory/memory.operation.js +3 -3
- package/lib/Memory/memory.operation.js.map +1 -1
- package/lib/Services/Aggregation/Aggregation.Operation.d.ts +1 -1
- package/lib/Services/Aggregation/Aggregation.Operation.js +0 -1
- package/lib/Services/Aggregation/Aggregation.Operation.js.map +1 -1
- package/lib/Services/Aggregation/OperatorRegistry.js.map +1 -1
- package/lib/Services/Aggregation/operators/accumulatorOperators.d.ts +12 -12
- package/lib/Services/Aggregation/operators/accumulatorOperators.js +2 -3
- package/lib/Services/Aggregation/operators/accumulatorOperators.js.map +1 -1
- package/lib/Services/Aggregation/operators/expressionOperators.d.ts +3 -3
- package/lib/Services/Aggregation/operators/expressionOperators.js +111 -108
- package/lib/Services/Aggregation/operators/expressionOperators.js.map +1 -1
- package/lib/Services/Aggregation/operators/stageOperators.d.ts +20 -37
- package/lib/Services/Aggregation/operators/stageOperators.js +11 -11
- package/lib/Services/Aggregation/operators/stageOperators.js.map +1 -1
- package/lib/Services/Auth/AuthEvents.service.js.map +1 -1
- package/lib/Services/Auth/AuthSeeder.service.js +2 -2
- package/lib/Services/Auth/AuthSeeder.service.js.map +1 -1
- package/lib/Services/Auth/AuthService.service.js +5 -8
- package/lib/Services/Auth/AuthService.service.js.map +1 -1
- package/lib/Services/Auth/ConfigDatabase.service.js.map +1 -1
- package/lib/Services/Auth/CookieCodec.helper.js.map +1 -1
- package/lib/Services/Auth/LoginRateLimiter.service.js.map +1 -1
- package/lib/Services/Auth/PasswordHasher.helper.js.map +1 -1
- package/lib/Services/Auth/PermissionChecker.helper.js.map +1 -1
- package/lib/Services/Auth/SessionStore.service.js.map +1 -1
- package/lib/Services/CRUD Operation/Create.operation.js +0 -1
- package/lib/Services/CRUD Operation/Create.operation.js.map +1 -1
- package/lib/Services/CRUD Operation/Delete.operation.d.ts +2 -2
- package/lib/Services/CRUD Operation/Delete.operation.js +2 -3
- package/lib/Services/CRUD Operation/Delete.operation.js.map +1 -1
- package/lib/Services/CRUD Operation/Reader.operation.d.ts +11 -3
- package/lib/Services/CRUD Operation/Reader.operation.js +76 -40
- package/lib/Services/CRUD Operation/Reader.operation.js.map +1 -1
- package/lib/Services/CRUD Operation/Update.operation.d.ts +4 -4
- package/lib/Services/CRUD Operation/Update.operation.js +2 -2
- package/lib/Services/CRUD Operation/Update.operation.js.map +1 -1
- package/lib/Services/Collection/collection.operation.d.ts +10 -3
- package/lib/Services/Collection/collection.operation.js +32 -7
- package/lib/Services/Collection/collection.operation.js.map +1 -1
- package/lib/Services/Database/database.operation.js +13 -9
- package/lib/Services/Database/database.operation.js.map +1 -1
- package/lib/Services/Index/Index.service.d.ts +1 -1
- package/lib/Services/Index/Index.service.js +1 -1
- package/lib/Services/Index/Index.service.js.map +1 -1
- package/lib/Services/Index/IndexCache.service.js +4 -5
- package/lib/Services/Index/IndexCache.service.js.map +1 -1
- package/lib/Services/Index/ReadIndex.service.d.ts +4 -4
- package/lib/Services/Index/ReadIndex.service.js +10 -9
- package/lib/Services/Index/ReadIndex.service.js.map +1 -1
- package/lib/Services/Indexation.operation.d.ts +1 -1
- package/lib/Services/Indexation.operation.js +7 -6
- package/lib/Services/Indexation.operation.js.map +1 -1
- package/lib/Services/Transaction/LockManager.service.js +3 -4
- package/lib/Services/Transaction/LockManager.service.js.map +1 -1
- package/lib/Services/Transaction/Session.service.js +9 -7
- package/lib/Services/Transaction/Session.service.js.map +1 -1
- package/lib/Services/Transaction/Transaction.service.d.ts +4 -2
- package/lib/Services/Transaction/Transaction.service.js +7 -2
- package/lib/Services/Transaction/Transaction.service.js.map +1 -1
- package/lib/Services/Transaction/TransactionIndexManager.service.d.ts +1 -1
- package/lib/Services/Transaction/TransactionIndexManager.service.js +11 -6
- package/lib/Services/Transaction/TransactionIndexManager.service.js.map +1 -1
- package/lib/Services/Transaction/TransactionRegistry.service.js.map +1 -1
- package/lib/Services/Transaction/WriteAheadLog.service.js +0 -1
- package/lib/Services/Transaction/WriteAheadLog.service.js.map +1 -1
- package/lib/client/AggregationProxy.js.map +1 -1
- package/lib/client/AxioDBCloud.client.d.ts +15 -2
- package/lib/client/AxioDBCloud.client.js +24 -2
- package/lib/client/AxioDBCloud.client.js.map +1 -1
- package/lib/client/CollectionProxy.d.ts +8 -0
- package/lib/client/CollectionProxy.js +26 -0
- package/lib/client/CollectionProxy.js.map +1 -1
- package/lib/client/DatabaseProxy.js.map +1 -1
- package/lib/client/DeleteOperationProxy.js.map +1 -1
- package/lib/client/PooledConnection.d.ts +1 -1
- package/lib/client/PooledConnection.js +6 -3
- package/lib/client/PooledConnection.js.map +1 -1
- package/lib/client/ReaderProxy.d.ts +3 -1
- package/lib/client/ReaderProxy.js +7 -0
- package/lib/client/ReaderProxy.js.map +1 -1
- package/lib/client/TransactionProxy.d.ts +37 -0
- package/lib/client/TransactionProxy.js +101 -0
- package/lib/client/TransactionProxy.js.map +1 -0
- package/lib/client/UpdateOperationProxy.js.map +1 -1
- package/lib/client/types/client.types.js.map +1 -1
- package/lib/config/DB.js.map +1 -1
- package/lib/config/Interfaces/Helper/response.helper.interface.d.ts +2 -2
- package/lib/config/Interfaces/Helper/response.helper.interface.js +0 -1
- package/lib/config/Interfaces/Helper/response.helper.interface.js.map +1 -1
- package/lib/config/Interfaces/Operation/aggregation.interface.d.ts +4 -4
- package/lib/config/Interfaces/Operation/aggregation.interface.js +0 -1
- package/lib/config/Interfaces/Operation/aggregation.interface.js.map +1 -1
- package/lib/config/Interfaces/Operation/database.operation.interface.d.ts +4 -1
- package/lib/config/Interfaces/Operation/database.operation.interface.js +0 -1
- package/lib/config/Interfaces/Operation/database.operation.interface.js.map +1 -1
- package/lib/config/Interfaces/Transaction/transaction.interface.d.ts +3 -3
- package/lib/config/Interfaces/shared.types.d.ts +36 -0
- package/lib/config/Interfaces/shared.types.js +7 -0
- package/lib/config/Interfaces/shared.types.js.map +1 -0
- package/lib/config/Keys/Keys.js.map +1 -1
- package/lib/config/Keys/Permissions.js.map +1 -1
- package/lib/config/Keys/StatusCode.js.map +1 -1
- package/lib/engine/Filesystem/FileManager.js +3 -4
- package/lib/engine/Filesystem/FileManager.js.map +1 -1
- package/lib/engine/Filesystem/FolderManager.js +11 -11
- package/lib/engine/Filesystem/FolderManager.js.map +1 -1
- package/lib/engine/cli/worker_process.js.map +1 -1
- package/lib/engine/node/WorkerForDataLoad.engine.js +7 -6
- package/lib/engine/node/WorkerForDataLoad.engine.js.map +1 -1
- package/lib/engine/node/WorkerForSearch.engine.js +0 -1
- package/lib/engine/node/WorkerForSearch.engine.js.map +1 -1
- package/lib/server/config/PortFreeChecker.js +0 -1
- package/lib/server/config/PortFreeChecker.js.map +1 -1
- package/lib/server/config/keys.js +0 -1
- package/lib/server/config/keys.js.map +1 -1
- package/lib/server/config/server.js +2 -2
- package/lib/server/config/server.js.map +1 -1
- package/lib/server/controller/Auth/Auth.controller.js.map +1 -1
- package/lib/server/controller/Auth/RoleManagement.controller.js.map +1 -1
- package/lib/server/controller/Auth/UserManagement.controller.js.map +1 -1
- package/lib/server/controller/Collections/Collection.controller.js +9 -7
- package/lib/server/controller/Collections/Collection.controller.js.map +1 -1
- package/lib/server/controller/Database/Databse.controller.js +12 -13
- package/lib/server/controller/Database/Databse.controller.js.map +1 -1
- package/lib/server/controller/Index/Index.controller.js +4 -3
- package/lib/server/controller/Index/Index.controller.js.map +1 -1
- package/lib/server/controller/Operation/CRUD.controller.d.ts +1 -0
- package/lib/server/controller/Operation/CRUD.controller.js +42 -18
- package/lib/server/controller/Operation/CRUD.controller.js.map +1 -1
- package/lib/server/controller/Stats.controller.js +21 -15
- package/lib/server/controller/Stats.controller.js.map +1 -1
- package/lib/server/helper/databaseImport.helper.js.map +1 -1
- package/lib/server/helper/documentCounterInFolder.helper.js.map +1 -1
- package/lib/server/helper/responseBuilder.helper.d.ts +2 -2
- package/lib/server/helper/responseBuilder.helper.js.map +1 -1
- package/lib/server/middleware/auth.middleware.js.map +1 -1
- package/lib/server/middleware/permission.middleware.js.map +1 -1
- package/lib/server/router/Router.js +8 -7
- package/lib/server/router/Router.js.map +1 -1
- package/lib/server/router/Routers/Auth.routes.js.map +1 -1
- package/lib/server/router/Routers/Collection.routes.js +3 -3
- package/lib/server/router/Routers/Collection.routes.js.map +1 -1
- package/lib/server/router/Routers/DB.routes.js +1 -1
- package/lib/server/router/Routers/DB.routes.js.map +1 -1
- package/lib/server/router/Routers/Index.routes.js.map +1 -1
- package/lib/server/router/Routers/Operation.routes.js +25 -10
- package/lib/server/router/Routers/Operation.routes.js.map +1 -1
- package/lib/server/router/Routers/RoleManagement.routes.js.map +1 -1
- package/lib/server/router/Routers/UserManagement.routes.js.map +1 -1
- package/lib/tcp/config/keys.d.ts +32 -32
- package/lib/tcp/config/keys.js.map +1 -1
- package/lib/tcp/config/permissions.d.ts +1 -4
- package/lib/tcp/config/permissions.js +8 -4
- package/lib/tcp/config/permissions.js.map +1 -1
- package/lib/tcp/config/protocol.d.ts +3 -3
- package/lib/tcp/config/protocol.js +31 -9
- package/lib/tcp/config/protocol.js.map +1 -1
- package/lib/tcp/config/server.js +17 -12
- package/lib/tcp/config/server.js.map +1 -1
- package/lib/tcp/connection/ConnectionManager.js.map +1 -1
- package/lib/tcp/connection/ConnectionRateLimiter.js.map +1 -1
- package/lib/tcp/connection/RequestContext.d.ts +2 -2
- package/lib/tcp/connection/RequestContext.js.map +1 -1
- package/lib/tcp/connection/TransactionManager.d.ts +26 -0
- package/lib/tcp/connection/TransactionManager.js +114 -0
- package/lib/tcp/connection/TransactionManager.js.map +1 -0
- package/lib/tcp/handler/CommandHandler.d.ts +3 -0
- package/lib/tcp/handler/CommandHandler.js +32 -8
- package/lib/tcp/handler/CommandHandler.js.map +1 -1
- package/lib/tcp/handler/handlers/Auth.handler.d.ts +4 -2
- package/lib/tcp/handler/handlers/Auth.handler.js.map +1 -1
- package/lib/tcp/handler/handlers/Collection.handler.d.ts +7 -5
- package/lib/tcp/handler/handlers/Collection.handler.js +1 -3
- package/lib/tcp/handler/handlers/Collection.handler.js.map +1 -1
- package/lib/tcp/handler/handlers/DB.handler.d.ts +6 -4
- package/lib/tcp/handler/handlers/DB.handler.js +1 -2
- package/lib/tcp/handler/handlers/DB.handler.js.map +1 -1
- package/lib/tcp/handler/handlers/Operation.handler.d.ts +19 -57
- package/lib/tcp/handler/handlers/Operation.handler.js +138 -167
- package/lib/tcp/handler/handlers/Operation.handler.js.map +1 -1
- package/lib/tcp/handler/handlers/Transaction.handler.d.ts +18 -0
- package/lib/tcp/handler/handlers/Transaction.handler.js +199 -0
- package/lib/tcp/handler/handlers/Transaction.handler.js.map +1 -0
- package/lib/tcp/types/command.types.d.ts +6 -1
- package/lib/tcp/types/command.types.js +11 -1
- package/lib/tcp/types/command.types.js.map +1 -1
- package/lib/tcp/types/protocol.types.d.ts +10 -7
- package/lib/tcp/types/protocol.types.js.map +1 -1
- package/lib/utility/BufferLoaderWithWorker.utils.js +6 -5
- package/lib/utility/BufferLoaderWithWorker.utils.js.map +1 -1
- package/lib/utility/Searcher.utils.d.ts +3 -7
- package/lib/utility/Searcher.utils.js +49 -49
- package/lib/utility/Searcher.utils.js.map +1 -1
- package/lib/utility/SortData.utils.d.ts +3 -2
- package/lib/utility/SortData.utils.js +3 -19
- package/lib/utility/SortData.utils.js.map +1 -1
- package/lib/utility/ZipUnzip.utils.d.ts +2 -2
- package/lib/utility/ZipUnzip.utils.js +2 -2
- package/lib/utility/ZipUnzip.utils.js.map +1 -1
- package/package.json +10 -5
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const keys_1 = require("../../config/keys");
|
|
16
|
+
const TransactionManager_1 = __importDefault(require("../../connection/TransactionManager"));
|
|
17
|
+
const Permissions_1 = require("../../../config/Keys/Permissions");
|
|
18
|
+
class TransactionHandler {
|
|
19
|
+
constructor(axioDB) {
|
|
20
|
+
this.axioDB = axioDB;
|
|
21
|
+
this.txnManager = TransactionManager_1.default.getInstance();
|
|
22
|
+
}
|
|
23
|
+
handleBegin(requestId, params, connectionId) {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
const { dbName, collectionName } = params;
|
|
26
|
+
if (!dbName || typeof dbName !== 'string') {
|
|
27
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'dbName is required');
|
|
28
|
+
}
|
|
29
|
+
if (!collectionName || typeof collectionName !== 'string') {
|
|
30
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'collectionName is required');
|
|
31
|
+
}
|
|
32
|
+
if ((0, Permissions_1.isReservedDatabaseName)(dbName)) {
|
|
33
|
+
return this.error(requestId, keys_1.StatusCode.FORBIDDEN, 'This is a reserved system database');
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const databaseInstance = yield this.axioDB.createDB(dbName);
|
|
37
|
+
const collection = yield databaseInstance.createCollection(collectionName);
|
|
38
|
+
const collectionPath = collection.getCollectionPath();
|
|
39
|
+
const txn = this.txnManager.beginTransaction(connectionId, collectionPath);
|
|
40
|
+
const transactionId = txn.getId();
|
|
41
|
+
return {
|
|
42
|
+
id: requestId,
|
|
43
|
+
statusCode: keys_1.StatusCode.OK,
|
|
44
|
+
message: 'Transaction started',
|
|
45
|
+
data: { transactionId },
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
return this.error(requestId, keys_1.StatusCode.INTERNAL_SERVER_ERROR, error instanceof Error ? error.message : String(error));
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
handleCommit(requestId, params, connectionId) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
const { transactionId } = params;
|
|
56
|
+
if (!transactionId || typeof transactionId !== 'string') {
|
|
57
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'transactionId is required');
|
|
58
|
+
}
|
|
59
|
+
const txn = this.txnManager.getTransaction(connectionId, transactionId);
|
|
60
|
+
if (!txn) {
|
|
61
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'No active transaction with this ID on this connection');
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
const result = yield txn.commit();
|
|
65
|
+
this.txnManager.removeTransaction(connectionId, transactionId);
|
|
66
|
+
if ('status' in result && result.status === true) {
|
|
67
|
+
return {
|
|
68
|
+
id: requestId,
|
|
69
|
+
statusCode: keys_1.StatusCode.OK,
|
|
70
|
+
message: result.data && typeof result.data === 'object' && 'message' in result.data
|
|
71
|
+
? result.data.message
|
|
72
|
+
: 'Transaction committed successfully',
|
|
73
|
+
data: result.data,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return this.error(requestId, keys_1.StatusCode.INTERNAL_SERVER_ERROR, 'message' in result ? result.message : 'Transaction commit failed');
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
this.txnManager.removeTransaction(connectionId, transactionId);
|
|
80
|
+
return this.error(requestId, keys_1.StatusCode.INTERNAL_SERVER_ERROR, error instanceof Error ? error.message : String(error));
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
handleRollback(requestId, params, connectionId) {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
const { transactionId } = params;
|
|
87
|
+
if (!transactionId || typeof transactionId !== 'string') {
|
|
88
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'transactionId is required');
|
|
89
|
+
}
|
|
90
|
+
const txn = this.txnManager.getTransaction(connectionId, transactionId);
|
|
91
|
+
if (!txn) {
|
|
92
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'No active transaction with this ID on this connection');
|
|
93
|
+
}
|
|
94
|
+
try {
|
|
95
|
+
const result = yield txn.rollback();
|
|
96
|
+
this.txnManager.removeTransaction(connectionId, transactionId);
|
|
97
|
+
return {
|
|
98
|
+
id: requestId,
|
|
99
|
+
statusCode: keys_1.StatusCode.OK,
|
|
100
|
+
message: 'Transaction rolled back successfully',
|
|
101
|
+
data: result,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
this.txnManager.removeTransaction(connectionId, transactionId);
|
|
106
|
+
return this.error(requestId, keys_1.StatusCode.INTERNAL_SERVER_ERROR, error instanceof Error ? error.message : String(error));
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
handleSavepoint(requestId, params, connectionId) {
|
|
111
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
const { transactionId, savepointName } = params;
|
|
113
|
+
if (!transactionId || typeof transactionId !== 'string') {
|
|
114
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'transactionId is required');
|
|
115
|
+
}
|
|
116
|
+
if (!savepointName || typeof savepointName !== 'string') {
|
|
117
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'savepointName is required');
|
|
118
|
+
}
|
|
119
|
+
const txn = this.txnManager.getTransaction(connectionId, transactionId);
|
|
120
|
+
if (!txn) {
|
|
121
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'No active transaction with this ID on this connection');
|
|
122
|
+
}
|
|
123
|
+
try {
|
|
124
|
+
txn.savepoint(savepointName);
|
|
125
|
+
return {
|
|
126
|
+
id: requestId,
|
|
127
|
+
statusCode: keys_1.StatusCode.OK,
|
|
128
|
+
message: `Savepoint '${savepointName}' created`,
|
|
129
|
+
data: { transactionId, savepointName },
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, error instanceof Error ? error.message : String(error));
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
handleRollbackToSavepoint(requestId, params, connectionId) {
|
|
138
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
139
|
+
const { transactionId, savepointName } = params;
|
|
140
|
+
if (!transactionId || typeof transactionId !== 'string') {
|
|
141
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'transactionId is required');
|
|
142
|
+
}
|
|
143
|
+
if (!savepointName || typeof savepointName !== 'string') {
|
|
144
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'savepointName is required');
|
|
145
|
+
}
|
|
146
|
+
const txn = this.txnManager.getTransaction(connectionId, transactionId);
|
|
147
|
+
if (!txn) {
|
|
148
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'No active transaction with this ID on this connection');
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
txn.rollbackTo(savepointName);
|
|
152
|
+
return {
|
|
153
|
+
id: requestId,
|
|
154
|
+
statusCode: keys_1.StatusCode.OK,
|
|
155
|
+
message: `Rolled back to savepoint '${savepointName}'`,
|
|
156
|
+
data: { transactionId, savepointName },
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, error instanceof Error ? error.message : String(error));
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
handleReleaseSavepoint(requestId, params, connectionId) {
|
|
165
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
166
|
+
const { transactionId, savepointName } = params;
|
|
167
|
+
if (!transactionId || typeof transactionId !== 'string') {
|
|
168
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'transactionId is required');
|
|
169
|
+
}
|
|
170
|
+
if (!savepointName || typeof savepointName !== 'string') {
|
|
171
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'savepointName is required');
|
|
172
|
+
}
|
|
173
|
+
const txn = this.txnManager.getTransaction(connectionId, transactionId);
|
|
174
|
+
if (!txn) {
|
|
175
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, 'No active transaction with this ID on this connection');
|
|
176
|
+
}
|
|
177
|
+
try {
|
|
178
|
+
txn.releaseSavepoint(savepointName);
|
|
179
|
+
return {
|
|
180
|
+
id: requestId,
|
|
181
|
+
statusCode: keys_1.StatusCode.OK,
|
|
182
|
+
message: `Savepoint '${savepointName}' released`,
|
|
183
|
+
data: { transactionId, savepointName },
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
return this.error(requestId, keys_1.StatusCode.BAD_REQUEST, error instanceof Error ? error.message : String(error));
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
getTransactionManager() {
|
|
192
|
+
return this.txnManager;
|
|
193
|
+
}
|
|
194
|
+
error(id, statusCode, message) {
|
|
195
|
+
return { id, statusCode, message, error: message };
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
exports.default = TransactionHandler;
|
|
199
|
+
//# sourceMappingURL=Transaction.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Transaction.handler.js","sourceRoot":"","sources":["../../../../source/tcp/handler/handlers/Transaction.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export declare enum CommandType {
|
|
6
6
|
PING = "PING",
|
|
7
|
+
HEALTH = "HEALTH",
|
|
7
8
|
DISCONNECT = "DISCONNECT",
|
|
8
9
|
AUTHENTICATE = "AUTHENTICATE",
|
|
9
10
|
CREATE_DB = "CREATE_DB",
|
|
@@ -18,6 +19,7 @@ export declare enum CommandType {
|
|
|
18
19
|
INSERT_MANY_DOCUMENTS = "INSERT_MANY_DOCUMENTS",
|
|
19
20
|
QUERY_DOCUMENTS = "QUERY_DOCUMENTS",
|
|
20
21
|
QUERY_BY_ID = "QUERY_BY_ID",
|
|
22
|
+
FIND_BY_IDS = "FIND_BY_IDS",
|
|
21
23
|
UPDATE_DOCUMENT_BY_ID = "UPDATE_DOCUMENT_BY_ID",
|
|
22
24
|
UPDATE_DOCUMENTS_BY_QUERY = "UPDATE_DOCUMENTS_BY_QUERY",
|
|
23
25
|
DELETE_DOCUMENT_BY_ID = "DELETE_DOCUMENT_BY_ID",
|
|
@@ -29,7 +31,10 @@ export declare enum CommandType {
|
|
|
29
31
|
LIST_INDEXES = "LIST_INDEXES",
|
|
30
32
|
BEGIN_TRANSACTION = "BEGIN_TRANSACTION",
|
|
31
33
|
COMMIT_TRANSACTION = "COMMIT_TRANSACTION",
|
|
32
|
-
ROLLBACK_TRANSACTION = "ROLLBACK_TRANSACTION"
|
|
34
|
+
ROLLBACK_TRANSACTION = "ROLLBACK_TRANSACTION",
|
|
35
|
+
SAVEPOINT = "SAVEPOINT",
|
|
36
|
+
ROLLBACK_TO_SAVEPOINT = "ROLLBACK_TO_SAVEPOINT",
|
|
37
|
+
RELEASE_SAVEPOINT = "RELEASE_SAVEPOINT"
|
|
33
38
|
}
|
|
34
39
|
/**
|
|
35
40
|
* Command documentation map for better error messages
|
|
@@ -9,6 +9,7 @@ var CommandType;
|
|
|
9
9
|
(function (CommandType) {
|
|
10
10
|
// Connection Commands
|
|
11
11
|
CommandType["PING"] = "PING";
|
|
12
|
+
CommandType["HEALTH"] = "HEALTH";
|
|
12
13
|
CommandType["DISCONNECT"] = "DISCONNECT";
|
|
13
14
|
// Authentication Commands
|
|
14
15
|
CommandType["AUTHENTICATE"] = "AUTHENTICATE";
|
|
@@ -27,6 +28,7 @@ var CommandType;
|
|
|
27
28
|
CommandType["INSERT_MANY_DOCUMENTS"] = "INSERT_MANY_DOCUMENTS";
|
|
28
29
|
CommandType["QUERY_DOCUMENTS"] = "QUERY_DOCUMENTS";
|
|
29
30
|
CommandType["QUERY_BY_ID"] = "QUERY_BY_ID";
|
|
31
|
+
CommandType["FIND_BY_IDS"] = "FIND_BY_IDS";
|
|
30
32
|
CommandType["UPDATE_DOCUMENT_BY_ID"] = "UPDATE_DOCUMENT_BY_ID";
|
|
31
33
|
CommandType["UPDATE_DOCUMENTS_BY_QUERY"] = "UPDATE_DOCUMENTS_BY_QUERY";
|
|
32
34
|
CommandType["DELETE_DOCUMENT_BY_ID"] = "DELETE_DOCUMENT_BY_ID";
|
|
@@ -37,16 +39,20 @@ var CommandType;
|
|
|
37
39
|
CommandType["CREATE_INDEX"] = "CREATE_INDEX";
|
|
38
40
|
CommandType["DROP_INDEX"] = "DROP_INDEX";
|
|
39
41
|
CommandType["LIST_INDEXES"] = "LIST_INDEXES";
|
|
40
|
-
// Transaction Operations
|
|
42
|
+
// Transaction Operations
|
|
41
43
|
CommandType["BEGIN_TRANSACTION"] = "BEGIN_TRANSACTION";
|
|
42
44
|
CommandType["COMMIT_TRANSACTION"] = "COMMIT_TRANSACTION";
|
|
43
45
|
CommandType["ROLLBACK_TRANSACTION"] = "ROLLBACK_TRANSACTION";
|
|
46
|
+
CommandType["SAVEPOINT"] = "SAVEPOINT";
|
|
47
|
+
CommandType["ROLLBACK_TO_SAVEPOINT"] = "ROLLBACK_TO_SAVEPOINT";
|
|
48
|
+
CommandType["RELEASE_SAVEPOINT"] = "RELEASE_SAVEPOINT";
|
|
44
49
|
})(CommandType || (exports.CommandType = CommandType = {}));
|
|
45
50
|
/**
|
|
46
51
|
* Command documentation map for better error messages
|
|
47
52
|
*/
|
|
48
53
|
exports.CommandDocumentation = {
|
|
49
54
|
[CommandType.PING]: 'Heartbeat ping to verify connection',
|
|
55
|
+
[CommandType.HEALTH]: 'Get TCP service health status',
|
|
50
56
|
[CommandType.DISCONNECT]: 'Gracefully disconnect from server',
|
|
51
57
|
[CommandType.AUTHENTICATE]: 'Authenticate with username and password',
|
|
52
58
|
[CommandType.CREATE_DB]: 'Create a new database',
|
|
@@ -61,6 +67,7 @@ exports.CommandDocumentation = {
|
|
|
61
67
|
[CommandType.INSERT_MANY_DOCUMENTS]: 'Insert multiple documents into collection',
|
|
62
68
|
[CommandType.QUERY_DOCUMENTS]: 'Query documents with filters and options',
|
|
63
69
|
[CommandType.QUERY_BY_ID]: 'Query document by ID',
|
|
70
|
+
[CommandType.FIND_BY_IDS]: 'Retrieve multiple documents by their IDs',
|
|
64
71
|
[CommandType.UPDATE_DOCUMENT_BY_ID]: 'Update document by ID',
|
|
65
72
|
[CommandType.UPDATE_DOCUMENTS_BY_QUERY]: 'Update documents matching query',
|
|
66
73
|
[CommandType.DELETE_DOCUMENT_BY_ID]: 'Delete document by ID',
|
|
@@ -73,5 +80,8 @@ exports.CommandDocumentation = {
|
|
|
73
80
|
[CommandType.BEGIN_TRANSACTION]: 'Begin database transaction',
|
|
74
81
|
[CommandType.COMMIT_TRANSACTION]: 'Commit database transaction',
|
|
75
82
|
[CommandType.ROLLBACK_TRANSACTION]: 'Rollback database transaction',
|
|
83
|
+
[CommandType.SAVEPOINT]: 'Create a savepoint within a transaction',
|
|
84
|
+
[CommandType.ROLLBACK_TO_SAVEPOINT]: 'Rollback to a specific savepoint',
|
|
85
|
+
[CommandType.RELEASE_SAVEPOINT]: 'Release a savepoint',
|
|
76
86
|
};
|
|
77
87
|
//# sourceMappingURL=command.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.types.js","sourceRoot":"","sources":["../../../source/tcp/types/command.types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,IAAY,
|
|
1
|
+
{"version":3,"file":"command.types.js","sourceRoot":"","sources":["../../../source/tcp/types/command.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,21 +13,24 @@ export interface TCPRequest {
|
|
|
13
13
|
collectionName?: string;
|
|
14
14
|
crypto?: boolean;
|
|
15
15
|
key?: string;
|
|
16
|
-
data?:
|
|
17
|
-
documents?:
|
|
18
|
-
query?:
|
|
16
|
+
data?: Record<string, unknown>;
|
|
17
|
+
documents?: Record<string, unknown>[];
|
|
18
|
+
query?: Record<string, unknown>;
|
|
19
19
|
id?: string;
|
|
20
|
-
|
|
20
|
+
ids?: string[];
|
|
21
|
+
updateData?: Record<string, unknown>;
|
|
21
22
|
updateOne?: boolean;
|
|
22
23
|
deleteOne?: boolean;
|
|
23
24
|
limit?: number;
|
|
24
25
|
skip?: number;
|
|
25
|
-
sort?:
|
|
26
|
+
sort?: Record<string, 1 | -1>;
|
|
26
27
|
findOne?: boolean;
|
|
28
|
+
hint?: string;
|
|
27
29
|
pipeline?: object[];
|
|
28
30
|
fieldNames?: string[];
|
|
29
31
|
indexName?: string;
|
|
30
32
|
transactionId?: string;
|
|
33
|
+
savepointName?: string;
|
|
31
34
|
};
|
|
32
35
|
}
|
|
33
36
|
/**
|
|
@@ -38,7 +41,7 @@ export interface TCPResponse {
|
|
|
38
41
|
id: string;
|
|
39
42
|
statusCode: number;
|
|
40
43
|
message: string;
|
|
41
|
-
data?:
|
|
44
|
+
data?: unknown;
|
|
42
45
|
error?: string;
|
|
43
46
|
}
|
|
44
47
|
/**
|
|
@@ -55,7 +58,7 @@ export declare enum ConnectionState {
|
|
|
55
58
|
* Pending request tracking
|
|
56
59
|
*/
|
|
57
60
|
export interface PendingRequest {
|
|
58
|
-
resolve: (value:
|
|
61
|
+
resolve: (value: unknown) => void;
|
|
59
62
|
reject: (error: Error) => void;
|
|
60
63
|
timeout: NodeJS.Timeout;
|
|
61
64
|
timestamp: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.types.js","sourceRoot":"","sources":["../../../source/tcp/types/protocol.types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"protocol.types.js","sourceRoot":"","sources":["../../../source/tcp/types/protocol.types.ts"],"names":[],"mappings":";;;AAsEA;;GAEG;AACH,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,gDAA6B,CAAA;IAC7B,4CAAyB,CAAA;IACzB,0CAAuB,CAAA;IACvB,gDAA6B,CAAA;IAC7B,oCAAiB,CAAA;AACnB,CAAC,EANW,eAAe,+BAAf,eAAe,QAM1B"}
|
|
@@ -13,12 +13,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.default = ReaderWithWorker;
|
|
16
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
17
16
|
const worker_threads_1 = require("worker_threads");
|
|
18
17
|
const path_1 = __importDefault(require("path"));
|
|
19
18
|
const os_1 = __importDefault(require("os"));
|
|
20
19
|
const FileManager_1 = __importDefault(require("../engine/Filesystem/FileManager"));
|
|
21
20
|
const Converter_helper_1 = __importDefault(require("../Helper/Converter.helper"));
|
|
21
|
+
const Logger_helper_1 = __importDefault(require("../Helper/Logger.helper"));
|
|
22
22
|
/**
|
|
23
23
|
* Reads data files using worker threads to parallelize the loading process.
|
|
24
24
|
* For small datasets (<100 files), uses direct file reading to avoid worker thread overhead.
|
|
@@ -41,23 +41,24 @@ function ReaderWithWorker(DataFilesList_1, path_2) {
|
|
|
41
41
|
try {
|
|
42
42
|
const ReadFileResponse = yield fileManager.ReadFile(`${path}/${fileName}`);
|
|
43
43
|
if ("data" in ReadFileResponse) {
|
|
44
|
+
const fileData = ReadFileResponse.data;
|
|
44
45
|
if (storeFileName) {
|
|
45
46
|
return {
|
|
46
47
|
fileName: fileName,
|
|
47
|
-
data: converter.ToObject(
|
|
48
|
+
data: converter.ToObject(fileData),
|
|
48
49
|
};
|
|
49
50
|
}
|
|
50
51
|
else {
|
|
51
|
-
return converter.ToObject(
|
|
52
|
+
return converter.ToObject(fileData);
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
else {
|
|
55
|
-
|
|
56
|
+
Logger_helper_1.default.error(`Failed to read file: ${fileName}`);
|
|
56
57
|
return null;
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
60
|
catch (error) {
|
|
60
|
-
|
|
61
|
+
Logger_helper_1.default.error(`Error processing file ${fileName}:`, error);
|
|
61
62
|
return null;
|
|
62
63
|
}
|
|
63
64
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BufferLoaderWithWorker.utils.js","sourceRoot":"","sources":["../../source/utility/BufferLoaderWithWorker.utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BufferLoaderWithWorker.utils.js","sourceRoot":"","sources":["../../source/utility/BufferLoaderWithWorker.utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAiBA,mCAgGC;AAjHD,mDAAwC;AACxC,gDAAyB;AACzB,4CAAoB;AACpB,mFAA2D;AAC3D,kFAAmD;AACnD,4EAA6C;AAE7C;;;;;;;;;GASG;AACH,SAA8B,gBAAgB;yDAC5C,aAAuB,EACvB,IAAY,EACZ,aAAa,GAAG,KAAK;QAErB,iEAAiE;QACjE,yDAAyD;QACzD,IAAI,aAAa,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,0BAAS,EAAE,CAAC;YAElC,wDAAwD;YACxD,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,CAAO,QAAQ,EAAE,EAAE;gBACxD,IAAI,CAAC;oBACH,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;oBAE3E,IAAI,MAAM,IAAI,gBAAgB,EAAE,CAAC;wBAC/B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAc,CAAC;wBACjD,IAAI,aAAa,EAAE,CAAC;4BAClB,OAAO;gCACL,QAAQ,EAAE,QAAQ;gCAClB,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;6BACnC,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACN,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBACtC,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,uBAAM,CAAC,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;wBACjD,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,uBAAM,CAAC,KAAK,CAAC,yBAAyB,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC1D,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC,CAAA,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACpD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC/C,CAAC;QAED,yCAAyC;QACzC,MAAM,UAAU,GAAW,cAAK,CAAC,OAAO,CACtC,SAAS,EACT,gBAAgB,EAChB,6BAA6B,CAC9B,CAAC;QACF,MAAM,KAAK,GAAqB,EAAE,CAAC;QAEnC,yDAAyD;QACzD,IAAI,aAAa,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CACR,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC9B,MAAM,MAAM,GAAG,IAAI,uBAAM,CAAC,UAAU,EAAE;oBACpC,UAAU,EAAE;wBACV,KAAK,EAAE,aAAa;wBACpB,IAAI,EAAE,IAAI;wBACV,aAAa,EAAE,aAAa;qBAC7B;iBACF,CAAC,CAAC;gBAEH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC9B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC3B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACzB,IAAI,IAAI,KAAK,CAAC;wBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAE,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1E,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAE,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrG,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAE,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;gBACvI,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAElD,KAAK,CAAC,IAAI,CACR,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC9B,MAAM,MAAM,GAAG,IAAI,uBAAM,CAAC,UAAU,EAAE;wBACpC,UAAU,EAAE;4BACV,KAAK,EAAE,SAAS;4BAChB,IAAI,EAAE,IAAI;4BACV,aAAa,EAAE,aAAa;yBAC7B;qBACF,CAAC,CAAC;oBAEH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAC9B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC3B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;wBACzB,IAAI,IAAI,KAAK,CAAC;4BAAE,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,CAAC;oBACxE,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;CAAA"}
|
|
@@ -2,7 +2,7 @@ export default class Searcher {
|
|
|
2
2
|
private data;
|
|
3
3
|
private isUpdated;
|
|
4
4
|
private compiledQueries;
|
|
5
|
-
constructor(arr:
|
|
5
|
+
constructor(arr: Record<string, unknown>[], isUpdated?: boolean);
|
|
6
6
|
/**
|
|
7
7
|
* Pre-compiles query operators for faster matching (regex, $in sets, etc.)
|
|
8
8
|
*/
|
|
@@ -24,9 +24,7 @@ export default class Searcher {
|
|
|
24
24
|
* @param limit - Optional limit for early termination (returns when limit reached)
|
|
25
25
|
* @returns {Promise<any[]>} - A promise that resolves to an array of matching items.
|
|
26
26
|
*/
|
|
27
|
-
find(query:
|
|
28
|
-
[key: string]: any;
|
|
29
|
-
}, additionalFiled?: string | number | undefined, findOne?: boolean, limit?: number): Promise<any[]>;
|
|
27
|
+
find(query: Record<string, unknown>, additionalFiled?: string | number | undefined, findOne?: boolean, limit?: number): Promise<Record<string, unknown>[]>;
|
|
30
28
|
/**
|
|
31
29
|
* Matches an item against a query object.
|
|
32
30
|
* Supports MongoDB-like operators and logical operators ($or, $and).
|
|
@@ -35,7 +33,5 @@ export default class Searcher {
|
|
|
35
33
|
* @param query - The query object containing conditions.
|
|
36
34
|
* @returns {boolean} - True if the item matches the query, false otherwise.
|
|
37
35
|
*/
|
|
38
|
-
static matchesQuery(item:
|
|
39
|
-
[key: string]: any;
|
|
40
|
-
}, isUpdated?: boolean): boolean;
|
|
36
|
+
static matchesQuery(item: Record<string, unknown>, query: Record<string, unknown>, isUpdated?: boolean): boolean;
|
|
41
37
|
}
|