isite 2024.6.9 → 2024.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +1387 -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-addon.css +2 -2
  27. package/apps/client-side/site_files/css/bootstrap5.css +6 -6
  28. package/apps/client-side/site_files/css/checkbox.css +125 -125
  29. package/apps/client-side/site_files/css/font-awesome.css +4616 -4616
  30. package/apps/client-side/site_files/css/font-awesome.min.css +4 -4
  31. package/apps/client-side/site_files/css/fonts.css +85 -85
  32. package/apps/client-side/site_files/css/help.css +51 -51
  33. package/apps/client-side/site_files/css/images.css +4 -3
  34. package/apps/client-side/site_files/css/main-menu.css +66 -66
  35. package/apps/client-side/site_files/css/print.css +144 -144
  36. package/apps/client-side/site_files/css/prism.css +139 -139
  37. package/apps/client-side/site_files/css/progress.css +7 -7
  38. package/apps/client-side/site_files/css/radio.css +103 -103
  39. package/apps/client-side/site_files/css/scrollbar.css +13 -13
  40. package/apps/client-side/site_files/css/semantic.css +363 -363
  41. package/apps/client-side/site_files/css/table.css +87 -87
  42. package/apps/client-side/site_files/css/treeview.css +84 -84
  43. package/apps/client-side/site_files/css/ui.css +28 -28
  44. package/apps/client-side/site_files/fonts/fontawesome-webfont.svg +2671 -2671
  45. package/apps/client-side/site_files/fonts/glyphicons-halflings-regular.svg +287 -287
  46. package/apps/client-side/site_files/fonts/icons.svg +684 -684
  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/xlsx.js +23 -23
  66. package/apps/client-side/site_files/semantic-themes/default/assets/fonts/brand-icons.svg +1008 -1008
  67. package/apps/client-side/site_files/semantic-themes/default/assets/fonts/icons.svg +1518 -1518
  68. package/apps/client-side/site_files/semantic-themes/default/assets/fonts/outline-icons.svg +366 -366
  69. package/apps/client-side/site_files/webfonts/fa-brands-400.svg +3717 -3717
  70. package/apps/client-side/site_files/webfonts/fa-regular-400.svg +801 -801
  71. package/apps/client-side/site_files/webfonts/fa-solid-900.svg +5034 -5034
  72. package/apps/security/README.md +12 -12
  73. package/apps/security/app.js +288 -288
  74. package/apps/security/libs/notifications.js +89 -89
  75. package/apps/security/site_files/html/add_modal.html +36 -36
  76. package/apps/security/site_files/html/content.html +36 -36
  77. package/apps/security/site_files/html/delete_modal.html +31 -31
  78. package/apps/security/site_files/html/head.html +7 -7
  79. package/apps/security/site_files/html/index.html +80 -80
  80. package/apps/security/site_files/html/login_modal.html +24 -24
  81. package/apps/security/site_files/html/logout_modal.html +21 -21
  82. package/apps/security/site_files/html/navbar.html +8 -8
  83. package/apps/security/site_files/html/register_modal.html +32 -32
  84. package/apps/security/site_files/html/update_modal.html +28 -28
  85. package/apps/security/site_files/html/view.html +74 -74
  86. package/apps/security/site_files/html/view_modal.html +32 -32
  87. package/apps/security/site_files/js/app.js +1 -1
  88. package/apps/security/site_files/js/index.js +278 -278
  89. package/apps/security/site_files/js/login.js +35 -35
  90. package/apps/security/site_files/js/logout.js +22 -22
  91. package/apps/security/site_files/js/navbar.js +26 -26
  92. package/apps/security/site_files/js/register.js +30 -30
  93. package/apps/security/site_files/json/permissions.json +7 -7
  94. package/apps/security/site_files/json/roles.json +33 -33
  95. package/apps/security/site_files/json/words.json +28 -28
  96. package/gulpfile.js +17 -17
  97. package/index.js +1 -0
  98. package/isite.postman_collection.json +7 -7
  99. package/isite_files/css/bootstrap.css +5 -5
  100. package/isite_files/css/font-awesome.css +4 -4
  101. package/isite_files/css/prism.css +139 -139
  102. package/isite_files/fonts/fontawesome-webfont.svg +2671 -2671
  103. package/isite_files/fonts/glyphicons-halflings-regular.svg +287 -287
  104. package/isite_files/html/files.html +9 -9
  105. package/isite_files/html/head.html +12 -12
  106. package/isite_files/html/index.html +30 -30
  107. package/isite_files/html/installing.html +27 -27
  108. package/isite_files/html/navbar.html +51 -51
  109. package/isite_files/html/routes.html +13 -13
  110. package/isite_files/html/sessions.html +13 -13
  111. package/isite_files/html/vars.html +9 -9
  112. package/isite_files/js/angular.js +334 -334
  113. package/isite_files/js/bootstrap.js +6 -6
  114. package/isite_files/js/custom.js +149 -149
  115. package/isite_files/js/jquery.js +4 -4
  116. package/isite_files/js/prism.js +6 -6
  117. package/lib/README.md +1 -1
  118. package/lib/cookie.js +81 -81
  119. package/lib/dashboard.js +189 -189
  120. package/lib/mongodb.js +686 -686
  121. package/lib/parser.js +910 -910
  122. package/lib/session.js +158 -158
  123. package/lib/storage.js +6 -0
  124. package/lib/ws.js +4 -26
  125. package/object-options/lib/isite.code-workspace +10 -10
  126. package/object-options/lib/safty.js +13 -16
  127. package/package.json +55 -54
  128. package/ssl/create_ssl.sh +3 -3
package/lib/mongodb.js CHANGED
@@ -1,686 +1,686 @@
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
+ 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
+ };