@resolveio/server-lib 9.0.23 → 9.0.25

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.
@@ -255,44 +255,51 @@ function loadCollectionMethods(methodManager) {
255
255
  }
256
256
  else {
257
257
  var updates_1 = common_1.getMongoUpdates(currDoc, f_document, true);
258
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(function (doc) {
259
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
260
- $and: [
261
- { '_id._id': currDoc._id },
262
- { '_id.__v': { $lte: currDoc.__v - 4 } }
263
- ]
264
- }).then(function () {
265
- if (updates_1) {
266
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: f_document['_id'] }, updates_1).then(function (res) {
267
- resolve(res.result.nModified);
268
- }, function (err) { return reject(err); });
269
- }
270
- else {
271
- resolve(1);
272
- }
273
- }, function (err) {
274
- console.log(err);
275
- });
276
- }, function (err) {
277
- console.log(err);
278
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
279
- $and: [
280
- { '_id._id': currDoc._id },
281
- { '_id.__v': { $lte: currDoc.__v - 4 } }
282
- ]
283
- }).then(function () {
284
- if (updates_1) {
285
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: f_document['_id'] }, updates_1).then(function (res) {
286
- resolve(res.result.nModified);
287
- }, function (err) { return reject(err); });
288
- }
289
- else {
290
- resolve(1);
291
- }
258
+ if (index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {
259
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(function (doc) {
260
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
261
+ $and: [
262
+ { '_id._id': currDoc._id },
263
+ { '_id.__v': { $lte: currDoc.__v - 4 } }
264
+ ]
265
+ }).then(function () {
266
+ if (updates_1) {
267
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: f_document['_id'] }, updates_1).then(function (res) {
268
+ resolve(res.result.nModified);
269
+ }, function (err) { return reject(err); });
270
+ }
271
+ else {
272
+ resolve(1);
273
+ }
274
+ }, function (err) { return reject(err); });
292
275
  }, function (err) {
293
- console.log(err);
276
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
277
+ $and: [
278
+ { '_id._id': currDoc._id },
279
+ { '_id.__v': { $lte: currDoc.__v - 4 } }
280
+ ]
281
+ }).then(function () {
282
+ if (updates_1) {
283
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: f_document['_id'] }, updates_1).then(function (res) {
284
+ resolve(res.result.nModified);
285
+ }, function (err) { return reject(err); });
286
+ }
287
+ else {
288
+ resolve(1);
289
+ }
290
+ }, function (err) { return reject(err); });
294
291
  });
295
- });
292
+ }
293
+ else {
294
+ if (updates_1) {
295
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: f_document['_id'] }, updates_1).then(function (res) {
296
+ resolve(res.result.nModified);
297
+ }, function (err) { return reject(err); });
298
+ }
299
+ else {
300
+ resolve(1);
301
+ }
302
+ }
296
303
  }
297
304
  }
298
305
  else {
@@ -324,18 +331,14 @@ function loadCollectionMethods(methodManager) {
324
331
  ]
325
332
  }).then(function () {
326
333
  resolve(res.result.nModified);
327
- }, function (err) {
328
- console.log(err);
329
- });
330
- }, function (err) {
331
- console.log(err);
332
- });
334
+ }, function (err) { return reject(err); });
335
+ }, function (err) { return reject(err); });
333
336
  }, function (err) { return reject(err); });
334
337
  }
335
338
  else {
336
339
  reject('Invalid Version And Could Not Find History - DB: ' + currDoc.__v + ', Trying to update with :' + f_document['__v']);
337
340
  }
338
- }, function (errOldDoc) { });
341
+ }, function (err) { return reject(err); });
339
342
  }
340
343
  else {
341
344
  reject('Invalid Version And We Are NOT Using Versions On This Collection!');
@@ -408,44 +411,51 @@ function loadCollectionMethods(methodManager) {
408
411
  }
409
412
  else {
410
413
  var updates_2 = common_1.getMongoUpdates(currDoc, modifiedDoc_1, true);
411
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(function (doc) {
412
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
413
- $and: [
414
- { '_id._id': currDoc._id },
415
- { '_id.__v': { $lte: currDoc.__v - 4 } }
416
- ]
417
- }).then(function () {
418
- if (updates_2) {
419
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: modifiedDoc_1._id }, updates_2).then(function (res) {
420
- resolve(res.result.ok);
421
- }, function (err) { return reject(err); });
422
- }
423
- else {
424
- resolve(1);
425
- }
426
- }, function (err) {
427
- console.log(err);
428
- });
429
- }, function (err) {
430
- console.log(err);
431
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
432
- $and: [
433
- { '_id._id': currDoc._id },
434
- { '_id.__v': { $lte: currDoc.__v - 4 } }
435
- ]
436
- }).then(function () {
437
- if (updates_2) {
438
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: modifiedDoc_1._id }, updates_2).then(function (res) {
439
- resolve(res.result.n);
440
- }, function (err) { return reject(err); });
441
- }
442
- else {
443
- resolve(1);
444
- }
414
+ if (index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {
415
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(function (doc) {
416
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
417
+ $and: [
418
+ { '_id._id': currDoc._id },
419
+ { '_id.__v': { $lte: currDoc.__v - 4 } }
420
+ ]
421
+ }).then(function () {
422
+ if (updates_2) {
423
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: modifiedDoc_1._id }, updates_2).then(function (res) {
424
+ resolve(res.result.ok);
425
+ }, function (err) { return reject(err); });
426
+ }
427
+ else {
428
+ resolve(1);
429
+ }
430
+ }, function (err) { return reject(err); });
445
431
  }, function (err) {
446
- console.log(err);
432
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
433
+ $and: [
434
+ { '_id._id': currDoc._id },
435
+ { '_id.__v': { $lte: currDoc.__v - 4 } }
436
+ ]
437
+ }).then(function () {
438
+ if (updates_2) {
439
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: modifiedDoc_1._id }, updates_2).then(function (res) {
440
+ resolve(res.result.n);
441
+ }, function (err) { return reject(err); });
442
+ }
443
+ else {
444
+ resolve(1);
445
+ }
446
+ }, function (err) { return reject(err); });
447
447
  });
448
- });
448
+ }
449
+ else {
450
+ if (updates_2) {
451
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: modifiedDoc_1._id }, updates_2).then(function (res) {
452
+ resolve(res.result.n);
453
+ }, function (err) { return reject(err); });
454
+ }
455
+ else {
456
+ resolve(1);
457
+ }
458
+ }
449
459
  }
450
460
  }
451
461
  else {
@@ -469,20 +479,21 @@ function loadCollectionMethods(methodManager) {
469
479
  updatedDoc.__v++;
470
480
  updatedDoc.updatedAt = new Date();
471
481
  index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).replaceOne({ _id: newCurrDocId }, updatedDoc).then(function (res) {
472
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc_2).then(function (doc) {
473
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
474
- $and: [
475
- { '_id._id': versionDoc_2._id._id },
476
- { '_id.__v': { $lte: versionDoc_2._id.__v - 4 } }
477
- ]
478
- }).then(function () {
479
- resolve(res.result.nModified);
480
- }, function (err) {
481
- console.log(err);
482
- });
483
- }, function (err) {
484
- console.log(err);
485
- });
482
+ if (index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {
483
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc_2).then(function (doc) {
484
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
485
+ $and: [
486
+ { '_id._id': versionDoc_2._id._id },
487
+ { '_id.__v': { $lte: versionDoc_2._id.__v - 4 } }
488
+ ]
489
+ }).then(function () {
490
+ resolve(res.result.nModified);
491
+ }, function (err) { return reject(err); });
492
+ }, function (err) { return reject(err); });
493
+ }
494
+ else {
495
+ resolve(res.result.nModified);
496
+ }
486
497
  }, function (err) { return reject(err); });
487
498
  }
488
499
  else {
@@ -546,44 +557,51 @@ function loadCollectionMethods(methodManager) {
546
557
  }
547
558
  else {
548
559
  var updates_3 = common_1.getMongoUpdates(currDoc, f_document, true);
549
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(function (doc) {
550
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
551
- $and: [
552
- { '_id._id': currDoc._id },
553
- { '_id.__v': { $lte: currDoc.__v - 4 } }
554
- ]
555
- }).then(function () {
556
- if (updates_3) {
557
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: f_document['_id'] }, updates_3).then(function (res) {
558
- resolve(res.result.nModified);
559
- }, function (err) { return reject(err); });
560
- }
561
- else {
562
- resolve(1);
563
- }
564
- }, function (err) {
565
- console.log(err);
566
- });
567
- }, function (err) {
568
- console.log(err);
569
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
570
- $and: [
571
- { '_id._id': currDoc._id },
572
- { '_id.__v': { $lte: currDoc.__v - 4 } }
573
- ]
574
- }).then(function () {
575
- if (updates_3) {
576
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: f_document['_id'] }, updates_3).then(function (res) {
577
- resolve(res.result.nModified);
578
- }, function (err) { return reject(err); });
579
- }
580
- else {
581
- resolve(1);
582
- }
560
+ if (index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {
561
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(function (doc) {
562
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
563
+ $and: [
564
+ { '_id._id': currDoc._id },
565
+ { '_id.__v': { $lte: currDoc.__v - 4 } }
566
+ ]
567
+ }).then(function () {
568
+ if (updates_3) {
569
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: f_document['_id'] }, updates_3).then(function (res) {
570
+ resolve(res.result.nModified);
571
+ }, function (err) { return reject(err); });
572
+ }
573
+ else {
574
+ resolve(1);
575
+ }
576
+ }, function (err) { return reject(err); });
583
577
  }, function (err) {
584
- console.log(err);
578
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
579
+ $and: [
580
+ { '_id._id': currDoc._id },
581
+ { '_id.__v': { $lte: currDoc.__v - 4 } }
582
+ ]
583
+ }).then(function () {
584
+ if (updates_3) {
585
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: f_document['_id'] }, updates_3).then(function (res) {
586
+ resolve(res.result.nModified);
587
+ }, function (err) { return reject(err); });
588
+ }
589
+ else {
590
+ resolve(1);
591
+ }
592
+ }, function (err) { return reject(err); });
585
593
  });
586
- });
594
+ }
595
+ else {
596
+ if (updates_3) {
597
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: f_document['_id'] }, updates_3).then(function (res) {
598
+ resolve(res.result.nModified);
599
+ }, function (err) { return reject(err); });
600
+ }
601
+ else {
602
+ resolve(1);
603
+ }
604
+ }
587
605
  }
588
606
  }
589
607
  else {
@@ -600,20 +618,21 @@ function loadCollectionMethods(methodManager) {
600
618
  updatedDoc.__v++;
601
619
  updatedDoc.updatedAt = new Date();
602
620
  index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).replaceOne({ _id: newCurrDocId }, updatedDoc).then(function (res) {
603
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc_3).then(function (doc) {
604
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
605
- $and: [
606
- { '_id._id': versionDoc_3._id._id },
607
- { '_id.__v': { $lte: versionDoc_3._id.__v - 4 } }
608
- ]
609
- }).then(function () {
610
- resolve(res.result.nModified);
611
- }, function (err) {
612
- console.log(err);
613
- });
614
- }, function (err) {
615
- console.log(err);
616
- });
621
+ if (index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {
622
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc_3).then(function (doc) {
623
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
624
+ $and: [
625
+ { '_id._id': versionDoc_3._id._id },
626
+ { '_id.__v': { $lte: versionDoc_3._id.__v - 4 } }
627
+ ]
628
+ }).then(function () {
629
+ resolve(res.result.nModified);
630
+ }, function (err) { return reject(err); });
631
+ }, function (err) { return reject(err); });
632
+ }
633
+ else {
634
+ resolve(res.result.nModified);
635
+ }
617
636
  }, function (err) { return reject(err); });
618
637
  }
619
638
  else {
@@ -689,44 +708,51 @@ function loadCollectionMethods(methodManager) {
689
708
  }
690
709
  else {
691
710
  var updates_4 = common_1.getMongoUpdates(currDoc, modifiedDoc_2, true);
692
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(function (doc) {
693
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
694
- $and: [
695
- { '_id._id': currDoc._id },
696
- { '_id.__v': { $lte: currDoc.__v - 4 } }
697
- ]
698
- }).then(function () {
699
- if (updates_4) {
700
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: modifiedDoc_2._id }, updates_4).then(function (res) {
701
- resolve(res.result.ok);
702
- }, function (err) { return reject(err); });
703
- }
704
- else {
705
- resolve(1);
706
- }
707
- }, function (err) {
708
- console.log(err);
709
- });
710
- }, function (err) {
711
- console.log(err);
712
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
713
- $and: [
714
- { '_id._id': currDoc._id },
715
- { '_id.__v': { $lte: currDoc.__v - 4 } }
716
- ]
717
- }).then(function () {
718
- if (updates_4) {
719
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: modifiedDoc_2._id }, updates_4).then(function (res) {
720
- resolve(res.result.ok);
721
- }, function (err) { return reject(err); });
722
- }
723
- else {
724
- resolve(1);
725
- }
711
+ if (index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {
712
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(function (doc) {
713
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
714
+ $and: [
715
+ { '_id._id': currDoc._id },
716
+ { '_id.__v': { $lte: currDoc.__v - 4 } }
717
+ ]
718
+ }).then(function () {
719
+ if (updates_4) {
720
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: modifiedDoc_2._id }, updates_4).then(function (res) {
721
+ resolve(res.result.ok);
722
+ }, function (err) { return reject(err); });
723
+ }
724
+ else {
725
+ resolve(1);
726
+ }
727
+ }, function (err) { return reject(err); });
726
728
  }, function (err) {
727
- console.log(err);
729
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
730
+ $and: [
731
+ { '_id._id': currDoc._id },
732
+ { '_id.__v': { $lte: currDoc.__v - 4 } }
733
+ ]
734
+ }).then(function () {
735
+ if (updates_4) {
736
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: modifiedDoc_2._id }, updates_4).then(function (res) {
737
+ resolve(res.result.ok);
738
+ }, function (err) { return reject(err); });
739
+ }
740
+ else {
741
+ resolve(1);
742
+ }
743
+ }, function (err) { return reject(err); });
728
744
  });
729
- });
745
+ }
746
+ else {
747
+ if (updates_4) {
748
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({ _id: modifiedDoc_2._id }, updates_4).then(function (res) {
749
+ resolve(res.result.ok);
750
+ }, function (err) { return reject(err); });
751
+ }
752
+ else {
753
+ resolve(1);
754
+ }
755
+ }
730
756
  }
731
757
  }
732
758
  else {
@@ -743,20 +769,21 @@ function loadCollectionMethods(methodManager) {
743
769
  updatedDoc.__v++;
744
770
  updatedDoc.updatedAt = new Date();
745
771
  index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection).replaceOne({ _id: newCurrDocId }, updatedDoc).then(function (res) {
746
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc_4).then(function (doc) {
747
- index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
748
- $and: [
749
- { '_id._id': versionDoc_4._id._id },
750
- { '_id.__v': { $lte: versionDoc_4._id.__v - 4 } }
751
- ]
752
- }).then(function () {
753
- resolve(res.result.nModified);
754
- }, function (err) {
755
- console.log(err);
756
- });
757
- }, function (err) {
758
- console.log(err);
759
- });
772
+ if (index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {
773
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc_4).then(function (doc) {
774
+ index_1.ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({
775
+ $and: [
776
+ { '_id._id': versionDoc_4._id._id },
777
+ { '_id.__v': { $lte: versionDoc_4._id.__v - 4 } }
778
+ ]
779
+ }).then(function () {
780
+ resolve(res.result.nModified);
781
+ }, function (err) { return reject(err); });
782
+ }, function (err) { return reject(err); });
783
+ }
784
+ else {
785
+ resolve(res.result.nModified);
786
+ }
760
787
  }, function (err) { return reject(err); });
761
788
  }
762
789
  else {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/methods/collections.ts"],"names":[],"mappings":";;;AACA,yCAAmG;AACnG,6CAAwC;AACxC,+DAAwF;AACxF,kCAA2C;AAC3C,2DAA8D;AAE9D,SAAgB,qBAAqB,CAAC,aAA4B;IACjE,aAAa,CAAC,OAAO,CAAC;QACrB,iBAAiB,EAAE;YAClB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE;gBACT,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBAClC,OAAO,CAAC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,cAAc,EAAhB,CAAgB,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAlB,CAAkB,CAAC,CAAC,CAAC;gBACxI,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;QACD,gBAAgB,EAAE;YACjB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE;gBACT,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBAClC,OAAO,CAAC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,cAAc,EAAhB,CAAgB,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAlB,CAAkB,CAAC,CAAC,CAAC;gBAC7J,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;QACD,8CAA8C;QAC9C,OAAO,EAAE;YACR,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,UAAU,EAAE;oBACX,IAAI,EAAE,MAAM;iBACZ;gBACD,KAAK,EAAE;oBACN,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,UAAkB,EAAE,KAAU;gBAAV,sBAAA,EAAA,UAAU;gBAChD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBAClC,IAAI,CAAC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBAC9E,MAAM,CAAC,oBAAoB,CAAC,CAAC;qBAC7B;yBACI;wBACJ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,OAAO,CAAC,GAAG,CAAC,EAAZ,CAAY,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;qBACtI;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;QACD,IAAI,EAAE;YACL,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,UAAU,EAAE;oBACX,IAAI,EAAE,MAAM;iBACZ;gBACD,KAAK,EAAE;oBACN,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,IAAI,EAAE;oBACL,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,IAAI;iBACd;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,UAAkB,EAAE,KAAU,EAAE,SAAc;gBAA1B,sBAAA,EAAA,UAAU;gBAAE,0BAAA,EAAA,cAAc;gBAChE,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBAClC,IAAI,CAAC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBAC9E,MAAM,CAAC,oBAAoB,CAAC,CAAC;qBAC7B;yBACI;wBACJ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,OAAO,CAAC,GAAG,CAAC,EAAZ,CAAY,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;qBACtJ;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;QACD,eAAe,EAAE;YAChB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,UAAU,EAAE;oBACX,IAAI,EAAE,MAAM;iBACZ;gBACD,KAAK,EAAE;oBACN,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,OAAO,EAAE;oBACR,IAAI,EAAE,0CAAuB;iBAC7B;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,UAAkB,EAAE,KAAa,EAAE,OAA0B;gBAC/E,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBAClC,IAAI,CAAC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBAC9E,MAAM,CAAC,oBAAoB,CAAC,CAAC;qBAC7B;yBACI;wBACJ,IAAI,YAAY,GAAG,EAAE,CAAC;wBAEtB,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;4BACzD,YAAY,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;yBAC5C;wBAED,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;4BACrD,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;yBACpC;wBAED,IAAI,OAAO,CAAC,KAAK,EAAE;4BAClB,YAAY,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;yBACtC;wBAED,IAAI,OAAO,CAAC,IAAI,EAAE;4BACjB,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;yBACpC;wBAED,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,OAAO,CAAC,GAAG,CAAC,EAAZ,CAAY,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;qBACjJ;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;QACD,oBAAoB;QACpB,gCAAgC;QAChC,0DAA0D;QAC1D,cAAc,EAAE;YACf,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,UAAU,EAAE;oBACX,IAAI,EAAE,MAAM;iBACZ;gBACD,QAAQ,EAAE;oBACT,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,UAAkB,EAAE,QAAgB;gBAA7C,iBA6BT;gBA5BA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBAElC,IAAI,CAAC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBAC9E,MAAM,CAAC,oBAAoB,CAAC,CAAC;qBAC7B;yBACI;wBACJ,IAAI,YAAY,GAAG,IAAI,CAAC;wBAExB,IAAI;4BACH,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;yBAC3G;wBACD,OAAO,MAAM,EAAE;4BACd,YAAY,GAAG,MAAM,CAAC;4BACtB,KAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,4BAA4B,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;yBAC/G;wBAED,IAAI,YAAY,EAAE;4BACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;4BAC1B,MAAM,CAAC,eAAe,CAAC,CAAC;yBACxB;6BACI;4BACJ,IAAI,IAAE,GAAG,iCAAiB,EAAE,CAAC;4BAC7B,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAE,CAAC;4BACrB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BACpB,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,OAAO,CAAC,IAAE,CAAC,EAAX,CAAW,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;yBACzI;qBACD;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;QACD,oBAAoB;QACpB,gCAAgC;QAChC,0DAA0D;QAC1D,mBAAmB,EAAE;YACpB,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,UAAU,EAAE;oBACX,IAAI,EAAE,MAAM;iBACZ;gBACD,SAAS,EAAE;oBACV,IAAI,EAAE,KAAK;iBACX;gBACD,aAAa,EAAE;oBACd,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,UAAkB,EAAE,SAAmB;gBAAhD,iBAsCT;gBArCA,OAAO,IAAI,OAAO,CAAC,UAAC,GAAG,EAAE,GAAG;oBAC3B,IAAI,CAAC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBAC9E,GAAG,CAAC,oBAAoB,CAAC,CAAC;qBAC1B;yBACI;wBACJ,IAAI,QAAQ,GAAG,EAAE,CAAC;gDAET,CAAC;4BACT,IAAI,UAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;4BAE5B,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gCACzC,IAAI,YAAY,GAAG,IAAI,CAAC;gCAExB,IAAI;oCACH,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,UAAQ,CAAC,CAAC;iCAC3G;gCACD,OAAO,MAAM,EAAE;oCACd,YAAY,GAAG,MAAM,CAAC;oCACtB,KAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,4BAA4B,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,UAAQ,CAAC,CAAC,CAAC;iCAC/G;gCAED,IAAI,YAAY,EAAE;oCACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oCAC1B,MAAM,CAAC,eAAe,CAAC,CAAC;iCACxB;qCACI;oCACJ,IAAI,IAAE,GAAG,iCAAiB,EAAE,CAAC;oCAC7B,UAAQ,CAAC,KAAK,CAAC,GAAG,IAAE,CAAC;oCACrB,UAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oCACpB,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,UAAQ,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,OAAO,CAAC,IAAE,CAAC,EAAX,CAAW,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;iCACzI;4BACF,CAAC,CAAC,CAAC,CAAC;;wBAxBL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;oCAAhC,CAAC;yBAyBT;wBAED,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,GAAG,CAAC,IAAI,CAAC,EAAT,CAAS,EAAE,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAC;qBAC/D;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;QACD,mDAAmD;QACnD,mCAAmC;QACnC,wFAAwF;QACxF,8DAA8D;QAC9D,cAAc,EAAE;YACf,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,UAAU,EAAE;oBACX,IAAI,EAAE,MAAM;iBACZ;gBACD,UAAU,EAAE;oBACX,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,UAAkB,EAAE,UAAkB;gBAA/C,iBAsIT;gBArIA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBAClC,IAAI,CAAC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBAC9E,MAAM,CAAC,oBAAoB,CAAC,CAAC;qBAC7B;yBACI;wBACJ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,UAAA,OAAO;4BACtH,IAAI,OAAO,EAAE;gCACZ,IAAI,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC,KAAK,CAAC,EAAE;oCACtC,IAAI,UAAU,GAAG,iBAAQ,CAAC,OAAO,CAAC,CAAC;oCAEnC,UAAU,CAAC,GAAG,GAAG;wCAChB,GAAG,EAAE,OAAO,CAAC,GAAG;wCAChB,GAAG,EAAE,OAAO,CAAC,GAAG;qCAChB,CAAC;oCAEF,IAAI,YAAY,GAAG,IAAI,CAAC;oCAExB,IAAI;wCACH,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;qCAC7G;oCACD,OAAO,MAAM,EAAE;wCACd,YAAY,GAAG,MAAM,CAAC;wCACtB,KAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,oCAAoC,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;qCACzH;oCAED,IAAI,YAAY,EAAE;wCACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;wCAC1B,MAAM,CAAC,eAAe,CAAC,CAAC;qCACxB;yCACI;wCACJ,IAAI,SAAO,GAAG,wBAAe,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;wCAEzD,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;4CACjH,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,UAAU,CAAC;gDACjG,IAAI,EAAE;oDACL,EAAC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAC;oDACxB,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,EAAC,EAAC;iDACpC;6CACD,CAAC,CAAC,IAAI,CAAC;gDACP,IAAI,SAAO,EAAE;oDACZ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,EAAC,EAAE,SAAO,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;wDAC7H,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oDAC/B,CAAC,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;iDACvB;qDACI;oDACJ,OAAO,CAAC,CAAC,CAAC,CAAC;iDACX;4CACF,CAAC,EAAE,UAAA,GAAG;gDACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAClB,CAAC,CAAC,CAAC;wCACJ,CAAC,EAAE,UAAA,GAAG;4CACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAEjB,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,UAAU,CAAC;gDACjG,IAAI,EAAE;oDACL,EAAC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAC;oDACxB,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,EAAC,EAAC;iDACpC;6CACD,CAAC,CAAC,IAAI,CAAC;gDACP,IAAI,SAAO,EAAE;oDACZ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,EAAC,EAAE,SAAO,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;wDAC7H,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oDAC/B,CAAC,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;iDACvB;qDACI;oDACJ,OAAO,CAAC,CAAC,CAAC,CAAC;iDACX;4CACF,CAAC,EAAE,UAAA,GAAG;gDACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAClB,CAAC,CAAC,CAAC;wCACJ,CAAC,CAAC,CAAC;qCACH;iCACD;qCACI;oCACJ,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oCAE/E,IAAI,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,EAAE;wCAC3F,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,OAAO,CAAC;4CAC9F,IAAI,EAAE;gDACL,EAAC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAC;gDACxB,EAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,EAAC;6CAC9B;yCACD,CAAC,CAAC,IAAI,CAAC,UAAA,MAAM;4CACb,IAAI,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;4CAE/B,IAAI,MAAM,EAAE;gDACX,IAAI,YAAU,GAAG,iBAAQ,CAAC,OAAO,CAAC,CAAC;gDAEnC,YAAU,CAAC,GAAG,GAAG;oDAChB,GAAG,EAAE,OAAO,CAAC,GAAG;oDAChB,GAAG,EAAE,OAAO,CAAC,GAAG;iDAChB,CAAC;gDAEF,IAAI,UAAU,GAAG,gCAAuB,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gDACtE,UAAU,CAAC,GAAG,GAAG,YAAY,CAAC;gDAC9B,UAAU,CAAC,GAAG,EAAE,CAAC;gDACjB,UAAU,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;gDAElC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,EAAC,GAAG,EAAE,YAAY,EAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;oDAC5H,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,YAAU,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;wDACjH,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,UAAU,CAAC;4DACjG,IAAI,EAAE;gEACL,EAAC,SAAS,EAAE,YAAU,CAAC,GAAG,CAAC,GAAG,EAAC;gEAC/B,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,YAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAC,EAAC;6DAC3C;yDACD,CAAC,CAAC,IAAI,CAAC;4DACP,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wDAC/B,CAAC,EAAE,UAAA,GAAG;4DACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wDAClB,CAAC,CAAC,CAAC;oDACJ,CAAC,EAAE,UAAA,GAAG;wDACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oDAClB,CAAC,CAAC,CAAC;gDACJ,CAAC,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;6CACvB;iDACI;gDACJ,MAAM,CAAC,mDAAmD,GAAG,OAAO,CAAC,GAAG,GAAG,2BAA2B,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;6CAC5H;wCACF,CAAC,EAAE,UAAA,SAAS,IAAK,CAAC,CAAC,CAAC;qCACpB;yCACI;wCACJ,MAAM,CAAC,mEAAmE,CAAC,CAAC;qCAC5E;iCACD;6BACD;iCACI;gCACJ,MAAM,CAAC,aAAa,CAAC,CAAC;6BACtB;wBACF,CAAC,EAAE,UAAA,MAAM;4BACR,MAAM,CAAC,aAAa,CAAC,CAAC;wBACvB,CAAC,CAAC,CAAC;qBACH;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;QACD,wCAAwC;QACxC,mGAAmG;QACnG,wFAAwF;QACxF,oEAAoE;QACpE,mBAAmB,EAAE;YACpB,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,UAAU,EAAE;oBACX,IAAI,EAAE,MAAM;iBACZ;gBACD,MAAM,EAAE;oBACP,IAAI,EAAE,MAAM;iBACZ;gBACD,YAAY,EAAE;oBACb,IAAI,EAAE,KAAK;iBACX;gBACD,gBAAgB,EAAE;oBACjB,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,MAAM,EAAE;oBACP,IAAI,EAAE,MAAM;iBACZ;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,UAAkB,EAAE,MAAc,EAAE,YAAmB,EAAE,MAAc;gBAAhF,iBA0IT;gBAzIA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBAClC,IAAI,CAAC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBAC9E,MAAM,CAAC,oBAAoB,CAAC,CAAC;qBAC7B;yBACI;wBACJ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,MAAM,EAAC,CAAC,CAAC,IAAI,CAAC,UAAA,OAAO;4BAC3G,IAAI,OAAO,EAAE;gCACZ,IAAI,aAAW,GAAG,iBAAQ,CAAC,OAAO,CAAC,CAAC;gCAEpC,YAAY,CAAC,OAAO,CAAC,UAAA,IAAI;oCACxB,aAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gCACpC,CAAC,CAAC,CAAC;gCAEH,IAAI,aAAW,CAAC,GAAG,KAAK,MAAM,EAAE;oCAC/B,IAAI,UAAU,GAAG,iBAAQ,CAAC,OAAO,CAAC,CAAC;oCAEnC,UAAU,CAAC,GAAG,GAAG;wCAChB,GAAG,EAAE,OAAO,CAAC,GAAG;wCAChB,GAAG,EAAE,OAAO,CAAC,GAAG;qCAChB,CAAC;oCAEF,IAAI,YAAY,GAAG,IAAI,CAAC;oCAExB,IAAI;wCACH,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,aAAW,CAAC,CAAC;qCAC9G;oCACD,OAAO,MAAM,EAAE;wCACd,YAAY,GAAG,MAAM,CAAC;wCACtB,KAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,yCAAyC,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,aAAW,CAAC,CAAC,CAAC;qCAC/H;oCAED,IAAI,YAAY,EAAE;wCACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;wCAC1B,MAAM,CAAC,eAAe,CAAC,CAAC;qCACxB;yCACI;wCACJ,IAAI,SAAO,GAAG,wBAAe,CAAC,OAAO,EAAE,aAAW,EAAE,IAAI,CAAC,CAAC;wCAE1D,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;4CACjH,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,UAAU,CAAC;gDACjG,IAAI,EAAE;oDACL,EAAC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAC;oDACxB,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,EAAC,EAAC;iDACpC;6CACD,CAAC,CAAC,IAAI,CAAC;gDACP,IAAI,SAAO,EAAE;oDACZ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,aAAW,CAAC,GAAG,EAAC,EAAE,SAAO,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;wDAC3H,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oDACxB,CAAC,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;iDACvB;qDACI;oDACJ,OAAO,CAAC,CAAC,CAAC,CAAC;iDACX;4CACF,CAAC,EAAE,UAAA,GAAG;gDACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAClB,CAAC,CAAC,CAAC;wCACJ,CAAC,EAAE,UAAA,GAAG;4CACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAEjB,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,UAAU,CAAC;gDACjG,IAAI,EAAE;oDACL,EAAC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAC;oDACxB,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,EAAC,EAAC;iDACpC;6CACD,CAAC,CAAC,IAAI,CAAC;gDACP,IAAI,SAAO,EAAE;oDACZ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,aAAW,CAAC,GAAG,EAAC,EAAE,SAAO,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;wDAC3H,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oDACvB,CAAC,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;iDACvB;qDACI;oDACJ,OAAO,CAAC,CAAC,CAAC,CAAC;iDACX;4CACF,CAAC,EAAE,UAAA,GAAG;gDACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAClB,CAAC,CAAC,CAAC;wCACJ,CAAC,CAAC,CAAC;qCACH;iCACD;qCACI;oCACJ,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,oBAAoB,GAAG,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oCAEhF,IAAI,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,EAAE;wCAC3F,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,OAAO,CAAC;4CAC9F,IAAI,EAAE;gDACL,EAAC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAC;gDACxB,EAAC,SAAS,EAAE,MAAM,EAAC;6CACnB;yCACD,CAAC,CAAC,IAAI,CAAC,UAAA,MAAM;4CACb,IAAI,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;4CAE/B,IAAI,MAAM,EAAE;gDACX,IAAI,YAAU,GAAG,iBAAQ,CAAC,OAAO,CAAC,CAAC;gDAEnC,YAAU,CAAC,GAAG,GAAG;oDAChB,GAAG,EAAE,OAAO,CAAC,GAAG;oDAChB,GAAG,EAAE,OAAO,CAAC,GAAG;iDAChB,CAAC;gDAEF,IAAI,UAAU,GAAG,gCAAuB,CAAC,aAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gDACvE,UAAU,CAAC,GAAG,GAAG,YAAY,CAAC;gDAC9B,UAAU,CAAC,GAAG,EAAE,CAAC;gDACjB,UAAU,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;gDAElC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,EAAC,GAAG,EAAE,YAAY,EAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;oDAC5H,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,YAAU,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;wDACjH,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,UAAU,CAAC;4DACjG,IAAI,EAAE;gEACL,EAAC,SAAS,EAAE,YAAU,CAAC,GAAG,CAAC,GAAG,EAAC;gEAC/B,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,YAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAC,EAAC;6DAC3C;yDACD,CAAC,CAAC,IAAI,CAAC;4DACP,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wDAC/B,CAAC,EAAE,UAAA,GAAG;4DACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wDAClB,CAAC,CAAC,CAAC;oDACJ,CAAC,EAAE,UAAA,GAAG;wDACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oDAClB,CAAC,CAAC,CAAC;gDACJ,CAAC,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;6CACvB;iDACI;gDACJ,MAAM,CAAC,yDAAyD,GAAG,OAAO,CAAC,GAAG,GAAG,2BAA2B,GAAG,MAAM,CAAC,CAAC;6CACvH;wCACF,CAAC,EAAE,cAAO,CAAC,CAAC,CAAC;qCACb;yCACI;wCACJ,MAAM,CAAC,mEAAmE,CAAC,CAAC;qCAC5E;iCACD;6BACD;iCACI;gCACJ,MAAM,CAAC,aAAa,CAAC,CAAC;6BACtB;wBACF,CAAC,EAAE,cAAO,CAAC,CAAC,CAAC;qBACb;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;QACD,qBAAqB,EAAE;YACtB,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,UAAU,EAAE;oBACX,IAAI,EAAE,MAAM;iBACZ;gBACD,UAAU,EAAE;oBACX,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,aAAa,EAAE;oBACd,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,UAAkB,EAAE,UAAkB,EAAE,aAAqB;gBAAtE,iBAyHT;gBAxHA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBAClC,IAAI,CAAC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBAC9E,MAAM,CAAC,oBAAoB,CAAC,CAAC;qBAC7B;yBACI;wBACJ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,UAAA,OAAO;4BACtH,IAAI,OAAO,EAAE;gCACZ,IAAI,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC,KAAK,CAAC,EAAE;oCAEtC,IAAI,UAAU,GAAG,iBAAQ,CAAC,OAAO,CAAC,CAAC;oCAEnC,UAAU,CAAC,GAAG,GAAG;wCAChB,GAAG,EAAE,OAAO,CAAC,GAAG;wCAChB,GAAG,EAAE,OAAO,CAAC,GAAG;qCAChB,CAAC;oCAEF,IAAI,YAAY,GAAG,IAAI,CAAC;oCAExB,IAAI;wCACH,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;qCAC7G;oCACD,OAAO,MAAM,EAAE;wCACd,YAAY,GAAG,MAAM,CAAC;wCACtB,KAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,oCAAoC,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;qCACzH;oCAED,IAAI,YAAY,EAAE;wCACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;wCAC1B,MAAM,CAAC,eAAe,CAAC,CAAC;qCACxB;yCACI;wCACJ,IAAI,SAAO,GAAG,wBAAe,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;wCAEzD,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;4CACjH,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,UAAU,CAAC;gDACjG,IAAI,EAAE;oDACL,EAAC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAC;oDACxB,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,EAAC,EAAC;iDACpC;6CACD,CAAC,CAAC,IAAI,CAAC;gDACP,IAAI,SAAO,EAAE;oDACZ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,EAAC,EAAE,SAAO,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;wDAC7H,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oDAC/B,CAAC,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;iDACvB;qDACI;oDACJ,OAAO,CAAC,CAAC,CAAC,CAAC;iDACX;4CACF,CAAC,EAAE,UAAA,GAAG;gDACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAClB,CAAC,CAAC,CAAC;wCACJ,CAAC,EAAE,UAAA,GAAG;4CACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAEjB,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,UAAU,CAAC;gDACjG,IAAI,EAAE;oDACL,EAAC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAC;oDACxB,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,EAAC,EAAC;iDACpC;6CACD,CAAC,CAAC,IAAI,CAAC;gDACP,IAAI,SAAO,EAAE;oDACZ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,EAAC,EAAE,SAAO,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;wDAC7H,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oDAC/B,CAAC,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;iDACvB;qDACI;oDACJ,OAAO,CAAC,CAAC,CAAC,CAAC;iDACX;4CACF,CAAC,EAAE,UAAA,GAAG;gDACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAClB,CAAC,CAAC,CAAC;wCACJ,CAAC,CAAC,CAAC;qCACH;iCACD;qCACI;oCACJ,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oCAEzF,IAAI,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;oCAE/B,IAAI,aAAa,EAAE;wCAClB,IAAI,YAAU,GAAG,iBAAQ,CAAC,OAAO,CAAC,CAAC;wCAEnC,YAAU,CAAC,GAAG,GAAG;4CAChB,GAAG,EAAE,OAAO,CAAC,GAAG;4CAChB,GAAG,EAAE,OAAO,CAAC,GAAG;yCAChB,CAAC;wCAEF,IAAI,UAAU,GAAG,gCAAuB,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;wCAC7E,UAAU,CAAC,GAAG,GAAG,YAAY,CAAC;wCAC9B,UAAU,CAAC,GAAG,EAAE,CAAC;wCACjB,UAAU,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;wCAElC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,EAAC,GAAG,EAAE,YAAY,EAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;4CAC5H,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,YAAU,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;gDACjH,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,UAAU,CAAC;oDACjG,IAAI,EAAE;wDACL,EAAC,SAAS,EAAE,YAAU,CAAC,GAAG,CAAC,GAAG,EAAC;wDAC/B,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,YAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAC,EAAC;qDAC3C;iDACD,CAAC,CAAC,IAAI,CAAC;oDACP,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gDAC/B,CAAC,EAAE,UAAA,GAAG;oDACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gDAClB,CAAC,CAAC,CAAC;4CACJ,CAAC,EAAE,UAAA,GAAG;gDACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAClB,CAAC,CAAC,CAAC;wCACJ,CAAC,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;qCACvB;yCACI;wCACJ,MAAM,CAAC,6DAA6D,GAAG,OAAO,CAAC,GAAG,GAAG,2BAA2B,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;qCACtI;iCACD;6BACD;iCACI;gCACJ,MAAM,CAAC,aAAa,CAAC,CAAC;6BACtB;wBACF,CAAC,EAAE,cAAO,CAAC,CAAC,CAAC;qBACb;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;QACD,wCAAwC;QACxC,mGAAmG;QACnG,wFAAwF;QACxF,oEAAoE;QACpE,0BAA0B,EAAE;YAC3B,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,UAAU,EAAE;oBACX,IAAI,EAAE,MAAM;iBACZ;gBACD,MAAM,EAAE;oBACP,IAAI,EAAE,MAAM;iBACZ;gBACD,YAAY,EAAE;oBACb,IAAI,EAAE,KAAK;iBACX;gBACD,gBAAgB,EAAE;oBACjB,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,MAAM,EAAE;oBACP,IAAI,EAAE,MAAM;iBACZ;gBACD,aAAa,EAAE;oBACd,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,UAAkB,EAAE,MAAc,EAAE,YAAmB,EAAE,MAAc,EAAE,aAAqB;gBAAvG,iBA8HT;gBA7HA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBAClC,IAAI,CAAC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBAC9E,MAAM,CAAC,oBAAoB,CAAC,CAAC;qBAC7B;yBACI;wBACJ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,MAAM,EAAC,CAAC,CAAC,IAAI,CAAC,UAAA,OAAO;4BAC3G,IAAI,OAAO,EAAE;gCACZ,IAAI,aAAW,GAAG,iBAAQ,CAAC,OAAO,CAAC,CAAC;gCAEpC,YAAY,CAAC,OAAO,CAAC,UAAA,IAAI;oCACxB,aAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gCACpC,CAAC,CAAC,CAAC;gCAEH,IAAI,aAAW,CAAC,GAAG,KAAK,MAAM,EAAE;oCAC/B,IAAI,UAAU,GAAG,iBAAQ,CAAC,OAAO,CAAC,CAAC;oCAEnC,UAAU,CAAC,GAAG,GAAG;wCAChB,GAAG,EAAE,OAAO,CAAC,GAAG;wCAChB,GAAG,EAAE,OAAO,CAAC,GAAG;qCAChB,CAAC;oCAEF,IAAI,YAAY,GAAG,IAAI,CAAC;oCAExB,IAAI;wCACH,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,aAAW,CAAC,CAAC;qCAC9G;oCACD,OAAO,MAAM,EAAE;wCACd,YAAY,GAAG,MAAM,CAAC;wCACtB,KAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,yCAAyC,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,aAAW,CAAC,CAAC,CAAC;qCAC/H;oCAED,IAAI,YAAY,EAAE;wCACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;wCAC1B,MAAM,CAAC,eAAe,CAAC,CAAC;qCACxB;yCACI;wCACJ,IAAI,SAAO,GAAG,wBAAe,CAAC,OAAO,EAAE,aAAW,EAAE,IAAI,CAAC,CAAC;wCAE1D,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;4CACjH,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,UAAU,CAAC;gDACjG,IAAI,EAAE;oDACL,EAAC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAC;oDACxB,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,EAAC,EAAC;iDACpC;6CACD,CAAC,CAAC,IAAI,CAAC;gDACP,IAAI,SAAO,EAAE;oDACZ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,aAAW,CAAC,GAAG,EAAC,EAAE,SAAO,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;wDAC3H,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oDACxB,CAAC,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;iDACvB;qDACI;oDACJ,OAAO,CAAC,CAAC,CAAC,CAAC;iDACX;4CACF,CAAC,EAAE,UAAA,GAAG;gDACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAClB,CAAC,CAAC,CAAC;wCACJ,CAAC,EAAE,UAAA,GAAG;4CACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAEjB,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,UAAU,CAAC;gDACjG,IAAI,EAAE;oDACL,EAAC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAC;oDACxB,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,EAAC,EAAC;iDACpC;6CACD,CAAC,CAAC,IAAI,CAAC;gDACP,IAAI,SAAO,EAAE;oDACZ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,aAAW,CAAC,GAAG,EAAC,EAAE,SAAO,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;wDAC3H,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oDACxB,CAAC,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;iDACvB;qDACI;oDACJ,OAAO,CAAC,CAAC,CAAC,CAAC;iDACX;4CACF,CAAC,EAAE,UAAA,GAAG;gDACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAClB,CAAC,CAAC,CAAC;wCACJ,CAAC,CAAC,CAAC;qCACH;iCACD;qCACI;oCACJ,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oCAE9E,IAAI,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;oCAE/B,IAAI,aAAa,EAAE;wCAClB,IAAI,YAAU,GAAG,iBAAQ,CAAC,OAAO,CAAC,CAAC;wCAEnC,YAAU,CAAC,GAAG,GAAG;4CAChB,GAAG,EAAE,OAAO,CAAC,GAAG;4CAChB,GAAG,EAAE,OAAO,CAAC,GAAG;yCAChB,CAAC;wCAEF,IAAI,UAAU,GAAG,gCAAuB,CAAC,aAAW,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;wCAC9E,UAAU,CAAC,GAAG,GAAG,YAAY,CAAC;wCAC9B,UAAU,CAAC,GAAG,EAAE,CAAC;wCACjB,UAAU,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;wCAElC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,EAAC,GAAG,EAAE,YAAY,EAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;4CAC5H,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,YAAU,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;gDACjH,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,UAAU,CAAC;oDACjG,IAAI,EAAE;wDACL,EAAC,SAAS,EAAE,YAAU,CAAC,GAAG,CAAC,GAAG,EAAC;wDAC/B,EAAC,SAAS,EAAE,EAAC,IAAI,EAAE,YAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAC,EAAC;qDAC3C;iDACD,CAAC,CAAC,IAAI,CAAC;oDACP,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gDAC/B,CAAC,EAAE,UAAA,GAAG;oDACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gDAClB,CAAC,CAAC,CAAC;4CACJ,CAAC,EAAE,UAAA,GAAG;gDACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAClB,CAAC,CAAC,CAAC;wCACJ,CAAC,EAAE,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAC;qCACvB;yCACI;wCACJ,MAAM,CAAC,mEAAmE,GAAG,OAAO,CAAC,GAAG,GAAG,2BAA2B,GAAG,aAAW,CAAC,GAAG,CAAC,CAAC;qCAC1I;iCACD;6BACD;iCACI;gCACJ,MAAM,CAAC,aAAa,CAAC,CAAC;6BACtB;wBACF,CAAC,EAAE,cAAO,CAAC,CAAC,CAAC;qBACb;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;QACD,gCAAgC;QAChC,mCAAmC;QACnC,wEAAwE;QACxE,+CAA+C;QAC/C,cAAc,EAAE;YACf,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,UAAU,EAAE;oBACX,IAAI,EAAE,MAAM;iBACZ;gBACD,MAAM,EAAE;oBACP,IAAI,EAAE,MAAM;iBACZ;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,UAAkB,EAAE,MAAc;gBACpD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBAClC,IAAI,CAAC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBAC9E,MAAM,CAAC,oBAAoB,CAAC,CAAC;qBAC7B;yBACI;wBACJ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,MAAM,EAAC,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;4BACzG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBACxB,CAAC,EAAE,UAAA,GAAG;4BACL,MAAM,CAAC,GAAG,CAAC,CAAC;wBACb,CAAC,CAAC,CAAC;qBACH;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;QACD,uBAAuB,EAAE;YACxB,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,UAAU,EAAE;oBACX,IAAI,EAAE,MAAM;iBACZ;gBACD,KAAK,EAAE;oBACN,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,UAAkB,EAAE,KAAa;gBACnD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBAClC,IAAI,CAAC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBAC9E,MAAM,CAAC,oBAAoB,CAAC,CAAC;qBAC7B;yBACI;wBACJ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;4BACjG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBACxB,CAAC,EAAE,UAAA,GAAG;4BACL,MAAM,CAAC,GAAG,CAAC,CAAC;wBACb,CAAC,CAAC,CAAC;qBACH;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;QACD,wBAAwB,EAAE;YACzB,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,UAAU,EAAE;oBACX,IAAI,EAAE,MAAM;iBACZ;gBACD,KAAK,EAAE;oBACN,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,UAAkB,EAAE,KAAa;gBACnD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBAClC,IAAI,CAAC,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBAC9E,MAAM,CAAC,oBAAoB,CAAC,CAAC;qBAC7B;yBACI;wBACJ,uBAAe,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;4BAClG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBACxB,CAAC,EAAE,UAAA,GAAG;4BACL,MAAM,CAAC,GAAG,CAAC,CAAC;wBACb,CAAC,CAAC,CAAC;qBACH;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;KACD,CAAC,CAAC;AACJ,CAAC;AA/3BD,sDA+3BC","file":"collections.js","sourcesContent":["import { MethodManager } from '../managers/method.manager';\nimport { getMongoUpdates, deepCopy, getMongoMergeUpdatedDoc, getBinarySize } from '../util/common';\nimport SimpleSchema from 'simpl-schema';\nimport { PaginationOptionsSchema, PaginationOptions } from '../models/pagination.model';\nimport { ResolveIOServer } from '../index';\nimport { objectIdHexString } from '../managers/mongo.manager';\n\nexport function loadCollectionMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tcollectionListAll: {\n\t\t\tskipQueue: true,\n\t\t\tfunction: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tresolve(ResolveIOServer.getMainServer().getMongoManager().collections().map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tcollectionListRB: {\n\t\t\tskipQueue: true,\n\t\t\tfunction: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tresolve(ResolveIOServer.getMainServer().getMongoManager().collections().filter(a => a.useRB).map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Query database for any collection and query\n\t\tfindOne: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).findOne(query).then(res => resolve(res), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tfind: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tsort: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}, sortQuery = {}) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).find(query, {sort: sortQuery}).then(res => resolve(res), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tfindWithOptions: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\ttype: PaginationOptionsSchema\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object, options: PaginationOptions) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet optionsQuery = {};\n\n\t\t\t\t\t\tif (options.fields && Object.keys(options.fields).length) {\n\t\t\t\t\t\t\toptionsQuery['projection'] = options.fields;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.sort && Object.keys(options.sort).length) {\n\t\t\t\t\t\t\toptionsQuery['sort'] = options.sort;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.limit) {\n\t\t\t\t\t\t\toptionsQuery['limit'] = options.limit;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.skip) {\n\t\t\t\t\t\t\toptionsQuery['skip'] = options.skip;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).find(query, optionsQuery).then(res => resolve(res), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, document: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection)['simplschema'].validate(document);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Schema Failed on insert - ' + collection, [schemaErrors, document]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlet id = objectIdHexString();\n\t\t\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).insertOne(document).then(() => resolve(id), err => reject(err));\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\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertManyDocuments: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocuments: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'documents.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, documents: Object[]) {\n\t\t\t\treturn new Promise((res, rej) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\trej('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet promises = [];\n\n\t\t\t\t\t\tfor (let i = 0; i < documents.length; i++) {\n\t\t\t\t\t\t\tlet document = documents[i];\n\n\t\t\t\t\t\t\tpromises.push(new Promise((resolve, reject) => {\n\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection)['simplschema'].validate(document);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Schema Failed on insert - ' + collection, [schemaErrors, document]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet id = objectIdHexString();\n\t\t\t\t\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).insertOne(document).then(() => resolve(id), err => reject(err));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tPromise.all(promises).then(vals => res(vals), err => rej(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Replaces 1 document with new document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update\n\t\tupdateDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).findOne({_id: f_document['_id']}).then(currDoc => {\n\t\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection)['simplschema'].validate(f_document);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Schema Failed on updateDocument - ' + collection, [schemaErrors, f_document]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, f_document, true);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: f_document['_id']}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: f_document['_id']}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tconsole.log('invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\t\t\tif (ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': f_document['__v']}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).then(oldDoc => {\n\t\t\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\treject('Invalid Version And Could Not Find History - DB: ' + currDoc.__v + ', Trying to update with :' + f_document['__v']);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, errOldDoc => {});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, errDoc => {\n\t\t\t\t\t\t\treject('No Document');\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\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentProps: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string, updateParams: any[], doc__v: number) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).findOne({_id: doc_id}).then(currDoc => {\n\t\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\t\t\n\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection)['simplschema'].validate(modifiedDoc);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Schema Failed on updateDocumentProps - ' + collection, [schemaErrors, modifiedDoc]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, modifiedDoc, true);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: modifiedDoc._id}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: modifiedDoc._id}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.n);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tconsole.log(new Date(), 'invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\t\t\tif (ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': doc__v}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).then(oldDoc => {\n\t\t\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\treject('Invalid Version And Could Not Find History Props - DB: ' + currDoc.__v + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, () => {});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t\t}\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\tupdateDocumentOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tf_oldDocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object, f_oldDocument: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).findOne({_id: f_document['_id']}).then(currDoc => {\n\t\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\n\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection)['simplschema'].validate(f_document);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Schema Failed on updateDocument - ' + collection, [schemaErrors, f_document]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, f_document, true);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: f_document['_id']}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: f_document['_id']}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\t\tif (f_oldDocument) {\n\t\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, f_oldDocument);\n\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc).then(res => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('OFFLINE - Invalid Version And Could Not Find History - DB: ' + currDoc.__v + ', Trying to update with :' + f_document['__v']);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t\t}\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\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentPropsOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tf_oldDocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string, updateParams: any[], doc__v: number, f_oldDocument: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).findOne({_id: doc_id}).then(currDoc => {\n\t\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\t\t\n\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection)['simplschema'].validate(modifiedDoc);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Schema Failed on updateDocumentProps - ' + collection, [schemaErrors, modifiedDoc]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, modifiedDoc, true);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: modifiedDoc._id}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: modifiedDoc._id}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\t\tif (f_oldDocument) {\n\t\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, f_oldDocument);\n\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc).then(res => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + currDoc.__v + ', Trying to update with :' + modifiedDoc.__v);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t\t}\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\t// Removes 1 document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (deleted), res = 0 (not deleted), err = not deleted\n\t\t// Search for doc, if found then try and remove\n\t\tremoveDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).deleteOne({_id: doc_id}).then(res => {\n\t\t\t\t\t\t\tresolve(res.result.ok);\n\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\treject(err);\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\tremoveDocumentWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).deleteOne(query).then(res => {\n\t\t\t\t\t\t\tresolve(res.result.ok);\n\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\treject(err);\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\tremoveDocumentsWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).deleteMany(query).then(res => {\n\t\t\t\t\t\t\tresolve(res.result.ok);\n\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\treject(err);\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}"]}
1
+ {"version":3,"sources":["../../src/methods/collections.ts"],"names":[],"mappings":"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","file":"collections.js","sourcesContent":["import { MethodManager } from '../managers/method.manager';\nimport { getMongoUpdates, deepCopy, getMongoMergeUpdatedDoc, getBinarySize } from '../util/common';\nimport SimpleSchema from 'simpl-schema';\nimport { PaginationOptionsSchema, PaginationOptions } from '../models/pagination.model';\nimport { ResolveIOServer } from '../index';\nimport { objectIdHexString } from '../managers/mongo.manager';\n\nexport function loadCollectionMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tcollectionListAll: {\n\t\t\tskipQueue: true,\n\t\t\tfunction: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tresolve(ResolveIOServer.getMainServer().getMongoManager().collections().map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tcollectionListRB: {\n\t\t\tskipQueue: true,\n\t\t\tfunction: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tresolve(ResolveIOServer.getMainServer().getMongoManager().collections().filter(a => a.useRB).map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Query database for any collection and query\n\t\tfindOne: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).findOne(query).then(res => resolve(res), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tfind: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tsort: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}, sortQuery = {}) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).find(query, {sort: sortQuery}).then(res => resolve(res), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tfindWithOptions: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\ttype: PaginationOptionsSchema\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object, options: PaginationOptions) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet optionsQuery = {};\n\n\t\t\t\t\t\tif (options.fields && Object.keys(options.fields).length) {\n\t\t\t\t\t\t\toptionsQuery['projection'] = options.fields;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.sort && Object.keys(options.sort).length) {\n\t\t\t\t\t\t\toptionsQuery['sort'] = options.sort;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.limit) {\n\t\t\t\t\t\t\toptionsQuery['limit'] = options.limit;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.skip) {\n\t\t\t\t\t\t\toptionsQuery['skip'] = options.skip;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).find(query, optionsQuery).then(res => resolve(res), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, document: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection)['simplschema'].validate(document);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Schema Failed on insert - ' + collection, [schemaErrors, document]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlet id = objectIdHexString();\n\t\t\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).insertOne(document).then(() => resolve(id), err => reject(err));\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\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertManyDocuments: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocuments: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'documents.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, documents: Object[]) {\n\t\t\t\treturn new Promise((res, rej) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\trej('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet promises = [];\n\n\t\t\t\t\t\tfor (let i = 0; i < documents.length; i++) {\n\t\t\t\t\t\t\tlet document = documents[i];\n\n\t\t\t\t\t\t\tpromises.push(new Promise((resolve, reject) => {\n\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection)['simplschema'].validate(document);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Schema Failed on insert - ' + collection, [schemaErrors, document]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet id = objectIdHexString();\n\t\t\t\t\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).insertOne(document).then(() => resolve(id), err => reject(err));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tPromise.all(promises).then(vals => res(vals), err => rej(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Replaces 1 document with new document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update\n\t\tupdateDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).findOne({_id: f_document['_id']}).then(currDoc => {\n\t\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection)['simplschema'].validate(f_document);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Schema Failed on updateDocument - ' + collection, [schemaErrors, f_document]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, f_document, true);\n\n\t\t\t\t\t\t\t\t\t\tif (ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: f_document['_id']}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: f_document['_id']}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: f_document['_id']}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tconsole.log('invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\t\t\tif (ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': f_document['__v']}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).then(oldDoc => {\n\t\t\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\treject('Invalid Version And Could Not Find History - DB: ' + currDoc.__v + ', Trying to update with :' + f_document['__v']);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, errDoc => {\n\t\t\t\t\t\t\treject('No Document');\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\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentProps: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string, updateParams: any[], doc__v: number) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).findOne({_id: doc_id}).then(currDoc => {\n\t\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\t\t\n\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection)['simplschema'].validate(modifiedDoc);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Schema Failed on updateDocumentProps - ' + collection, [schemaErrors, modifiedDoc]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, modifiedDoc, true);\n\n\t\t\t\t\t\t\t\t\t\tif (ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: modifiedDoc._id}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: modifiedDoc._id}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.n);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: modifiedDoc._id}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.n);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tconsole.log(new Date(), 'invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\t\t\tif (ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': doc__v}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).then(oldDoc => {\n\t\t\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\treject('Invalid Version And Could Not Find History Props - DB: ' + currDoc.__v + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, () => {});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t\t}\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\tupdateDocumentOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tf_oldDocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object, f_oldDocument: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).findOne({_id: f_document['_id']}).then(currDoc => {\n\t\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\n\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection)['simplschema'].validate(f_document);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Schema Failed on updateDocument - ' + collection, [schemaErrors, f_document]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, f_document, true);\n\n\t\t\t\t\t\t\t\t\t\tif (ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: f_document['_id']}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: f_document['_id']}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: f_document['_id']}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\t\tif (f_oldDocument) {\n\t\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, f_oldDocument);\n\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc).then(res => {\n\t\t\t\t\t\t\t\t\t\t\tif (ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('OFFLINE - Invalid Version And Could Not Find History - DB: ' + currDoc.__v + ', Trying to update with :' + f_document['__v']);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t\t}\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\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentPropsOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tf_oldDocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string, updateParams: any[], doc__v: number, f_oldDocument: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).findOne({_id: doc_id}).then(currDoc => {\n\t\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\t\t\n\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection)['simplschema'].validate(modifiedDoc);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Schema Failed on updateDocumentProps - ' + collection, [schemaErrors, modifiedDoc]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, modifiedDoc, true);\n\n\t\t\t\t\t\t\t\t\t\tif (ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: modifiedDoc._id}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: modifiedDoc._id}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).updateOne({_id: modifiedDoc._id}, updates).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\t\tif (f_oldDocument) {\n\t\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, f_oldDocument);\n\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc).then(res => {\n\t\t\t\t\t\t\t\t\t\t\tif (ResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection + '.versions').deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.result.nModified);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + currDoc.__v + ', Trying to update with :' + modifiedDoc.__v);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t\t}\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\t// Removes 1 document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (deleted), res = 0 (not deleted), err = not deleted\n\t\t// Search for doc, if found then try and remove\n\t\tremoveDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).deleteOne({_id: doc_id}).then(res => {\n\t\t\t\t\t\t\tresolve(res.result.ok);\n\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\treject(err);\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\tremoveDocumentWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).deleteOne(query).then(res => {\n\t\t\t\t\t\t\tresolve(res.result.ok);\n\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\treject(err);\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\tremoveDocumentsWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMainServer().getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMainServer().getMongoManager().collection(collection).deleteMany(query).then(res => {\n\t\t\t\t\t\t\tresolve(res.result.ok);\n\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\treject(err);\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}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resolveio/server-lib",
3
- "version": "9.0.23",
3
+ "version": "9.0.25",
4
4
  "description": "",
5
5
  "main": "index.ts",
6
6
  "scripts": {