@resolveio/server-lib 9.0.16 → 9.0.17

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 (58) hide show
  1. package/collections/app-status.collection.js +1 -1
  2. package/collections/app-status.collection.js.map +1 -1
  3. package/collections/app-version.collection.js +1 -1
  4. package/collections/app-version.collection.js.map +1 -1
  5. package/collections/counter.collection.js +1 -1
  6. package/collections/counter.collection.js.map +1 -1
  7. package/collections/cron-job-history.collection.js +1 -1
  8. package/collections/cron-job-history.collection.js.map +1 -1
  9. package/collections/cron-job.collection.js +1 -1
  10. package/collections/cron-job.collection.js.map +1 -1
  11. package/collections/email-history.collection.js +1 -1
  12. package/collections/email-history.collection.js.map +1 -1
  13. package/collections/email-verified.collection.js +1 -1
  14. package/collections/email-verified.collection.js.map +1 -1
  15. package/collections/file.collection.js +1 -1
  16. package/collections/file.collection.js.map +1 -1
  17. package/collections/flag.collection.js +1 -1
  18. package/collections/flag.collection.js.map +1 -1
  19. package/collections/log-method-latency.collection.js +1 -1
  20. package/collections/log-method-latency.collection.js.map +1 -1
  21. package/collections/log-subscription.collection.js +1 -1
  22. package/collections/log-subscription.collection.js.map +1 -1
  23. package/collections/log.collection.js +1 -1
  24. package/collections/log.collection.js.map +1 -1
  25. package/collections/logged-in-users.collection.js +1 -1
  26. package/collections/logged-in-users.collection.js.map +1 -1
  27. package/collections/method-call.collection.js +1 -1
  28. package/collections/method-call.collection.js.map +1 -1
  29. package/collections/method-response.collection.js +1 -1
  30. package/collections/method-response.collection.js.map +1 -1
  31. package/collections/monitor-cpu.collection.js +1 -1
  32. package/collections/monitor-cpu.collection.js.map +1 -1
  33. package/collections/monitor-https-inbound.collection.js +1 -1
  34. package/collections/monitor-https-inbound.collection.js.map +1 -1
  35. package/collections/monitor-https-outbound.collection.js +1 -1
  36. package/collections/monitor-https-outbound.collection.js.map +1 -1
  37. package/collections/monitor-memory.collection.js +1 -1
  38. package/collections/monitor-memory.collection.js.map +1 -1
  39. package/collections/monitor-mongo.collection.js +1 -1
  40. package/collections/monitor-mongo.collection.js.map +1 -1
  41. package/collections/notification.collection.js +1 -1
  42. package/collections/notification.collection.js.map +1 -1
  43. package/collections/queue-flag.collection.js +1 -1
  44. package/collections/queue-flag.collection.js.map +1 -1
  45. package/collections/queue-method.collection.js +1 -1
  46. package/collections/queue-method.collection.js.map +1 -1
  47. package/collections/queue-response.collection.js +1 -1
  48. package/collections/queue-response.collection.js.map +1 -1
  49. package/collections/user-group.collection.js +1 -1
  50. package/collections/user-group.collection.js.map +1 -1
  51. package/collections/user-guide.collection.js +1 -1
  52. package/collections/user-guide.collection.js.map +1 -1
  53. package/collections/user.collection.js +1 -1
  54. package/collections/user.collection.js.map +1 -1
  55. package/managers/mongo.manager.d.ts +3 -2
  56. package/managers/mongo.manager.js +23 -23
  57. package/managers/mongo.manager.js.map +1 -1
  58. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/collections/queue-method.collection.ts"],"names":[],"mappings":";;;AAAA,kCAA2C;AAC3C,2DAA8D;AAG9D,IAAI,MAAM,GAAQ;IACjB,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,MAAM,EAAE;QACP,IAAI,EAAE,MAAM;KACZ;IACD,WAAW,EAAE;QACZ,IAAI,EAAE,KAAK;KACX;IACD,eAAe,EAAE;QAChB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,kBAAkB,EAAE;QACnB,IAAI,EAAE,MAAM;KACZ;IACD,KAAK,EAAE;QACN,IAAI,EAAE,MAAM;KACZ;IACD,SAAS,EAAE;QACV,IAAI,EAAE,MAAM;KACZ;IACD,OAAO,EAAE;QACR,IAAI,EAAE,MAAM;KACZ;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,IAAI,EAAE;QACL,IAAI,EAAE,IAAI;KACV;IACD,gBAAgB,EAAE;QACjB,IAAI,EAAE,MAAM;KACZ;CACD,CAAC;AAES,QAAA,YAAY,GAAiC,IAAI,CAAC;AAE7D,oBAAoB,EAAE,CAAC;AAEvB,SAAS,oBAAoB;IAC5B,IAAI,uBAAe,CAAC,SAAS,EAAE,EAAE;QAChC,IAAM,KAAK,GAAG,IAAI,qBAAK,CAAmB,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjF,oBAAY,GAAG,KAAK,CAAC,eAAe,CAAC;QACrC,oBAAY,CAAC,WAAW,CAAC,EAAC,IAAI,EAAE,CAAC,EAAC,EAAE,EAAC,kBAAkB,EAAE,EAAE,EAAC,CAAC,CAAC;KAC9D;SACI;QACJ,UAAU,CAAC;YACV,oBAAoB,EAAE,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC;KACN;AACF,CAAC","file":"queue-method.collection.js","sourcesContent":["import { ResolveIOServer } from '../index';\nimport { Collection, Model } from '../managers/mongo.manager';\nimport { QueueMethodModel } from '../models/queue-method.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true \n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tmethod: {\n\t\ttype: String\n\t},\n\tmethod_data: {\n\t\ttype: Array\n\t},\n\t'method_data.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tmethod_data_string: {\n\t\ttype: String\n\t},\n\tid_ws: {\n\t\ttype: String\n\t},\n\tmessageId: {\n\t\ttype: Number\n\t},\n\tid_user: {\n\t\ttype: String\n\t},\n\tuser: {\n\t\ttype: String\n\t},\n\tdate: {\n\t\ttype: Date\n\t},\n\tid_methodLatency: {\n\t\ttype: String\n\t}\n};\n\nexport let QueueMethods: Collection<QueueMethodModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tconst model = new Model<QueueMethodModel>('queue-methods', schema, false, false);\n\t\tQueueMethods = model.collection_main;\n\t\tQueueMethods.createIndex({date: 1}, {expireAfterSeconds: 60});\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/collections/queue-method.collection.ts"],"names":[],"mappings":";;;AAAA,kCAA2C;AAC3C,2DAA8D;AAG9D,IAAI,MAAM,GAAQ;IACjB,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,MAAM,EAAE;QACP,IAAI,EAAE,MAAM;KACZ;IACD,WAAW,EAAE;QACZ,IAAI,EAAE,KAAK;KACX;IACD,eAAe,EAAE;QAChB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,kBAAkB,EAAE;QACnB,IAAI,EAAE,MAAM;KACZ;IACD,KAAK,EAAE;QACN,IAAI,EAAE,MAAM;KACZ;IACD,SAAS,EAAE;QACV,IAAI,EAAE,MAAM;KACZ;IACD,OAAO,EAAE;QACR,IAAI,EAAE,MAAM;KACZ;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,IAAI,EAAE;QACL,IAAI,EAAE,IAAI;KACV;IACD,gBAAgB,EAAE;QACjB,IAAI,EAAE,MAAM;KACZ;CACD,CAAC;AAES,QAAA,YAAY,GAAiC,IAAI,CAAC;AAE7D,oBAAoB,EAAE,CAAC;AAEvB,SAAS,oBAAoB;IAC5B,IAAI,uBAAe,CAAC,SAAS,EAAE,EAAE;QAChC,IAAM,KAAK,GAAG,IAAI,qBAAK,CAAmB,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAClG,oBAAY,GAAG,KAAK,CAAC,eAAe,CAAC;QACrC,oBAAY,CAAC,WAAW,CAAC,EAAC,IAAI,EAAE,CAAC,EAAC,EAAE,EAAC,kBAAkB,EAAE,EAAE,EAAC,CAAC,CAAC;KAC9D;SACI;QACJ,UAAU,CAAC;YACV,oBAAoB,EAAE,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC;KACN;AACF,CAAC","file":"queue-method.collection.js","sourcesContent":["import { ResolveIOServer } from '../index';\nimport { Collection, Model } from '../managers/mongo.manager';\nimport { QueueMethodModel } from '../models/queue-method.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true \n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tmethod: {\n\t\ttype: String\n\t},\n\tmethod_data: {\n\t\ttype: Array\n\t},\n\t'method_data.$': {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tmethod_data_string: {\n\t\ttype: String\n\t},\n\tid_ws: {\n\t\ttype: String\n\t},\n\tmessageId: {\n\t\ttype: Number\n\t},\n\tid_user: {\n\t\ttype: String\n\t},\n\tuser: {\n\t\ttype: String\n\t},\n\tdate: {\n\t\ttype: Date\n\t},\n\tid_methodLatency: {\n\t\ttype: String\n\t}\n};\n\nexport let QueueMethods: Collection<QueueMethodModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tconst model = new Model<QueueMethodModel>('queue-methods', schema, false, false, [], true, false);\n\t\tQueueMethods = model.collection_main;\n\t\tQueueMethods.createIndex({date: 1}, {expireAfterSeconds: 60});\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
@@ -47,7 +47,7 @@ exports.QueueResponses = null;
47
47
  initializeCollection();
48
48
  function initializeCollection() {
49
49
  if (index_1.ResolveIOServer.getMainDB()) {
50
- var model = new mongo_manager_1.Model('queue-responses', schema, false, false);
50
+ var model = new mongo_manager_1.Model('queue-responses', schema, false, false, [], true, false);
51
51
  exports.QueueResponses = model.collection_main;
52
52
  exports.QueueResponses.createIndex({ date: 1 }, { expireAfterSeconds: 60 });
53
53
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/collections/queue-response.collection.ts"],"names":[],"mappings":";;;AAAA,kCAA2C;AAC3C,2DAA8D;AAG9D,IAAI,MAAM,GAAQ;IACjB,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,MAAM,EAAE;QACP,IAAI,EAAE,MAAM;KACZ;IACD,KAAK,EAAE;QACN,IAAI,EAAE,MAAM;KACZ;IACD,SAAS,EAAE;QACV,IAAI,EAAE,MAAM;KACZ;IACD,OAAO,EAAE;QACR,IAAI,EAAE,MAAM;KACZ;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,QAAQ,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,IAAI,EAAE;QACL,IAAI,EAAE,IAAI;KACV;CACD,CAAC;AAES,QAAA,cAAc,GAAmC,IAAI,CAAC;AAEjE,oBAAoB,EAAE,CAAC;AAEvB,SAAS,oBAAoB;IAC5B,IAAI,uBAAe,CAAC,SAAS,EAAE,EAAE;QAChC,IAAM,KAAK,GAAG,IAAI,qBAAK,CAAqB,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACrF,sBAAc,GAAG,KAAK,CAAC,eAAe,CAAC;QACvC,sBAAc,CAAC,WAAW,CAAC,EAAC,IAAI,EAAE,CAAC,EAAC,EAAE,EAAC,kBAAkB,EAAE,EAAE,EAAC,CAAC,CAAC;KAChE;SACI;QACJ,UAAU,CAAC;YACV,oBAAoB,EAAE,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC;KACN;AACF,CAAC","file":"queue-response.collection.js","sourcesContent":["import { ResolveIOServer } from '../index';\nimport { Collection, Model } from '../managers/mongo.manager';\nimport { QueueResponseModel } from '../models/queue-response.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true \n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tmethod: {\n\t\ttype: String\n\t},\n\tid_ws: {\n\t\ttype: String\n\t},\n\tmessageId: {\n\t\ttype: Number\n\t},\n\tid_user: {\n\t\ttype: String\n\t},\n\tuser: {\n\t\ttype: String\n\t},\n\tresponse: {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tdate: {\n\t\ttype: Date\n\t}\n};\n\nexport let QueueResponses: Collection<QueueResponseModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tconst model = new Model<QueueResponseModel>('queue-responses', schema, false, false);\n\t\tQueueResponses = model.collection_main;\n\t\tQueueResponses.createIndex({date: 1}, {expireAfterSeconds: 60});\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/collections/queue-response.collection.ts"],"names":[],"mappings":";;;AAAA,kCAA2C;AAC3C,2DAA8D;AAG9D,IAAI,MAAM,GAAQ;IACjB,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,MAAM,EAAE;QACP,IAAI,EAAE,MAAM;KACZ;IACD,KAAK,EAAE;QACN,IAAI,EAAE,MAAM;KACZ;IACD,SAAS,EAAE;QACV,IAAI,EAAE,MAAM;KACZ;IACD,OAAO,EAAE;QACR,IAAI,EAAE,MAAM;KACZ;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,QAAQ,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,IAAI,EAAE;QACL,IAAI,EAAE,IAAI;KACV;CACD,CAAC;AAES,QAAA,cAAc,GAAmC,IAAI,CAAC;AAEjE,oBAAoB,EAAE,CAAC;AAEvB,SAAS,oBAAoB;IAC5B,IAAI,uBAAe,CAAC,SAAS,EAAE,EAAE;QAChC,IAAM,KAAK,GAAG,IAAI,qBAAK,CAAqB,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACtG,sBAAc,GAAG,KAAK,CAAC,eAAe,CAAC;QACvC,sBAAc,CAAC,WAAW,CAAC,EAAC,IAAI,EAAE,CAAC,EAAC,EAAE,EAAC,kBAAkB,EAAE,EAAE,EAAC,CAAC,CAAC;KAChE;SACI;QACJ,UAAU,CAAC;YACV,oBAAoB,EAAE,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC;KACN;AACF,CAAC","file":"queue-response.collection.js","sourcesContent":["import { ResolveIOServer } from '../index';\nimport { Collection, Model } from '../managers/mongo.manager';\nimport { QueueResponseModel } from '../models/queue-response.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true \n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tmethod: {\n\t\ttype: String\n\t},\n\tid_ws: {\n\t\ttype: String\n\t},\n\tmessageId: {\n\t\ttype: Number\n\t},\n\tid_user: {\n\t\ttype: String\n\t},\n\tuser: {\n\t\ttype: String\n\t},\n\tresponse: {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tdate: {\n\t\ttype: Date\n\t}\n};\n\nexport let QueueResponses: Collection<QueueResponseModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tconst model = new Model<QueueResponseModel>('queue-responses', schema, false, false, [], true, false);\n\t\tQueueResponses = model.collection_main;\n\t\tQueueResponses.createIndex({date: 1}, {expireAfterSeconds: 60});\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
@@ -65,7 +65,7 @@ exports.UserGroupVersions = null;
65
65
  initializeCollection();
66
66
  function initializeCollection() {
67
67
  if (index_1.ResolveIOServer.getMainDB()) {
68
- var model = new mongo_manager_1.Model('user-groups', schema, true, true, []);
68
+ var model = new mongo_manager_1.Model('user-groups', schema, true, true, [], true, false);
69
69
  exports.UserGroups = model.collection_main;
70
70
  exports.UserGroups.createIndex({ name: 1 });
71
71
  exports.UserGroupVersions = model.collection_version;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/collections/user-group.collection.ts"],"names":[],"mappings":";;;AAAA,kCAA2C;AAC3C,2DAA8D;AAG9D,IAAI,MAAM,GAAQ;IACjB,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,WAAW,EAAE;QACZ,IAAI,EAAE,KAAK;KACX;IACD,eAAe,EAAE;QAChB,IAAI,EAAG,MAAM;KACb;IACD,oBAAoB,EAAE;QACrB,IAAI,EAAE,MAAM;KACZ;IACD,wBAAwB,EAAE;QACzB,IAAI,EAAE,OAAO;KACb;IACD,qBAAqB,EAAE;QACtB,IAAI,EAAE,KAAK;KACX;IACD,uBAAuB,EAAE;QACxB,IAAI,EAAE,MAAM;KACZ;IACD,4BAA4B,EAAE;QAC7B,IAAI,EAAE,MAAM;KACZ;IACD,gCAAgC,EAAE;QACjC,IAAI,EAAE,OAAO;KACb;IACD,aAAa,EAAE;QACd,IAAI,EAAE,KAAK;KACX;IACD,iBAAiB,EAAE;QAClB,IAAI,EAAG,MAAM;KACb;IACD,sBAAsB,EAAE;QACvB,IAAI,EAAE,MAAM;KACZ;IACD,0BAA0B,EAAE;QAC3B,IAAI,EAAE,OAAO;KACb;CACD,CAAC;AAES,QAAA,UAAU,GAA+B,IAAI,CAAC;AAC9C,QAAA,iBAAiB,GAA+B,IAAI,CAAC;AAEhE,oBAAoB,EAAE,CAAC;AAEvB,SAAS,oBAAoB;IAC5B,IAAI,uBAAe,CAAC,SAAS,EAAE,EAAE;QAChC,IAAM,KAAK,GAAG,IAAI,qBAAK,CAAiB,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/E,kBAAU,GAAG,KAAK,CAAC,eAAe,CAAC;QACnC,kBAAU,CAAC,WAAW,CAAC,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAC;QAClC,yBAAiB,GAAG,KAAK,CAAC,kBAAkB,CAAC;KAC7C;SACI;QACJ,UAAU,CAAC;YACV,oBAAoB,EAAE,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC;KACN;AACF,CAAC","file":"user-group.collection.js","sourcesContent":["import { ResolveIOServer } from '../index';\nimport { Collection, Model } from '../managers/mongo.manager';\nimport { UserGroupModel } from '../models/user-group.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tname: {\n\t\ttype: String\n\t},\n\tpermissions: {\n\t\ttype: Array\n\t},\n\t'permissions.$': {\n\t\ttype: Object\n\t},\n\t'permissions.$.name': {\n\t\ttype: String\n\t},\n\t'permissions.$.selected': {\n\t\ttype: Boolean\n\t},\n\t'permissions.$.views': {\n\t\ttype: Array\n\t},\n\t'permissions.$.views.$': {\n\t\ttype: Object\n\t},\n\t'permissions.$.views.$.link': {\n\t\ttype: String\n\t},\n\t'permissions.$.views.$.selected': {\n\t\ttype: Boolean\n\t},\n\tnotifications: {\n\t\ttype: Array\n\t},\n\t'notifications.$': {\n\t\ttype: Object\n\t},\n\t'notifications.$.name': {\n\t\ttype: String\n\t},\n\t'notifications.$.selected': {\n\t\ttype: Boolean\n\t}\n};\n\nexport let UserGroups: Collection<UserGroupModel> = null;\nexport let UserGroupVersions: Collection<UserGroupModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tconst model = new Model<UserGroupModel>('user-groups', schema, true, true, []);\n\t\tUserGroups = model.collection_main;\n\t\tUserGroups.createIndex({name: 1});\n\t\tUserGroupVersions = model.collection_version;\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/collections/user-group.collection.ts"],"names":[],"mappings":";;;AAAA,kCAA2C;AAC3C,2DAA8D;AAG9D,IAAI,MAAM,GAAQ;IACjB,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,WAAW,EAAE;QACZ,IAAI,EAAE,KAAK;KACX;IACD,eAAe,EAAE;QAChB,IAAI,EAAG,MAAM;KACb;IACD,oBAAoB,EAAE;QACrB,IAAI,EAAE,MAAM;KACZ;IACD,wBAAwB,EAAE;QACzB,IAAI,EAAE,OAAO;KACb;IACD,qBAAqB,EAAE;QACtB,IAAI,EAAE,KAAK;KACX;IACD,uBAAuB,EAAE;QACxB,IAAI,EAAE,MAAM;KACZ;IACD,4BAA4B,EAAE;QAC7B,IAAI,EAAE,MAAM;KACZ;IACD,gCAAgC,EAAE;QACjC,IAAI,EAAE,OAAO;KACb;IACD,aAAa,EAAE;QACd,IAAI,EAAE,KAAK;KACX;IACD,iBAAiB,EAAE;QAClB,IAAI,EAAG,MAAM;KACb;IACD,sBAAsB,EAAE;QACvB,IAAI,EAAE,MAAM;KACZ;IACD,0BAA0B,EAAE;QAC3B,IAAI,EAAE,OAAO;KACb;CACD,CAAC;AAES,QAAA,UAAU,GAA+B,IAAI,CAAC;AAC9C,QAAA,iBAAiB,GAA+B,IAAI,CAAC;AAEhE,oBAAoB,EAAE,CAAC;AAEvB,SAAS,oBAAoB;IAC5B,IAAI,uBAAe,CAAC,SAAS,EAAE,EAAE;QAChC,IAAM,KAAK,GAAG,IAAI,qBAAK,CAAiB,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5F,kBAAU,GAAG,KAAK,CAAC,eAAe,CAAC;QACnC,kBAAU,CAAC,WAAW,CAAC,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAC;QAClC,yBAAiB,GAAG,KAAK,CAAC,kBAAkB,CAAC;KAC7C;SACI;QACJ,UAAU,CAAC;YACV,oBAAoB,EAAE,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC;KACN;AACF,CAAC","file":"user-group.collection.js","sourcesContent":["import { ResolveIOServer } from '../index';\nimport { Collection, Model } from '../managers/mongo.manager';\nimport { UserGroupModel } from '../models/user-group.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tname: {\n\t\ttype: String\n\t},\n\tpermissions: {\n\t\ttype: Array\n\t},\n\t'permissions.$': {\n\t\ttype: Object\n\t},\n\t'permissions.$.name': {\n\t\ttype: String\n\t},\n\t'permissions.$.selected': {\n\t\ttype: Boolean\n\t},\n\t'permissions.$.views': {\n\t\ttype: Array\n\t},\n\t'permissions.$.views.$': {\n\t\ttype: Object\n\t},\n\t'permissions.$.views.$.link': {\n\t\ttype: String\n\t},\n\t'permissions.$.views.$.selected': {\n\t\ttype: Boolean\n\t},\n\tnotifications: {\n\t\ttype: Array\n\t},\n\t'notifications.$': {\n\t\ttype: Object\n\t},\n\t'notifications.$.name': {\n\t\ttype: String\n\t},\n\t'notifications.$.selected': {\n\t\ttype: Boolean\n\t}\n};\n\nexport let UserGroups: Collection<UserGroupModel> = null;\nexport let UserGroupVersions: Collection<UserGroupModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tconst model = new Model<UserGroupModel>('user-groups', schema, true, true, [], true, false);\n\t\tUserGroups = model.collection_main;\n\t\tUserGroups.createIndex({name: 1});\n\t\tUserGroupVersions = model.collection_version;\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
@@ -34,7 +34,7 @@ exports.UserGuides = null;
34
34
  initializeCollection();
35
35
  function initializeCollection() {
36
36
  if (index_1.ResolveIOServer.getMainDB()) {
37
- var model = new mongo_manager_1.Model('user-guides', schema, false, false);
37
+ var model = new mongo_manager_1.Model('user-guides', schema, false, false, [], true, false);
38
38
  exports.UserGuides = model.collection_main;
39
39
  }
40
40
  else {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/collections/user-guide.collection.ts"],"names":[],"mappings":";;;AAAA,kCAA2C;AAC3C,2DAA8D;AAG9D,IAAI,MAAM,GAAQ;IACjB,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,KAAK,EAAE;QACN,IAAI,EAAE,MAAM;KACZ;IACD,OAAO,EAAE;QACR,IAAI,EAAE,MAAM;KACZ;CACD,CAAC;AAES,QAAA,UAAU,GAA+B,IAAI,CAAC;AAEzD,oBAAoB,EAAE,CAAC;AAEvB,SAAS,oBAAoB;IAC5B,IAAI,uBAAe,CAAC,SAAS,EAAE,EAAE;QAChC,IAAM,KAAK,GAAG,IAAI,qBAAK,CAAiB,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7E,kBAAU,GAAG,KAAK,CAAC,eAAe,CAAC;KACnC;SACI;QACJ,UAAU,CAAC;YACV,oBAAoB,EAAE,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC;KACN;AACF,CAAC","file":"user-guide.collection.js","sourcesContent":["import { ResolveIOServer } from '../index';\nimport { Collection, Model } from '../managers/mongo.manager';\nimport { UserGuideModel } from '../models/user-guide.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tlink: {\n\t\ttype: String\n\t},\n\tlabel: {\n\t\ttype: String\n\t},\n\tmessage: {\n\t\ttype: String\n\t},\n};\n\nexport let UserGuides: Collection<UserGuideModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tconst model = new Model<UserGuideModel>('user-guides', schema, false, false);\n\t\tUserGuides = model.collection_main;\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/collections/user-guide.collection.ts"],"names":[],"mappings":";;;AAAA,kCAA2C;AAC3C,2DAA8D;AAG9D,IAAI,MAAM,GAAQ;IACjB,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,KAAK,EAAE;QACN,IAAI,EAAE,MAAM;KACZ;IACD,OAAO,EAAE;QACR,IAAI,EAAE,MAAM;KACZ;CACD,CAAC;AAES,QAAA,UAAU,GAA+B,IAAI,CAAC;AAEzD,oBAAoB,EAAE,CAAC;AAEvB,SAAS,oBAAoB;IAC5B,IAAI,uBAAe,CAAC,SAAS,EAAE,EAAE;QAChC,IAAM,KAAK,GAAG,IAAI,qBAAK,CAAiB,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9F,kBAAU,GAAG,KAAK,CAAC,eAAe,CAAC;KACnC;SACI;QACJ,UAAU,CAAC;YACV,oBAAoB,EAAE,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC;KACN;AACF,CAAC","file":"user-guide.collection.js","sourcesContent":["import { ResolveIOServer } from '../index';\nimport { Collection, Model } from '../managers/mongo.manager';\nimport { UserGuideModel } from '../models/user-guide.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tlink: {\n\t\ttype: String\n\t},\n\tlabel: {\n\t\ttype: String\n\t},\n\tmessage: {\n\t\ttype: String\n\t},\n};\n\nexport let UserGuides: Collection<UserGuideModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tconst model = new Model<UserGuideModel>('user-guides', schema, false, false, [], true, false);\n\t\tUserGuides = model.collection_main;\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
@@ -230,7 +230,7 @@ exports.UserVersions = null;
230
230
  initializeCollection();
231
231
  function initializeCollection() {
232
232
  if (index_1.ResolveIOServer.getMainDB()) {
233
- var model = new mongo_manager_1.Model('users', schema, true, true, []);
233
+ var model = new mongo_manager_1.Model('users', schema, true, true, [], true, false);
234
234
  exports.Users = model.collection_main;
235
235
  exports.Users.createIndex({ fullname: 1 });
236
236
  exports.Users.createIndex({ active: 1 });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/collections/user.collection.ts"],"names":[],"mappings":"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","file":"user.collection.js","sourcesContent":["import { ResolveIOServer } from '../index';\nimport { Model, UserCollection } from '../managers/mongo.manager';\nimport { UserModel } from '../models/user.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\troles: {\n\t\ttype: Object\n\t},\n\t'roles.super_admin': {\n\t\ttype: Boolean\n\t},\n\t'roles.approvals': {\n\t\ttype: Array\n\t},\n\t'roles.approvals.$': {\n\t\ttype: Object\n\t},\n\t'roles.approvals.$.type': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.key_1': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.key_2': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.key_3': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.name': {\n\t\ttype: String\n\t},\n\t'roles.groups': {\n\t\ttype: Array\n\t},\n\t'roles.groups.$': {\n\t\ttype: Object\n\t},\n\t'roles.groups.$.name': {\n\t\ttype: String\n\t},\n\t'roles.groups.$.views': {\n\t\ttype: Array\n\t},\n\t'roles.groups.$.views.$': {\n\t\ttype: String\n\t},\n\t'roles.groups.$.yard': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'roles.notifications': {\n\t\ttype: Array\n\t},\n\t'roles.notifications.$': {\n\t\ttype: String\n\t},\n\t'roles.miscs': {\n\t\ttype: Array\n\t},\n\t'roles.miscs.$': {\n\t\ttype: String\n\t},\n\tusername: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\temail: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tfullname: {\n\t\ttype: String\n\t},\n\tactive: {\n\t\ttype: Boolean\n\t},\n\tphonenumber: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\treadonly: {\n\t\ttype: Boolean,\n\t\toptional: true\n\t},\n\tother: {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tsettings: {\n\t\ttype: Object,\n\t\toptional: true\n\t},\n\t'settings.table_color': {\n\t\ttype: String\n\t},\n\t'settings.table_font_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_table_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_table_font_color': {\n\t\ttype: String\n\t},\n\t'settings.tertiary_table_color': {\n\t\ttype: String\n\t},\n\t'settings.tertiary_table_font_color': {\n\t\ttype: String\n\t},\n\t'settings.font_size': {\n\t\ttype: Number\n\t},\n\t'settings.collapsable_menu': {\n\t\ttype: Boolean\n\t},\n\t'settings.entries_per_page': {\n\t\ttype: String\n\t},\n\t'settings.warning_color': {\n\t\ttype: String\n\t},\n\t'settings.warning_font_color': {\n\t\ttype: String\n\t},\n\t'settings.warning_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.success_color': {\n\t\ttype: String\n\t},\n\t'settings.success_font_color': {\n\t\ttype: String\n\t},\n\t'settings.success_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.danger_color': {\n\t\ttype: String\n\t},\n\t'settings.danger_font_color': {\n\t\ttype: String\n\t},\n\t'settings.danger_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.info_color': {\n\t\ttype: String\n\t},\n\t'settings.info_font_color': {\n\t\ttype: String\n\t},\n\t'settings.info_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.primary_color': {\n\t\ttype: String\n\t},\n\t'settings.primary_font_color': {\n\t\ttype: String\n\t},\n\t'settings.primary_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_font_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.routing_preference': {\n\t\ttype: String\n\t},\n\t'settings.opening_route': {\n\t\ttype: String\n\t},\n\tsalt: {\n\t\ttype: String\n\t},\n\thash: {\n\t\ttype: String\n\t},\n\tattempts: {\n\t\ttype: Number\n\t},\n\tlast: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tservices: {\n\t\ttype: Object,\n\t\toptional: true\n\t},\n\t'services.enrollment': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'services.forgot_password': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'services.reset_password': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n};\n\nexport let Users: UserCollection<UserModel> = null;\nexport let UserVersions: UserCollection<UserModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tconst model = new Model<UserModel>('users', schema, true, true, []);\n\t\tUsers = <UserCollection<UserModel>>model.collection_main;\n\t\tUsers.createIndex({fullname: 1});\n\t\tUsers.createIndex({active: 1});\n\t\tUserVersions = <UserCollection<UserModel>>model.collection_main;\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/collections/user.collection.ts"],"names":[],"mappings":"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","file":"user.collection.js","sourcesContent":["import { ResolveIOServer } from '../index';\nimport { Model, UserCollection } from '../managers/mongo.manager';\nimport { UserModel } from '../models/user.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\troles: {\n\t\ttype: Object\n\t},\n\t'roles.super_admin': {\n\t\ttype: Boolean\n\t},\n\t'roles.approvals': {\n\t\ttype: Array\n\t},\n\t'roles.approvals.$': {\n\t\ttype: Object\n\t},\n\t'roles.approvals.$.type': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.key_1': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.key_2': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.key_3': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.name': {\n\t\ttype: String\n\t},\n\t'roles.groups': {\n\t\ttype: Array\n\t},\n\t'roles.groups.$': {\n\t\ttype: Object\n\t},\n\t'roles.groups.$.name': {\n\t\ttype: String\n\t},\n\t'roles.groups.$.views': {\n\t\ttype: Array\n\t},\n\t'roles.groups.$.views.$': {\n\t\ttype: String\n\t},\n\t'roles.groups.$.yard': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'roles.notifications': {\n\t\ttype: Array\n\t},\n\t'roles.notifications.$': {\n\t\ttype: String\n\t},\n\t'roles.miscs': {\n\t\ttype: Array\n\t},\n\t'roles.miscs.$': {\n\t\ttype: String\n\t},\n\tusername: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\temail: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tfullname: {\n\t\ttype: String\n\t},\n\tactive: {\n\t\ttype: Boolean\n\t},\n\tphonenumber: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\treadonly: {\n\t\ttype: Boolean,\n\t\toptional: true\n\t},\n\tother: {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tsettings: {\n\t\ttype: Object,\n\t\toptional: true\n\t},\n\t'settings.table_color': {\n\t\ttype: String\n\t},\n\t'settings.table_font_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_table_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_table_font_color': {\n\t\ttype: String\n\t},\n\t'settings.tertiary_table_color': {\n\t\ttype: String\n\t},\n\t'settings.tertiary_table_font_color': {\n\t\ttype: String\n\t},\n\t'settings.font_size': {\n\t\ttype: Number\n\t},\n\t'settings.collapsable_menu': {\n\t\ttype: Boolean\n\t},\n\t'settings.entries_per_page': {\n\t\ttype: String\n\t},\n\t'settings.warning_color': {\n\t\ttype: String\n\t},\n\t'settings.warning_font_color': {\n\t\ttype: String\n\t},\n\t'settings.warning_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.success_color': {\n\t\ttype: String\n\t},\n\t'settings.success_font_color': {\n\t\ttype: String\n\t},\n\t'settings.success_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.danger_color': {\n\t\ttype: String\n\t},\n\t'settings.danger_font_color': {\n\t\ttype: String\n\t},\n\t'settings.danger_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.info_color': {\n\t\ttype: String\n\t},\n\t'settings.info_font_color': {\n\t\ttype: String\n\t},\n\t'settings.info_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.primary_color': {\n\t\ttype: String\n\t},\n\t'settings.primary_font_color': {\n\t\ttype: String\n\t},\n\t'settings.primary_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_font_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.routing_preference': {\n\t\ttype: String\n\t},\n\t'settings.opening_route': {\n\t\ttype: String\n\t},\n\tsalt: {\n\t\ttype: String\n\t},\n\thash: {\n\t\ttype: String\n\t},\n\tattempts: {\n\t\ttype: Number\n\t},\n\tlast: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tservices: {\n\t\ttype: Object,\n\t\toptional: true\n\t},\n\t'services.enrollment': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'services.forgot_password': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'services.reset_password': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n};\n\nexport let Users: UserCollection<UserModel> = null;\nexport let UserVersions: UserCollection<UserModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tconst model = new Model<UserModel>('users', schema, true, true, [], true, false);\n\t\tUsers = <UserCollection<UserModel>>model.collection_main;\n\t\tUsers.createIndex({fullname: 1});\n\t\tUsers.createIndex({active: 1});\n\t\tUserVersions = <UserCollection<UserModel>>model.collection_main;\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
@@ -12,7 +12,7 @@ export declare class MongoManager {
12
12
  export declare class Model<T> {
13
13
  collection_main: Collection<T> | UserCollection<T>;
14
14
  collection_version: Collection<T> | UserCollection<T>;
15
- constructor(collectionName: string, schema: object, useVersionCollection?: boolean, useReportBuilder?: boolean, reportBuilderLookupTables?: LookupTables[], timestamps?: boolean);
15
+ constructor(collectionName: string, schema: object, useVersionCollection?: boolean, useReportBuilder?: boolean, reportBuilderLookupTables?: LookupTables[], timestamps?: boolean, createLogs?: boolean);
16
16
  }
17
17
  export declare class Collection<T> {
18
18
  collectionName: string;
@@ -21,7 +21,8 @@ export declare class Collection<T> {
21
21
  timestamps: boolean;
22
22
  versionKey: string;
23
23
  versionCollection: string;
24
- constructor(collectionName: string, schema: object, useReportBuilder?: boolean, reportBuilderLookupTables?: LookupTables[], timestamps?: boolean);
24
+ createLogs: boolean;
25
+ constructor(collectionName: string, schema: object, useReportBuilder: any, reportBuilderLookupTables: LookupTables[], timestamps: any, createLogs: any);
25
26
  aggregate(pipeline: object[], options?: CollectionAggregationOptions): Promise<any[]>;
26
27
  aggregateCount(pipeline: object[], options?: CollectionAggregationOptions): Promise<number>;
27
28
  aggregateCursor(pipeline: object[], options?: CollectionAggregationOptions): import("mongodb").AggregationCursor<any>;
@@ -76,28 +76,29 @@ var MongoManager = /** @class */ (function () {
76
76
  }());
77
77
  exports.MongoManager = MongoManager;
78
78
  var Model = /** @class */ (function () {
79
- function Model(collectionName, schema, useVersionCollection, useReportBuilder, reportBuilderLookupTables, timestamps) {
79
+ function Model(collectionName, schema, useVersionCollection, useReportBuilder, reportBuilderLookupTables, timestamps, createLogs) {
80
80
  if (useVersionCollection === void 0) { useVersionCollection = false; }
81
81
  if (useReportBuilder === void 0) { useReportBuilder = true; }
82
82
  if (reportBuilderLookupTables === void 0) { reportBuilderLookupTables = []; }
83
83
  if (timestamps === void 0) { timestamps = true; }
84
+ if (createLogs === void 0) { createLogs = true; }
84
85
  this.collection_main = null;
85
86
  this.collection_version = null;
86
87
  if (collectionName === 'users') {
87
- this.collection_main = new UserCollection(collectionName, schema, useReportBuilder, reportBuilderLookupTables, timestamps);
88
+ this.collection_main = new UserCollection(collectionName, schema, useReportBuilder, reportBuilderLookupTables, timestamps, createLogs);
88
89
  }
89
90
  else {
90
- this.collection_main = new Collection(collectionName, schema, useReportBuilder, reportBuilderLookupTables, timestamps);
91
+ this.collection_main = new Collection(collectionName, schema, useReportBuilder, reportBuilderLookupTables, timestamps, createLogs);
91
92
  }
92
93
  if (useVersionCollection) {
93
94
  var versionSchema = common_1.deepCopy(schema);
94
95
  versionSchema['_id'].type = 'Object';
95
96
  versionSchema['_id'].blackbox = true;
96
97
  if (collectionName === 'users') {
97
- this.collection_version = new UserCollection(collectionName + '.versions', versionSchema, false);
98
+ this.collection_version = new UserCollection(collectionName + '.versions', versionSchema, false, [], true, false);
98
99
  }
99
100
  else {
100
- this.collection_version = new Collection(collectionName + '.versions', versionSchema, false);
101
+ this.collection_version = new Collection(collectionName + '.versions', versionSchema, false, [], true, false);
101
102
  }
102
103
  this.collection_version.createIndex({ '_id.__v': 1, '_id._id': 1 });
103
104
  this.collection_main.versionCollection = collectionName + '.versions';
@@ -107,20 +108,19 @@ var Model = /** @class */ (function () {
107
108
  }());
108
109
  exports.Model = Model;
109
110
  var Collection = /** @class */ (function () {
110
- function Collection(collectionName, schema, useReportBuilder, reportBuilderLookupTables, timestamps) {
111
+ function Collection(collectionName, schema, useReportBuilder, reportBuilderLookupTables, timestamps, createLogs) {
111
112
  var _this = this;
112
- if (useReportBuilder === void 0) { useReportBuilder = true; }
113
- if (reportBuilderLookupTables === void 0) { reportBuilderLookupTables = []; }
114
- if (timestamps === void 0) { timestamps = true; }
115
113
  this.collectionName = '';
116
114
  this.simplschema = null;
117
115
  this.rbSchema = null;
118
116
  this.timestamps = false;
119
117
  this.versionKey = '';
120
118
  this.versionCollection = '';
119
+ this.createLogs = true;
121
120
  this.collectionName = collectionName;
122
121
  this.simplschema = new simpl_schema_1.default(schema);
123
122
  this.timestamps = timestamps;
123
+ this.createLogs = createLogs;
124
124
  if (useReportBuilder) {
125
125
  var schemaCopy = common_1.deepCopy(schema);
126
126
  var rbSchema = common_1.buildRbLookups(reportBuilderLookupTables, schemaCopy, []);
@@ -170,7 +170,7 @@ var Collection = /** @class */ (function () {
170
170
  return __generator(this, function (_a) {
171
171
  switch (_a.label) {
172
172
  case 0:
173
- if (!(this.collectionName !== 'logs')) return [3 /*break*/, 2];
173
+ if (!this.createLogs) return [3 /*break*/, 2];
174
174
  return [4 /*yield*/, this.find(filter)];
175
175
  case 1:
176
176
  docs = _a.sent();
@@ -201,7 +201,7 @@ var Collection = /** @class */ (function () {
201
201
  return __generator(this, function (_a) {
202
202
  switch (_a.label) {
203
203
  case 0:
204
- if (!(this.collectionName !== 'logs')) return [3 /*break*/, 2];
204
+ if (!this.createLogs) return [3 /*break*/, 2];
205
205
  return [4 /*yield*/, this.findOne(filter)];
206
206
  case 1:
207
207
  doc = _a.sent();
@@ -239,7 +239,7 @@ var Collection = /** @class */ (function () {
239
239
  };
240
240
  Collection.prototype.find = function (filter, options) {
241
241
  if (filter === void 0) { filter = {}; }
242
- if (this.collectionName !== 'logs') {
242
+ if (this.createLogs) {
243
243
  log_collection_1.Logs.create({
244
244
  _id: objectIdHexString(),
245
245
  type: 'query',
@@ -256,7 +256,7 @@ var Collection = /** @class */ (function () {
256
256
  return index_1.ResolveIOServer.getMainDB().collection(this.collectionName).find(filter, options).toArray();
257
257
  };
258
258
  Collection.prototype.findById = function (id, options) {
259
- if (this.collectionName !== 'logs') {
259
+ if (this.createLogs) {
260
260
  log_collection_1.Logs.create({
261
261
  _id: objectIdHexString(),
262
262
  type: 'query',
@@ -274,7 +274,7 @@ var Collection = /** @class */ (function () {
274
274
  };
275
275
  Collection.prototype.findCount = function (filter, options) {
276
276
  if (filter === void 0) { filter = {}; }
277
- if (this.collectionName !== 'logs') {
277
+ if (this.createLogs) {
278
278
  log_collection_1.Logs.create({
279
279
  _id: objectIdHexString(),
280
280
  type: 'query',
@@ -300,7 +300,7 @@ var Collection = /** @class */ (function () {
300
300
  };
301
301
  Collection.prototype.findOne = function (filter, options) {
302
302
  if (filter === void 0) { filter = {}; }
303
- if (this.collectionName !== 'logs') {
303
+ if (this.createLogs) {
304
304
  log_collection_1.Logs.create({
305
305
  _id: objectIdHexString(),
306
306
  type: 'query',
@@ -324,7 +324,7 @@ var Collection = /** @class */ (function () {
324
324
  return __generator(this, function (_a) {
325
325
  switch (_a.label) {
326
326
  case 0:
327
- if (!(this.collectionName !== 'logs')) return [3 /*break*/, 2];
327
+ if (!this.createLogs) return [3 /*break*/, 2];
328
328
  return [4 /*yield*/, this.findOne(filter)];
329
329
  case 1:
330
330
  doc = _a.sent();
@@ -363,7 +363,7 @@ var Collection = /** @class */ (function () {
363
363
  switch (_a.label) {
364
364
  case 0:
365
365
  replacement['updatedAt'] = new Date();
366
- if (!(this.collectionName !== 'logs')) return [3 /*break*/, 2];
366
+ if (!this.createLogs) return [3 /*break*/, 2];
367
367
  return [4 /*yield*/, this.findOne(filter)];
368
368
  case 1:
369
369
  doc = _a.sent();
@@ -407,7 +407,7 @@ var Collection = /** @class */ (function () {
407
407
  else {
408
408
  update['$set']['updatedAt'] = new Date();
409
409
  }
410
- if (!(this.collectionName !== 'logs')) return [3 /*break*/, 2];
410
+ if (!this.createLogs) return [3 /*break*/, 2];
411
411
  return [4 /*yield*/, this.findOne(filter)];
412
412
  case 1:
413
413
  doc = _a.sent();
@@ -452,7 +452,7 @@ var Collection = /** @class */ (function () {
452
452
  doc['updatedAt'] = new Date();
453
453
  });
454
454
  }
455
- if (_this.collectionName !== 'logs') {
455
+ if (_this.createLogs) {
456
456
  docs.forEach(function (doc) {
457
457
  log_collection_1.Logs.create({
458
458
  _id: objectIdHexString(),
@@ -487,7 +487,7 @@ var Collection = /** @class */ (function () {
487
487
  doc['createdAt'] = new Date();
488
488
  doc['updatedAt'] = new Date();
489
489
  }
490
- if (_this.collectionName !== 'logs') {
490
+ if (_this.createLogs) {
491
491
  log_collection_1.Logs.create({
492
492
  _id: objectIdHexString(),
493
493
  type: 'document',
@@ -528,7 +528,7 @@ var Collection = /** @class */ (function () {
528
528
  return __generator(this, function (_a) {
529
529
  switch (_a.label) {
530
530
  case 0:
531
- if (!(this.collectionName !== 'logs')) return [3 /*break*/, 2];
531
+ if (!this.createLogs) return [3 /*break*/, 2];
532
532
  return [4 /*yield*/, this.findOne(filter)];
533
533
  case 1:
534
534
  doc = _a.sent();
@@ -568,7 +568,7 @@ var Collection = /** @class */ (function () {
568
568
  else {
569
569
  update['$set']['updatedAt'] = new Date();
570
570
  }
571
- if (!(this.collectionName !== 'logs')) return [3 /*break*/, 2];
571
+ if (!this.createLogs) return [3 /*break*/, 2];
572
572
  return [4 /*yield*/, this.find(filter)];
573
573
  case 1:
574
574
  docs = _a.sent();
@@ -604,7 +604,7 @@ var Collection = /** @class */ (function () {
604
604
  else {
605
605
  update['$set']['updatedAt'] = new Date();
606
606
  }
607
- if (!(this.collectionName !== 'logs')) return [3 /*break*/, 2];
607
+ if (!this.createLogs) return [3 /*break*/, 2];
608
608
  return [4 /*yield*/, this.findOne(filter)];
609
609
  case 1:
610
610
  doc = _a.sent();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/managers/mongo.manager.ts"],"names":[],"mappings":"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","file":"mongo.manager.js","sourcesContent":["import SimpleSchema from 'simpl-schema';\nimport { ChangeStreamOptions, ClientSession, CollectionAggregationOptions, CollectionInsertManyOptions, CollectionInsertOneOptions, CommonOptions, FilterQuery, FindOneAndDeleteOption, FindOneAndReplaceOption, FindOneAndUpdateOption, FindOneOptions, IndexOptions, IndexSpecification, MongoCountPreferences, MongoDistinctPreferences, ReadPreferenceOrMode, ReplaceOneOptions, UpdateManyOptions, UpdateOneOptions, UpdateQuery, ObjectId } from 'mongodb';\nimport { LookupTables } from '../models/report-builder.model';\nimport { ResolveIOServer } from '../index';\nimport { Users } from '../collections/user.collection';\nimport { buildRbLookups, buildRbSchema, deepCopy, getBinarySize } from '../util/common';\nimport { UserModel } from '../models/user.model';\nimport { Logs } from '../collections/log.collection';\nconst crypto = require('crypto');\nconst scmp = require('scmp');\n\nexport class MongoManager {\n\tprivate _server;\n\tprivate _collections: Collection<any>[] = [];\n\n\tconstructor(mainServer) {\n\t\tthis._server = mainServer;\n\t}\n\n\tregisterCollection(collection: Collection<any>) {\n\t\tthis._collections.push(collection);\n\t}\n\n\tcollections() {\n\t\treturn this._collections;\n\t}\n\n\tcollection(collectionName: string): Collection<any> | UserCollection<any> {\n\t\treturn this._collections.filter(a => a.collectionName === collectionName)[0];\n\t}\n}\n\nexport class Model<T> {\n\tcollection_main: Collection<T> | UserCollection<T> = null;\n\tcollection_version: Collection<T> | UserCollection<T> = null;\n\n\tconstructor(collectionName: string, schema: object, useVersionCollection = false, useReportBuilder = true, reportBuilderLookupTables: LookupTables[] = [], timestamps = true) {\n\t\tif (collectionName === 'users') {\n\t\t\tthis.collection_main = new UserCollection<T>(collectionName, schema, useReportBuilder, reportBuilderLookupTables, timestamps);\n\t\t}\n\t\telse {\n\t\t\tthis.collection_main = new Collection<T>(collectionName, schema, useReportBuilder, reportBuilderLookupTables, timestamps);\n\t\t}\n\n\t\tif (useVersionCollection) {\n\t\t\tlet versionSchema = deepCopy(schema);\n\t\t\tversionSchema['_id'].type = 'Object';\n\t\t\tversionSchema['_id'].blackbox = true;\n\n\t\t\tif (collectionName === 'users') {\n\t\t\t\tthis.collection_version = new UserCollection<T>(collectionName + '.versions', versionSchema, false);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.collection_version = new Collection<T>(collectionName + '.versions', versionSchema, false);\n\t\t\t}\n\t\t\tthis.collection_version.createIndex({'_id.__v': 1, '_id._id': 1});\n\t\t\tthis.collection_main.versionCollection = collectionName + '.versions';\n\t\t}\n\t}\n}\n\nexport class Collection<T> {\n\tcollectionName = '';\n\tsimplschema = null;\n\trbSchema = null;\n\ttimestamps = false;\n\tversionKey = '';\n\tversionCollection = '';\n\t\n\tconstructor(collectionName: string, schema: object, useReportBuilder = true, reportBuilderLookupTables: LookupTables[] = [], timestamps = true) {\n\t\tthis.collectionName = collectionName;\n\t\tthis.simplschema = new SimpleSchema(schema);\n\t\tthis.timestamps = timestamps;\n\n\t\tif (useReportBuilder) {\n\t\t\tlet schemaCopy = deepCopy(schema);\n\t\t\tlet rbSchema = buildRbLookups(reportBuilderLookupTables, schemaCopy, []);\n\t\t\tthis.rbSchema = buildRbSchema(rbSchema);\n\t\t}\n\n\t\tlet interval = setInterval(() => {\n\t\t\tif (ResolveIOServer && ResolveIOServer.getMainServer() && ResolveIOServer.getMainServer().getMongoServer()) {\n\t\t\t\tResolveIOServer.getMainServer().getMongoServer().registerCollection(this);\n\t\t\t\tclearInterval(interval);\n\t\t\t}\n\t\t}, 0);\n\t}\n\n\taggregate(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options).toArray();\n\t}\n\n\taggregateCount(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options).count();\n\t}\n\n\taggregateCursor(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options);\n\t}\n\n\taggregateStream(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options).stream();\n\t}\n\n\tcountDocuments(filter: FilterQuery<T> = {}, options?: MongoCountPreferences) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).countDocuments(filter, options);\n\t}\n\n\tcreate(f_docs: T | T[], options?: CollectionInsertManyOptions): Promise<T | T[]> {\n\t\tlet docs = [];\n\n\t\tif (!Array.isArray(f_docs)) {\n\t\t\treturn this.insertOne(f_docs, options);\n\t\t}\n\n\t\treturn this.insertMany(docs, options);\n\t}\n\n\tcreateIndex(fieldOrSpec: any, options?: IndexOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).createIndex(fieldOrSpec, options);\n\t}\n\n\tcreateIndexes(indexSpecs: IndexSpecification[], options?: { session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).createIndexes(indexSpecs, options);\n\t}\n\n\tasync deleteMany(filter: FilterQuery<T> = {}, options?: CommonOptions) {\n\t\tif (this.collectionName !== 'logs') {\n\t\t\tlet docs = await this.find(filter);\n\n\t\t\tdocs.forEach(doc => {\n\t\t\t\tLogs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'document',\n\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, options])) < 200000 ? JSON.stringify([doc, filter, options], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: 'deleteMany',\n\t\t\t\t\tid_user: '',\n\t\t\t\t\tuser: '',\n\t\t\t\t\tmessageId: '',\n\t\t\t\t\troute: ''\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).deleteMany(filter, options);\n\t}\n\n\tasync deleteOne(filter: FilterQuery<T> = {}, options?: CommonOptions & { bypassDocumentValidation?: boolean; }) {\n\t\tif (this.collectionName !== 'logs') {\n\t\t\tlet doc = await this.findOne(filter);\n\n\t\t\tif (doc) {\n\t\t\t\tLogs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'document',\n\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, options])) < 200000 ? JSON.stringify([doc, filter, options], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: 'deleteMany',\n\t\t\t\t\tid_user: '',\n\t\t\t\t\tuser: '',\n\t\t\t\t\tmessageId: '',\n\t\t\t\t\troute: ''\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).deleteOne(filter, options);\n\t}\n\n\tdistinct(key: string, filter?: FilterQuery<T>, options?: MongoDistinctPreferences): Promise<T[]> {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).distinct(key, filter, options);\n\t}\n\n\tdrop(options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).drop(options);\n\t}\n\n\tdropIndex(indexName: string, options?: CommonOptions & { maxTimeMS?: number; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).dropIndex(indexName, options);\n\t}\n\n\tdropIndexes(options?: { session?: ClientSession; maxTimeMS?: number; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).dropIndexes(options);\n\t}\n\n\tfind(filter: FilterQuery<T> = {}, options?: FindOneOptions<T>): Promise<T[]> {\n\t\tif (this.collectionName !== 'logs') {\n\t\t\tLogs.create({\n\t\t\t\t_id: objectIdHexString(),\n\t\t\t\ttype: 'query',\n\t\t\t\tcollection: this.collectionName,\n\t\t\t\tid_document: '',\n\t\t\t\tpayload: getBinarySize(JSON.stringify([filter, options])) < 200000 ? JSON.stringify([filter, options], null, 2) : 'Too Big',\n\t\t\t\tmethod: 'find',\n\t\t\t\tid_user: '',\n\t\t\t\tuser: '',\n\t\t\t\tmessageId: '',\n\t\t\t\troute: ''\n\t\t\t});\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filter, <T>options).toArray();\n\t}\n\n\tfindById(id: string, options?: FindOneOptions<T>): Promise<T> {\n\t\tif (this.collectionName !== 'logs') {\n\t\t\tLogs.create({\n\t\t\t\t_id: objectIdHexString(),\n\t\t\t\ttype: 'query',\n\t\t\t\tcollection: this.collectionName,\n\t\t\t\tid_document: id,\n\t\t\t\tpayload: getBinarySize(JSON.stringify([id, options])) < 200000 ? JSON.stringify([id, options], null, 2) : 'Too Big',\n\t\t\t\tmethod: 'findById',\n\t\t\t\tid_user: '',\n\t\t\t\tuser: '',\n\t\t\t\tmessageId: '',\n\t\t\t\troute: ''\n\t\t\t});\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).findOne({_id: id}, <T>options);\n\t}\n\n\tfindCount(filter: FilterQuery<T> = {}, options?: FindOneOptions<T>) {\n\t\tif (this.collectionName !== 'logs') {\n\t\t\tLogs.create({\n\t\t\t\t_id: objectIdHexString(),\n\t\t\t\ttype: 'query',\n\t\t\t\tcollection: this.collectionName,\n\t\t\t\tid_document: '',\n\t\t\t\tpayload: getBinarySize(JSON.stringify([filter, options])) < 200000 ? JSON.stringify([filter, options], null, 2) : 'Too Big',\n\t\t\t\tmethod: 'findCount',\n\t\t\t\tid_user: '',\n\t\t\t\tuser: '',\n\t\t\t\tmessageId: '',\n\t\t\t\troute: ''\n\t\t\t});\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filter, <T>options).count();\n\t}\n\n\tfindCursor(filter: FilterQuery<T> = {}, options?: FindOneOptions<T>) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filter, <T>options);\n\t}\n\n\tfindStream(filter: FilterQuery<T> = {}, options?: FindOneOptions<T>, streamOptions?: any) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filter, <T>options).stream(streamOptions);\n\t}\n\n\tfindOne(filter: FilterQuery<T> = {}, options?: FindOneOptions<T>): Promise<T> {\n\t\tif (this.collectionName !== 'logs') {\n\t\t\tLogs.create({\n\t\t\t\t_id: objectIdHexString(),\n\t\t\t\ttype: 'query',\n\t\t\t\tcollection: this.collectionName,\n\t\t\t\tid_document: '',\n\t\t\t\tpayload: getBinarySize(JSON.stringify([filter, options])) < 200000 ? JSON.stringify([filter, options], null, 2) : 'Too Big',\n\t\t\t\tmethod: 'findOne',\n\t\t\t\tid_user: '',\n\t\t\t\tuser: '',\n\t\t\t\tmessageId: '',\n\t\t\t\troute: ''\n\t\t\t});\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).findOne(filter, <T>options);\n\t}\n\n\tasync findOneAndDelete(filter: FilterQuery<T> = {}, options?: FindOneAndDeleteOption<T>): Promise<T> {\n\t\tif (this.collectionName !== 'logs') {\n\t\t\tlet doc = await this.findOne(filter);\n\n\t\t\tif (doc) {\n\t\t\t\tLogs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'document',\n\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, options])) < 200000 ? JSON.stringify([doc, filter, options], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: 'findOneAndDelete',\n\t\t\t\t\tid_user: '',\n\t\t\t\t\tuser: '',\n\t\t\t\t\tmessageId: '',\n\t\t\t\t\troute: ''\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).findOneAndDelete(filter, options).then(res => {\n\t\t\t\tresolve(res.value);\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tfindOneAndReplace(filter: FilterQuery<T> = {}, replacement: T, options?: FindOneAndReplaceOption<T>): Promise<T> {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\treplacement['updatedAt'] = new Date();\n\n\t\t\tif (this.collectionName !== 'logs') {\n\t\t\t\tlet doc = await this.findOne(filter);\n\n\t\t\t\tif (doc) {\n\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\ttype: 'document',\n\t\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, replacement, options])) < 200000 ? JSON.stringify([doc, filter, replacement, options], null, 2) : 'Too Big',\n\t\t\t\t\t\tmethod: 'findOneAndReplace',\n\t\t\t\t\t\tid_user: '',\n\t\t\t\t\t\tuser: '',\n\t\t\t\t\t\tmessageId: '',\n\t\t\t\t\t\troute: ''\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).findOneAndReplace(filter, <any>replacement, options).then(res => {\n\t\t\t\tresolve(res.value);\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tfindOneAndUpdate(filter: FilterQuery<T> = {}, update: any, options?: FindOneAndUpdateOption<T>): Promise<T> {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif (!update['$set']) {\n\t\t\t\tupdate['$set'] = {updatedAt: new Date()};\n\t\t\t}\n\t\t\telse {\n\t\t\t\tupdate['$set']['updatedAt'] = new Date();\n\t\t\t}\n\n\t\t\tif (this.collectionName !== 'logs') {\n\t\t\t\tlet doc = await this.findOne(filter);\n\n\t\t\t\tif (doc) {\n\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\ttype: 'document',\n\t\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, update, options])) < 200000 ? JSON.stringify([doc, filter, update, options], null, 2) : 'Too Big',\n\t\t\t\t\t\tmethod: 'findOneAndUpdate',\n\t\t\t\t\t\tid_user: '',\n\t\t\t\t\t\tuser: '',\n\t\t\t\t\t\tmessageId: '',\n\t\t\t\t\t\troute: ''\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).findOneAndUpdate(filter, update, options).then(res => {\n\t\t\t\tresolve(res.value);\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tindexes(options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).indexes(options);\n\t}\n\n\tindexExists(indexes: string | string[], options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).indexExists(indexes, options);\n\t}\n\n\tinsertMany(docs: T[], options?: CollectionInsertManyOptions): Promise<T[]> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (this.timestamps) {\n\t\t\t\tdocs.forEach(doc => {\n\t\t\t\t\tdoc['createdAt'] = new Date();\n\t\t\t\t\tdoc['updatedAt'] = new Date();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.collectionName !== 'logs') {\n\t\t\t\tdocs.forEach(doc => {\n\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\ttype: 'document',\n\t\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, options])) < 200000 ? JSON.stringify([doc, options], null, 2) : 'Too Big',\n\t\t\t\t\t\tmethod: 'insertMany',\n\t\t\t\t\t\tid_user: '',\n\t\t\t\t\t\tuser: '',\n\t\t\t\t\t\tmessageId: '',\n\t\t\t\t\t\troute: ''\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).insertMany(docs, options).then(res => {\n\t\t\t\tif (res.result.ok) {\n\t\t\t\t\tresolve(docs);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treject(res.result.ok);\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tinsertOne(doc: T, options?: CollectionInsertOneOptions): Promise<T> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (this.timestamps) {\n\t\t\t\tdoc['createdAt'] = new Date();\n\t\t\t\tdoc['updatedAt'] = new Date();\n\t\t\t}\n\n\t\t\tif (this.collectionName !== 'logs') {\n\t\t\t\tLogs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'document',\n\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, options])) < 200000 ? JSON.stringify([doc, options], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: 'insertOne',\n\t\t\t\t\tid_user: '',\n\t\t\t\t\tuser: '',\n\t\t\t\t\tmessageId: '',\n\t\t\t\t\troute: ''\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).insertOne(doc, options).then(res => {\n\t\t\t\tif (res.result.ok) {\n\t\t\t\t\tresolve(doc);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treject(res.result.ok);\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tlistIndexes(options?: { batchSize?: number; readPreference?: ReadPreferenceOrMode; session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).listIndexes(options);\n\t}\n\n\treIndex(options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).reIndex(options);\n\t}\n\n\trename(newName: string, options?: { dropTarget?: boolean; session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).rename(newName, options);\n\t}\n\n\tasync replaceOne(filter: FilterQuery<T>, replacement: T, options?: ReplaceOneOptions) {\n\t\tif (this.collectionName !== 'logs') {\n\t\t\tlet doc = await this.findOne(filter);\n\n\t\t\tif (doc) {\n\t\t\t\tLogs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'document',\n\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, replacement, options])) < 200000 ? JSON.stringify([doc, filter, replacement, options], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: 'replaceOne',\n\t\t\t\t\tid_user: '',\n\t\t\t\t\tuser: '',\n\t\t\t\t\tmessageId: '',\n\t\t\t\t\troute: ''\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).replaceOne(filter, replacement, options);\n\t}\n\n\tstats(options?: { scale: number; session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).stats(options);\n\t}\n\n\tasync updateMany(filter: FilterQuery<T>, update: UpdateQuery<T> | Partial<T>, options?: UpdateManyOptions) {\n\t\tif (!update['$set']) {\n\t\t\tupdate['$set'] = {updatedAt: new Date()};\n\t\t}\n\t\telse {\n\t\t\tupdate['$set']['updatedAt'] = new Date();\n\t\t}\n\n\t\tif (this.collectionName !== 'logs') {\n\t\t\tlet docs = await this.find(filter);\n\n\t\t\tdocs.forEach(doc => {\n\t\t\t\tLogs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'document',\n\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, update, options])) < 200000 ? JSON.stringify([doc, filter, update, options], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: 'updateMany',\n\t\t\t\t\tid_user: '',\n\t\t\t\t\tuser: '',\n\t\t\t\t\tmessageId: '',\n\t\t\t\t\troute: ''\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).updateMany(filter, update, options);\n\t}\n\n\tasync updateOne(filter: FilterQuery<T>, update: UpdateQuery<T> | Partial<T>, options?: UpdateOneOptions) {\n\t\tif (!update['$set']) {\n\t\t\tupdate['$set'] = {updatedAt: new Date()};\n\t\t}\n\t\telse {\n\t\t\tupdate['$set']['updatedAt'] = new Date();\n\t\t}\n\n\t\tif (this.collectionName !== 'logs') {\n\t\t\tlet doc = await this.findOne(filter);\n\n\t\t\tif (doc) {\n\t\t\t\tLogs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'document',\n\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, update, options])) < 200000 ? JSON.stringify([doc, filter, update, options], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: 'updateOne',\n\t\t\t\t\tid_user: '',\n\t\t\t\t\tuser: '',\n\t\t\t\t\tmessageId: '',\n\t\t\t\t\troute: ''\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).updateOne(filter, update, options);\n\t}\n\t\n\twatchCollection(options?: ChangeStreamOptions & { session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).watch(options);\n\t}\n\n\twatchCollectionWithAggregate(pipeline?: object[], options?: ChangeStreamOptions & { session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).watch(pipeline, options);\n\t}\n}\n\nexport class UserCollection<T> extends Collection<T> {\n\tauthenticateStrategy() {\n\t\treturn async (username, password, cb) => {\n\t\t\tlet user = await Users.findOne({username: username});\n\t\t\tthis.authenticate(user, password).then(authUser => {\n\t\t\t\tif (authUser.data) {\n\t\t\t\t\tcb(null, user, null);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcb(null, null, authUser.error);\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\tcb(err, null, null);\n\t\t\t})\n\t\t};\n\t}\n\n\tauthenticate(user: UserModel, password: string): Promise<{data: UserModel, error: string}> {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tconst attemptsInterval = Math.pow(100, Math.log(user.attempts + 1));\n\t\t\tconst calculatedInterval = attemptsInterval < 300000 ? attemptsInterval : 300000;\n\t\t\n\t\t\tif (Date.now() - user.last.getTime() < calculatedInterval) {\n\t\t\t\tuser.last = new Date();\n\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {last: user.last}});\n\t\t\t\tresolve({\n\t\t\t\t\tdata: null,\n\t\t\t\t\terror: 'Attempt Too Soon'\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\n\t\t\tif (user.attempts >= 5) {\n\t\t\t\tresolve({\n\t\t\t\t\tdata: null,\n\t\t\t\t\terror: 'Too Many Attempts'\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tif (!user.salt) {\n\t\t\t\tresolve({\n\t\t\t\t\tdata: null,\n\t\t\t\t\terror: 'No Salt Value Stored'\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tpbkdf2(password, user.salt, {\n\t\t\t\titerations: 25000,\n\t\t\t\tkeylen: 512,\n\t\t\t\tdigestAlgorithm: 'sha256'\n\t\t\t}, async (err, hashBuffer) => {\n\t\t\t\tif (err) {\n\t\t\t\t\treturn reject(err);\n\t\t\t\t}\n\t\t\t\n\t\t\t\tif (scmp(hashBuffer, Buffer.from(user.hash, 'hex'))) {\n\t\t\t\t\tuser.last = new Date();\n\t\t\t\t\tuser.attempts = 0;\n\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {last: user.last, attempts: user.attempts}});\n\n\t\t\t\t\tresolve({\n\t\t\t\t\t\tdata: user,\n\t\t\t\t\t\terror: ''\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tuser.last = new Date();\n\t\t\t\t\tuser.attempts = user.attempts + 1;\n\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {last: user.last, attempts: user.attempts}});\n\n\t\t\t\t\tif (user.attempts >= 5) {\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\t\terror: 'Too Many Attempts'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\t\terror: 'Invalid Username And Password'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} \n\t\t\t});\n\t\t});\n\t}\n\n\tserializeUser() {\n\t\treturn (user, cb) => {\n\t\t\tcb(null, user.username);\n\t\t};\n\t}\n\n\tdeserializeUser() {\n\t\treturn (username, cb) => {\n\t\t\tUsers.findOne({username: username}).then(res => {\n\t\t\t\tcb(null, res);\n\t\t\t}, err => {\n\t\t\t\tcb(err, null);\n\t\t\t});\n\t\t};\n\t}\n\n\tsetPassword(user: UserModel, password: string) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif (!user) {\n\t\t\t\treject('No User');\n\t\t\t}\n\t\t\telse if (!password) {\n\t\t\t\treject('No Password');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet saltBuffer = await randomBytes(32);\n\t\t\t\tlet salt = saltBuffer.toString('hex');\n\t\t\t\tlet hashRaw = await pbkdf2Promisified(password, salt, {\n\t\t\t\t\titerations: 25000,\n\t\t\t\t\tkeylen: 512,\n\t\t\t\t\tdigestAlgorithm: 'sha256'\n\t\t\t\t});\n\t\t\t\tlet hash = Buffer.from(hashRaw, 'binary').toString('hex');\n\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {hash: hash, salt: salt, services: {}}});\n\t\t\t}\n\t\t});\n\t};\n\n\tchangePassword(user, oldPassword, newPassword) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif (!user) {\n\t\t\t\treject('Missing User');\n\t\t\t}\n\t\t\telse if (!oldPassword || !newPassword) {\n\t\t\t\treject('Missing Password');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet authUser = await this.authenticate(user, oldPassword);\n\n\t\t\t\tif (!authUser['data']) {\n\t\t\t\t\treject(authUser['error']);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.setPassword(user, newPassword);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t\n\tregister(user, password) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif (!user.username) {\n\t\t\t\treject('Missing Username');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet dbUser = await Users.findOne({username: user.username});\n\t\t\t\t\n\t\t\t\tif (dbUser) {\n\t\t\t\t\treject('Username Exists');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdbUser = await Users.findOne({email: user.email});\n\n\t\t\t\t\tif (dbUser) {\n\t\t\t\t\t\treject('Email Exists');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tuser.setPassword(password);\n\t\t\t\t\t\tresolve(user);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tresetAttempts(user: UserModel) {\n\t\treturn Users.updateOne({_id: user._id}, {$set: {attempts: 0}});\n\t}\n}\n\nexport function objectIdHexString() {\n\tlet objectId = new ObjectId();\n\treturn objectId.toHexString();\n}\n\nfunction pbkdf2(password, salt, options, callback) {\n\tcrypto.pbkdf2(password, salt, options.iterations, options.keylen, options.digestAlgorithm, callback);\n};\n\nfunction pbkdf2Promisified(password, salt, options): Promise<any> {\n\treturn new Promise((resolve, reject) => pbkdf2(password, salt, options, (err, hashRaw) => (err ? reject(err) : resolve(hashRaw))));\n}\n\nfunction randomBytes(saltlen): Promise<Buffer> {\n\treturn new Promise((resolve, reject) => crypto.randomBytes(saltlen, (err, saltBuffer) => (err ? reject(err) : resolve(saltBuffer))));\n}"]}
1
+ {"version":3,"sources":["../../src/managers/mongo.manager.ts"],"names":[],"mappings":"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","file":"mongo.manager.js","sourcesContent":["import SimpleSchema from 'simpl-schema';\nimport { ChangeStreamOptions, ClientSession, CollectionAggregationOptions, CollectionInsertManyOptions, CollectionInsertOneOptions, CommonOptions, FilterQuery, FindOneAndDeleteOption, FindOneAndReplaceOption, FindOneAndUpdateOption, FindOneOptions, IndexOptions, IndexSpecification, MongoCountPreferences, MongoDistinctPreferences, ReadPreferenceOrMode, ReplaceOneOptions, UpdateManyOptions, UpdateOneOptions, UpdateQuery, ObjectId } from 'mongodb';\nimport { LookupTables } from '../models/report-builder.model';\nimport { ResolveIOServer } from '../index';\nimport { Users } from '../collections/user.collection';\nimport { buildRbLookups, buildRbSchema, deepCopy, getBinarySize } from '../util/common';\nimport { UserModel } from '../models/user.model';\nimport { Logs } from '../collections/log.collection';\nconst crypto = require('crypto');\nconst scmp = require('scmp');\n\nexport class MongoManager {\n\tprivate _server;\n\tprivate _collections: Collection<any>[] = [];\n\n\tconstructor(mainServer) {\n\t\tthis._server = mainServer;\n\t}\n\n\tregisterCollection(collection: Collection<any>) {\n\t\tthis._collections.push(collection);\n\t}\n\n\tcollections() {\n\t\treturn this._collections;\n\t}\n\n\tcollection(collectionName: string): Collection<any> | UserCollection<any> {\n\t\treturn this._collections.filter(a => a.collectionName === collectionName)[0];\n\t}\n}\n\nexport class Model<T> {\n\tcollection_main: Collection<T> | UserCollection<T> = null;\n\tcollection_version: Collection<T> | UserCollection<T> = null;\n\n\tconstructor(collectionName: string, schema: object, useVersionCollection = false, useReportBuilder = true, reportBuilderLookupTables: LookupTables[] = [], timestamps = true, createLogs = true) {\n\t\tif (collectionName === 'users') {\n\t\t\tthis.collection_main = new UserCollection<T>(collectionName, schema, useReportBuilder, reportBuilderLookupTables, timestamps, createLogs);\n\t\t}\n\t\telse {\n\t\t\tthis.collection_main = new Collection<T>(collectionName, schema, useReportBuilder, reportBuilderLookupTables, timestamps, createLogs);\n\t\t}\n\n\t\tif (useVersionCollection) {\n\t\t\tlet versionSchema = deepCopy(schema);\n\t\t\tversionSchema['_id'].type = 'Object';\n\t\t\tversionSchema['_id'].blackbox = true;\n\n\t\t\tif (collectionName === 'users') {\n\t\t\t\tthis.collection_version = new UserCollection<T>(collectionName + '.versions', versionSchema, false, [], true, false);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.collection_version = new Collection<T>(collectionName + '.versions', versionSchema, false, [], true, false);\n\t\t\t}\n\t\t\tthis.collection_version.createIndex({'_id.__v': 1, '_id._id': 1});\n\t\t\tthis.collection_main.versionCollection = collectionName + '.versions';\n\t\t}\n\t}\n}\n\nexport class Collection<T> {\n\tcollectionName = '';\n\tsimplschema = null;\n\trbSchema = null;\n\ttimestamps = false;\n\tversionKey = '';\n\tversionCollection = '';\n\tcreateLogs = true;\n\t\n\tconstructor(collectionName: string, schema: object, useReportBuilder, reportBuilderLookupTables: LookupTables[], timestamps, createLogs) {\n\t\tthis.collectionName = collectionName;\n\t\tthis.simplschema = new SimpleSchema(schema);\n\t\tthis.timestamps = timestamps;\n\t\tthis.createLogs = createLogs;\n\n\t\tif (useReportBuilder) {\n\t\t\tlet schemaCopy = deepCopy(schema);\n\t\t\tlet rbSchema = buildRbLookups(reportBuilderLookupTables, schemaCopy, []);\n\t\t\tthis.rbSchema = buildRbSchema(rbSchema);\n\t\t}\n\n\t\tlet interval = setInterval(() => {\n\t\t\tif (ResolveIOServer && ResolveIOServer.getMainServer() && ResolveIOServer.getMainServer().getMongoServer()) {\n\t\t\t\tResolveIOServer.getMainServer().getMongoServer().registerCollection(this);\n\t\t\t\tclearInterval(interval);\n\t\t\t}\n\t\t}, 0);\n\t}\n\n\taggregate(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options).toArray();\n\t}\n\n\taggregateCount(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options).count();\n\t}\n\n\taggregateCursor(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options);\n\t}\n\n\taggregateStream(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options).stream();\n\t}\n\n\tcountDocuments(filter: FilterQuery<T> = {}, options?: MongoCountPreferences) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).countDocuments(filter, options);\n\t}\n\n\tcreate(f_docs: T | T[], options?: CollectionInsertManyOptions): Promise<T | T[]> {\n\t\tlet docs = [];\n\n\t\tif (!Array.isArray(f_docs)) {\n\t\t\treturn this.insertOne(f_docs, options);\n\t\t}\n\n\t\treturn this.insertMany(docs, options);\n\t}\n\n\tcreateIndex(fieldOrSpec: any, options?: IndexOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).createIndex(fieldOrSpec, options);\n\t}\n\n\tcreateIndexes(indexSpecs: IndexSpecification[], options?: { session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).createIndexes(indexSpecs, options);\n\t}\n\n\tasync deleteMany(filter: FilterQuery<T> = {}, options?: CommonOptions) {\n\t\tif (this.createLogs) {\n\t\t\tlet docs = await this.find(filter);\n\n\t\t\tdocs.forEach(doc => {\n\t\t\t\tLogs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'document',\n\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, options])) < 200000 ? JSON.stringify([doc, filter, options], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: 'deleteMany',\n\t\t\t\t\tid_user: '',\n\t\t\t\t\tuser: '',\n\t\t\t\t\tmessageId: '',\n\t\t\t\t\troute: ''\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).deleteMany(filter, options);\n\t}\n\n\tasync deleteOne(filter: FilterQuery<T> = {}, options?: CommonOptions & { bypassDocumentValidation?: boolean; }) {\n\t\tif (this.createLogs) {\n\t\t\tlet doc = await this.findOne(filter);\n\n\t\t\tif (doc) {\n\t\t\t\tLogs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'document',\n\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, options])) < 200000 ? JSON.stringify([doc, filter, options], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: 'deleteMany',\n\t\t\t\t\tid_user: '',\n\t\t\t\t\tuser: '',\n\t\t\t\t\tmessageId: '',\n\t\t\t\t\troute: ''\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).deleteOne(filter, options);\n\t}\n\n\tdistinct(key: string, filter?: FilterQuery<T>, options?: MongoDistinctPreferences): Promise<T[]> {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).distinct(key, filter, options);\n\t}\n\n\tdrop(options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).drop(options);\n\t}\n\n\tdropIndex(indexName: string, options?: CommonOptions & { maxTimeMS?: number; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).dropIndex(indexName, options);\n\t}\n\n\tdropIndexes(options?: { session?: ClientSession; maxTimeMS?: number; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).dropIndexes(options);\n\t}\n\n\tfind(filter: FilterQuery<T> = {}, options?: FindOneOptions<T>): Promise<T[]> {\n\t\tif (this.createLogs) {\n\t\t\tLogs.create({\n\t\t\t\t_id: objectIdHexString(),\n\t\t\t\ttype: 'query',\n\t\t\t\tcollection: this.collectionName,\n\t\t\t\tid_document: '',\n\t\t\t\tpayload: getBinarySize(JSON.stringify([filter, options])) < 200000 ? JSON.stringify([filter, options], null, 2) : 'Too Big',\n\t\t\t\tmethod: 'find',\n\t\t\t\tid_user: '',\n\t\t\t\tuser: '',\n\t\t\t\tmessageId: '',\n\t\t\t\troute: ''\n\t\t\t});\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filter, <T>options).toArray();\n\t}\n\n\tfindById(id: string, options?: FindOneOptions<T>): Promise<T> {\n\t\tif (this.createLogs) {\n\t\t\tLogs.create({\n\t\t\t\t_id: objectIdHexString(),\n\t\t\t\ttype: 'query',\n\t\t\t\tcollection: this.collectionName,\n\t\t\t\tid_document: id,\n\t\t\t\tpayload: getBinarySize(JSON.stringify([id, options])) < 200000 ? JSON.stringify([id, options], null, 2) : 'Too Big',\n\t\t\t\tmethod: 'findById',\n\t\t\t\tid_user: '',\n\t\t\t\tuser: '',\n\t\t\t\tmessageId: '',\n\t\t\t\troute: ''\n\t\t\t});\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).findOne({_id: id}, <T>options);\n\t}\n\n\tfindCount(filter: FilterQuery<T> = {}, options?: FindOneOptions<T>) {\n\t\tif (this.createLogs) {\n\t\t\tLogs.create({\n\t\t\t\t_id: objectIdHexString(),\n\t\t\t\ttype: 'query',\n\t\t\t\tcollection: this.collectionName,\n\t\t\t\tid_document: '',\n\t\t\t\tpayload: getBinarySize(JSON.stringify([filter, options])) < 200000 ? JSON.stringify([filter, options], null, 2) : 'Too Big',\n\t\t\t\tmethod: 'findCount',\n\t\t\t\tid_user: '',\n\t\t\t\tuser: '',\n\t\t\t\tmessageId: '',\n\t\t\t\troute: ''\n\t\t\t});\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filter, <T>options).count();\n\t}\n\n\tfindCursor(filter: FilterQuery<T> = {}, options?: FindOneOptions<T>) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filter, <T>options);\n\t}\n\n\tfindStream(filter: FilterQuery<T> = {}, options?: FindOneOptions<T>, streamOptions?: any) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filter, <T>options).stream(streamOptions);\n\t}\n\n\tfindOne(filter: FilterQuery<T> = {}, options?: FindOneOptions<T>): Promise<T> {\n\t\tif (this.createLogs) {\n\t\t\tLogs.create({\n\t\t\t\t_id: objectIdHexString(),\n\t\t\t\ttype: 'query',\n\t\t\t\tcollection: this.collectionName,\n\t\t\t\tid_document: '',\n\t\t\t\tpayload: getBinarySize(JSON.stringify([filter, options])) < 200000 ? JSON.stringify([filter, options], null, 2) : 'Too Big',\n\t\t\t\tmethod: 'findOne',\n\t\t\t\tid_user: '',\n\t\t\t\tuser: '',\n\t\t\t\tmessageId: '',\n\t\t\t\troute: ''\n\t\t\t});\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).findOne(filter, <T>options);\n\t}\n\n\tasync findOneAndDelete(filter: FilterQuery<T> = {}, options?: FindOneAndDeleteOption<T>): Promise<T> {\n\t\tif (this.createLogs) {\n\t\t\tlet doc = await this.findOne(filter);\n\n\t\t\tif (doc) {\n\t\t\t\tLogs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'document',\n\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, options])) < 200000 ? JSON.stringify([doc, filter, options], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: 'findOneAndDelete',\n\t\t\t\t\tid_user: '',\n\t\t\t\t\tuser: '',\n\t\t\t\t\tmessageId: '',\n\t\t\t\t\troute: ''\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).findOneAndDelete(filter, options).then(res => {\n\t\t\t\tresolve(res.value);\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tfindOneAndReplace(filter: FilterQuery<T> = {}, replacement: T, options?: FindOneAndReplaceOption<T>): Promise<T> {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\treplacement['updatedAt'] = new Date();\n\n\t\t\tif (this.createLogs) {\n\t\t\t\tlet doc = await this.findOne(filter);\n\n\t\t\t\tif (doc) {\n\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\ttype: 'document',\n\t\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, replacement, options])) < 200000 ? JSON.stringify([doc, filter, replacement, options], null, 2) : 'Too Big',\n\t\t\t\t\t\tmethod: 'findOneAndReplace',\n\t\t\t\t\t\tid_user: '',\n\t\t\t\t\t\tuser: '',\n\t\t\t\t\t\tmessageId: '',\n\t\t\t\t\t\troute: ''\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).findOneAndReplace(filter, <any>replacement, options).then(res => {\n\t\t\t\tresolve(res.value);\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tfindOneAndUpdate(filter: FilterQuery<T> = {}, update: any, options?: FindOneAndUpdateOption<T>): Promise<T> {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif (!update['$set']) {\n\t\t\t\tupdate['$set'] = {updatedAt: new Date()};\n\t\t\t}\n\t\t\telse {\n\t\t\t\tupdate['$set']['updatedAt'] = new Date();\n\t\t\t}\n\n\t\t\tif (this.createLogs) {\n\t\t\t\tlet doc = await this.findOne(filter);\n\n\t\t\t\tif (doc) {\n\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\ttype: 'document',\n\t\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, update, options])) < 200000 ? JSON.stringify([doc, filter, update, options], null, 2) : 'Too Big',\n\t\t\t\t\t\tmethod: 'findOneAndUpdate',\n\t\t\t\t\t\tid_user: '',\n\t\t\t\t\t\tuser: '',\n\t\t\t\t\t\tmessageId: '',\n\t\t\t\t\t\troute: ''\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).findOneAndUpdate(filter, update, options).then(res => {\n\t\t\t\tresolve(res.value);\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tindexes(options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).indexes(options);\n\t}\n\n\tindexExists(indexes: string | string[], options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).indexExists(indexes, options);\n\t}\n\n\tinsertMany(docs: T[], options?: CollectionInsertManyOptions): Promise<T[]> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (this.timestamps) {\n\t\t\t\tdocs.forEach(doc => {\n\t\t\t\t\tdoc['createdAt'] = new Date();\n\t\t\t\t\tdoc['updatedAt'] = new Date();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.createLogs) {\n\t\t\t\tdocs.forEach(doc => {\n\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\ttype: 'document',\n\t\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, options])) < 200000 ? JSON.stringify([doc, options], null, 2) : 'Too Big',\n\t\t\t\t\t\tmethod: 'insertMany',\n\t\t\t\t\t\tid_user: '',\n\t\t\t\t\t\tuser: '',\n\t\t\t\t\t\tmessageId: '',\n\t\t\t\t\t\troute: ''\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).insertMany(docs, options).then(res => {\n\t\t\t\tif (res.result.ok) {\n\t\t\t\t\tresolve(docs);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treject(res.result.ok);\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tinsertOne(doc: T, options?: CollectionInsertOneOptions): Promise<T> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (this.timestamps) {\n\t\t\t\tdoc['createdAt'] = new Date();\n\t\t\t\tdoc['updatedAt'] = new Date();\n\t\t\t}\n\n\t\t\tif (this.createLogs) {\n\t\t\t\tLogs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'document',\n\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, options])) < 200000 ? JSON.stringify([doc, options], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: 'insertOne',\n\t\t\t\t\tid_user: '',\n\t\t\t\t\tuser: '',\n\t\t\t\t\tmessageId: '',\n\t\t\t\t\troute: ''\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).insertOne(doc, options).then(res => {\n\t\t\t\tif (res.result.ok) {\n\t\t\t\t\tresolve(doc);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treject(res.result.ok);\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tlistIndexes(options?: { batchSize?: number; readPreference?: ReadPreferenceOrMode; session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).listIndexes(options);\n\t}\n\n\treIndex(options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).reIndex(options);\n\t}\n\n\trename(newName: string, options?: { dropTarget?: boolean; session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).rename(newName, options);\n\t}\n\n\tasync replaceOne(filter: FilterQuery<T>, replacement: T, options?: ReplaceOneOptions) {\n\t\tif (this.createLogs) {\n\t\t\tlet doc = await this.findOne(filter);\n\n\t\t\tif (doc) {\n\t\t\t\tLogs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'document',\n\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, replacement, options])) < 200000 ? JSON.stringify([doc, filter, replacement, options], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: 'replaceOne',\n\t\t\t\t\tid_user: '',\n\t\t\t\t\tuser: '',\n\t\t\t\t\tmessageId: '',\n\t\t\t\t\troute: ''\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).replaceOne(filter, replacement, options);\n\t}\n\n\tstats(options?: { scale: number; session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).stats(options);\n\t}\n\n\tasync updateMany(filter: FilterQuery<T>, update: UpdateQuery<T> | Partial<T>, options?: UpdateManyOptions) {\n\t\tif (!update['$set']) {\n\t\t\tupdate['$set'] = {updatedAt: new Date()};\n\t\t}\n\t\telse {\n\t\t\tupdate['$set']['updatedAt'] = new Date();\n\t\t}\n\n\t\tif (this.createLogs) {\n\t\t\tlet docs = await this.find(filter);\n\n\t\t\tdocs.forEach(doc => {\n\t\t\t\tLogs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'document',\n\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, update, options])) < 200000 ? JSON.stringify([doc, filter, update, options], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: 'updateMany',\n\t\t\t\t\tid_user: '',\n\t\t\t\t\tuser: '',\n\t\t\t\t\tmessageId: '',\n\t\t\t\t\troute: ''\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).updateMany(filter, update, options);\n\t}\n\n\tasync updateOne(filter: FilterQuery<T>, update: UpdateQuery<T> | Partial<T>, options?: UpdateOneOptions) {\n\t\tif (!update['$set']) {\n\t\t\tupdate['$set'] = {updatedAt: new Date()};\n\t\t}\n\t\telse {\n\t\t\tupdate['$set']['updatedAt'] = new Date();\n\t\t}\n\n\t\tif (this.createLogs) {\n\t\t\tlet doc = await this.findOne(filter);\n\n\t\t\tif (doc) {\n\t\t\t\tLogs.create({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'document',\n\t\t\t\t\tcollection: this.collectionName,\n\t\t\t\t\tid_document: doc['_id'],\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([doc, filter, update, options])) < 200000 ? JSON.stringify([doc, filter, update, options], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: 'updateOne',\n\t\t\t\t\tid_user: '',\n\t\t\t\t\tuser: '',\n\t\t\t\t\tmessageId: '',\n\t\t\t\t\troute: ''\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).updateOne(filter, update, options);\n\t}\n\t\n\twatchCollection(options?: ChangeStreamOptions & { session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).watch(options);\n\t}\n\n\twatchCollectionWithAggregate(pipeline?: object[], options?: ChangeStreamOptions & { session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).watch(pipeline, options);\n\t}\n}\n\nexport class UserCollection<T> extends Collection<T> {\n\tauthenticateStrategy() {\n\t\treturn async (username, password, cb) => {\n\t\t\tlet user = await Users.findOne({username: username});\n\t\t\tthis.authenticate(user, password).then(authUser => {\n\t\t\t\tif (authUser.data) {\n\t\t\t\t\tcb(null, user, null);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcb(null, null, authUser.error);\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\tcb(err, null, null);\n\t\t\t})\n\t\t};\n\t}\n\n\tauthenticate(user: UserModel, password: string): Promise<{data: UserModel, error: string}> {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tconst attemptsInterval = Math.pow(100, Math.log(user.attempts + 1));\n\t\t\tconst calculatedInterval = attemptsInterval < 300000 ? attemptsInterval : 300000;\n\t\t\n\t\t\tif (Date.now() - user.last.getTime() < calculatedInterval) {\n\t\t\t\tuser.last = new Date();\n\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {last: user.last}});\n\t\t\t\tresolve({\n\t\t\t\t\tdata: null,\n\t\t\t\t\terror: 'Attempt Too Soon'\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\n\t\t\tif (user.attempts >= 5) {\n\t\t\t\tresolve({\n\t\t\t\t\tdata: null,\n\t\t\t\t\terror: 'Too Many Attempts'\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tif (!user.salt) {\n\t\t\t\tresolve({\n\t\t\t\t\tdata: null,\n\t\t\t\t\terror: 'No Salt Value Stored'\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tpbkdf2(password, user.salt, {\n\t\t\t\titerations: 25000,\n\t\t\t\tkeylen: 512,\n\t\t\t\tdigestAlgorithm: 'sha256'\n\t\t\t}, async (err, hashBuffer) => {\n\t\t\t\tif (err) {\n\t\t\t\t\treturn reject(err);\n\t\t\t\t}\n\t\t\t\n\t\t\t\tif (scmp(hashBuffer, Buffer.from(user.hash, 'hex'))) {\n\t\t\t\t\tuser.last = new Date();\n\t\t\t\t\tuser.attempts = 0;\n\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {last: user.last, attempts: user.attempts}});\n\n\t\t\t\t\tresolve({\n\t\t\t\t\t\tdata: user,\n\t\t\t\t\t\terror: ''\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tuser.last = new Date();\n\t\t\t\t\tuser.attempts = user.attempts + 1;\n\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {last: user.last, attempts: user.attempts}});\n\n\t\t\t\t\tif (user.attempts >= 5) {\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\t\terror: 'Too Many Attempts'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\t\terror: 'Invalid Username And Password'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} \n\t\t\t});\n\t\t});\n\t}\n\n\tserializeUser() {\n\t\treturn (user, cb) => {\n\t\t\tcb(null, user.username);\n\t\t};\n\t}\n\n\tdeserializeUser() {\n\t\treturn (username, cb) => {\n\t\t\tUsers.findOne({username: username}).then(res => {\n\t\t\t\tcb(null, res);\n\t\t\t}, err => {\n\t\t\t\tcb(err, null);\n\t\t\t});\n\t\t};\n\t}\n\n\tsetPassword(user: UserModel, password: string) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif (!user) {\n\t\t\t\treject('No User');\n\t\t\t}\n\t\t\telse if (!password) {\n\t\t\t\treject('No Password');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet saltBuffer = await randomBytes(32);\n\t\t\t\tlet salt = saltBuffer.toString('hex');\n\t\t\t\tlet hashRaw = await pbkdf2Promisified(password, salt, {\n\t\t\t\t\titerations: 25000,\n\t\t\t\t\tkeylen: 512,\n\t\t\t\t\tdigestAlgorithm: 'sha256'\n\t\t\t\t});\n\t\t\t\tlet hash = Buffer.from(hashRaw, 'binary').toString('hex');\n\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {hash: hash, salt: salt, services: {}}});\n\t\t\t}\n\t\t});\n\t};\n\n\tchangePassword(user, oldPassword, newPassword) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif (!user) {\n\t\t\t\treject('Missing User');\n\t\t\t}\n\t\t\telse if (!oldPassword || !newPassword) {\n\t\t\t\treject('Missing Password');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet authUser = await this.authenticate(user, oldPassword);\n\n\t\t\t\tif (!authUser['data']) {\n\t\t\t\t\treject(authUser['error']);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.setPassword(user, newPassword);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t\n\tregister(user, password) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif (!user.username) {\n\t\t\t\treject('Missing Username');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet dbUser = await Users.findOne({username: user.username});\n\t\t\t\t\n\t\t\t\tif (dbUser) {\n\t\t\t\t\treject('Username Exists');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdbUser = await Users.findOne({email: user.email});\n\n\t\t\t\t\tif (dbUser) {\n\t\t\t\t\t\treject('Email Exists');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tuser.setPassword(password);\n\t\t\t\t\t\tresolve(user);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tresetAttempts(user: UserModel) {\n\t\treturn Users.updateOne({_id: user._id}, {$set: {attempts: 0}});\n\t}\n}\n\nexport function objectIdHexString() {\n\tlet objectId = new ObjectId();\n\treturn objectId.toHexString();\n}\n\nfunction pbkdf2(password, salt, options, callback) {\n\tcrypto.pbkdf2(password, salt, options.iterations, options.keylen, options.digestAlgorithm, callback);\n};\n\nfunction pbkdf2Promisified(password, salt, options): Promise<any> {\n\treturn new Promise((resolve, reject) => pbkdf2(password, salt, options, (err, hashRaw) => (err ? reject(err) : resolve(hashRaw))));\n}\n\nfunction randomBytes(saltlen): Promise<Buffer> {\n\treturn new Promise((resolve, reject) => crypto.randomBytes(saltlen, (err, saltBuffer) => (err ? reject(err) : resolve(saltBuffer))));\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resolveio/server-lib",
3
- "version": "9.0.16",
3
+ "version": "9.0.17",
4
4
  "description": "",
5
5
  "main": "index.ts",
6
6
  "scripts": {