isite 2024.8.3 → 2024.8.6

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 (133) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +1384 -1387
  3. package/apps/charts/site_files/html/PieChart.html +35 -35
  4. package/apps/charts/site_files/html/PieChart2.html +35 -35
  5. package/apps/charts/site_files/html/XYChart.html +42 -42
  6. package/apps/charts/site_files/html/column.html +60 -60
  7. package/apps/charts/site_files/html/gauge.html +44 -44
  8. package/apps/charts/site_files/html/index.html +92 -92
  9. package/apps/charts/site_files/html/line-graph.html +42 -42
  10. package/apps/charts/site_files/html/pie-chart-rounded-corners.html +38 -38
  11. package/apps/charts/site_files/html/simple-3D-pie-chart.html +43 -43
  12. package/apps/charts/site_files/js/chart-animated.js +2 -2
  13. package/apps/charts/site_files/json/PieChart.json +41 -41
  14. package/apps/charts/site_files/json/PieChart2.json +23 -23
  15. package/apps/charts/site_files/json/XYChart.json +74 -74
  16. package/apps/charts/site_files/json/bar-chart.json +99 -99
  17. package/apps/charts/site_files/json/column-chart.json +80 -80
  18. package/apps/charts/site_files/json/gauge.json +36 -36
  19. package/apps/charts/site_files/json/line-graph.json +1867 -1867
  20. package/apps/charts/site_files/json/pie-chart-rounded-corners.json +42 -42
  21. package/apps/charts/site_files/json/simple-3D-pie-chart.json +50 -50
  22. package/apps/client-side/package-lock.json +5 -5
  23. package/apps/client-side/package.json +21 -21
  24. package/apps/client-side/site_files/css/bootstrap3.css +5 -5
  25. package/apps/client-side/site_files/css/bootstrap4.css +6 -6
  26. package/apps/client-side/site_files/css/bootstrap5.css +6 -6
  27. package/apps/client-side/site_files/css/checkbox.css +125 -125
  28. package/apps/client-side/site_files/css/font-awesome.css +4616 -4616
  29. package/apps/client-side/site_files/css/font-awesome.min.css +4 -4
  30. package/apps/client-side/site_files/css/fonts.css +85 -85
  31. package/apps/client-side/site_files/css/help.css +51 -51
  32. package/apps/client-side/site_files/css/main-menu.css +66 -66
  33. package/apps/client-side/site_files/css/print.css +144 -144
  34. package/apps/client-side/site_files/css/prism.css +139 -139
  35. package/apps/client-side/site_files/css/progress.css +7 -7
  36. package/apps/client-side/site_files/css/radio.css +103 -103
  37. package/apps/client-side/site_files/css/scrollbar.css +13 -13
  38. package/apps/client-side/site_files/css/semantic.css +363 -363
  39. package/apps/client-side/site_files/css/table.css +87 -87
  40. package/apps/client-side/site_files/css/treeview.css +84 -84
  41. package/apps/client-side/site_files/css/ui.css +28 -28
  42. package/apps/client-side/site_files/css/video-js.min.css +1 -0
  43. package/apps/client-side/site_files/fonts/fontawesome-webfont.svg +2671 -2671
  44. package/apps/client-side/site_files/fonts/glyphicons-halflings-regular.svg +287 -287
  45. package/apps/client-side/site_files/fonts/icons.svg +684 -684
  46. package/apps/client-side/site_files/js/Youtube.min.js +1 -0
  47. package/apps/client-side/site_files/js/angular-animate.js +4179 -4179
  48. package/apps/client-side/site_files/js/angular.js +36599 -36599
  49. package/apps/client-side/site_files/js/angular.min.js +351 -351
  50. package/apps/client-side/site_files/js/angular.min.js.map +8 -8
  51. package/apps/client-side/site_files/js/barcode.js +1 -1
  52. package/apps/client-side/site_files/js/base64.js +319 -319
  53. package/apps/client-side/site_files/js/bootstrap-5-directive.js +1456 -1456
  54. package/apps/client-side/site_files/js/bootstrap3.js +6 -6
  55. package/apps/client-side/site_files/js/bootstrap4.js +6 -6
  56. package/apps/client-side/site_files/js/bootstrap5.js +6 -6
  57. package/apps/client-side/site_files/js/custom.js +149 -149
  58. package/apps/client-side/site_files/js/directive.min.js +1 -1
  59. package/apps/client-side/site_files/js/hijri.js +965 -965
  60. package/apps/client-side/site_files/js/jquery.js +2 -2
  61. package/apps/client-side/site_files/js/moment.js +4511 -4511
  62. package/apps/client-side/site_files/js/prism.js +6 -6
  63. package/apps/client-side/site_files/js/qrcode.js +1398 -1398
  64. package/apps/client-side/site_files/js/semantic.js +10 -10
  65. package/apps/client-side/site_files/js/video.min.js +53 -0
  66. package/apps/client-side/site_files/js/xlsx.js +23 -23
  67. package/apps/client-side/site_files/semantic-themes/default/assets/fonts/brand-icons.svg +1008 -1008
  68. package/apps/client-side/site_files/semantic-themes/default/assets/fonts/icons.svg +1518 -1518
  69. package/apps/client-side/site_files/semantic-themes/default/assets/fonts/outline-icons.svg +366 -366
  70. package/apps/client-side/site_files/webfonts/fa-brands-400.svg +3717 -3717
  71. package/apps/client-side/site_files/webfonts/fa-regular-400.svg +801 -801
  72. package/apps/client-side/site_files/webfonts/fa-solid-900.svg +5034 -5034
  73. package/apps/security/README.md +12 -12
  74. package/apps/security/app.js +288 -288
  75. package/apps/security/libs/notifications.js +89 -89
  76. package/apps/security/site_files/html/add_modal.html +36 -36
  77. package/apps/security/site_files/html/content.html +36 -36
  78. package/apps/security/site_files/html/delete_modal.html +31 -31
  79. package/apps/security/site_files/html/head.html +7 -7
  80. package/apps/security/site_files/html/index.html +80 -80
  81. package/apps/security/site_files/html/login_modal.html +24 -24
  82. package/apps/security/site_files/html/logout_modal.html +21 -21
  83. package/apps/security/site_files/html/navbar.html +8 -8
  84. package/apps/security/site_files/html/register_modal.html +32 -32
  85. package/apps/security/site_files/html/update_modal.html +28 -28
  86. package/apps/security/site_files/html/view.html +74 -74
  87. package/apps/security/site_files/html/view_modal.html +32 -32
  88. package/apps/security/site_files/js/app.js +1 -1
  89. package/apps/security/site_files/js/index.js +278 -278
  90. package/apps/security/site_files/js/login.js +35 -35
  91. package/apps/security/site_files/js/logout.js +22 -22
  92. package/apps/security/site_files/js/navbar.js +26 -26
  93. package/apps/security/site_files/js/register.js +30 -30
  94. package/apps/security/site_files/json/permissions.json +7 -7
  95. package/apps/security/site_files/json/roles.json +33 -33
  96. package/apps/security/site_files/json/words.json +28 -28
  97. package/gulpfile.js +17 -17
  98. package/index.js +1 -1
  99. package/isite.postman_collection.json +7 -7
  100. package/isite_files/css/bootstrap.css +5 -5
  101. package/isite_files/css/font-awesome.css +4 -4
  102. package/isite_files/css/prism.css +139 -139
  103. package/isite_files/fonts/fontawesome-webfont.svg +2671 -2671
  104. package/isite_files/fonts/glyphicons-halflings-regular.svg +287 -287
  105. package/isite_files/html/files.html +9 -9
  106. package/isite_files/html/head.html +12 -12
  107. package/isite_files/html/index.html +30 -30
  108. package/isite_files/html/installing.html +27 -27
  109. package/isite_files/html/navbar.html +51 -51
  110. package/isite_files/html/routes.html +13 -13
  111. package/isite_files/html/sessions.html +13 -13
  112. package/isite_files/html/vars.html +9 -9
  113. package/isite_files/js/angular.js +334 -334
  114. package/isite_files/js/bootstrap.js +6 -6
  115. package/isite_files/js/custom.js +149 -149
  116. package/isite_files/js/jquery.js +4 -4
  117. package/isite_files/js/prism.js +6 -6
  118. package/lib/README.md +1 -1
  119. package/lib/collection.js +111 -17
  120. package/lib/cookie.js +81 -81
  121. package/lib/dashboard.js +189 -189
  122. package/lib/eval.js +48 -0
  123. package/lib/mongodb.js +819 -686
  124. package/lib/parser.js +910 -910
  125. package/lib/security.js +61 -61
  126. package/lib/session.js +153 -158
  127. package/lib/sessions.js +14 -30
  128. package/lib/ws.js +2 -2
  129. package/object-options/index.js +3 -3
  130. package/object-options/lib/fn.js +1 -1
  131. package/object-options/lib/isite.code-workspace +10 -10
  132. package/package.json +58 -55
  133. package/ssl/create_ssl.sh +3 -3
package/lib/mongodb.js CHANGED
@@ -1,686 +1,819 @@
1
- module.exports = function init(____0) {
2
- const mongodb = require('mongodb');
3
- const mongoClient = mongodb.MongoClient;
4
-
5
- let url = '';
6
- if (!____0.options.mongodb.url) {
7
- url = ____0.options.mongodb.host + ':' + ____0.options.mongodb.port;
8
- if (____0.options.mongodb.userName && ____0.options.mongodb.password) {
9
- url = encodeURIComponent(____0.options.mongodb.userName) + ':' + encodeURIComponent(____0.options.mongodb.password) + '@' + ____0.options.mongodb.host + ':' + ____0.options.mongodb.port;
10
- }
11
- url = ____0.options.mongodb.protocal + url;
12
- } else {
13
- url = encodeURI(____0.options.mongodb.url);
14
- }
15
-
16
- const _mongo = function () {};
17
-
18
- _mongo.lib = mongodb;
19
- _mongo.ObjectID = mongodb.ObjectID;
20
- _mongo.client = mongoClient;
21
- _mongo.connection = url;
22
- _mongo.collections_indexed = [];
23
-
24
- //ulimit -n 10000
25
- _mongo.dbList = [];
26
-
27
- _mongo.connections = [];
28
- _mongo.closeDbBusy = !1;
29
- ____0.on('[close-database]', (args, callback) => {
30
- callback = callback || function () {};
31
-
32
- if (_mongo.closeDbBusy == !0) {
33
- setTimeout(() => {
34
- ____0.call('[close-database]', args, callback);
35
- }, 2000);
36
- return;
37
- }
38
-
39
- if (_mongo.connections.length === 0) {
40
- callback();
41
- return;
42
- }
43
-
44
- _mongo.closeDbBusy = !0;
45
- console.log('Closing mongodb Connection Count : ' + _mongo.connections.length);
46
- for (let i = 0; i < _mongo.connections.length; i++) {
47
- console.log('Closing Database : ' + _mongo.connections[i].name);
48
- _mongo.connections[i].client.close();
49
- }
50
-
51
- setTimeout(() => {
52
- _mongo.closeDbBusy = !1;
53
- callback();
54
- }, 1000);
55
- });
56
-
57
- _mongo.handleDoc = function (doc, isProperty = false) {
58
- if (!doc) {
59
- return doc;
60
- }
61
-
62
- if (Array.isArray(doc)) {
63
- doc.forEach((v, i) => {
64
- doc[i] = _mongo.handleDoc(v, true);
65
- });
66
- return doc;
67
- } else if (typeof doc === 'object') {
68
- for (let key in doc) {
69
- if (typeof key === 'string' && key.indexOf('$') === 0) {
70
- delete doc[key];
71
- } else if (typeof doc[key] === 'string' && ____0.fn.isDate(doc[key])) {
72
- doc[key] = new Date(doc[key]);
73
- } else if (Array.isArray(doc[key])) {
74
- doc[key].forEach((v, i) => {
75
- doc[key][i] = _mongo.handleDoc(v, true);
76
- });
77
- } else if (typeof doc[key] === 'object') {
78
- doc[key] = _mongo.handleDoc(doc[key], true);
79
- }
80
- }
81
- }
82
-
83
- return isProperty ? doc : { ...doc };
84
- };
85
-
86
- _mongo.connectDBBusy = !1;
87
- _mongo.connectDB = function (name, callback) {
88
- if (_mongo.connectDBBusy === !0) {
89
- setTimeout(() => {
90
- _mongo.connectDB(name, callback);
91
- }, 100);
92
- return;
93
- }
94
-
95
- _mongo.connectDBBusy = !0;
96
-
97
- if (name === undefined) {
98
- name = ____0.options.mongodb.db;
99
- }
100
-
101
- if (____0.options.mongodb.enabled) {
102
- for (let i = 0; i < _mongo.connections.length; i++) {
103
- if (_mongo.connections[i].name === name) {
104
- callback(null, _mongo.connections[i].db);
105
- _mongo.connectDBBusy = !1;
106
- return;
107
- }
108
- }
109
-
110
- let db_name = ____0.options.mongodb.prefix.db + name;
111
- let db_url = _mongo.connection;
112
- ____0.log('\n ( Connecting DB : ' + db_url + ' ) \n');
113
- _mongo.client.connect(
114
- db_url,
115
- {
116
- serverSelectionTimeoutMS: 1000 * 60,
117
- connectTimeoutMS: 1000 * 60,
118
- socketTimeoutMS: 1000 * 60 * 5,
119
- ...____0.options.mongodb.config,
120
- },
121
- function (err, client) {
122
- if (!err) {
123
- const db = client.db(db_name);
124
-
125
- _mongo.connections.push({
126
- name: name,
127
- url: db_url,
128
- db: db,
129
- client: client,
130
- connected: !0,
131
- });
132
- ____0.log('\n ( Connected DB : ' + db_name + ' ) : ' + db_url + '\n');
133
- callback(err, db);
134
- } else {
135
- err.message += ' , ' + db_url;
136
- ____0.log('\n ( Connected DB Error: ' + err.message + ' ) \n');
137
- callback(err, null);
138
- }
139
- _mongo.connectDBBusy = !1;
140
- }
141
- );
142
- } else {
143
- callback(
144
- {
145
- message: 'mongodb Not Enabled',
146
- },
147
- null
148
- );
149
- _mongo.connectDBBusy = !1;
150
- }
151
- };
152
-
153
- _mongo.createIndex = function (options, callback) {
154
- _mongo.connectDB(options.dbName, function (err, db) {
155
- if (!err) {
156
- if (options.collectionName === undefined) {
157
- options.collectionName = ____0.options.mongodb.collection;
158
- }
159
-
160
- db.collection(____0.options.mongodb.prefix.collection + options.collectionName).createIndex(options.obj, options.option, function (err, result) {
161
- if (!err) {
162
- callback(null, result);
163
- if (____0.options.mongodb.events) {
164
- ____0.call('mongodb after create index', {
165
- db: options.dbName,
166
- collection: options.collectionName,
167
- obj: options.obj,
168
- });
169
- }
170
- } else {
171
- callback(err);
172
- }
173
- });
174
- } else {
175
- callback(err);
176
- }
177
- });
178
- };
179
-
180
- _mongo.aggregate = function (obj, callback) {
181
- _mongo.connectDB(obj.dbName, function (err, db) {
182
- if (!err) {
183
- if (obj.collectionName === undefined) {
184
- obj.collectionName = ____0.options.mongodb.collection;
185
- }
186
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
187
- .aggregate(obj.arr)
188
- .toArray(function (err, docs) {
189
- if (!err) {
190
- callback(null, docs);
191
- } else {
192
- callback(err);
193
- }
194
- });
195
- } else {
196
- callback(err);
197
- }
198
- });
199
- };
200
-
201
- _mongo.dropCollection = function (obj, callback) {
202
- _mongo.connectDB(obj.dbName, function (err, db) {
203
- if (!err) {
204
- if (obj.collectionName === undefined) {
205
- obj.collectionName = ____0.options.mongodb.collection;
206
- }
207
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName).drop(function (err, delOK) {
208
- if (!err) {
209
- callback(null, delOK);
210
- } else {
211
- callback(err);
212
- }
213
- });
214
- } else {
215
- callback(err);
216
- }
217
- });
218
- };
219
-
220
- _mongo.insertOneAsyncBusy = !1;
221
- _mongo.insertOneAsyncList = [];
222
- _mongo.insertOneAsync = function (obj, callback) {
223
- if (obj) {
224
- _mongo.insertOneAsyncList.push({
225
- obj: obj,
226
- callback: callback,
227
- });
228
- _mongo.insertOneAsync(null);
229
- } else {
230
- if (_mongo.insertOneAsyncBusy) {
231
- return;
232
- }
233
-
234
- var _obj = _mongo.insertOneAsyncList[0];
235
- if (_obj) {
236
- _mongo.insertOneAsyncBusy = !0;
237
- _mongo.insertOne(_obj.obj, function (err, obj) {
238
- _mongo.insertOneAsyncList.splice(0, 1);
239
- _obj.callback(err, obj);
240
- _mongo.insertOneAsyncBusy = !1;
241
- _mongo.insertOneAsync(null);
242
- });
243
- }
244
- }
245
- };
246
-
247
- _mongo.insertOne = function (obj, callback) {
248
- callback = callback || function () {};
249
- _mongo.connectDB(obj.dbName, function (err, db) {
250
- if (!err) {
251
- if (obj.collectionName === undefined) {
252
- obj.collectionName = ____0.options.mongodb.collection;
253
- }
254
-
255
- obj.doc = _mongo.handleDoc(obj.doc);
256
-
257
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName).insertOne(obj.doc, function (err, result) {
258
- if (!err) {
259
- callback(null, { ...obj.doc, _id: result.insertedId }, result);
260
- if (____0.options.mongodb.events) {
261
- ____0.call('mongodb after insert', {
262
- db: obj.dbName,
263
- collection: obj.collectionName,
264
- doc: result,
265
- });
266
- }
267
- } else {
268
- if (callback) {
269
- callback(err);
270
- }
271
- }
272
- });
273
- } else {
274
- if (callback) {
275
- callback(err);
276
- }
277
- }
278
- });
279
- };
280
-
281
- _mongo.insert = _mongo.insertMany = function (obj, callback) {
282
- if (!obj.docs || obj.docs.length === 0) {
283
- callback({
284
- message: 'docs array length is 0',
285
- });
286
- return;
287
- }
288
- _mongo.connectDB(obj.dbName, function (err, db) {
289
- if (!err) {
290
- if (!obj.collectionName) {
291
- obj.collectionName = ____0.options.mongodb.collection;
292
- }
293
- obj.docs.forEach((doc, i) => {
294
- obj.docs[i] = _mongo.handleDoc(doc);
295
- });
296
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName).insertMany(obj.docs, obj.options, function (err, result) {
297
- if (!err) {
298
- callback(null, obj.docs, result);
299
- if (____0.options.mongodb.events) {
300
- ____0.call('mongodb after insert many', {
301
- db: obj.dbName,
302
- collection: obj.collectionName,
303
- docs: obj.docs,
304
- });
305
- }
306
- } else {
307
- console.error(' _mongo.insertMany() ', err.message);
308
- callback(err, obj.docs, result);
309
- }
310
- });
311
- } else {
312
- console.error(' _mongo.insertMany() ', err.message);
313
- callback(err);
314
- }
315
- });
316
- };
317
-
318
- _mongo.findOne = function (obj, callback) {
319
- callback = callback || function () {};
320
-
321
- _mongo.connectDB(obj.dbName, function (err, db) {
322
- if (!err) {
323
- if (obj.collectionName === undefined) {
324
- obj.collectionName = ____0.options.mongodb.collection;
325
- }
326
-
327
- if (obj.where === undefined) {
328
- callback({
329
- message: 'where not set',
330
- });
331
- return;
332
- }
333
-
334
- if (typeof obj.where === 'string') {
335
- obj.where = {
336
- _id: _mongo.ObjectID(obj.where),
337
- };
338
- }
339
-
340
- if (typeof obj.where._id === 'string') {
341
- obj.where._id = _mongo.ObjectID(obj.where._id);
342
- }
343
-
344
- if (obj.select === undefined) {
345
- obj.select = {};
346
- }
347
-
348
- let options = {
349
- projection: obj.select || {},
350
- limit: 1,
351
- skip: null,
352
- sort: null,
353
- };
354
-
355
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName).findOne(obj.where, options, function (err, doc) {
356
- if (!err) {
357
- callback(null, doc);
358
- if (____0.options.mongodb.events) {
359
- ____0.call('mongodb after find', {
360
- db: obj.dbName,
361
- collection: obj.collectionName,
362
- doc: doc,
363
- });
364
- }
365
- } else {
366
- callback(err);
367
- }
368
- });
369
- } else {
370
- callback(err);
371
- }
372
- });
373
- };
374
-
375
- _mongo.find = _mongo.findMany = function (obj, callback) {
376
- _mongo.connectDB(obj.dbName, function (err, db) {
377
- if (!err) {
378
- if (obj.collectionName === undefined) {
379
- obj.collectionName = ____0.options.mongodb.collection;
380
- }
381
-
382
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName).countDocuments(obj.where, function (err, count) {
383
- if (err) {
384
- callback(err, [], 0);
385
- return;
386
- }
387
-
388
- if (count > 0) {
389
- let options = {
390
- projection: obj.select || {},
391
- limit: obj.limit ? parseInt(obj.limit) : ____0.options.mongodb.limit,
392
- skip: obj.skip ? parseInt(obj.skip) : 0,
393
- sort: obj.sort || null,
394
- };
395
-
396
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
397
- .find(obj.where, options)
398
- .toArray(function (err, docs) {
399
- if (!err) {
400
- callback(null, docs, count);
401
- if (____0.options.mongodb.events) {
402
- ____0.call('mongodb after find many', {
403
- db: obj.dbName,
404
- collection: obj.collectionName,
405
- docs: docs,
406
- });
407
- }
408
- } else {
409
- callback(err, [], 0);
410
- }
411
- });
412
- } else {
413
- callback(null, [], count);
414
- }
415
- });
416
- } else {
417
- callback(err);
418
- }
419
- });
420
- };
421
-
422
- _mongo.distinct = function (obj, callback) {
423
- _mongo.connectDB(obj.dbName, function (err, db) {
424
- if (!err) {
425
- if (obj.collectionName === undefined) {
426
- obj.collectionName = ____0.options.mongodb.collection;
427
- }
428
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName).distinct(obj.field, function (err, docs) {
429
- if (!err) {
430
- callback(null, docs);
431
- } else {
432
- callback(err);
433
- }
434
- });
435
- } else {
436
- callback(err);
437
- }
438
- });
439
- };
440
-
441
- _mongo.updateOne = function (obj, callback) {
442
- callback = callback || function () {};
443
-
444
- _mongo.connectDB(obj.dbName, function (err, db) {
445
- if (!err) {
446
- if (obj.collectionName === undefined) {
447
- obj.collectionName = ____0.options.mongodb.collection;
448
- }
449
-
450
- if (obj.where && obj.where._id && typeof obj.where._id === 'string') {
451
- obj.where._id = _mongo.ObjectID(obj.where._id);
452
- }
453
-
454
- let $update = {};
455
- if (obj.set) {
456
- $update.$set = obj.set;
457
- if ($update.$set._id) {
458
- delete $update.$set._id;
459
- }
460
- $update.$set = _mongo.handleDoc($update.$set);
461
- }
462
- if (obj.unset) {
463
- $update.$unset = obj.unset;
464
- }
465
- if (obj.rename) {
466
- $update.$rename = obj.rename;
467
- }
468
- _mongo.findOne(
469
- {
470
- dbName: obj.dbName,
471
- collectionName: obj.collectionName,
472
- where: obj.where,
473
- },
474
- (err, doc) => {
475
- if (!err) {
476
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName).updateOne(obj.where, $update, function (err, result) {
477
- if (!err) {
478
- _mongo.findOne(
479
- {
480
- dbName: obj.dbName,
481
- collectionName: obj.collectionName,
482
- where: obj.where,
483
- },
484
- (err2, doc2) => {
485
- callback(
486
- null,
487
- {
488
- doc: doc2,
489
- old_doc: doc,
490
- where: obj.where,
491
- update: $update,
492
- db: obj.dbName,
493
- collection: obj.collectionName,
494
- },
495
- result
496
- );
497
- if (____0.options.mongodb.events) {
498
- ____0.call('mongodb after update', {
499
- db: obj.dbName,
500
- collection: obj.collectionName,
501
- doc: doc2,
502
- old_doc: doc,
503
- where: obj.where,
504
- update: $update,
505
- });
506
- }
507
- }
508
- );
509
- } else {
510
- callback(err);
511
- }
512
- });
513
- } else {
514
- callback(err);
515
- }
516
- }
517
- );
518
- } else {
519
- callback(err);
520
- }
521
- });
522
- };
523
-
524
- _mongo.update = _mongo.updateMany = function (obj, callback) {
525
- _mongo.connectDB(obj.dbName, function (err, db) {
526
- if (!err) {
527
- if (obj.collectionName === undefined) {
528
- obj.collectionName = ____0.options.mongodb.collection;
529
- }
530
-
531
- let $update = {};
532
- if (obj.set) {
533
- $update.$set = obj.set;
534
- }
535
- if (obj.unset) {
536
- $update.$unset = obj.unset;
537
- }
538
- if (obj.rename) {
539
- $update.$rename = obj.rename;
540
- }
541
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName).updateMany(obj.where, $update, function (err, result) {
542
- if (!err) {
543
- callback(
544
- null,
545
- {
546
- result: result,
547
- exists: result.result?.n,
548
- count: result.result?.nModified,
549
- ok: result.result?.ok,
550
- where: obj.where,
551
- update: $update,
552
- },
553
- result
554
- );
555
- if (____0.options.mongodb.events) {
556
- ____0.call('mongodb after update many', {
557
- db: obj.dbName,
558
- collection: obj.collectionName,
559
- exists: result.result?.n,
560
- count: result.result?.nModified,
561
- ok: result.result?.ok,
562
- where: obj.where,
563
- update: $update,
564
- });
565
- }
566
- } else {
567
- callback(err);
568
- }
569
- });
570
- } else {
571
- callback(err);
572
- }
573
- });
574
- };
575
-
576
- _mongo.deleteOne = function (obj, callback) {
577
- _mongo.connectDB(obj.dbName, function (err, db) {
578
- if (!err) {
579
- if (obj.collectionName === undefined) {
580
- obj.collectionName = ____0.options.mongodb.collection;
581
- }
582
-
583
- _mongo.findOne(
584
- {
585
- where: obj.where,
586
- select: {},
587
- collectionName: obj.collectionName,
588
- dbName: obj.dbName,
589
- },
590
- function (err, doc) {
591
- if (!err && doc) {
592
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName).deleteOne(obj.where, function (err, result) {
593
- if (!err) {
594
- callback(
595
- null,
596
- {
597
- db: obj.dbName,
598
- collection: obj.collectionName,
599
- count: result.deletedCount,
600
- doc: doc,
601
- },
602
- result
603
- );
604
- if (____0.options.mongodb.events) {
605
- ____0.call('mongodb after delete', {
606
- db: obj.dbName,
607
- collection: obj.collectionName,
608
- doc: doc,
609
- });
610
- }
611
- } else {
612
- callback(err);
613
- }
614
- });
615
- } else {
616
- callback({
617
- message: 'Not Exists : ' + JSON.stringify(obj.where),
618
- });
619
- }
620
- }
621
- );
622
- } else {
623
- callback(err);
624
- }
625
- });
626
- };
627
-
628
- _mongo.delete = _mongo.deleteMany = function (obj, callback) {
629
- callback = callback || function () {};
630
-
631
- if (obj.where === undefined) {
632
- callback(
633
- {
634
- message: 'where not set',
635
- },
636
- {
637
- db: obj.dbName,
638
- collection: obj.collectionName,
639
-
640
- count: 0,
641
- ok: 0,
642
- exists: 0,
643
- },
644
- result
645
- );
646
- return;
647
- }
648
-
649
- _mongo.connectDB(obj.dbName, function (err, db) {
650
- if (!err) {
651
- if (obj.collectionName === undefined) {
652
- obj.collectionName = ____0.options.mongodb.collection;
653
- }
654
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName).deleteMany(obj.where, function (err, result) {
655
- if (!err) {
656
- callback(
657
- null,
658
- {
659
- db: obj.dbName,
660
- collection: obj.collectionName,
661
-
662
- count: result.deletedCount,
663
- },
664
- result
665
- );
666
- if (____0.options.mongodb.events) {
667
- ____0.call('mongodb after delete many', {
668
- db: obj.dbName,
669
- collection: obj.collectionName,
670
-
671
- where: obj.where,
672
- count: result.deletedCount,
673
- });
674
- }
675
- } else {
676
- callback(err);
677
- }
678
- });
679
- } else {
680
- callback(err);
681
- }
682
- });
683
- };
684
-
685
- return _mongo;
686
- };
1
+ module.exports = function init(____0) {
2
+ const mongodb = require('mongodb');
3
+
4
+ let url = '';
5
+ if (!____0.options.mongodb.url) {
6
+ url = ____0.options.mongodb.host + ':' + ____0.options.mongodb.port;
7
+ if (____0.options.mongodb.username && ____0.options.mongodb.password) {
8
+ url = encodeURIComponent(____0.options.mongodb.username) + ':' + encodeURIComponent(____0.options.mongodb.password) + '@' + ____0.options.mongodb.host + ':' + ____0.options.mongodb.port;
9
+ }
10
+ url = ____0.options.mongodb.protocal + url;
11
+ } else {
12
+ url = encodeURI(____0.options.mongodb.url);
13
+ }
14
+
15
+ const _mongo = function () {};
16
+
17
+ _mongo.lib = mongodb;
18
+
19
+ _mongo.ObjectID = mongodb.ObjectId;
20
+ _mongo.connection = url;
21
+ _mongo.collections_indexed = [];
22
+
23
+ //ulimit -n 10000
24
+ _mongo.dbList = [];
25
+
26
+ _mongo.connections = [];
27
+ _mongo.closeDbBusy = !1;
28
+ ____0.on('[close-database]', (args, callback) => {
29
+ callback = callback || function () {};
30
+
31
+ if (_mongo.closeDbBusy == !0) {
32
+ setTimeout(() => {
33
+ ____0.call('[close-database]', args, callback);
34
+ }, 2000);
35
+ return;
36
+ }
37
+
38
+ if (_mongo.connections.length === 0) {
39
+ callback();
40
+ return;
41
+ }
42
+
43
+ _mongo.closeDbBusy = !0;
44
+ console.log('Closing mongodb Connection Count : ' + _mongo.connections.length);
45
+ for (let i = 0; i < _mongo.connections.length; i++) {
46
+ console.log('Closing Database : ' + _mongo.connections[i].name);
47
+ _mongo.connections[i].client.close();
48
+ }
49
+
50
+ setTimeout(() => {
51
+ _mongo.closeDbBusy = !1;
52
+ callback();
53
+ }, 1000);
54
+ });
55
+
56
+ _mongo.handleDoc = function (doc, isProperty = false) {
57
+ if (!doc) {
58
+ return doc;
59
+ }
60
+
61
+ if (Array.isArray(doc)) {
62
+ doc.forEach((v, i) => {
63
+ doc[i] = _mongo.handleDoc(v, true);
64
+ });
65
+ return doc;
66
+ } else if (typeof doc === 'object') {
67
+ for (let key in doc) {
68
+ if (typeof key === 'string' && key.indexOf('$') === 0) {
69
+ delete doc[key];
70
+ } else if (typeof doc[key] === 'string' && ____0.fn.isDate(doc[key])) {
71
+ doc[key] = new Date(doc[key]);
72
+ } else if (Array.isArray(doc[key])) {
73
+ doc[key].forEach((v, i) => {
74
+ doc[key][i] = _mongo.handleDoc(v, true);
75
+ });
76
+ } else if (typeof doc[key] === 'object') {
77
+ doc[key] = _mongo.handleDoc(doc[key], true);
78
+ }
79
+ }
80
+ }
81
+
82
+ return isProperty ? doc : { ...doc };
83
+ };
84
+
85
+ _mongo.connectDBBusy = !1;
86
+ _mongo.connectDB = async function (name, callback) {
87
+ if (_mongo.connectDBBusy === !0) {
88
+ setTimeout(() => {
89
+ _mongo.connectDB(name, callback);
90
+ }, 100);
91
+ return;
92
+ }
93
+
94
+ _mongo.connectDBBusy = !0;
95
+
96
+ if (name === undefined) {
97
+ name = ____0.options.mongodb.db;
98
+ }
99
+
100
+ if (!____0.options.mongodb.enabled) {
101
+ callback(
102
+ {
103
+ message: 'mongodb Not Enabled',
104
+ },
105
+ null
106
+ );
107
+ _mongo.connectDBBusy = !1;
108
+ return;
109
+ }
110
+
111
+ for (let i = 0; i < _mongo.connections.length; i++) {
112
+ if (_mongo.connections[i].name === name) {
113
+ callback(null, _mongo.connections[i].db);
114
+ _mongo.connectDBBusy = !1;
115
+ return;
116
+ }
117
+ }
118
+
119
+ let db_name = ____0.options.mongodb.prefix.db + name;
120
+ let db_url = _mongo.connection;
121
+ ____0.log('\n ( Connecting DB : ' + db_url + ' ) \n');
122
+ const mongodbClient = new mongodb.MongoClient(db_url, {
123
+ serverSelectionTimeoutMS: 1000 * 60,
124
+ connectTimeoutMS: 1000 * 60,
125
+ socketTimeoutMS: 1000 * 60 * 5,
126
+ ...____0.options.mongodb.config,
127
+ });
128
+ mongodbClient
129
+ .connect()
130
+ .then((client) => {
131
+ if (client) {
132
+ const db = client.db(db_name);
133
+
134
+ _mongo.connections.push({
135
+ name: name,
136
+ url: db_url,
137
+ db: db,
138
+ client: client,
139
+ connected: !0,
140
+ });
141
+ ____0.log('\n ( Connected DB : ' + db_name + ' ) : ' + db_url + '\n');
142
+ callback(null, db);
143
+ } else {
144
+ err.message += ' , ' + db_url;
145
+ ____0.log('\n ( Connected DB Error: ' + err.message + ' ) \n');
146
+ ____0.log(err);
147
+ callback(err, null);
148
+ }
149
+ _mongo.connectDBBusy = !1;
150
+ })
151
+ .catch((err) => {
152
+ ____0.log(err);
153
+ callback(err, null);
154
+ });
155
+ };
156
+
157
+ _mongo.createIndex = function (options, callback) {
158
+ callback =
159
+ callback ||
160
+ function (...args) {
161
+ console.log(args);
162
+ };
163
+ _mongo.connectDB(options.dbName, function (err, db) {
164
+ if (!err) {
165
+ if (options.collectionName === undefined) {
166
+ options.collectionName = ____0.options.mongodb.collection;
167
+ }
168
+
169
+ db.collection(____0.options.mongodb.prefix.collection + options.collectionName)
170
+ .createIndex(options.obj, options.option)
171
+ .then((result) => {
172
+ callback(null, result);
173
+ if (____0.options.mongodb.events) {
174
+ ____0.call('mongodb after create index', {
175
+ db: options.dbName,
176
+ collection: options.collectionName,
177
+ obj: options.obj,
178
+ });
179
+ }
180
+ })
181
+ .catch((err) => {
182
+ callback(err);
183
+ });
184
+ } else {
185
+ callback(err);
186
+ }
187
+ });
188
+ };
189
+ _mongo.dropIndex = function (options, callback) {
190
+ callback =
191
+ callback ||
192
+ function (...args) {
193
+ console.log(args);
194
+ };
195
+ _mongo.connectDB(options.dbName, function (err, db) {
196
+ if (!err) {
197
+ if (options.collectionName === undefined) {
198
+ options.collectionName = ____0.options.mongodb.collection;
199
+ }
200
+
201
+ db.collection(____0.options.mongodb.prefix.collection + options.collectionName)
202
+ .dropIndex(options.obj, options.option)
203
+ .then((result) => {
204
+ callback(null, result);
205
+ if (____0.options.mongodb.events) {
206
+ ____0.call('mongodb after drop index', {
207
+ db: options.dbName,
208
+ collection: options.collectionName,
209
+ obj: options.obj,
210
+ });
211
+ }
212
+ })
213
+ .catch((err) => {
214
+ callback(err);
215
+ });
216
+ } else {
217
+ callback(err);
218
+ }
219
+ });
220
+ };
221
+ _mongo.dropIndexes = function (options, callback) {
222
+ callback =
223
+ callback ||
224
+ function (...args) {
225
+ console.log(args);
226
+ };
227
+ _mongo.connectDB(options.dbName, function (err, db) {
228
+ if (!err) {
229
+ if (options.collectionName === undefined) {
230
+ options.collectionName = ____0.options.mongodb.collection;
231
+ }
232
+
233
+ db.collection(____0.options.mongodb.prefix.collection + options.collectionName)
234
+ .dropIndexes()
235
+ .then((result) => {
236
+ callback(null, result);
237
+ if (____0.options.mongodb.events) {
238
+ ____0.call('mongodb after drop index', {
239
+ db: options.dbName,
240
+ collection: options.collectionName,
241
+ obj: options.obj,
242
+ });
243
+ }
244
+ })
245
+ .catch((err) => {
246
+ callback(err);
247
+ });
248
+ } else {
249
+ callback(err);
250
+ }
251
+ });
252
+ };
253
+ _mongo.aggregate = function (obj, callback) {
254
+ callback =
255
+ callback ||
256
+ function (...args) {
257
+ console.log(args);
258
+ };
259
+ _mongo.connectDB(obj.dbName, function (err, db) {
260
+ if (!err) {
261
+ if (obj.collectionName === undefined) {
262
+ obj.collectionName = ____0.options.mongodb.collection;
263
+ }
264
+ db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
265
+ .aggregate(obj.arr)
266
+ .toArray()
267
+ .then((docs) => {
268
+ callback(null, docs);
269
+ })
270
+ .catch((err) => {
271
+ callback(err);
272
+ });
273
+ } else {
274
+ callback(err);
275
+ }
276
+ });
277
+ };
278
+
279
+ _mongo.dropCollection = function (obj, callback) {
280
+ callback =
281
+ callback ||
282
+ function (...args) {
283
+ console.log(args);
284
+ };
285
+ _mongo.connectDB(obj.dbName, function (err, db) {
286
+ if (!err) {
287
+ if (obj.collectionName === undefined) {
288
+ obj.collectionName = ____0.options.mongodb.collection;
289
+ }
290
+ db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
291
+ .drop()
292
+ .then((delOK) => {
293
+ callback(null, delOK);
294
+ })
295
+ .catch((err) => {
296
+ callback(err);
297
+ });
298
+ } else {
299
+ callback(err);
300
+ }
301
+ });
302
+ };
303
+
304
+ _mongo.insertOneAsyncBusy = !1;
305
+ _mongo.insertOneAsyncList = [];
306
+ _mongo.insertOneAsync = function (obj, callback) {
307
+ if (obj) {
308
+ _mongo.insertOneAsyncList.push({
309
+ obj: obj,
310
+ callback: callback,
311
+ });
312
+ _mongo.insertOneAsync(null);
313
+ } else {
314
+ if (_mongo.insertOneAsyncBusy) {
315
+ return;
316
+ }
317
+
318
+ var _obj = _mongo.insertOneAsyncList[0];
319
+ if (_obj) {
320
+ _mongo.insertOneAsyncBusy = !0;
321
+ _mongo.insertOne(_obj.obj, function (err, obj) {
322
+ _mongo.insertOneAsyncList.splice(0, 1);
323
+ _obj.callback(err, obj);
324
+ _mongo.insertOneAsyncBusy = !1;
325
+ _mongo.insertOneAsync(null);
326
+ });
327
+ }
328
+ }
329
+ };
330
+
331
+ _mongo.insertOne = function (obj, callback) {
332
+ callback =
333
+ callback ||
334
+ function (...args) {
335
+ console.log(args);
336
+ };
337
+ _mongo.connectDB(obj.dbName, function (err, db) {
338
+ if (!err) {
339
+ if (obj.collectionName === undefined) {
340
+ obj.collectionName = ____0.options.mongodb.collection;
341
+ }
342
+
343
+ obj.doc = _mongo.handleDoc(obj.doc);
344
+
345
+ db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
346
+ .insertOne(obj.doc)
347
+ .then((result) => {
348
+ callback(null, { ...obj.doc, _id: result.insertedId }, result);
349
+
350
+ if (____0.options.mongodb.events) {
351
+ ____0.call('mongodb after insert', {
352
+ db: obj.dbName,
353
+ collection: obj.collectionName,
354
+ doc: result,
355
+ });
356
+ }
357
+ })
358
+ .catch((err) => {
359
+ callback(err);
360
+ });
361
+ } else {
362
+ callback(err);
363
+ }
364
+ });
365
+ };
366
+
367
+ _mongo.insert = _mongo.insertMany = function (obj, callback) {
368
+ callback =
369
+ callback ||
370
+ function (...args) {
371
+ console.log(args);
372
+ };
373
+ if (!obj.docs || obj.docs.length === 0) {
374
+ callback({
375
+ message: 'docs array length is 0',
376
+ });
377
+ return;
378
+ }
379
+ _mongo.connectDB(obj.dbName, function (err, db) {
380
+ if (!err) {
381
+ if (!obj.collectionName) {
382
+ obj.collectionName = ____0.options.mongodb.collection;
383
+ }
384
+ obj.docs.forEach((doc, i) => {
385
+ obj.docs[i] = _mongo.handleDoc(doc);
386
+ });
387
+ db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
388
+ .insertMany(obj.docs, obj.options)
389
+ .then((result) => {
390
+ callback(null, obj.docs, result);
391
+
392
+ if (____0.options.mongodb.events) {
393
+ ____0.call('mongodb after insert many', {
394
+ db: obj.dbName,
395
+ collection: obj.collectionName,
396
+ docs: obj.docs,
397
+ });
398
+ }
399
+ })
400
+ .catch((err) => {
401
+ console.error(' _mongo.insertMany() ', err.message);
402
+
403
+ callback(err, obj.docs, result);
404
+ });
405
+ } else {
406
+ console.error(' _mongo.insertMany() ', err.message);
407
+
408
+ callback(err);
409
+ }
410
+ });
411
+ };
412
+
413
+ _mongo.findOne = function (obj, callback) {
414
+ callback =
415
+ callback ||
416
+ function (...args) {
417
+ console.log(args);
418
+ };
419
+
420
+ _mongo.connectDB(obj.dbName, function (err, db) {
421
+ if (!err) {
422
+ if (obj.collectionName === undefined) {
423
+ obj.collectionName = ____0.options.mongodb.collection;
424
+ }
425
+
426
+ if (obj.where === undefined) {
427
+ callback({
428
+ message: 'where not set',
429
+ });
430
+ return;
431
+ }
432
+
433
+ if (typeof obj.where === 'string') {
434
+ obj.where = {
435
+ _id: new _mongo.ObjectID(obj.where),
436
+ };
437
+ }
438
+
439
+ if (typeof obj.where._id === 'string') {
440
+ obj.where._id = new _mongo.ObjectID(obj.where._id);
441
+ }
442
+
443
+ if (obj.select === undefined) {
444
+ obj.select = {};
445
+ }
446
+
447
+ let options = {
448
+ projection: obj.select || {},
449
+ limit: 1,
450
+ skip: null,
451
+ sort: null,
452
+ };
453
+
454
+ db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
455
+ .findOne(obj.where, options)
456
+ .then((doc) => {
457
+ callback(null, doc);
458
+ if (____0.options.mongodb.events) {
459
+ ____0.call('mongodb after find', {
460
+ db: obj.dbName,
461
+ collection: obj.collectionName,
462
+ doc: doc,
463
+ });
464
+ }
465
+ })
466
+ .catch((err) => {
467
+ callback(err);
468
+ });
469
+ } else {
470
+ callback(err);
471
+ }
472
+ });
473
+ };
474
+
475
+ _mongo.find = _mongo.findMany = function (obj, callback) {
476
+ callback =
477
+ callback ||
478
+ function (...args) {
479
+ console.log(args);
480
+ };
481
+ _mongo.connectDB(obj.dbName, function (err, db) {
482
+ if (!err) {
483
+ if (obj.collectionName === undefined) {
484
+ obj.collectionName = ____0.options.mongodb.collection;
485
+ }
486
+
487
+ db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
488
+ .countDocuments(obj.where)
489
+ .then((count) => {
490
+ if (count > 0) {
491
+ let options = {
492
+ projection: obj.select || {},
493
+ limit: obj.limit ? parseInt(obj.limit) : ____0.options.mongodb.limit,
494
+ skip: obj.skip ? parseInt(obj.skip) : 0,
495
+ sort: obj.sort || null,
496
+ };
497
+
498
+ db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
499
+ .find(obj.where, options)
500
+ .toArray()
501
+ .then((docs) => {
502
+ callback(null, docs, count);
503
+ if (____0.options.mongodb.events) {
504
+ ____0.call('mongodb after find many', {
505
+ db: obj.dbName,
506
+ collection: obj.collectionName,
507
+ docs: docs,
508
+ });
509
+ }
510
+ })
511
+ .catch((err) => {
512
+ callback(err, [], 0);
513
+ });
514
+ } else {
515
+ callback(null, [], count);
516
+ }
517
+ })
518
+ .catch((err) => {
519
+ callback(err, [], 0);
520
+ });
521
+ } else {
522
+ callback(err);
523
+ }
524
+ });
525
+ };
526
+
527
+ _mongo.distinct = function (obj, callback) {
528
+ callback =
529
+ callback ||
530
+ function (...args) {
531
+ console.log(args);
532
+ };
533
+ _mongo.connectDB(obj.dbName, function (err, db) {
534
+ if (!err) {
535
+ if (obj.collectionName === undefined) {
536
+ obj.collectionName = ____0.options.mongodb.collection;
537
+ }
538
+ db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
539
+ .distinct(obj.field)
540
+ .then((docs) => {
541
+ callback(null, docs);
542
+ })
543
+ .catch((err) => {
544
+ callback(err);
545
+ });
546
+ } else {
547
+ callback(err);
548
+ }
549
+ });
550
+ };
551
+
552
+ _mongo.updateOne = function (obj, callback) {
553
+ callback =
554
+ callback ||
555
+ function (...args) {
556
+ console.log(args);
557
+ };
558
+
559
+ _mongo.connectDB(obj.dbName, function (err, db) {
560
+ if (!err) {
561
+ if (obj.collectionName === undefined) {
562
+ obj.collectionName = ____0.options.mongodb.collection;
563
+ }
564
+
565
+ if (obj.where && obj.where._id && typeof obj.where._id === 'string') {
566
+ obj.where._id = new _mongo.ObjectID(obj.where._id);
567
+ }
568
+
569
+ let $update = {};
570
+ if (obj.set) {
571
+ $update.$set = obj.set;
572
+ if ($update.$set._id) {
573
+ delete $update.$set._id;
574
+ }
575
+ $update.$set = _mongo.handleDoc($update.$set);
576
+ }
577
+ if (obj.unset) {
578
+ $update.$unset = obj.unset;
579
+ }
580
+ if (obj.rename) {
581
+ $update.$rename = obj.rename;
582
+ }
583
+ _mongo.findOne(
584
+ {
585
+ dbName: obj.dbName,
586
+ collectionName: obj.collectionName,
587
+ where: obj.where,
588
+ },
589
+ (err, doc) => {
590
+ if (!err) {
591
+ db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
592
+ .updateOne(obj.where, $update)
593
+ .then((result) => {
594
+ _mongo.findOne(
595
+ {
596
+ dbName: obj.dbName,
597
+ collectionName: obj.collectionName,
598
+ where: obj.where,
599
+ },
600
+ (err2, doc2) => {
601
+ callback(
602
+ null,
603
+ {
604
+ doc: doc2,
605
+ old_doc: doc,
606
+ where: obj.where,
607
+ update: $update,
608
+ db: obj.dbName,
609
+ collection: obj.collectionName,
610
+ },
611
+ result
612
+ );
613
+ if (____0.options.mongodb.events) {
614
+ ____0.call('mongodb after update', {
615
+ db: obj.dbName,
616
+ collection: obj.collectionName,
617
+ doc: doc2,
618
+ old_doc: doc,
619
+ where: obj.where,
620
+ update: $update,
621
+ });
622
+ }
623
+ }
624
+ );
625
+ })
626
+ .catch((err) => {
627
+ callback(err);
628
+ });
629
+ } else {
630
+ callback(err);
631
+ }
632
+ }
633
+ );
634
+ } else {
635
+ callback(err);
636
+ }
637
+ });
638
+ };
639
+
640
+ _mongo.update = _mongo.updateMany = function (obj, callback) {
641
+ callback =
642
+ callback ||
643
+ function (...args) {
644
+ console.log(args);
645
+ };
646
+ _mongo.connectDB(obj.dbName, function (err, db) {
647
+ if (!err) {
648
+ if (obj.collectionName === undefined) {
649
+ obj.collectionName = ____0.options.mongodb.collection;
650
+ }
651
+
652
+ let $update = {};
653
+ if (obj.set) {
654
+ $update.$set = obj.set;
655
+ }
656
+ if (obj.unset) {
657
+ $update.$unset = obj.unset;
658
+ }
659
+ if (obj.rename) {
660
+ $update.$rename = obj.rename;
661
+ }
662
+ db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
663
+ .updateMany(obj.where, $update)
664
+ .then((result) => {
665
+ callback(
666
+ null,
667
+ {
668
+ result: result,
669
+ exists: result.result?.n,
670
+ count: result.result?.nModified,
671
+ ok: result.result?.ok,
672
+ where: obj.where,
673
+ update: $update,
674
+ },
675
+ result
676
+ );
677
+ if (____0.options.mongodb.events) {
678
+ ____0.call('mongodb after update many', {
679
+ db: obj.dbName,
680
+ collection: obj.collectionName,
681
+ exists: result.result?.n,
682
+ count: result.result?.nModified,
683
+ ok: result.result?.ok,
684
+ where: obj.where,
685
+ update: $update,
686
+ });
687
+ }
688
+ })
689
+ .catch((err) => {
690
+ callback(err);
691
+ });
692
+ } else {
693
+ callback(err);
694
+ }
695
+ });
696
+ };
697
+
698
+ _mongo.deleteOne = function (obj, callback) {
699
+ callback =
700
+ callback ||
701
+ function (...args) {
702
+ console.log(args);
703
+ };
704
+ _mongo.connectDB(obj.dbName, function (err, db) {
705
+ if (!err) {
706
+ if (obj.collectionName === undefined) {
707
+ obj.collectionName = ____0.options.mongodb.collection;
708
+ }
709
+
710
+ _mongo.findOne(
711
+ {
712
+ where: obj.where,
713
+ select: {},
714
+ collectionName: obj.collectionName,
715
+ dbName: obj.dbName,
716
+ },
717
+ function (err, doc) {
718
+ if (!err && doc) {
719
+ db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
720
+ .deleteOne(obj.where)
721
+ .then((result) => {
722
+ callback(
723
+ null,
724
+ {
725
+ db: obj.dbName,
726
+ collection: obj.collectionName,
727
+ count: result.deletedCount,
728
+ doc: doc,
729
+ },
730
+ result
731
+ );
732
+ if (____0.options.mongodb.events) {
733
+ ____0.call('mongodb after delete', {
734
+ db: obj.dbName,
735
+ collection: obj.collectionName,
736
+ doc: doc,
737
+ });
738
+ }
739
+ })
740
+ .catch((err) => {
741
+ callback(err);
742
+ });
743
+ } else {
744
+ callback({
745
+ message: 'Not Exists : ' + JSON.stringify(obj.where),
746
+ });
747
+ }
748
+ }
749
+ );
750
+ } else {
751
+ callback(err);
752
+ }
753
+ });
754
+ };
755
+
756
+ _mongo.delete = _mongo.deleteMany = function (obj, callback) {
757
+ callback =
758
+ callback ||
759
+ function (...args) {
760
+ console.log(args);
761
+ };
762
+
763
+ if (obj.where === undefined) {
764
+ callback(
765
+ {
766
+ message: 'where not set',
767
+ },
768
+ {
769
+ db: obj.dbName,
770
+ collection: obj.collectionName,
771
+
772
+ count: 0,
773
+ ok: 0,
774
+ exists: 0,
775
+ },
776
+ result
777
+ );
778
+ return;
779
+ }
780
+
781
+ _mongo.connectDB(obj.dbName, function (err, db) {
782
+ if (!err) {
783
+ if (obj.collectionName === undefined) {
784
+ obj.collectionName = ____0.options.mongodb.collection;
785
+ }
786
+ db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
787
+ .deleteMany(obj.where)
788
+ .then((result) => {
789
+ callback(
790
+ null,
791
+ {
792
+ db: obj.dbName,
793
+ collection: obj.collectionName,
794
+
795
+ count: result.deletedCount,
796
+ },
797
+ result
798
+ );
799
+ if (____0.options.mongodb.events) {
800
+ ____0.call('mongodb after delete many', {
801
+ db: obj.dbName,
802
+ collection: obj.collectionName,
803
+
804
+ where: obj.where,
805
+ count: result.deletedCount,
806
+ });
807
+ }
808
+ })
809
+ .catch((err) => {
810
+ callback(err);
811
+ });
812
+ } else {
813
+ callback(err);
814
+ }
815
+ });
816
+ };
817
+
818
+ return _mongo;
819
+ };