@stemy/backend 3.2.6 → 3.4.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.
@@ -2,26 +2,25 @@ 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';
5
- import { createParamDecorator, BadRequestError, HttpError, getMetadataArgsStorage, Authorized, Post, UploadedFile, Body, Get, Param, QueryParam, Res, QueryParams, Controller, CurrentUser, Middleware, useContainer, useExpressServer } from 'routing-controllers';
5
+ import { getMetadataArgsStorage, HttpError, Authorized, Post, UploadedFile, Body, Get, Param, QueryParam, Res, QueryParams, Controller, UnauthorizedError, CurrentUser, BadRequestError, Middleware, createParamDecorator, useContainer, useExpressServer } from 'routing-controllers';
6
6
  import { OnMessage, ConnectedSocket, MessageBody, SocketController, Middleware as Middleware$1, useContainer as useContainer$1, useSocketServer } from 'socket-controllers';
7
7
  import { routingControllersToSpec } from 'routing-controllers-openapi';
8
8
  import { defaultMetadataStorage } from 'class-transformer/storage';
9
- import { ValidatorConstraint, ValidationTypes } from 'class-validator';
9
+ import { ValidatorConstraint, ValidationTypes, Min, Max, IsOptional, IsBoolean } from 'class-validator';
10
10
  import { validationMetadatasToSchemas } from 'class-validator-jsonschema';
11
11
  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
15
  import { mkdir, unlink, readFile as readFile$1, writeFile as writeFile$1, lstat, readdir, access, constants, lstatSync, readFileSync, existsSync } from 'fs';
16
- import { Types, model, connect } from 'mongoose';
17
- import { getValue as getValue$1, setValue } from 'mongoose/lib/utils';
16
+ import { ObjectId, GridFSBucket } from 'mongodb';
17
+ import { Types, connect, model } from 'mongoose';
18
18
  import { Readable, PassThrough } from 'stream';
19
- import { ObjectId } from 'bson';
20
19
  import sharp_ from 'sharp';
20
+ import { ObjectId as ObjectId$1 } from 'bson';
21
21
  import fontKit_ from 'fontkit';
22
22
  import { fromBuffer } from 'file-type';
23
23
  import axios from 'axios';
24
- import { GridFSBucket } from 'mongodb';
25
24
  import dotenv from 'dotenv';
26
25
  import { validate, schedule } from 'node-cron';
27
26
  import { socket } from 'zeromq';
@@ -34,8 +33,10 @@ import { createTransport } from 'nodemailer';
34
33
  import * as Handlebars from 'handlebars';
35
34
  import { compare } from 'bcrypt';
36
35
  import moment from 'moment';
36
+ import { getModelForClass } from '@typegoose/typegoose';
37
+ import { getValue as getValue$1, setValue } from 'mongoose/lib/utils';
37
38
 
38
- var __awaiter$w = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
39
+ var __awaiter$x = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
39
40
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
40
41
  return new (P || (P = Promise))(function (resolve, reject) {
41
42
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -187,146 +188,6 @@ function convertValue(value, type) {
187
188
  }
188
189
  return value;
189
190
  }
190
- function injectServices(schema, services) {
191
- const serviceMap = {};
192
- Object.keys(services).forEach(prop => {
193
- schema
194
- .virtual(prop)
195
- .get(() => {
196
- const diContainer = diContainers.appContainer;
197
- serviceMap[prop] = serviceMap[prop] || (!diContainer ? {} : diContainer.resolve(services[prop]));
198
- return serviceMap[prop];
199
- });
200
- });
201
- }
202
- function paginate(model, where, params) {
203
- return model.countDocuments(where).then(count => {
204
- let query = model.find(where);
205
- if (isString(params.sort)) {
206
- query = query.sort(params.sort);
207
- }
208
- if (isArray(params.populate)) {
209
- params.populate.forEach(field => {
210
- query = query.populate(field);
211
- });
212
- }
213
- return (params.limit > 0 ? query.skip(params.page * params.limit).limit(params.limit) : query).then(items => {
214
- const meta = { total: count };
215
- return { count, items, meta };
216
- });
217
- });
218
- }
219
- function lookupStages(from, localField, as = null, foreignField = "_id", shouldUnwind = true) {
220
- as = as || localField.replace("Id", "");
221
- const stages = [
222
- {
223
- $lookup: {
224
- from,
225
- localField,
226
- foreignField,
227
- as
228
- }
229
- },
230
- {
231
- $unwind: {
232
- path: `$${as}`,
233
- preserveNullAndEmptyArrays: true
234
- }
235
- }
236
- ];
237
- if (!shouldUnwind) {
238
- stages.splice(1, 1);
239
- }
240
- return stages;
241
- }
242
- function letsLookupStage(from, pipeline, as = null, letFields = null) {
243
- as = as || from;
244
- letFields = letFields || { id: "$_id" };
245
- return {
246
- $lookup: {
247
- from,
248
- let: letFields,
249
- pipeline,
250
- as
251
- }
252
- };
253
- }
254
- function matchStage(match) {
255
- return { $match: match };
256
- }
257
- function matchField(field, filter, when) {
258
- return { field, filter, when };
259
- }
260
- function matchFieldStages(...fields) {
261
- const match = {};
262
- fields.forEach(field => {
263
- if (field.when) {
264
- match[field.field] = field.filter;
265
- }
266
- });
267
- return Object.keys(match).length > 0 ? [matchStage(match)] : [];
268
- }
269
- function projectStage(fields) {
270
- return { $project: fields };
271
- }
272
- function unwindStage(fieldOrOpts) {
273
- return { $unwind: fieldOrOpts };
274
- }
275
- function hydratePopulated(modelType, json) {
276
- let object = modelType.hydrate(json);
277
- for (const [path, obj] of Object.entries(modelType.schema.obj)) {
278
- let { ref, type } = obj;
279
- if (Array.isArray(type) && type.length > 0) {
280
- ref = type[0].ref;
281
- }
282
- if (!ref)
283
- continue;
284
- const value = getValue$1(path, json);
285
- const hydrateVal = val => {
286
- if (val == null || val instanceof Types.ObjectId)
287
- return val;
288
- return hydratePopulated(model(ref), val);
289
- };
290
- if (Array.isArray(value)) {
291
- setValue(path, value.map(hydrateVal), object);
292
- continue;
293
- }
294
- setValue(path, hydrateVal(value), object);
295
- }
296
- return object;
297
- }
298
- function paginateAggregations(model, aggregations, params, metaProjection = {}) {
299
- return __awaiter$w(this, void 0, void 0, function* () {
300
- const sortField = !isString(params.sort) || !params.sort ? null : (params.sort.startsWith("-") ? params.sort.substr(1) : params.sort);
301
- const sortAggregation = !sortField ? [] : [{
302
- $sort: { [sortField]: sortField == params.sort ? 1 : -1 }
303
- }];
304
- const result = yield model.aggregate([
305
- ...aggregations,
306
- ...sortAggregation,
307
- {
308
- $group: {
309
- _id: "results",
310
- result: { $push: "$$CURRENT" }
311
- }
312
- },
313
- {
314
- $project: {
315
- _id: 0,
316
- items: params.limit > 0 ? { $slice: ["$result", params.page * params.limit, params.limit] } : "$result",
317
- count: { $size: "$result" },
318
- meta: Object.assign({ total: { $size: "$result" } }, metaProjection)
319
- }
320
- }
321
- ]);
322
- const pagination = result[0];
323
- if (!pagination) {
324
- return { items: [], count: 0, meta: { total: 0 } };
325
- }
326
- pagination.items = pagination.items.map(i => hydratePopulated(model, i));
327
- return pagination;
328
- });
329
- }
330
191
  const cropInterface = {
331
192
  x: "number",
332
193
  y: "number",
@@ -353,7 +214,7 @@ function toCropRegion(cropInfo) {
353
214
  };
354
215
  }
355
216
  function toImage(src, params, meta) {
356
- return __awaiter$w(this, void 0, void 0, function* () {
217
+ return __awaiter$x(this, void 0, void 0, function* () {
357
218
  // Default params and meta
358
219
  params = params || {};
359
220
  meta = meta || {};
@@ -491,7 +352,7 @@ function readFile(path) {
491
352
  });
492
353
  }
493
354
  function readAndDeleteFile(path, timeout = 5000) {
494
- return __awaiter$w(this, void 0, void 0, function* () {
355
+ return __awaiter$x(this, void 0, void 0, function* () {
495
356
  const data = yield readFile(path);
496
357
  setTimeout(() => {
497
358
  unlink(path, () => {
@@ -501,7 +362,7 @@ function readAndDeleteFile(path, timeout = 5000) {
501
362
  });
502
363
  }
503
364
  function writeFile(path, data) {
504
- return __awaiter$w(this, void 0, void 0, function* () {
365
+ return __awaiter$x(this, void 0, void 0, function* () {
505
366
  yield mkdirRecursive(dirname(path));
506
367
  return new Promise((res, rej) => {
507
368
  writeFile$1(path, data, err => {
@@ -556,64 +417,6 @@ function getFunctionParams(func) {
556
417
  });
557
418
  return params;
558
419
  }
559
- function proxyFunction(name) {
560
- return function () {
561
- const args = Array.from(arguments);
562
- args.unshift(this);
563
- return this.helper[name].apply(this.helper, args);
564
- };
565
- }
566
- function proxyFunctions(schema, helper, paramName = null) {
567
- paramName = paramName || lcFirst(getConstructorName(helper)).replace(/helper$/gi, "");
568
- const descriptors = Object.getOwnPropertyDescriptors(helper.prototype);
569
- Object.keys(descriptors).forEach(name => {
570
- const func = descriptors[name].value;
571
- if (isFunction(func) && name !== "constructor") {
572
- const paramNames = getFunctionParams(func);
573
- if (paramNames[0] == paramName) {
574
- schema.methods[name] = proxyFunction(name);
575
- }
576
- }
577
- });
578
- injectServices(schema, {
579
- "helper": helper
580
- });
581
- }
582
- function ResolveEntity(model, extraCheck) {
583
- const modelName = model.modelName;
584
- const paramName = modelName.toLowerCase();
585
- return createParamDecorator({
586
- required: false,
587
- value: (action) => __awaiter$w(this, void 0, void 0, function* () {
588
- const req = action.request;
589
- const token = req.header(`x-${paramName}-token`);
590
- const id = req.params[`${paramName}Id`];
591
- if (!id && !token) {
592
- throw new BadRequestError(`${modelName} id or token should be defined!`);
593
- }
594
- const query = !token
595
- ? model.findById(id)
596
- : model.findOne({ token });
597
- const doc = yield query;
598
- if (!doc) {
599
- throw new HttpError(404, !token
600
- ? `${modelName} could not be found with id: ${id}`
601
- : `${modelName} could not be found with token: ${token}`);
602
- }
603
- if (isFunction(extraCheck)) {
604
- try {
605
- action.request[paramName] = (yield valueToPromise(extraCheck(query, action))) || doc;
606
- return action.request[paramName];
607
- }
608
- catch (e) {
609
- throw new BadRequestError(`${modelName} check error: ${e.message || e}`);
610
- }
611
- }
612
- action.request[paramName] = doc;
613
- return doc;
614
- })
615
- });
616
- }
617
420
  function getFileName(path, withExtension = false) {
618
421
  const name = basename(path || "");
619
422
  return withExtension ? name : name.split(".").slice(0, -1).join(".");
@@ -626,7 +429,9 @@ function idToString(value) {
626
429
  if (Array.isArray(value)) {
627
430
  return value.map(idToString);
628
431
  }
629
- return value instanceof ObjectId ? value.toHexString() : null;
432
+ return value instanceof ObjectId || value instanceof Types.ObjectId
433
+ ? value.toHexString()
434
+ : (isString(value) ? value : value || null);
630
435
  }
631
436
  function createTransformer(transform) {
632
437
  return (doc, ret, options) => {
@@ -868,7 +673,7 @@ function replaceSpecialChars(str, to = "-") {
868
673
  return `${str}`.replace(/[&\/\\#, +()$~%.@'":*?<>{}]/g, to);
869
674
  }
870
675
 
871
- var __decorate$x = (this && this.__decorate) || function (decorators, target, key, desc) {
676
+ var __decorate$y = (this && this.__decorate) || function (decorators, target, key, desc) {
872
677
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
873
678
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
874
679
  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;
@@ -878,8 +683,8 @@ function checkValue(multi, value) {
878
683
  if (multi) {
879
684
  return Array.isArray(value) && value.every(v => {
880
685
  try {
881
- const id = new ObjectId(v);
882
- return id instanceof ObjectId;
686
+ const id = new ObjectId$1(v);
687
+ return id instanceof ObjectId$1;
883
688
  }
884
689
  catch (e) {
885
690
  return false;
@@ -889,8 +694,8 @@ function checkValue(multi, value) {
889
694
  if (null === value)
890
695
  return true;
891
696
  try {
892
- const id = new ObjectId(value);
893
- return id instanceof ObjectId;
697
+ const id = new ObjectId$1(value);
698
+ return id instanceof ObjectId$1;
894
699
  }
895
700
  catch (e) {
896
701
  return false;
@@ -902,7 +707,7 @@ let IsFile = class IsFile {
902
707
  return checkValue(multi, value);
903
708
  }
904
709
  };
905
- IsFile = __decorate$x([
710
+ IsFile = __decorate$y([
906
711
  ValidatorConstraint()
907
712
  ], IsFile);
908
713
  let IsObjectId = class IsObjectId {
@@ -911,7 +716,7 @@ let IsObjectId = class IsObjectId {
911
716
  return checkValue(multi, value);
912
717
  }
913
718
  };
914
- IsObjectId = __decorate$x([
719
+ IsObjectId = __decorate$y([
915
720
  ValidatorConstraint()
916
721
  ], IsObjectId);
917
722
 
@@ -970,13 +775,13 @@ class Parameter {
970
775
  }
971
776
  }
972
777
 
973
- var __decorate$w = (this && this.__decorate) || function (decorators, target, key, desc) {
778
+ var __decorate$x = (this && this.__decorate) || function (decorators, target, key, desc) {
974
779
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
975
780
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
976
781
  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;
977
782
  return c > 3 && r && Object.defineProperty(target, key, r), r;
978
783
  };
979
- var __awaiter$v = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
784
+ var __awaiter$w = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
980
785
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
981
786
  return new (P || (P = Promise))(function (resolve, reject) {
982
787
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1012,7 +817,7 @@ let AssetProcessor = AssetProcessor_1 = class AssetProcessor {
1012
817
  }
1013
818
  static fileTypeFromBuffer(buffer) {
1014
819
  var _a;
1015
- return __awaiter$v(this, void 0, void 0, function* () {
820
+ return __awaiter$w(this, void 0, void 0, function* () {
1016
821
  const type = ((_a = yield fromBuffer(buffer)) !== null && _a !== void 0 ? _a : { ext: "txt", mime: "text/plain" });
1017
822
  if (AssetProcessor_1.checkTextFileType(type)) {
1018
823
  return AssetProcessor_1.fixTextFileType(type, buffer);
@@ -1039,7 +844,7 @@ let AssetProcessor = AssetProcessor_1 = class AssetProcessor {
1039
844
  return imageTypes.indexOf(contentType) >= 0;
1040
845
  }
1041
846
  static copyImageMeta(buffer, metadata, fileType) {
1042
- return __awaiter$v(this, void 0, void 0, function* () {
847
+ return __awaiter$w(this, void 0, void 0, function* () {
1043
848
  if (fileType.mime === "image/svg+xml") {
1044
849
  const match = /<svg([^<>]+)>/gi.exec(buffer.toString("utf8"));
1045
850
  if (match && match.length > 1) {
@@ -1078,7 +883,7 @@ let AssetProcessor = AssetProcessor_1 = class AssetProcessor {
1078
883
  });
1079
884
  }
1080
885
  process(buffer, metadata, fileType) {
1081
- return __awaiter$v(this, void 0, void 0, function* () {
886
+ return __awaiter$w(this, void 0, void 0, function* () {
1082
887
  if (AssetProcessor_1.isImage(fileType.mime)) {
1083
888
  buffer = yield AssetProcessor_1.copyImageMeta(buffer, metadata, fileType);
1084
889
  }
@@ -1089,18 +894,18 @@ let AssetProcessor = AssetProcessor_1 = class AssetProcessor {
1089
894
  });
1090
895
  }
1091
896
  };
1092
- AssetProcessor = AssetProcessor_1 = __decorate$w([
897
+ AssetProcessor = AssetProcessor_1 = __decorate$x([
1093
898
  injectable(),
1094
899
  scoped(Lifecycle.ContainerScoped)
1095
900
  ], AssetProcessor);
1096
901
 
1097
- var __decorate$v = (this && this.__decorate) || function (decorators, target, key, desc) {
902
+ var __decorate$w = (this && this.__decorate) || function (decorators, target, key, desc) {
1098
903
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1099
904
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1100
905
  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;
1101
906
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1102
907
  };
1103
- var __metadata$p = (this && this.__metadata) || function (k, v) {
908
+ var __metadata$q = (this && this.__metadata) || function (k, v) {
1104
909
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1105
910
  };
1106
911
  var __param$8 = (this && this.__param) || function (paramIndex, decorator) {
@@ -1139,23 +944,23 @@ let Configuration = class Configuration {
1139
944
  return param.defaultValue;
1140
945
  }
1141
946
  };
1142
- Configuration = __decorate$v([
947
+ Configuration = __decorate$w([
1143
948
  injectable(),
1144
949
  scoped(Lifecycle.ContainerScoped),
1145
950
  __param$8(0, injectAll(PARAMETER)),
1146
- __metadata$p("design:paramtypes", [Array])
951
+ __metadata$q("design:paramtypes", [Array])
1147
952
  ], Configuration);
1148
953
 
1149
- var __decorate$u = (this && this.__decorate) || function (decorators, target, key, desc) {
954
+ var __decorate$v = (this && this.__decorate) || function (decorators, target, key, desc) {
1150
955
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1151
956
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1152
957
  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;
1153
958
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1154
959
  };
1155
- var __metadata$o = (this && this.__metadata) || function (k, v) {
960
+ var __metadata$p = (this && this.__metadata) || function (k, v) {
1156
961
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1157
962
  };
1158
- var __awaiter$u = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
963
+ var __awaiter$v = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1159
964
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1160
965
  return new (P || (P = Promise))(function (resolve, reject) {
1161
966
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1181,7 +986,7 @@ let MongoConnector = class MongoConnector {
1181
986
  return this.fsBucket;
1182
987
  }
1183
988
  connect() {
1184
- return __awaiter$u(this, void 0, void 0, function* () {
989
+ return __awaiter$v(this, void 0, void 0, function* () {
1185
990
  if (this.db)
1186
991
  return this.db;
1187
992
  this.conn = (yield connect(this.configuration.resolve("mongoUri"), {
@@ -1190,17 +995,18 @@ let MongoConnector = class MongoConnector {
1190
995
  pass: this.configuration.resolve("mongoPassword")
1191
996
  })).connection;
1192
997
  this.db = this.conn.db;
998
+ console.log("DB INSTANCE", getType(this.db));
1193
999
  this.fsBucket = new GridFSBucket(this.db, { bucketName: "assets" });
1194
1000
  });
1195
1001
  }
1196
1002
  };
1197
- MongoConnector = __decorate$u([
1003
+ MongoConnector = __decorate$v([
1198
1004
  injectable(),
1199
1005
  singleton(),
1200
- __metadata$o("design:paramtypes", [Configuration])
1006
+ __metadata$p("design:paramtypes", [Configuration])
1201
1007
  ], MongoConnector);
1202
1008
 
1203
- var __awaiter$t = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1009
+ var __awaiter$u = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1204
1010
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1205
1011
  return new (P || (P = Promise))(function (resolve, reject) {
1206
1012
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1222,7 +1028,7 @@ class BaseEntity {
1222
1028
  return this.collection.updateOne({ _id: this.mId }, { $set: this.toJSON() });
1223
1029
  }
1224
1030
  load() {
1225
- return __awaiter$t(this, void 0, void 0, function* () {
1031
+ return __awaiter$u(this, void 0, void 0, function* () {
1226
1032
  const res = yield this.collection.findOne({ _id: this.mId });
1227
1033
  this.deleted = !res;
1228
1034
  this.data = res || {};
@@ -1237,7 +1043,7 @@ class BaseEntity {
1237
1043
  }
1238
1044
  }
1239
1045
 
1240
- var __awaiter$s = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1046
+ var __awaiter$t = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1241
1047
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1242
1048
  return new (P || (P = Promise))(function (resolve, reject) {
1243
1049
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1264,7 +1070,7 @@ class Asset extends BaseEntity {
1264
1070
  return this.bucket.openDownloadStream(this.mId);
1265
1071
  }
1266
1072
  unlink() {
1267
- return __awaiter$s(this, void 0, void 0, function* () {
1073
+ return __awaiter$t(this, void 0, void 0, function* () {
1268
1074
  return deleteFromBucket(this.bucket, this.mId);
1269
1075
  });
1270
1076
  }
@@ -1272,7 +1078,7 @@ class Asset extends BaseEntity {
1272
1078
  return streamToBuffer(this.stream);
1273
1079
  }
1274
1080
  download(metadata) {
1275
- return __awaiter$s(this, void 0, void 0, function* () {
1081
+ return __awaiter$t(this, void 0, void 0, function* () {
1276
1082
  metadata = Object.assign(this.metadata, metadata || {});
1277
1083
  metadata.downloadCount = isNaN(metadata.downloadCount) || !metadata.firstDownload
1278
1084
  ? 1
@@ -1284,18 +1090,18 @@ class Asset extends BaseEntity {
1284
1090
  });
1285
1091
  }
1286
1092
  getImage(params = null) {
1287
- return __awaiter$s(this, void 0, void 0, function* () {
1093
+ return __awaiter$t(this, void 0, void 0, function* () {
1288
1094
  return toImage(this.stream, params, this.metadata);
1289
1095
  });
1290
1096
  }
1291
1097
  downloadImage(params, metadata) {
1292
- return __awaiter$s(this, void 0, void 0, function* () {
1098
+ return __awaiter$t(this, void 0, void 0, function* () {
1293
1099
  return toImage(yield this.download(metadata), params, this.metadata);
1294
1100
  });
1295
1101
  }
1296
1102
  }
1297
1103
 
1298
- var __awaiter$r = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1104
+ var __awaiter$s = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1299
1105
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1300
1106
  return new (P || (P = Promise))(function (resolve, reject) {
1301
1107
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1310,23 +1116,23 @@ class TempAsset {
1310
1116
  this.filename = filename;
1311
1117
  this.contentType = contentType;
1312
1118
  this.metadata = metadata;
1313
- this.id = new ObjectId().toHexString();
1119
+ this.id = new ObjectId$1().toHexString();
1314
1120
  }
1315
1121
  get stream() {
1316
1122
  return bufferToStream(this.buffer);
1317
1123
  }
1318
1124
  unlink() {
1319
- return __awaiter$r(this, void 0, void 0, function* () {
1125
+ return __awaiter$s(this, void 0, void 0, function* () {
1320
1126
  throw new Error(`Temp asset '${this.id}' can not be removed!`);
1321
1127
  });
1322
1128
  }
1323
1129
  getBuffer() {
1324
- return __awaiter$r(this, void 0, void 0, function* () {
1130
+ return __awaiter$s(this, void 0, void 0, function* () {
1325
1131
  return this.buffer;
1326
1132
  });
1327
1133
  }
1328
1134
  download(metadata) {
1329
- return __awaiter$r(this, void 0, void 0, function* () {
1135
+ return __awaiter$s(this, void 0, void 0, function* () {
1330
1136
  return this.stream;
1331
1137
  });
1332
1138
  }
@@ -1338,12 +1144,12 @@ class TempAsset {
1338
1144
  return this.downloadImage(params);
1339
1145
  }
1340
1146
  save() {
1341
- return __awaiter$r(this, void 0, void 0, function* () {
1147
+ return __awaiter$s(this, void 0, void 0, function* () {
1342
1148
  return this;
1343
1149
  });
1344
1150
  }
1345
1151
  load() {
1346
- return __awaiter$r(this, void 0, void 0, function* () {
1152
+ return __awaiter$s(this, void 0, void 0, function* () {
1347
1153
  return this;
1348
1154
  });
1349
1155
  }
@@ -1357,16 +1163,16 @@ class TempAsset {
1357
1163
  }
1358
1164
  }
1359
1165
 
1360
- var __decorate$t = (this && this.__decorate) || function (decorators, target, key, desc) {
1166
+ var __decorate$u = (this && this.__decorate) || function (decorators, target, key, desc) {
1361
1167
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1362
1168
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1363
1169
  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;
1364
1170
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1365
1171
  };
1366
- var __metadata$n = (this && this.__metadata) || function (k, v) {
1172
+ var __metadata$o = (this && this.__metadata) || function (k, v) {
1367
1173
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1368
1174
  };
1369
- var __awaiter$q = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1175
+ var __awaiter$r = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1370
1176
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1371
1177
  return new (P || (P = Promise))(function (resolve, reject) {
1372
1178
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1384,7 +1190,7 @@ let Assets = class Assets {
1384
1190
  this.collection = (_a = connector.database) === null || _a === void 0 ? void 0 : _a.collection("assets.files");
1385
1191
  }
1386
1192
  write(stream, contentType = null, metadata = null) {
1387
- return __awaiter$q(this, void 0, void 0, function* () {
1193
+ return __awaiter$r(this, void 0, void 0, function* () {
1388
1194
  const uploadStream = copyStream(stream);
1389
1195
  const buffer = yield streamToBuffer(stream);
1390
1196
  let fileType = { ext: "", mime: contentType };
@@ -1402,7 +1208,7 @@ let Assets = class Assets {
1402
1208
  });
1403
1209
  }
1404
1210
  writeBuffer(buffer, metadata = null, contentType = null) {
1405
- return __awaiter$q(this, void 0, void 0, function* () {
1211
+ return __awaiter$r(this, void 0, void 0, function* () {
1406
1212
  let fileType = { ext: "", mime: contentType };
1407
1213
  try {
1408
1214
  fileType = yield AssetProcessor.fileTypeFromBuffer(buffer);
@@ -1419,13 +1225,13 @@ let Assets = class Assets {
1419
1225
  });
1420
1226
  }
1421
1227
  writeUrl(url, metadata = null) {
1422
- return __awaiter$q(this, void 0, void 0, function* () {
1228
+ return __awaiter$r(this, void 0, void 0, function* () {
1423
1229
  const buffer = (yield axios({ url, responseType: "arraybuffer" })).data;
1424
1230
  return this.writeBuffer(buffer, metadata);
1425
1231
  });
1426
1232
  }
1427
1233
  download(url, contentType = null) {
1428
- return __awaiter$q(this, void 0, void 0, function* () {
1234
+ return __awaiter$r(this, void 0, void 0, function* () {
1429
1235
  let buffer = (yield axios({ url, responseType: "arraybuffer" })).data;
1430
1236
  let fileType = { ext: "", mime: contentType };
1431
1237
  try {
@@ -1446,18 +1252,18 @@ let Assets = class Assets {
1446
1252
  });
1447
1253
  }
1448
1254
  read(id) {
1449
- return __awaiter$q(this, void 0, void 0, function* () {
1450
- return !id ? null : this.find({ _id: new ObjectId(id) });
1255
+ return __awaiter$r(this, void 0, void 0, function* () {
1256
+ return !id ? null : this.find({ _id: new ObjectId$1(id) });
1451
1257
  });
1452
1258
  }
1453
1259
  find(where) {
1454
- return __awaiter$q(this, void 0, void 0, function* () {
1260
+ return __awaiter$r(this, void 0, void 0, function* () {
1455
1261
  const data = yield this.collection.findOne(where);
1456
1262
  return !data ? null : new Asset(data._id, data, this.collection, this.bucket);
1457
1263
  });
1458
1264
  }
1459
1265
  findMany(where) {
1460
- return __awaiter$q(this, void 0, void 0, function* () {
1266
+ return __awaiter$r(this, void 0, void 0, function* () {
1461
1267
  const cursor = this.collection.find(where);
1462
1268
  const items = (yield cursor.toArray()) || [];
1463
1269
  const result = [];
@@ -1470,13 +1276,13 @@ let Assets = class Assets {
1470
1276
  });
1471
1277
  }
1472
1278
  deleteMany(where) {
1473
- return __awaiter$q(this, void 0, void 0, function* () {
1279
+ return __awaiter$r(this, void 0, void 0, function* () {
1474
1280
  const assets = yield this.findMany(where);
1475
1281
  return Promise.all(assets.map(a => a.unlink()));
1476
1282
  });
1477
1283
  }
1478
1284
  unlink(id) {
1479
- return __awaiter$q(this, void 0, void 0, function* () {
1285
+ return __awaiter$r(this, void 0, void 0, function* () {
1480
1286
  const asset = yield this.read(id);
1481
1287
  if (!asset)
1482
1288
  return null;
@@ -1484,14 +1290,14 @@ let Assets = class Assets {
1484
1290
  });
1485
1291
  }
1486
1292
  upload(stream, fileType, metadata) {
1487
- return __awaiter$q(this, void 0, void 0, function* () {
1293
+ return __awaiter$r(this, void 0, void 0, function* () {
1488
1294
  const contentType = fileType.mime.trim();
1489
1295
  metadata = Object.assign({
1490
1296
  downloadCount: 0,
1491
1297
  firstDownload: null,
1492
1298
  lastDownload: null
1493
1299
  }, metadata || {});
1494
- metadata.filename = metadata.filename || new ObjectId().toHexString();
1300
+ metadata.filename = metadata.filename || new ObjectId$1().toHexString();
1495
1301
  metadata.extension = (fileType.ext || "").trim();
1496
1302
  return new Promise(((resolve, reject) => {
1497
1303
  const uploaderStream = this.bucket.openUploadStream(metadata.filename);
@@ -1515,13 +1321,13 @@ let Assets = class Assets {
1515
1321
  });
1516
1322
  }
1517
1323
  };
1518
- Assets = __decorate$t([
1324
+ Assets = __decorate$u([
1519
1325
  injectable(),
1520
1326
  scoped(Lifecycle.ContainerScoped),
1521
- __metadata$n("design:paramtypes", [MongoConnector, AssetProcessor])
1327
+ __metadata$o("design:paramtypes", [MongoConnector, AssetProcessor])
1522
1328
  ], Assets);
1523
1329
 
1524
- var __awaiter$p = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1330
+ var __awaiter$q = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1525
1331
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1526
1332
  return new (P || (P = Promise))(function (resolve, reject) {
1527
1333
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1552,12 +1358,12 @@ class LazyAsset extends BaseEntity {
1552
1358
  return this.data.assetId;
1553
1359
  }
1554
1360
  unlink() {
1555
- return __awaiter$p(this, void 0, void 0, function* () {
1361
+ return __awaiter$q(this, void 0, void 0, function* () {
1556
1362
  yield this.load();
1557
1363
  if (!this.progressId) {
1558
1364
  yield this.collection.deleteOne({ _id: this.mId });
1559
1365
  }
1560
- return deleteFromBucket(this.assets.bucket, new ObjectId(this.assetId));
1366
+ return deleteFromBucket(this.assets.bucket, new ObjectId$1(this.assetId));
1561
1367
  });
1562
1368
  }
1563
1369
  startWorking() {
@@ -1575,7 +1381,7 @@ class LazyAsset extends BaseEntity {
1575
1381
  });
1576
1382
  }
1577
1383
  loadAsset() {
1578
- return __awaiter$p(this, void 0, void 0, function* () {
1384
+ return __awaiter$q(this, void 0, void 0, function* () {
1579
1385
  yield this.load();
1580
1386
  if (this.deleted)
1581
1387
  return null;
@@ -1591,14 +1397,14 @@ class LazyAsset extends BaseEntity {
1591
1397
  });
1592
1398
  }
1593
1399
  writeAsset(asset) {
1594
- return __awaiter$p(this, void 0, void 0, function* () {
1400
+ return __awaiter$q(this, void 0, void 0, function* () {
1595
1401
  this.data.assetId = asset.id;
1596
1402
  yield this.save();
1597
1403
  return asset;
1598
1404
  });
1599
1405
  }
1600
1406
  startWorkingOnAsset(fromLoad) {
1601
- return __awaiter$p(this, void 0, void 0, function* () {
1407
+ return __awaiter$q(this, void 0, void 0, function* () {
1602
1408
  this.data.progressId = (yield this.progresses.create()).id;
1603
1409
  this.data.assetId = null;
1604
1410
  yield this.save();
@@ -1607,19 +1413,19 @@ class LazyAsset extends BaseEntity {
1607
1413
  }
1608
1414
  }
1609
1415
 
1610
- var __decorate$s = (this && this.__decorate) || function (decorators, target, key, desc) {
1416
+ var __decorate$t = (this && this.__decorate) || function (decorators, target, key, desc) {
1611
1417
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1612
1418
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1613
1419
  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;
1614
1420
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1615
1421
  };
1616
- var __metadata$m = (this && this.__metadata) || function (k, v) {
1422
+ var __metadata$n = (this && this.__metadata) || function (k, v) {
1617
1423
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
1618
1424
  };
1619
1425
  var __param$7 = (this && this.__param) || function (paramIndex, decorator) {
1620
1426
  return function (target, key) { decorator(target, key, paramIndex); }
1621
1427
  };
1622
- var __awaiter$o = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1428
+ var __awaiter$p = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1623
1429
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1624
1430
  return new (P || (P = Promise))(function (resolve, reject) {
1625
1431
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1658,7 +1464,7 @@ let JobManager = class JobManager {
1658
1464
  .pipe(map(t => t.params)).subscribe(cb);
1659
1465
  }
1660
1466
  process(jobType, params = {}) {
1661
- return __awaiter$o(this, void 0, void 0, function* () {
1467
+ return __awaiter$p(this, void 0, void 0, function* () {
1662
1468
  let instance = null;
1663
1469
  try {
1664
1470
  instance = this.resolveJobInstance(jobType, params);
@@ -1671,12 +1477,12 @@ let JobManager = class JobManager {
1671
1477
  });
1672
1478
  }
1673
1479
  enqueueWithName(name, params = {}) {
1674
- return __awaiter$o(this, void 0, void 0, function* () {
1480
+ return __awaiter$p(this, void 0, void 0, function* () {
1675
1481
  return this.sendToWorkers(this.tryResolveFromName(name, params), params);
1676
1482
  });
1677
1483
  }
1678
1484
  enqueue(jobType, params = {}) {
1679
- return __awaiter$o(this, void 0, void 0, function* () {
1485
+ return __awaiter$p(this, void 0, void 0, function* () {
1680
1486
  return this.sendToWorkers(this.tryResolveAndInit(jobType, params), params);
1681
1487
  });
1682
1488
  }
@@ -1703,7 +1509,7 @@ let JobManager = class JobManager {
1703
1509
  });
1704
1510
  }
1705
1511
  startProcessing() {
1706
- return __awaiter$o(this, void 0, void 0, function* () {
1512
+ return __awaiter$p(this, void 0, void 0, function* () {
1707
1513
  if (this.processing)
1708
1514
  return null;
1709
1515
  this.processing = true;
@@ -1720,7 +1526,7 @@ let JobManager = class JobManager {
1720
1526
  this.workerPull = socket("pull");
1721
1527
  yield this.workerPull.connect(pullHost);
1722
1528
  console.log(`Worker consumer connected to: ${pullHost}`);
1723
- this.workerPull.on("message", (name, args, uniqId) => __awaiter$o(this, void 0, void 0, function* () {
1529
+ this.workerPull.on("message", (name, args, uniqId) => __awaiter$p(this, void 0, void 0, function* () {
1724
1530
  try {
1725
1531
  const jobName = name.toString("utf8");
1726
1532
  const jobParams = JSON.parse(args.toString("utf8"));
@@ -1799,22 +1605,22 @@ let JobManager = class JobManager {
1799
1605
  return container.resolve(jobType);
1800
1606
  }
1801
1607
  sendToWorkers(jobName, params) {
1802
- return __awaiter$o(this, void 0, void 0, function* () {
1608
+ return __awaiter$p(this, void 0, void 0, function* () {
1803
1609
  const publisher = yield this.apiPush;
1804
- const uniqueId = new ObjectId().toHexString();
1610
+ const uniqueId = new ObjectId$1().toHexString();
1805
1611
  yield publisher.send([jobName, JSON.stringify(params), uniqueId]);
1806
1612
  return uniqueId;
1807
1613
  });
1808
1614
  }
1809
1615
  };
1810
- JobManager = __decorate$s([
1616
+ JobManager = __decorate$t([
1811
1617
  injectable(),
1812
1618
  scoped(Lifecycle.ContainerScoped),
1813
1619
  __param$7(1, inject(DI_CONTAINER)), __param$7(2, injectAll(JOB)),
1814
- __metadata$m("design:paramtypes", [Configuration, Object, Array])
1620
+ __metadata$n("design:paramtypes", [Configuration, Object, Array])
1815
1621
  ], JobManager);
1816
1622
 
1817
- var __awaiter$n = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1623
+ var __awaiter$o = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1818
1624
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1819
1625
  return new (P || (P = Promise))(function (resolve, reject) {
1820
1626
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1853,7 +1659,7 @@ class Progress extends BaseEntity {
1853
1659
  return this;
1854
1660
  }
1855
1661
  createSubProgress(progressValue, max, message) {
1856
- return __awaiter$n(this, void 0, void 0, function* () {
1662
+ return __awaiter$o(this, void 0, void 0, function* () {
1857
1663
  if (max <= 0 && progressValue > 0) {
1858
1664
  yield this.advance(progressValue);
1859
1665
  }
@@ -1865,7 +1671,7 @@ class Progress extends BaseEntity {
1865
1671
  });
1866
1672
  }
1867
1673
  setMax(max) {
1868
- return __awaiter$n(this, void 0, void 0, function* () {
1674
+ return __awaiter$o(this, void 0, void 0, function* () {
1869
1675
  if (isNaN(max) || max <= 0) {
1870
1676
  throw "Max progress value must be bigger than zero";
1871
1677
  }
@@ -1874,19 +1680,19 @@ class Progress extends BaseEntity {
1874
1680
  });
1875
1681
  }
1876
1682
  setMessage(message) {
1877
- return __awaiter$n(this, void 0, void 0, function* () {
1683
+ return __awaiter$o(this, void 0, void 0, function* () {
1878
1684
  this.data.message = message;
1879
1685
  yield this.save();
1880
1686
  });
1881
1687
  }
1882
1688
  setError(error) {
1883
- return __awaiter$n(this, void 0, void 0, function* () {
1689
+ return __awaiter$o(this, void 0, void 0, function* () {
1884
1690
  this.data.error = error;
1885
1691
  yield this.save();
1886
1692
  });
1887
1693
  }
1888
1694
  advance(value = 1) {
1889
- return __awaiter$n(this, void 0, void 0, function* () {
1695
+ return __awaiter$o(this, void 0, void 0, function* () {
1890
1696
  if (isNaN(value) || value <= 0) {
1891
1697
  throw "Advance value must be bigger than zero";
1892
1698
  }
@@ -1898,7 +1704,7 @@ class Progress extends BaseEntity {
1898
1704
  });
1899
1705
  }
1900
1706
  cancel() {
1901
- return __awaiter$n(this, void 0, void 0, function* () {
1707
+ return __awaiter$o(this, void 0, void 0, function* () {
1902
1708
  this.data.canceled = true;
1903
1709
  yield this.save();
1904
1710
  });
@@ -1955,7 +1761,7 @@ class SubProgress {
1955
1761
  return this;
1956
1762
  }
1957
1763
  createSubProgress(progressValue, max, message) {
1958
- return __awaiter$n(this, void 0, void 0, function* () {
1764
+ return __awaiter$o(this, void 0, void 0, function* () {
1959
1765
  if (max <= 0 && progressValue > 0) {
1960
1766
  yield this.advance(progressValue);
1961
1767
  }
@@ -1966,7 +1772,7 @@ class SubProgress {
1966
1772
  });
1967
1773
  }
1968
1774
  setMax(max) {
1969
- return __awaiter$n(this, void 0, void 0, function* () {
1775
+ return __awaiter$o(this, void 0, void 0, function* () {
1970
1776
  if (isNaN(max) || max <= 0) {
1971
1777
  throw "Max progress value must be bigger than zero";
1972
1778
  }
@@ -1975,21 +1781,21 @@ class SubProgress {
1975
1781
  });
1976
1782
  }
1977
1783
  setMessage(message) {
1978
- return __awaiter$n(this, void 0, void 0, function* () {
1784
+ return __awaiter$o(this, void 0, void 0, function* () {
1979
1785
  if (!this.parent)
1980
1786
  return null;
1981
1787
  yield this.parent.setMessage(message);
1982
1788
  });
1983
1789
  }
1984
1790
  setError(error) {
1985
- return __awaiter$n(this, void 0, void 0, function* () {
1791
+ return __awaiter$o(this, void 0, void 0, function* () {
1986
1792
  if (!this.parent)
1987
1793
  return null;
1988
1794
  yield this.parent.setError(error);
1989
1795
  });
1990
1796
  }
1991
1797
  advance(value = 1) {
1992
- return __awaiter$n(this, void 0, void 0, function* () {
1798
+ return __awaiter$o(this, void 0, void 0, function* () {
1993
1799
  if (isNaN(value) || value <= 0) {
1994
1800
  throw "Advance value must be bigger than zero";
1995
1801
  }
@@ -1998,14 +1804,14 @@ class SubProgress {
1998
1804
  });
1999
1805
  }
2000
1806
  cancel() {
2001
- return __awaiter$n(this, void 0, void 0, function* () {
1807
+ return __awaiter$o(this, void 0, void 0, function* () {
2002
1808
  if (!this.parent)
2003
1809
  return null;
2004
1810
  yield this.parent.cancel();
2005
1811
  });
2006
1812
  }
2007
1813
  save() {
2008
- return __awaiter$n(this, void 0, void 0, function* () {
1814
+ return __awaiter$o(this, void 0, void 0, function* () {
2009
1815
  const ratio = this.max > 0 ? this.mCurrent / this.max : 0;
2010
1816
  const newProgress = this.progressFrom + Math.round(this.progressValue * ratio);
2011
1817
  const current = this.parent.current;
@@ -2015,7 +1821,7 @@ class SubProgress {
2015
1821
  });
2016
1822
  }
2017
1823
  load() {
2018
- return __awaiter$n(this, void 0, void 0, function* () {
1824
+ return __awaiter$o(this, void 0, void 0, function* () {
2019
1825
  return null;
2020
1826
  });
2021
1827
  }
@@ -2024,16 +1830,16 @@ class SubProgress {
2024
1830
  }
2025
1831
  }
2026
1832
 
2027
- var __decorate$r = (this && this.__decorate) || function (decorators, target, key, desc) {
1833
+ var __decorate$s = (this && this.__decorate) || function (decorators, target, key, desc) {
2028
1834
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2029
1835
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2030
1836
  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;
2031
1837
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2032
1838
  };
2033
- var __metadata$l = (this && this.__metadata) || function (k, v) {
1839
+ var __metadata$m = (this && this.__metadata) || function (k, v) {
2034
1840
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2035
1841
  };
2036
- var __awaiter$m = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1842
+ var __awaiter$n = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2037
1843
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2038
1844
  return new (P || (P = Promise))(function (resolve, reject) {
2039
1845
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2050,13 +1856,13 @@ let Progresses = class Progresses {
2050
1856
  this.progresses = {};
2051
1857
  this.jobMan.on("progress-changed", progress => {
2052
1858
  const id = progress.id;
2053
- this.progresses[id] = new Progress(new ObjectId(id), progress, this.collection);
1859
+ this.progresses[id] = new Progress(new ObjectId$1(id), progress, this.collection);
2054
1860
  });
2055
1861
  }
2056
1862
  waitToFinish(id) {
2057
- return __awaiter$m(this, void 0, void 0, function* () {
1863
+ return __awaiter$n(this, void 0, void 0, function* () {
2058
1864
  return Promise.race([
2059
- this.waitForProgress(id, () => __awaiter$m(this, void 0, void 0, function* () {
1865
+ this.waitForProgress(id, () => __awaiter$n(this, void 0, void 0, function* () {
2060
1866
  let progress = this.progresses[id];
2061
1867
  if (!progress || progress.percent < 100) {
2062
1868
  progress = yield this.get(id);
@@ -2066,25 +1872,25 @@ let Progresses = class Progresses {
2066
1872
  }
2067
1873
  return progress;
2068
1874
  }), 500),
2069
- this.waitForProgress(id, () => __awaiter$m(this, void 0, void 0, function* () {
1875
+ this.waitForProgress(id, () => __awaiter$n(this, void 0, void 0, function* () {
2070
1876
  return this.progresses[id] || null;
2071
1877
  }), 25)
2072
1878
  ]);
2073
1879
  });
2074
1880
  }
2075
1881
  get(id) {
2076
- return __awaiter$m(this, void 0, void 0, function* () {
2077
- return !id ? null : this.find({ _id: new ObjectId(id) });
1882
+ return __awaiter$n(this, void 0, void 0, function* () {
1883
+ return !id ? null : this.find({ _id: new ObjectId$1(id) });
2078
1884
  });
2079
1885
  }
2080
1886
  find(where) {
2081
- return __awaiter$m(this, void 0, void 0, function* () {
1887
+ return __awaiter$n(this, void 0, void 0, function* () {
2082
1888
  const data = yield this.collection.findOne(where);
2083
1889
  return !data ? null : new Progress(data._id, data, this.collection);
2084
1890
  });
2085
1891
  }
2086
1892
  create(max = 100) {
2087
- return __awaiter$m(this, void 0, void 0, function* () {
1893
+ return __awaiter$n(this, void 0, void 0, function* () {
2088
1894
  if (isNaN(max) || max <= 0) {
2089
1895
  throw new Error(`Max progress value must be bigger than zero`);
2090
1896
  }
@@ -2100,13 +1906,13 @@ let Progresses = class Progresses {
2100
1906
  });
2101
1907
  }
2102
1908
  remove(id) {
2103
- return __awaiter$m(this, void 0, void 0, function* () {
2104
- yield this.collection.deleteOne({ _id: new ObjectId(id) });
1909
+ return __awaiter$n(this, void 0, void 0, function* () {
1910
+ yield this.collection.deleteOne({ _id: new ObjectId$1(id) });
2105
1911
  return id;
2106
1912
  });
2107
1913
  }
2108
1914
  waitForProgress(id, cb, delay) {
2109
- return __awaiter$m(this, void 0, void 0, function* () {
1915
+ return __awaiter$n(this, void 0, void 0, function* () {
2110
1916
  let isFinished = false;
2111
1917
  let progress = null;
2112
1918
  let waitTime = 0;
@@ -2130,22 +1936,22 @@ let Progresses = class Progresses {
2130
1936
  });
2131
1937
  }
2132
1938
  };
2133
- Progresses = __decorate$r([
1939
+ Progresses = __decorate$s([
2134
1940
  injectable(),
2135
1941
  singleton(),
2136
- __metadata$l("design:paramtypes", [MongoConnector, JobManager])
1942
+ __metadata$m("design:paramtypes", [MongoConnector, JobManager])
2137
1943
  ], Progresses);
2138
1944
 
2139
- var __decorate$q = (this && this.__decorate) || function (decorators, target, key, desc) {
1945
+ var __decorate$r = (this && this.__decorate) || function (decorators, target, key, desc) {
2140
1946
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2141
1947
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2142
1948
  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;
2143
1949
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2144
1950
  };
2145
- var __metadata$k = (this && this.__metadata) || function (k, v) {
1951
+ var __metadata$l = (this && this.__metadata) || function (k, v) {
2146
1952
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2147
1953
  };
2148
- var __awaiter$l = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1954
+ var __awaiter$m = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2149
1955
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2150
1956
  return new (P || (P = Promise))(function (resolve, reject) {
2151
1957
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2163,7 +1969,7 @@ let LazyAssets = class LazyAssets {
2163
1969
  this.collection = connector.database.collection("lazyassets");
2164
1970
  }
2165
1971
  create(jobType, jobParams = {}, jobQue = "main") {
2166
- return __awaiter$l(this, void 0, void 0, function* () {
1972
+ return __awaiter$m(this, void 0, void 0, function* () {
2167
1973
  const jobName = this.jobMan.tryResolve(jobType, Object.assign(Object.assign({}, jobParams), { lazyId: "" }));
2168
1974
  const data = {
2169
1975
  jobName,
@@ -2178,12 +1984,12 @@ let LazyAssets = class LazyAssets {
2178
1984
  });
2179
1985
  }
2180
1986
  read(id) {
2181
- return __awaiter$l(this, void 0, void 0, function* () {
2182
- return !id ? null : this.find({ _id: new ObjectId(id) });
1987
+ return __awaiter$m(this, void 0, void 0, function* () {
1988
+ return !id ? null : this.find({ _id: new ObjectId$1(id) });
2183
1989
  });
2184
1990
  }
2185
1991
  find(where) {
2186
- return __awaiter$l(this, void 0, void 0, function* () {
1992
+ return __awaiter$m(this, void 0, void 0, function* () {
2187
1993
  const data = yield this.collection.findOne(where);
2188
1994
  return !data
2189
1995
  ? null
@@ -2191,7 +1997,7 @@ let LazyAssets = class LazyAssets {
2191
1997
  });
2192
1998
  }
2193
1999
  unlink(id) {
2194
- return __awaiter$l(this, void 0, void 0, function* () {
2000
+ return __awaiter$m(this, void 0, void 0, function* () {
2195
2001
  const asset = yield this.read(id);
2196
2002
  if (!asset)
2197
2003
  return null;
@@ -2199,25 +2005,25 @@ let LazyAssets = class LazyAssets {
2199
2005
  });
2200
2006
  }
2201
2007
  };
2202
- LazyAssets = __decorate$q([
2008
+ LazyAssets = __decorate$r([
2203
2009
  injectable(),
2204
2010
  scoped(Lifecycle.ContainerScoped),
2205
- __metadata$k("design:paramtypes", [MongoConnector,
2011
+ __metadata$l("design:paramtypes", [MongoConnector,
2206
2012
  Assets,
2207
2013
  Progresses,
2208
2014
  JobManager])
2209
2015
  ], LazyAssets);
2210
2016
 
2211
- var __decorate$p = (this && this.__decorate) || function (decorators, target, key, desc) {
2017
+ var __decorate$q = (this && this.__decorate) || function (decorators, target, key, desc) {
2212
2018
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2213
2019
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2214
2020
  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;
2215
2021
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2216
2022
  };
2217
- var __metadata$j = (this && this.__metadata) || function (k, v) {
2023
+ var __metadata$k = (this && this.__metadata) || function (k, v) {
2218
2024
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2219
2025
  };
2220
- var __awaiter$k = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2026
+ var __awaiter$l = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2221
2027
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2222
2028
  return new (P || (P = Promise))(function (resolve, reject) {
2223
2029
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2232,7 +2038,7 @@ let AssetResolver = class AssetResolver {
2232
2038
  this.lazyAssets = lazyAssets;
2233
2039
  }
2234
2040
  resolve(id, lazy = false) {
2235
- return __awaiter$k(this, void 0, void 0, function* () {
2041
+ return __awaiter$l(this, void 0, void 0, function* () {
2236
2042
  let asset = null;
2237
2043
  if (lazy) {
2238
2044
  const lazyAsset = yield this.lazyAssets.read(id);
@@ -2251,19 +2057,19 @@ let AssetResolver = class AssetResolver {
2251
2057
  });
2252
2058
  }
2253
2059
  };
2254
- AssetResolver = __decorate$p([
2060
+ AssetResolver = __decorate$q([
2255
2061
  injectable(),
2256
2062
  scoped(Lifecycle.ContainerScoped),
2257
- __metadata$j("design:paramtypes", [Assets, LazyAssets])
2063
+ __metadata$k("design:paramtypes", [Assets, LazyAssets])
2258
2064
  ], AssetResolver);
2259
2065
 
2260
- var __decorate$o = (this && this.__decorate) || function (decorators, target, key, desc) {
2066
+ var __decorate$p = (this && this.__decorate) || function (decorators, target, key, desc) {
2261
2067
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2262
2068
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2263
2069
  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;
2264
2070
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2265
2071
  };
2266
- var __metadata$i = (this && this.__metadata) || function (k, v) {
2072
+ var __metadata$j = (this && this.__metadata) || function (k, v) {
2267
2073
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2268
2074
  };
2269
2075
  const express = express_;
@@ -2278,19 +2084,19 @@ let BackendProvider = class BackendProvider {
2278
2084
  return this.ioServer;
2279
2085
  }
2280
2086
  };
2281
- BackendProvider = __decorate$o([
2087
+ BackendProvider = __decorate$p([
2282
2088
  injectable(),
2283
2089
  singleton(),
2284
- __metadata$i("design:paramtypes", [])
2090
+ __metadata$j("design:paramtypes", [])
2285
2091
  ], BackendProvider);
2286
2092
 
2287
- var __decorate$n = (this && this.__decorate) || function (decorators, target, key, desc) {
2093
+ var __decorate$o = (this && this.__decorate) || function (decorators, target, key, desc) {
2288
2094
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2289
2095
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2290
2096
  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;
2291
2097
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2292
2098
  };
2293
- var __awaiter$j = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2099
+ var __awaiter$k = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2294
2100
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2295
2101
  return new (P || (P = Promise))(function (resolve, reject) {
2296
2102
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2301,31 +2107,31 @@ var __awaiter$j = (this && this.__awaiter) || function (thisArg, _arguments, P,
2301
2107
  };
2302
2108
  let CacheProcessor = class CacheProcessor {
2303
2109
  serialize(data) {
2304
- return __awaiter$j(this, void 0, void 0, function* () {
2110
+ return __awaiter$k(this, void 0, void 0, function* () {
2305
2111
  return data;
2306
2112
  });
2307
2113
  }
2308
2114
  deserialize(data) {
2309
- return __awaiter$j(this, void 0, void 0, function* () {
2115
+ return __awaiter$k(this, void 0, void 0, function* () {
2310
2116
  return data;
2311
2117
  });
2312
2118
  }
2313
2119
  };
2314
- CacheProcessor = __decorate$n([
2120
+ CacheProcessor = __decorate$o([
2315
2121
  injectable(),
2316
2122
  scoped(Lifecycle.ContainerScoped)
2317
2123
  ], CacheProcessor);
2318
2124
 
2319
- var __decorate$m = (this && this.__decorate) || function (decorators, target, key, desc) {
2125
+ var __decorate$n = (this && this.__decorate) || function (decorators, target, key, desc) {
2320
2126
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2321
2127
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2322
2128
  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;
2323
2129
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2324
2130
  };
2325
- var __metadata$h = (this && this.__metadata) || function (k, v) {
2131
+ var __metadata$i = (this && this.__metadata) || function (k, v) {
2326
2132
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2327
2133
  };
2328
- var __awaiter$i = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2134
+ var __awaiter$j = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2329
2135
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2330
2136
  return new (P || (P = Promise))(function (resolve, reject) {
2331
2137
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2341,7 +2147,7 @@ let Cache = class Cache {
2341
2147
  this.cacheProcessor = cacheProcessor;
2342
2148
  }
2343
2149
  prepare() {
2344
- return __awaiter$i(this, void 0, void 0, function* () {
2150
+ return __awaiter$j(this, void 0, void 0, function* () {
2345
2151
  if (this.collection)
2346
2152
  return;
2347
2153
  if (!this.connector.database) {
@@ -2352,7 +2158,7 @@ let Cache = class Cache {
2352
2158
  });
2353
2159
  }
2354
2160
  set(key, value, ttl, expirationTimestamp = null, tags = {}) {
2355
- return __awaiter$i(this, void 0, void 0, function* () {
2161
+ return __awaiter$j(this, void 0, void 0, function* () {
2356
2162
  yield this.prepare();
2357
2163
  const item = {
2358
2164
  _id: key,
@@ -2369,7 +2175,7 @@ let Cache = class Cache {
2369
2175
  });
2370
2176
  }
2371
2177
  get(key) {
2372
- return __awaiter$i(this, void 0, void 0, function* () {
2178
+ return __awaiter$j(this, void 0, void 0, function* () {
2373
2179
  yield this.prepare();
2374
2180
  let item = yield this.collection.findOne({ _id: key });
2375
2181
  const now = Math.round(new Date().getTime() / 1000);
@@ -2383,7 +2189,7 @@ let Cache = class Cache {
2383
2189
  });
2384
2190
  }
2385
2191
  getOrSet(key, valueCb, ttl, expirationTimestamp = null, tags = {}) {
2386
- return __awaiter$i(this, void 0, void 0, function* () {
2192
+ return __awaiter$j(this, void 0, void 0, function* () {
2387
2193
  try {
2388
2194
  return yield this.get(key);
2389
2195
  }
@@ -2393,25 +2199,25 @@ let Cache = class Cache {
2393
2199
  });
2394
2200
  }
2395
2201
  delete(key) {
2396
- return __awaiter$i(this, void 0, void 0, function* () {
2202
+ return __awaiter$j(this, void 0, void 0, function* () {
2397
2203
  yield this.prepare();
2398
2204
  yield this.collection.deleteOne({ _id: key });
2399
2205
  });
2400
2206
  }
2401
2207
  };
2402
- Cache = __decorate$m([
2208
+ Cache = __decorate$n([
2403
2209
  injectable(),
2404
2210
  scoped(Lifecycle.ContainerScoped),
2405
- __metadata$h("design:paramtypes", [MongoConnector, Configuration, CacheProcessor])
2211
+ __metadata$i("design:paramtypes", [MongoConnector, Configuration, CacheProcessor])
2406
2212
  ], Cache);
2407
2213
 
2408
- var __decorate$l = (this && this.__decorate) || function (decorators, target, key, desc) {
2214
+ var __decorate$m = (this && this.__decorate) || function (decorators, target, key, desc) {
2409
2215
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2410
2216
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2411
2217
  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;
2412
2218
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2413
2219
  };
2414
- var __awaiter$h = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2220
+ var __awaiter$i = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2415
2221
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2416
2222
  return new (P || (P = Promise))(function (resolve, reject) {
2417
2223
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2422,29 +2228,29 @@ var __awaiter$h = (this && this.__awaiter) || function (thisArg, _arguments, P,
2422
2228
  };
2423
2229
  let EndpointProvider = class EndpointProvider {
2424
2230
  configure(app) {
2425
- return __awaiter$h(this, void 0, void 0, function* () {
2231
+ return __awaiter$i(this, void 0, void 0, function* () {
2426
2232
  console.log(`Express app is mounted to: ${app.mountpath}`);
2427
2233
  });
2428
2234
  }
2429
2235
  };
2430
- EndpointProvider = __decorate$l([
2236
+ EndpointProvider = __decorate$m([
2431
2237
  injectable(),
2432
2238
  scoped(Lifecycle.ContainerScoped)
2433
2239
  ], EndpointProvider);
2434
2240
 
2435
- var __decorate$k = (this && this.__decorate) || function (decorators, target, key, desc) {
2241
+ var __decorate$l = (this && this.__decorate) || function (decorators, target, key, desc) {
2436
2242
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2437
2243
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2438
2244
  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;
2439
2245
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2440
2246
  };
2441
- var __metadata$g = (this && this.__metadata) || function (k, v) {
2247
+ var __metadata$h = (this && this.__metadata) || function (k, v) {
2442
2248
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2443
2249
  };
2444
2250
  var __param$6 = (this && this.__param) || function (paramIndex, decorator) {
2445
2251
  return function (target, key) { decorator(target, key, paramIndex); }
2446
2252
  };
2447
- var __awaiter$g = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2253
+ var __awaiter$h = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2448
2254
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2449
2255
  return new (P || (P = Promise))(function (resolve, reject) {
2450
2256
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2458,7 +2264,7 @@ let Fixtures = class Fixtures {
2458
2264
  this.fixtures = fixtures;
2459
2265
  }
2460
2266
  load() {
2461
- return __awaiter$g(this, void 0, void 0, function* () {
2267
+ return __awaiter$h(this, void 0, void 0, function* () {
2462
2268
  if (!this.fixtures)
2463
2269
  return;
2464
2270
  for (let fixture of this.fixtures) {
@@ -2467,14 +2273,14 @@ let Fixtures = class Fixtures {
2467
2273
  });
2468
2274
  }
2469
2275
  };
2470
- Fixtures = __decorate$k([
2276
+ Fixtures = __decorate$l([
2471
2277
  injectable(),
2472
2278
  scoped(Lifecycle.ContainerScoped),
2473
2279
  __param$6(0, injectAll(FIXTURE)),
2474
- __metadata$g("design:paramtypes", [Array])
2280
+ __metadata$h("design:paramtypes", [Array])
2475
2281
  ], Fixtures);
2476
2282
 
2477
- var __awaiter$f = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2283
+ var __awaiter$g = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2478
2284
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2479
2285
  return new (P || (P = Promise))(function (resolve, reject) {
2480
2286
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2495,7 +2301,7 @@ class GalleryImage {
2495
2301
  this.targetSize = !size ? { width: thumbSize, height: thumbSize } : size;
2496
2302
  }
2497
2303
  serve(id) {
2498
- return __awaiter$f(this, void 0, void 0, function* () {
2304
+ return __awaiter$g(this, void 0, void 0, function* () {
2499
2305
  const isThumb = id == this.thumb;
2500
2306
  if (yield this.handler.hasResult(isThumb)) {
2501
2307
  return this.handler.serveResult(isThumb);
@@ -2520,13 +2326,13 @@ class GalleryImage {
2520
2326
  }
2521
2327
  }
2522
2328
 
2523
- var __decorate$j = (this && this.__decorate) || function (decorators, target, key, desc) {
2329
+ var __decorate$k = (this && this.__decorate) || function (decorators, target, key, desc) {
2524
2330
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2525
2331
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2526
2332
  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;
2527
2333
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2528
2334
  };
2529
- var __metadata$f = (this && this.__metadata) || function (k, v) {
2335
+ var __metadata$g = (this && this.__metadata) || function (k, v) {
2530
2336
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2531
2337
  };
2532
2338
  let GalleryCache = class GalleryCache {
@@ -2547,22 +2353,22 @@ let GalleryCache = class GalleryCache {
2547
2353
  return image;
2548
2354
  }
2549
2355
  };
2550
- GalleryCache = __decorate$j([
2356
+ GalleryCache = __decorate$k([
2551
2357
  injectable(),
2552
2358
  scoped(Lifecycle.ContainerScoped),
2553
- __metadata$f("design:paramtypes", [])
2359
+ __metadata$g("design:paramtypes", [])
2554
2360
  ], GalleryCache);
2555
2361
 
2556
- var __decorate$i = (this && this.__decorate) || function (decorators, target, key, desc) {
2362
+ var __decorate$j = (this && this.__decorate) || function (decorators, target, key, desc) {
2557
2363
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2558
2364
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2559
2365
  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;
2560
2366
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2561
2367
  };
2562
- var __metadata$e = (this && this.__metadata) || function (k, v) {
2368
+ var __metadata$f = (this && this.__metadata) || function (k, v) {
2563
2369
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2564
2370
  };
2565
- var __awaiter$e = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2371
+ var __awaiter$f = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2566
2372
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2567
2373
  return new (P || (P = Promise))(function (resolve, reject) {
2568
2374
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2581,7 +2387,7 @@ let Gallery = class Gallery {
2581
2387
  this.output = join(this.config.resolve("cacheDir"), "gallery");
2582
2388
  }
2583
2389
  getFolder(folder, size = null) {
2584
- return __awaiter$e(this, void 0, void 0, function* () {
2390
+ return __awaiter$f(this, void 0, void 0, function* () {
2585
2391
  this.cache[folder] = this.cache[folder] || new Promise(resolve => {
2586
2392
  lstat(join(this.dir, folder), (err, stats) => {
2587
2393
  if (err || !stats.isDirectory()) {
@@ -2602,7 +2408,7 @@ let Gallery = class Gallery {
2602
2408
  return;
2603
2409
  }
2604
2410
  const promises = files.map(file => {
2605
- return new Promise((resolve) => __awaiter$e(this, void 0, void 0, function* () {
2411
+ return new Promise((resolve) => __awaiter$f(this, void 0, void 0, function* () {
2606
2412
  const filePath = join(path, file);
2607
2413
  const absoluteFilePath = join(this.dir, filePath);
2608
2414
  lstat(absoluteFilePath, (err, stats) => {
@@ -2635,7 +2441,7 @@ let Gallery = class Gallery {
2635
2441
  });
2636
2442
  },
2637
2443
  writeResult: (isThumb, buffer) => {
2638
- return new Promise((res, rej) => __awaiter$e(this, void 0, void 0, function* () {
2444
+ return new Promise((res, rej) => __awaiter$f(this, void 0, void 0, function* () {
2639
2445
  const resultPath = getResultPath(isThumb);
2640
2446
  yield mkdirRecursive(dirname(resultPath));
2641
2447
  writeFile$1(resultPath, buffer, err => {
@@ -2677,22 +2483,22 @@ let Gallery = class Gallery {
2677
2483
  });
2678
2484
  }
2679
2485
  };
2680
- Gallery = __decorate$i([
2486
+ Gallery = __decorate$j([
2681
2487
  injectable(),
2682
2488
  scoped(Lifecycle.ContainerScoped),
2683
- __metadata$e("design:paramtypes", [Configuration, GalleryCache])
2489
+ __metadata$f("design:paramtypes", [Configuration, GalleryCache])
2684
2490
  ], Gallery);
2685
2491
 
2686
- var __decorate$h = (this && this.__decorate) || function (decorators, target, key, desc) {
2492
+ var __decorate$i = (this && this.__decorate) || function (decorators, target, key, desc) {
2687
2493
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2688
2494
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2689
2495
  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;
2690
2496
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2691
2497
  };
2692
- var __metadata$d = (this && this.__metadata) || function (k, v) {
2498
+ var __metadata$e = (this && this.__metadata) || function (k, v) {
2693
2499
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2694
2500
  };
2695
- var __awaiter$d = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2501
+ var __awaiter$e = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2696
2502
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2697
2503
  return new (P || (P = Promise))(function (resolve, reject) {
2698
2504
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2710,7 +2516,7 @@ let IdGenerator = class IdGenerator {
2710
2516
  this.parts = config.resolve("idParts");
2711
2517
  }
2712
2518
  generate(checkCb) {
2713
- return __awaiter$d(this, void 0, void 0, function* () {
2519
+ return __awaiter$e(this, void 0, void 0, function* () {
2714
2520
  let id = null;
2715
2521
  let tries = 0;
2716
2522
  let notGood = true;
@@ -2736,19 +2542,19 @@ let IdGenerator = class IdGenerator {
2736
2542
  }).join(this.separator);
2737
2543
  }
2738
2544
  };
2739
- IdGenerator = __decorate$h([
2545
+ IdGenerator = __decorate$i([
2740
2546
  injectable(),
2741
2547
  scoped(Lifecycle.ContainerScoped),
2742
- __metadata$d("design:paramtypes", [Configuration])
2548
+ __metadata$e("design:paramtypes", [Configuration])
2743
2549
  ], IdGenerator);
2744
2550
 
2745
- var __decorate$g = (this && this.__decorate) || function (decorators, target, key, desc) {
2551
+ var __decorate$h = (this && this.__decorate) || function (decorators, target, key, desc) {
2746
2552
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2747
2553
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2748
2554
  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;
2749
2555
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2750
2556
  };
2751
- var __metadata$c = (this && this.__metadata) || function (k, v) {
2557
+ var __metadata$d = (this && this.__metadata) || function (k, v) {
2752
2558
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2753
2559
  };
2754
2560
  let TranslationProvider = class TranslationProvider {
@@ -2763,22 +2569,22 @@ let TranslationProvider = class TranslationProvider {
2763
2569
  return this.cache[language];
2764
2570
  }
2765
2571
  };
2766
- TranslationProvider = __decorate$g([
2572
+ TranslationProvider = __decorate$h([
2767
2573
  injectable(),
2768
2574
  singleton(),
2769
- __metadata$c("design:paramtypes", [Configuration])
2575
+ __metadata$d("design:paramtypes", [Configuration])
2770
2576
  ], TranslationProvider);
2771
2577
 
2772
- var __decorate$f = (this && this.__decorate) || function (decorators, target, key, desc) {
2578
+ var __decorate$g = (this && this.__decorate) || function (decorators, target, key, desc) {
2773
2579
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2774
2580
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2775
2581
  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;
2776
2582
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2777
2583
  };
2778
- var __metadata$b = (this && this.__metadata) || function (k, v) {
2584
+ var __metadata$c = (this && this.__metadata) || function (k, v) {
2779
2585
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2780
2586
  };
2781
- var __awaiter$c = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2587
+ var __awaiter$d = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2782
2588
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2783
2589
  return new (P || (P = Promise))(function (resolve, reject) {
2784
2590
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2793,7 +2599,7 @@ let Translator = class Translator {
2793
2599
  this.cache = {};
2794
2600
  }
2795
2601
  getDictionary(language) {
2796
- return __awaiter$c(this, void 0, void 0, function* () {
2602
+ return __awaiter$d(this, void 0, void 0, function* () {
2797
2603
  const dictionary = yield this.translationProvider.getDictionary(language);
2798
2604
  this.cache[language] = dictionary;
2799
2605
  return dictionary;
@@ -2844,22 +2650,22 @@ let Translator = class Translator {
2844
2650
  });
2845
2651
  }
2846
2652
  };
2847
- Translator = __decorate$f([
2653
+ Translator = __decorate$g([
2848
2654
  injectable(),
2849
2655
  singleton(),
2850
- __metadata$b("design:paramtypes", [TranslationProvider])
2656
+ __metadata$c("design:paramtypes", [TranslationProvider])
2851
2657
  ], Translator);
2852
2658
 
2853
- var __decorate$e = (this && this.__decorate) || function (decorators, target, key, desc) {
2659
+ var __decorate$f = (this && this.__decorate) || function (decorators, target, key, desc) {
2854
2660
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2855
2661
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2856
2662
  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;
2857
2663
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2858
2664
  };
2859
- var __metadata$a = (this && this.__metadata) || function (k, v) {
2665
+ var __metadata$b = (this && this.__metadata) || function (k, v) {
2860
2666
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2861
2667
  };
2862
- var __awaiter$b = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2668
+ var __awaiter$c = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2863
2669
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2864
2670
  return new (P || (P = Promise))(function (resolve, reject) {
2865
2671
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2891,9 +2697,9 @@ let TemplateRenderer = class TemplateRenderer {
2891
2697
  return this.initPromise;
2892
2698
  }
2893
2699
  parseTemplates(dir, dirPath) {
2894
- return __awaiter$b(this, void 0, void 0, function* () {
2700
+ return __awaiter$c(this, void 0, void 0, function* () {
2895
2701
  return new Promise(resolve => {
2896
- readdir(dir, (err, files) => __awaiter$b(this, void 0, void 0, function* () {
2702
+ readdir(dir, (err, files) => __awaiter$c(this, void 0, void 0, function* () {
2897
2703
  for (let file of files) {
2898
2704
  const path = join(dir, file);
2899
2705
  if (lstatSync(path).isDirectory()) {
@@ -2914,7 +2720,7 @@ let TemplateRenderer = class TemplateRenderer {
2914
2720
  });
2915
2721
  }
2916
2722
  render(template, language, context) {
2917
- return __awaiter$b(this, void 0, void 0, function* () {
2723
+ return __awaiter$c(this, void 0, void 0, function* () {
2918
2724
  yield this.init();
2919
2725
  yield this.translator.getDictionary(language);
2920
2726
  if (!this.templates[template]) {
@@ -2926,22 +2732,22 @@ let TemplateRenderer = class TemplateRenderer {
2926
2732
  });
2927
2733
  }
2928
2734
  };
2929
- TemplateRenderer = __decorate$e([
2735
+ TemplateRenderer = __decorate$f([
2930
2736
  injectable(),
2931
2737
  singleton(),
2932
- __metadata$a("design:paramtypes", [Translator, Configuration])
2738
+ __metadata$b("design:paramtypes", [Translator, Configuration])
2933
2739
  ], TemplateRenderer);
2934
2740
 
2935
- var __decorate$d = (this && this.__decorate) || function (decorators, target, key, desc) {
2741
+ var __decorate$e = (this && this.__decorate) || function (decorators, target, key, desc) {
2936
2742
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2937
2743
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2938
2744
  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;
2939
2745
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2940
2746
  };
2941
- var __metadata$9 = (this && this.__metadata) || function (k, v) {
2747
+ var __metadata$a = (this && this.__metadata) || function (k, v) {
2942
2748
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2943
2749
  };
2944
- var __awaiter$a = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2750
+ var __awaiter$b = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2945
2751
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2946
2752
  return new (P || (P = Promise))(function (resolve, reject) {
2947
2753
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2967,7 +2773,7 @@ let MailSender = class MailSender {
2967
2773
  return this.renderer.translator;
2968
2774
  }
2969
2775
  sendMail(language, options) {
2970
- return __awaiter$a(this, void 0, void 0, function* () {
2776
+ return __awaiter$b(this, void 0, void 0, function* () {
2971
2777
  const subject = yield this.translator.getTranslation(language, options.subject || "-");
2972
2778
  const html = yield this.renderer.render(options.template, language, options.context);
2973
2779
  return this.transporter.sendMail({
@@ -2980,22 +2786,22 @@ let MailSender = class MailSender {
2980
2786
  });
2981
2787
  }
2982
2788
  };
2983
- MailSender = __decorate$d([
2789
+ MailSender = __decorate$e([
2984
2790
  injectable(),
2985
2791
  singleton(),
2986
- __metadata$9("design:paramtypes", [Configuration, TemplateRenderer])
2792
+ __metadata$a("design:paramtypes", [Configuration, TemplateRenderer])
2987
2793
  ], MailSender);
2988
2794
 
2989
- var __decorate$c = (this && this.__decorate) || function (decorators, target, key, desc) {
2795
+ var __decorate$d = (this && this.__decorate) || function (decorators, target, key, desc) {
2990
2796
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2991
2797
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2992
2798
  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;
2993
2799
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2994
2800
  };
2995
- var __metadata$8 = (this && this.__metadata) || function (k, v) {
2801
+ var __metadata$9 = (this && this.__metadata) || function (k, v) {
2996
2802
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2997
2803
  };
2998
- var __awaiter$9 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2804
+ var __awaiter$a = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2999
2805
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3000
2806
  return new (P || (P = Promise))(function (resolve, reject) {
3001
2807
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3010,7 +2816,7 @@ let MemoryCache = class MemoryCache {
3010
2816
  this.cacheMap = new Map();
3011
2817
  }
3012
2818
  set(key, value, ttl, expirationTimestamp = null, tags = {}) {
3013
- return __awaiter$9(this, void 0, void 0, function* () {
2819
+ return __awaiter$a(this, void 0, void 0, function* () {
3014
2820
  const now = Math.round(new Date().getTime() / 1000);
3015
2821
  const expTimestamp = Math.min(isNaN(ttl) ? Number.MAX_SAFE_INTEGER : ttl, 3600);
3016
2822
  this.cacheMap.set(key, {
@@ -3023,7 +2829,7 @@ let MemoryCache = class MemoryCache {
3023
2829
  });
3024
2830
  }
3025
2831
  get(key) {
3026
- return __awaiter$9(this, void 0, void 0, function* () {
2832
+ return __awaiter$a(this, void 0, void 0, function* () {
3027
2833
  let item = this.cacheMap.get(key);
3028
2834
  const now = Math.round(new Date().getTime() / 1000);
3029
2835
  let expTimestamp = 3600;
@@ -3045,7 +2851,7 @@ let MemoryCache = class MemoryCache {
3045
2851
  });
3046
2852
  }
3047
2853
  getOrSet(key, valueCb, ttl, expirationTimestamp = null, tags = {}) {
3048
- return __awaiter$9(this, void 0, void 0, function* () {
2854
+ return __awaiter$a(this, void 0, void 0, function* () {
3049
2855
  try {
3050
2856
  return yield this.get(key);
3051
2857
  }
@@ -3055,25 +2861,25 @@ let MemoryCache = class MemoryCache {
3055
2861
  });
3056
2862
  }
3057
2863
  delete(key) {
3058
- return __awaiter$9(this, void 0, void 0, function* () {
2864
+ return __awaiter$a(this, void 0, void 0, function* () {
3059
2865
  this.cacheMap.delete(key);
3060
2866
  yield this.cacheMap.delete(key);
3061
2867
  });
3062
2868
  }
3063
2869
  };
3064
- MemoryCache = __decorate$c([
2870
+ MemoryCache = __decorate$d([
3065
2871
  injectable(),
3066
2872
  scoped(Lifecycle.ContainerScoped),
3067
- __metadata$8("design:paramtypes", [Cache])
2873
+ __metadata$9("design:paramtypes", [Cache])
3068
2874
  ], MemoryCache);
3069
2875
 
3070
- var __decorate$b = (this && this.__decorate) || function (decorators, target, key, desc) {
2876
+ var __decorate$c = (this && this.__decorate) || function (decorators, target, key, desc) {
3071
2877
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3072
2878
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3073
2879
  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;
3074
2880
  return c > 3 && r && Object.defineProperty(target, key, r), r;
3075
2881
  };
3076
- var __awaiter$8 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2882
+ var __awaiter$9 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3077
2883
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3078
2884
  return new (P || (P = Promise))(function (resolve, reject) {
3079
2885
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3090,28 +2896,97 @@ const sampleUser = {
3090
2896
  };
3091
2897
  let UserManager = class UserManager {
3092
2898
  getByCredentials(credentials) {
3093
- return __awaiter$8(this, void 0, void 0, function* () {
2899
+ return __awaiter$9(this, void 0, void 0, function* () {
3094
2900
  return (sampleUser.email == credentials.email) ? sampleUser : yield Promise.reject("message.login.error");
3095
2901
  });
3096
2902
  }
3097
2903
  getById(id) {
3098
- return __awaiter$8(this, void 0, void 0, function* () {
2904
+ return __awaiter$9(this, void 0, void 0, function* () {
3099
2905
  return (sampleUser.id == id) ? sampleUser : null;
3100
2906
  });
3101
2907
  }
3102
2908
  serialize(user) {
3103
- return __awaiter$8(this, void 0, void 0, function* () {
2909
+ return __awaiter$9(this, void 0, void 0, function* () {
3104
2910
  const res = Object.assign({}, user);
3105
2911
  delete res.password;
3106
2912
  return res;
3107
2913
  });
3108
2914
  }
3109
2915
  };
3110
- UserManager = __decorate$b([
2916
+ UserManager = __decorate$c([
3111
2917
  injectable(),
3112
2918
  scoped(Lifecycle.ContainerScoped)
3113
2919
  ], UserManager);
3114
2920
 
2921
+ var __decorate$b = (this && this.__decorate) || function (decorators, target, key, desc) {
2922
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2923
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2924
+ 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;
2925
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2926
+ };
2927
+ var __metadata$8 = (this && this.__metadata) || function (k, v) {
2928
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2929
+ };
2930
+ class AssetImageParams {
2931
+ constructor() {
2932
+ this.rotation = 0;
2933
+ this.canvasScaleX = 1;
2934
+ this.canvasScaleY = 1;
2935
+ this.scaleX = 1;
2936
+ this.scaleY = 1;
2937
+ this.lazy = false;
2938
+ this.crop = false;
2939
+ this.cropBefore = false;
2940
+ this.cropAfter = false;
2941
+ }
2942
+ }
2943
+ __decorate$b([
2944
+ Min(-360),
2945
+ Max(360),
2946
+ IsOptional(),
2947
+ __metadata$8("design:type", Number)
2948
+ ], AssetImageParams.prototype, "rotation", void 0);
2949
+ __decorate$b([
2950
+ Min(0.0001),
2951
+ IsOptional(),
2952
+ __metadata$8("design:type", Number)
2953
+ ], AssetImageParams.prototype, "canvasScaleX", void 0);
2954
+ __decorate$b([
2955
+ Min(0.0001),
2956
+ IsOptional(),
2957
+ __metadata$8("design:type", Number)
2958
+ ], AssetImageParams.prototype, "canvasScaleY", void 0);
2959
+ __decorate$b([
2960
+ Min(0.0001),
2961
+ IsOptional(),
2962
+ __metadata$8("design:type", Number)
2963
+ ], AssetImageParams.prototype, "scaleX", void 0);
2964
+ __decorate$b([
2965
+ Min(0.0001),
2966
+ IsOptional(),
2967
+ __metadata$8("design:type", Number)
2968
+ ], AssetImageParams.prototype, "scaleY", void 0);
2969
+ __decorate$b([
2970
+ IsBoolean(),
2971
+ IsOptional(),
2972
+ __metadata$8("design:type", Boolean)
2973
+ ], AssetImageParams.prototype, "lazy", void 0);
2974
+ __decorate$b([
2975
+ IsBoolean(),
2976
+ IsOptional(),
2977
+ __metadata$8("design:type", Boolean)
2978
+ ], AssetImageParams.prototype, "crop", void 0);
2979
+ __decorate$b([
2980
+ IsBoolean(),
2981
+ IsOptional(),
2982
+ __metadata$8("design:type", Boolean)
2983
+ ], AssetImageParams.prototype, "cropBefore", void 0);
2984
+ __decorate$b([
2985
+ IsBoolean(),
2986
+ IsOptional(),
2987
+ __metadata$8("design:type", Boolean)
2988
+ ], AssetImageParams.prototype, "cropAfter", void 0);
2989
+
3115
2990
  var __decorate$a = (this && this.__decorate) || function (decorators, target, key, desc) {
3116
2991
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3117
2992
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -3124,7 +2999,7 @@ var __metadata$7 = (this && this.__metadata) || function (k, v) {
3124
2999
  var __param$5 = (this && this.__param) || function (paramIndex, decorator) {
3125
3000
  return function (target, key) { decorator(target, key, paramIndex); }
3126
3001
  };
3127
- var __awaiter$7 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3002
+ var __awaiter$8 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3128
3003
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3129
3004
  return new (P || (P = Promise))(function (resolve, reject) {
3130
3005
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3139,7 +3014,7 @@ let AssetsController = class AssetsController {
3139
3014
  this.assetResolver = assetResolver;
3140
3015
  }
3141
3016
  upload(file) {
3142
- return __awaiter$7(this, void 0, void 0, function* () {
3017
+ return __awaiter$8(this, void 0, void 0, function* () {
3143
3018
  try {
3144
3019
  const contentType = file.mimetype === "application/octet-stream" ? null : file.mimetype;
3145
3020
  const asset = yield this.assets.writeBuffer(file.buffer, { filename: file.filename }, contentType);
@@ -3152,7 +3027,7 @@ let AssetsController = class AssetsController {
3152
3027
  });
3153
3028
  }
3154
3029
  uploadUrl(body) {
3155
- return __awaiter$7(this, void 0, void 0, function* () {
3030
+ return __awaiter$8(this, void 0, void 0, function* () {
3156
3031
  try {
3157
3032
  const asset = yield this.assets.writeUrl(body.url, body);
3158
3033
  return asset.toJSON();
@@ -3164,13 +3039,13 @@ let AssetsController = class AssetsController {
3164
3039
  });
3165
3040
  }
3166
3041
  getFile(id, lazy, res) {
3167
- return __awaiter$7(this, void 0, void 0, function* () {
3042
+ return __awaiter$8(this, void 0, void 0, function* () {
3168
3043
  const asset = yield this.getAsset("Asset", id, lazy, res);
3169
3044
  return asset.download();
3170
3045
  });
3171
3046
  }
3172
3047
  getImageRotation(id, params, res, rotation = 0) {
3173
- return __awaiter$7(this, void 0, void 0, function* () {
3048
+ return __awaiter$8(this, void 0, void 0, function* () {
3174
3049
  const asset = yield this.getAsset("Image", id, params.lazy, res);
3175
3050
  if (rotation !== 0) {
3176
3051
  params.rotation = params.rotation || rotation;
@@ -3179,18 +3054,18 @@ let AssetsController = class AssetsController {
3179
3054
  });
3180
3055
  }
3181
3056
  getImage(id, params, res) {
3182
- return __awaiter$7(this, void 0, void 0, function* () {
3057
+ return __awaiter$8(this, void 0, void 0, function* () {
3183
3058
  return this.getImageRotation(id, params, res);
3184
3059
  });
3185
3060
  }
3186
3061
  getFileByName(name, res) {
3187
- return __awaiter$7(this, void 0, void 0, function* () {
3062
+ return __awaiter$8(this, void 0, void 0, function* () {
3188
3063
  const asset = yield this.getAssetByName("Asset", name, res);
3189
3064
  return asset.download();
3190
3065
  });
3191
3066
  }
3192
3067
  getImageByName(name, params, res) {
3193
- return __awaiter$7(this, void 0, void 0, function* () {
3068
+ return __awaiter$8(this, void 0, void 0, function* () {
3194
3069
  const asset = yield this.getAssetByName("Image", name, res);
3195
3070
  return asset.downloadImage(params);
3196
3071
  });
@@ -3209,7 +3084,7 @@ let AssetsController = class AssetsController {
3209
3084
  }
3210
3085
  }
3211
3086
  getAsset(type, id, lazy, res) {
3212
- return __awaiter$7(this, void 0, void 0, function* () {
3087
+ return __awaiter$8(this, void 0, void 0, function* () {
3213
3088
  const asset = yield this.assetResolver.resolve(id, lazy);
3214
3089
  if (!asset) {
3215
3090
  throw new HttpError(404, `${type} with id: '${id}' not found.`);
@@ -3219,7 +3094,7 @@ let AssetsController = class AssetsController {
3219
3094
  });
3220
3095
  }
3221
3096
  getAssetByName(type, filename, res) {
3222
- return __awaiter$7(this, void 0, void 0, function* () {
3097
+ return __awaiter$8(this, void 0, void 0, function* () {
3223
3098
  const asset = yield this.assets.find({ filename });
3224
3099
  if (!asset) {
3225
3100
  throw new HttpError(404, `${type} with filename: '${filename}' not found.`);
@@ -3256,14 +3131,14 @@ __decorate$a([
3256
3131
  Get("/image/:id/:rotation"),
3257
3132
  __param$5(0, Param("id")), __param$5(1, QueryParams()), __param$5(2, Res()), __param$5(3, Param("rotation")),
3258
3133
  __metadata$7("design:type", Function),
3259
- __metadata$7("design:paramtypes", [String, Object, Object, Number]),
3134
+ __metadata$7("design:paramtypes", [String, AssetImageParams, Object, Number]),
3260
3135
  __metadata$7("design:returntype", Promise)
3261
3136
  ], AssetsController.prototype, "getImageRotation", null);
3262
3137
  __decorate$a([
3263
3138
  Get("/image/:id"),
3264
3139
  __param$5(0, Param("id")), __param$5(1, QueryParams()), __param$5(2, Res()),
3265
3140
  __metadata$7("design:type", Function),
3266
- __metadata$7("design:paramtypes", [String, Object, Object]),
3141
+ __metadata$7("design:paramtypes", [String, AssetImageParams, Object]),
3267
3142
  __metadata$7("design:returntype", Promise)
3268
3143
  ], AssetsController.prototype, "getImage", null);
3269
3144
  __decorate$a([
@@ -3277,7 +3152,7 @@ __decorate$a([
3277
3152
  Get("/by-name/image/:name"),
3278
3153
  __param$5(0, Param("name")), __param$5(1, QueryParams()), __param$5(2, Res()),
3279
3154
  __metadata$7("design:type", Function),
3280
- __metadata$7("design:paramtypes", [String, Object, Object]),
3155
+ __metadata$7("design:paramtypes", [String, AssetImageParams, Object]),
3281
3156
  __metadata$7("design:returntype", Promise)
3282
3157
  ], AssetsController.prototype, "getImageByName", null);
3283
3158
  AssetsController = __decorate$a([
@@ -3298,7 +3173,7 @@ var __metadata$6 = (this && this.__metadata) || function (k, v) {
3298
3173
  var __param$4 = (this && this.__param) || function (paramIndex, decorator) {
3299
3174
  return function (target, key) { decorator(target, key, paramIndex); }
3300
3175
  };
3301
- var __awaiter$6 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3176
+ var __awaiter$7 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3302
3177
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3303
3178
  return new (P || (P = Promise))(function (resolve, reject) {
3304
3179
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3313,20 +3188,21 @@ let AuthController = class AuthController {
3313
3188
  this.userManager = userManager;
3314
3189
  }
3315
3190
  login(credentials, res) {
3316
- return __awaiter$6(this, void 0, void 0, function* () {
3191
+ return __awaiter$7(this, void 0, void 0, function* () {
3192
+ let user = null;
3317
3193
  try {
3318
- const user = yield this.userManager.getByCredentials(credentials);
3319
- const valid = yield compare(credentials.password, user.password);
3320
- if (valid !== true)
3321
- throw "message.login.error";
3322
- return {
3323
- token: sign({ id: user._id || user.id }, this.config.resolve("jwtSecret")),
3324
- user: yield this.userManager.serialize(user)
3325
- };
3194
+ user = yield this.userManager.getByCredentials(credentials);
3326
3195
  }
3327
3196
  catch (reason) {
3328
3197
  throw new HttpError(401, reason);
3329
3198
  }
3199
+ const valid = !user ? false : yield compare(credentials.password, user.password);
3200
+ if (valid !== true)
3201
+ throw new UnauthorizedError(`message.login.error`);
3202
+ return {
3203
+ token: sign({ id: user._id || user.id }, this.config.resolve("jwtSecret")),
3204
+ user: yield this.userManager.serialize(user)
3205
+ };
3330
3206
  });
3331
3207
  }
3332
3208
  getProfile(user) {
@@ -3399,7 +3275,7 @@ var __metadata$4 = (this && this.__metadata) || function (k, v) {
3399
3275
  var __param$2 = (this && this.__param) || function (paramIndex, decorator) {
3400
3276
  return function (target, key) { decorator(target, key, paramIndex); }
3401
3277
  };
3402
- var __awaiter$5 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3278
+ var __awaiter$6 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3403
3279
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3404
3280
  return new (P || (P = Promise))(function (resolve, reject) {
3405
3281
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3416,7 +3292,7 @@ let ProgressesController = class ProgressesController {
3416
3292
  this.connectionType = !mainEndpoint ? "polling" : "socket";
3417
3293
  }
3418
3294
  getProgress(id) {
3419
- return __awaiter$5(this, void 0, void 0, function* () {
3295
+ return __awaiter$6(this, void 0, void 0, function* () {
3420
3296
  const progress = yield this.progresses.get(id);
3421
3297
  if (!progress)
3422
3298
  return null;
@@ -3448,7 +3324,7 @@ var __decorate$6 = (this && this.__decorate) || function (decorators, target, ke
3448
3324
  var __metadata$3 = (this && this.__metadata) || function (k, v) {
3449
3325
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
3450
3326
  };
3451
- var __awaiter$4 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3327
+ var __awaiter$5 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3452
3328
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3453
3329
  return new (P || (P = Promise))(function (resolve, reject) {
3454
3330
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3466,7 +3342,7 @@ let ErrorHandlerMiddleware = class ErrorHandlerMiddleware {
3466
3342
  return this.configuration.resolve("nodeEnv") === "development";
3467
3343
  }
3468
3344
  error(error, req, res, next) {
3469
- return __awaiter$4(this, void 0, void 0, function* () {
3345
+ return __awaiter$5(this, void 0, void 0, function* () {
3470
3346
  const result = yield this.getResult(error, req, res);
3471
3347
  if (this.isDev) {
3472
3348
  console.log("ERROR", result, res.statusCode);
@@ -3475,7 +3351,7 @@ let ErrorHandlerMiddleware = class ErrorHandlerMiddleware {
3475
3351
  });
3476
3352
  }
3477
3353
  getResult(error, req, res) {
3478
- return __awaiter$4(this, void 0, void 0, function* () {
3354
+ return __awaiter$5(this, void 0, void 0, function* () {
3479
3355
  const result = {};
3480
3356
  if (error instanceof BadRequestError) {
3481
3357
  res.status(400);
@@ -3598,7 +3474,7 @@ var __decorate$2 = (this && this.__decorate) || function (decorators, target, ke
3598
3474
  };
3599
3475
  let RequestStartedMiddleware = class RequestStartedMiddleware {
3600
3476
  use(request, response, next) {
3601
- request.id = new ObjectId().toHexString();
3477
+ request.id = new ObjectId$1().toHexString();
3602
3478
  request.started = moment();
3603
3479
  console.log(`Request '${request.id}' started at: ${request.started.format("YYYY-MM-DD HH:mm:ss")} [${request.method}] ${request.url}`);
3604
3480
  next(null);
@@ -3621,7 +3497,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
3621
3497
  var __param = (this && this.__param) || function (paramIndex, decorator) {
3622
3498
  return function (target, key) { decorator(target, key, paramIndex); }
3623
3499
  };
3624
- var __awaiter$3 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3500
+ var __awaiter$4 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3625
3501
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3626
3502
  return new (P || (P = Promise))(function (resolve, reject) {
3627
3503
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3636,7 +3512,7 @@ let ProgressController = class ProgressController {
3636
3512
  this.socketServer = socketServer;
3637
3513
  }
3638
3514
  advanceProgress(client, progressId) {
3639
- return __awaiter$3(this, void 0, void 0, function* () {
3515
+ return __awaiter$4(this, void 0, void 0, function* () {
3640
3516
  const progress = yield this.progresses.get(progressId);
3641
3517
  if (!progress)
3642
3518
  return;
@@ -3650,7 +3526,7 @@ let ProgressController = class ProgressController {
3650
3526
  });
3651
3527
  }
3652
3528
  setProgressInterest(client, progressId) {
3653
- return __awaiter$3(this, void 0, void 0, function* () {
3529
+ return __awaiter$4(this, void 0, void 0, function* () {
3654
3530
  const progress = yield this.progresses.get(progressId);
3655
3531
  if (!progress)
3656
3532
  return;
@@ -3701,6 +3577,53 @@ CompressionMiddleware = __decorate([
3701
3577
  Middleware$1()
3702
3578
  ], CompressionMiddleware);
3703
3579
 
3580
+ var __awaiter$3 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3581
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3582
+ return new (P || (P = Promise))(function (resolve, reject) {
3583
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
3584
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
3585
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
3586
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
3587
+ });
3588
+ };
3589
+ function setupStatic(rootFolder, container) {
3590
+ return __awaiter$3(this, void 0, void 0, function* () {
3591
+ const browserFolder = resolve(rootFolder || __dirname, `public_html`);
3592
+ const app = container.get(EXPRESS);
3593
+ const ep = container.get(EndpointProvider);
3594
+ console.log(browserFolder, existsSync(browserFolder));
3595
+ if (existsSync(browserFolder)) {
3596
+ console.log(`public_html exists. setting up static files serving...`);
3597
+ app.use(static$1(browserFolder, {
3598
+ maxAge: "1y"
3599
+ }));
3600
+ }
3601
+ else {
3602
+ console.log(`public_html does not exist on path: "${browserFolder}"`);
3603
+ }
3604
+ yield ep.configure(app);
3605
+ });
3606
+ }
3607
+
3608
+ class BaseDoc {
3609
+ /**
3610
+ * Casts this to DocumentType<this> to allow using document methods in get/set-s
3611
+ */
3612
+ cast() {
3613
+ return this;
3614
+ }
3615
+ /**
3616
+ * Gets a pre-compiled model from typegoose cache by its class type
3617
+ * @param type
3618
+ */
3619
+ model(type) {
3620
+ return getModelForClass(type);
3621
+ }
3622
+ }
3623
+ // @ts-ignore
3624
+ const PrimitiveArray = Types.Array;
3625
+ const DocumentArray = Types.DocumentArray;
3626
+
3704
3627
  class Tree {
3705
3628
  constructor(container, exists, path) {
3706
3629
  this.container = container;
@@ -3905,34 +3828,6 @@ var __awaiter$2 = (this && this.__awaiter) || function (thisArg, _arguments, P,
3905
3828
  step((generator = generator.apply(thisArg, _arguments || [])).next());
3906
3829
  });
3907
3830
  };
3908
- function setupStatic(rootFolder, container) {
3909
- return __awaiter$2(this, void 0, void 0, function* () {
3910
- const browserFolder = resolve(rootFolder || __dirname, `public_html`);
3911
- const app = container.get(EXPRESS);
3912
- const ep = container.get(EndpointProvider);
3913
- console.log(browserFolder, existsSync(browserFolder));
3914
- if (existsSync(browserFolder)) {
3915
- console.log(`public_html exists. setting up static files serving...`);
3916
- app.use(static$1(browserFolder, {
3917
- maxAge: "1y"
3918
- }));
3919
- }
3920
- else {
3921
- console.log(`public_html does not exist on path: "${browserFolder}"`);
3922
- }
3923
- yield ep.configure(app);
3924
- });
3925
- }
3926
-
3927
- var __awaiter$1 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3928
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3929
- return new (P || (P = Promise))(function (resolve, reject) {
3930
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
3931
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
3932
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
3933
- step((generator = generator.apply(thisArg, _arguments || [])).next());
3934
- });
3935
- };
3936
3831
  class LazyAssetGenerator {
3937
3832
  constructor(assetResolver, progresses, lazyId) {
3938
3833
  this.assetResolver = assetResolver;
@@ -3946,7 +3841,7 @@ class LazyAssetGenerator {
3946
3841
  return this.assetResolver.lazyAssets;
3947
3842
  }
3948
3843
  process(messaging) {
3949
- return __awaiter$1(this, void 0, void 0, function* () {
3844
+ return __awaiter$2(this, void 0, void 0, function* () {
3950
3845
  const lazyAsset = yield this.lazyAssets.read(this.lazyId);
3951
3846
  let progress = yield this.progresses.get(lazyAsset.progressId);
3952
3847
  if (!progress || progress.canceled)
@@ -3970,6 +3865,227 @@ class LazyAssetGenerator {
3970
3865
  }
3971
3866
  }
3972
3867
 
3868
+ var __awaiter$1 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3869
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3870
+ return new (P || (P = Promise))(function (resolve, reject) {
3871
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
3872
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
3873
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
3874
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
3875
+ });
3876
+ };
3877
+ const pluginsKey = "typegoose:plugins";
3878
+ /**
3879
+ * A mongoose/typegoose plugin to inject services from the main di container to a schema as virtuals
3880
+ * @param schema
3881
+ * @param services
3882
+ */
3883
+ function injectServices(schema, services) {
3884
+ const serviceMap = {};
3885
+ if (!isObject(services)) {
3886
+ throw new Error(`services object should be defined to inject services to schema!`);
3887
+ }
3888
+ Object.keys(services).forEach(prop => {
3889
+ schema
3890
+ .virtual(prop)
3891
+ .get(() => {
3892
+ const diContainer = diContainers.appContainer;
3893
+ serviceMap[prop] = serviceMap[prop] || (!diContainer ? {} : diContainer.resolve(services[prop]));
3894
+ return serviceMap[prop];
3895
+ });
3896
+ });
3897
+ }
3898
+ /**
3899
+ * Decorates a property to inject a service with the help of the injectServices mongoose/typegoose plugin
3900
+ * @param token optional InjectionToken to use
3901
+ * @return PropertyDecorator
3902
+ */
3903
+ function service(token) {
3904
+ return (target, propertyKey) => {
3905
+ var _a;
3906
+ const propertyType = Reflect.getOwnMetadata("design:type", target, propertyKey);
3907
+ const plugins = Array.from((_a = Reflect.getMetadata(pluginsKey, target.constructor)) !== null && _a !== void 0 ? _a : []);
3908
+ let plugin = plugins.find(t => t.mongoosePlugin === injectServices);
3909
+ if (!plugin) {
3910
+ plugin = { mongoosePlugin: injectServices, options: {} };
3911
+ plugins.push(plugin);
3912
+ }
3913
+ plugin.options = Object.assign(plugin.options || {}, { [propertyKey]: token !== null && token !== void 0 ? token : propertyType });
3914
+ Reflect.defineMetadata(pluginsKey, plugins, target.constructor);
3915
+ };
3916
+ }
3917
+ /**
3918
+ * Paginate using a typegoose model using a simple where query and pagination params
3919
+ * @param model Typegoose model
3920
+ * @param where Simple query to filter the results
3921
+ * @param params Pagination params
3922
+ */
3923
+ function paginate(model, where, params) {
3924
+ return model.countDocuments(where).then(count => {
3925
+ let query = model.find(where);
3926
+ if (isString(params.sort)) {
3927
+ query = query.sort(params.sort);
3928
+ }
3929
+ if (isArray(params.populate)) {
3930
+ params.populate.forEach(field => {
3931
+ query = query.populate(field);
3932
+ });
3933
+ }
3934
+ return (params.limit > 0 ? query.skip(params.page * params.limit).limit(params.limit) : query).then(items => {
3935
+ const meta = { total: count };
3936
+ return { count, items, meta };
3937
+ });
3938
+ });
3939
+ }
3940
+ function lookupStages(from, localField, as = null, foreignField = "_id", shouldUnwind = true) {
3941
+ as = as || localField.replace("Id", "");
3942
+ const stages = [
3943
+ {
3944
+ $lookup: {
3945
+ from,
3946
+ localField,
3947
+ foreignField,
3948
+ as
3949
+ }
3950
+ },
3951
+ {
3952
+ $unwind: {
3953
+ path: `$${as}`,
3954
+ preserveNullAndEmptyArrays: true
3955
+ }
3956
+ }
3957
+ ];
3958
+ if (!shouldUnwind) {
3959
+ stages.splice(1, 1);
3960
+ }
3961
+ return stages;
3962
+ }
3963
+ function letsLookupStage(from, pipeline, as = null, letFields = null) {
3964
+ as = as || from;
3965
+ letFields = letFields || { id: "$_id" };
3966
+ return {
3967
+ $lookup: {
3968
+ from,
3969
+ let: letFields,
3970
+ pipeline,
3971
+ as
3972
+ }
3973
+ };
3974
+ }
3975
+ function matchStage(match) {
3976
+ return { $match: match };
3977
+ }
3978
+ function matchField(field, filter, when) {
3979
+ return { field, filter, when };
3980
+ }
3981
+ function matchFieldStages(...fields) {
3982
+ const match = {};
3983
+ fields.forEach(field => {
3984
+ if (field.when) {
3985
+ match[field.field] = field.filter;
3986
+ }
3987
+ });
3988
+ return Object.keys(match).length > 0 ? [matchStage(match)] : [];
3989
+ }
3990
+ function projectStage(fields) {
3991
+ return { $project: fields };
3992
+ }
3993
+ function unwindStage(fieldOrOpts) {
3994
+ return { $unwind: fieldOrOpts };
3995
+ }
3996
+ function hydratePopulated(modelType, json) {
3997
+ let object = modelType.hydrate(json);
3998
+ for (const [path, obj] of Object.entries(modelType.schema.obj)) {
3999
+ let { ref, type } = obj;
4000
+ if (Array.isArray(type) && type.length > 0) {
4001
+ ref = type[0].ref;
4002
+ }
4003
+ if (!ref)
4004
+ continue;
4005
+ const value = getValue$1(path, json);
4006
+ const hydrateVal = val => {
4007
+ if (val == null || val instanceof Types.ObjectId)
4008
+ return val;
4009
+ return hydratePopulated(model(ref), val);
4010
+ };
4011
+ if (Array.isArray(value)) {
4012
+ setValue(path, value.map(hydrateVal), object);
4013
+ continue;
4014
+ }
4015
+ setValue(path, hydrateVal(value), object);
4016
+ }
4017
+ return object;
4018
+ }
4019
+ function paginateAggregations(model, aggregations, params, metaProjection = {}) {
4020
+ return __awaiter$1(this, void 0, void 0, function* () {
4021
+ const sortField = !isString(params.sort) || !params.sort ? null : (params.sort.startsWith("-") ? params.sort.substr(1) : params.sort);
4022
+ const sortAggregation = !sortField ? [] : [{
4023
+ $sort: { [sortField]: sortField == params.sort ? 1 : -1 }
4024
+ }];
4025
+ const result = yield model.aggregate([
4026
+ ...aggregations,
4027
+ ...sortAggregation,
4028
+ {
4029
+ $group: {
4030
+ _id: "results",
4031
+ result: { $push: "$$CURRENT" }
4032
+ }
4033
+ },
4034
+ {
4035
+ $project: {
4036
+ _id: 0,
4037
+ items: params.limit > 0 ? { $slice: ["$result", params.page * params.limit, params.limit] } : "$result",
4038
+ count: { $size: "$result" },
4039
+ meta: Object.assign({ total: { $size: "$result" } }, metaProjection)
4040
+ }
4041
+ }
4042
+ ]);
4043
+ const pagination = result[0];
4044
+ if (!pagination) {
4045
+ return { items: [], count: 0, meta: { total: 0 } };
4046
+ }
4047
+ pagination.items = pagination.items.map(i => hydratePopulated(model, i));
4048
+ return pagination;
4049
+ });
4050
+ }
4051
+ function ResolveEntity(model, extraCheck) {
4052
+ const modelName = model.modelName;
4053
+ const paramName = modelName.toLowerCase();
4054
+ return createParamDecorator({
4055
+ required: false,
4056
+ value: (action) => __awaiter$1(this, void 0, void 0, function* () {
4057
+ const req = action.request;
4058
+ const token = req.header(`x-${paramName}-token`);
4059
+ const id = req.params[`${paramName}Id`];
4060
+ if (!id && !token) {
4061
+ throw new BadRequestError(`${modelName} id or token should be defined!`);
4062
+ }
4063
+ const query = !token
4064
+ ? model.findById(id)
4065
+ : model.findOne({ token });
4066
+ let doc = null;
4067
+ if (isFunction(extraCheck)) {
4068
+ try {
4069
+ doc = yield valueToPromise(extraCheck(query, action));
4070
+ }
4071
+ catch (e) {
4072
+ throw new BadRequestError(`${modelName} check error: ${e.message || e}`);
4073
+ }
4074
+ }
4075
+ else {
4076
+ doc = yield query;
4077
+ }
4078
+ if (!doc) {
4079
+ throw new HttpError(404, !token
4080
+ ? `${modelName} could not be found with id: ${id}`
4081
+ : `${modelName} could not be found with token: ${token}`);
4082
+ }
4083
+ action.request[paramName] = doc;
4084
+ return doc;
4085
+ })
4086
+ });
4087
+ }
4088
+
3973
4089
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3974
4090
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3975
4091
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -4231,5 +4347,5 @@ function setupBackend(config, providers, parent) {
4231
4347
  * Generated bundle index. Do not edit.
4232
4348
  */
4233
4349
 
4234
- export { AssetProcessor, AssetResolver, Assets, AuthController, BackendProvider, Cache, CacheProcessor, Configuration, ConsoleColor, 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, colorize, 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, isObjectId, isPrimitive, isString, isType, jsonHighlight, lastItem, lcFirst, letsLookupStage, lookupStages, matchField, matchFieldStages, matchStage, md5, mkdirRecursive, multiSubscription, observableFromFunction, padLeft, padRight, paginate, paginateAggregations, projectStage, promiseTimeout, proxyFunction, proxyFunctions, rand, random, readAndDeleteFile, readFile, regroup, replaceSpecialChars, runCommand, setupBackend, streamToBuffer, toImage, ucFirst, uniqueItems, unwindStage, valueToPromise, writeFile };
4350
+ export { AssetImageParams, AssetProcessor, AssetResolver, Assets, AuthController, BackendProvider, BaseDoc, Cache, CacheProcessor, Configuration, ConsoleColor, DI_CONTAINER, DocumentArray, EXPRESS, EndpointProvider, ErrorHandlerMiddleware, FIXTURE, Fixtures, Gallery, GalleryCache, GalleryController, HTTP_SERVER, IdGenerator, IsFile, IsObjectId, JOB, JobManager, LanguageMiddleware, LazyAssetGenerator, LazyAssets, MailSender, MemoryCache, MongoConnector, PARAMETER, Parameter, PrimitiveArray, Progresses, ResolveEntity, SOCKET_SERVER, TemplateRenderer, TranslationProvider, Translator, Type, UserManager, assign, broadcast, bufferToStream, colorize, 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, isObjectId, isPrimitive, isString, isType, jsonHighlight, lastItem, lcFirst, letsLookupStage, lookupStages, matchField, matchFieldStages, matchStage, md5, mkdirRecursive, multiSubscription, observableFromFunction, padLeft, padRight, paginate, paginateAggregations, projectStage, promiseTimeout, rand, random, readAndDeleteFile, readFile, regroup, replaceSpecialChars, runCommand, service, setupBackend, streamToBuffer, toImage, ucFirst, uniqueItems, unwindStage, valueToPromise, writeFile };
4235
4351
  //# sourceMappingURL=stemy-backend.js.map