isite 2024.8.5 → 2024.8.7

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 (129) 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/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/collection.js +92 -41
  119. package/lib/collectionFile.js +21 -18
  120. package/lib/cookie.js +81 -81
  121. package/lib/dashboard.js +189 -189
  122. package/lib/mongodb.js +819 -756
  123. package/lib/parser.js +910 -910
  124. package/lib/security.js +48 -57
  125. package/lib/session.js +153 -153
  126. package/object-options/index.js +3 -3
  127. package/object-options/lib/isite.code-workspace +10 -10
  128. package/package.json +58 -58
  129. package/ssl/create_ssl.sh +3 -3
package/lib/mongodb.js CHANGED
@@ -1,756 +1,819 @@
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
-
190
- _mongo.aggregate = function (obj, callback) {
191
- callback =
192
- callback ||
193
- function (...args) {
194
- console.log(args);
195
- };
196
- _mongo.connectDB(obj.dbName, function (err, db) {
197
- if (!err) {
198
- if (obj.collectionName === undefined) {
199
- obj.collectionName = ____0.options.mongodb.collection;
200
- }
201
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
202
- .aggregate(obj.arr)
203
- .toArray()
204
- .then((docs) => {
205
- callback(null, docs);
206
- })
207
- .catch((err) => {
208
- callback(err);
209
- });
210
- } else {
211
- callback(err);
212
- }
213
- });
214
- };
215
-
216
- _mongo.dropCollection = function (obj, callback) {
217
- callback =
218
- callback ||
219
- function (...args) {
220
- console.log(args);
221
- };
222
- _mongo.connectDB(obj.dbName, function (err, db) {
223
- if (!err) {
224
- if (obj.collectionName === undefined) {
225
- obj.collectionName = ____0.options.mongodb.collection;
226
- }
227
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
228
- .drop()
229
- .then((delOK) => {
230
- callback(null, delOK);
231
- })
232
- .catch((err) => {
233
- callback(err);
234
- });
235
- } else {
236
- callback(err);
237
- }
238
- });
239
- };
240
-
241
- _mongo.insertOneAsyncBusy = !1;
242
- _mongo.insertOneAsyncList = [];
243
- _mongo.insertOneAsync = function (obj, callback) {
244
- if (obj) {
245
- _mongo.insertOneAsyncList.push({
246
- obj: obj,
247
- callback: callback,
248
- });
249
- _mongo.insertOneAsync(null);
250
- } else {
251
- if (_mongo.insertOneAsyncBusy) {
252
- return;
253
- }
254
-
255
- var _obj = _mongo.insertOneAsyncList[0];
256
- if (_obj) {
257
- _mongo.insertOneAsyncBusy = !0;
258
- _mongo.insertOne(_obj.obj, function (err, obj) {
259
- _mongo.insertOneAsyncList.splice(0, 1);
260
- _obj.callback(err, obj);
261
- _mongo.insertOneAsyncBusy = !1;
262
- _mongo.insertOneAsync(null);
263
- });
264
- }
265
- }
266
- };
267
-
268
- _mongo.insertOne = function (obj, callback) {
269
- callback =
270
- callback ||
271
- function (...args) {
272
- console.log(args);
273
- };
274
- _mongo.connectDB(obj.dbName, function (err, db) {
275
- if (!err) {
276
- if (obj.collectionName === undefined) {
277
- obj.collectionName = ____0.options.mongodb.collection;
278
- }
279
-
280
- obj.doc = _mongo.handleDoc(obj.doc);
281
-
282
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
283
- .insertOne(obj.doc)
284
- .then((result) => {
285
- callback(null, { ...obj.doc, _id: result.insertedId }, result);
286
-
287
- if (____0.options.mongodb.events) {
288
- ____0.call('mongodb after insert', {
289
- db: obj.dbName,
290
- collection: obj.collectionName,
291
- doc: result,
292
- });
293
- }
294
- })
295
- .catch((err) => {
296
- callback(err);
297
- });
298
- } else {
299
- callback(err);
300
- }
301
- });
302
- };
303
-
304
- _mongo.insert = _mongo.insertMany = function (obj, callback) {
305
- callback =
306
- callback ||
307
- function (...args) {
308
- console.log(args);
309
- };
310
- if (!obj.docs || obj.docs.length === 0) {
311
- callback({
312
- message: 'docs array length is 0',
313
- });
314
- return;
315
- }
316
- _mongo.connectDB(obj.dbName, function (err, db) {
317
- if (!err) {
318
- if (!obj.collectionName) {
319
- obj.collectionName = ____0.options.mongodb.collection;
320
- }
321
- obj.docs.forEach((doc, i) => {
322
- obj.docs[i] = _mongo.handleDoc(doc);
323
- });
324
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
325
- .insertMany(obj.docs, obj.options)
326
- .then((result) => {
327
- callback(null, obj.docs, result);
328
-
329
- if (____0.options.mongodb.events) {
330
- ____0.call('mongodb after insert many', {
331
- db: obj.dbName,
332
- collection: obj.collectionName,
333
- docs: obj.docs,
334
- });
335
- }
336
- })
337
- .catch((err) => {
338
- console.error(' _mongo.insertMany() ', err.message);
339
-
340
- callback(err, obj.docs, result);
341
- });
342
- } else {
343
- console.error(' _mongo.insertMany() ', err.message);
344
-
345
- callback(err);
346
- }
347
- });
348
- };
349
-
350
- _mongo.findOne = function (obj, callback) {
351
- callback =
352
- callback ||
353
- function (...args) {
354
- console.log(args);
355
- };
356
-
357
- _mongo.connectDB(obj.dbName, function (err, db) {
358
- if (!err) {
359
- if (obj.collectionName === undefined) {
360
- obj.collectionName = ____0.options.mongodb.collection;
361
- }
362
-
363
- if (obj.where === undefined) {
364
- callback({
365
- message: 'where not set',
366
- });
367
- return;
368
- }
369
-
370
- if (typeof obj.where === 'string') {
371
- obj.where = {
372
- _id: new _mongo.ObjectID(obj.where),
373
- };
374
- }
375
-
376
- if (typeof obj.where._id === 'string') {
377
- obj.where._id = new _mongo.ObjectID(obj.where._id);
378
- }
379
-
380
- if (obj.select === undefined) {
381
- obj.select = {};
382
- }
383
-
384
- let options = {
385
- projection: obj.select || {},
386
- limit: 1,
387
- skip: null,
388
- sort: null,
389
- };
390
-
391
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
392
- .findOne(obj.where, options)
393
- .then((doc) => {
394
- callback(null, doc);
395
- if (____0.options.mongodb.events) {
396
- ____0.call('mongodb after find', {
397
- db: obj.dbName,
398
- collection: obj.collectionName,
399
- doc: doc,
400
- });
401
- }
402
- })
403
- .catch((err) => {
404
- callback(err);
405
- });
406
- } else {
407
- callback(err);
408
- }
409
- });
410
- };
411
-
412
- _mongo.find = _mongo.findMany = function (obj, callback) {
413
- callback =
414
- callback ||
415
- function (...args) {
416
- console.log(args);
417
- };
418
- _mongo.connectDB(obj.dbName, function (err, db) {
419
- if (!err) {
420
- if (obj.collectionName === undefined) {
421
- obj.collectionName = ____0.options.mongodb.collection;
422
- }
423
-
424
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
425
- .countDocuments(obj.where)
426
- .then((count) => {
427
- if (count > 0) {
428
- let options = {
429
- projection: obj.select || {},
430
- limit: obj.limit ? parseInt(obj.limit) : ____0.options.mongodb.limit,
431
- skip: obj.skip ? parseInt(obj.skip) : 0,
432
- sort: obj.sort || null,
433
- };
434
-
435
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
436
- .find(obj.where, options)
437
- .toArray()
438
- .then((docs) => {
439
- callback(null, docs, count);
440
- if (____0.options.mongodb.events) {
441
- ____0.call('mongodb after find many', {
442
- db: obj.dbName,
443
- collection: obj.collectionName,
444
- docs: docs,
445
- });
446
- }
447
- })
448
- .catch((err) => {
449
- callback(err, [], 0);
450
- });
451
- } else {
452
- callback(null, [], count);
453
- }
454
- })
455
- .catch((err) => {
456
- callback(err, [], 0);
457
- });
458
- } else {
459
- callback(err);
460
- }
461
- });
462
- };
463
-
464
- _mongo.distinct = function (obj, callback) {
465
- callback =
466
- callback ||
467
- function (...args) {
468
- console.log(args);
469
- };
470
- _mongo.connectDB(obj.dbName, function (err, db) {
471
- if (!err) {
472
- if (obj.collectionName === undefined) {
473
- obj.collectionName = ____0.options.mongodb.collection;
474
- }
475
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
476
- .distinct(obj.field)
477
- .then((docs) => {
478
- callback(null, docs);
479
- })
480
- .catch((err) => {
481
- callback(err);
482
- });
483
- } else {
484
- callback(err);
485
- }
486
- });
487
- };
488
-
489
- _mongo.updateOne = function (obj, callback) {
490
- callback =
491
- callback ||
492
- function (...args) {
493
- console.log(args);
494
- };
495
-
496
- _mongo.connectDB(obj.dbName, function (err, db) {
497
- if (!err) {
498
- if (obj.collectionName === undefined) {
499
- obj.collectionName = ____0.options.mongodb.collection;
500
- }
501
-
502
- if (obj.where && obj.where._id && typeof obj.where._id === 'string') {
503
- obj.where._id = new _mongo.ObjectID(obj.where._id);
504
- }
505
-
506
- let $update = {};
507
- if (obj.set) {
508
- $update.$set = obj.set;
509
- if ($update.$set._id) {
510
- delete $update.$set._id;
511
- }
512
- $update.$set = _mongo.handleDoc($update.$set);
513
- }
514
- if (obj.unset) {
515
- $update.$unset = obj.unset;
516
- }
517
- if (obj.rename) {
518
- $update.$rename = obj.rename;
519
- }
520
- _mongo.findOne(
521
- {
522
- dbName: obj.dbName,
523
- collectionName: obj.collectionName,
524
- where: obj.where,
525
- },
526
- (err, doc) => {
527
- if (!err) {
528
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
529
- .updateOne(obj.where, $update)
530
- .then((result) => {
531
- _mongo.findOne(
532
- {
533
- dbName: obj.dbName,
534
- collectionName: obj.collectionName,
535
- where: obj.where,
536
- },
537
- (err2, doc2) => {
538
- callback(
539
- null,
540
- {
541
- doc: doc2,
542
- old_doc: doc,
543
- where: obj.where,
544
- update: $update,
545
- db: obj.dbName,
546
- collection: obj.collectionName,
547
- },
548
- result
549
- );
550
- if (____0.options.mongodb.events) {
551
- ____0.call('mongodb after update', {
552
- db: obj.dbName,
553
- collection: obj.collectionName,
554
- doc: doc2,
555
- old_doc: doc,
556
- where: obj.where,
557
- update: $update,
558
- });
559
- }
560
- }
561
- );
562
- })
563
- .catch((err) => {
564
- callback(err);
565
- });
566
- } else {
567
- callback(err);
568
- }
569
- }
570
- );
571
- } else {
572
- callback(err);
573
- }
574
- });
575
- };
576
-
577
- _mongo.update = _mongo.updateMany = function (obj, callback) {
578
- callback =
579
- callback ||
580
- function (...args) {
581
- console.log(args);
582
- };
583
- _mongo.connectDB(obj.dbName, function (err, db) {
584
- if (!err) {
585
- if (obj.collectionName === undefined) {
586
- obj.collectionName = ____0.options.mongodb.collection;
587
- }
588
-
589
- let $update = {};
590
- if (obj.set) {
591
- $update.$set = obj.set;
592
- }
593
- if (obj.unset) {
594
- $update.$unset = obj.unset;
595
- }
596
- if (obj.rename) {
597
- $update.$rename = obj.rename;
598
- }
599
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
600
- .updateMany(obj.where, $update)
601
- .then((result) => {
602
- callback(
603
- null,
604
- {
605
- result: result,
606
- exists: result.result?.n,
607
- count: result.result?.nModified,
608
- ok: result.result?.ok,
609
- where: obj.where,
610
- update: $update,
611
- },
612
- result
613
- );
614
- if (____0.options.mongodb.events) {
615
- ____0.call('mongodb after update many', {
616
- db: obj.dbName,
617
- collection: obj.collectionName,
618
- exists: result.result?.n,
619
- count: result.result?.nModified,
620
- ok: result.result?.ok,
621
- where: obj.where,
622
- update: $update,
623
- });
624
- }
625
- })
626
- .catch((err) => {
627
- callback(err);
628
- });
629
- } else {
630
- callback(err);
631
- }
632
- });
633
- };
634
-
635
- _mongo.deleteOne = function (obj, callback) {
636
- callback =
637
- callback ||
638
- function (...args) {
639
- console.log(args);
640
- };
641
- _mongo.connectDB(obj.dbName, function (err, db) {
642
- if (!err) {
643
- if (obj.collectionName === undefined) {
644
- obj.collectionName = ____0.options.mongodb.collection;
645
- }
646
-
647
- _mongo.findOne(
648
- {
649
- where: obj.where,
650
- select: {},
651
- collectionName: obj.collectionName,
652
- dbName: obj.dbName,
653
- },
654
- function (err, doc) {
655
- if (!err && doc) {
656
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
657
- .deleteOne(obj.where)
658
- .then((result) => {
659
- callback(
660
- null,
661
- {
662
- db: obj.dbName,
663
- collection: obj.collectionName,
664
- count: result.deletedCount,
665
- doc: doc,
666
- },
667
- result
668
- );
669
- if (____0.options.mongodb.events) {
670
- ____0.call('mongodb after delete', {
671
- db: obj.dbName,
672
- collection: obj.collectionName,
673
- doc: doc,
674
- });
675
- }
676
- })
677
- .catch((err) => {
678
- callback(err);
679
- });
680
- } else {
681
- callback({
682
- message: 'Not Exists : ' + JSON.stringify(obj.where),
683
- });
684
- }
685
- }
686
- );
687
- } else {
688
- callback(err);
689
- }
690
- });
691
- };
692
-
693
- _mongo.delete = _mongo.deleteMany = function (obj, callback) {
694
- callback =
695
- callback ||
696
- function (...args) {
697
- console.log(args);
698
- };
699
-
700
- if (obj.where === undefined) {
701
- callback(
702
- {
703
- message: 'where not set',
704
- },
705
- {
706
- db: obj.dbName,
707
- collection: obj.collectionName,
708
-
709
- count: 0,
710
- ok: 0,
711
- exists: 0,
712
- },
713
- result
714
- );
715
- return;
716
- }
717
-
718
- _mongo.connectDB(obj.dbName, function (err, db) {
719
- if (!err) {
720
- if (obj.collectionName === undefined) {
721
- obj.collectionName = ____0.options.mongodb.collection;
722
- }
723
- db.collection(____0.options.mongodb.prefix.collection + obj.collectionName)
724
- .deleteMany(obj.where)
725
- .then((result) => {
726
- callback(
727
- null,
728
- {
729
- db: obj.dbName,
730
- collection: obj.collectionName,
731
-
732
- count: result.deletedCount,
733
- },
734
- result
735
- );
736
- if (____0.options.mongodb.events) {
737
- ____0.call('mongodb after delete many', {
738
- db: obj.dbName,
739
- collection: obj.collectionName,
740
-
741
- where: obj.where,
742
- count: result.deletedCount,
743
- });
744
- }
745
- })
746
- .catch((err) => {
747
- callback(err);
748
- });
749
- } else {
750
- callback(err);
751
- }
752
- });
753
- };
754
-
755
- return _mongo;
756
- };
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
+ };