axiodb 2.21.71 → 2.24.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/lib/Services/Database/database.operation.d.ts +38 -3
  2. package/lib/Services/Database/database.operation.js +101 -3
  3. package/lib/Services/Database/database.operation.js.map +1 -1
  4. package/lib/Services/Indexation.operation.d.ts +1 -0
  5. package/lib/Services/Indexation.operation.js +8 -1
  6. package/lib/Services/Indexation.operation.js.map +1 -1
  7. package/lib/config/Interfaces/Operation/Indexation.operation.interface.d.ts +2 -0
  8. package/lib/config/Interfaces/Operation/database.operation.interface.d.ts +12 -0
  9. package/lib/config/Interfaces/Operation/database.operation.interface.js +1 -0
  10. package/lib/config/Interfaces/Operation/database.operation.interface.js.map +1 -1
  11. package/lib/engine/Filesystem/FileManager.js +62 -9
  12. package/lib/engine/Filesystem/FileManager.js.map +1 -1
  13. package/lib/engine/Filesystem/FolderManager.d.ts +15 -0
  14. package/lib/engine/Filesystem/FolderManager.js +151 -5
  15. package/lib/engine/Filesystem/FolderManager.js.map +1 -1
  16. package/lib/server/config/keys.d.ts +9 -9
  17. package/lib/server/config/keys.js +79 -33
  18. package/lib/server/config/keys.js.map +1 -1
  19. package/lib/server/controller/Collections/Collection.controller.d.ts +58 -0
  20. package/lib/server/controller/Collections/Collection.controller.js +156 -0
  21. package/lib/server/controller/Collections/Collection.controller.js.map +1 -0
  22. package/lib/server/helper/filesCounterInFolder.helper.d.ts +16 -0
  23. package/lib/server/helper/filesCounterInFolder.helper.js +49 -0
  24. package/lib/server/helper/filesCounterInFolder.helper.js.map +1 -0
  25. package/lib/server/public/AxioControl/.vite/manifest.json +2 -2
  26. package/lib/server/public/AxioControl/.vite/ssr-manifest.json +2 -0
  27. package/lib/server/public/AxioControl/assets/index--rWHSvem.css +1 -0
  28. package/lib/server/public/AxioControl/assets/index-1QePTOyA.js +56 -0
  29. package/lib/server/public/AxioControl/index.html +2 -2
  30. package/lib/server/public/AxioControl/sw.js +1 -1
  31. package/lib/server/router/Router.js +6 -0
  32. package/lib/server/router/Router.js.map +1 -1
  33. package/lib/server/router/Routers/Collection.routes.d.ts +7 -0
  34. package/lib/server/router/Routers/Collection.routes.js +29 -0
  35. package/lib/server/router/Routers/Collection.routes.js.map +1 -0
  36. package/package.json +1 -1
  37. package/lib/server/public/AxioControl/assets/index-BHqXlmHD.css +0 -1
  38. package/lib/server/public/AxioControl/assets/index-BrzSFweB.js +0 -56
@@ -13,13 +13,19 @@ export default class Database {
13
13
  /**
14
14
  * Creates a new collection inside the specified database.
15
15
  * @param {string} collectionName - Name of the collection.
16
- * @param {boolean} isSchemaNeeded - Whether the collection requires a schema.
17
- * @param {object} schema - Schema of the collection.
18
16
  * @param {boolean} crypto - Enable crypto for the collection.
19
17
  * @param {string} key - Key for crypto.
18
+ * @param {boolean} isSchemaNeeded - Whether the collection requires a schema.
19
+ * @param {object} schema - Schema of the collection.
20
20
  * @returns {Promise<AxioDB>} - Returns the instance of AxioDB.
21
21
  */
22
- createCollection(collectionName: string, isSchemaNeeded: boolean | undefined, schema: object | any, crypto?: boolean, key?: string | undefined): Promise<Collection>;
22
+ createCollection(collectionName: string, crypto?: boolean, key?: string | undefined, isSchemaNeeded?: boolean, schema?: object | any): Promise<Collection>;
23
+ /**
24
+ * Checks if a collection exists in the database.
25
+ * @param {string} collectionName - Name of the collection to check.
26
+ * @returns {Promise<boolean>} - Returns true if the collection exists, false otherwise.
27
+ **/
28
+ isCollectionExists(collectionName: string): Promise<boolean>;
23
29
  /**
24
30
  * Deletes a collection from the database.
25
31
  * @param {string} collectionName - Name of the collection to delete.
@@ -33,4 +39,33 @@ export default class Database {
33
39
  * @throws {Error} - Throws an error if the database does not exist.
34
40
  */
35
41
  getCollectionInfo(): Promise<SuccessInterface | undefined>;
42
+ /**
43
+ * Adds metadata for a collection to the collection metadata file.
44
+ *
45
+ * @param collectionData - The metadata of the collection to add
46
+ * @returns A Promise that resolves when the operation is complete, or rejects with an error if the collection metadata format is invalid
47
+ * @private
48
+ *
49
+ * This method performs the following operations:
50
+ * 1. Checks if the collection metadata file exists
51
+ * 2. If the file doesn't exist, creates it with the provided collection metadata
52
+ * 3. If the file exists, reads the existing metadata, adds the new collection metadata (if not already present), and writes back to the file
53
+ *
54
+ * @throws {Error} If the collection metadata format is invalid
55
+ */
56
+ private AddCollectionMetadata;
57
+ /**
58
+ * Retrieves metadata details for a specific collection.
59
+ *
60
+ * @param collectionName - The name of the collection to retrieve metadata for
61
+ * @returns A Promise that resolves to the collection's metadata if found, or undefined if not found
62
+ * @private
63
+ *
64
+ * This method:
65
+ * 1. Checks if the collection.meta file exists
66
+ * 2. Reads and parses the metadata file if it exists
67
+ * 3. Validates that the data is an array
68
+ * 4. Finds and returns the metadata for the specified collection
69
+ */
70
+ private getCollectionMetaDetails;
36
71
  }
@@ -35,14 +35,14 @@ class Database {
35
35
  /**
36
36
  * Creates a new collection inside the specified database.
37
37
  * @param {string} collectionName - Name of the collection.
38
- * @param {boolean} isSchemaNeeded - Whether the collection requires a schema.
39
- * @param {object} schema - Schema of the collection.
40
38
  * @param {boolean} crypto - Enable crypto for the collection.
41
39
  * @param {string} key - Key for crypto.
40
+ * @param {boolean} isSchemaNeeded - Whether the collection requires a schema.
41
+ * @param {object} schema - Schema of the collection.
42
42
  * @returns {Promise<AxioDB>} - Returns the instance of AxioDB.
43
43
  */
44
44
  createCollection(collectionName_1) {
45
- return __awaiter(this, arguments, void 0, function* (collectionName, isSchemaNeeded = false, schema, crypto = false, key) {
45
+ return __awaiter(this, arguments, void 0, function* (collectionName, crypto = false, key, isSchemaNeeded = false, schema) {
46
46
  // Check if the collection already exists
47
47
  const collectionExists = yield this.folderManager.DirectoryExists(path_1.default.join(this.path, collectionName));
48
48
  const collectionPath = path_1.default.join(this.path, collectionName);
@@ -55,14 +55,44 @@ class Database {
55
55
  if (crypto === true) {
56
56
  const newCryptoInstance = new Crypto_helper_1.CryptoHelper(key);
57
57
  const collection = new collection_operation_1.default(collectionName, collectionPath, isSchemaNeeded, schema, crypto, newCryptoInstance, key);
58
+ // Store collection metadata in the collectionMap
59
+ yield this.AddCollectionMetadata({
60
+ name: collectionName,
61
+ path: collectionPath,
62
+ isSchemaNeeded: isSchemaNeeded === undefined ? false : isSchemaNeeded,
63
+ schema: schema === undefined ? {} : schema,
64
+ encryptionKey: key === undefined ? "" : key,
65
+ isEncrypted: crypto === undefined ? false : crypto,
66
+ });
58
67
  return collection;
59
68
  }
60
69
  else {
61
70
  const collection = new collection_operation_1.default(collectionName, collectionPath, isSchemaNeeded, schema);
71
+ // Store collection metadata in the collectionMap
72
+ yield this.AddCollectionMetadata({
73
+ name: collectionName,
74
+ path: collectionPath,
75
+ isSchemaNeeded: isSchemaNeeded === undefined ? false : isSchemaNeeded,
76
+ schema: schema === undefined ? {} : schema,
77
+ encryptionKey: key === undefined ? "" : key,
78
+ isEncrypted: crypto === undefined ? false : crypto,
79
+ });
62
80
  return collection;
63
81
  }
64
82
  });
65
83
  }
84
+ /**
85
+ * Checks if a collection exists in the database.
86
+ * @param {string} collectionName - Name of the collection to check.
87
+ * @returns {Promise<boolean>} - Returns true if the collection exists, false otherwise.
88
+ **/
89
+ isCollectionExists(collectionName) {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ const collectionPath = path_1.default.join(this.path, collectionName);
92
+ const exists = yield this.folderManager.DirectoryExists(collectionPath);
93
+ return exists.statusCode === outers_1.StatusCodes.OK;
94
+ });
95
+ }
66
96
  /**
67
97
  * Deletes a collection from the database.
68
98
  * @param {string} collectionName - Name of the collection to delete.
@@ -90,7 +120,11 @@ class Database {
90
120
  getCollectionInfo() {
91
121
  return __awaiter(this, void 0, void 0, function* () {
92
122
  const collections = yield this.folderManager.ListDirectory(this.path);
123
+ // Remove All .meta related things
124
+ collections.data = collections.data.filter((collection) => !collection.endsWith(".meta"));
93
125
  const totalSize = yield this.folderManager.GetDirectorySize(path_1.default.resolve(this.path));
126
+ // Get collection Status
127
+ const CollectionStatus = yield Promise.all(collections.data.map((collection) => this.getCollectionMetaDetails(collection)));
94
128
  if ("data" in collections && "data" in totalSize) {
95
129
  const FinalCollections = {
96
130
  CurrentPath: this.path,
@@ -99,12 +133,76 @@ class Database {
99
133
  TotalCollections: `${collections.data.length} Collections`,
100
134
  TotalSize: parseInt((totalSize.data / 1024 / 1024).toFixed(4)),
101
135
  ListOfCollections: collections.data,
136
+ collectionMetaStatus: CollectionStatus,
102
137
  AllCollectionsPaths: collections.data.map((collection) => path_1.default.join(this.path, collection)),
103
138
  };
104
139
  return this.ResponseHelper.Success(FinalCollections);
105
140
  }
106
141
  });
107
142
  }
143
+ /**
144
+ * Adds metadata for a collection to the collection metadata file.
145
+ *
146
+ * @param collectionData - The metadata of the collection to add
147
+ * @returns A Promise that resolves when the operation is complete, or rejects with an error if the collection metadata format is invalid
148
+ * @private
149
+ *
150
+ * This method performs the following operations:
151
+ * 1. Checks if the collection metadata file exists
152
+ * 2. If the file doesn't exist, creates it with the provided collection metadata
153
+ * 3. If the file exists, reads the existing metadata, adds the new collection metadata (if not already present), and writes back to the file
154
+ *
155
+ * @throws {Error} If the collection metadata format is invalid
156
+ */
157
+ AddCollectionMetadata(collectionData) {
158
+ return __awaiter(this, void 0, void 0, function* () {
159
+ const FileManagement = new FileManager_1.default();
160
+ const isFileExist = yield FileManagement.FileExists(`${this.path}/collection.meta`);
161
+ if (isFileExist.status == false) {
162
+ yield FileManagement.WriteFile(`${this.path}/collection.meta`, JSON.stringify([collectionData]));
163
+ }
164
+ else {
165
+ const FullData = JSON.parse((yield FileManagement.ReadFile(`${this.path}/collection.meta`)).data);
166
+ if (!Array.isArray(FullData)) {
167
+ return new response_helper_1.default().Error("Invalid collection metadata format");
168
+ }
169
+ const isSameExist = FullData.filter((data) => data.name === collectionData.name);
170
+ if (isSameExist.length == 0) {
171
+ FullData.push(collectionData);
172
+ yield FileManagement.WriteFile(`${this.path}/collection.meta`, JSON.stringify(FullData));
173
+ }
174
+ }
175
+ });
176
+ }
177
+ /**
178
+ * Retrieves metadata details for a specific collection.
179
+ *
180
+ * @param collectionName - The name of the collection to retrieve metadata for
181
+ * @returns A Promise that resolves to the collection's metadata if found, or undefined if not found
182
+ * @private
183
+ *
184
+ * This method:
185
+ * 1. Checks if the collection.meta file exists
186
+ * 2. Reads and parses the metadata file if it exists
187
+ * 3. Validates that the data is an array
188
+ * 4. Finds and returns the metadata for the specified collection
189
+ */
190
+ getCollectionMetaDetails(collectionName) {
191
+ return __awaiter(this, void 0, void 0, function* () {
192
+ const FileManagement = new FileManager_1.default();
193
+ const isFileExist = yield FileManagement.FileExists(`${this.path}/collection.meta`);
194
+ if (isFileExist.status == false) {
195
+ return undefined;
196
+ }
197
+ const FullData = JSON.parse((yield FileManagement.ReadFile(`${this.path}/collection.meta`)).data);
198
+ if (!Array.isArray(FullData)) {
199
+ return undefined;
200
+ }
201
+ const collectionMeta = FullData.find((data) => data.name === collectionName);
202
+ console.log("Collection metadata:", collectionMeta);
203
+ return collectionMeta;
204
+ });
205
+ }
108
206
  }
109
207
  exports.default = Database;
110
208
  //# sourceMappingURL=database.operation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.operation.js","sourceRoot":"","sources":["../../../source/Services/Database/database.operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.operation.js","sourceRoot":"","sources":["../../../source/Services/Database/database.operation.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export declare class AxioDB {
13
13
  private Converter;
14
14
  private ResponseHelper;
15
15
  private static _instance;
16
+ private DatabaseMap;
16
17
  constructor(RootName?: string, CustomPath?: string);
17
18
  /**
18
19
  * Initializes the root directory for the AxioDB.
@@ -44,6 +44,7 @@ class AxioDB {
44
44
  this.Converter = new Converter_helper_1.default(); // Initialize the Converter class
45
45
  this.ResponseHelper = new response_helper_1.default(); // Initialize the ResponseHelper class
46
46
  this.initializeRoot(); // Ensure root initialization
47
+ this.DatabaseMap = new Map(); // Initialize the DatabaseMap
47
48
  }
48
49
  /**
49
50
  * Initializes the root directory for the AxioDB.
@@ -86,6 +87,9 @@ class AxioDB {
86
87
  console.log(`Database Created: ${dbPath}`);
87
88
  }
88
89
  const newDB = new database_operation_1.default(DBName, dbPath);
90
+ // Store database metadata in the DatabaseMap
91
+ // Note: The DatabaseMap is now storing an object instead of a Database instance
92
+ this.DatabaseMap.set(DBName, { DatabaseName: DBName, path: dbPath });
89
93
  return newDB;
90
94
  });
91
95
  }
@@ -106,6 +110,7 @@ class AxioDB {
106
110
  getInstanceInfo() {
107
111
  return __awaiter(this, void 0, void 0, function* () {
108
112
  const totalDatabases = yield this.folderManager.ListDirectory(path_1.default.resolve(this.currentPATH));
113
+ // First
109
114
  const totalSize = yield this.folderManager.GetDirectorySize(path_1.default.resolve(this.currentPATH));
110
115
  // check if all data is returned
111
116
  if ("data" in totalDatabases && "data" in totalSize) {
@@ -113,9 +118,10 @@ class AxioDB {
113
118
  CurrentPath: this.currentPATH,
114
119
  RootName: this.RootName,
115
120
  MatrixUnits: "MB",
116
- TotalSize: parseInt((totalSize.data / 1024 / 1024).toFixed(4)),
121
+ TotalSize: parseFloat((totalSize.data / 1024 / 1024).toFixed(6)),
117
122
  TotalDatabases: `${totalDatabases.data.length} Databases`,
118
123
  ListOfDatabases: totalDatabases.data,
124
+ DatabaseMap: this.DatabaseMap,
119
125
  AllDatabasesPaths: totalDatabases.data.map((db) => path_1.default.join(this.currentPATH, db)),
120
126
  };
121
127
  return this.ResponseHelper.Success(FinalDatabaseInfo);
@@ -164,6 +170,7 @@ class AxioDB {
164
170
  const exists = yield this.folderManager.DirectoryExists(dbPath);
165
171
  if (exists.statusCode === outers_1.StatusCodes.OK) {
166
172
  yield this.folderManager.DeleteDirectory(dbPath);
173
+ this.DatabaseMap.delete(DBName); // Remove from DatabaseMap
167
174
  return this.ResponseHelper.Success(`Database: ${DBName} deleted successfully`);
168
175
  }
169
176
  else {
@@ -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,3 +1,4 @@
1
+ import { DatabaseMap } from "./database.operation.interface";
1
2
  export interface FinalDatabaseInfo {
2
3
  CurrentPath: string;
3
4
  RootName: string;
@@ -5,5 +6,6 @@ export interface FinalDatabaseInfo {
5
6
  TotalSize: number;
6
7
  TotalDatabases: string;
7
8
  ListOfDatabases: string[];
9
+ DatabaseMap: Map<string, DatabaseMap>;
8
10
  AllDatabasesPaths: string[];
9
11
  }
@@ -1,3 +1,14 @@
1
+ export interface CollectionMap {
2
+ isCryptoEnabled: boolean;
3
+ cryptoKey?: string;
4
+ path: string;
5
+ schema?: any;
6
+ isSchema: boolean;
7
+ }
8
+ export interface DatabaseMap {
9
+ DatabaseName: string;
10
+ path: string;
11
+ }
1
12
  export interface FinalCollectionsInfo {
2
13
  CurrentPath: string;
3
14
  RootName: string;
@@ -5,5 +16,6 @@ export interface FinalCollectionsInfo {
5
16
  TotalSize: number;
6
17
  TotalCollections: number | string;
7
18
  ListOfCollections: string[];
19
+ collectionMetaStatus: any[];
8
20
  AllCollectionsPaths: string[];
9
21
  }
@@ -1,3 +1,4 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  //# sourceMappingURL=database.operation.interface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.operation.interface.js","sourceRoot":"","sources":["../../../../source/config/Interfaces/Operation/database.operation.interface.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"database.operation.interface.js","sourceRoot":"","sources":["../../../../source/config/Interfaces/Operation/database.operation.interface.ts"],"names":[],"mappings":";AAAA,uDAAuD"}
@@ -12,6 +12,7 @@ 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
+ /* eslint-disable @typescript-eslint/no-unused-vars */
15
16
  const promises_1 = __importDefault(require("fs/promises"));
16
17
  const response_helper_1 = __importDefault(require("../../Helper/response.helper"));
17
18
  const worker_process_1 = __importDefault(require("../cli/worker_process"));
@@ -187,18 +188,70 @@ class FileManager {
187
188
  GetFileSize(path) {
188
189
  return __awaiter(this, void 0, void 0, function* () {
189
190
  try {
190
- const osType = worker_process_1.default.getOS();
191
- if (osType === "windows") {
192
- const stdout = yield this.WorkerProcess.execCommand(`powershell -command "(Get-Item '${path}').length"`);
193
- const size = parseInt(stdout, 10);
194
- return this.responseHelper.Success(size);
191
+ // Try using native Node.js first (most reliable)
192
+ try {
193
+ // Check file permissions before reading
194
+ let originalMode = null;
195
+ try {
196
+ const stats = yield promises_1.default.stat(path);
197
+ originalMode = stats.mode;
198
+ // If file isn't readable, temporarily make it readable
199
+ if ((stats.mode & 0o444) !== 0o444) {
200
+ yield promises_1.default.chmod(path, 0o644);
201
+ }
202
+ }
203
+ catch (permError) {
204
+ // Continue with attempt to read the file even if we couldn't modify permissions
205
+ }
206
+ try {
207
+ const stats = yield promises_1.default.stat(path);
208
+ // Restore original permissions if they were modified
209
+ if (originalMode !== null && (originalMode & 0o444) !== 0o444) {
210
+ yield promises_1.default.chmod(path, originalMode);
211
+ }
212
+ return this.responseHelper.Success(stats.size);
213
+ }
214
+ catch (statError) {
215
+ // Fall back to system commands if native method fails
216
+ const osType = worker_process_1.default.getOS();
217
+ if (osType === "windows") {
218
+ const stdout = yield this.WorkerProcess.execCommand(`powershell -command "(Get-Item '${path}').length"`);
219
+ const size = parseInt(stdout, 10) || 0;
220
+ // Restore original permissions if they were modified
221
+ if (originalMode !== null && (originalMode & 0o444) !== 0o444) {
222
+ yield promises_1.default.chmod(path, originalMode);
223
+ }
224
+ return this.responseHelper.Success(size);
225
+ }
226
+ else {
227
+ // For Unix-like systems
228
+ const stdout = yield this.WorkerProcess.execCommand(`wc -c < "${path}" 2>/dev/null || echo 0`);
229
+ const size = parseInt(stdout, 10) || 0;
230
+ // Restore original permissions if they were modified
231
+ if (originalMode !== null && (originalMode & 0o444) !== 0o444) {
232
+ yield promises_1.default.chmod(path, originalMode);
233
+ }
234
+ return this.responseHelper.Success(size);
235
+ }
236
+ }
237
+ }
238
+ catch (err) {
239
+ // Try to restore original permissions if they were saved, even if an error occurred
240
+ try {
241
+ const stats = yield promises_1.default.stat(path);
242
+ const originalMode = stats.mode;
243
+ if ((originalMode & 0o444) !== 0o444) {
244
+ yield promises_1.default.chmod(path, originalMode);
245
+ }
246
+ }
247
+ catch (_a) {
248
+ // Ignore errors in the final cleanup attempt
249
+ }
250
+ return this.responseHelper.Error(`Failed to get file size: ${err}`);
195
251
  }
196
- const stdout = yield this.WorkerProcess.execCommand(`du -sb ${path}`);
197
- const size = parseInt(stdout.split("\t")[0], 10);
198
- return this.responseHelper.Success(size);
199
252
  }
200
253
  catch (err) {
201
- return this.responseHelper.Error(`Failed to get directory size: ${err}`);
254
+ return this.responseHelper.Error(`Failed to get file size: ${err}`);
202
255
  }
203
256
  });
204
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FileManager.js","sourceRoot":"","sources":["../../../source/engine/Filesystem/FileManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileManager.js","sourceRoot":"","sources":["../../../source/engine/Filesystem/FileManager.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,21 @@ export default class FolderManager {
39
39
  IsDirectoryLocked(path: string): Promise<SuccessInterface | ErrorInterface>;
40
40
  /**
41
41
  * get the size of a directory at the specified path.
42
+ * Handles permission issues by temporarily modifying permissions if needed.
42
43
  */
43
44
  GetDirectorySize(path: string): Promise<SuccessInterface | ErrorInterface>;
45
+ /**
46
+ * Recursively prepares a directory and its contents for size calculation
47
+ * by temporarily modifying permissions if needed.
48
+ */
49
+ private prepareDirectoryForSizeCalculation;
50
+ /**
51
+ * Restores original permissions for all modified files and directories
52
+ */
53
+ private restoreDirectoryPermissions;
54
+ /**
55
+ * Calculates directory size recursively using Node.js native functions.
56
+ * This is a fallback method for when command-line tools fail.
57
+ */
58
+ private calculateDirectorySizeRecursively;
44
59
  }