axiodb 2.31.103 → 3.31.104

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.
@@ -14,7 +14,8 @@ export declare class AxioDB {
14
14
  private ResponseHelper;
15
15
  private static _instance;
16
16
  private DatabaseMap;
17
- constructor(RootName?: string, CustomPath?: string);
17
+ private GUI;
18
+ constructor(GUI?: boolean, RootName?: string, CustomPath?: string);
18
19
  /**
19
20
  * Initializes the root directory for the AxioDB.
20
21
  *
@@ -32,7 +32,8 @@ const server_1 = __importDefault(require("../server/config/server"));
32
32
  * @returns {AxioDB} - Returns the instance of AxioDB.
33
33
  */
34
34
  class AxioDB {
35
- constructor(RootName, CustomPath) {
35
+ constructor(GUI, RootName, CustomPath) {
36
+ this.GUI = Keys_1.General.DBMS_GUI_Enable;
36
37
  if (AxioDB._instance) {
37
38
  throw new Error("Only one instance of AxioDB is allowed.");
38
39
  }
@@ -45,6 +46,7 @@ class AxioDB {
45
46
  this.ResponseHelper = new response_helper_1.default(); // Initialize the ResponseHelper class
46
47
  this.initializeRoot(); // Ensure root initialization
47
48
  this.DatabaseMap = new Map(); // Initialize the DatabaseMap
49
+ this.GUI = GUI !== undefined ? GUI : Keys_1.General.DBMS_GUI_Enable; // Set GUI option
48
50
  }
49
51
  /**
50
52
  * Initializes the root directory for the AxioDB.
@@ -69,7 +71,10 @@ class AxioDB {
69
71
  console.log(`AxioDB folder created at: ${this.currentPATH}`);
70
72
  }
71
73
  }
72
- (0, server_1.default)(this); // Start the web Control Server with the AxioDB instance
74
+ if (this.GUI) {
75
+ outers_1.Console.green("Starting AxioDB Control Server...");
76
+ (0, server_1.default)(this); // Start the web Control Server with the AxioDB instance
77
+ }
73
78
  });
74
79
  }
75
80
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Indexation.operation.js","sourceRoot":"","sources":["../../source/Services/Indexation.operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Indexation.operation.js","sourceRoot":"","sources":["../../source/Services/Indexation.operation.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- export declare enum General {
2
- DBMS_Name = "AxioDB",
3
- DBMS_File_EXT = ".axiodb"
4
- }
1
+ export declare const General: {
2
+ DBMS_Name: string;
3
+ DBMS_GUI_Enable: boolean;
4
+ DBMS_File_EXT: string;
5
+ };
5
6
  export declare enum WebServer {
6
7
  StaticServerPORT = 2025,
7
8
  ApiServerPORT = 2026,
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WebServer = exports.General = void 0;
4
- var General;
5
- (function (General) {
6
- General["DBMS_Name"] = "AxioDB";
7
- General["DBMS_File_EXT"] = ".axiodb";
8
- })(General || (exports.General = General = {}));
4
+ exports.General = {
5
+ DBMS_Name: "AxioDB",
6
+ DBMS_GUI_Enable: false,
7
+ DBMS_File_EXT: ".axiodb",
8
+ };
9
9
  // Web Server Configuration
10
10
  var WebServer;
11
11
  (function (WebServer) {
@@ -1 +1 @@
1
- {"version":3,"file":"Keys.js","sourceRoot":"","sources":["../../../source/config/Keys/Keys.ts"],"names":[],"mappings":";;;AAAA,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,+BAAoB,CAAA;IACpB,oCAAyB,CAAA;AAC3B,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB;AAED,2BAA2B;AAC3B,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,oEAAuB,CAAA;IACvB,8DAAoB,CAAA;IACpB,8DAAoB,CAAA;IACpB,0EAA0B,CAAA;IAC1B,sEAAwB,CAAA;AAC1B,CAAC,EANW,SAAS,yBAAT,SAAS,QAMpB"}
1
+ {"version":3,"file":"Keys.js","sourceRoot":"","sources":["../../../source/config/Keys/Keys.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG;IACrB,SAAS,EAAG,QAAQ;IACpB,eAAe,EAAG,KAAK;IACvB,aAAa,EAAG,SAAS;CAC1B,CAAA;AAED,2BAA2B;AAC3B,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,oEAAuB,CAAA;IACvB,8DAAoB,CAAA;IACpB,8DAAoB,CAAA;IACpB,0EAA0B,CAAA;IAC1B,sEAAwB,CAAA;AAC1B,CAAC,EANW,SAAS,yBAAT,SAAS,QAMpB"}
@@ -16,7 +16,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
16
16
  const worker_threads_1 = require("worker_threads");
17
17
  const FileManager_1 = __importDefault(require("../Filesystem/FileManager")); // Replace with real imports
18
18
  const Converter_helper_1 = __importDefault(require("../../Helper/Converter.helper")); // Replace with your actual converter logic
19
- const response_helper_1 = __importDefault(require("../../Helper/response.helper"));
20
19
  const Crypto_helper_1 = require("../../Helper/Crypto.helper");
21
20
  const { chunk, encryptionKey, path, isEncrypted, storeFileName } = worker_threads_1.workerData;
22
21
  const result = [];
@@ -26,66 +25,62 @@ const cryptoInstance = encryptionKey
26
25
  : undefined;
27
26
  /*
28
27
  * Worker for reading files in parallel.
29
- * It processes files in pairs from both ends of the chunk array.
28
+ * It processes all files concurrently using Promise.all for maximum performance.
30
29
  * If cryptoInstance is provided, it decrypts the file content.
31
30
  * The results are stored in the result array, either with or without file names based on storeFileName flag.
32
31
  * If an error occurs, it sends an error message back to the parent thread.
33
32
  */
34
33
  function processFiles() {
35
34
  return __awaiter(this, void 0, void 0, function* () {
36
- let left = 0;
37
- let right = chunk.length - 1;
38
35
  try {
39
- while (left <= right) {
40
- const indices = [];
41
- for (let i = 0; i < 2 && left + i <= right; i++)
42
- indices.push(left + i);
43
- for (let i = 0; i < 2 && right - i > left + 1; i++)
44
- indices.push(right - i);
45
- for (const index of indices) {
46
- const fileName = chunk[index];
47
- try {
48
- const ReadFileResponse = yield new FileManager_1.default().ReadFile(`${path}/${fileName}`);
49
- // Check if the file is read successfully or not
50
- if ("data" in ReadFileResponse) {
51
- if (isEncrypted === true && cryptoInstance) {
52
- // Decrypt the data if crypto is enabled
53
- const ContentResponse = yield cryptoInstance.decrypt(new Converter_helper_1.default().ToObject(ReadFileResponse.data));
54
- if (storeFileName == true) {
55
- // Store Decrypted Data with File Name
56
- result.push({
57
- fileName: fileName,
58
- data: new Converter_helper_1.default().ToObject(ContentResponse),
59
- });
60
- }
61
- else {
62
- // Store all Decrypted Data in AllData
63
- result.push(new Converter_helper_1.default().ToObject(ContentResponse));
64
- }
36
+ // Process all files in parallel for maximum performance
37
+ const filePromises = chunk.map((fileName) => __awaiter(this, void 0, void 0, function* () {
38
+ try {
39
+ const ReadFileResponse = yield new FileManager_1.default().ReadFile(`${path}/${fileName}`);
40
+ // Check if the file is read successfully or not
41
+ if ("data" in ReadFileResponse) {
42
+ if (isEncrypted === true && cryptoInstance) {
43
+ // Decrypt the data if crypto is enabled
44
+ const ContentResponse = yield cryptoInstance.decrypt(new Converter_helper_1.default().ToObject(ReadFileResponse.data));
45
+ if (storeFileName == true) {
46
+ // Store Decrypted Data with File Name
47
+ return {
48
+ fileName: fileName,
49
+ data: new Converter_helper_1.default().ToObject(ContentResponse),
50
+ };
65
51
  }
66
52
  else {
67
- if (storeFileName == true) {
68
- result.push({
69
- fileName: fileName,
70
- data: new Converter_helper_1.default().ToObject(ReadFileResponse.data),
71
- });
72
- }
73
- else {
74
- result.push(new Converter_helper_1.default().ToObject(ReadFileResponse.data));
75
- }
53
+ // Store all Decrypted Data in AllData
54
+ return new Converter_helper_1.default().ToObject(ContentResponse);
76
55
  }
77
56
  }
78
57
  else {
79
- return new response_helper_1.default().Error(`Failed to read file: ${fileName}`);
58
+ if (storeFileName == true) {
59
+ return {
60
+ fileName: fileName,
61
+ data: new Converter_helper_1.default().ToObject(ReadFileResponse.data),
62
+ };
63
+ }
64
+ else {
65
+ return new Converter_helper_1.default().ToObject(ReadFileResponse.data);
66
+ }
80
67
  }
81
68
  }
82
- catch (error) {
83
- console.error(`Error processing file ${fileName}:`, error);
69
+ else {
70
+ console.error(`Failed to read file: ${fileName}`);
71
+ return null;
84
72
  }
85
73
  }
86
- left += 2;
87
- right -= 2;
88
- }
74
+ catch (error) {
75
+ console.error(`Error processing file ${fileName}:`, error);
76
+ return null;
77
+ }
78
+ }));
79
+ // Wait for all file operations to complete
80
+ const results = yield Promise.all(filePromises);
81
+ // Filter out null results (failed reads) and add to result array
82
+ const validResults = results.filter((r) => r !== null);
83
+ result.push(...validResults);
89
84
  if (worker_threads_1.parentPort) {
90
85
  worker_threads_1.parentPort.postMessage(result);
91
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerForDataLoad.engine.js","sourceRoot":"","sources":["../../../source/engine/node/WorkerForDataLoad.engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkerForDataLoad.engine.js","sourceRoot":"","sources":["../../../source/engine/node/WorkerForDataLoad.engine.ts"],"names":[],"mappings":"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"}
@@ -7,26 +7,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const worker_threads_1 = require("worker_threads");
8
8
  const Searcher_utils_1 = __importDefault(require("../../utility/Searcher.utils"));
9
9
  const { chunk, query, isUpdated, aditionalFiled } = worker_threads_1.workerData;
10
+ // Optimized for maximum performance
10
11
  const result = [];
11
- let left = 0;
12
- let right = chunk.length - 1;
13
- while (left <= right) {
14
- const indices = [];
15
- for (let i = 0; i < 2 && left + i <= right; i++)
16
- indices.push(left + i);
17
- for (let i = 0; i < 2 && right - i > left + 1; i++)
18
- indices.push(right - i);
19
- for (const index of indices) {
20
- const rawItem = chunk[index];
21
- const item = aditionalFiled ? rawItem[aditionalFiled] : rawItem;
22
- if (item !== undefined &&
23
- item !== null &&
24
- Searcher_utils_1.default.matchesQuery(item, query, isUpdated)) {
25
- result.push(rawItem);
26
- }
12
+ const chunkLength = chunk.length;
13
+ // Simple linear loop is fastest for this use case
14
+ // Modern JS engines optimize simple loops very well
15
+ for (let i = 0; i < chunkLength; i++) {
16
+ const rawItem = chunk[i];
17
+ const item = aditionalFiled ? rawItem[aditionalFiled] : rawItem;
18
+ // Skip null/undefined checks with early continue
19
+ if (item === undefined || item === null)
20
+ continue;
21
+ if (Searcher_utils_1.default.matchesQuery(item, query, isUpdated)) {
22
+ result.push(rawItem);
27
23
  }
28
- left += 2;
29
- right -= 2;
30
24
  }
31
25
  if (worker_threads_1.parentPort) {
32
26
  worker_threads_1.parentPort.postMessage(result);
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerForSearch.engine.js","sourceRoot":"","sources":["../../../source/engine/node/WorkerForSearch.engine.ts"],"names":[],"mappings":";;;;;AAAA,uDAAuD;AACvD,mDAAwD;AACxD,kFAAoD;AAEpD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,2BAAU,CAAC;AAC/D,MAAM,MAAM,GAAU,EAAE,CAAC;AAEzB,IAAI,IAAI,GAAG,CAAC,CAAC;AACb,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAE7B,OAAO,IAAI,IAAI,KAAK,EAAE,CAAC;IACrB,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE;QAAE,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAE5E,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAChE,IACE,IAAI,KAAK,SAAS;YAClB,IAAI,KAAK,IAAI;YACb,wBAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAC7C,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,CAAC;AACb,CAAC;AAED,IAAI,2BAAU,EAAE,CAAC;IACf,2BAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"WorkerForSearch.engine.js","sourceRoot":"","sources":["../../../source/engine/node/WorkerForSearch.engine.ts"],"names":[],"mappings":";;;;;AAAA,uDAAuD;AACvD,mDAAwD;AACxD,kFAAoD;AAEpD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,2BAAU,CAAC;AAE/D,oCAAoC;AACpC,MAAM,MAAM,GAAU,EAAE,CAAC;AACzB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;AAEjC,kDAAkD;AAClD,oDAAoD;AACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAEhE,iDAAiD;IACjD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;QAAE,SAAS;IAElD,IAAI,wBAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,IAAI,2BAAU,EAAE,CAAC;IACf,2BAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
@@ -16,6 +16,7 @@ exports.default = ReaderWithWorker;
16
16
  /* eslint-disable @typescript-eslint/no-explicit-any */
17
17
  const worker_threads_1 = require("worker_threads");
18
18
  const path_1 = __importDefault(require("path"));
19
+ const os_1 = __importDefault(require("os"));
19
20
  /**
20
21
  * Reads data files using worker threads to parallelize the loading process.
21
22
  * Each worker processes a chunk of the data files list.
@@ -28,7 +29,7 @@ const path_1 = __importDefault(require("path"));
28
29
  */
29
30
  function ReaderWithWorker(DataFilesList_1, encryptionKey_1, path_2, isEncrypted_1) {
30
31
  return __awaiter(this, arguments, void 0, function* (DataFilesList, encryptionKey, path, isEncrypted, storeFileName = false) {
31
- const numWorkers = 1; // Use a single worker for simplicity, can be adjusted based on requirements
32
+ const numWorkers = Math.min(os_1.default.cpus().length, DataFilesList.length); // Use all CPU cores or file count, whichever is smaller
32
33
  const chunkSize = Math.ceil(DataFilesList.length / numWorkers);
33
34
  const workerPath = path_1.default.resolve(__dirname, "../engine/node", "WorkerForDataLoad.engine.js");
34
35
  const tasks = [];
@@ -1 +1 @@
1
- {"version":3,"file":"BufferLoaderWithWorker.utils.js","sourceRoot":"","sources":["../../source/utility/BufferLoaderWithWorker.utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAcA,mCA4CC;AA1DD,uDAAuD;AACvD,mDAAwC;AACxC,gDAAyB;AAEzB;;;;;;;;;GASG;AACH,SAA8B,gBAAgB;yDAC5C,aAAuB,EACvB,aAAiC,EACjC,IAAY,EACZ,WAAoB,EACpB,aAAa,GAAG,KAAK;QAErB,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,4EAA4E;QAClG,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAW,cAAK,CAAC,OAAO,CACtC,SAAS,EACT,gBAAgB,EAChB,6BAA6B,CAC9B,CAAC;QACF,MAAM,KAAK,GAAqB,EAAE,CAAC;QAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;YAC9D,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAElD,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,SAAS;wBAChB,aAAa,EAAE,aAAa;wBAC5B,IAAI,EAAE,IAAI;wBACV,WAAW,EAAE,WAAW;wBACxB,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;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;CAAA"}
1
+ {"version":3,"file":"BufferLoaderWithWorker.utils.js","sourceRoot":"","sources":["../../source/utility/BufferLoaderWithWorker.utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAeA,mCA4CC;AA3DD,uDAAuD;AACvD,mDAAwC;AACxC,gDAAyB;AACzB,4CAAoB;AAEpB;;;;;;;;;GASG;AACH,SAA8B,gBAAgB;yDAC5C,aAAuB,EACvB,aAAiC,EACjC,IAAY,EACZ,WAAoB,EACpB,aAAa,GAAG,KAAK;QAErB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAE,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,wDAAwD;QAC7H,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAW,cAAK,CAAC,OAAO,CACtC,SAAS,EACT,gBAAgB,EAChB,6BAA6B,CAC9B,CAAC;QACF,MAAM,KAAK,GAAqB,EAAE,CAAC;QAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;YAC9D,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAElD,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,SAAS;wBAChB,aAAa,EAAE,aAAa;wBAC5B,IAAI,EAAE,IAAI;wBACV,WAAW,EAAE,WAAW;wBACxB,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;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;CAAA"}
@@ -4,15 +4,17 @@ export default class Searcher {
4
4
  constructor(arr: any[], isUpdated?: boolean);
5
5
  /**
6
6
  * Finds items in the data array that match the given query.
7
- * Uses worker threads to parallelize the search across multiple CPU cores.
7
+ * Uses optimized search strategies based on data size.
8
+ * Note: InMemoryCache at the Reader layer already handles query result caching.
8
9
  *
9
10
  * @param query - The query object containing conditions to match against items.
10
11
  * @param aditionalFiled - Optional field to extract from each item for matching.
12
+ * @param findOne - If true, stops after finding the first match (early exit)
11
13
  * @returns {Promise<any[]>} - A promise that resolves to an array of matching items.
12
14
  */
13
15
  find(query: {
14
16
  [key: string]: any;
15
- }, additionalFiled?: string | number | undefined): Promise<any[]>;
17
+ }, additionalFiled?: string | number | undefined, findOne?: boolean): Promise<any[]>;
16
18
  /**
17
19
  * Matches an item against a query object.
18
20
  * Supports MongoDB-like operators and logical operators ($or, $and).
@@ -27,6 +27,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
27
27
  /* eslint-disable @typescript-eslint/no-explicit-any */
28
28
  const worker_threads_1 = require("worker_threads");
29
29
  const path_1 = __importDefault(require("path"));
30
+ const os_1 = __importDefault(require("os"));
30
31
  const workerPath = path_1.default.resolve(__dirname, "../engine/node", "WorkerForSearch.engine.js");
31
32
  class Searcher {
32
33
  constructor(arr, isUpdated = false) {
@@ -36,15 +37,34 @@ class Searcher {
36
37
  }
37
38
  /**
38
39
  * Finds items in the data array that match the given query.
39
- * Uses worker threads to parallelize the search across multiple CPU cores.
40
+ * Uses optimized search strategies based on data size.
41
+ * Note: InMemoryCache at the Reader layer already handles query result caching.
40
42
  *
41
43
  * @param query - The query object containing conditions to match against items.
42
44
  * @param aditionalFiled - Optional field to extract from each item for matching.
45
+ * @param findOne - If true, stops after finding the first match (early exit)
43
46
  * @returns {Promise<any[]>} - A promise that resolves to an array of matching items.
44
47
  */
45
- find(query, additionalFiled) {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- const numWorkers = 1; // Use a single worker for simplicity, can be adjusted based on requirements
48
+ find(query_1, additionalFiled_1) {
49
+ return __awaiter(this, arguments, void 0, function* (query, additionalFiled, findOne = false) {
50
+ // For small datasets or findOne, linear search is faster (avoid worker overhead)
51
+ if (this.data.length < 1000 || findOne) {
52
+ const result = [];
53
+ for (let i = 0; i < this.data.length; i++) {
54
+ const rawItem = this.data[i];
55
+ const item = additionalFiled ? rawItem[additionalFiled] : rawItem;
56
+ if (item !== undefined &&
57
+ item !== null &&
58
+ Searcher.matchesQuery(item, query, this.isUpdated)) {
59
+ result.push(rawItem);
60
+ if (findOne)
61
+ return result; // Early exit for findOne
62
+ }
63
+ }
64
+ return result;
65
+ }
66
+ // Parallel search for large datasets with complex queries
67
+ const numWorkers = Math.min(os_1.default.cpus().length, Math.max(1, Math.ceil(this.data.length / 1000)));
48
68
  const chunkSize = Math.ceil(this.data.length / numWorkers);
49
69
  const tasks = [];
50
70
  for (let i = 0; i < numWorkers; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"Searcher.utils.js","sourceRoot":"","sources":["../../source/utility/Searcher.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Searcher.utils.js","sourceRoot":"","sources":["../../source/utility/Searcher.utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,uDAAuD;AACvD,mDAAwC;AACxC,gDAAwB;AACxB,4CAAoB;AAEpB,MAAM,UAAU,GAAW,cAAI,CAAC,OAAO,CACrC,SAAS,EACT,gBAAgB,EAChB,2BAA2B,CAC5B,CAAC;AAEF,MAAqB,QAAQ;IAI3B,YAAY,GAAU,EAAE,YAAqB,KAAK;QAF1C,cAAS,GAAY,KAAK,CAAC;QAGjC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;;;;;;;OASG;IACU,IAAI;6DACf,KAA6B,EAC7B,eAA6C,EAC7C,UAAmB,KAAK;YAExB,iFAAiF;YACjF,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAU,EAAE,CAAC;gBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC7B,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAClE,IACE,IAAI,KAAK,SAAS;wBAClB,IAAI,KAAK,IAAI;wBACb,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAClD,CAAC;wBACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACrB,IAAI,OAAO;4BAAE,OAAO,MAAM,CAAC,CAAC,yBAAyB;oBACvD,CAAC;gBACH,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,0DAA0D;YAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAE,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/F,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;YAE3D,MAAM,KAAK,GAAqB,EAAE,CAAC;YAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC;gBAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAE9C,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,KAAK;4BACL,SAAS,EAAE,IAAI,CAAC,SAAS;4BACzB,eAAe;yBAChB;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;4BACZ,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC1D,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,sBAAsB;QAC/C,CAAC;KAAA;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,YAAY,CACxB,IAAS,EACT,KAA6B,EAC7B,YAAqB,KAAK;QAE1B,wBAAwB;QACxB,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,EAAE,GAAG,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAAxB,OAAgB,CAAQ,CAAC;YAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;gBACxC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC;gBAC/B,CAAC,CAAC,IAAI,CAAC;YACT,OAAO,OAAO,IAAI,SAAS,CAAC;QAC9B,CAAC;QAED,yBAAyB;QACzB,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,EAAE,IAAI,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAAzB,QAAiB,CAAQ,CAAC;YAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YACzE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;gBACxC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC;gBAC/B,CAAC,CAAC,IAAI,CAAC;YACT,OAAO,QAAQ,IAAI,SAAS,CAAC;QAC/B,CAAC;QAED,uCAAuC;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;QAErC,+BAA+B;QAC/B,IAAI,WAAW,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,SAAS,GAAG,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEjE,6CAA6C;YAC7C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBAC1D,sDAAsD;gBACtD,IACE,QAAQ,IAAI,UAAU;oBACtB,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,QAAQ,EACxC,CAAC;oBACD,MAAM,KAAK,GAAG,IAAI,MAAM,CACtB,UAAU,CAAC,QAAQ,CAAC,EACpB,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,CAC9B,CAAC;oBACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;wBAAE,OAAO,KAAK,CAAC;oBACzC,SAAS;gBACX,CAAC;gBAED,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;oBACxB,IAAI,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;wBACnE,OAAO,KAAK,CAAC;oBACf,SAAS;gBACX,CAAC;gBAED,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;oBACxB,IAAI,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;wBACnE,OAAO,KAAK,CAAC;oBACf,SAAS;gBACX,CAAC;gBAED,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;oBACzB,IACE,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;wBAEnE,OAAO,KAAK,CAAC;oBACf,SAAS;gBACX,CAAC;gBAED,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;oBACzB,IACE,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;wBAEnE,OAAO,KAAK,CAAC;oBACf,SAAS;gBACX,CAAC;gBAED,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC5D,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;wBAAE,OAAO,KAAK,CAAC;oBACzD,SAAS;gBACX,CAAC;gBAED,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;oBACxB,IAAI,SAAS,KAAK,UAAU,CAAC,KAAK,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAClD,SAAS;gBACX,CAAC;YACH,CAAC;YAED,2CAA2C;YAC3C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAzLD,2BAyLC"}
@@ -14,6 +14,7 @@ export default class Sorting {
14
14
  } | ArrayLike<unknown>);
15
15
  /**
16
16
  * Sort the array based on the query.
17
+ * Optimized for performance using native comparison operators.
17
18
  * @param arr - The array to be sorted.
18
19
  * @param query - The query object containing the sorting key and order.
19
20
  * @returns A promise that resolves to the sorted array.
@@ -25,6 +25,7 @@ class Sorting {
25
25
  }
26
26
  /**
27
27
  * Sort the array based on the query.
28
+ * Optimized for performance using native comparison operators.
28
29
  * @param arr - The array to be sorted.
29
30
  * @param query - The query object containing the sorting key and order.
30
31
  * @returns A promise that resolves to the sorted array.
@@ -33,20 +34,44 @@ class Sorting {
33
34
  return __awaiter(this, void 0, void 0, function* () {
34
35
  const [key, order] = Object.entries(this.query)[0]; // Extract the field and order (1 for ascending, -1 for descending)
35
36
  if (aditionalField) {
37
+ // Optimized sort with direct subtraction for numbers and localeCompare for strings
36
38
  return [...this.arr].sort((a, b) => {
37
- if (a[aditionalField][key] < b[aditionalField][key])
38
- return -order; // Swap order
39
- if (a[aditionalField][key] > b[aditionalField][key])
40
- return order; // Swap order
39
+ const aVal = a[aditionalField][key];
40
+ const bVal = b[aditionalField][key];
41
+ // Fast path for numbers
42
+ if (typeof aVal === "number" && typeof bVal === "number") {
43
+ return (aVal - bVal) * -order;
44
+ }
45
+ // Fast path for strings
46
+ if (typeof aVal === "string" && typeof bVal === "string") {
47
+ return aVal.localeCompare(bVal) * -order;
48
+ }
49
+ // Fallback for other types
50
+ if (aVal < bVal)
51
+ return -order;
52
+ if (aVal > bVal)
53
+ return order;
41
54
  return 0;
42
55
  });
43
56
  }
44
57
  else {
58
+ // Optimized sort with direct subtraction for numbers and localeCompare for strings
45
59
  return [...this.arr].sort((a, b) => {
46
- if (a[key] < b[key])
47
- return -order; // Swap order
48
- if (a[key] > b[key])
49
- return order; // Swap order
60
+ const aVal = a[key];
61
+ const bVal = b[key];
62
+ // Fast path for numbers
63
+ if (typeof aVal === "number" && typeof bVal === "number") {
64
+ return (aVal - bVal) * -order;
65
+ }
66
+ // Fast path for strings
67
+ if (typeof aVal === "string" && typeof bVal === "string") {
68
+ return aVal.localeCompare(bVal) * -order;
69
+ }
70
+ // Fallback for other types
71
+ if (aVal < bVal)
72
+ return -order;
73
+ if (aVal > bVal)
74
+ return order;
50
75
  return 0;
51
76
  });
52
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SortData.utils.js","sourceRoot":"","sources":["../../source/utility/SortData.utils.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uDAAuD;AACvD;;GAEG;AACH,MAAqB,OAAO;IAK1B;;;;OAIG;IACH,YACE,GAAU,EACV,KAAoD;QAEpD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACU,IAAI,CAAC,cAAuB;;YACvC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAqB,CAAC,CAAC,mEAAmE;YAC3I,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACjC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC;wBAAE,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa;oBACjF,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC;wBAAE,OAAO,KAAK,CAAC,CAAC,aAAa;oBAChF,OAAO,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACjC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;wBAAE,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa;oBACjD,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;wBAAE,OAAO,KAAK,CAAC,CAAC,aAAa;oBAChD,OAAO,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KAAA;CACF;AAxCD,0BAwCC"}
1
+ {"version":3,"file":"SortData.utils.js","sourceRoot":"","sources":["../../source/utility/SortData.utils.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uDAAuD;AACvD;;GAEG;AACH,MAAqB,OAAO;IAK1B;;;;OAIG;IACH,YACE,GAAU,EACV,KAAoD;QAEpD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;;;OAMG;IACU,IAAI,CAAC,cAAuB;;YACvC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAqB,CAAC,CAAC,mEAAmE;YAE3I,IAAI,cAAc,EAAE,CAAC;gBACnB,mFAAmF;gBACnF,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACjC,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC;oBACpC,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC;oBAEpC,wBAAwB;oBACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACzD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;oBAChC,CAAC;oBAED,wBAAwB;oBACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACzD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;oBAC3C,CAAC;oBAED,2BAA2B;oBAC3B,IAAI,IAAI,GAAG,IAAI;wBAAE,OAAO,CAAC,KAAK,CAAC;oBAC/B,IAAI,IAAI,GAAG,IAAI;wBAAE,OAAO,KAAK,CAAC;oBAC9B,OAAO,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,mFAAmF;gBACnF,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACjC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBACpB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBAEpB,wBAAwB;oBACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACzD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;oBAChC,CAAC;oBAED,wBAAwB;oBACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACzD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;oBAC3C,CAAC;oBAED,2BAA2B;oBAC3B,IAAI,IAAI,GAAG,IAAI;wBAAE,OAAO,CAAC,KAAK,CAAC;oBAC/B,IAAI,IAAI,GAAG,IAAI;wBAAE,OAAO,KAAK,CAAC;oBAC9B,OAAO,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KAAA;CACF;AAxED,0BAwEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "axiodb",
3
- "version": "2.31.103",
3
+ "version": "3.31.104",
4
4
  "description": "A blazing-fast, lightweight, and scalable nodejs package based DBMS for modern application. Supports schemas, encryption, and advanced query capabilities.",
5
5
  "main": "./lib/config/DB.js",
6
6
  "types": "./lib/config/DB.d.ts",