axiodb 1.4.1 → 1.4.3

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.
@@ -0,0 +1,57 @@
1
+ import { ErrorInterface, SuccessInterface } from "../../config/Interfaces/Helper/response.helper.interface";
2
+ /**
3
+ * Class that performs aggregation operations on data.
4
+ *
5
+ * This class allows for MongoDB-like aggregation pipeline operations on collection data.
6
+ * It supports various stages including $match, $group, $sort, $project, $limit, $skip,
7
+ * $unwind, and $addFields.
8
+ *
9
+ * The class can handle both encrypted and non-encrypted data collections.
10
+ */
11
+ export default class Aggregation {
12
+ private AllData;
13
+ private readonly Pipeline;
14
+ private path;
15
+ private readonly collectionName;
16
+ private readonly ResponseHelper;
17
+ private isEncrypted;
18
+ private encryptionKey?;
19
+ private cryptoInstance?;
20
+ private readonly Converter;
21
+ constructor(collectionName: string, path: string, Pipeline: object[] | any, isEncrypted?: boolean, encryptionKey?: string);
22
+ /**
23
+ * Executes the aggregation pipeline on the data.
24
+ *
25
+ * This method processes the aggregation pipeline stages in sequence:
26
+ * - $match: Filters documents based on specified conditions
27
+ * - $group: Groups documents by specified fields and applies aggregation operations
28
+ * - $sort: Sorts documents based on specified fields and order
29
+ * - $project: Reshapes documents by including specified fields
30
+ * - $limit: Limits the number of documents in the result
31
+ * - $skip: Skips a specified number of documents
32
+ * - $unwind: Deconstructs an array field from input documents
33
+ * - $addFields: Adds new fields to documents
34
+ *
35
+ * The method first validates if the pipeline is an array, loads all buffer data,
36
+ * and then processes each stage of the pipeline sequentially.
37
+ *
38
+ * @throws {Error} If the pipeline is not an array
39
+ * @returns {Array<any>} The result of the aggregation pipeline
40
+ */
41
+ exec(): Promise<SuccessInterface | ErrorInterface>;
42
+ /**
43
+ * Loads all buffer raw data from the specified directory.
44
+ *
45
+ * This method performs the following steps:
46
+ * 1. Checks if the directory is locked.
47
+ * 2. If the directory is not locked, it lists all files in the directory.
48
+ * 3. Reads each file and decrypts the data if encryption is enabled.
49
+ * 4. Stores the decrypted data in the `AllData` array.
50
+ * 5. If the directory is locked, it unlocks the directory, reads the files, and then locks the directory again.
51
+ *
52
+ * @returns {Promise<SuccessInterface | ErrorInterface>} A promise that resolves to a success or error response.
53
+ *
54
+ * @throws {Error} Throws an error if any operation fails.
55
+ */
56
+ private LoadAllBufferRawData;
57
+ }
@@ -0,0 +1,304 @@
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 response_helper_1 = __importDefault(require("../../Helper/response.helper"));
16
+ const Crypto_helper_1 = require("../../Helper/Crypto.helper");
17
+ const FolderManager_1 = __importDefault(require("../../Storage/FolderManager"));
18
+ const FileManager_1 = __importDefault(require("../../Storage/FileManager"));
19
+ const Converter_helper_1 = __importDefault(require("../../Helper/Converter.helper"));
20
+ /**
21
+ * Class that performs aggregation operations on data.
22
+ *
23
+ * This class allows for MongoDB-like aggregation pipeline operations on collection data.
24
+ * It supports various stages including $match, $group, $sort, $project, $limit, $skip,
25
+ * $unwind, and $addFields.
26
+ *
27
+ * The class can handle both encrypted and non-encrypted data collections.
28
+ */
29
+ class Aggregation {
30
+ constructor(collectionName, path, Pipeline, isEncrypted = false, encryptionKey) {
31
+ // property to store the data
32
+ this.AllData = [];
33
+ this.collectionName = collectionName;
34
+ this.path = path;
35
+ this.isEncrypted = isEncrypted;
36
+ this.encryptionKey = encryptionKey;
37
+ this.AllData = [];
38
+ this.Pipeline = Pipeline;
39
+ this.ResponseHelper = new response_helper_1.default();
40
+ this.Converter = new Converter_helper_1.default();
41
+ this.cryptoInstance = new Crypto_helper_1.CryptoHelper(this.encryptionKey);
42
+ }
43
+ /**
44
+ * Executes the aggregation pipeline on the data.
45
+ *
46
+ * This method processes the aggregation pipeline stages in sequence:
47
+ * - $match: Filters documents based on specified conditions
48
+ * - $group: Groups documents by specified fields and applies aggregation operations
49
+ * - $sort: Sorts documents based on specified fields and order
50
+ * - $project: Reshapes documents by including specified fields
51
+ * - $limit: Limits the number of documents in the result
52
+ * - $skip: Skips a specified number of documents
53
+ * - $unwind: Deconstructs an array field from input documents
54
+ * - $addFields: Adds new fields to documents
55
+ *
56
+ * The method first validates if the pipeline is an array, loads all buffer data,
57
+ * and then processes each stage of the pipeline sequentially.
58
+ *
59
+ * @throws {Error} If the pipeline is not an array
60
+ * @returns {Array<any>} The result of the aggregation pipeline
61
+ */
62
+ exec() {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ if (!Array.isArray(this.Pipeline)) {
65
+ throw new Error("Pipeline must be an array of aggregation stages.");
66
+ }
67
+ // Load all buffer raw data from the specified directory
68
+ yield this.LoadAllBufferRawData().then((response) => {
69
+ if ("data" in response) {
70
+ console.log("Data Loaded Successfully for Aggregation");
71
+ }
72
+ });
73
+ let result = [...this.AllData];
74
+ for (const stage of this.Pipeline) {
75
+ if (stage.$match) {
76
+ result = result.filter((item) => {
77
+ return Object.entries(stage.$match).every(([key, value]) => {
78
+ var _a;
79
+ const itemValue = (_a = item[key]) !== null && _a !== void 0 ? _a : ""; // Ensure item[key] exists
80
+ if (typeof value === "string" ||
81
+ typeof value === "number" ||
82
+ typeof value === "boolean") {
83
+ return itemValue === value;
84
+ }
85
+ if (typeof value === "object" && value !== null) {
86
+ if (value instanceof RegExp) {
87
+ return value.test(itemValue);
88
+ }
89
+ if ("$regex" in value) {
90
+ const regexPattern = value.$regex;
91
+ const regexOptions = "$options" in value ? value.$options : "";
92
+ try {
93
+ const regex = new RegExp(String(regexPattern), regexOptions);
94
+ return regex.test(itemValue);
95
+ }
96
+ catch (error) {
97
+ console.error(`Invalid regex: ${regexPattern} with options: ${regexOptions}`, error);
98
+ return false;
99
+ }
100
+ }
101
+ }
102
+ return false;
103
+ });
104
+ });
105
+ }
106
+ if (stage.$group) {
107
+ const groupedData = {};
108
+ for (const item of result) {
109
+ let groupKey;
110
+ if (typeof stage.$group._id === "string") {
111
+ groupKey = stage.$group._id.startsWith("$")
112
+ ? item[stage.$group._id.substring(1)]
113
+ : stage.$group._id;
114
+ }
115
+ else if (typeof stage.$group._id === "object") {
116
+ groupKey = JSON.stringify(Object.entries(stage.$group._id).reduce((acc, [k, v]) => {
117
+ const fieldPath = v.replace("$", "");
118
+ acc[k] = item[fieldPath];
119
+ return acc;
120
+ }, {}));
121
+ }
122
+ else {
123
+ groupKey = "null";
124
+ }
125
+ if (!groupedData[groupKey]) {
126
+ groupedData[groupKey] = { _id: groupKey };
127
+ }
128
+ for (const [key, operation] of Object.entries(stage.$group)) {
129
+ if (key === "_id")
130
+ continue;
131
+ if (operation.$avg) {
132
+ const field = operation.$avg.replace("$", "");
133
+ groupedData[groupKey][key] = groupedData[groupKey][key] || {
134
+ sum: 0,
135
+ count: 0,
136
+ };
137
+ groupedData[groupKey][key].sum += item[field];
138
+ groupedData[groupKey][key].count += 1;
139
+ }
140
+ if (operation.$sum) {
141
+ const field = operation.$sum.replace("$", "");
142
+ groupedData[groupKey][key] =
143
+ (groupedData[groupKey][key] || 0) + item[field];
144
+ }
145
+ }
146
+ }
147
+ result = Object.values(groupedData).map((group) => {
148
+ for (const key in group) {
149
+ if (group[key] && group[key].sum !== undefined) {
150
+ group[key] = group[key].sum / group[key].count;
151
+ }
152
+ }
153
+ return group;
154
+ });
155
+ }
156
+ if (stage.$sort) {
157
+ const [[key, order]] = Object.entries(stage.$sort);
158
+ const numOrder = Number(order);
159
+ result.sort((a, b) => {
160
+ if (a[key] < b[key])
161
+ return -numOrder;
162
+ if (a[key] > b[key])
163
+ return numOrder;
164
+ return 0;
165
+ });
166
+ }
167
+ if (stage.$project) {
168
+ result = result.map((item) => {
169
+ const projected = {};
170
+ for (const key in stage.$project) {
171
+ if (stage.$project[key] === 1) {
172
+ projected[key] = item[key];
173
+ }
174
+ }
175
+ return projected;
176
+ });
177
+ }
178
+ if (stage.$limit) {
179
+ result = result.slice(0, stage.$limit);
180
+ }
181
+ if (stage.$skip) {
182
+ result = result.slice(stage.$skip);
183
+ }
184
+ if (stage.$unwind) {
185
+ const field = stage.$unwind.replace("$", "");
186
+ result = result.flatMap((item) => {
187
+ return Array.isArray(item[field])
188
+ ? item[field].map((value) => (Object.assign(Object.assign({}, item), { [field]: value })))
189
+ : [item];
190
+ });
191
+ }
192
+ if (stage.$addFields) {
193
+ result = result.map((item) => (Object.assign(Object.assign({}, item), stage.$addFields)));
194
+ }
195
+ }
196
+ return this.ResponseHelper.Success(result);
197
+ });
198
+ }
199
+ /**
200
+ * Loads all buffer raw data from the specified directory.
201
+ *
202
+ * This method performs the following steps:
203
+ * 1. Checks if the directory is locked.
204
+ * 2. If the directory is not locked, it lists all files in the directory.
205
+ * 3. Reads each file and decrypts the data if encryption is enabled.
206
+ * 4. Stores the decrypted data in the `AllData` array.
207
+ * 5. If the directory is locked, it unlocks the directory, reads the files, and then locks the directory again.
208
+ *
209
+ * @returns {Promise<SuccessInterface | ErrorInterface>} A promise that resolves to a success or error response.
210
+ *
211
+ * @throws {Error} Throws an error if any operation fails.
212
+ */
213
+ LoadAllBufferRawData() {
214
+ return __awaiter(this, void 0, void 0, function* () {
215
+ try {
216
+ // Check if Directory Locked or not
217
+ const isLocked = yield new FolderManager_1.default().IsDirectoryLocked(this.path);
218
+ if ("data" in isLocked) {
219
+ // If Directory is not locked
220
+ if (isLocked.data === false) {
221
+ // Read List the data from the file
222
+ const ReadResponse = yield new FolderManager_1.default().ListDirectory(this.path);
223
+ if ("data" in ReadResponse) {
224
+ // Store all files in DataFilesList
225
+ const DataFilesList = ReadResponse.data;
226
+ // Read all files from the directory
227
+ for (let i = 0; i < DataFilesList.length; i++) {
228
+ const ReadFileResponse = yield new FileManager_1.default().ReadFile(`${this.path}/${DataFilesList[i]}`);
229
+ // Check if the file is read successfully or not
230
+ if ("data" in ReadFileResponse) {
231
+ if (this.isEncrypted === true && this.cryptoInstance) {
232
+ // Decrypt the data if crypto is enabled
233
+ const ContentResponse = yield this.cryptoInstance.decrypt(this.Converter.ToObject(ReadFileResponse.data));
234
+ // Store all Decrypted Data in AllData
235
+ this.AllData.push(this.Converter.ToObject(ContentResponse));
236
+ }
237
+ else {
238
+ this.AllData.push(this.Converter.ToObject(ReadFileResponse.data));
239
+ }
240
+ }
241
+ else {
242
+ return this.ResponseHelper.Error(`Failed to read file: ${DataFilesList[i]}`);
243
+ }
244
+ }
245
+ return this.ResponseHelper.Success(this.AllData);
246
+ }
247
+ return this.ResponseHelper.Error("Failed to read directory");
248
+ }
249
+ else {
250
+ // if Directory is locked then unlock it
251
+ const unlockResponse = yield new FolderManager_1.default().UnlockDirectory(this.path);
252
+ if ("data" in unlockResponse) {
253
+ // Read List the data from the file
254
+ const ReadResponse = yield new FolderManager_1.default().ListDirectory(this.path);
255
+ if ("data" in ReadResponse) {
256
+ // Store all files in DataFilesList
257
+ const DataFilesList = ReadResponse.data;
258
+ // Read all files from the directory
259
+ for (let i = 0; i < DataFilesList.length; i++) {
260
+ const ReadFileResponse = yield new FileManager_1.default().ReadFile(`${this.path}/${DataFilesList[i]}`);
261
+ // Check if the file is read successfully or not
262
+ if ("data" in ReadFileResponse) {
263
+ if (this.isEncrypted === true && this.cryptoInstance) {
264
+ // Decrypt the data if crypto is enabled
265
+ const ContaentResponse = yield this.cryptoInstance.decrypt(this.Converter.ToObject(ReadFileResponse.data));
266
+ // Store all Decrypted Data in AllData
267
+ this.AllData.push(this.Converter.ToObject(ContaentResponse));
268
+ }
269
+ else {
270
+ this.AllData.push(this.Converter.ToObject(ReadFileResponse.data));
271
+ }
272
+ }
273
+ else {
274
+ return this.ResponseHelper.Error(`Failed to read file: ${DataFilesList[i]}`);
275
+ }
276
+ }
277
+ // Lock the directory after reading all files
278
+ const lockResponse = yield new FolderManager_1.default().LockDirectory(this.path);
279
+ if ("data" in lockResponse) {
280
+ return this.ResponseHelper.Success(this.AllData);
281
+ }
282
+ else {
283
+ return this.ResponseHelper.Error(`Failed to lock directory: ${this.path}`);
284
+ }
285
+ }
286
+ return this.ResponseHelper.Error(`Failed to read directory: ${this.path}`);
287
+ }
288
+ else {
289
+ return this.ResponseHelper.Error(`Failed to unlock directory: ${this.path}`);
290
+ }
291
+ }
292
+ }
293
+ else {
294
+ return this.ResponseHelper.Error(isLocked);
295
+ }
296
+ }
297
+ catch (error) {
298
+ return this.ResponseHelper.Error(error);
299
+ }
300
+ });
301
+ }
302
+ }
303
+ exports.default = Aggregation;
304
+ //# sourceMappingURL=Aggregation.Operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Aggregation.Operation.js","sourceRoot":"","sources":["../../../source/Operation/Aggregation/Aggregation.Operation.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export default class Reader {
14
14
  private encryptionKey;
15
15
  private cryptoInstance?;
16
16
  private totalCount;
17
+ private project;
17
18
  private readonly ResponseHelper;
18
19
  private AllData;
19
20
  /**
@@ -55,6 +56,7 @@ export default class Reader {
55
56
  * @returns The Reader instance for method chaining
56
57
  */
57
58
  setCount(count: boolean): Reader;
59
+ setProject(project: object | any): Reader;
58
60
  /**
59
61
  * Loads all buffer raw data from the specified directory.
60
62
  *
@@ -82,4 +84,5 @@ export default class Reader {
82
84
  * @returns {Promise<SuccessInterface | ErrorInterface>} - A promise that resolves to a success interface containing the sliced data or the original data.
83
85
  */
84
86
  private ApplySkipAndLimit;
87
+ private ApplyProjection;
85
88
  }
@@ -42,6 +42,7 @@ class Reader {
42
42
  this.skip = 0;
43
43
  this.isEncrypted = isEncrypted;
44
44
  this.sort = {};
45
+ this.project = {};
45
46
  this.baseQuery = baseQuery;
46
47
  this.Converter = new Converter_helper_1.default();
47
48
  this.encryptionKey = encryptionKey;
@@ -95,6 +96,10 @@ class Reader {
95
96
  * @returns {Reader} - An instance of the Reader class.
96
97
  */
97
98
  Limit(limit) {
99
+ // Check if limit is a number or not
100
+ if (typeof limit !== "number") {
101
+ throw new Error("Limit should be a number");
102
+ }
98
103
  this.limit = limit;
99
104
  return this;
100
105
  }
@@ -104,6 +109,10 @@ class Reader {
104
109
  * @returns {Reader} - An instance of the Reader class.
105
110
  */
106
111
  Skip(skip) {
112
+ // Check if skip is a number or not
113
+ if (typeof skip !== "number") {
114
+ throw new Error("Skip should be a number");
115
+ }
107
116
  this.skip = skip;
108
117
  return this;
109
118
  }
@@ -113,6 +122,10 @@ class Reader {
113
122
  * @returns {Reader} - An instance of the Reader class.
114
123
  */
115
124
  Sort(sort) {
125
+ // check if sort is an object or not
126
+ if (typeof sort !== "object") {
127
+ throw new Error("Sort should be an object");
128
+ }
116
129
  this.sort = sort;
117
130
  return this;
118
131
  }
@@ -126,6 +139,14 @@ class Reader {
126
139
  this.totalCount = count;
127
140
  return this;
128
141
  }
142
+ setProject(project) {
143
+ // check if project is an object or not
144
+ if (typeof project !== "object") {
145
+ throw new Error("Project should be an object");
146
+ }
147
+ this.project = project;
148
+ return this;
149
+ }
129
150
  /**
130
151
  * Loads all buffer raw data from the specified directory.
131
152
  *
@@ -247,12 +268,30 @@ class Reader {
247
268
  // Apply Skip and Limit
248
269
  const limitedAndSkippedData = FinalData.slice(this.skip, this.skip + this.limit);
249
270
  if (this.totalCount) {
271
+ // Apply Projectd if total count is true
272
+ if (Object.keys(this.project).length !== 0) {
273
+ const projectionresponse = yield this.ApplyProjection(limitedAndSkippedData);
274
+ if ("data" in projectionresponse) {
275
+ return this.ResponseHelper.Success({
276
+ documents: projectionresponse.data.documents,
277
+ totalDocuments: FinalData.length,
278
+ });
279
+ }
280
+ }
250
281
  return this.ResponseHelper.Success({
251
282
  documents: limitedAndSkippedData,
252
283
  totalDocuments: limitedAndSkippedData.length,
253
284
  });
254
285
  }
255
286
  else {
287
+ if (Object.keys(this.project).length !== 0) {
288
+ const projectionresponse = yield this.ApplyProjection(limitedAndSkippedData);
289
+ if ("data" in projectionresponse) {
290
+ return this.ResponseHelper.Success({
291
+ documents: projectionresponse.data.documents,
292
+ });
293
+ }
294
+ }
256
295
  return this.ResponseHelper.Success({
257
296
  documents: limitedAndSkippedData,
258
297
  });
@@ -263,6 +302,29 @@ class Reader {
263
302
  });
264
303
  });
265
304
  }
305
+ // Apply Projection
306
+ ApplyProjection(FinalData) {
307
+ return __awaiter(this, void 0, void 0, function* () {
308
+ // Apply Project
309
+ if (Object.keys(this.project).length !== 0) {
310
+ const projectedData = FinalData.map((data) => {
311
+ const projectedObject = {};
312
+ Object.keys(this.project).forEach((key) => {
313
+ if (key in data) {
314
+ projectedObject[key] = data[key];
315
+ }
316
+ });
317
+ return projectedObject;
318
+ });
319
+ return this.ResponseHelper.Success({
320
+ documents: projectedData,
321
+ });
322
+ }
323
+ return this.ResponseHelper.Success({
324
+ documents: FinalData,
325
+ });
326
+ });
327
+ }
266
328
  }
267
329
  exports.default = Reader;
268
330
  //# sourceMappingURL=Reader.operation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Reader.operation.js","sourceRoot":"","sources":["../../../source/Operation/CRUD Operation/Reader.operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Reader.operation.js","sourceRoot":"","sources":["../../../source/Operation/CRUD Operation/Reader.operation.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { ErrorInterface, SuccessInterface } from "../../config/Interfaces/Helper/response.helper.interface";
2
2
  import Reader from "../CRUD Operation/Reader.operation";
3
3
  import DeleteOperation from "../CRUD Operation/Delete.operation";
4
- import { CryptoHelper } from "../../Helper/Crypto.helper";
5
4
  import UpdateOperation from "../CRUD Operation/Update.operation";
5
+ import Aggregation from "../Aggregation/Aggregation.Operation";
6
+ import { CryptoHelper } from "../../Helper/Crypto.helper";
6
7
  /**
7
8
  * Represents a collection inside a database.
8
9
  */
@@ -29,6 +30,18 @@ export default class Collection {
29
30
  * @returns {Reader} - An instance of the Reader class.
30
31
  */
31
32
  query(query: object | any): Reader;
33
+ /**
34
+ * Initiates an aggregation operation on the collection with the provided pipeline steps.
35
+ * @param {object[]} PipelineQuerySteps - The pipeline steps to be executed.
36
+ * @returns {Aggregation} - An instance of the Aggregation class.
37
+ * @throws {Error} Throws an error if the pipeline steps are empty.
38
+ * @example
39
+ * ```typescript
40
+ * // Aggregate the collection to get the total count of documents
41
+ * collection.aggregate([{$match: {}}, ${group: {_id: null, count: {$sum: 1}}}]).exec();
42
+ * ```
43
+ */
44
+ aggregate(PipelineQuerySteps: object[]): Aggregation;
32
45
  /**
33
46
  * Initiates a delete operation on the collection with the provided query.
34
47
  *
@@ -16,13 +16,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
16
16
  const Create_operation_1 = __importDefault(require("../CRUD Operation/Create.operation"));
17
17
  const Reader_operation_1 = __importDefault(require("../CRUD Operation/Reader.operation"));
18
18
  const Delete_operation_1 = __importDefault(require("../CRUD Operation/Delete.operation"));
19
+ const Update_operation_1 = __importDefault(require("../CRUD Operation/Update.operation"));
20
+ const Aggregation_Operation_1 = __importDefault(require("../Aggregation/Aggregation.Operation"));
19
21
  const outers_1 = require("outers");
20
22
  // Validator
21
23
  const validator_models_1 = __importDefault(require("../../Models/validator.models"));
22
24
  // Converter
23
25
  const Converter_helper_1 = __importDefault(require("../../Helper/Converter.helper"));
24
26
  const DataTypes_models_1 = require("../../Models/DataTypes.models");
25
- const Update_operation_1 = __importDefault(require("../CRUD Operation/Update.operation"));
26
27
  /**
27
28
  * Represents a collection inside a database.
28
29
  */
@@ -84,6 +85,24 @@ class Collection {
84
85
  // Read the data
85
86
  return new Reader_operation_1.default(this.name, this.path, query, this.isEncrypted, this.encryptionKey);
86
87
  }
88
+ /**
89
+ * Initiates an aggregation operation on the collection with the provided pipeline steps.
90
+ * @param {object[]} PipelineQuerySteps - The pipeline steps to be executed.
91
+ * @returns {Aggregation} - An instance of the Aggregation class.
92
+ * @throws {Error} Throws an error if the pipeline steps are empty.
93
+ * @example
94
+ * ```typescript
95
+ * // Aggregate the collection to get the total count of documents
96
+ * collection.aggregate([{$match: {}}, ${group: {_id: null, count: {$sum: 1}}}]).exec();
97
+ * ```
98
+ */
99
+ aggregate(PipelineQuerySteps) {
100
+ // Check if Pipeline Steps is valid Array of Object
101
+ if (!PipelineQuerySteps) {
102
+ throw new Error("Please provide valid Pipeline Steps");
103
+ }
104
+ return new Aggregation_Operation_1.default(this.name, this.path, PipelineQuerySteps, this.isEncrypted, this.encryptionKey);
105
+ }
87
106
  /**
88
107
  * Initiates a delete operation on the collection with the provided query.
89
108
  *
@@ -1 +1 @@
1
- {"version":3,"file":"collection.operation.js","sourceRoot":"","sources":["../../../source/Operation/Collection/collection.operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection.operation.js","sourceRoot":"","sources":["../../../source/Operation/Collection/collection.operation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "axiodb",
3
- "version": "1.4.1",
3
+ "version": "1.4.3",
4
4
  "description": "A fast, lightweight, and scalable open-source DBMS for modern apps. Supports JSON-based data storage, simple APIs, and secure data management. Ideal for projects needing efficient and flexible database solutions.",
5
5
  "main": "./lib/config/DB.js",
6
6
  "types": "./lib/config/DB.d.ts",