@stemy/backend 2.5.1 → 2.7.1

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.
@@ -1,4 +1,4 @@
1
- import { dirname, basename, join } from 'path';
1
+ import { dirname, basename, join, resolve } from 'path';
2
2
  import { json } from 'body-parser';
3
3
  import { sign, verify } from 'jsonwebtoken';
4
4
  import { injectable, scoped, Lifecycle, injectAll, singleton, inject, isFactoryProvider, container } from 'tsyringe';
@@ -12,7 +12,7 @@ import { exec } from 'child_process';
12
12
  import { createHash } from 'crypto';
13
13
  import { Subscription, Observable, Subject, from } from 'rxjs';
14
14
  import { canReportError } from 'rxjs/internal/util/canReportError';
15
- import { mkdir, unlink, readFile as readFile$1, writeFile as writeFile$1, lstat, readdir, access, constants, lstatSync, readFileSync } from 'fs';
15
+ import { mkdir, unlink, readFile as readFile$1, writeFile as writeFile$1, lstat, readdir, access, constants, lstatSync, readFileSync, existsSync } from 'fs';
16
16
  import { Types, model, connect } from 'mongoose';
17
17
  import { getValue as getValue$1, setValue } from 'mongoose/lib/utils';
18
18
  import { PassThrough, Readable } from 'stream';
@@ -27,7 +27,7 @@ import { validate, schedule } from 'node-cron';
27
27
  import ioredis from 'ioredis';
28
28
  import socket_io_client from 'socket.io-client';
29
29
  import { createServer } from 'http';
30
- import express_ from 'express';
30
+ import express_, { static as static$1 } from 'express';
31
31
  import socket_io from 'socket.io';
32
32
  import { v4 } from 'uuid';
33
33
  import { createTransport } from 'nodemailer';
@@ -36,7 +36,7 @@ import axios from 'axios';
36
36
  import { compare } from 'bcrypt';
37
37
  import moment from 'moment';
38
38
 
39
- var __awaiter$s = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
39
+ var __awaiter$u = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
40
40
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
41
41
  return new (P || (P = Promise))(function (resolve, reject) {
42
42
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -86,6 +86,23 @@ function isConstructor(value) {
86
86
  function isType(value) {
87
87
  return isConstructor(value);
88
88
  }
89
+ function isInterface(obj, interFaceObject) {
90
+ if (!obj || typeof obj !== "object" || isArray(obj) || !isObject(interFaceObject))
91
+ return false;
92
+ const keys = Object.keys(interFaceObject);
93
+ for (const key of keys) {
94
+ let type = interFaceObject[key] || "";
95
+ if (type.startsWith("*")) {
96
+ type = type.substr(1);
97
+ if (obj.hasOwnProperty(key) && getType(obj[key]) !== type)
98
+ return false;
99
+ }
100
+ else if (!obj.hasOwnProperty(key) || getType(obj[key]) !== type) {
101
+ return false;
102
+ }
103
+ }
104
+ return true;
105
+ }
89
106
  function ucFirst(value) {
90
107
  if (!value)
91
108
  return "";
@@ -221,7 +238,7 @@ function hydratePopulated(modelType, json) {
221
238
  return object;
222
239
  }
223
240
  function paginateAggregations(model, aggregations, params, metaProjection = {}) {
224
- return __awaiter$s(this, void 0, void 0, function* () {
241
+ return __awaiter$u(this, void 0, void 0, function* () {
225
242
  const sortField = !isString(params.sort) || !params.sort ? null : (params.sort.startsWith("-") ? params.sort.substr(1) : params.sort);
226
243
  const sortAggregation = !sortField ? [] : [{
227
244
  $sort: { [sortField]: sortField == params.sort ? 1 : -1 }
@@ -320,7 +337,7 @@ function readFile(path) {
320
337
  });
321
338
  }
322
339
  function readAndDeleteFile(path, timeout = 5000) {
323
- return __awaiter$s(this, void 0, void 0, function* () {
340
+ return __awaiter$u(this, void 0, void 0, function* () {
324
341
  const data = yield readFile(path);
325
342
  setTimeout(() => {
326
343
  unlink(path, () => {
@@ -330,7 +347,7 @@ function readAndDeleteFile(path, timeout = 5000) {
330
347
  });
331
348
  }
332
349
  function writeFile(path, data) {
333
- return __awaiter$s(this, void 0, void 0, function* () {
350
+ return __awaiter$u(this, void 0, void 0, function* () {
334
351
  yield mkdirRecursive(dirname(path));
335
352
  return new Promise((res, rej) => {
336
353
  writeFile$1(path, data, err => {
@@ -409,7 +426,7 @@ function ResolveEntity(model, extraCheck) {
409
426
  const paramName = modelName.toLowerCase();
410
427
  return createParamDecorator({
411
428
  required: false,
412
- value: (action) => __awaiter$s(this, void 0, void 0, function* () {
429
+ value: (action) => __awaiter$u(this, void 0, void 0, function* () {
413
430
  const req = action.request;
414
431
  const token = req.header(`x-${paramName}-token`);
415
432
  const id = req.params[`${paramName}Id`];
@@ -625,7 +642,7 @@ function runCommand(scriptPath, expectedCode = 0) {
625
642
  });
626
643
  }
627
644
 
628
- var __decorate$w = (this && this.__decorate) || function (decorators, target, key, desc) {
645
+ var __decorate$x = (this && this.__decorate) || function (decorators, target, key, desc) {
629
646
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
630
647
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
631
648
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -659,7 +676,7 @@ let IsFile = class IsFile {
659
676
  return checkValue(multi, value);
660
677
  }
661
678
  };
662
- IsFile = __decorate$w([
679
+ IsFile = __decorate$x([
663
680
  ValidatorConstraint()
664
681
  ], IsFile);
665
682
  let IsObjectId = class IsObjectId {
@@ -668,7 +685,7 @@ let IsObjectId = class IsObjectId {
668
685
  return checkValue(multi, value);
669
686
  }
670
687
  };
671
- IsObjectId = __decorate$w([
688
+ IsObjectId = __decorate$x([
672
689
  ValidatorConstraint()
673
690
  ], IsObjectId);
674
691
 
@@ -727,13 +744,13 @@ class Parameter {
727
744
  }
728
745
  }
729
746
 
730
- var __decorate$v = (this && this.__decorate) || function (decorators, target, key, desc) {
747
+ var __decorate$w = (this && this.__decorate) || function (decorators, target, key, desc) {
731
748
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
732
749
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
733
750
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
734
751
  return c > 3 && r && Object.defineProperty(target, key, r), r;
735
752
  };
736
- var __awaiter$r = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
753
+ var __awaiter$t = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
737
754
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
738
755
  return new (P || (P = Promise))(function (resolve, reject) {
739
756
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -758,7 +775,7 @@ const fontProps = [
758
775
  ];
759
776
  let AssetProcessor = AssetProcessor_1 = class AssetProcessor {
760
777
  static getMimeType(buffer, mimeType) {
761
- return __awaiter$r(this, void 0, void 0, function* () {
778
+ return __awaiter$t(this, void 0, void 0, function* () {
762
779
  try {
763
780
  mimeType = (yield fromBuffer(buffer)).mime;
764
781
  }
@@ -790,7 +807,7 @@ let AssetProcessor = AssetProcessor_1 = class AssetProcessor {
790
807
  return imageTypes.indexOf(contentType) >= 0;
791
808
  }
792
809
  static copyImageMeta(buffer, metadata) {
793
- return __awaiter$r(this, void 0, void 0, function* () {
810
+ return __awaiter$t(this, void 0, void 0, function* () {
794
811
  const output = yield sharp$3(buffer).rotate().toBuffer({ resolveWithObject: true });
795
812
  Object.assign(metadata, output.info);
796
813
  return output.data;
@@ -807,7 +824,7 @@ let AssetProcessor = AssetProcessor_1 = class AssetProcessor {
807
824
  });
808
825
  }
809
826
  process(buffer, metadata, contentType) {
810
- return __awaiter$r(this, void 0, void 0, function* () {
827
+ return __awaiter$t(this, void 0, void 0, function* () {
811
828
  if (AssetProcessor_1.isImage(contentType)) {
812
829
  buffer = yield AssetProcessor_1.copyImageMeta(buffer, metadata);
813
830
  }
@@ -818,12 +835,12 @@ let AssetProcessor = AssetProcessor_1 = class AssetProcessor {
818
835
  });
819
836
  }
820
837
  };
821
- AssetProcessor = AssetProcessor_1 = __decorate$v([
838
+ AssetProcessor = AssetProcessor_1 = __decorate$w([
822
839
  injectable(),
823
840
  scoped(Lifecycle.ContainerScoped)
824
841
  ], AssetProcessor);
825
842
 
826
- var __decorate$u = (this && this.__decorate) || function (decorators, target, key, desc) {
843
+ var __decorate$v = (this && this.__decorate) || function (decorators, target, key, desc) {
827
844
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
828
845
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
829
846
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -866,14 +883,14 @@ let Configuration = class Configuration {
866
883
  return param.defaultValue;
867
884
  }
868
885
  };
869
- Configuration = __decorate$u([
886
+ Configuration = __decorate$v([
870
887
  injectable(),
871
888
  scoped(Lifecycle.ContainerScoped),
872
889
  __param$8(0, injectAll(PARAMETER)),
873
890
  __metadata$p("design:paramtypes", [Array])
874
891
  ], Configuration);
875
892
 
876
- var __decorate$t = (this && this.__decorate) || function (decorators, target, key, desc) {
893
+ var __decorate$u = (this && this.__decorate) || function (decorators, target, key, desc) {
877
894
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
878
895
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
879
896
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -882,7 +899,7 @@ var __decorate$t = (this && this.__decorate) || function (decorators, target, ke
882
899
  var __metadata$o = (this && this.__metadata) || function (k, v) {
883
900
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
884
901
  };
885
- var __awaiter$q = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
902
+ var __awaiter$s = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
886
903
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
887
904
  return new (P || (P = Promise))(function (resolve, reject) {
888
905
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -908,7 +925,7 @@ let MongoConnector = class MongoConnector {
908
925
  return this.fsBucket;
909
926
  }
910
927
  connect() {
911
- return __awaiter$q(this, void 0, void 0, function* () {
928
+ return __awaiter$s(this, void 0, void 0, function* () {
912
929
  if (this.db)
913
930
  return this.db;
914
931
  this.conn = (yield connect(this.configuration.resolve("mongoUri"), {
@@ -923,13 +940,13 @@ let MongoConnector = class MongoConnector {
923
940
  });
924
941
  }
925
942
  };
926
- MongoConnector = __decorate$t([
943
+ MongoConnector = __decorate$u([
927
944
  injectable(),
928
945
  singleton(),
929
946
  __metadata$o("design:paramtypes", [Configuration])
930
947
  ], MongoConnector);
931
948
 
932
- var __awaiter$p = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
949
+ var __awaiter$r = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
933
950
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
934
951
  return new (P || (P = Promise))(function (resolve, reject) {
935
952
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -939,6 +956,12 @@ var __awaiter$p = (this && this.__awaiter) || function (thisArg, _arguments, P,
939
956
  });
940
957
  };
941
958
  const sharp$2 = sharp_;
959
+ const cropInterface = {
960
+ x: "number",
961
+ y: "number",
962
+ w: "number",
963
+ h: "number"
964
+ };
942
965
  class Asset {
943
966
  constructor(fileId, filename, contentType, metadata, bucket, collection) {
944
967
  this.fileId = fileId;
@@ -948,8 +971,27 @@ class Asset {
948
971
  this.bucket = bucket;
949
972
  this.collection = collection;
950
973
  }
951
- static toImage(stream, params) {
952
- return __awaiter$p(this, void 0, void 0, function* () {
974
+ static toCropRegion(cropInfo) {
975
+ let crop = cropInfo;
976
+ if (isString(cropInfo)) {
977
+ try {
978
+ crop = JSON.parse(cropInfo);
979
+ }
980
+ catch (e) {
981
+ return null;
982
+ }
983
+ }
984
+ if (!isInterface(crop, cropInterface))
985
+ return null;
986
+ return {
987
+ width: Math.round(crop.w),
988
+ height: Math.round(crop.h),
989
+ top: Math.round(crop.y),
990
+ left: Math.round(crop.x)
991
+ };
992
+ }
993
+ static toImage(stream, meta, params) {
994
+ return __awaiter$r(this, void 0, void 0, function* () {
953
995
  params = params || {};
954
996
  if (Object.keys(params).length == 0)
955
997
  return stream;
@@ -960,12 +1002,28 @@ class Asset {
960
1002
  params.canvasScaleY = isNaN(params.canvasScaleY) ? 1 : params.canvasScaleY;
961
1003
  params.scaleX = isNaN(params.scaleX) ? 1 : params.scaleX;
962
1004
  params.scaleY = isNaN(params.scaleY) ? 1 : params.scaleY;
1005
+ params.crop = Boolean(params.crop);
963
1006
  // Try to modify image
964
1007
  try {
1008
+ // Get crop info
1009
+ const crop = Asset.toCropRegion(meta.crop);
1010
+ const cropBefore = Asset.toCropRegion(params.cropBefore || (params.crop ? meta.cropBefore : null));
1011
+ const cropAfter = Asset.toCropRegion(params.cropAfter || (params.crop ? meta.cropAfter : null));
965
1012
  // Get metadata
966
- const meta = yield sharp$2(buffer).metadata();
967
- let width = meta.width;
968
- let height = meta.height;
1013
+ const imgMeta = yield sharp$2(buffer).metadata();
1014
+ let width = imgMeta.width;
1015
+ let height = imgMeta.height;
1016
+ // Crop before resize
1017
+ if (cropBefore) {
1018
+ buffer = yield sharp$2(buffer)
1019
+ .extract(cropBefore)
1020
+ .toBuffer();
1021
+ }
1022
+ else if (crop) {
1023
+ buffer = yield sharp$2(buffer)
1024
+ .extract(crop)
1025
+ .toBuffer();
1026
+ }
969
1027
  // Resize canvas
970
1028
  if (params.canvasScaleX !== 1 || params.canvasScaleY !== 1) {
971
1029
  width = Math.round(width * params.canvasScaleX);
@@ -982,6 +1040,12 @@ class Asset {
982
1040
  .resize({ width, height, background: "#00000000", fit: "fill" })
983
1041
  .toBuffer();
984
1042
  }
1043
+ // Crop after resize
1044
+ if (cropAfter) {
1045
+ buffer = yield sharp$2(buffer)
1046
+ .extract(cropAfter)
1047
+ .toBuffer();
1048
+ }
985
1049
  // Rotate
986
1050
  if (params.rotation !== 0) {
987
1051
  buffer = yield sharp$2(buffer).rotate(params.rotation).toBuffer();
@@ -989,6 +1053,7 @@ class Asset {
989
1053
  return bufferToStream(buffer);
990
1054
  }
991
1055
  catch (e) {
1056
+ console.log("Asset image conversion error", e);
992
1057
  return bufferToStream(buffer);
993
1058
  }
994
1059
  });
@@ -1000,7 +1065,7 @@ class Asset {
1000
1065
  return this.bucket.openDownloadStream(this.fileId);
1001
1066
  }
1002
1067
  unlink() {
1003
- return __awaiter$p(this, void 0, void 0, function* () {
1068
+ return __awaiter$r(this, void 0, void 0, function* () {
1004
1069
  return deleteFromBucket(this.bucket, this.fileId);
1005
1070
  });
1006
1071
  }
@@ -1008,7 +1073,7 @@ class Asset {
1008
1073
  return streamToBuffer(this.stream);
1009
1074
  }
1010
1075
  download(metadata) {
1011
- return __awaiter$p(this, void 0, void 0, function* () {
1076
+ return __awaiter$r(this, void 0, void 0, function* () {
1012
1077
  metadata = Object.assign(this.metadata, metadata || {});
1013
1078
  metadata.downloadCount = isNaN(metadata.downloadCount) || !metadata.firstDownload
1014
1079
  ? 1
@@ -1020,13 +1085,13 @@ class Asset {
1020
1085
  });
1021
1086
  }
1022
1087
  getImage(params = null) {
1023
- return __awaiter$p(this, void 0, void 0, function* () {
1024
- return Asset.toImage(this.stream, params);
1088
+ return __awaiter$r(this, void 0, void 0, function* () {
1089
+ return Asset.toImage(this.stream, this.metadata, params);
1025
1090
  });
1026
1091
  }
1027
1092
  downloadImage(params, metadata) {
1028
- return __awaiter$p(this, void 0, void 0, function* () {
1029
- return Asset.toImage(yield this.download(metadata), params);
1093
+ return __awaiter$r(this, void 0, void 0, function* () {
1094
+ return Asset.toImage(yield this.download(metadata), this.metadata, params);
1030
1095
  });
1031
1096
  }
1032
1097
  toJSON() {
@@ -1039,7 +1104,7 @@ class Asset {
1039
1104
  }
1040
1105
  }
1041
1106
 
1042
- var __decorate$s = (this && this.__decorate) || function (decorators, target, key, desc) {
1107
+ var __decorate$t = (this && this.__decorate) || function (decorators, target, key, desc) {
1043
1108
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1044
1109
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1045
1110
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -1048,7 +1113,7 @@ var __decorate$s = (this && this.__decorate) || function (decorators, target, ke
1048
1113
  var __metadata$n = (this && this.__metadata) || function (k, v) {
1049
1114
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1050
1115
  };
1051
- var __awaiter$o = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1116
+ var __awaiter$q = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1052
1117
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1053
1118
  return new (P || (P = Promise))(function (resolve, reject) {
1054
1119
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1059,13 +1124,14 @@ var __awaiter$o = (this && this.__awaiter) || function (thisArg, _arguments, P,
1059
1124
  };
1060
1125
  let Assets = class Assets {
1061
1126
  constructor(connector, assetProcessor) {
1127
+ var _a;
1062
1128
  this.connector = connector;
1063
1129
  this.assetProcessor = assetProcessor;
1064
1130
  this.bucket = connector.bucket;
1065
- this.collection = connector.database.collection("assets.files");
1131
+ this.collection = (_a = connector.database) === null || _a === void 0 ? void 0 : _a.collection("assets.files");
1066
1132
  }
1067
1133
  write(stream, contentType = null, metadata = null) {
1068
- return __awaiter$o(this, void 0, void 0, function* () {
1134
+ return __awaiter$q(this, void 0, void 0, function* () {
1069
1135
  let extension = null;
1070
1136
  const fileTypeStream = copyStream(stream);
1071
1137
  const uploadStream = copyStream(stream);
@@ -1107,7 +1173,7 @@ let Assets = class Assets {
1107
1173
  });
1108
1174
  }
1109
1175
  writeBuffer(buffer, metadata = null, contentType = null) {
1110
- return __awaiter$o(this, void 0, void 0, function* () {
1176
+ return __awaiter$q(this, void 0, void 0, function* () {
1111
1177
  contentType = yield AssetProcessor.getMimeType(buffer, contentType);
1112
1178
  metadata = metadata || {};
1113
1179
  buffer = yield this.assetProcessor.process(buffer, metadata, contentType);
@@ -1115,18 +1181,18 @@ let Assets = class Assets {
1115
1181
  });
1116
1182
  }
1117
1183
  read(id) {
1118
- return __awaiter$o(this, void 0, void 0, function* () {
1184
+ return __awaiter$q(this, void 0, void 0, function* () {
1119
1185
  return this.find({ _id: new ObjectId(id) });
1120
1186
  });
1121
1187
  }
1122
1188
  find(where) {
1123
- return __awaiter$o(this, void 0, void 0, function* () {
1189
+ return __awaiter$q(this, void 0, void 0, function* () {
1124
1190
  const data = yield this.collection.findOne(where);
1125
1191
  return !data ? null : new Asset(data._id, data.filename, data.contentType, data.metadata, this.bucket, this.collection);
1126
1192
  });
1127
1193
  }
1128
1194
  unlink(id) {
1129
- return __awaiter$o(this, void 0, void 0, function* () {
1195
+ return __awaiter$q(this, void 0, void 0, function* () {
1130
1196
  const asset = yield this.read(id);
1131
1197
  if (!asset)
1132
1198
  return null;
@@ -1134,13 +1200,13 @@ let Assets = class Assets {
1134
1200
  });
1135
1201
  }
1136
1202
  };
1137
- Assets = __decorate$s([
1203
+ Assets = __decorate$t([
1138
1204
  injectable(),
1139
1205
  scoped(Lifecycle.ContainerScoped),
1140
1206
  __metadata$n("design:paramtypes", [MongoConnector, AssetProcessor])
1141
1207
  ], Assets);
1142
1208
 
1143
- var __awaiter$n = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1209
+ var __awaiter$p = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1144
1210
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1145
1211
  return new (P || (P = Promise))(function (resolve, reject) {
1146
1212
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1172,7 +1238,7 @@ class LazyAsset {
1172
1238
  return this.mAssetId;
1173
1239
  }
1174
1240
  unlink() {
1175
- return __awaiter$n(this, void 0, void 0, function* () {
1241
+ return __awaiter$p(this, void 0, void 0, function* () {
1176
1242
  yield this.collection.deleteOne({ _id: this.lazyId });
1177
1243
  return deleteFromBucket(this.assets.bucket, new ObjectId(this.mAssetId));
1178
1244
  });
@@ -1187,7 +1253,7 @@ class LazyAsset {
1187
1253
  });
1188
1254
  }
1189
1255
  loadAsset() {
1190
- return __awaiter$n(this, void 0, void 0, function* () {
1256
+ return __awaiter$p(this, void 0, void 0, function* () {
1191
1257
  if (this.mAssetId) {
1192
1258
  return this.assets.read(this.mAssetId);
1193
1259
  }
@@ -1202,7 +1268,7 @@ class LazyAsset {
1202
1268
  });
1203
1269
  }
1204
1270
  writeAsset(asset) {
1205
- return __awaiter$n(this, void 0, void 0, function* () {
1271
+ return __awaiter$p(this, void 0, void 0, function* () {
1206
1272
  this.mAssetId = asset.id;
1207
1273
  yield this.save();
1208
1274
  return asset;
@@ -1222,7 +1288,7 @@ class LazyAsset {
1222
1288
  };
1223
1289
  }
1224
1290
  startWorkingOnAsset() {
1225
- return __awaiter$n(this, void 0, void 0, function* () {
1291
+ return __awaiter$p(this, void 0, void 0, function* () {
1226
1292
  const progress = yield this.progresses.create();
1227
1293
  this.mProgressId = progress.id;
1228
1294
  yield this.save();
@@ -1231,7 +1297,7 @@ class LazyAsset {
1231
1297
  }
1232
1298
  }
1233
1299
 
1234
- var __decorate$r = (this && this.__decorate) || function (decorators, target, key, desc) {
1300
+ var __decorate$s = (this && this.__decorate) || function (decorators, target, key, desc) {
1235
1301
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1236
1302
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1237
1303
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -1243,7 +1309,7 @@ var __metadata$m = (this && this.__metadata) || function (k, v) {
1243
1309
  var __param$7 = (this && this.__param) || function (paramIndex, decorator) {
1244
1310
  return function (target, key) { decorator(target, key, paramIndex); }
1245
1311
  };
1246
- var __awaiter$m = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1312
+ var __awaiter$o = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1247
1313
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1248
1314
  return new (P || (P = Promise))(function (resolve, reject) {
1249
1315
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1266,7 +1332,7 @@ let JobManager = class JobManager {
1266
1332
  }, {});
1267
1333
  }
1268
1334
  process(jobType, params = {}) {
1269
- return __awaiter$m(this, void 0, void 0, function* () {
1335
+ return __awaiter$o(this, void 0, void 0, function* () {
1270
1336
  let instance = null;
1271
1337
  try {
1272
1338
  instance = this.resolveJobInstance(jobType, params);
@@ -1279,25 +1345,25 @@ let JobManager = class JobManager {
1279
1345
  });
1280
1346
  }
1281
1347
  enqueueWithName(name, params = {}, que = "main") {
1282
- return __awaiter$m(this, void 0, void 0, function* () {
1348
+ return __awaiter$o(this, void 0, void 0, function* () {
1283
1349
  const jobName = yield this.tryResolveFromName(name, params);
1284
1350
  yield this.queue.enqueue(que, jobName, [params]);
1285
1351
  });
1286
1352
  }
1287
1353
  enqueue(jobType, params = {}, que = "main") {
1288
- return __awaiter$m(this, void 0, void 0, function* () {
1354
+ return __awaiter$o(this, void 0, void 0, function* () {
1289
1355
  const jobName = yield this.tryResolveAndConnect(jobType, params);
1290
1356
  yield this.queue.enqueue(que, jobName, [params]);
1291
1357
  });
1292
1358
  }
1293
1359
  enqueueAt(timestamp, jobType, params = {}, que = "main") {
1294
- return __awaiter$m(this, void 0, void 0, function* () {
1360
+ return __awaiter$o(this, void 0, void 0, function* () {
1295
1361
  const jobName = yield this.tryResolveAndConnect(jobType, params);
1296
1362
  yield this.queue.enqueueAt(timestamp, que, jobName, [params]);
1297
1363
  });
1298
1364
  }
1299
1365
  enqueueIn(time, jobType, params = {}, que = "main") {
1300
- return __awaiter$m(this, void 0, void 0, function* () {
1366
+ return __awaiter$o(this, void 0, void 0, function* () {
1301
1367
  const jobName = yield this.tryResolveAndConnect(jobType, params);
1302
1368
  yield this.queue.enqueueIn(time, que, jobName, [params]);
1303
1369
  });
@@ -1325,7 +1391,7 @@ let JobManager = class JobManager {
1325
1391
  });
1326
1392
  }
1327
1393
  startProcessing() {
1328
- return __awaiter$m(this, void 0, void 0, function* () {
1394
+ return __awaiter$o(this, void 0, void 0, function* () {
1329
1395
  this.initialize();
1330
1396
  yield this.worker.connect();
1331
1397
  yield this.worker.start();
@@ -1397,7 +1463,7 @@ let JobManager = class JobManager {
1397
1463
  return this.tryResolveAndConnect(jobType, params);
1398
1464
  }
1399
1465
  tryResolveAndConnect(jobType, params) {
1400
- return __awaiter$m(this, void 0, void 0, function* () {
1466
+ return __awaiter$o(this, void 0, void 0, function* () {
1401
1467
  this.initialize();
1402
1468
  const jobName = this.tryResolve(jobType, params);
1403
1469
  yield this.queue.connect();
@@ -1419,14 +1485,14 @@ let JobManager = class JobManager {
1419
1485
  };
1420
1486
  }
1421
1487
  };
1422
- JobManager = __decorate$r([
1488
+ JobManager = __decorate$s([
1423
1489
  injectable(),
1424
1490
  scoped(Lifecycle.ContainerScoped),
1425
1491
  __param$7(1, inject(DI_CONTAINER)), __param$7(2, injectAll(JOB)),
1426
1492
  __metadata$m("design:paramtypes", [Configuration, Object, Array])
1427
1493
  ], JobManager);
1428
1494
 
1429
- var __awaiter$l = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1495
+ var __awaiter$n = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1430
1496
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1431
1497
  return new (P || (P = Promise))(function (resolve, reject) {
1432
1498
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1467,7 +1533,7 @@ class Progress {
1467
1533
  return this.mMax > 0 ? this.mMax - this.mCurrent : 0;
1468
1534
  }
1469
1535
  createSubProgress(progressValue, max, message) {
1470
- return __awaiter$l(this, void 0, void 0, function* () {
1536
+ return __awaiter$n(this, void 0, void 0, function* () {
1471
1537
  if (max <= 0 && progressValue > 0) {
1472
1538
  yield this.advance(progressValue);
1473
1539
  }
@@ -1479,7 +1545,7 @@ class Progress {
1479
1545
  });
1480
1546
  }
1481
1547
  setMax(max) {
1482
- return __awaiter$l(this, void 0, void 0, function* () {
1548
+ return __awaiter$n(this, void 0, void 0, function* () {
1483
1549
  if (isNaN(max) || max <= 0) {
1484
1550
  throw "Max progress value must be bigger than zero";
1485
1551
  }
@@ -1488,13 +1554,13 @@ class Progress {
1488
1554
  });
1489
1555
  }
1490
1556
  setError(error) {
1491
- return __awaiter$l(this, void 0, void 0, function* () {
1557
+ return __awaiter$n(this, void 0, void 0, function* () {
1492
1558
  this.mError = error;
1493
1559
  yield this.save();
1494
1560
  });
1495
1561
  }
1496
1562
  advance(value = 1) {
1497
- return __awaiter$l(this, void 0, void 0, function* () {
1563
+ return __awaiter$n(this, void 0, void 0, function* () {
1498
1564
  if (isNaN(value) || value <= 0) {
1499
1565
  throw "Advance value must be bigger than zero";
1500
1566
  }
@@ -1557,7 +1623,7 @@ class SubProgress {
1557
1623
  return this.max - this.currentValue;
1558
1624
  }
1559
1625
  createSubProgress(progressValue, max, message) {
1560
- return __awaiter$l(this, void 0, void 0, function* () {
1626
+ return __awaiter$n(this, void 0, void 0, function* () {
1561
1627
  if (max <= 0 && progressValue > 0) {
1562
1628
  yield this.advance(progressValue);
1563
1629
  }
@@ -1569,7 +1635,7 @@ class SubProgress {
1569
1635
  });
1570
1636
  }
1571
1637
  setMax(max) {
1572
- return __awaiter$l(this, void 0, void 0, function* () {
1638
+ return __awaiter$n(this, void 0, void 0, function* () {
1573
1639
  if (isNaN(max) || max <= 0) {
1574
1640
  throw "Max progress value must be bigger than zero";
1575
1641
  }
@@ -1578,13 +1644,13 @@ class SubProgress {
1578
1644
  });
1579
1645
  }
1580
1646
  setError(error) {
1581
- return __awaiter$l(this, void 0, void 0, function* () {
1647
+ return __awaiter$n(this, void 0, void 0, function* () {
1582
1648
  this.error = error || null;
1583
1649
  yield this.save();
1584
1650
  });
1585
1651
  }
1586
1652
  advance(value = 1) {
1587
- return __awaiter$l(this, void 0, void 0, function* () {
1653
+ return __awaiter$n(this, void 0, void 0, function* () {
1588
1654
  if (isNaN(value) || value <= 0) {
1589
1655
  throw "Advance value must be bigger than zero";
1590
1656
  }
@@ -1593,7 +1659,7 @@ class SubProgress {
1593
1659
  });
1594
1660
  }
1595
1661
  save() {
1596
- return __awaiter$l(this, void 0, void 0, function* () {
1662
+ return __awaiter$n(this, void 0, void 0, function* () {
1597
1663
  const ratio = this.max > 0 ? this.currentValue / this.max : 0;
1598
1664
  const newProgress = this.progressFrom + Math.round(this.progressValue * ratio);
1599
1665
  const current = this.parent.current;
@@ -1607,7 +1673,7 @@ class SubProgress {
1607
1673
  }
1608
1674
  }
1609
1675
 
1610
- var __decorate$q = (this && this.__decorate) || function (decorators, target, key, desc) {
1676
+ var __decorate$r = (this && this.__decorate) || function (decorators, target, key, desc) {
1611
1677
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1612
1678
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1613
1679
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -1616,7 +1682,7 @@ var __decorate$q = (this && this.__decorate) || function (decorators, target, ke
1616
1682
  var __metadata$l = (this && this.__metadata) || function (k, v) {
1617
1683
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1618
1684
  };
1619
- var __awaiter$k = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1685
+ var __awaiter$m = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1620
1686
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1621
1687
  return new (P || (P = Promise))(function (resolve, reject) {
1622
1688
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1635,7 +1701,7 @@ let Progresses = class Progresses {
1635
1701
  this.collection = connector.database.collection("progresses");
1636
1702
  }
1637
1703
  waitToFinish(id) {
1638
- return __awaiter$k(this, void 0, void 0, function* () {
1704
+ return __awaiter$m(this, void 0, void 0, function* () {
1639
1705
  let isFinished = false;
1640
1706
  let progress = null;
1641
1707
  while (!isFinished) {
@@ -1655,18 +1721,18 @@ let Progresses = class Progresses {
1655
1721
  });
1656
1722
  }
1657
1723
  get(id) {
1658
- return __awaiter$k(this, void 0, void 0, function* () {
1724
+ return __awaiter$m(this, void 0, void 0, function* () {
1659
1725
  return this.find({ _id: new ObjectId(id) });
1660
1726
  });
1661
1727
  }
1662
1728
  find(where) {
1663
- return __awaiter$k(this, void 0, void 0, function* () {
1729
+ return __awaiter$m(this, void 0, void 0, function* () {
1664
1730
  const data = yield this.collection.findOne(where);
1665
1731
  return !data ? null : new Progress(data._id, data.current, data.max, data.message, data.error, this.client, this.collection);
1666
1732
  });
1667
1733
  }
1668
1734
  create(max = 100) {
1669
- return __awaiter$k(this, void 0, void 0, function* () {
1735
+ return __awaiter$m(this, void 0, void 0, function* () {
1670
1736
  if (isNaN(max) || max <= 0) {
1671
1737
  throw "Max progress value must be bigger than zero";
1672
1738
  }
@@ -1678,19 +1744,19 @@ let Progresses = class Progresses {
1678
1744
  });
1679
1745
  }
1680
1746
  remove(id) {
1681
- return __awaiter$k(this, void 0, void 0, function* () {
1747
+ return __awaiter$m(this, void 0, void 0, function* () {
1682
1748
  yield this.collection.deleteOne({ _id: new ObjectId(id) });
1683
1749
  return id;
1684
1750
  });
1685
1751
  }
1686
1752
  };
1687
- Progresses = __decorate$q([
1753
+ Progresses = __decorate$r([
1688
1754
  injectable(),
1689
1755
  singleton(),
1690
1756
  __metadata$l("design:paramtypes", [MongoConnector, Configuration])
1691
1757
  ], Progresses);
1692
1758
 
1693
- var __decorate$p = (this && this.__decorate) || function (decorators, target, key, desc) {
1759
+ var __decorate$q = (this && this.__decorate) || function (decorators, target, key, desc) {
1694
1760
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1695
1761
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1696
1762
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -1699,7 +1765,7 @@ var __decorate$p = (this && this.__decorate) || function (decorators, target, ke
1699
1765
  var __metadata$k = (this && this.__metadata) || function (k, v) {
1700
1766
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1701
1767
  };
1702
- var __awaiter$j = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1768
+ var __awaiter$l = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1703
1769
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1704
1770
  return new (P || (P = Promise))(function (resolve, reject) {
1705
1771
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1717,7 +1783,7 @@ let LazyAssets = class LazyAssets {
1717
1783
  this.collection = connector.database.collection("lazyassets");
1718
1784
  }
1719
1785
  create(jobType, jobParams = {}, jobQue = "main") {
1720
- return __awaiter$j(this, void 0, void 0, function* () {
1786
+ return __awaiter$l(this, void 0, void 0, function* () {
1721
1787
  const jobName = this.jobMan.tryResolve(jobType, Object.assign(Object.assign({}, jobParams), { lazyId: "" }));
1722
1788
  const res = yield this.collection.insertOne({
1723
1789
  jobName,
@@ -1728,12 +1794,12 @@ let LazyAssets = class LazyAssets {
1728
1794
  });
1729
1795
  }
1730
1796
  read(id) {
1731
- return __awaiter$j(this, void 0, void 0, function* () {
1797
+ return __awaiter$l(this, void 0, void 0, function* () {
1732
1798
  return this.find({ _id: new ObjectId(id) });
1733
1799
  });
1734
1800
  }
1735
1801
  find(where) {
1736
- return __awaiter$j(this, void 0, void 0, function* () {
1802
+ return __awaiter$l(this, void 0, void 0, function* () {
1737
1803
  const data = yield this.collection.findOne(where);
1738
1804
  return !data
1739
1805
  ? null
@@ -1741,7 +1807,7 @@ let LazyAssets = class LazyAssets {
1741
1807
  });
1742
1808
  }
1743
1809
  unlink(id) {
1744
- return __awaiter$j(this, void 0, void 0, function* () {
1810
+ return __awaiter$l(this, void 0, void 0, function* () {
1745
1811
  const asset = yield this.read(id);
1746
1812
  if (!asset)
1747
1813
  return null;
@@ -1749,14 +1815,14 @@ let LazyAssets = class LazyAssets {
1749
1815
  });
1750
1816
  }
1751
1817
  };
1752
- LazyAssets = __decorate$p([
1818
+ LazyAssets = __decorate$q([
1753
1819
  injectable(),
1754
1820
  scoped(Lifecycle.ContainerScoped),
1755
1821
  __metadata$k("design:paramtypes", [MongoConnector, Assets,
1756
1822
  Progresses, JobManager])
1757
1823
  ], LazyAssets);
1758
1824
 
1759
- var __decorate$o = (this && this.__decorate) || function (decorators, target, key, desc) {
1825
+ var __decorate$p = (this && this.__decorate) || function (decorators, target, key, desc) {
1760
1826
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1761
1827
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1762
1828
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -1765,7 +1831,7 @@ var __decorate$o = (this && this.__decorate) || function (decorators, target, ke
1765
1831
  var __metadata$j = (this && this.__metadata) || function (k, v) {
1766
1832
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1767
1833
  };
1768
- var __awaiter$i = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1834
+ var __awaiter$k = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1769
1835
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1770
1836
  return new (P || (P = Promise))(function (resolve, reject) {
1771
1837
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1780,7 +1846,7 @@ let AssetResolver = class AssetResolver {
1780
1846
  this.lazyAssets = lazyAssets;
1781
1847
  }
1782
1848
  resolve(id, lazy = false) {
1783
- return __awaiter$i(this, void 0, void 0, function* () {
1849
+ return __awaiter$k(this, void 0, void 0, function* () {
1784
1850
  let asset = null;
1785
1851
  if (lazy) {
1786
1852
  const lazyAsset = yield this.lazyAssets.read(id);
@@ -1799,13 +1865,13 @@ let AssetResolver = class AssetResolver {
1799
1865
  });
1800
1866
  }
1801
1867
  };
1802
- AssetResolver = __decorate$o([
1868
+ AssetResolver = __decorate$p([
1803
1869
  injectable(),
1804
1870
  scoped(Lifecycle.ContainerScoped),
1805
1871
  __metadata$j("design:paramtypes", [Assets, LazyAssets])
1806
1872
  ], AssetResolver);
1807
1873
 
1808
- var __decorate$n = (this && this.__decorate) || function (decorators, target, key, desc) {
1874
+ var __decorate$o = (this && this.__decorate) || function (decorators, target, key, desc) {
1809
1875
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1810
1876
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1811
1877
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -1826,19 +1892,19 @@ let BackendProvider = class BackendProvider {
1826
1892
  return this.ioServer;
1827
1893
  }
1828
1894
  };
1829
- BackendProvider = __decorate$n([
1895
+ BackendProvider = __decorate$o([
1830
1896
  injectable(),
1831
1897
  singleton(),
1832
1898
  __metadata$i("design:paramtypes", [])
1833
1899
  ], BackendProvider);
1834
1900
 
1835
- var __decorate$m = (this && this.__decorate) || function (decorators, target, key, desc) {
1901
+ var __decorate$n = (this && this.__decorate) || function (decorators, target, key, desc) {
1836
1902
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1837
1903
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1838
1904
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1839
1905
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1840
1906
  };
1841
- var __awaiter$h = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1907
+ var __awaiter$j = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1842
1908
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1843
1909
  return new (P || (P = Promise))(function (resolve, reject) {
1844
1910
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1849,22 +1915,22 @@ var __awaiter$h = (this && this.__awaiter) || function (thisArg, _arguments, P,
1849
1915
  };
1850
1916
  let CacheProcessor = class CacheProcessor {
1851
1917
  serialize(data) {
1852
- return __awaiter$h(this, void 0, void 0, function* () {
1918
+ return __awaiter$j(this, void 0, void 0, function* () {
1853
1919
  return data;
1854
1920
  });
1855
1921
  }
1856
1922
  deserialize(data) {
1857
- return __awaiter$h(this, void 0, void 0, function* () {
1923
+ return __awaiter$j(this, void 0, void 0, function* () {
1858
1924
  return data;
1859
1925
  });
1860
1926
  }
1861
1927
  };
1862
- CacheProcessor = __decorate$m([
1928
+ CacheProcessor = __decorate$n([
1863
1929
  injectable(),
1864
1930
  scoped(Lifecycle.ContainerScoped)
1865
1931
  ], CacheProcessor);
1866
1932
 
1867
- var __decorate$l = (this && this.__decorate) || function (decorators, target, key, desc) {
1933
+ var __decorate$m = (this && this.__decorate) || function (decorators, target, key, desc) {
1868
1934
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1869
1935
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1870
1936
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -1873,7 +1939,7 @@ var __decorate$l = (this && this.__decorate) || function (decorators, target, ke
1873
1939
  var __metadata$h = (this && this.__metadata) || function (k, v) {
1874
1940
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1875
1941
  };
1876
- var __awaiter$g = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1942
+ var __awaiter$i = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1877
1943
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1878
1944
  return new (P || (P = Promise))(function (resolve, reject) {
1879
1945
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1889,7 +1955,7 @@ let Cache = class Cache {
1889
1955
  this.cacheProcessor = cacheProcessor;
1890
1956
  }
1891
1957
  prepare() {
1892
- return __awaiter$g(this, void 0, void 0, function* () {
1958
+ return __awaiter$i(this, void 0, void 0, function* () {
1893
1959
  if (this.collection)
1894
1960
  return;
1895
1961
  if (!this.connector.database) {
@@ -1900,7 +1966,7 @@ let Cache = class Cache {
1900
1966
  });
1901
1967
  }
1902
1968
  set(key, value, ttl, expirationTimestamp = null, tags = {}) {
1903
- return __awaiter$g(this, void 0, void 0, function* () {
1969
+ return __awaiter$i(this, void 0, void 0, function* () {
1904
1970
  yield this.prepare();
1905
1971
  const item = {
1906
1972
  _id: key,
@@ -1917,7 +1983,7 @@ let Cache = class Cache {
1917
1983
  });
1918
1984
  }
1919
1985
  get(key) {
1920
- return __awaiter$g(this, void 0, void 0, function* () {
1986
+ return __awaiter$i(this, void 0, void 0, function* () {
1921
1987
  yield this.prepare();
1922
1988
  let item = yield this.collection.findOne({ _id: key });
1923
1989
  const now = Math.round(new Date().getTime() / 1000);
@@ -1931,7 +1997,7 @@ let Cache = class Cache {
1931
1997
  });
1932
1998
  }
1933
1999
  getOrSet(key, valueCb, ttl, expirationTimestamp = null, tags = {}) {
1934
- return __awaiter$g(this, void 0, void 0, function* () {
2000
+ return __awaiter$i(this, void 0, void 0, function* () {
1935
2001
  try {
1936
2002
  return yield this.get(key);
1937
2003
  }
@@ -1941,18 +2007,45 @@ let Cache = class Cache {
1941
2007
  });
1942
2008
  }
1943
2009
  delete(key) {
1944
- return __awaiter$g(this, void 0, void 0, function* () {
2010
+ return __awaiter$i(this, void 0, void 0, function* () {
1945
2011
  yield this.prepare();
1946
2012
  yield this.collection.deleteOne({ _id: key });
1947
2013
  });
1948
2014
  }
1949
2015
  };
1950
- Cache = __decorate$l([
2016
+ Cache = __decorate$m([
1951
2017
  injectable(),
1952
2018
  scoped(Lifecycle.ContainerScoped),
1953
2019
  __metadata$h("design:paramtypes", [MongoConnector, Configuration, CacheProcessor])
1954
2020
  ], Cache);
1955
2021
 
2022
+ var __decorate$l = (this && this.__decorate) || function (decorators, target, key, desc) {
2023
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2024
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2025
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2026
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2027
+ };
2028
+ var __awaiter$h = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2029
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2030
+ return new (P || (P = Promise))(function (resolve, reject) {
2031
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
2032
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
2033
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
2034
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
2035
+ });
2036
+ };
2037
+ let EndpointProvider = class EndpointProvider {
2038
+ configure(app) {
2039
+ return __awaiter$h(this, void 0, void 0, function* () {
2040
+ console.log(`Express app is mounted to: ${app.mountpath}`);
2041
+ });
2042
+ }
2043
+ };
2044
+ EndpointProvider = __decorate$l([
2045
+ injectable(),
2046
+ scoped(Lifecycle.ContainerScoped)
2047
+ ], EndpointProvider);
2048
+
1956
2049
  var __decorate$k = (this && this.__decorate) || function (decorators, target, key, desc) {
1957
2050
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1958
2051
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -1965,7 +2058,7 @@ var __metadata$g = (this && this.__metadata) || function (k, v) {
1965
2058
  var __param$6 = (this && this.__param) || function (paramIndex, decorator) {
1966
2059
  return function (target, key) { decorator(target, key, paramIndex); }
1967
2060
  };
1968
- var __awaiter$f = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2061
+ var __awaiter$g = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1969
2062
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1970
2063
  return new (P || (P = Promise))(function (resolve, reject) {
1971
2064
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1979,7 +2072,7 @@ let Fixtures = class Fixtures {
1979
2072
  this.fixtures = fixtures;
1980
2073
  }
1981
2074
  load() {
1982
- return __awaiter$f(this, void 0, void 0, function* () {
2075
+ return __awaiter$g(this, void 0, void 0, function* () {
1983
2076
  if (!this.fixtures)
1984
2077
  return;
1985
2078
  for (let fixture of this.fixtures) {
@@ -1995,7 +2088,7 @@ Fixtures = __decorate$k([
1995
2088
  __metadata$g("design:paramtypes", [Array])
1996
2089
  ], Fixtures);
1997
2090
 
1998
- var __awaiter$e = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2091
+ var __awaiter$f = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1999
2092
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2000
2093
  return new (P || (P = Promise))(function (resolve, reject) {
2001
2094
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2016,7 +2109,7 @@ class GalleryImage {
2016
2109
  this.targetSize = !size ? { width: thumbSize, height: thumbSize } : size;
2017
2110
  }
2018
2111
  serve(id) {
2019
- return __awaiter$e(this, void 0, void 0, function* () {
2112
+ return __awaiter$f(this, void 0, void 0, function* () {
2020
2113
  const isThumb = id == this.thumb;
2021
2114
  if (yield this.handler.hasResult(isThumb)) {
2022
2115
  return this.handler.serveResult(isThumb);
@@ -2083,7 +2176,7 @@ var __decorate$i = (this && this.__decorate) || function (decorators, target, ke
2083
2176
  var __metadata$e = (this && this.__metadata) || function (k, v) {
2084
2177
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2085
2178
  };
2086
- var __awaiter$d = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2179
+ var __awaiter$e = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2087
2180
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2088
2181
  return new (P || (P = Promise))(function (resolve, reject) {
2089
2182
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2102,7 +2195,7 @@ let Gallery = class Gallery {
2102
2195
  this.output = join(this.config.resolve("cacheDir"), "gallery");
2103
2196
  }
2104
2197
  getFolder(folder, size = null) {
2105
- return __awaiter$d(this, void 0, void 0, function* () {
2198
+ return __awaiter$e(this, void 0, void 0, function* () {
2106
2199
  this.cache[folder] = this.cache[folder] || new Promise(resolve => {
2107
2200
  lstat(join(this.dir, folder), (err, stats) => {
2108
2201
  if (err || !stats.isDirectory()) {
@@ -2123,7 +2216,7 @@ let Gallery = class Gallery {
2123
2216
  return;
2124
2217
  }
2125
2218
  const promises = files.map(file => {
2126
- return new Promise((resolve) => __awaiter$d(this, void 0, void 0, function* () {
2219
+ return new Promise((resolve) => __awaiter$e(this, void 0, void 0, function* () {
2127
2220
  const filePath = join(path, file);
2128
2221
  const absoluteFilePath = join(this.dir, filePath);
2129
2222
  lstat(absoluteFilePath, (err, stats) => {
@@ -2156,7 +2249,7 @@ let Gallery = class Gallery {
2156
2249
  });
2157
2250
  },
2158
2251
  writeResult: (isThumb, buffer) => {
2159
- return new Promise((res, rej) => __awaiter$d(this, void 0, void 0, function* () {
2252
+ return new Promise((res, rej) => __awaiter$e(this, void 0, void 0, function* () {
2160
2253
  const resultPath = getResultPath(isThumb);
2161
2254
  yield mkdirRecursive(dirname(resultPath));
2162
2255
  writeFile$1(resultPath, buffer, err => {
@@ -2213,7 +2306,7 @@ var __decorate$h = (this && this.__decorate) || function (decorators, target, ke
2213
2306
  var __metadata$d = (this && this.__metadata) || function (k, v) {
2214
2307
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2215
2308
  };
2216
- var __awaiter$c = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2309
+ var __awaiter$d = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2217
2310
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2218
2311
  return new (P || (P = Promise))(function (resolve, reject) {
2219
2312
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2231,7 +2324,7 @@ let IdGenerator = class IdGenerator {
2231
2324
  this.parts = config.resolve("idParts");
2232
2325
  }
2233
2326
  generate(checkCb) {
2234
- return __awaiter$c(this, void 0, void 0, function* () {
2327
+ return __awaiter$d(this, void 0, void 0, function* () {
2235
2328
  let id = null;
2236
2329
  let tries = 0;
2237
2330
  let notGood = true;
@@ -2299,7 +2392,7 @@ var __decorate$f = (this && this.__decorate) || function (decorators, target, ke
2299
2392
  var __metadata$b = (this && this.__metadata) || function (k, v) {
2300
2393
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2301
2394
  };
2302
- var __awaiter$b = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2395
+ var __awaiter$c = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2303
2396
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2304
2397
  return new (P || (P = Promise))(function (resolve, reject) {
2305
2398
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2314,7 +2407,7 @@ let Translator = class Translator {
2314
2407
  this.cache = {};
2315
2408
  }
2316
2409
  getDictionary(language) {
2317
- return __awaiter$b(this, void 0, void 0, function* () {
2410
+ return __awaiter$c(this, void 0, void 0, function* () {
2318
2411
  const dictionary = yield this.translationProvider.getDictionary(language);
2319
2412
  this.cache[language] = dictionary;
2320
2413
  return dictionary;
@@ -2380,7 +2473,7 @@ var __decorate$e = (this && this.__decorate) || function (decorators, target, ke
2380
2473
  var __metadata$a = (this && this.__metadata) || function (k, v) {
2381
2474
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2382
2475
  };
2383
- var __awaiter$a = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2476
+ var __awaiter$b = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2384
2477
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2385
2478
  return new (P || (P = Promise))(function (resolve, reject) {
2386
2479
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2412,9 +2505,9 @@ let TemplateRenderer = class TemplateRenderer {
2412
2505
  return this.initPromise;
2413
2506
  }
2414
2507
  parseTemplates(dir, dirPath) {
2415
- return __awaiter$a(this, void 0, void 0, function* () {
2508
+ return __awaiter$b(this, void 0, void 0, function* () {
2416
2509
  return new Promise(resolve => {
2417
- readdir(dir, (err, files) => __awaiter$a(this, void 0, void 0, function* () {
2510
+ readdir(dir, (err, files) => __awaiter$b(this, void 0, void 0, function* () {
2418
2511
  for (let file of files) {
2419
2512
  const path = join(dir, file);
2420
2513
  if (lstatSync(path).isDirectory()) {
@@ -2435,7 +2528,7 @@ let TemplateRenderer = class TemplateRenderer {
2435
2528
  });
2436
2529
  }
2437
2530
  render(template, language, context) {
2438
- return __awaiter$a(this, void 0, void 0, function* () {
2531
+ return __awaiter$b(this, void 0, void 0, function* () {
2439
2532
  yield this.init();
2440
2533
  yield this.translator.getDictionary(language);
2441
2534
  if (!this.templates[template]) {
@@ -2462,7 +2555,7 @@ var __decorate$d = (this && this.__decorate) || function (decorators, target, ke
2462
2555
  var __metadata$9 = (this && this.__metadata) || function (k, v) {
2463
2556
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2464
2557
  };
2465
- var __awaiter$9 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2558
+ var __awaiter$a = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2466
2559
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2467
2560
  return new (P || (P = Promise))(function (resolve, reject) {
2468
2561
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2488,7 +2581,7 @@ let MailSender = class MailSender {
2488
2581
  return this.renderer.translator;
2489
2582
  }
2490
2583
  sendMail(language, options) {
2491
- return __awaiter$9(this, void 0, void 0, function* () {
2584
+ return __awaiter$a(this, void 0, void 0, function* () {
2492
2585
  const subject = yield this.translator.getTranslation(language, options.subject || "-");
2493
2586
  const html = yield this.renderer.render(options.template, language, options.context);
2494
2587
  return this.transporter.sendMail({
@@ -2516,7 +2609,7 @@ var __decorate$c = (this && this.__decorate) || function (decorators, target, ke
2516
2609
  var __metadata$8 = (this && this.__metadata) || function (k, v) {
2517
2610
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2518
2611
  };
2519
- var __awaiter$8 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2612
+ var __awaiter$9 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2520
2613
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2521
2614
  return new (P || (P = Promise))(function (resolve, reject) {
2522
2615
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2531,7 +2624,7 @@ let MemoryCache = class MemoryCache {
2531
2624
  this.cacheMap = new Map();
2532
2625
  }
2533
2626
  set(key, value, ttl, expirationTimestamp = null, tags = {}) {
2534
- return __awaiter$8(this, void 0, void 0, function* () {
2627
+ return __awaiter$9(this, void 0, void 0, function* () {
2535
2628
  const now = Math.round(new Date().getTime() / 1000);
2536
2629
  const expTimestamp = Math.min(isNaN(ttl) ? Number.MAX_SAFE_INTEGER : ttl, 3600);
2537
2630
  this.cacheMap.set(key, {
@@ -2544,7 +2637,7 @@ let MemoryCache = class MemoryCache {
2544
2637
  });
2545
2638
  }
2546
2639
  get(key) {
2547
- return __awaiter$8(this, void 0, void 0, function* () {
2640
+ return __awaiter$9(this, void 0, void 0, function* () {
2548
2641
  let item = this.cacheMap.get(key);
2549
2642
  const now = Math.round(new Date().getTime() / 1000);
2550
2643
  let expTimestamp = 3600;
@@ -2566,7 +2659,7 @@ let MemoryCache = class MemoryCache {
2566
2659
  });
2567
2660
  }
2568
2661
  getOrSet(key, valueCb, ttl, expirationTimestamp = null, tags = {}) {
2569
- return __awaiter$8(this, void 0, void 0, function* () {
2662
+ return __awaiter$9(this, void 0, void 0, function* () {
2570
2663
  try {
2571
2664
  return yield this.get(key);
2572
2665
  }
@@ -2576,7 +2669,7 @@ let MemoryCache = class MemoryCache {
2576
2669
  });
2577
2670
  }
2578
2671
  delete(key) {
2579
- return __awaiter$8(this, void 0, void 0, function* () {
2672
+ return __awaiter$9(this, void 0, void 0, function* () {
2580
2673
  this.cacheMap.delete(key);
2581
2674
  yield this.cacheMap.delete(key);
2582
2675
  });
@@ -2594,7 +2687,7 @@ var __decorate$b = (this && this.__decorate) || function (decorators, target, ke
2594
2687
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2595
2688
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2596
2689
  };
2597
- var __awaiter$7 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2690
+ var __awaiter$8 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2598
2691
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2599
2692
  return new (P || (P = Promise))(function (resolve, reject) {
2600
2693
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2611,17 +2704,17 @@ const sampleUser = {
2611
2704
  };
2612
2705
  let UserManager = class UserManager {
2613
2706
  getByCredentials(credentials) {
2614
- return __awaiter$7(this, void 0, void 0, function* () {
2707
+ return __awaiter$8(this, void 0, void 0, function* () {
2615
2708
  return (sampleUser.email == credentials.email) ? sampleUser : yield Promise.reject("message.login.error");
2616
2709
  });
2617
2710
  }
2618
2711
  getById(id) {
2619
- return __awaiter$7(this, void 0, void 0, function* () {
2712
+ return __awaiter$8(this, void 0, void 0, function* () {
2620
2713
  return (sampleUser.id == id) ? sampleUser : null;
2621
2714
  });
2622
2715
  }
2623
2716
  serialize(user) {
2624
- return __awaiter$7(this, void 0, void 0, function* () {
2717
+ return __awaiter$8(this, void 0, void 0, function* () {
2625
2718
  const res = Object.assign({}, user);
2626
2719
  delete res.password;
2627
2720
  return res;
@@ -2645,7 +2738,7 @@ var __metadata$7 = (this && this.__metadata) || function (k, v) {
2645
2738
  var __param$5 = (this && this.__param) || function (paramIndex, decorator) {
2646
2739
  return function (target, key) { decorator(target, key, paramIndex); }
2647
2740
  };
2648
- var __awaiter$6 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2741
+ var __awaiter$7 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2649
2742
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2650
2743
  return new (P || (P = Promise))(function (resolve, reject) {
2651
2744
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2660,7 +2753,7 @@ let AssetsController = class AssetsController {
2660
2753
  this.assetResolver = assetResolver;
2661
2754
  }
2662
2755
  upload(file) {
2663
- return __awaiter$6(this, void 0, void 0, function* () {
2756
+ return __awaiter$7(this, void 0, void 0, function* () {
2664
2757
  try {
2665
2758
  const contentType = file.mimetype === "application/octet-stream" ? null : file.mimetype;
2666
2759
  const asset = yield this.assets.writeBuffer(file.buffer, { filename: file.filename }, contentType);
@@ -2674,7 +2767,7 @@ let AssetsController = class AssetsController {
2674
2767
  }
2675
2768
  getImageRotation(id, params, rotation = 0) {
2676
2769
  var _a;
2677
- return __awaiter$6(this, void 0, void 0, function* () {
2770
+ return __awaiter$7(this, void 0, void 0, function* () {
2678
2771
  const asset = yield this.assetResolver.resolve(id, params.lazy);
2679
2772
  if (!asset) {
2680
2773
  throw new HttpError(404, `Image with id: '${id}' not found.`);
@@ -2687,13 +2780,13 @@ let AssetsController = class AssetsController {
2687
2780
  });
2688
2781
  }
2689
2782
  getImage(id, params) {
2690
- return __awaiter$6(this, void 0, void 0, function* () {
2783
+ return __awaiter$7(this, void 0, void 0, function* () {
2691
2784
  return this.getImageRotation(id, params);
2692
2785
  });
2693
2786
  }
2694
2787
  getFile(id, lazy, res) {
2695
2788
  var _a, _b;
2696
- return __awaiter$6(this, void 0, void 0, function* () {
2789
+ return __awaiter$7(this, void 0, void 0, function* () {
2697
2790
  const asset = yield this.assetResolver.resolve(id, lazy);
2698
2791
  if (!asset) {
2699
2792
  throw new HttpError(404, `File with id: '${id}' not found.`);
@@ -2756,7 +2849,7 @@ var __metadata$6 = (this && this.__metadata) || function (k, v) {
2756
2849
  var __param$4 = (this && this.__param) || function (paramIndex, decorator) {
2757
2850
  return function (target, key) { decorator(target, key, paramIndex); }
2758
2851
  };
2759
- var __awaiter$5 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2852
+ var __awaiter$6 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2760
2853
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2761
2854
  return new (P || (P = Promise))(function (resolve, reject) {
2762
2855
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2771,7 +2864,7 @@ let AuthController = class AuthController {
2771
2864
  this.userManager = userManager;
2772
2865
  }
2773
2866
  login(credentials, res) {
2774
- return __awaiter$5(this, void 0, void 0, function* () {
2867
+ return __awaiter$6(this, void 0, void 0, function* () {
2775
2868
  try {
2776
2869
  const user = yield this.userManager.getByCredentials(credentials);
2777
2870
  const valid = yield compare(credentials.password, user.password);
@@ -2857,7 +2950,7 @@ var __metadata$4 = (this && this.__metadata) || function (k, v) {
2857
2950
  var __param$2 = (this && this.__param) || function (paramIndex, decorator) {
2858
2951
  return function (target, key) { decorator(target, key, paramIndex); }
2859
2952
  };
2860
- var __awaiter$4 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2953
+ var __awaiter$5 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2861
2954
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2862
2955
  return new (P || (P = Promise))(function (resolve, reject) {
2863
2956
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2874,7 +2967,7 @@ let ProgressesController = class ProgressesController {
2874
2967
  this.connectionType = !mainEndpoint ? "polling" : "socket";
2875
2968
  }
2876
2969
  getProgress(id) {
2877
- return __awaiter$4(this, void 0, void 0, function* () {
2970
+ return __awaiter$5(this, void 0, void 0, function* () {
2878
2971
  const progress = yield this.progresses.get(id);
2879
2972
  if (!progress)
2880
2973
  return null;
@@ -2906,7 +2999,7 @@ var __decorate$6 = (this && this.__decorate) || function (decorators, target, ke
2906
2999
  var __metadata$3 = (this && this.__metadata) || function (k, v) {
2907
3000
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2908
3001
  };
2909
- var __awaiter$3 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3002
+ var __awaiter$4 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2910
3003
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2911
3004
  return new (P || (P = Promise))(function (resolve, reject) {
2912
3005
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2924,7 +3017,7 @@ let ErrorHandlerMiddleware = class ErrorHandlerMiddleware {
2924
3017
  return this.configuration.resolve("nodeEnv") === "development";
2925
3018
  }
2926
3019
  error(error, req, res, next) {
2927
- return __awaiter$3(this, void 0, void 0, function* () {
3020
+ return __awaiter$4(this, void 0, void 0, function* () {
2928
3021
  const result = yield this.getResult(error, req, res);
2929
3022
  if (this.isDev) {
2930
3023
  console.log("ERROR", result, res.statusCode);
@@ -2933,7 +3026,7 @@ let ErrorHandlerMiddleware = class ErrorHandlerMiddleware {
2933
3026
  });
2934
3027
  }
2935
3028
  getResult(error, req, res) {
2936
- return __awaiter$3(this, void 0, void 0, function* () {
3029
+ return __awaiter$4(this, void 0, void 0, function* () {
2937
3030
  const result = {};
2938
3031
  if (error instanceof BadRequestError) {
2939
3032
  res.status(400);
@@ -3079,7 +3172,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
3079
3172
  var __param = (this && this.__param) || function (paramIndex, decorator) {
3080
3173
  return function (target, key) { decorator(target, key, paramIndex); }
3081
3174
  };
3082
- var __awaiter$2 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3175
+ var __awaiter$3 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3083
3176
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3084
3177
  return new (P || (P = Promise))(function (resolve, reject) {
3085
3178
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3094,7 +3187,7 @@ let ProgressController = class ProgressController {
3094
3187
  this.socketServer = socketServer;
3095
3188
  }
3096
3189
  advanceProgress(client, progressId) {
3097
- return __awaiter$2(this, void 0, void 0, function* () {
3190
+ return __awaiter$3(this, void 0, void 0, function* () {
3098
3191
  const progress = yield this.progresses.get(progressId);
3099
3192
  if (!progress)
3100
3193
  return;
@@ -3108,7 +3201,7 @@ let ProgressController = class ProgressController {
3108
3201
  });
3109
3202
  }
3110
3203
  setProgressInterest(client, progressId) {
3111
- return __awaiter$2(this, void 0, void 0, function* () {
3204
+ return __awaiter$3(this, void 0, void 0, function* () {
3112
3205
  const progress = yield this.progresses.get(progressId);
3113
3206
  if (!progress)
3114
3207
  return;
@@ -3350,6 +3443,34 @@ class DiContainer {
3350
3443
  }
3351
3444
  }
3352
3445
 
3446
+ var __awaiter$2 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3447
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3448
+ return new (P || (P = Promise))(function (resolve, reject) {
3449
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
3450
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
3451
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
3452
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
3453
+ });
3454
+ };
3455
+ function setupStatic(rootFolder, container) {
3456
+ return __awaiter$2(this, void 0, void 0, function* () {
3457
+ const browserFolder = resolve(rootFolder || __dirname, `public_html`);
3458
+ const app = container.get(EXPRESS);
3459
+ const ep = container.get(EndpointProvider);
3460
+ console.log(browserFolder, existsSync(browserFolder));
3461
+ if (existsSync(browserFolder)) {
3462
+ console.log(`public_html exists. setting up static files serving...`);
3463
+ app.use(static$1(browserFolder, {
3464
+ maxAge: "1y"
3465
+ }));
3466
+ }
3467
+ else {
3468
+ console.log(`public_html does not exist on path: "${browserFolder}"`);
3469
+ }
3470
+ yield ep.configure(app);
3471
+ });
3472
+ }
3473
+
3353
3474
  var __awaiter$1 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3354
3475
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3355
3476
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -3478,6 +3599,7 @@ function createServices() {
3478
3599
  Cache,
3479
3600
  CacheProcessor,
3480
3601
  Configuration,
3602
+ EndpointProvider,
3481
3603
  Fixtures,
3482
3604
  Gallery,
3483
3605
  GalleryCache,
@@ -3642,12 +3764,13 @@ function setupBackend(config, providers, parent) {
3642
3764
  useSocketServer(bp.io, socketOptions);
3643
3765
  }
3644
3766
  // Connect to mongo if necessary
3645
- if (configuration.hasParam("mongoUri")) {
3646
- if (configuration.resolve("mongoUri")) {
3647
- const connector = diContainer.resolve(MongoConnector);
3648
- yield connector.connect();
3649
- }
3767
+ if (configuration.hasParam("mongoUri") && configuration.resolve("mongoUri")) {
3768
+ console.log("Connecting to MongoDB...");
3769
+ const connector = diContainer.resolve(MongoConnector);
3770
+ yield connector.connect();
3771
+ console.log("Successfully connected to MongoDB.");
3650
3772
  }
3773
+ yield setupStatic(config.rootFolder, diContainer);
3651
3774
  return diContainer;
3652
3775
  });
3653
3776
  }
@@ -3656,5 +3779,5 @@ function setupBackend(config, providers, parent) {
3656
3779
  * Generated bundle index. Do not edit.
3657
3780
  */
3658
3781
 
3659
- export { AssetProcessor, AssetResolver, Assets, AuthController, BackendProvider, Cache, CacheProcessor, Configuration, DI_CONTAINER, EXPRESS, ErrorHandlerMiddleware, FIXTURE, Fixtures, Gallery, GalleryCache, GalleryController, HTTP_SERVER, IdGenerator, IsFile, IsObjectId, JOB, JobManager, LanguageMiddleware, LazyAssetGenerator, LazyAssets, MailSender, MemoryCache, MongoConnector, PARAMETER, Parameter, Progresses, ResolveEntity, SOCKET_SERVER, TemplateRenderer, TranslationProvider, Translator, Type, UserManager, assign, broadcast, bufferToStream, convertValue, copy, copyStream, createServices, createTransformer, deleteFile, deleteFromBucket, filter, firstItem, getConstructorName, getExtension, getFileName, getFunctionParams, getType, getValue, groupBy, hydratePopulated, idToString, injectServices, isArray, isBoolean, isConstructor, isDate, isDefined, isFunction, isNullOrUndefined, isObject, isPrimitive, isString, isType, lastItem, lcFirst, lookupPipelines, md5, mkdirRecursive, multiSubscription, observableFromFunction, padLeft, padRight, paginate, paginateAggregations, promiseTimeout, proxyFunction, proxyFunctions, rand, random, readAndDeleteFile, readFile, runCommand, setupBackend, streamToBuffer, ucFirst, valueToPromise, writeFile };
3782
+ export { AssetProcessor, AssetResolver, Assets, AuthController, BackendProvider, Cache, CacheProcessor, Configuration, DI_CONTAINER, EXPRESS, EndpointProvider, ErrorHandlerMiddleware, FIXTURE, Fixtures, Gallery, GalleryCache, GalleryController, HTTP_SERVER, IdGenerator, IsFile, IsObjectId, JOB, JobManager, LanguageMiddleware, LazyAssetGenerator, LazyAssets, MailSender, MemoryCache, MongoConnector, PARAMETER, Parameter, Progresses, ResolveEntity, SOCKET_SERVER, TemplateRenderer, TranslationProvider, Translator, Type, UserManager, assign, broadcast, bufferToStream, convertValue, copy, copyStream, createServices, createTransformer, deleteFile, deleteFromBucket, filter, firstItem, getConstructorName, getExtension, getFileName, getFunctionParams, getType, getValue, groupBy, hydratePopulated, idToString, injectServices, isArray, isBoolean, isConstructor, isDate, isDefined, isFunction, isInterface, isNullOrUndefined, isObject, isPrimitive, isString, isType, lastItem, lcFirst, lookupPipelines, md5, mkdirRecursive, multiSubscription, observableFromFunction, padLeft, padRight, paginate, paginateAggregations, promiseTimeout, proxyFunction, proxyFunctions, rand, random, readAndDeleteFile, readFile, runCommand, setupBackend, streamToBuffer, ucFirst, valueToPromise, writeFile };
3660
3783
  //# sourceMappingURL=stemy-backend.js.map