@stemy/backend 2.8.5 → 2.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("path"),require("body-parser"),require("jsonwebtoken"),require("tsyringe"),require("routing-controllers"),require("socket-controllers"),require("routing-controllers-openapi"),require("class-transformer/storage"),require("class-validator"),require("class-validator-jsonschema"),require("child_process"),require("crypto"),require("rxjs"),require("rxjs/internal/util/canReportError"),require("fs"),require("mongoose"),require("mongoose/lib/utils"),require("stream"),require("bson"),require("fontkit"),require("file-type"),require("sharp"),require("axios"),require("mongodb"),require("dotenv"),require("node-resque"),require("node-cron"),require("ioredis"),require("socket.io-client"),require("http"),require("express"),require("socket.io"),require("uuid"),require("nodemailer"),require("handlebars"),require("bcrypt"),require("moment")):"function"==typeof define&&define.amd?define("@stemy/backend",["exports","path","body-parser","jsonwebtoken","tsyringe","routing-controllers","socket-controllers","routing-controllers-openapi","class-transformer/storage","class-validator","class-validator-jsonschema","child_process","crypto","rxjs","rxjs/internal/util/canReportError","fs","mongoose","mongoose/lib/utils","stream","bson","fontkit","file-type","sharp","axios","mongodb","dotenv","node-resque","node-cron","ioredis","socket.io-client","http","express","socket.io","uuid","nodemailer","handlebars","bcrypt","moment"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).stemy=e.stemy||{},e.stemy.backend={}),e.path,e["body-parser"],e.jsonwebtoken,e.tsyringe,e["routing-controllers"],e["socket-controllers"],e["routing-controllers-openapi"],e["class-transformer/storage"],e["class-validator"],e["class-validator-jsonschema"],e.child_process,e.crypto,e.rxjs,e.rxjs["internal/util/canReportError"],e.fs,e.mongoose,e["mongoose-lib-utils"],e.stream,e.bson,e.fontkit,e["file-type"],e.sharp,e.axios,e.mongodb,e.dotenv,e["node-resque"],e["node-cron"],e.ioredis,e.socket["io-client"],e.http,e.express,e.socket.io,e.uuid,e.nodemailer,e.handlebars,e.bcrypt,e.moment)}(this,(function(e,t,n,r,o,i,s,a,c,u,l,f,h,d,p,y,v,g,m,b,w,j,P,O,_,R,x,C,S,k,M,A,I,T,E,F,D,N){"use strict";function q(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function z(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var B=q(w),L=q(P),H=q(O),J=q(R),U=q(S),G=q(k),V=q(A),$=q(I),Y=z(F),W=q(N),X=function(e,t){return(X=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function Q(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}X(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function K(e,t){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,r=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}Object.create;function Z(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function ee(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return s}function te(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(ee(arguments[t]));return e}Object.create;var ne=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},re={appContainer:null};function oe(e){return null==e||void 0===e}function ie(e){return!oe(e)}function se(e){var t=new RegExp("\\s([a-zA-Z]+)");return Object.prototype.toString.call(e).match(t)[1].toLowerCase()}function ae(e){return"object"==se(e)}function ce(e){return Array.isArray(e)}function ue(e){return"boolean"==typeof e}function le(e){return!!e&&e[Symbol.toPrimitive]&&!isNaN(e)&&void 0!==e.getDate}function fe(e){var t=typeof e;return null==e||"object"!==t&&"function"!==t}function he(e){return"string"==typeof e}function de(e){return"function"==typeof e}function pe(e){return(e&&"function"==typeof e&&e.prototype&&e.prototype.constructor)===e&&"Object"!==e.name}function ye(e){return pe(e)}function ve(e,t){var n,r;if(!e||"object"!=typeof e||ce(e)||!ae(t))return!1;var o=Object.keys(t);try{for(var i=Z(o),s=i.next();!s.done;s=i.next()){var a=s.value,c=t[a]||"";if(c.startsWith("*")){if(c=c.substr(1),e.hasOwnProperty(a)&&se(e[a])!==c)return!1}else if(!e.hasOwnProperty(a)||se(e[a])!==c)return!1}}catch(e){n={error:e}}finally{try{s&&!s.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return!0}function ge(e){return e?e[0].toLowerCase()+e.substr(1):""}function me(e,t,n,r){void 0===r&&(r=!1);var o=(t=t||"").split("."),i="";do{i+=o.shift(),!ie(e)||!ie(e[i])||"object"!=typeof e[i]&&o.length?o.length?i+=".":(n=void 0===n?t.replace(new RegExp(i+"$"),"{"+i+"}"):n,e=r&&e||n):(e=e[i],i="")}while(o.length);return e}function be(e,t){switch(t){case"boolean":return"no"!=(e="string"==typeof e?e.toLowerCase():e)&&"false"!=e&&"0"!=e&&!!e;case"number":var n=parseFloat(e);return isNaN(n)?0:n;case"array":try{return JSON.parse(e)}catch(t){return(""+e).split(", ")}}return e}function we(e,t){var n={};Object.keys(t).forEach((function(r){e.virtual(r).get((function(){var e=re.appContainer;return n[r]=n[r]||(e?e.resolve(t[r]):{}),n[r]}))}))}function je(e,t){var n,r,o=e.hydrate(t),i=function(e,n){var r=n.ref,i=n.type;if(Array.isArray(i)&&i.length>0&&(r=i[0].ref),!r)return"continue";var s=g.getValue(e,t),a=function(e){return null==e||e instanceof v.Types.ObjectId?e:je(v.model(r),e)};if(Array.isArray(s))return g.setValue(e,s.map(a),o),"continue";g.setValue(e,a(s),o)};try{for(var s=Z(Object.entries(e.schema.obj)),a=s.next();!a.done;a=s.next()){var c=ee(a.value,2);i(c[0],c[1])}}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}return o}function Pe(e){var t=new m.PassThrough;return t.end(e),t}function Oe(e){return new Promise((function(t,n){var r=[];e.on("data",(function(e){r.push(e)})),e.on("error",n),e.on("end",(function(){return t(Buffer.concat(r))}))}))}var _e=function(e){function t(t,n){var r=e.call(this,n)||this;return null==t||t.on("data",(function(e){r.push(e)})),null==t||t.on("end",(function(){r.push(null)})),null==t||t.on("error",(function(e){r.emit("error",e)})),r}return Q(t,e),t.prototype._read=function(e){},t}(m.Readable);function Re(e,t){return new _e(e,t)}function xe(e,t){return void 0===t&&(t=null),new Promise((function(n,r){y.mkdir(e,{mode:t||511,recursive:!0},(function(e){e?r(e):n()}))}))}function Ce(e){return new Promise((function(t,n){y.readFile(e,(function(e,r){e?n(e):t(r)}))}))}function Se(e){return e instanceof Promise?e:Promise.resolve(e)}function ke(e){return void 0===e&&(e=1e3),new Promise((function(t){setTimeout((function(){t()}),e)}))}function Me(e){return e.prototype.constructor.name}function Ae(e){var t=e.toString().replace(/\/\*[\s\S]*?\*\//g,"").replace(/\/\/(.)*/g,"").replace(/{[\s\S]*}/,"").replace(/=>/g,"").trim(),n=t.indexOf("(")+1,r=t.length-1,o=t.substring(n,r).split(", "),i=[];return o.forEach((function(e){(e=e.replace(/=[\s\S]*/g,"").trim()).length>0&&i.push(e)})),i}function Ie(e){return function(){var t=Array.from(arguments);return t.unshift(this),this.helper[e].apply(this.helper,t)}}function Te(e){return Array.isArray(e)?e.map(Te):e instanceof b.ObjectId?e.toHexString():null}function Ee(e,t){Array.from(Object.values(e.sockets.sockets)).forEach(t)}function Fe(e,t){return Math.round(De(e,t))}function De(e,t){return e+Math.random()*(t-e)}function Ne(e,t){return new Promise((function(n,r){e.delete(t,(function(e){var o=e;!e||he(o=e.message||e||"")&&o.startsWith("FileNotFound")?n(t.toHexString()):r(o)}))}))}var qe=function(){return!0};function ze(e,t,n){var r,o;if(n=n||qe,fe(t)||le(t)||de(t))return t;if(ce(t))return e=ce(e)?Array.from(e):[],t.forEach((function(r,o){n(r,o,e,t)&&(e.length>o?e[o]=ze(e[o],r,n):e.push(ze(null,r,n)))})),e;var i=de(t.__shouldCopy)?t.__shouldCopy:function(){return!0};if(pe(t.constructor)){if(!1===t.__shouldCopy)return t;if(!e)try{e=new t.constructor}catch(n){var s=t.constructor.prototype||t.prototype;e=Object.create(s)}}else e=Object.assign({},e||{});if(e instanceof Map){if(t instanceof Map)try{for(var a=Z(t.entries()),c=a.next();!c.done;c=a.next()){var u=ee(c.value,2),l=u[0],f=u[1];n(f,l,e,t)&&e.set(l,i(l,f)?ze(e.get(l),f,n):f)}}catch(e){r={error:e}}finally{try{c&&!c.done&&(o=a.return)&&o.call(a)}finally{if(r)throw r.error}}return e}var h=Object.keys(t);e=h.reduce((function(e,r){return n(t[r],r,e,t)?(e[r]=i(r,t[r])?ze(e[r],t[r],n):t[r],e):e}),e);var d=Object.getOwnPropertyDescriptors(t);return(h=Object.keys(d).filter((function(e){return h.indexOf(e)<0}))).forEach((function(t){Object.defineProperty(e,t,d[t])})),e}var Be=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};function Le(e,t){if(e)return Array.isArray(t)&&t.every((function(e){try{return new b.ObjectId(e)instanceof b.ObjectId}catch(e){return!1}}));if(null===t)return!0;try{return new b.ObjectId(t)instanceof b.ObjectId}catch(e){return!1}}e.IsFile=function(){function e(){}return e.prototype.validate=function(e,t){return Le(ee(t.constraints||[],1)[0],e)},e}(),e.IsFile=Be([u.ValidatorConstraint()],e.IsFile),e.IsObjectId=function(){function e(){}return e.prototype.validate=function(e,t){var n=ee(t.constraints||[],2);n[0];return Le(n[1],e)},e}(),e.IsObjectId=Be([u.ValidatorConstraint()],e.IsObjectId);var He=null;var Je,Ue=Function,Ge=Symbol.for("fixture-token"),Ve=Symbol.for("job-token"),$e=Symbol.for("express-token"),Ye=Symbol.for("http-server-token"),We=Symbol.for("socket-server-token"),Xe=Symbol.for("parameter-token"),Qe=Symbol.for("di-container-token"),Ke=function(e,t,n){void 0===n&&(n=null),this.name=e,this.defaultValue=t,this.resolver=n},Ze=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},et=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},tt=L.default,nt=B.default,rt=["application/font-woff","application/font-woff2","application/x-font-opentype","application/x-font-truetype","application/x-font-datafork","font/woff","font/woff2","font/otf","font/ttf","font/datafork"],ot=["image/jpeg","image/jpg","image/png"],it=["postscriptName","fullName","familyName","subfamilyName","copyright","version","unitsPerEm","ascent","descent","lineGap","underlinePosition","underlineThickness","italicAngle","capHeight","xHeight","numGlyphs","characterSet","availableFeatures"];e.AssetProcessor=Je=function(){function e(){}return e.getMimeType=function(e,t){return et(this,void 0,void 0,(function(){var n;return K(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,j.fromBuffer(e)];case 1:return t=r.sent().mime,[3,3];case 2:if(n=r.sent(),!t)throw"Can't determine mime type";return console.log("Can't determine mime type",n),[3,3];case 3:return[2,t]}}))}))},e.extractFontFormat=function(e){var t=e.constructor.name,n=e.directory.tag;switch(t){case"TTFFont":return"OTTO"===n?"opentype":"truetype";case"WOFF2Font":return"woff2";case"WOFFFont":return"woff";case"DFont":return"datafork"}return null},e.isImage=function(e){return ot.indexOf(e)>=0},e.copyImageMeta=function(e,t){return et(this,void 0,void 0,(function(){var n;return K(this,(function(r){switch(r.label){case 0:return[4,tt(e).rotate().toBuffer({resolveWithObject:!0})];case 1:return n=r.sent(),Object.assign(t,n.info),[2,n.data]}}))}))},e.isFont=function(e){return rt.indexOf(e)>=0},e.copyFontMeta=function(e,t){var n=nt.create(e);t.format=Je.extractFontFormat(n),it.forEach((function(e){t[e]=n[e]}))},e.prototype.process=function(e,t,n){return et(this,void 0,void 0,(function(){return K(this,(function(r){switch(r.label){case 0:return Je.isImage(n)?[4,Je.copyImageMeta(e,t)]:[3,2];case 1:e=r.sent(),r.label=2;case 2:return Je.isFont(n)&&Je.copyFontMeta(e,t),[2,e]}}))}))},e}(),e.AssetProcessor=Je=Ze([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped)],e.AssetProcessor);var st=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},at=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},ct=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}};e.Configuration=function(){function e(e){var t=this;J.default.config(),this.paramMap={},(e||[]).forEach((function(e){return t.add(e)}))}return e.prototype.add=function(e){var t=this.paramMap[e.name]||e;t.defaultValue=e.defaultValue,t.resolver=e.resolver||t.resolver,this.paramMap[e.name]=t},e.prototype.hasParam=function(e){return!!this.paramMap[e]},e.prototype.resolve=function(e){var t=this.paramMap[e];if(!t)throw new Error("Parameter with name: '"+e+"' does not exists in configuration");var n=t.name.replace(/\.?([A-Z|0-9]+)/g,(function(e,t){return"_"+t.toLowerCase()})).replace(/\./gi,"_").replace(/^_/,"").toUpperCase(),r=process.env[n];if(void 0!==r){var o=de(t.resolver)?t.resolver(r):be(r,se(t.defaultValue));return console.log("Processing param value",e,n,r,o),o}return t.defaultValue},e}(),e.Configuration=st([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),ct(0,o.injectAll(Xe)),at("design:paramtypes",[Array])],e.Configuration);var ut=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},lt=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},ft=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.MongoConnector=function(){function e(e){this.configuration=e,this.conn=null,this.db=null,this.fsBucket=null}return Object.defineProperty(e.prototype,"connection",{get:function(){return this.conn},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"database",{get:function(){return this.db},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"bucket",{get:function(){return this.fsBucket},enumerable:!1,configurable:!0}),e.prototype.connect=function(){return ft(this,void 0,void 0,(function(){var e;return K(this,(function(t){switch(t.label){case 0:return this.db?[2,this.db]:(e=this,[4,v.connect(this.configuration.resolve("mongoUri"),{dbName:this.configuration.resolve("mongoDb"),user:this.configuration.resolve("mongoUser"),pass:this.configuration.resolve("mongoPassword"),useNewUrlParser:!0,useUnifiedTopology:!0})]);case 1:return e.conn=t.sent().connection,this.db=this.conn.db,this.fsBucket=new _.GridFSBucket(this.db,{bucketName:"assets"}),[2]}}))}))},e}(),e.MongoConnector=ut([o.injectable(),o.singleton(),lt("design:paramtypes",[e.Configuration])],e.MongoConnector);var ht=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},dt=function(){function e(e,t,n){this.mId=e,this.data=t,this.collection=n}return Object.defineProperty(e.prototype,"id",{get:function(){return this.mId.toHexString()},enumerable:!1,configurable:!0}),e.prototype.save=function(){return this.collection.updateOne({_id:this.mId},{$set:this.toJSON()})},e.prototype.load=function(){return ht(this,void 0,void 0,(function(){var e;return K(this,(function(t){switch(t.label){case 0:return[4,this.collection.findOne({_id:this.mId})];case 1:return e=t.sent(),this.deleted=!e,this.data=e||{},[2,this]}}))}))},e.prototype.toJSON=function(){var e=Object.assign({},this.data);return delete e._id,e.id=this.id,e},e}(),pt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},yt=L.default,vt={x:"number",y:"number",w:"number",h:"number"},gt=function(e){function t(t,n,r,o){var i=e.call(this,t,n,r)||this;return i.bucket=o,i}return Q(t,e),t.toCropRegion=function(e){var t=e;if(he(e))try{t=JSON.parse(e)}catch(e){return null}return ve(t,vt)?{width:Math.round(t.w),height:Math.round(t.h),top:Math.round(t.y),left:Math.round(t.x)}:null},t.toImage=function(e,n,r){return pt(this,void 0,void 0,(function(){var o,i,s,a,c,u,l,f;return K(this,(function(h){switch(h.label){case 0:return r=r||{},o=t.toCropRegion(n.crop),0!=Object.keys(r).length||o?(r.rotation=isNaN(r.rotation)?0:90*Math.round(r.rotation/90),r.canvasScaleX=isNaN(r.canvasScaleX)?1:Number(r.canvasScaleX),r.canvasScaleY=isNaN(r.canvasScaleY)?1:Number(r.canvasScaleY),r.scaleX=isNaN(r.scaleX)?1:Number(r.scaleX),r.scaleY=isNaN(r.scaleY)?1:Number(r.scaleY),r.crop=ue(r.crop)?r.crop:"true"==r.crop,[4,Oe(e)]):[2,e];case 1:i=h.sent(),h.label=2;case 2:return h.trys.push([2,16,,17]),s=t.toCropRegion(r.cropBefore||(r.crop?n.cropBefore:null)),a=t.toCropRegion(r.cropAfter||(r.crop?n.cropAfter:null)),[4,yt(i).metadata()];case 3:return c=h.sent(),u=c.width,l=c.height,s?[4,yt(i).extract(s).toBuffer()]:[3,5];case 4:return i=h.sent(),u=s.width,l=s.height,[3,7];case 5:return o?[4,yt(i).extract(o).toBuffer()]:[3,7];case 6:i=h.sent(),u=o.width,l=o.height,h.label=7;case 7:return 1===r.canvasScaleX&&1===r.canvasScaleY?[3,9]:(u=Math.round(u*r.canvasScaleX),l=Math.round(l*r.canvasScaleY),[4,yt(i).resize({width:u,height:l,background:"#00000000",fit:"contain"}).toBuffer()]);case 8:i=h.sent(),h.label=9;case 9:return 1===r.scaleX&&1===r.scaleY?[3,11]:(u=Math.round(u*r.scaleX),l=Math.round(l*r.scaleY),[4,yt(i).resize({width:u,height:l,background:"#00000000",fit:"fill"}).toBuffer()]);case 10:i=h.sent(),h.label=11;case 11:return a?[4,yt(i).extract(a).toBuffer()]:[3,13];case 12:i=h.sent(),h.label=13;case 13:return 0===r.rotation?[3,15]:[4,yt(i).rotate(r.rotation).toBuffer()];case 14:i=h.sent(),h.label=15;case 15:return[2,Pe(i)];case 16:return f=h.sent(),console.log("Asset image conversion error",f),[2,Pe(i)];case 17:return[2]}}))}))},Object.defineProperty(t.prototype,"filename",{get:function(){return this.data.filename},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentType",{get:function(){return this.data.contentType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"metadata",{get:function(){return this.data.metadata},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"stream",{get:function(){return this.bucket.openDownloadStream(this.mId)},enumerable:!1,configurable:!0}),t.prototype.unlink=function(){return pt(this,void 0,void 0,(function(){return K(this,(function(e){return[2,Ne(this.bucket,this.mId)]}))}))},t.prototype.getBuffer=function(){return Oe(this.stream)},t.prototype.download=function(e){return pt(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return(e=Object.assign(this.metadata,e||{})).downloadCount=isNaN(e.downloadCount)||!e.firstDownload?1:e.downloadCount+1,e.firstDownload=e.firstDownload||new Date,e.lastDownload=new Date,[4,this.collection.updateOne({_id:this.mId},{$set:{metadata:e}})];case 1:return t.sent(),[2,this.stream]}}))}))},t.prototype.getImage=function(e){return void 0===e&&(e=null),pt(this,void 0,void 0,(function(){return K(this,(function(n){return[2,t.toImage(this.stream,this.metadata,e)]}))}))},t.prototype.downloadImage=function(e,n){return pt(this,void 0,void 0,(function(){var r,o;return K(this,(function(i){switch(i.label){case 0:return o=(r=t).toImage,[4,this.download(n)];case 1:return[2,o.apply(r,[i.sent(),this.metadata,e])]}}))}))},t}(dt),mt=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},bt=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},wt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.Assets=function(){function t(e,t){var n;this.connector=e,this.assetProcessor=t,this.bucket=e.bucket,this.collection=null===(n=e.database)||void 0===n?void 0:n.collection("assets.files")}return t.prototype.write=function(e,t,n){return void 0===t&&(t=null),void 0===n&&(n=null),wt(this,void 0,void 0,(function(){var r,o,i,s,a,c=this;return K(this,(function(u){switch(u.label){case 0:r=null,o=Re(e),i=Re(e),u.label=1;case 1:return u.trys.push([1,3,,4]),[4,j.fromStream(o)];case 2:return s=u.sent(),t=s.mime,r=s.ext,[3,4];case 3:if(a=u.sent(),!t)throw"Can't determine content type";return console.log("Can't determine content type",a),[3,4];case 4:return t=t.trim(),r=(r||"").trim(),(n=Object.assign({extension:r,downloadCount:0,firstDownload:null,lastDownload:null},n||{})).filename=n.filename||(new b.ObjectId).toHexString(),[2,new Promise((function(e,r){var o=c.bucket.openUploadStream(n.filename);i.pipe(o).on("error",(function(e){r(e.message||e)})).on("finish",(function(){var i=new gt(o.id,{filename:n.filename,contentType:t,metadata:n},c.collection,c.bucket);i.save().then((function(){e(i)}),(function(e){r(e.message||e)}))}))}))]}}))}))},t.prototype.writeBuffer=function(t,n,r){return void 0===n&&(n=null),void 0===r&&(r=null),wt(this,void 0,void 0,(function(){return K(this,(function(o){switch(o.label){case 0:return[4,e.AssetProcessor.getMimeType(t,r)];case 1:return r=o.sent(),n=n||{},[4,this.assetProcessor.process(t,n,r)];case 2:return t=o.sent(),[2,this.write(Pe(t),r,n)]}}))}))},t.prototype.writeUrl=function(e,t){return void 0===t&&(t=null),wt(this,void 0,void 0,(function(){var n;return K(this,(function(r){switch(r.label){case 0:return[4,H.default({url:e,responseType:"arraybuffer"})];case 1:return n=r.sent().data,[2,this.writeBuffer(n,t)]}}))}))},t.prototype.read=function(e){return wt(this,void 0,void 0,(function(){return K(this,(function(t){return[2,e?this.find({_id:new b.ObjectId(e)}):null]}))}))},t.prototype.find=function(e){return wt(this,void 0,void 0,(function(){var t;return K(this,(function(n){switch(n.label){case 0:return[4,this.collection.findOne(e)];case 1:return[2,(t=n.sent())?new gt(t._id,t,this.collection,this.bucket):null]}}))}))},t.prototype.findMany=function(e){return wt(this,void 0,void 0,(function(){var t,n,r,o,i,s,a;return K(this,(function(c){switch(c.label){case 0:return[4,this.collection.find(e).toArray()];case 1:t=c.sent()||[],n=[];try{for(r=Z(t),o=r.next();!o.done;o=r.next())(i=o.value)&&n.push(new gt(i._id,i,this.collection,this.bucket))}catch(e){s={error:e}}finally{try{o&&!o.done&&(a=r.return)&&a.call(r)}finally{if(s)throw s.error}}return[2,n]}}))}))},t.prototype.unlink=function(e){return wt(this,void 0,void 0,(function(){var t;return K(this,(function(n){switch(n.label){case 0:return[4,this.read(e)];case 1:return(t=n.sent())?[2,t.unlink()]:[2,null]}}))}))},t}(),e.Assets=mt([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),bt("design:paramtypes",[e.MongoConnector,e.AssetProcessor])],e.Assets);var jt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},Pt=function(e){function t(t,n,r,o,i,s){var a=e.call(this,t,n,r)||this;return a.assets=o,a.progresses=i,a.jobMan=s,a}return Q(t,e),Object.defineProperty(t.prototype,"jobName",{get:function(){return this.data.jobName},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"jobParams",{get:function(){return this.data.jobParams},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"jobQue",{get:function(){return this.data.jobQue},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"progressId",{get:function(){return this.data.progressId},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"assetId",{get:function(){return this.data.assetId},enumerable:!1,configurable:!0}),t.prototype.unlink=function(){return jt(this,void 0,void 0,(function(){return K(this,(function(e){switch(e.label){case 0:return[4,this.load()];case 1:return e.sent(),this.progressId?[3,3]:[4,this.collection.deleteOne({_id:this.mId})];case 2:e.sent(),e.label=3;case 3:return[2,Ne(this.assets.bucket,new b.ObjectId(this.assetId))]}}))}))},t.prototype.startWorking=function(){var e=this;this.load().then((function(){e.deleted||(e.progresses.get(e.progressId).then((function(e){null==e||e.cancel()})),e.startWorkingOnAsset().then((function(){console.log("Started working on lazy asset: "+e.id)})).catch((function(t){console.log("Can't start working on lazy asset: "+e.id+"\nReason: "+t)})))}))},t.prototype.loadAsset=function(){return jt(this,void 0,void 0,(function(){return K(this,(function(e){switch(e.label){case 0:return[4,this.load()];case 1:return e.sent(),this.deleted?[2,null]:this.assetId?[2,this.assets.read(this.assetId)]:this.progressId?[4,this.progresses.waitToFinish(this.progressId)]:[3,3];case 2:return e.sent(),[2,this.loadAsset()];case 3:return[4,this.startWorkingOnAsset()];case 4:return e.sent(),[2,this.loadAsset()]}}))}))},t.prototype.writeAsset=function(e){return jt(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return this.data.assetId=e.id,[4,this.save()];case 1:return t.sent(),[2,e]}}))}))},t.prototype.startWorkingOnAsset=function(){return jt(this,void 0,void 0,(function(){var e;return K(this,(function(t){switch(t.label){case 0:return e=this.data,[4,this.progresses.create()];case 1:return e.progressId=t.sent().id,this.data.assetId=null,[4,this.save()];case 2:return t.sent(),[4,this.jobMan.enqueueWithName(this.data.jobName,Object.assign(Object.assign({},this.data.jobParams),{lazyId:this.id}))];case 3:return t.sent(),[2]}}))}))},t}(dt),Ot=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},_t=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Rt=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}},xt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},Ct=U.default;e.JobManager=function(){function e(e,t,n){var r=this;this.config=e,this.container=t,this.jobTypes=n||[],this.jobs=this.jobTypes.reduce((function(e,t){return e[Me(t)]={perform:r.toPerformFunction(t)},e}),{})}return e.prototype.process=function(e,t){return void 0===t&&(t={}),xt(this,void 0,void 0,(function(){var n;return K(this,(function(r){n=null;try{n=this.resolveJobInstance(e,t)}catch(n){throw"Can't resolve params for job: "+Me(e)+", with params: "+JSON.stringify(t)+". Reason: "+n}return[2,n.process()]}))}))},e.prototype.enqueueWithName=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n="main"),xt(this,void 0,void 0,(function(){var r;return K(this,(function(o){switch(o.label){case 0:return[4,this.tryResolveFromName(e,t)];case 1:return r=o.sent(),[4,this.queue.enqueue(n,r,[t])];case 2:return o.sent(),[2]}}))}))},e.prototype.enqueue=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n="main"),xt(this,void 0,void 0,(function(){var r;return K(this,(function(o){switch(o.label){case 0:return[4,this.tryResolveAndConnect(e,t)];case 1:return r=o.sent(),[4,this.queue.enqueue(n,r,[t])];case 2:return o.sent(),[2]}}))}))},e.prototype.enqueueAt=function(e,t,n,r){return void 0===n&&(n={}),void 0===r&&(r="main"),xt(this,void 0,void 0,(function(){var o;return K(this,(function(i){switch(i.label){case 0:return[4,this.tryResolveAndConnect(t,n)];case 1:return o=i.sent(),[4,this.queue.enqueueAt(e,r,o,[n])];case 2:return i.sent(),[2]}}))}))},e.prototype.enqueueIn=function(e,t,n,r){return void 0===n&&(n={}),void 0===r&&(r="main"),xt(this,void 0,void 0,(function(){var o;return K(this,(function(i){switch(i.label){case 0:return[4,this.tryResolveAndConnect(t,n)];case 1:return o=i.sent(),[4,this.queue.enqueueIn(e,r,o,[n])];case 2:return i.sent(),[2]}}))}))},e.prototype.schedule=function(e,t,n,r,o,i,s,a){var c=this;void 0===s&&(s={}),void 0===a&&(a="main");var u=[e,t,n,r,o].map((function(e){if(ae(e)){var t=e;return(t.min||0)+"-"+(t.max||0)}return ce(e)?e.join(","):""+e})).join(" "),l=Me(i);return C.validate(u)?C.schedule(u,(function(){c.enqueue(i,s,a).catch((function(e){console.log("Can't enqueue job: '"+l+"' because: "+e)}))})):(console.log("Can't schedule the task: '"+l+"' because time expression is invalid."),null)},e.prototype.startProcessing=function(){return xt(this,void 0,void 0,(function(){return K(this,(function(e){switch(e.label){case 0:return this.initialize(),[4,this.worker.connect()];case 1:return e.sent(),[4,this.worker.start()];case 2:return e.sent(),[4,this.scheduler.connect()];case 3:return e.sent(),[4,this.scheduler.start()];case 4:return e.sent(),[2]}}))}))},e.prototype.tryResolve=function(e,t){var n=Me(e);if(!this.jobs[n])throw"Can't find job with name: "+n+" so it can't be enqueued!";try{this.resolveJobInstance(e,t)}catch(e){throw"Can't resolve params for job: "+n+", with params: "+JSON.stringify(t)+". Reason: "+e}return n},e.prototype.initialize=function(){if(!this.queue){var e=this.config,t={password:e.resolve("redisPassword")},n=e.resolve("redisSentinels"),r=n?new Ct({sentinels:n,name:e.resolve("redisCluster")}):null,o={pkg:"ioredis",host:e.resolve("redisHost"),password:t.password,port:e.resolve("redisPort"),namespace:e.resolve("redisNamespace"),redis:r,options:t},i=e.resolve("workQueues");this.queue=new x.Queue({connection:o},this.jobs),this.worker=new x.Worker({connection:o,queues:i},this.jobs),this.worker.on("job",(function(e,t){console.log("working job "+e+" "+JSON.stringify(t))})),this.worker.on("reEnqueue",(function(e,t,n){console.log("reEnqueue job ("+n+") "+e+" "+JSON.stringify(t))})),this.worker.on("success",(function(e,t,n,r){console.log("job success "+e+" "+JSON.stringify(t)+" >> "+n+" ("+r+"ms)")})),this.worker.on("failure",(function(e,t,n,r){console.log("job failure "+e+" "+JSON.stringify(t)+" >> "+n+" ("+r+"ms)")})),this.worker.on("error",(function(e,t,n){console.log("error "+t+" "+JSON.stringify(n)+" >> "+e)})),this.scheduler=new x.Scheduler({connection:o},this.jobs)}},e.prototype.tryResolveFromName=function(e,t){var n=this.jobTypes.find((function(t){return Me(t)==e}));if(!n)throw"Can't find job type with name: "+e+" so it can't be enqueued!";return this.tryResolveAndConnect(n,t)},e.prototype.tryResolveAndConnect=function(e,t){return xt(this,void 0,void 0,(function(){var n;return K(this,(function(r){switch(r.label){case 0:return this.initialize(),n=this.tryResolve(e,t),[4,this.queue.connect()];case 1:return r.sent(),[2,n]}}))}))},e.prototype.resolveJobInstance=function(e,t){var n=this.container.createChildContainer();return Object.keys(t).map((function(e){n.register(e,{useValue:t[e]})})),n.register(e,e),n.resolve(e)},e.prototype.toPerformFunction=function(e){var t=this;return function(n){return t.resolveJobInstance(e,n).process()}},e}(),e.JobManager=Ot([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),Rt(1,o.inject(Qe)),Rt(2,o.injectAll(Ve)),_t("design:paramtypes",[e.Configuration,Object,Array])],e.JobManager);var St=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},kt=function(e){function t(t,n,r,o){var i=e.call(this,t,n,r)||this;return i.client=o,i}return Q(t,e),Object.defineProperty(t.prototype,"current",{get:function(){return this.data.current},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"max",{get:function(){return this.data.max},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"message",{get:function(){return this.data.message},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"error",{get:function(){return this.data.error},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"canceled",{get:function(){return this.data.canceled},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"percent",{get:function(){return this.max>0?Math.round(this.current/this.max*100):0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"remaining",{get:function(){return this.max>0?this.max-this.current:0},enumerable:!1,configurable:!0}),t.prototype.createSubProgress=function(e,t,n){return St(this,void 0,void 0,(function(){return K(this,(function(r){switch(r.label){case 0:return t<=0&&e>0?[4,this.advance(e)]:[3,2];case 1:r.sent(),r.label=2;case 2:return null===n?[3,4]:(this.data.message=n,[4,this.save()]);case 3:r.sent(),r.label=4;case 4:return[2,new Mt(this,this.current,e,Math.max(t,1))]}}))}))},t.prototype.setMax=function(e){return St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:if(isNaN(e)||e<=0)throw"Max progress value must be bigger than zero";return this.data.max=e,[4,this.save()];case 1:return t.sent(),[2]}}))}))},t.prototype.setMessage=function(e){return St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return this.data.message=e,[4,this.save()];case 1:return t.sent(),[2]}}))}))},t.prototype.setError=function(e){return St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return this.data.error=e,[4,this.save()];case 1:return t.sent(),[2]}}))}))},t.prototype.advance=function(e){return void 0===e&&(e=1),St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:if(isNaN(e)||e<=0)throw"Advance value must be bigger than zero";return[4,this.load()];case 1:return t.sent(),this.deleted||this.canceled?[2,null]:(this.data.current=Math.min(this.max,this.current+e),[4,this.save()]);case 2:return t.sent(),this.client?(this.client.emit("background-progress",this.id),[2]):[2]}}))}))},t.prototype.cancel=function(){return St(this,void 0,void 0,(function(){return K(this,(function(e){switch(e.label){case 0:return this.data.canceled=!0,[4,this.save()];case 1:return e.sent(),[2]}}))}))},t}(dt),Mt=function(){function e(e,t,n,r){if(void 0===r&&(r=100),this.parent=e,this.progressFrom=t,this.progressValue=n,this.mMax=r,t<0)throw"Progress from must be bigger than or zero";if(n<=0)throw"Progress value must be bigger than zero";this.mCurrent=0}return Object.defineProperty(e.prototype,"id",{get:function(){return this.parent.id},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"current",{get:function(){return this.mCurrent},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"max",{get:function(){return this.mMax},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"message",{get:function(){return this.parent.message},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"error",{get:function(){return this.parent.error},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"percent",{get:function(){return this.parent.percent},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"remaining",{get:function(){return this.max-this.mCurrent},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"canceled",{get:function(){return!this.parent||this.parent.canceled},enumerable:!1,configurable:!0}),e.prototype.createSubProgress=function(t,n,r){return St(this,void 0,void 0,(function(){return K(this,(function(o){switch(o.label){case 0:return n<=0&&t>0?[4,this.advance(t)]:[3,2];case 1:o.sent(),o.label=2;case 2:return null===r?[3,4]:[4,this.setMessage(r)];case 3:o.sent(),o.label=4;case 4:return[2,new e(this,this.current,t,Math.max(n,1))]}}))}))},e.prototype.setMax=function(e){return St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:if(isNaN(e)||e<=0)throw"Max progress value must be bigger than zero";return this.mMax=e,[4,this.save()];case 1:return t.sent(),[2]}}))}))},e.prototype.setMessage=function(e){return St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return this.parent?[4,this.parent.setMessage(e)]:[2,null];case 1:return t.sent(),[2]}}))}))},e.prototype.setError=function(e){return St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return this.parent?[4,this.parent.setError(e)]:[2,null];case 1:return t.sent(),[2]}}))}))},e.prototype.advance=function(e){return void 0===e&&(e=1),St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:if(isNaN(e)||e<=0)throw"Advance value must be bigger than zero";return this.mCurrent=Math.min(this.max,this.mCurrent+e),[4,this.save()];case 1:return t.sent(),[2]}}))}))},e.prototype.cancel=function(){return St(this,void 0,void 0,(function(){return K(this,(function(e){switch(e.label){case 0:return this.parent?[4,this.parent.cancel()]:[2,null];case 1:return e.sent(),[2]}}))}))},e.prototype.save=function(){return St(this,void 0,void 0,(function(){var e,t,n;return K(this,(function(r){switch(r.label){case 0:return e=this.max>0?this.mCurrent/this.max:0,t=this.progressFrom+Math.round(this.progressValue*e),n=this.parent.current,t<=n?[2,null]:[4,this.parent.advance(t)];case 1:return r.sent(),[2]}}))}))},e.prototype.load=function(){return St(this,void 0,void 0,(function(){return K(this,(function(e){return[2,null]}))}))},e.prototype.toJSON=function(){return this.parent.toJSON()},e}(),At=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},It=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Tt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},Et=G.default;e.Progresses=function(){function e(e,t){this.connector=e,this.config=t;var n=this.config.resolve("mainEndpoint");this.client=n?Et(n,{path:"/socket"}):null,this.collection=e.database.collection("progresses")}return e.prototype.waitToFinish=function(e){return Tt(this,void 0,void 0,(function(){var t,n;return K(this,(function(r){switch(r.label){case 0:t=!1,n=null,r.label=1;case 1:return t?[3,5]:[4,this.get(e)];case 2:if(!(n=r.sent()))throw"Progress does not exists with id: "+e;if(n.error)throw n.error;return(t=100==n.percent)?[3,4]:[4,ke(150)];case 3:r.sent(),r.label=4;case 4:return[3,1];case 5:return[2,n]}}))}))},e.prototype.get=function(e){return Tt(this,void 0,void 0,(function(){return K(this,(function(t){return[2,e?this.find({_id:new b.ObjectId(e)}):null]}))}))},e.prototype.find=function(e){return Tt(this,void 0,void 0,(function(){var t;return K(this,(function(n){switch(n.label){case 0:return[4,this.collection.findOne(e)];case 1:return[2,(t=n.sent())?new kt(t._id,t,this.collection,this.client):null]}}))}))},e.prototype.create=function(e){return void 0===e&&(e=100),Tt(this,void 0,void 0,(function(){var t,n;return K(this,(function(r){switch(r.label){case 0:if(isNaN(e)||e<=0)throw"Max progress value must be bigger than zero";return t={current:0,max:e,message:"",error:"",canceled:!1},[4,this.collection.insertOne(t)];case 1:return n=r.sent(),[2,new kt(n.insertedId,t,this.collection,this.client)]}}))}))},e.prototype.remove=function(e){return Tt(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return[4,this.collection.deleteOne({_id:new b.ObjectId(e)})];case 1:return t.sent(),[2,e]}}))}))},e}(),e.Progresses=At([o.injectable(),o.singleton(),It("design:paramtypes",[e.MongoConnector,e.Configuration])],e.Progresses);var Ft=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Dt=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Nt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.LazyAssets=function(){function e(e,t,n,r){this.connector=e,this.assets=t,this.progresses=n,this.jobMan=r,this.collection=e.database.collection("lazyassets")}return e.prototype.create=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n="main"),Nt(this,void 0,void 0,(function(){var r,o,i,s;return K(this,(function(a){switch(a.label){case 0:return r=this.jobMan.tryResolve(e,Object.assign(Object.assign({},t),{lazyId:""})),o={jobName:r,jobParams:t,jobQue:n},[4,this.find(o)];case 1:return(i=a.sent())?[2,i]:[4,this.collection.insertOne(o)];case 2:return s=a.sent(),[2,new Pt(s.insertedId,o,this.collection,this.assets,this.progresses,this.jobMan)]}}))}))},e.prototype.read=function(e){return Nt(this,void 0,void 0,(function(){return K(this,(function(t){return[2,e?this.find({_id:new b.ObjectId(e)}):null]}))}))},e.prototype.find=function(e){return Nt(this,void 0,void 0,(function(){var t;return K(this,(function(n){switch(n.label){case 0:return[4,this.collection.findOne(e)];case 1:return[2,(t=n.sent())?new Pt(t._id,t,this.collection,this.assets,this.progresses,this.jobMan):null]}}))}))},e.prototype.unlink=function(e){return Nt(this,void 0,void 0,(function(){var t;return K(this,(function(n){switch(n.label){case 0:return[4,this.read(e)];case 1:return(t=n.sent())?[2,t.unlink()]:[2,null]}}))}))},e}(),e.LazyAssets=Ft([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),Dt("design:paramtypes",[e.MongoConnector,e.Assets,e.Progresses,e.JobManager])],e.LazyAssets);var qt=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},zt=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Bt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.AssetResolver=function(){function e(e,t){this.assets=e,this.lazyAssets=t}return e.prototype.resolve=function(e,t){return void 0===t&&(t=!1),Bt(this,void 0,void 0,(function(){var n,r;return K(this,(function(o){switch(o.label){case 0:return n=null,t?[4,this.lazyAssets.read(e)]:[3,2];case 1:return(r=o.sent())?[2,r.loadAsset()]:[2,null];case 2:return[4,this.assets.read(e)];case 3:return(n=o.sent())?[3,5]:[4,this.lazyAssets.read(e)];case 4:return(r=o.sent())?[2,r.loadAsset()]:[2,null];case 5:return[2,n]}}))}))},e}(),e.AssetResolver=qt([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),zt("design:paramtypes",[e.Assets,e.LazyAssets])],e.AssetResolver);var Lt=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Ht=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Jt=V.default,Ut=$.default;e.BackendProvider=function(){function e(){this.express=Jt(),this.server=M.createServer(this.express)}return Object.defineProperty(e.prototype,"io",{get:function(){return this.ioServer=this.ioServer||Ut(this.server,{path:"/socket"}),this.ioServer},enumerable:!1,configurable:!0}),e}(),e.BackendProvider=Lt([o.injectable(),o.singleton(),Ht("design:paramtypes",[])],e.BackendProvider);var Gt=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Vt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.CacheProcessor=function(){function e(){}return e.prototype.serialize=function(e){return Vt(this,void 0,void 0,(function(){return K(this,(function(t){return[2,e]}))}))},e.prototype.deserialize=function(e){return Vt(this,void 0,void 0,(function(){return K(this,(function(t){return[2,e]}))}))},e}(),e.CacheProcessor=Gt([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped)],e.CacheProcessor);var $t=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Yt=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Wt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.Cache=function(){function e(e,t,n){this.connector=e,this.config=t,this.cacheProcessor=n}return e.prototype.prepare=function(){return Wt(this,void 0,void 0,(function(){return K(this,(function(e){switch(e.label){case 0:if(this.collection)return[2];if(!this.connector.database)throw new Error("You can't use cache without mongo connection!");return this.collection=this.connector.database.collection(this.config.resolve("cacheCollection")),[4,this.collection.createIndex({expiresAt:1},{expireAfterSeconds:0})];case 1:return e.sent(),[2]}}))}))},e.prototype.set=function(e,t,n,r,o){return void 0===r&&(r=null),void 0===o&&(o={}),Wt(this,void 0,void 0,(function(){var i,s,a;return K(this,(function(c){switch(c.label){case 0:return[4,this.prepare()];case 1:return c.sent(),s={_id:e},[4,this.cacheProcessor.serialize(t)];case 2:return s.data=c.sent(),[4,this.cacheProcessor.serialize(o)];case 3:return s.tags=c.sent(),s.expirationTimestamp=r,i=s,n&&(a=Math.round((new Date).getTime()/1e3),i.expiresAt=a+n),[4,this.collection.updateOne({_id:e},{$set:i},{upsert:!0})];case 4:return c.sent(),[2,t]}}))}))},e.prototype.get=function(e){return Wt(this,void 0,void 0,(function(){var t,n;return K(this,(function(r){switch(r.label){case 0:return[4,this.prepare()];case 1:return r.sent(),[4,this.collection.findOne({_id:e})];case 2:if(t=r.sent(),n=Math.round((new Date).getTime()/1e3),t&&t.expiresAt&&t.expiresAt<n&&(t=null),!t)throw new Error("Cache probably doesn't exists with key: "+e);return[4,this.cacheProcessor.deserialize(t.data)];case 3:return[2,r.sent()]}}))}))},e.prototype.getOrSet=function(e,t,n,r,o){return void 0===r&&(r=null),void 0===o&&(o={}),Wt(this,void 0,void 0,(function(){var i,s;return K(this,(function(a){switch(a.label){case 0:return a.trys.push([0,2,,5]),[4,this.get(e)];case 1:return[2,a.sent()];case 2:return a.sent(),i=this.set,s=[e],[4,t()];case 3:return[4,i.apply(this,s.concat([a.sent(),n,r,o]))];case 4:return[2,a.sent()];case 5:return[2]}}))}))},e.prototype.delete=function(e){return Wt(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return[4,this.prepare()];case 1:return t.sent(),[4,this.collection.deleteOne({_id:e})];case 2:return t.sent(),[2]}}))}))},e}(),e.Cache=$t([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),Yt("design:paramtypes",[e.MongoConnector,e.Configuration,e.CacheProcessor])],e.Cache);var Xt=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Qt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.EndpointProvider=function(){function e(){}return e.prototype.configure=function(e){return Qt(this,void 0,void 0,(function(){return K(this,(function(t){return console.log("Express app is mounted to: "+e.mountpath),[2]}))}))},e}(),e.EndpointProvider=Xt([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped)],e.EndpointProvider);var Kt=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Zt=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},en=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}},tn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.Fixtures=function(){function e(e){this.fixtures=e}return e.prototype.load=function(){return tn(this,void 0,void 0,(function(){var e,t,n,r,o;return K(this,(function(i){switch(i.label){case 0:if(!this.fixtures)return[2];i.label=1;case 1:i.trys.push([1,6,7,8]),e=Z(this.fixtures),t=e.next(),i.label=2;case 2:return t.done?[3,5]:[4,t.value.load()];case 3:i.sent(),i.label=4;case 4:return t=e.next(),[3,2];case 5:return[3,8];case 6:return n=i.sent(),r={error:n},[3,8];case 7:try{t&&!t.done&&(o=e.return)&&o.call(e)}finally{if(r)throw r.error}return[7];case 8:return[2]}}))}))},e}(),e.Fixtures=Kt([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),en(0,o.injectAll(Ge)),Zt("design:paramtypes",[Array])],e.Fixtures);var nn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},rn=L.default,on=function(){function e(e,t,n){this.folder=e,this.handler=n,this.thumb=T.v4(),this.big=T.v4(),this.targetSize=t||{width:250,height:250}}return e.prototype.serve=function(e){return nn(this,void 0,void 0,(function(){var t,n,r,o,i,s,a,c,u,l,f;return K(this,(function(h){switch(h.label){case 0:return t=e==this.thumb,[4,this.handler.hasResult(t)];case 1:return h.sent()?[2,this.handler.serveResult(t)]:(r=rn,[4,this.handler.getOriginal()]);case 2:return[4,(n=r.apply(void 0,[h.sent()]).rotate()).metadata()];case 3:return o=h.sent(),i=o.width/o.height,s=t?this.targetSize.width/this.targetSize.height:1,a=t?Math.max(this.targetSize.width,this.targetSize.height):1500,c=i>s?a:Math.round(a/i),u=Math.round(c*i),l=n.resize(u,c),[4,t?l.extract({left:Math.floor((u-this.targetSize.width)/2),top:Math.floor((c-this.targetSize.height)/2),width:this.targetSize.width,height:this.targetSize.height}).toBuffer():l.toBuffer()];case 4:return f=h.sent(),[4,this.handler.writeResult(t,f)];case 5:return h.sent(),[2,this.handler.serveResult(t)]}}))}))},e}(),sn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},an=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};e.GalleryCache=function(){function e(){this.imgCache={}}return e.prototype.put=function(e){this.imgCache[e.thumb]=e,this.imgCache[e.big]=e},e.prototype.serve=function(e){var t=this.imgCache[e];return t?t.serve(e):null},e.prototype.create=function(e,t,n){var r=new on(e,t,n);return this.put(r),r},e}(),e.GalleryCache=sn([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),an("design:paramtypes",[])],e.GalleryCache);var cn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},un=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},ln=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},fn=L.default;e.Gallery=function(){function e(e,n){this.config=e,this.galleryCache=n,this.cache={},this.dir=this.config.resolve("galleryDir"),this.output=t.join(this.config.resolve("cacheDir"),"gallery")}return e.prototype.getFolder=function(e,n){return void 0===n&&(n=null),ln(this,void 0,void 0,(function(){var r=this;return K(this,(function(o){return this.cache[e]=this.cache[e]||new Promise((function(o){y.lstat(t.join(r.dir,e),(function(t,i){!t&&i.isDirectory()?r.readRecursive(e,"",n).then(o,(function(){return o([])})):o([])}))})),[2,this.cache[e]]}))}))},e.prototype.readRecursive=function(e,n,r){var o=this;return new Promise((function(i){y.readdir(t.join(o.dir,e),(function(s,a){if(s)i([]);else{var c=a.map((function(i){return new Promise((function(s){return ln(o,void 0,void 0,(function(){var o,a,c=this;return K(this,(function(u){return o=t.join(e,i),a=t.join(this.dir,o),y.lstat(a,(function(e,u){e?s([]):u.isDirectory()?c.readRecursive(o,t.join(n,i),r).then(s):fn(a).rotate().metadata().then((function(){var e=function(e){return t.join(c.output,o.replace(/.([a-z|A-Z]+)$/gi,(function(t){return"-"+(e?"thumb":"big")+t})))};s([c.galleryCache.create(n,r,{getOriginal:function(){return new Promise((function(e,t){y.readFile(a,(function(n,r){n?t(n):e(r)}))}))},writeResult:function(n,r){return new Promise((function(o,i){return ln(c,void 0,void 0,(function(){var s;return K(this,(function(a){switch(a.label){case 0:return s=e(n),[4,xe(t.dirname(s))];case 1:return a.sent(),y.writeFile(s,r,(function(e){e?i(e):o()})),[2]}}))}))}))},hasResult:function(t){return new Promise((function(n){y.access(e(t),y.constants.R_OK,(function(e){n(!e)}))}))},serveResult:function(t){return new Promise((function(n,r){y.readFile(e(t),(function(e,t){e?r(e):n(t)}))}))}})])}),(function(){return s([])}))})),[2]}))}))}))}));Promise.all(c).then((function(e){i([].concat.apply([],e))}))}}))}))},e}(),e.Gallery=cn([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),un("design:paramtypes",[e.Configuration,e.GalleryCache])],e.Gallery);var hn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},dn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},pn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.IdGenerator=function(){function e(e){this.config=e,this.prefix=e.resolve("idPrefix"),this.separator=e.resolve("idSeparator"),this.chars=e.resolve("idChars"),this.parts=e.resolve("idParts")}return e.prototype.generate=function(e){return pn(this,void 0,void 0,(function(){var t,n,r;return K(this,(function(o){switch(o.label){case 0:t=null,n=0,r=!0,o.label=1;case 1:return r&&n<5?(t=this.generateId(),[4,e(t)]):[3,3];case 2:return r=o.sent(),n++,[3,1];case 3:if(r)throw"Couldn't generate an unique id..";return[2,t]}}))}))},e.prototype.generateId=function(){var e=this;return this.prefix+this.parts.map((function(t){for(var n="",r=0;r<t;r++){var o=Fe(0,e.chars.length-1);n+=e.chars[o]}return n})).join(this.separator)},e}(),e.IdGenerator=hn([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),dn("design:paramtypes",[e.Configuration])],e.IdGenerator);var yn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},vn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};e.TranslationProvider=function(){function e(e){this.config=e,this.cache={}}return e.prototype.getDictionary=function(e){return this.cache[e]=this.cache[e]||H.default.get(this.config.resolve("translationsTemplate").replace("[lang]",e)).then((function(e){return e.data}),(function(e){return{message:e}})),this.cache[e]},e}(),e.TranslationProvider=yn([o.injectable(),o.singleton(),vn("design:paramtypes",[e.Configuration])],e.TranslationProvider);var gn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},mn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},bn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.Translator=function(){function e(e){this.translationProvider=e,this.cache={}}return e.prototype.getDictionary=function(e){return bn(this,void 0,void 0,(function(){var t;return K(this,(function(n){switch(n.label){case 0:return[4,this.translationProvider.getDictionary(e)];case 1:return t=n.sent(),this.cache[e]=t,[2,t]}}))}))},e.prototype.getTranslationSync=function(e,t,n){if(!he(t)||!t.length)throw new Error('Parameter "key" required');var r=me(this.cache[e],t,t)||t;return this.interpolate(r,n)},e.prototype.getTranslation=function(e,t,n){var r=this;if(!he(t)||!t.length)throw new Error('Parameter "key" required');return this.getDictionary(e).then((function(e){var o=me(e,t,t)||t;return r.interpolate(o,n)}))},e.prototype.getTranslations=function(e){for(var t=this,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return new Promise((function(r){Promise.all(n.map((function(n){return t.getTranslation(e,n)}))).then((function(e){r(n.reduce((function(t,n,r){return t[n]=e[r],t}),{}))}))}))},e.prototype.interpolate=function(e,t){return"string"==typeof e?this.interpolateString(e,t):"function"==typeof e?e(t):e},e.prototype.interpolateString=function(e,t){return e&&t?e.replace(/{{\s?([^{}\s]*)\s?}}/g,(function(e,n){var r=me(t,n);return ie(r)?r:e})):e},e}(),e.Translator=gn([o.injectable(),o.singleton(),mn("design:paramtypes",[e.TranslationProvider])],e.Translator);var wn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},jn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Pn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.TemplateRenderer=function(){function e(e,t){this.translator=e,this.config=t,this.templates={},Y.registerHelper("object",(function(e){return e.hash})),Y.registerHelper("now",(function(){return(new Date).getTime()})),Y.registerHelper("keys",(function(e){return e?Object.keys(e):[]})),Y.registerHelper("translate",(function(t,n){return e.getTranslationSync(this.language,t,n)}))}return e.prototype.init=function(){return this.initPromise=this.initPromise||this.parseTemplates(this.config.resolve("templatesDir"),[]),this.initPromise},e.prototype.parseTemplates=function(e,n){return Pn(this,void 0,void 0,(function(){var r=this;return K(this,(function(o){return[2,new Promise((function(o){y.readdir(e,(function(i,s){return Pn(r,void 0,void 0,(function(){var r,i,a,c,u,l,f,h,d,p,v;return K(this,(function(g){switch(g.label){case 0:g.trys.push([0,6,7,8]),r=Z(s),i=r.next(),g.label=1;case 1:return i.done?[3,5]:(a=i.value,c=t.join(e,a),y.lstatSync(c).isDirectory()?[4,this.parseTemplates(t.join(e,a),n.concat([a]))]:[3,3]);case 2:return g.sent(),[3,4];case 3:(u=a.split(".")).pop(),l=u.join("."),f=n.concat([l]).join("-"),h=y.readFileSync(c).toString("utf8"),this.templates[f]=Y.compile(h),Y.registerPartial(f,h),g.label=4;case 4:return i=r.next(),[3,1];case 5:return[3,8];case 6:return d=g.sent(),p={error:d},[3,8];case 7:try{i&&!i.done&&(v=r.return)&&v.call(r)}finally{if(p)throw p.error}return[7];case 8:return o(),[2]}}))}))}))}))]}))}))},e.prototype.render=function(e,t,n){return Pn(this,void 0,void 0,(function(){var r,o;return K(this,(function(i){switch(i.label){case 0:return[4,this.init()];case 1:return i.sent(),[4,this.translator.getDictionary(t)];case 2:return i.sent(),this.templates[e]?(n=Object.assign({language:t},n||{}),(r=this.templates[e](n))instanceof Error?[4,Promise.reject(r)]:[3,4]):[2,Promise.reject("Template not found with name: "+e)];case 3:return o=i.sent(),[3,5];case 4:o=r,i.label=5;case 5:return[2,o]}}))}))},e}(),e.TemplateRenderer=wn([o.injectable(),o.singleton(),jn("design:paramtypes",[e.Translator,e.Configuration])],e.TemplateRenderer);var On=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},_n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Rn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.MailSender=function(){function e(e,t){this.config=e,this.renderer=t,this.transporter=E.createTransport({host:this.config.resolve("smtpHost"),port:this.config.resolve("smtpPort"),auth:{user:this.config.resolve("smtpUser"),pass:this.config.resolve("smtpPassword")}})}return Object.defineProperty(e.prototype,"translator",{get:function(){return this.renderer.translator},enumerable:!1,configurable:!0}),e.prototype.sendMail=function(e,t){return Rn(this,void 0,void 0,(function(){var n,r;return K(this,(function(o){switch(o.label){case 0:return[4,this.translator.getTranslation(e,t.subject||"-")];case 1:return n=o.sent(),[4,this.renderer.render(t.template,e,t.context)];case 2:return r=o.sent(),[2,this.transporter.sendMail({from:t.from||this.config.resolve("mailSenderAddress"),to:t.to,attachments:t.attachments,subject:n,html:r})]}}))}))},e}(),e.MailSender=On([o.injectable(),o.singleton(),_n("design:paramtypes",[e.Configuration,e.TemplateRenderer])],e.MailSender);var xn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Cn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Sn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.MemoryCache=function(){function e(e){this.cache=e,this.cacheMap=new Map}return e.prototype.set=function(e,t,n,r,o){return void 0===r&&(r=null),void 0===o&&(o={}),Sn(this,void 0,void 0,(function(){var i,s;return K(this,(function(a){return i=Math.round((new Date).getTime()/1e3),s=Math.min(isNaN(n)?Number.MAX_SAFE_INTEGER:n,3600),this.cacheMap.set(e,{_id:e,data:t,expirationTimestamp:s,expiresAt:i+s}),[2,this.cache.set(e,t,n,r,o)]}))}))},e.prototype.get=function(e){return Sn(this,void 0,void 0,(function(){var t,n,r,o;return K(this,(function(i){switch(i.label){case 0:return t=this.cacheMap.get(e),n=Math.round((new Date).getTime()/1e3),r=3600,t&&t.expiresAt&&t.expiresAt<n&&(r=t.expirationTimestamp,t=null),t?[3,2]:[4,this.cache.get(e)];case 1:return o=i.sent(),this.cacheMap.set(e,{_id:e,data:o,expirationTimestamp:r,expiresAt:n+r}),[2,o];case 2:return[2,t.data]}}))}))},e.prototype.getOrSet=function(e,t,n,r,o){return void 0===r&&(r=null),void 0===o&&(o={}),Sn(this,void 0,void 0,(function(){var i,s;return K(this,(function(a){switch(a.label){case 0:return a.trys.push([0,2,,5]),[4,this.get(e)];case 1:return[2,a.sent()];case 2:return a.sent(),i=this.set,s=[e],[4,t()];case 3:return[4,i.apply(this,s.concat([a.sent(),n,r,o]))];case 4:return[2,a.sent()];case 5:return[2]}}))}))},e.prototype.delete=function(e){return Sn(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return this.cacheMap.delete(e),[4,this.cacheMap.delete(e)];case 1:return t.sent(),[2]}}))}))},e}(),e.MemoryCache=xn([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),Cn("design:paramtypes",[e.Cache])],e.MemoryCache);var kn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Mn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},An={id:"5a3cdf7c6a9cf0ba32feccdf",email:"admin@site.com",password:"",roles:["admin"]};e.UserManager=function(){function e(){}return e.prototype.getByCredentials=function(e){return Mn(this,void 0,void 0,(function(){var t;return K(this,(function(n){switch(n.label){case 0:return An.email!=e.email?[3,1]:(t=An,[3,3]);case 1:return[4,Promise.reject("message.login.error")];case 2:t=n.sent(),n.label=3;case 3:return[2,t]}}))}))},e.prototype.getById=function(e){return Mn(this,void 0,void 0,(function(){return K(this,(function(t){return[2,An.id==e?An:null]}))}))},e.prototype.serialize=function(e){return Mn(this,void 0,void 0,(function(){var t;return K(this,(function(n){return delete(t=Object.assign({},e)).password,[2,t]}))}))},e}(),e.UserManager=kn([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped)],e.UserManager);var In=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Tn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},En=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}},Fn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},Dn=function(){function e(e,t){this.assets=e,this.assetResolver=t}return e.prototype.upload=function(e){return Fn(this,void 0,void 0,(function(){var t,n,r;return K(this,(function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),t="application/octet-stream"===e.mimetype?null:e.mimetype,[4,this.assets.writeBuffer(e.buffer,{filename:e.filename},t)];case 1:return[2,o.sent().toJSON()];case 2:throw n=o.sent(),r=(null==n?void 0:n.message)||n||"Unknown error",new i.HttpError(400,"Asset can't be uploaded.\n"+r);case 3:return[2]}}))}))},e.prototype.uploadUrl=function(e){return Fn(this,void 0,void 0,(function(){var t,n;return K(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,this.assets.writeUrl(e.url,e)];case 1:return[2,r.sent().toJSON()];case 2:throw t=r.sent(),n=(null==t?void 0:t.message)||t||"Unknown error",new i.HttpError(400,"Asset can't be uploaded.\n"+n);case 3:return[2]}}))}))},e.prototype.getImageRotation=function(e,t,n){var r;return void 0===n&&(n=0),Fn(this,void 0,void 0,(function(){var o;return K(this,(function(s){switch(s.label){case 0:return[4,this.assetResolver.resolve(e,t.lazy)];case 1:if(!(o=s.sent()))throw new i.HttpError(404,"Image with id: '"+e+"' not found.");if(null===(r=o.metadata)||void 0===r?void 0:r.classified)throw new i.HttpError(403,"Image is classified, and can be only downloaded from a custom url.");return t.rotation=t.rotation||n,[2,o.downloadImage(t)]}}))}))},e.prototype.getImage=function(e,t){return Fn(this,void 0,void 0,(function(){return K(this,(function(n){return[2,this.getImageRotation(e,t)]}))}))},e.prototype.getFile=function(e,t,n){var r,o;return Fn(this,void 0,void 0,(function(){var s,a;return K(this,(function(c){switch(c.label){case 0:return[4,this.assetResolver.resolve(e,t)];case 1:if(!(s=c.sent()))throw new i.HttpError(404,"File with id: '"+e+"' not found.");if(null===(r=s.metadata)||void 0===r?void 0:r.classified)throw new i.HttpError(403,"Asset is classified, and can be only downloaded from a custom url.");return(a=null===(o=s.metadata)||void 0===o?void 0:o.extension)&&n.header("content-disposition","inline; filename="+s.filename+"."+a),[2,s.download()]}}))}))},e}();In([i.Authorized(),i.Post(""),En(0,i.UploadedFile("file")),Tn("design:type",Function),Tn("design:paramtypes",[Object]),Tn("design:returntype",Promise)],Dn.prototype,"upload",null),In([i.Authorized(),i.Post("url"),En(0,i.Body()),Tn("design:type",Function),Tn("design:paramtypes",[Object]),Tn("design:returntype",Promise)],Dn.prototype,"uploadUrl",null),In([i.Get("/image/:id/:rotation"),En(0,i.Param("id")),En(1,i.QueryParams()),En(2,i.Param("rotation")),Tn("design:type",Function),Tn("design:paramtypes",[String,Object,Number]),Tn("design:returntype",Promise)],Dn.prototype,"getImageRotation",null),In([i.Get("/image/:id"),En(0,i.Param("id")),En(1,i.QueryParams()),Tn("design:type",Function),Tn("design:paramtypes",[String,Object]),Tn("design:returntype",Promise)],Dn.prototype,"getImage",null),In([i.Get("/:id"),En(0,i.Param("id")),En(1,i.QueryParam("lazy")),En(2,i.Res()),Tn("design:type",Function),Tn("design:paramtypes",[String,Boolean,Object]),Tn("design:returntype",Promise)],Dn.prototype,"getFile",null),Dn=In([o.injectable(),i.Controller("/assets"),Tn("design:paramtypes",[e.Assets,e.AssetResolver])],Dn);var Nn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},qn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},zn=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}},Bn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.AuthController=function(){function e(e,t){this.config=e,this.userManager=t}return e.prototype.login=function(e,t){return Bn(this,void 0,void 0,(function(){var t,n,o;return K(this,(function(s){switch(s.label){case 0:return s.trys.push([0,4,,5]),[4,this.userManager.getByCredentials(e)];case 1:return t=s.sent(),[4,D.compare(e.password,t.password)];case 2:if(!0!==s.sent())throw"message.login.error";return n={token:r.sign({id:t._id||t.id},this.config.resolve("jwtSecret"))},[4,this.userManager.serialize(t)];case 3:return[2,(n.user=s.sent(),n)];case 4:throw o=s.sent(),new i.HttpError(401,o);case 5:return[2]}}))}))},e.prototype.getProfile=function(e){return this.userManager.serialize(e)},e}(),Nn([i.Post("/login"),zn(0,i.Body()),zn(1,i.Res()),qn("design:type",Function),qn("design:paramtypes",[Object,Object]),qn("design:returntype",Promise)],e.AuthController.prototype,"login",null),Nn([i.Authorized(),i.Get("/user"),zn(0,i.CurrentUser()),qn("design:type",Function),qn("design:paramtypes",[Object]),qn("design:returntype",void 0)],e.AuthController.prototype,"getProfile",null),e.AuthController=Nn([o.injectable(),i.Controller(),qn("design:paramtypes",[e.Configuration,e.UserManager])],e.AuthController);var Ln=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Hn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Jn=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}};e.GalleryController=function(){function e(e){this.galleryCache=e}return e.prototype.getFile=function(e){return this.galleryCache.serve(e)},e}(),Ln([i.Get("/:id"),Jn(0,i.Param("id")),Hn("design:type",Function),Hn("design:paramtypes",[String]),Hn("design:returntype",void 0)],e.GalleryController.prototype,"getFile",null),e.GalleryController=Ln([o.injectable(),i.Controller("/gallery"),Hn("design:paramtypes",[e.GalleryCache])],e.GalleryController);var Un=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Gn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Vn=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}},$n=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},Yn=function(){function e(e,t){this.progresses=e,this.config=t;var n=this.config.resolve("mainEndpoint");this.connectionType=n?"socket":"polling"}return e.prototype.getProgress=function(e){return $n(this,void 0,void 0,(function(){var t,n;return K(this,(function(r){switch(r.label){case 0:return[4,this.progresses.get(e)];case 1:return(t=r.sent())?((n=t.toJSON()).connectionType=this.connectionType,[2,n]):[2,null]}}))}))},e}();Un([i.Get("/:id"),Vn(0,i.Param("id")),Gn("design:type",Function),Gn("design:paramtypes",[String]),Gn("design:returntype",Promise)],Yn.prototype,"getProgress",null),Yn=Un([o.injectable(),i.Controller("/progresses"),Gn("design:paramtypes",[e.Progresses,e.Configuration])],Yn);var Wn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Xn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Qn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.ErrorHandlerMiddleware=function(){function e(e,t){this.configuration=e,this.translator=t}return Object.defineProperty(e.prototype,"isDev",{get:function(){return"development"===this.configuration.resolve("nodeEnv")},enumerable:!1,configurable:!0}),e.prototype.error=function(e,t,n,r){return Qn(this,void 0,void 0,(function(){var r;return K(this,(function(o){switch(o.label){case 0:return[4,this.getResult(e,t,n)];case 1:return r=o.sent(),this.isDev&&console.log("ERROR",r,n.statusCode),n.json(r),[2]}}))}))},e.prototype.getResult=function(e,t,n){return Qn(this,void 0,void 0,(function(){var r,o,s,a;return K(this,(function(c){switch(c.label){case 0:return r={},e instanceof i.BadRequestError?(n.status(400),"ParamRequiredError"!==e.constructor.name?[3,2]:(o=r,[4,this.translator.getTranslation(t.language,"message.parameter-required.error")])):[3,6];case 1:return o.message=c.sent(),r.param=e.message,[3,5];case 2:return s=r,(a=e.message)?[3,4]:[4,this.translator.getTranslation(t.language,"message.form-validation.error")];case 3:a=c.sent(),c.label=4;case 4:s.message=a,r.errors=e.errors,this.isDev&&(r.stack=e.stack),c.label=5;case 5:return[2,r];case 6:return n.status(e.httpCode||500),e instanceof Error?(e.name&&(r.name=e.name),e.message&&(r.message=e.message),e.stack&&this.isDev&&(r.stack=e.stack)):"string"==typeof e&&(r.message=e),[2,r]}}))}))},e}(),e.ErrorHandlerMiddleware=Wn([o.injectable(),i.Middleware({type:"after"}),Xn("design:paramtypes",[e.Configuration,e.Translator])],e.ErrorHandlerMiddleware);var Kn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Zn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},er=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}},tr=function(){function e(e){this.container=e}return e.prototype.use=function(e,t,n){e.container=this.container,n(null)},e}();tr=Kn([o.injectable(),i.Middleware({type:"before"}),er(0,o.inject(Qe)),Zn("design:paramtypes",[Object])],tr);var nr=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},rr=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};e.LanguageMiddleware=function(){function e(e){this.config=e}return e.prototype.use=function(e,t,n){e.language=e.query.language||this.config.resolve("defaultLanguage"),n(null)},e}(),e.LanguageMiddleware=nr([o.injectable(),i.Middleware({type:"before"}),rr("design:paramtypes",[e.Configuration])],e.LanguageMiddleware);var or=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},ir=function(){function e(){}return e.prototype.use=function(e,t,n){e.ended=W.default();var r=e.ended.diff(e.started),o=W.default.duration(r);console.log("Request '"+e.id+"' ended at: "+e.ended.format("YYYY-MM-DD HH:mm:ss")+" ["+e.method+"] "+e.url),console.log("Request '"+e.id+"' lasted: "+o.asMilliseconds()+"ms"),n(null)},e}();ir=or([o.injectable(),i.Middleware({type:"after"})],ir);var sr=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},ar=function(){function e(){}return e.prototype.use=function(e,t,n){e.id=(new b.ObjectId).toHexString(),e.started=W.default(),console.log("Request '"+e.id+"' started at: "+e.started.format("YYYY-MM-DD HH:mm:ss")+" ["+e.method+"] "+e.url),n(null)},e}();ar=sr([o.injectable(),i.Middleware({type:"before"})],ar);var cr=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},ur=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},lr=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}},fr=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},hr=function(){function e(e,t){this.progresses=e,this.socketServer=t}return e.prototype.advanceProgress=function(e,t){return fr(this,void 0,void 0,(function(){var n,r;return K(this,(function(o){switch(o.label){case 0:return[4,this.progresses.get(t)];case 1:return(n=o.sent())?(r=n.toJSON(),Ee(this.socketServer,(function(n){n.interestedProgresses instanceof Set&&n.interestedProgresses.has(t)&&e.emit("background-progress-changed",r)})),console.log("progress changed: "+e.id+", data: "+JSON.stringify(r)),[2]):[2]}}))}))},e.prototype.setProgressInterest=function(e,t){return fr(this,void 0,void 0,(function(){var n,r;return K(this,(function(o){switch(o.label){case 0:return[4,this.progresses.get(t)];case 1:return(n=o.sent())?(r=n.toJSON(),e.interestedProgresses=e.interestedProgresses||new Set,e.interestedProgresses.has(t)||(e.interestedProgresses.add(t),e.emit("background-progress-changed",r),console.log("progress interest added: "+e.id+", data: "+JSON.stringify(r))),[2]):[2]}}))}))},e}();cr([s.OnMessage("background-progress"),lr(0,s.ConnectedSocket()),lr(1,s.MessageBody()),ur("design:type",Function),ur("design:paramtypes",[Object,String]),ur("design:returntype",Promise)],hr.prototype,"advanceProgress",null),cr([s.OnMessage("background-progress-interest"),lr(0,s.ConnectedSocket()),lr(1,s.MessageBody()),ur("design:type",Function),ur("design:paramtypes",[Object,String]),ur("design:returntype",Promise)],hr.prototype,"setProgressInterest",null),hr=cr([o.injectable(),s.SocketController(),lr(1,o.inject(We)),ur("design:paramtypes",[e.Progresses,Object])],hr);var dr=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},pr=function(){function e(){}return e.prototype.use=function(e,t){t()},e}();pr=dr([o.injectable(),s.Middleware()],pr);var yr=function(){function e(e,t,n){this.container=e,this.exists=t,this.path=n,this.map=new Map}return Object.defineProperty(e.prototype,"parentTree",{get:function(){return this.container.parent.tree},enumerable:!1,configurable:!0}),e.prototype.resolveService=function(){return this.exists?this.container.resolve(this.path):null},e.prototype.resolveLeaves=function(){var e;try{var t=this.parentTree.resolvePath(this.path);e=t.resolveLeaves()}catch(t){e=new Map}var n=function(t,r){t.forEach((function(t,o){var i=r?r+"."+o:o;0!=t.map.size?n(t.map,i):e.set(i,t)}))};return n(this.map,""),e},e.prototype.resolveServices=function(){var e=new Map;return this.resolveLeaves().forEach((function(t,n){e.set(n,t.resolveService())})),e},e.prototype.resolveAncestor=function(t){var n,r,o;if(!he(t)||0==t.length)return this;try{o=(o=this.parentTree.resolvePath(this.path)).resolveAncestor(t)}catch(t){o=new e(this.container,!1,"")}var i=t.split("."),s=this,a=this;try{for(var c=Z(i),u=c.next();!u.done;u=c.next()){var l=u.value;if(!(s=s.map.get(l))){if(a==this){if(o.path.length>0)return o;throw new Error("Ancestor '"+t+"' not found in current tree: '"+this.path+"'")}return a}a=s}}catch(e){n={error:e}}finally{try{u&&!u.done&&(r=c.return)&&r.call(c)}finally{if(n)throw n.error}}return o.path.length>a.path.length?o:a},e.prototype.resolvePath=function(t,n){void 0===n&&(n=!0);var r=this.path?this.path+"."+t:t,o=new e(this.container,!1,r);try{o=this.resolveAncestor(t)}catch(e){if(n)throw new Error("Path '"+t+"' not found in current tree: '"+this.path+"'");return o}if(o.path!==r){if(n)throw new Error("Path '"+t+"' not found in current tree: '"+this.path+"'");return o}return o},e.prototype.addPath=function(t){if(!he(t)||0==t.length)return this;var n=t.split("."),r=n.length-1,o=this;t=this.path;for(var i=0;i<=r;i++){var s=n[i];o.map.has(s)||o.map.set(s,new e(this.container,!1,t?t+"."+s:s)),(o=o.map.get(s)).exists=o.exists||i==r,t=o.path}return this},e}(),vr=function(){function e(e,t){void 0===t&&(t=null),this.container=e,this.parent=t,e.wrapperContainer=this,this.tokens=[],this.tokenSet=new Set,this.root=new yr(this,!1,"")}return Object.defineProperty(e.prototype,"registeredTokens",{get:function(){var e;return((null===(e=this.parent)||void 0===e?void 0:e.registeredTokens)||[]).concat(this.tokens)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"tree",{get:function(){return this.root},enumerable:!1,configurable:!0}),e.prototype.beforeResolution=function(e,t,n){this.container.beforeResolution(e,t,n)},e.prototype.afterResolution=function(e,t,n){this.container.afterResolution(e,t,n)},e.prototype.clearInstances=function(){this.container.clearInstances()},e.prototype.createChildContainer=function(){return new e(this.container.createChildContainer(),this)},e.prototype.isRegistered=function(e,t){return this.container.isRegistered(e,t)},e.prototype.register=function(e,t,n){return o.isFactoryProvider(t)?(this.container.register(e,{useFactory:function(e){return t.useFactory(e.wrapperContainer)}}),this.addToken(e)):(this.container.register(e,t),this.addToken(e))},e.prototype.registerInstance=function(e,t){return this.container.registerInstance(e,t),this.addToken(e)},e.prototype.registerSingleton=function(e,t){return this.container.registerSingleton(e,t),this.addToken(e)},e.prototype.registerType=function(e,t){return this.container.registerType(e,t),this.addToken(e)},e.prototype.reset=function(){this.tokens=[],this.tokenSet=new Set,this.container.reset()},e.prototype.resolve=function(e){return this.container.resolve(e)},e.prototype.resolveAll=function(e){return this.container.resolveAll(e)},e.prototype.get=function(e){return this.container.resolve(e)},e.prototype.addToken=function(e){return this.tokenSet.has(e)||(this.tokenSet.add(e),this.tokens.push(e),he(e)&&this.root.addPath(e)),this},e}(),gr=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};function mr(n,r){return gr(this,void 0,void 0,(function(){var o,i,s;return K(this,(function(a){switch(a.label){case 0:return o=t.resolve(n||__dirname,"public_html"),i=r.get($e),s=r.get(e.EndpointProvider),console.log(o,y.existsSync(o)),y.existsSync(o)?(console.log("public_html exists. setting up static files serving..."),i.use(A.static(o,{maxAge:"1y"}))):console.log('public_html does not exist on path: "'+o+'"'),[4,s.configure(i)];case 1:return a.sent(),[2]}}))}))}var br=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},wr=function(){function e(e,t,n){this.assetResolver=e,this.progresses=t,this.lazyId=n}return Object.defineProperty(e.prototype,"assets",{get:function(){return this.assetResolver.assets},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lazyAssets",{get:function(){return this.assetResolver.lazyAssets},enumerable:!1,configurable:!0}),e.prototype.process=function(){return br(this,void 0,void 0,(function(){var e,t,n,r;return K(this,(function(o){switch(o.label){case 0:return[4,this.lazyAssets.read(this.lazyId)];case 1:return e=o.sent(),[4,this.progresses.get(e.progressId)];case 2:if(!(t=o.sent())||t.canceled)return[2,null];o.label=3;case 3:return o.trys.push([3,7,,9]),[4,this.generate(t)];case 4:return n=o.sent(),[4,t.load()];case 5:return!(t=o.sent())||t.canceled?[2,null]:[4,e.writeAsset(n)];case 6:return o.sent(),[3,9];case 7:return r=o.sent(),[4,t.setError(r.message||r)];case 8:throw o.sent(),r;case 9:return t.remaining>0?[4,t.advance(t.remaining)]:[3,11];case 10:o.sent(),o.label=11;case 11:return[2]}}))}))},e}(),jr=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};function Pr(t,n){return jr(this,void 0,void 0,(function(){var o,s,a,c;return K(this,(function(u){switch(u.label){case 0:if(n.user)return[2,n.user];o=n.header("Authorization")||"",s=null;try{a=t.resolve(e.Configuration),s=r.verify(o.split(" ")[1],a.resolve("jwtSecret"))}catch(e){throw new i.HttpError(401,"Authentication failed. ("+e.message+")")}if(!s)throw new i.HttpError(401,"Authentication failed. (Maybe invalid token)");return c=n,[4,t.resolve(e.UserManager).getById(s.id)];case 1:return c.user=u.sent(),[2,n.user]}}))}))}function Or(){var n=[new Ke("templatesDir",t.join(__dirname,"templates")),new Ke("galleryDir",t.join(__dirname,"gallery")),new Ke("cacheDir",t.join(__dirname,"cache")),new Ke("defaultLanguage","en"),new Ke("smtpHost","smtp.sendgrid.net"),new Ke("smtpPort",587),new Ke("smtpUser","apikey"),new Ke("smtpPassword",""),new Ke("mailSenderAddress","info@stemy.hu"),new Ke("translationsTemplate","https://translation.service/[lang]"),new Ke("jwtSecret","eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9"),new Ke("mongoUri",""),new Ke("mongoDb","node-backend"),new Ke("mongoUser",null),new Ke("mongoPassword",null),new Ke("nodeEnv","development"),new Ke("appPort",80),new Ke("redisHost","127.0.0.1"),new Ke("redisPort",6379),new Ke("redisPassword","123456"),new Ke("redisNamespace","resque"),new Ke("redisCluster","mymaster"),new Ke("redisSentinels",null,(function(e){return e?e.split(", ").map((function(e){var t=e.split(":");return{host:t[0],port:Number(t[1])}})):null})),new Ke("workQueues",["main"]),new Ke("isWorker",!1),new Ke("mainEndpoint",""),new Ke("idChars","0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"),new Ke("idSeparator","-"),new Ke("idPrefix","ID-"),new Ke("idParts",[4,4]),new Ke("jsonLimit","250mb"),new Ke("cacheCollection","cache")].map((function(e){return{provide:Xe,useValue:e}})),r=[e.AssetProcessor,e.AssetResolver,e.Assets,e.BackendProvider,e.Cache,e.CacheProcessor,e.Configuration,e.EndpointProvider,e.Fixtures,e.Gallery,e.GalleryCache,e.IdGenerator,e.JobManager,e.LazyAssets,e.MailSender,e.MemoryCache,e.MongoConnector,e.Progresses,e.TemplateRenderer,e.TranslationProvider,e.Translator,e.UserManager],i=new vr(o.container.createChildContainer());return n.forEach((function(e){i.register(e.provide,e)})),r.forEach((function(e){o.container.isRegistered(e)||i.register(e,e)})),i}e.DI_CONTAINER=Qe,e.EXPRESS=$e,e.FIXTURE=Ge,e.HTTP_SERVER=Ye,e.JOB=Ve,e.LazyAssetGenerator=wr,e.PARAMETER=Xe,e.Parameter=Ke,e.ResolveEntity=function(e,t){var n=this,r=e.modelName,o=r.toLowerCase();return i.createParamDecorator({required:!1,value:function(s){return ne(n,void 0,void 0,(function(){var n,a,c,u,l,f,h,d;return K(this,(function(p){switch(p.label){case 0:if(n=s.request,a=n.header("x-"+o+"-token"),!(c=n.params[o+"Id"])&&!a)throw new i.BadRequestError(r+" id or token should be defined!");return[4,u=a?e.findOne({token:a}):e.findById(c)];case 1:if(!(l=p.sent()))throw new i.HttpError(404,a?r+" could not be found with token: "+a:r+" could not be found with id: "+c);if(!de(t))return[3,5];p.label=2;case 2:return p.trys.push([2,4,,5]),f=s.request,h=o,[4,Se(t(u,s))];case 3:return f[h]=p.sent()||l,[2,s.request[o]];case 4:throw d=p.sent(),new i.BadRequestError(r+" check error: "+(d.message||d));case 5:return s.request[o]=l,[2,l]}}))}))}})},e.SOCKET_SERVER=We,e.Type=Ue,e.assign=function(e,t,n){return ze(e,t,n)},e.broadcast=Ee,e.bufferToStream=Pe,e.convertValue=be,e.copy=function(e){return ze(null,e)},e.copyStream=Re,e.createServices=Or,e.createTransformer=function(e){return function(t,n,r){return n.id=Te(n.id)||n.id,t._id&&(n._id=Te(t._id),n.id=n.id||n._id),delete n.__v,de(e)&&e(t,n,r)||n}},e.deleteFile=function(e){return new Promise((function(t,n){y.unlink(e,(function(e){e?n(e):t()}))}))},e.deleteFromBucket=Ne,e.filter=function(e,t){return ze(null,e,t)},e.firstItem=function(e){return e[0]},e.getConstructorName=Me,e.getExtension=function(e){return t.basename(e||"").split(".").pop()},e.getFileName=function(e,n){void 0===n&&(n=!1);var r=t.basename(e||"");return n?r:r.split(".").slice(0,-1).join(".")},e.getFunctionParams=Ae,e.getType=se,e.getValue=me,e.groupBy=function(e,t){return e.reduce((function(e,n){var r=t(n);return e[r]=e[r]||[],e[r].push(n),e}),{})},e.hydratePopulated=je,e.idToString=Te,e.injectServices=we,e.isArray=ce,e.isBoolean=ue,e.isConstructor=pe,e.isDate=le,e.isDefined=ie,e.isFunction=de,e.isInterface=ve,e.isNullOrUndefined=oe,e.isObject=ae,e.isPrimitive=fe,e.isString=he,e.isType=ye,e.lastItem=function(e){return e[e.length-1]},e.lcFirst=ge,e.lookupPipelines=function(e,t,n,r,o){void 0===n&&(n=null),void 0===r&&(r="_id"),void 0===o&&(o=!0),n=n||t.replace("Id","");var i=[{$lookup:{from:e,localField:t,foreignField:r,as:n}},{$unwind:{path:"$"+n,preserveNullAndEmptyArrays:!0}}];return o?i:i.slice(0,0)},e.md5=function(e){if(ae(e)&&(e=JSON.stringify(e)),!he(e))throw"Can't md5 other that raw object or string";return h.createHash("md5").update(e).digest("hex")},e.mkdirRecursive=xe,e.multiSubscription=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return new d.Subscription((function(){e.forEach((function(e){e.unsubscribe()}))}))},e.observableFromFunction=function(e){var t;return new d.Observable((function(n){if(!t){t=new d.Subject;try{t=d.from(e())}catch(e){p.canReportError(t)?t.error(e):console.warn(e)}}return t.subscribe(n)}))},e.padLeft=function(e,t,n){return void 0===t&&(t=3),void 0===n&&(n="0"),(""+e).padStart(t,n)},e.padRight=function(e,t,n){return void 0===t&&(t=3),void 0===n&&(n="0"),(""+e).padEnd(t,n)},e.paginate=function(e,t,n){return e.countDocuments(t).then((function(r){var o=e.find(t);return he(n.sort)&&(o=o.sort(n.sort)),ce(n.populate)&&n.populate.forEach((function(e){o=o.populate(e)})),(n.limit>0?o.skip(n.page*n.limit).limit(n.limit):o).then((function(e){return{count:r,items:e,meta:{total:r}}}))}))},e.paginateAggregations=function(e,t,n,r){return void 0===r&&(r={}),ne(this,void 0,void 0,(function(){var o,i,s,a,c;return K(this,(function(u){switch(u.label){case 0:return o=he(n.sort)&&n.sort?n.sort.startsWith("-")?n.sort.substr(1):n.sort:null,i=o?[{$sort:(c={},c[o]=o==n.sort?1:-1,c)}]:[],[4,e.aggregate(te(t,i,[{$group:{_id:"results",result:{$push:"$$CURRENT"}}},{$project:{_id:0,items:n.limit>0?{$slice:["$result",n.page*n.limit,n.limit]}:"$result",count:{$size:"$result"},meta:Object.assign({total:{$size:"$result"}},r)}}]))];case 1:return s=u.sent(),(a=s[0])?(a.items=a.items.map((function(t){return je(e,t)})),[2,a]):[2,{items:[],count:0,meta:{total:0}}]}}))}))},e.promiseTimeout=ke,e.proxyFunction=Ie,e.proxyFunctions=function(e,t,n){void 0===n&&(n=null),n=n||ge(Me(t)).replace(/helper$/gi,"");var r=Object.getOwnPropertyDescriptors(t.prototype);Object.keys(r).forEach((function(t){var o=r[t].value;de(o)&&"constructor"!==t&&(Ae(o)[0]==n&&(e.methods[t]=Ie(t)))})),we(e,{helper:t})},e.rand=Fe,e.random=De,e.readAndDeleteFile=function(e,t){return void 0===t&&(t=5e3),ne(this,void 0,void 0,(function(){var n;return K(this,(function(r){switch(r.label){case 0:return[4,Ce(e)];case 1:return n=r.sent(),setTimeout((function(){y.unlink(e,(function(){}))}),t),[2,n]}}))}))},e.readFile=Ce,e.runCommand=function(e,t){return void 0===t&&(t=0),new Promise((function(n,r){var o=f.exec(e,(function(e,o){if(e&&t!==e.code)return console.log(e),void r(e);for(var i=(o||"").split("\n"),s=null;!s&&i.length>0;)s=i.pop();n(s)}));o.stdout.on("data",(function(e){console.log(e.toString())})),o.stderr.on("data",(function(e){console.error(e.toString())}))}))},e.setupBackend=function(t,r,o){return jr(this,void 0,void 0,(function(){var f,h,d,p,y,v,g,m,b,w,j=this;return K(this,(function(P){switch(P.label){case 0:return r=Array.isArray(r)?r:[],o=o||Or(),f=t.fixtures||[],h=f.map((function(e){return{provide:Ge,useClass:e}})),d=(t.params||[]).map((function(e){return{provide:Xe,useValue:e}})),p=(t.jobs||[]).map((function(e){return{provide:Ve,useValue:e}})),(y=t.restOptions||{}).defaultErrorHandler=!1,y.cors={credentials:!0,origin:function(e,t){t(null,!0)}},y.routePrefix=t.routePrefix||"/api",y.routePrefix="/"==y.routePrefix?"":y.routePrefix,y.middlewares=[e.ErrorHandlerMiddleware,tr,e.LanguageMiddleware,ar,ir].concat(y.middlewares||[]),y.controllers=[Dn,e.AuthController,e.GalleryController,Yn].concat(y.controllers||[]),(v=t.socketOptions||{}).middlewares=[pr].concat(v.middlewares||[]),v.controllers=[hr].concat(v.controllers||[]),g=[],[Xe].forEach((function(e){o.resolveAll(e).forEach((function(t){g.push({provide:e,useValue:t})}))})),g.push.apply(g,te(f,h,d,p,y.middlewares,y.controllers,v.middlewares,v.controllers,r,[{provide:$e,useFactory:function(t){return t.resolve(e.BackendProvider).express}},{provide:Ye,useFactory:function(t){return t.resolve(e.BackendProvider).server}},{provide:We,useFactory:function(t){return t.resolve(e.BackendProvider).io}}])),m=o.createChildContainer(),g.forEach((function(e){ye(e)?m.register(e,e):m.register(e.provide,e)})),m.register(Qe,{useValue:m}),re.appContainer=re.appContainer||m,y.authorizationChecker=function(e,t){return jr(j,void 0,void 0,(function(){var n,r,o,s,a,c,u,l,f,h,d;return K(this,(function(p){switch(p.label){case 0:return[4,Pr(m,e.request)];case 1:if(!(n=p.sent()))throw new i.HttpError(401,"Authentication failed. (User can't be found.)");if(r=Array.isArray(n.roles)?n.roles:[],!(Array.isArray(t)&&t.length>0))return[3,13];o=null,p.label=2;case 2:p.trys.push([2,10,11,12]),s=Z(t),a=s.next(),p.label=3;case 3:if(a.done)return[3,9];if(!de(c=a.value))return[3,7];p.label=4;case 4:return p.trys.push([4,6,,7]),[4,Se(c(n,e))];case 5:return p.sent()?[2,!0]:[3,7];case 6:return u=p.sent(),o=u,[3,7];case 7:if(r.indexOf(c)>=0)return[2,!0];p.label=8;case 8:return a=s.next(),[3,3];case 9:return[3,12];case 10:return l=p.sent(),h={error:l},[3,12];case 11:try{a&&!a.done&&(d=s.return)&&d.call(s)}finally{if(h)throw h.error}return[7];case 12:throw f=o&&(o.message||he(o))?o.message||o:"User doesn't have access to this resource",new i.HttpError(401,"Authentication failed. ("+f+")");case 13:return[2,!0]}}))}))},y.currentUserChecker=function(e){return jr(j,void 0,void 0,(function(){return K(this,(function(t){return[2,Pr(m,e.request)]}))}))},b=m.resolve(e.Configuration),w=m.resolve(e.BackendProvider),t.restOptions&&(w.express.use(n.json({limit:b.hasParam("jsonLimit")?b.resolve("jsonLimit"):"250mb"})),i.useContainer(m),i.useExpressServer(w.express,y),w.express.get("/api-docs",(function(n,r){r.status(200).end(function(t){var n;if(He)return He;var r=i.getMetadataArgsStorage(),o=a.routingControllersToSpec(r);return o.basePath="/api/",o.definitions=l.validationMetadatasToSchemas({classTransformerMetadataStorage:c.defaultMetadataStorage,additionalConverters:(n={},n[u.ValidationTypes.CUSTOM_VALIDATION]=function(n,r){var o=de(t)?t(n,r):t;if(o)return o;var i=n.constraints||[];return n.constraintCls===e.IsFile?{multi:i[0]||!1,type:"file"}:n.constraintCls===e.IsObjectId?{endpoint:i[0]||!1,multi:i[1]||!1,type:"list"}:null},n)}),o.components.schemas=o.definitions,He=JSON.stringify(o)}(t.customValidation))}))),t.socketOptions&&(s.useContainer(m),s.useSocketServer(w.io,v)),b.hasParam("mongoUri")&&b.resolve("mongoUri")?(console.log("Connecting to MongoDB..."),[4,m.resolve(e.MongoConnector).connect()]):[3,2];case 1:P.sent(),console.log("Successfully connected to MongoDB."),P.label=2;case 2:return[4,mr(t.rootFolder,m)];case 3:return P.sent(),[2,m]}}))}))},e.streamToBuffer=Oe,e.ucFirst=function(e){return e?e[0].toUpperCase()+e.substr(1):""},e.valueToPromise=Se,e.writeFile=function(e,n){return ne(this,void 0,void 0,(function(){return K(this,(function(r){switch(r.label){case 0:return[4,xe(t.dirname(e))];case 1:return r.sent(),[2,new Promise((function(t,r){y.writeFile(e,n,(function(e){e?r(e):t(n)}))}))]}}))}))},Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("path"),require("body-parser"),require("jsonwebtoken"),require("tsyringe"),require("routing-controllers"),require("socket-controllers"),require("routing-controllers-openapi"),require("class-transformer/storage"),require("class-validator"),require("class-validator-jsonschema"),require("child_process"),require("crypto"),require("rxjs"),require("rxjs/internal/util/canReportError"),require("fs"),require("mongoose"),require("mongoose/lib/utils"),require("stream"),require("bson"),require("fontkit"),require("file-type"),require("sharp"),require("axios"),require("mongodb"),require("dotenv"),require("node-resque"),require("node-cron"),require("ioredis"),require("socket.io-client"),require("http"),require("express"),require("socket.io"),require("uuid"),require("nodemailer"),require("handlebars"),require("bcrypt"),require("moment")):"function"==typeof define&&define.amd?define("@stemy/backend",["exports","path","body-parser","jsonwebtoken","tsyringe","routing-controllers","socket-controllers","routing-controllers-openapi","class-transformer/storage","class-validator","class-validator-jsonschema","child_process","crypto","rxjs","rxjs/internal/util/canReportError","fs","mongoose","mongoose/lib/utils","stream","bson","fontkit","file-type","sharp","axios","mongodb","dotenv","node-resque","node-cron","ioredis","socket.io-client","http","express","socket.io","uuid","nodemailer","handlebars","bcrypt","moment"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).stemy=e.stemy||{},e.stemy.backend={}),e.path,e["body-parser"],e.jsonwebtoken,e.tsyringe,e["routing-controllers"],e["socket-controllers"],e["routing-controllers-openapi"],e["class-transformer/storage"],e["class-validator"],e["class-validator-jsonschema"],e.child_process,e.crypto,e.rxjs,e.rxjs["internal/util/canReportError"],e.fs,e.mongoose,e["mongoose-lib-utils"],e.stream,e.bson,e.fontkit,e["file-type"],e.sharp,e.axios,e.mongodb,e.dotenv,e["node-resque"],e["node-cron"],e.ioredis,e.socket["io-client"],e.http,e.express,e.socket.io,e.uuid,e.nodemailer,e.handlebars,e.bcrypt,e.moment)}(this,(function(e,t,n,r,o,i,s,a,c,u,l,f,h,d,p,y,v,g,m,b,w,j,P,O,_,R,x,C,S,k,A,M,T,I,E,F,D,N){"use strict";function q(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function z(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var B=q(w),L=q(P),J=q(O),H=q(R),U=q(S),G=q(k),V=q(M),$=q(T),Y=z(F),W=q(N),X=function(e,t){return(X=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function Q(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}X(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function K(e,t){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,r=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}Object.create;function Z(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function ee(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return s}function te(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(ee(arguments[t]));return e}Object.create;var ne=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},re={appContainer:null};function oe(e){return null==e||void 0===e}function ie(e){return!oe(e)}function se(e){var t=new RegExp("\\s([a-zA-Z]+)");return Object.prototype.toString.call(e).match(t)[1].toLowerCase()}function ae(e){return"object"==se(e)}function ce(e){return Array.isArray(e)}function ue(e){return"boolean"==typeof e}function le(e){return!!e&&e[Symbol.toPrimitive]&&!isNaN(e)&&void 0!==e.getDate}function fe(e){var t=typeof e;return null==e||"object"!==t&&"function"!==t}function he(e){return"string"==typeof e}function de(e){return"function"==typeof e}function pe(e){return(e&&"function"==typeof e&&e.prototype&&e.prototype.constructor)===e&&"Object"!==e.name}function ye(e){return pe(e)}function ve(e,t){var n,r;if(!e||"object"!=typeof e||ce(e)||!ae(t))return!1;var o=Object.keys(t);try{for(var i=Z(o),s=i.next();!s.done;s=i.next()){var a=s.value,c=t[a]||"";if(c.startsWith("*")){if(c=c.substr(1),e.hasOwnProperty(a)&&se(e[a])!==c)return!1}else if(!e.hasOwnProperty(a)||se(e[a])!==c)return!1}}catch(e){n={error:e}}finally{try{s&&!s.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return!0}function ge(e){return e?e[0].toLowerCase()+e.substr(1):""}function me(e,t,n,r){void 0===r&&(r=!1);var o=(t=t||"").split("."),i="";do{i+=o.shift(),!ie(e)||!ie(e[i])||"object"!=typeof e[i]&&o.length?o.length?i+=".":(n=void 0===n?t.replace(new RegExp(i+"$"),"{"+i+"}"):n,e=r&&e||n):(e=e[i],i="")}while(o.length);return e}function be(e,t){switch(t){case"boolean":return"no"!=(e="string"==typeof e?e.toLowerCase():e)&&"false"!=e&&"0"!=e&&!!e;case"number":var n=parseFloat(e);return isNaN(n)?0:n;case"array":try{return JSON.parse(e)}catch(t){return(""+e).split(", ")}}return e}function we(e,t){var n={};Object.keys(t).forEach((function(r){e.virtual(r).get((function(){var e=re.appContainer;return n[r]=n[r]||(e?e.resolve(t[r]):{}),n[r]}))}))}function je(e,t){var n,r,o=e.hydrate(t),i=function(e,n){var r=n.ref,i=n.type;if(Array.isArray(i)&&i.length>0&&(r=i[0].ref),!r)return"continue";var s=g.getValue(e,t),a=function(e){return null==e||e instanceof v.Types.ObjectId?e:je(v.model(r),e)};if(Array.isArray(s))return g.setValue(e,s.map(a),o),"continue";g.setValue(e,a(s),o)};try{for(var s=Z(Object.entries(e.schema.obj)),a=s.next();!a.done;a=s.next()){var c=ee(a.value,2);i(c[0],c[1])}}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}return o}function Pe(e){var t=new m.PassThrough;return t.end(e),t}function Oe(e){return new Promise((function(t,n){var r=[];e.on("data",(function(e){r.push(e)})),e.on("error",n),e.on("end",(function(){return t(Buffer.concat(r))}))}))}var _e=function(e){function t(t,n){var r=e.call(this,n)||this;return null==t||t.on("data",(function(e){r.push(e)})),null==t||t.on("end",(function(){r.push(null)})),null==t||t.on("error",(function(e){r.emit("error",e)})),r}return Q(t,e),t.prototype._read=function(e){},t}(m.Readable);function Re(e,t){return new _e(e,t)}function xe(e,t){return void 0===t&&(t=null),new Promise((function(n,r){y.mkdir(e,{mode:t||511,recursive:!0},(function(e){e?r(e):n()}))}))}function Ce(e){return new Promise((function(t,n){y.readFile(e,(function(e,r){e?n(e):t(r)}))}))}function Se(e){return e instanceof Promise?e:Promise.resolve(e)}function ke(e){return void 0===e&&(e=1e3),new Promise((function(t){setTimeout((function(){t()}),e)}))}function Ae(e){return e.prototype.constructor.name}function Me(e){var t=e.toString().replace(/\/\*[\s\S]*?\*\//g,"").replace(/\/\/(.)*/g,"").replace(/{[\s\S]*}/,"").replace(/=>/g,"").trim(),n=t.indexOf("(")+1,r=t.length-1,o=t.substring(n,r).split(", "),i=[];return o.forEach((function(e){(e=e.replace(/=[\s\S]*/g,"").trim()).length>0&&i.push(e)})),i}function Te(e){return function(){var t=Array.from(arguments);return t.unshift(this),this.helper[e].apply(this.helper,t)}}function Ie(e){return Array.isArray(e)?e.map(Ie):e instanceof b.ObjectId?e.toHexString():null}function Ee(e,t){Array.from(Object.values(e.sockets.sockets)).forEach(t)}function Fe(e,t){return Math.round(De(e,t))}function De(e,t){return e+Math.random()*(t-e)}function Ne(e,t){return new Promise((function(n,r){e.delete(t,(function(e){var o=e;!e||he(o=e.message||e||"")&&o.startsWith("FileNotFound")?n(t.toHexString()):r(o)}))}))}var qe=function(){return!0};function ze(e,t,n){var r,o;if(n=n||qe,fe(t)||le(t)||de(t))return t;if(ce(t))return e=ce(e)?Array.from(e):[],t.forEach((function(r,o){n(r,o,e,t)&&(e.length>o?e[o]=ze(e[o],r,n):e.push(ze(null,r,n)))})),e;var i=de(t.__shouldCopy)?t.__shouldCopy:function(){return!0};if(pe(t.constructor)){if(!1===t.__shouldCopy)return t;if(!e)try{e=new t.constructor}catch(n){var s=t.constructor.prototype||t.prototype;e=Object.create(s)}}else e=Object.assign({},e||{});if(e instanceof Map){if(t instanceof Map)try{for(var a=Z(t.entries()),c=a.next();!c.done;c=a.next()){var u=ee(c.value,2),l=u[0],f=u[1];n(f,l,e,t)&&e.set(l,i(l,f)?ze(e.get(l),f,n):f)}}catch(e){r={error:e}}finally{try{c&&!c.done&&(o=a.return)&&o.call(a)}finally{if(r)throw r.error}}return e}var h=Object.keys(t);e=h.reduce((function(e,r){return n(t[r],r,e,t)?(e[r]=i(r,t[r])?ze(e[r],t[r],n):t[r],e):e}),e);var d=Object.getOwnPropertyDescriptors(t);return(h=Object.keys(d).filter((function(e){return h.indexOf(e)<0}))).forEach((function(t){Object.defineProperty(e,t,d[t])})),e}var Be=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};function Le(e,t){if(e)return Array.isArray(t)&&t.every((function(e){try{return new b.ObjectId(e)instanceof b.ObjectId}catch(e){return!1}}));if(null===t)return!0;try{return new b.ObjectId(t)instanceof b.ObjectId}catch(e){return!1}}e.IsFile=function(){function e(){}return e.prototype.validate=function(e,t){return Le(ee(t.constraints||[],1)[0],e)},e}(),e.IsFile=Be([u.ValidatorConstraint()],e.IsFile),e.IsObjectId=function(){function e(){}return e.prototype.validate=function(e,t){var n=ee(t.constraints||[],2);n[0];return Le(n[1],e)},e}(),e.IsObjectId=Be([u.ValidatorConstraint()],e.IsObjectId);var Je=null;var He,Ue=Function,Ge=Symbol.for("fixture-token"),Ve=Symbol.for("job-token"),$e=Symbol.for("express-token"),Ye=Symbol.for("http-server-token"),We=Symbol.for("socket-server-token"),Xe=Symbol.for("parameter-token"),Qe=Symbol.for("di-container-token"),Ke=function(e,t,n){void 0===n&&(n=null),this.name=e,this.defaultValue=t,this.resolver=n},Ze=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},et=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},tt=L.default,nt=B.default,rt=["application/font-woff","application/font-woff2","application/x-font-opentype","application/x-font-truetype","application/x-font-datafork","font/woff","font/woff2","font/otf","font/ttf","font/datafork"],ot=["image/jpeg","image/jpg","image/png"],it=["postscriptName","fullName","familyName","subfamilyName","copyright","version","unitsPerEm","ascent","descent","lineGap","underlinePosition","underlineThickness","italicAngle","capHeight","xHeight","numGlyphs","characterSet","availableFeatures"];e.AssetProcessor=He=function(){function e(){}return e.checkTextFileType=function(e){return e.mime.indexOf("text")>=0||e.mime.indexOf("xml")>=0},e.fixTextFileType=function(e,t){return t.toString("utf8").indexOf("<svg")>=0?{ext:"svg",mime:"image/svg+xml"}:e},e.fileTypeFromBuffer=function(e){var t;return et(this,void 0,void 0,(function(){var n;return K(this,(function(r){switch(r.label){case 0:return[4,j.fromBuffer(e)];case 1:return n=null!==(t=r.sent())&&void 0!==t?t:{ext:"txt",mime:"text/plain"},He.checkTextFileType(n)?[2,He.fixTextFileType(n,e)]:[2,n]}}))}))},e.extractFontFormat=function(e){var t=e.constructor.name,n=e.directory.tag;switch(t){case"TTFFont":return"OTTO"===n?"opentype":"truetype";case"WOFF2Font":return"woff2";case"WOFFFont":return"woff";case"DFont":return"datafork"}return null},e.isImage=function(e){return ot.indexOf(e)>=0},e.copyImageMeta=function(e,t){return et(this,void 0,void 0,(function(){var n;return K(this,(function(r){switch(r.label){case 0:return[4,tt(e).rotate().toBuffer({resolveWithObject:!0})];case 1:return n=r.sent(),Object.assign(t,n.info),[2,n.data]}}))}))},e.isFont=function(e){return rt.indexOf(e)>=0},e.copyFontMeta=function(e,t){var n=nt.create(e);t.format=He.extractFontFormat(n),it.forEach((function(e){t[e]=n[e]}))},e.prototype.process=function(e,t,n){return et(this,void 0,void 0,(function(){return K(this,(function(r){switch(r.label){case 0:return He.isImage(n.mime)?[4,He.copyImageMeta(e,t)]:[3,2];case 1:e=r.sent(),r.label=2;case 2:return He.isFont(n.mime)&&He.copyFontMeta(e,t),[2,e]}}))}))},e}(),e.AssetProcessor=He=Ze([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped)],e.AssetProcessor);var st=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},at=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},ct=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}};e.Configuration=function(){function e(e){var t=this;H.default.config(),this.paramMap={},(e||[]).forEach((function(e){return t.add(e)}))}return e.prototype.add=function(e){var t=this.paramMap[e.name]||e;t.defaultValue=e.defaultValue,t.resolver=e.resolver||t.resolver,this.paramMap[e.name]=t},e.prototype.hasParam=function(e){return!!this.paramMap[e]},e.prototype.resolve=function(e){var t=this.paramMap[e];if(!t)throw new Error("Parameter with name: '"+e+"' does not exists in configuration");var n=t.name.replace(/\.?([A-Z|0-9]+)/g,(function(e,t){return"_"+t.toLowerCase()})).replace(/\./gi,"_").replace(/^_/,"").toUpperCase(),r=process.env[n];if(void 0!==r){var o=de(t.resolver)?t.resolver(r):be(r,se(t.defaultValue));return console.log("Processing param value",e,n,r,o),o}return t.defaultValue},e}(),e.Configuration=st([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),ct(0,o.injectAll(Xe)),at("design:paramtypes",[Array])],e.Configuration);var ut=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},lt=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},ft=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.MongoConnector=function(){function e(e){this.configuration=e,this.conn=null,this.db=null,this.fsBucket=null}return Object.defineProperty(e.prototype,"connection",{get:function(){return this.conn},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"database",{get:function(){return this.db},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"bucket",{get:function(){return this.fsBucket},enumerable:!1,configurable:!0}),e.prototype.connect=function(){return ft(this,void 0,void 0,(function(){var e;return K(this,(function(t){switch(t.label){case 0:return this.db?[2,this.db]:(e=this,[4,v.connect(this.configuration.resolve("mongoUri"),{dbName:this.configuration.resolve("mongoDb"),user:this.configuration.resolve("mongoUser"),pass:this.configuration.resolve("mongoPassword"),useNewUrlParser:!0,useUnifiedTopology:!0})]);case 1:return e.conn=t.sent().connection,this.db=this.conn.db,this.fsBucket=new _.GridFSBucket(this.db,{bucketName:"assets"}),[2]}}))}))},e}(),e.MongoConnector=ut([o.injectable(),o.singleton(),lt("design:paramtypes",[e.Configuration])],e.MongoConnector);var ht=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},dt=function(){function e(e,t,n){this.mId=e,this.data=t,this.collection=n}return Object.defineProperty(e.prototype,"id",{get:function(){return this.mId.toHexString()},enumerable:!1,configurable:!0}),e.prototype.save=function(){return this.collection.updateOne({_id:this.mId},{$set:this.toJSON()})},e.prototype.load=function(){return ht(this,void 0,void 0,(function(){var e;return K(this,(function(t){switch(t.label){case 0:return[4,this.collection.findOne({_id:this.mId})];case 1:return e=t.sent(),this.deleted=!e,this.data=e||{},[2,this]}}))}))},e.prototype.toJSON=function(){var e=Object.assign({},this.data);return delete e._id,e.id=this.id,e},e}(),pt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},yt=L.default,vt={x:"number",y:"number",w:"number",h:"number"},gt=function(e){function t(t,n,r,o){var i=e.call(this,t,n,r)||this;return i.bucket=o,i}return Q(t,e),t.toCropRegion=function(e){var t=e;if(he(e))try{t=JSON.parse(e)}catch(e){return null}return ve(t,vt)?{width:Math.round(t.w),height:Math.round(t.h),top:Math.round(t.y),left:Math.round(t.x)}:null},t.toImage=function(e,n,r){return pt(this,void 0,void 0,(function(){var o,i,s,a,c,u,l,f;return K(this,(function(h){switch(h.label){case 0:return r=r||{},o=t.toCropRegion(n.crop),0!=Object.keys(r).length||o?(r.rotation=isNaN(r.rotation)?0:90*Math.round(r.rotation/90),r.canvasScaleX=isNaN(r.canvasScaleX)?1:Number(r.canvasScaleX),r.canvasScaleY=isNaN(r.canvasScaleY)?1:Number(r.canvasScaleY),r.scaleX=isNaN(r.scaleX)?1:Number(r.scaleX),r.scaleY=isNaN(r.scaleY)?1:Number(r.scaleY),r.crop=ue(r.crop)?r.crop:"true"==r.crop,[4,Oe(e)]):[2,e];case 1:i=h.sent(),h.label=2;case 2:return h.trys.push([2,16,,17]),s=t.toCropRegion(r.cropBefore||(r.crop?n.cropBefore:null)),a=t.toCropRegion(r.cropAfter||(r.crop?n.cropAfter:null)),[4,yt(i).metadata()];case 3:return c=h.sent(),u=c.width,l=c.height,s?[4,yt(i).extract(s).toBuffer()]:[3,5];case 4:return i=h.sent(),u=s.width,l=s.height,[3,7];case 5:return o?[4,yt(i).extract(o).toBuffer()]:[3,7];case 6:i=h.sent(),u=o.width,l=o.height,h.label=7;case 7:return 1===r.canvasScaleX&&1===r.canvasScaleY?[3,9]:(u=Math.round(u*r.canvasScaleX),l=Math.round(l*r.canvasScaleY),[4,yt(i).resize({width:u,height:l,background:"#00000000",fit:"contain"}).toBuffer()]);case 8:i=h.sent(),h.label=9;case 9:return 1===r.scaleX&&1===r.scaleY?[3,11]:(u=Math.round(u*r.scaleX),l=Math.round(l*r.scaleY),[4,yt(i).resize({width:u,height:l,background:"#00000000",fit:"fill"}).toBuffer()]);case 10:i=h.sent(),h.label=11;case 11:return a?[4,yt(i).extract(a).toBuffer()]:[3,13];case 12:i=h.sent(),h.label=13;case 13:return 0===r.rotation?[3,15]:[4,yt(i).rotate(r.rotation).toBuffer()];case 14:i=h.sent(),h.label=15;case 15:return[2,Pe(i)];case 16:return f=h.sent(),console.log("Asset image conversion error",f),[2,Pe(i)];case 17:return[2]}}))}))},Object.defineProperty(t.prototype,"filename",{get:function(){return this.data.filename},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contentType",{get:function(){return this.data.contentType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"metadata",{get:function(){return this.data.metadata},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"stream",{get:function(){return this.bucket.openDownloadStream(this.mId)},enumerable:!1,configurable:!0}),t.prototype.unlink=function(){return pt(this,void 0,void 0,(function(){return K(this,(function(e){return[2,Ne(this.bucket,this.mId)]}))}))},t.prototype.getBuffer=function(){return Oe(this.stream)},t.prototype.download=function(e){return pt(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return(e=Object.assign(this.metadata,e||{})).downloadCount=isNaN(e.downloadCount)||!e.firstDownload?1:e.downloadCount+1,e.firstDownload=e.firstDownload||new Date,e.lastDownload=new Date,[4,this.collection.updateOne({_id:this.mId},{$set:{metadata:e}})];case 1:return t.sent(),[2,this.stream]}}))}))},t.prototype.getImage=function(e){return void 0===e&&(e=null),pt(this,void 0,void 0,(function(){return K(this,(function(n){return[2,t.toImage(this.stream,this.metadata,e)]}))}))},t.prototype.downloadImage=function(e,n){return pt(this,void 0,void 0,(function(){var r,o;return K(this,(function(i){switch(i.label){case 0:return o=(r=t).toImage,[4,this.download(n)];case 1:return[2,o.apply(r,[i.sent(),this.metadata,e])]}}))}))},t}(dt),mt=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},bt=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},wt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.Assets=function(){function t(e,t){var n;this.connector=e,this.assetProcessor=t,this.bucket=e.bucket,this.collection=null===(n=e.database)||void 0===n?void 0:n.collection("assets.files")}return t.prototype.write=function(t,n,r){return void 0===n&&(n=null),void 0===r&&(r=null),wt(this,void 0,void 0,(function(){var o,i,s,a;return K(this,(function(c){switch(c.label){case 0:return o=Re(t),[4,Oe(t)];case 1:i=c.sent(),s={ext:"",mime:n},c.label=2;case 2:return c.trys.push([2,4,,5]),[4,e.AssetProcessor.fileTypeFromBuffer(i)];case 3:return s=c.sent(),[3,5];case 4:if(a=c.sent(),!s.mime)throw"Can't determine mime type";return console.log("Can't determine mime type",a),[3,5];case 5:return r=r||{},[2,this.upload(o,s,r)]}}))}))},t.prototype.writeBuffer=function(t,n,r){return void 0===n&&(n=null),void 0===r&&(r=null),wt(this,void 0,void 0,(function(){var o,i;return K(this,(function(s){switch(s.label){case 0:o={ext:"",mime:r},s.label=1;case 1:return s.trys.push([1,3,,4]),[4,e.AssetProcessor.fileTypeFromBuffer(t)];case 2:return o=s.sent(),[3,4];case 3:if(i=s.sent(),!o.mime)throw"Can't determine mime type";return console.log("Can't determine mime type",i),[3,4];case 4:return n=n||{},[4,this.assetProcessor.process(t,n,o)];case 5:return t=s.sent(),[2,this.upload(Pe(t),o,n)]}}))}))},t.prototype.writeUrl=function(e,t){return void 0===t&&(t=null),wt(this,void 0,void 0,(function(){var n;return K(this,(function(r){switch(r.label){case 0:return[4,J.default({url:e,responseType:"arraybuffer"})];case 1:return n=r.sent().data,[2,this.writeBuffer(n,t)]}}))}))},t.prototype.read=function(e){return wt(this,void 0,void 0,(function(){return K(this,(function(t){return[2,e?this.find({_id:new b.ObjectId(e)}):null]}))}))},t.prototype.find=function(e){return wt(this,void 0,void 0,(function(){var t;return K(this,(function(n){switch(n.label){case 0:return[4,this.collection.findOne(e)];case 1:return[2,(t=n.sent())?new gt(t._id,t,this.collection,this.bucket):null]}}))}))},t.prototype.findMany=function(e){return wt(this,void 0,void 0,(function(){var t,n,r,o,i,s,a;return K(this,(function(c){switch(c.label){case 0:return[4,this.collection.find(e).toArray()];case 1:t=c.sent()||[],n=[];try{for(r=Z(t),o=r.next();!o.done;o=r.next())(i=o.value)&&n.push(new gt(i._id,i,this.collection,this.bucket))}catch(e){s={error:e}}finally{try{o&&!o.done&&(a=r.return)&&a.call(r)}finally{if(s)throw s.error}}return[2,n]}}))}))},t.prototype.unlink=function(e){return wt(this,void 0,void 0,(function(){var t;return K(this,(function(n){switch(n.label){case 0:return[4,this.read(e)];case 1:return(t=n.sent())?[2,t.unlink()]:[2,null]}}))}))},t.prototype.upload=function(e,t,n){return wt(this,void 0,void 0,(function(){var r,o,i=this;return K(this,(function(s){return r=t.mime.trim(),o=(t.ext||"").trim(),(n=Object.assign({extension:o,downloadCount:0,firstDownload:null,lastDownload:null},n||{})).filename=n.filename||(new b.ObjectId).toHexString(),[2,new Promise((function(t,o){var s=i.bucket.openUploadStream(n.filename);e.pipe(s).on("error",(function(e){o(e.message||e)})).on("finish",(function(){var e=new gt(s.id,{filename:n.filename,contentType:r,metadata:n},i.collection,i.bucket);e.save().then((function(){t(e)}),(function(e){o(e.message||e)}))}))}))]}))}))},t}(),e.Assets=mt([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),bt("design:paramtypes",[e.MongoConnector,e.AssetProcessor])],e.Assets);var jt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},Pt=function(e){function t(t,n,r,o,i,s){var a=e.call(this,t,n,r)||this;return a.assets=o,a.progresses=i,a.jobMan=s,a}return Q(t,e),Object.defineProperty(t.prototype,"jobName",{get:function(){return this.data.jobName},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"jobParams",{get:function(){return this.data.jobParams},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"jobQue",{get:function(){return this.data.jobQue},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"progressId",{get:function(){return this.data.progressId},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"assetId",{get:function(){return this.data.assetId},enumerable:!1,configurable:!0}),t.prototype.unlink=function(){return jt(this,void 0,void 0,(function(){return K(this,(function(e){switch(e.label){case 0:return[4,this.load()];case 1:return e.sent(),this.progressId?[3,3]:[4,this.collection.deleteOne({_id:this.mId})];case 2:e.sent(),e.label=3;case 3:return[2,Ne(this.assets.bucket,new b.ObjectId(this.assetId))]}}))}))},t.prototype.startWorking=function(){var e=this;this.load().then((function(){e.deleted||(e.progresses.get(e.progressId).then((function(e){null==e||e.cancel()})),e.startWorkingOnAsset().then((function(){console.log("Started working on lazy asset: "+e.id)})).catch((function(t){console.log("Can't start working on lazy asset: "+e.id+"\nReason: "+t)})))}))},t.prototype.loadAsset=function(){return jt(this,void 0,void 0,(function(){return K(this,(function(e){switch(e.label){case 0:return[4,this.load()];case 1:return e.sent(),this.deleted?[2,null]:this.assetId?[2,this.assets.read(this.assetId)]:this.progressId?[4,this.progresses.waitToFinish(this.progressId)]:[3,3];case 2:return e.sent(),[2,this.loadAsset()];case 3:return[4,this.startWorkingOnAsset()];case 4:return e.sent(),[2,this.loadAsset()]}}))}))},t.prototype.writeAsset=function(e){return jt(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return this.data.assetId=e.id,[4,this.save()];case 1:return t.sent(),[2,e]}}))}))},t.prototype.startWorkingOnAsset=function(){return jt(this,void 0,void 0,(function(){var e;return K(this,(function(t){switch(t.label){case 0:return e=this.data,[4,this.progresses.create()];case 1:return e.progressId=t.sent().id,this.data.assetId=null,[4,this.save()];case 2:return t.sent(),[4,this.jobMan.enqueueWithName(this.data.jobName,Object.assign(Object.assign({},this.data.jobParams),{lazyId:this.id}))];case 3:return t.sent(),[2]}}))}))},t}(dt),Ot=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},_t=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Rt=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}},xt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},Ct=U.default;e.JobManager=function(){function e(e,t,n){var r=this;this.config=e,this.container=t,this.jobTypes=n||[],this.jobs=this.jobTypes.reduce((function(e,t){return e[Ae(t)]={perform:r.toPerformFunction(t)},e}),{})}return e.prototype.process=function(e,t){return void 0===t&&(t={}),xt(this,void 0,void 0,(function(){var n;return K(this,(function(r){n=null;try{n=this.resolveJobInstance(e,t)}catch(n){throw"Can't resolve params for job: "+Ae(e)+", with params: "+JSON.stringify(t)+". Reason: "+n}return[2,n.process()]}))}))},e.prototype.enqueueWithName=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n="main"),xt(this,void 0,void 0,(function(){var r;return K(this,(function(o){switch(o.label){case 0:return[4,this.tryResolveFromName(e,t)];case 1:return r=o.sent(),[4,this.queue.enqueue(n,r,[t])];case 2:return o.sent(),[2]}}))}))},e.prototype.enqueue=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n="main"),xt(this,void 0,void 0,(function(){var r;return K(this,(function(o){switch(o.label){case 0:return[4,this.tryResolveAndConnect(e,t)];case 1:return r=o.sent(),[4,this.queue.enqueue(n,r,[t])];case 2:return o.sent(),[2]}}))}))},e.prototype.enqueueAt=function(e,t,n,r){return void 0===n&&(n={}),void 0===r&&(r="main"),xt(this,void 0,void 0,(function(){var o;return K(this,(function(i){switch(i.label){case 0:return[4,this.tryResolveAndConnect(t,n)];case 1:return o=i.sent(),[4,this.queue.enqueueAt(e,r,o,[n])];case 2:return i.sent(),[2]}}))}))},e.prototype.enqueueIn=function(e,t,n,r){return void 0===n&&(n={}),void 0===r&&(r="main"),xt(this,void 0,void 0,(function(){var o;return K(this,(function(i){switch(i.label){case 0:return[4,this.tryResolveAndConnect(t,n)];case 1:return o=i.sent(),[4,this.queue.enqueueIn(e,r,o,[n])];case 2:return i.sent(),[2]}}))}))},e.prototype.schedule=function(e,t,n,r,o,i,s,a){var c=this;void 0===s&&(s={}),void 0===a&&(a="main");var u=[e,t,n,r,o].map((function(e){if(ae(e)){var t=e;return(t.min||0)+"-"+(t.max||0)}return ce(e)?e.join(","):""+e})).join(" "),l=Ae(i);return C.validate(u)?C.schedule(u,(function(){c.enqueue(i,s,a).catch((function(e){console.log("Can't enqueue job: '"+l+"' because: "+e)}))})):(console.log("Can't schedule the task: '"+l+"' because time expression is invalid."),null)},e.prototype.startProcessing=function(){return xt(this,void 0,void 0,(function(){return K(this,(function(e){switch(e.label){case 0:return this.initialize(),[4,this.worker.connect()];case 1:return e.sent(),[4,this.worker.start()];case 2:return e.sent(),[4,this.scheduler.connect()];case 3:return e.sent(),[4,this.scheduler.start()];case 4:return e.sent(),[2]}}))}))},e.prototype.tryResolve=function(e,t){var n=Ae(e);if(!this.jobs[n])throw"Can't find job with name: "+n+" so it can't be enqueued!";try{this.resolveJobInstance(e,t)}catch(e){throw"Can't resolve params for job: "+n+", with params: "+JSON.stringify(t)+". Reason: "+e}return n},e.prototype.initialize=function(){if(!this.queue){var e=this.config,t={password:e.resolve("redisPassword")},n=e.resolve("redisSentinels"),r=n?new Ct({sentinels:n,name:e.resolve("redisCluster")}):null,o={pkg:"ioredis",host:e.resolve("redisHost"),password:t.password,port:e.resolve("redisPort"),namespace:e.resolve("redisNamespace"),redis:r,options:t},i=e.resolve("workQueues");this.queue=new x.Queue({connection:o},this.jobs),this.worker=new x.Worker({connection:o,queues:i},this.jobs),this.worker.on("job",(function(e,t){console.log("working job "+e+" "+JSON.stringify(t))})),this.worker.on("reEnqueue",(function(e,t,n){console.log("reEnqueue job ("+n+") "+e+" "+JSON.stringify(t))})),this.worker.on("success",(function(e,t,n,r){console.log("job success "+e+" "+JSON.stringify(t)+" >> "+n+" ("+r+"ms)")})),this.worker.on("failure",(function(e,t,n,r){console.log("job failure "+e+" "+JSON.stringify(t)+" >> "+n+" ("+r+"ms)")})),this.worker.on("error",(function(e,t,n){console.log("error "+t+" "+JSON.stringify(n)+" >> "+e)})),this.scheduler=new x.Scheduler({connection:o},this.jobs)}},e.prototype.tryResolveFromName=function(e,t){var n=this.jobTypes.find((function(t){return Ae(t)==e}));if(!n)throw"Can't find job type with name: "+e+" so it can't be enqueued!";return this.tryResolveAndConnect(n,t)},e.prototype.tryResolveAndConnect=function(e,t){return xt(this,void 0,void 0,(function(){var n;return K(this,(function(r){switch(r.label){case 0:return this.initialize(),n=this.tryResolve(e,t),[4,this.queue.connect()];case 1:return r.sent(),[2,n]}}))}))},e.prototype.resolveJobInstance=function(e,t){var n=this.container.createChildContainer();return Object.keys(t).map((function(e){n.register(e,{useValue:t[e]})})),n.register(e,e),n.resolve(e)},e.prototype.toPerformFunction=function(e){var t=this;return function(n){return t.resolveJobInstance(e,n).process()}},e}(),e.JobManager=Ot([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),Rt(1,o.inject(Qe)),Rt(2,o.injectAll(Ve)),_t("design:paramtypes",[e.Configuration,Object,Array])],e.JobManager);var St=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},kt=function(e){function t(t,n,r,o){var i=e.call(this,t,n,r)||this;return i.client=o,i}return Q(t,e),Object.defineProperty(t.prototype,"current",{get:function(){return this.data.current},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"max",{get:function(){return this.data.max},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"message",{get:function(){return this.data.message},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"error",{get:function(){return this.data.error},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"canceled",{get:function(){return this.data.canceled},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"percent",{get:function(){return this.max>0?Math.round(this.current/this.max*100):0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"remaining",{get:function(){return this.max>0?this.max-this.current:0},enumerable:!1,configurable:!0}),t.prototype.createSubProgress=function(e,t,n){return St(this,void 0,void 0,(function(){return K(this,(function(r){switch(r.label){case 0:return t<=0&&e>0?[4,this.advance(e)]:[3,2];case 1:r.sent(),r.label=2;case 2:return null===n?[3,4]:(this.data.message=n,[4,this.save()]);case 3:r.sent(),r.label=4;case 4:return[2,new At(this,this.current,e,Math.max(t,1))]}}))}))},t.prototype.setMax=function(e){return St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:if(isNaN(e)||e<=0)throw"Max progress value must be bigger than zero";return this.data.max=e,[4,this.save()];case 1:return t.sent(),[2]}}))}))},t.prototype.setMessage=function(e){return St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return this.data.message=e,[4,this.save()];case 1:return t.sent(),[2]}}))}))},t.prototype.setError=function(e){return St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return this.data.error=e,[4,this.save()];case 1:return t.sent(),[2]}}))}))},t.prototype.advance=function(e){return void 0===e&&(e=1),St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:if(isNaN(e)||e<=0)throw"Advance value must be bigger than zero";return[4,this.load()];case 1:return t.sent(),this.deleted||this.canceled?[2,null]:(this.data.current=Math.min(this.max,this.current+e),[4,this.save()]);case 2:return t.sent(),this.client?(this.client.emit("background-progress",this.id),[2]):[2]}}))}))},t.prototype.cancel=function(){return St(this,void 0,void 0,(function(){return K(this,(function(e){switch(e.label){case 0:return this.data.canceled=!0,[4,this.save()];case 1:return e.sent(),[2]}}))}))},t}(dt),At=function(){function e(e,t,n,r){if(void 0===r&&(r=100),this.parent=e,this.progressFrom=t,this.progressValue=n,this.mMax=r,t<0)throw"Progress from must be bigger than or zero";if(n<=0)throw"Progress value must be bigger than zero";this.mCurrent=0}return Object.defineProperty(e.prototype,"id",{get:function(){return this.parent.id},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"current",{get:function(){return this.mCurrent},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"max",{get:function(){return this.mMax},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"message",{get:function(){return this.parent.message},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"error",{get:function(){return this.parent.error},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"percent",{get:function(){return this.parent.percent},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"remaining",{get:function(){return this.max-this.mCurrent},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"canceled",{get:function(){return!this.parent||this.parent.canceled},enumerable:!1,configurable:!0}),e.prototype.createSubProgress=function(t,n,r){return St(this,void 0,void 0,(function(){return K(this,(function(o){switch(o.label){case 0:return n<=0&&t>0?[4,this.advance(t)]:[3,2];case 1:o.sent(),o.label=2;case 2:return null===r?[3,4]:[4,this.setMessage(r)];case 3:o.sent(),o.label=4;case 4:return[2,new e(this,this.current,t,Math.max(n,1))]}}))}))},e.prototype.setMax=function(e){return St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:if(isNaN(e)||e<=0)throw"Max progress value must be bigger than zero";return this.mMax=e,[4,this.save()];case 1:return t.sent(),[2]}}))}))},e.prototype.setMessage=function(e){return St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return this.parent?[4,this.parent.setMessage(e)]:[2,null];case 1:return t.sent(),[2]}}))}))},e.prototype.setError=function(e){return St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return this.parent?[4,this.parent.setError(e)]:[2,null];case 1:return t.sent(),[2]}}))}))},e.prototype.advance=function(e){return void 0===e&&(e=1),St(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:if(isNaN(e)||e<=0)throw"Advance value must be bigger than zero";return this.mCurrent=Math.min(this.max,this.mCurrent+e),[4,this.save()];case 1:return t.sent(),[2]}}))}))},e.prototype.cancel=function(){return St(this,void 0,void 0,(function(){return K(this,(function(e){switch(e.label){case 0:return this.parent?[4,this.parent.cancel()]:[2,null];case 1:return e.sent(),[2]}}))}))},e.prototype.save=function(){return St(this,void 0,void 0,(function(){var e,t,n;return K(this,(function(r){switch(r.label){case 0:return e=this.max>0?this.mCurrent/this.max:0,t=this.progressFrom+Math.round(this.progressValue*e),n=this.parent.current,t<=n?[2,null]:[4,this.parent.advance(t)];case 1:return r.sent(),[2]}}))}))},e.prototype.load=function(){return St(this,void 0,void 0,(function(){return K(this,(function(e){return[2,null]}))}))},e.prototype.toJSON=function(){return this.parent.toJSON()},e}(),Mt=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Tt=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},It=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},Et=G.default;e.Progresses=function(){function e(e,t){this.connector=e,this.config=t;var n=this.config.resolve("mainEndpoint");this.client=n?Et(n,{path:"/socket"}):null,this.collection=e.database.collection("progresses")}return e.prototype.waitToFinish=function(e){return It(this,void 0,void 0,(function(){var t,n;return K(this,(function(r){switch(r.label){case 0:t=!1,n=null,r.label=1;case 1:return t?[3,5]:[4,this.get(e)];case 2:if(!(n=r.sent()))throw"Progress does not exists with id: "+e;if(n.error)throw n.error;return(t=100==n.percent)?[3,4]:[4,ke(150)];case 3:r.sent(),r.label=4;case 4:return[3,1];case 5:return[2,n]}}))}))},e.prototype.get=function(e){return It(this,void 0,void 0,(function(){return K(this,(function(t){return[2,e?this.find({_id:new b.ObjectId(e)}):null]}))}))},e.prototype.find=function(e){return It(this,void 0,void 0,(function(){var t;return K(this,(function(n){switch(n.label){case 0:return[4,this.collection.findOne(e)];case 1:return[2,(t=n.sent())?new kt(t._id,t,this.collection,this.client):null]}}))}))},e.prototype.create=function(e){return void 0===e&&(e=100),It(this,void 0,void 0,(function(){var t,n;return K(this,(function(r){switch(r.label){case 0:if(isNaN(e)||e<=0)throw"Max progress value must be bigger than zero";return t={current:0,max:e,message:"",error:"",canceled:!1},[4,this.collection.insertOne(t)];case 1:return n=r.sent(),[2,new kt(n.insertedId,t,this.collection,this.client)]}}))}))},e.prototype.remove=function(e){return It(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return[4,this.collection.deleteOne({_id:new b.ObjectId(e)})];case 1:return t.sent(),[2,e]}}))}))},e}(),e.Progresses=Mt([o.injectable(),o.singleton(),Tt("design:paramtypes",[e.MongoConnector,e.Configuration])],e.Progresses);var Ft=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Dt=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Nt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.LazyAssets=function(){function e(e,t,n,r){this.connector=e,this.assets=t,this.progresses=n,this.jobMan=r,this.collection=e.database.collection("lazyassets")}return e.prototype.create=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n="main"),Nt(this,void 0,void 0,(function(){var r,o,i,s;return K(this,(function(a){switch(a.label){case 0:return r=this.jobMan.tryResolve(e,Object.assign(Object.assign({},t),{lazyId:""})),o={jobName:r,jobParams:t,jobQue:n},[4,this.find(o)];case 1:return(i=a.sent())?[2,i]:[4,this.collection.insertOne(o)];case 2:return s=a.sent(),[2,new Pt(s.insertedId,o,this.collection,this.assets,this.progresses,this.jobMan)]}}))}))},e.prototype.read=function(e){return Nt(this,void 0,void 0,(function(){return K(this,(function(t){return[2,e?this.find({_id:new b.ObjectId(e)}):null]}))}))},e.prototype.find=function(e){return Nt(this,void 0,void 0,(function(){var t;return K(this,(function(n){switch(n.label){case 0:return[4,this.collection.findOne(e)];case 1:return[2,(t=n.sent())?new Pt(t._id,t,this.collection,this.assets,this.progresses,this.jobMan):null]}}))}))},e.prototype.unlink=function(e){return Nt(this,void 0,void 0,(function(){var t;return K(this,(function(n){switch(n.label){case 0:return[4,this.read(e)];case 1:return(t=n.sent())?[2,t.unlink()]:[2,null]}}))}))},e}(),e.LazyAssets=Ft([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),Dt("design:paramtypes",[e.MongoConnector,e.Assets,e.Progresses,e.JobManager])],e.LazyAssets);var qt=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},zt=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Bt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.AssetResolver=function(){function e(e,t){this.assets=e,this.lazyAssets=t}return e.prototype.resolve=function(e,t){return void 0===t&&(t=!1),Bt(this,void 0,void 0,(function(){var n,r;return K(this,(function(o){switch(o.label){case 0:return n=null,t?[4,this.lazyAssets.read(e)]:[3,2];case 1:return(r=o.sent())?[2,r.loadAsset()]:[2,null];case 2:return[4,this.assets.read(e)];case 3:return(n=o.sent())?[3,5]:[4,this.lazyAssets.read(e)];case 4:return(r=o.sent())?[2,r.loadAsset()]:[2,null];case 5:return[2,n]}}))}))},e}(),e.AssetResolver=qt([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),zt("design:paramtypes",[e.Assets,e.LazyAssets])],e.AssetResolver);var Lt=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Jt=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Ht=V.default,Ut=$.default;e.BackendProvider=function(){function e(){this.express=Ht(),this.server=A.createServer(this.express)}return Object.defineProperty(e.prototype,"io",{get:function(){return this.ioServer=this.ioServer||Ut(this.server,{path:"/socket"}),this.ioServer},enumerable:!1,configurable:!0}),e}(),e.BackendProvider=Lt([o.injectable(),o.singleton(),Jt("design:paramtypes",[])],e.BackendProvider);var Gt=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Vt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.CacheProcessor=function(){function e(){}return e.prototype.serialize=function(e){return Vt(this,void 0,void 0,(function(){return K(this,(function(t){return[2,e]}))}))},e.prototype.deserialize=function(e){return Vt(this,void 0,void 0,(function(){return K(this,(function(t){return[2,e]}))}))},e}(),e.CacheProcessor=Gt([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped)],e.CacheProcessor);var $t=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Yt=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Wt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.Cache=function(){function e(e,t,n){this.connector=e,this.config=t,this.cacheProcessor=n}return e.prototype.prepare=function(){return Wt(this,void 0,void 0,(function(){return K(this,(function(e){switch(e.label){case 0:if(this.collection)return[2];if(!this.connector.database)throw new Error("You can't use cache without mongo connection!");return this.collection=this.connector.database.collection(this.config.resolve("cacheCollection")),[4,this.collection.createIndex({expiresAt:1},{expireAfterSeconds:0})];case 1:return e.sent(),[2]}}))}))},e.prototype.set=function(e,t,n,r,o){return void 0===r&&(r=null),void 0===o&&(o={}),Wt(this,void 0,void 0,(function(){var i,s,a;return K(this,(function(c){switch(c.label){case 0:return[4,this.prepare()];case 1:return c.sent(),s={_id:e},[4,this.cacheProcessor.serialize(t)];case 2:return s.data=c.sent(),[4,this.cacheProcessor.serialize(o)];case 3:return s.tags=c.sent(),s.expirationTimestamp=r,i=s,n&&(a=Math.round((new Date).getTime()/1e3),i.expiresAt=a+n),[4,this.collection.updateOne({_id:e},{$set:i},{upsert:!0})];case 4:return c.sent(),[2,t]}}))}))},e.prototype.get=function(e){return Wt(this,void 0,void 0,(function(){var t,n;return K(this,(function(r){switch(r.label){case 0:return[4,this.prepare()];case 1:return r.sent(),[4,this.collection.findOne({_id:e})];case 2:if(t=r.sent(),n=Math.round((new Date).getTime()/1e3),t&&t.expiresAt&&t.expiresAt<n&&(t=null),!t)throw new Error("Cache probably doesn't exists with key: "+e);return[4,this.cacheProcessor.deserialize(t.data)];case 3:return[2,r.sent()]}}))}))},e.prototype.getOrSet=function(e,t,n,r,o){return void 0===r&&(r=null),void 0===o&&(o={}),Wt(this,void 0,void 0,(function(){var i,s;return K(this,(function(a){switch(a.label){case 0:return a.trys.push([0,2,,5]),[4,this.get(e)];case 1:return[2,a.sent()];case 2:return a.sent(),i=this.set,s=[e],[4,t()];case 3:return[4,i.apply(this,s.concat([a.sent(),n,r,o]))];case 4:return[2,a.sent()];case 5:return[2]}}))}))},e.prototype.delete=function(e){return Wt(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return[4,this.prepare()];case 1:return t.sent(),[4,this.collection.deleteOne({_id:e})];case 2:return t.sent(),[2]}}))}))},e}(),e.Cache=$t([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),Yt("design:paramtypes",[e.MongoConnector,e.Configuration,e.CacheProcessor])],e.Cache);var Xt=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Qt=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.EndpointProvider=function(){function e(){}return e.prototype.configure=function(e){return Qt(this,void 0,void 0,(function(){return K(this,(function(t){return console.log("Express app is mounted to: "+e.mountpath),[2]}))}))},e}(),e.EndpointProvider=Xt([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped)],e.EndpointProvider);var Kt=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Zt=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},en=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}},tn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.Fixtures=function(){function e(e){this.fixtures=e}return e.prototype.load=function(){return tn(this,void 0,void 0,(function(){var e,t,n,r,o;return K(this,(function(i){switch(i.label){case 0:if(!this.fixtures)return[2];i.label=1;case 1:i.trys.push([1,6,7,8]),e=Z(this.fixtures),t=e.next(),i.label=2;case 2:return t.done?[3,5]:[4,t.value.load()];case 3:i.sent(),i.label=4;case 4:return t=e.next(),[3,2];case 5:return[3,8];case 6:return n=i.sent(),r={error:n},[3,8];case 7:try{t&&!t.done&&(o=e.return)&&o.call(e)}finally{if(r)throw r.error}return[7];case 8:return[2]}}))}))},e}(),e.Fixtures=Kt([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),en(0,o.injectAll(Ge)),Zt("design:paramtypes",[Array])],e.Fixtures);var nn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},rn=L.default,on=function(){function e(e,t,n){this.folder=e,this.handler=n,this.thumb=I.v4(),this.big=I.v4(),this.targetSize=t||{width:250,height:250}}return e.prototype.serve=function(e){return nn(this,void 0,void 0,(function(){var t,n,r,o,i,s,a,c,u,l,f;return K(this,(function(h){switch(h.label){case 0:return t=e==this.thumb,[4,this.handler.hasResult(t)];case 1:return h.sent()?[2,this.handler.serveResult(t)]:(r=rn,[4,this.handler.getOriginal()]);case 2:return[4,(n=r.apply(void 0,[h.sent()]).rotate()).metadata()];case 3:return o=h.sent(),i=o.width/o.height,s=t?this.targetSize.width/this.targetSize.height:1,a=t?Math.max(this.targetSize.width,this.targetSize.height):1500,c=i>s?a:Math.round(a/i),u=Math.round(c*i),l=n.resize(u,c),[4,t?l.extract({left:Math.floor((u-this.targetSize.width)/2),top:Math.floor((c-this.targetSize.height)/2),width:this.targetSize.width,height:this.targetSize.height}).toBuffer():l.toBuffer()];case 4:return f=h.sent(),[4,this.handler.writeResult(t,f)];case 5:return h.sent(),[2,this.handler.serveResult(t)]}}))}))},e}(),sn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},an=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};e.GalleryCache=function(){function e(){this.imgCache={}}return e.prototype.put=function(e){this.imgCache[e.thumb]=e,this.imgCache[e.big]=e},e.prototype.serve=function(e){var t=this.imgCache[e];return t?t.serve(e):null},e.prototype.create=function(e,t,n){var r=new on(e,t,n);return this.put(r),r},e}(),e.GalleryCache=sn([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),an("design:paramtypes",[])],e.GalleryCache);var cn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},un=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},ln=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},fn=L.default;e.Gallery=function(){function e(e,n){this.config=e,this.galleryCache=n,this.cache={},this.dir=this.config.resolve("galleryDir"),this.output=t.join(this.config.resolve("cacheDir"),"gallery")}return e.prototype.getFolder=function(e,n){return void 0===n&&(n=null),ln(this,void 0,void 0,(function(){var r=this;return K(this,(function(o){return this.cache[e]=this.cache[e]||new Promise((function(o){y.lstat(t.join(r.dir,e),(function(t,i){!t&&i.isDirectory()?r.readRecursive(e,"",n).then(o,(function(){return o([])})):o([])}))})),[2,this.cache[e]]}))}))},e.prototype.readRecursive=function(e,n,r){var o=this;return new Promise((function(i){y.readdir(t.join(o.dir,e),(function(s,a){if(s)i([]);else{var c=a.map((function(i){return new Promise((function(s){return ln(o,void 0,void 0,(function(){var o,a,c=this;return K(this,(function(u){return o=t.join(e,i),a=t.join(this.dir,o),y.lstat(a,(function(e,u){e?s([]):u.isDirectory()?c.readRecursive(o,t.join(n,i),r).then(s):fn(a).rotate().metadata().then((function(){var e=function(e){return t.join(c.output,o.replace(/.([a-z|A-Z]+)$/gi,(function(t){return"-"+(e?"thumb":"big")+t})))};s([c.galleryCache.create(n,r,{getOriginal:function(){return new Promise((function(e,t){y.readFile(a,(function(n,r){n?t(n):e(r)}))}))},writeResult:function(n,r){return new Promise((function(o,i){return ln(c,void 0,void 0,(function(){var s;return K(this,(function(a){switch(a.label){case 0:return s=e(n),[4,xe(t.dirname(s))];case 1:return a.sent(),y.writeFile(s,r,(function(e){e?i(e):o()})),[2]}}))}))}))},hasResult:function(t){return new Promise((function(n){y.access(e(t),y.constants.R_OK,(function(e){n(!e)}))}))},serveResult:function(t){return new Promise((function(n,r){y.readFile(e(t),(function(e,t){e?r(e):n(t)}))}))}})])}),(function(){return s([])}))})),[2]}))}))}))}));Promise.all(c).then((function(e){i([].concat.apply([],e))}))}}))}))},e}(),e.Gallery=cn([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),un("design:paramtypes",[e.Configuration,e.GalleryCache])],e.Gallery);var hn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},dn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},pn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.IdGenerator=function(){function e(e){this.config=e,this.prefix=e.resolve("idPrefix"),this.separator=e.resolve("idSeparator"),this.chars=e.resolve("idChars"),this.parts=e.resolve("idParts")}return e.prototype.generate=function(e){return pn(this,void 0,void 0,(function(){var t,n,r;return K(this,(function(o){switch(o.label){case 0:t=null,n=0,r=!0,o.label=1;case 1:return r&&n<5?(t=this.generateId(),[4,e(t)]):[3,3];case 2:return r=o.sent(),n++,[3,1];case 3:if(r)throw"Couldn't generate an unique id..";return[2,t]}}))}))},e.prototype.generateId=function(){var e=this;return this.prefix+this.parts.map((function(t){for(var n="",r=0;r<t;r++){var o=Fe(0,e.chars.length-1);n+=e.chars[o]}return n})).join(this.separator)},e}(),e.IdGenerator=hn([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),dn("design:paramtypes",[e.Configuration])],e.IdGenerator);var yn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},vn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};e.TranslationProvider=function(){function e(e){this.config=e,this.cache={}}return e.prototype.getDictionary=function(e){return this.cache[e]=this.cache[e]||J.default.get(this.config.resolve("translationsTemplate").replace("[lang]",e)).then((function(e){return e.data}),(function(e){return{message:e}})),this.cache[e]},e}(),e.TranslationProvider=yn([o.injectable(),o.singleton(),vn("design:paramtypes",[e.Configuration])],e.TranslationProvider);var gn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},mn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},bn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.Translator=function(){function e(e){this.translationProvider=e,this.cache={}}return e.prototype.getDictionary=function(e){return bn(this,void 0,void 0,(function(){var t;return K(this,(function(n){switch(n.label){case 0:return[4,this.translationProvider.getDictionary(e)];case 1:return t=n.sent(),this.cache[e]=t,[2,t]}}))}))},e.prototype.getTranslationSync=function(e,t,n){if(!he(t)||!t.length)throw new Error('Parameter "key" required');var r=me(this.cache[e],t,t)||t;return this.interpolate(r,n)},e.prototype.getTranslation=function(e,t,n){var r=this;if(!he(t)||!t.length)throw new Error('Parameter "key" required');return this.getDictionary(e).then((function(e){var o=me(e,t,t)||t;return r.interpolate(o,n)}))},e.prototype.getTranslations=function(e){for(var t=this,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return new Promise((function(r){Promise.all(n.map((function(n){return t.getTranslation(e,n)}))).then((function(e){r(n.reduce((function(t,n,r){return t[n]=e[r],t}),{}))}))}))},e.prototype.interpolate=function(e,t){return"string"==typeof e?this.interpolateString(e,t):"function"==typeof e?e(t):e},e.prototype.interpolateString=function(e,t){return e&&t?e.replace(/{{\s?([^{}\s]*)\s?}}/g,(function(e,n){var r=me(t,n);return ie(r)?r:e})):e},e}(),e.Translator=gn([o.injectable(),o.singleton(),mn("design:paramtypes",[e.TranslationProvider])],e.Translator);var wn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},jn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Pn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.TemplateRenderer=function(){function e(e,t){this.translator=e,this.config=t,this.templates={},Y.registerHelper("object",(function(e){return e.hash})),Y.registerHelper("now",(function(){return(new Date).getTime()})),Y.registerHelper("keys",(function(e){return e?Object.keys(e):[]})),Y.registerHelper("translate",(function(t,n){return e.getTranslationSync(this.language,t,n)}))}return e.prototype.init=function(){return this.initPromise=this.initPromise||this.parseTemplates(this.config.resolve("templatesDir"),[]),this.initPromise},e.prototype.parseTemplates=function(e,n){return Pn(this,void 0,void 0,(function(){var r=this;return K(this,(function(o){return[2,new Promise((function(o){y.readdir(e,(function(i,s){return Pn(r,void 0,void 0,(function(){var r,i,a,c,u,l,f,h,d,p,v;return K(this,(function(g){switch(g.label){case 0:g.trys.push([0,6,7,8]),r=Z(s),i=r.next(),g.label=1;case 1:return i.done?[3,5]:(a=i.value,c=t.join(e,a),y.lstatSync(c).isDirectory()?[4,this.parseTemplates(t.join(e,a),n.concat([a]))]:[3,3]);case 2:return g.sent(),[3,4];case 3:(u=a.split(".")).pop(),l=u.join("."),f=n.concat([l]).join("-"),h=y.readFileSync(c).toString("utf8"),this.templates[f]=Y.compile(h),Y.registerPartial(f,h),g.label=4;case 4:return i=r.next(),[3,1];case 5:return[3,8];case 6:return d=g.sent(),p={error:d},[3,8];case 7:try{i&&!i.done&&(v=r.return)&&v.call(r)}finally{if(p)throw p.error}return[7];case 8:return o(),[2]}}))}))}))}))]}))}))},e.prototype.render=function(e,t,n){return Pn(this,void 0,void 0,(function(){var r,o;return K(this,(function(i){switch(i.label){case 0:return[4,this.init()];case 1:return i.sent(),[4,this.translator.getDictionary(t)];case 2:return i.sent(),this.templates[e]?(n=Object.assign({language:t},n||{}),(r=this.templates[e](n))instanceof Error?[4,Promise.reject(r)]:[3,4]):[2,Promise.reject("Template not found with name: "+e)];case 3:return o=i.sent(),[3,5];case 4:o=r,i.label=5;case 5:return[2,o]}}))}))},e}(),e.TemplateRenderer=wn([o.injectable(),o.singleton(),jn("design:paramtypes",[e.Translator,e.Configuration])],e.TemplateRenderer);var On=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},_n=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Rn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.MailSender=function(){function e(e,t){this.config=e,this.renderer=t,this.transporter=E.createTransport({host:this.config.resolve("smtpHost"),port:this.config.resolve("smtpPort"),auth:{user:this.config.resolve("smtpUser"),pass:this.config.resolve("smtpPassword")}})}return Object.defineProperty(e.prototype,"translator",{get:function(){return this.renderer.translator},enumerable:!1,configurable:!0}),e.prototype.sendMail=function(e,t){return Rn(this,void 0,void 0,(function(){var n,r;return K(this,(function(o){switch(o.label){case 0:return[4,this.translator.getTranslation(e,t.subject||"-")];case 1:return n=o.sent(),[4,this.renderer.render(t.template,e,t.context)];case 2:return r=o.sent(),[2,this.transporter.sendMail({from:t.from||this.config.resolve("mailSenderAddress"),to:t.to,attachments:t.attachments,subject:n,html:r})]}}))}))},e}(),e.MailSender=On([o.injectable(),o.singleton(),_n("design:paramtypes",[e.Configuration,e.TemplateRenderer])],e.MailSender);var xn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Cn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Sn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.MemoryCache=function(){function e(e){this.cache=e,this.cacheMap=new Map}return e.prototype.set=function(e,t,n,r,o){return void 0===r&&(r=null),void 0===o&&(o={}),Sn(this,void 0,void 0,(function(){var i,s;return K(this,(function(a){return i=Math.round((new Date).getTime()/1e3),s=Math.min(isNaN(n)?Number.MAX_SAFE_INTEGER:n,3600),this.cacheMap.set(e,{_id:e,data:t,expirationTimestamp:s,expiresAt:i+s}),[2,this.cache.set(e,t,n,r,o)]}))}))},e.prototype.get=function(e){return Sn(this,void 0,void 0,(function(){var t,n,r,o;return K(this,(function(i){switch(i.label){case 0:return t=this.cacheMap.get(e),n=Math.round((new Date).getTime()/1e3),r=3600,t&&t.expiresAt&&t.expiresAt<n&&(r=t.expirationTimestamp,t=null),t?[3,2]:[4,this.cache.get(e)];case 1:return o=i.sent(),this.cacheMap.set(e,{_id:e,data:o,expirationTimestamp:r,expiresAt:n+r}),[2,o];case 2:return[2,t.data]}}))}))},e.prototype.getOrSet=function(e,t,n,r,o){return void 0===r&&(r=null),void 0===o&&(o={}),Sn(this,void 0,void 0,(function(){var i,s;return K(this,(function(a){switch(a.label){case 0:return a.trys.push([0,2,,5]),[4,this.get(e)];case 1:return[2,a.sent()];case 2:return a.sent(),i=this.set,s=[e],[4,t()];case 3:return[4,i.apply(this,s.concat([a.sent(),n,r,o]))];case 4:return[2,a.sent()];case 5:return[2]}}))}))},e.prototype.delete=function(e){return Sn(this,void 0,void 0,(function(){return K(this,(function(t){switch(t.label){case 0:return this.cacheMap.delete(e),[4,this.cacheMap.delete(e)];case 1:return t.sent(),[2]}}))}))},e}(),e.MemoryCache=xn([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped),Cn("design:paramtypes",[e.Cache])],e.MemoryCache);var kn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},An=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},Mn={id:"5a3cdf7c6a9cf0ba32feccdf",email:"admin@site.com",password:"",roles:["admin"]};e.UserManager=function(){function e(){}return e.prototype.getByCredentials=function(e){return An(this,void 0,void 0,(function(){var t;return K(this,(function(n){switch(n.label){case 0:return Mn.email!=e.email?[3,1]:(t=Mn,[3,3]);case 1:return[4,Promise.reject("message.login.error")];case 2:t=n.sent(),n.label=3;case 3:return[2,t]}}))}))},e.prototype.getById=function(e){return An(this,void 0,void 0,(function(){return K(this,(function(t){return[2,Mn.id==e?Mn:null]}))}))},e.prototype.serialize=function(e){return An(this,void 0,void 0,(function(){var t;return K(this,(function(n){return delete(t=Object.assign({},e)).password,[2,t]}))}))},e}(),e.UserManager=kn([o.injectable(),o.scoped(o.Lifecycle.ContainerScoped)],e.UserManager);var Tn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},In=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},En=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}},Fn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},Dn=function(){function e(e,t){this.assets=e,this.assetResolver=t}return e.prototype.upload=function(e){return Fn(this,void 0,void 0,(function(){var t,n,r;return K(this,(function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),t="application/octet-stream"===e.mimetype?null:e.mimetype,[4,this.assets.writeBuffer(e.buffer,{filename:e.filename},t)];case 1:return[2,o.sent().toJSON()];case 2:throw n=o.sent(),r=(null==n?void 0:n.message)||n||"Unknown error",new i.HttpError(400,"Asset can't be uploaded.\n"+r);case 3:return[2]}}))}))},e.prototype.uploadUrl=function(e){return Fn(this,void 0,void 0,(function(){var t,n;return K(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,this.assets.writeUrl(e.url,e)];case 1:return[2,r.sent().toJSON()];case 2:throw t=r.sent(),n=(null==t?void 0:t.message)||t||"Unknown error",new i.HttpError(400,"Asset can't be uploaded.\n"+n);case 3:return[2]}}))}))},e.prototype.getImageRotation=function(e,t,n,r){return void 0===r&&(r=0),Fn(this,void 0,void 0,(function(){var o;return K(this,(function(i){switch(i.label){case 0:return[4,this.getAsset("Image",e,t.lazy,n)];case 1:return o=i.sent(),t.rotation=t.rotation||r,[2,o.downloadImage(t)]}}))}))},e.prototype.getImage=function(e,t,n){return Fn(this,void 0,void 0,(function(){return K(this,(function(r){return[2,this.getImageRotation(e,t,n)]}))}))},e.prototype.getFile=function(e,t,n){return Fn(this,void 0,void 0,(function(){return K(this,(function(r){switch(r.label){case 0:return[4,this.getAsset("Asset",e,t,n)];case 1:return[2,r.sent().download()]}}))}))},e.prototype.getAsset=function(e,t,n,r){var o,s;return Fn(this,void 0,void 0,(function(){var a,c;return K(this,(function(u){switch(u.label){case 0:return[4,this.assetResolver.resolve(t,n)];case 1:if(!(a=u.sent()))throw new i.HttpError(404,e+" with id: '"+t+"' not found.");if(null===(o=a.metadata)||void 0===o?void 0:o.classified)throw new i.HttpError(403,e+" is classified, and can be only downloaded from a custom url.");return(c=null===(s=a.metadata)||void 0===s?void 0:s.extension)&&r.header("content-disposition","inline; filename="+a.filename+"."+c),a.contentType&&r.header("content-type",a.contentType),[2,a]}}))}))},e}();Tn([i.Authorized(),i.Post(""),En(0,i.UploadedFile("file")),In("design:type",Function),In("design:paramtypes",[Object]),In("design:returntype",Promise)],Dn.prototype,"upload",null),Tn([i.Authorized(),i.Post("url"),En(0,i.Body()),In("design:type",Function),In("design:paramtypes",[Object]),In("design:returntype",Promise)],Dn.prototype,"uploadUrl",null),Tn([i.Get("/image/:id/:rotation"),En(0,i.Param("id")),En(1,i.QueryParams()),En(2,i.Res()),En(3,i.Param("rotation")),In("design:type",Function),In("design:paramtypes",[String,Object,Object,Number]),In("design:returntype",Promise)],Dn.prototype,"getImageRotation",null),Tn([i.Get("/image/:id"),En(0,i.Param("id")),En(1,i.QueryParams()),En(2,i.Res()),In("design:type",Function),In("design:paramtypes",[String,Object,Object]),In("design:returntype",Promise)],Dn.prototype,"getImage",null),Tn([i.Get("/:id"),En(0,i.Param("id")),En(1,i.QueryParam("lazy")),En(2,i.Res()),In("design:type",Function),In("design:paramtypes",[String,Boolean,Object]),In("design:returntype",Promise)],Dn.prototype,"getFile",null),Dn=Tn([o.injectable(),i.Controller("/assets"),In("design:paramtypes",[e.Assets,e.AssetResolver])],Dn);var Nn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},qn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},zn=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}},Bn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.AuthController=function(){function e(e,t){this.config=e,this.userManager=t}return e.prototype.login=function(e,t){return Bn(this,void 0,void 0,(function(){var t,n,o;return K(this,(function(s){switch(s.label){case 0:return s.trys.push([0,4,,5]),[4,this.userManager.getByCredentials(e)];case 1:return t=s.sent(),[4,D.compare(e.password,t.password)];case 2:if(!0!==s.sent())throw"message.login.error";return n={token:r.sign({id:t._id||t.id},this.config.resolve("jwtSecret"))},[4,this.userManager.serialize(t)];case 3:return[2,(n.user=s.sent(),n)];case 4:throw o=s.sent(),new i.HttpError(401,o);case 5:return[2]}}))}))},e.prototype.getProfile=function(e){return this.userManager.serialize(e)},e}(),Nn([i.Post("/login"),zn(0,i.Body()),zn(1,i.Res()),qn("design:type",Function),qn("design:paramtypes",[Object,Object]),qn("design:returntype",Promise)],e.AuthController.prototype,"login",null),Nn([i.Authorized(),i.Get("/user"),zn(0,i.CurrentUser()),qn("design:type",Function),qn("design:paramtypes",[Object]),qn("design:returntype",void 0)],e.AuthController.prototype,"getProfile",null),e.AuthController=Nn([o.injectable(),i.Controller(),qn("design:paramtypes",[e.Configuration,e.UserManager])],e.AuthController);var Ln=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Jn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Hn=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}};e.GalleryController=function(){function e(e){this.galleryCache=e}return e.prototype.getFile=function(e){return this.galleryCache.serve(e)},e}(),Ln([i.Get("/:id"),Hn(0,i.Param("id")),Jn("design:type",Function),Jn("design:paramtypes",[String]),Jn("design:returntype",void 0)],e.GalleryController.prototype,"getFile",null),e.GalleryController=Ln([o.injectable(),i.Controller("/gallery"),Jn("design:paramtypes",[e.GalleryCache])],e.GalleryController);var Un=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Gn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Vn=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}},$n=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},Yn=function(){function e(e,t){this.progresses=e,this.config=t;var n=this.config.resolve("mainEndpoint");this.connectionType=n?"socket":"polling"}return e.prototype.getProgress=function(e){return $n(this,void 0,void 0,(function(){var t,n;return K(this,(function(r){switch(r.label){case 0:return[4,this.progresses.get(e)];case 1:return(t=r.sent())?((n=t.toJSON()).connectionType=this.connectionType,[2,n]):[2,null]}}))}))},e}();Un([i.Get("/:id"),Vn(0,i.Param("id")),Gn("design:type",Function),Gn("design:paramtypes",[String]),Gn("design:returntype",Promise)],Yn.prototype,"getProgress",null),Yn=Un([o.injectable(),i.Controller("/progresses"),Gn("design:paramtypes",[e.Progresses,e.Configuration])],Yn);var Wn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Xn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},Qn=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};e.ErrorHandlerMiddleware=function(){function e(e,t){this.configuration=e,this.translator=t}return Object.defineProperty(e.prototype,"isDev",{get:function(){return"development"===this.configuration.resolve("nodeEnv")},enumerable:!1,configurable:!0}),e.prototype.error=function(e,t,n,r){return Qn(this,void 0,void 0,(function(){var r;return K(this,(function(o){switch(o.label){case 0:return[4,this.getResult(e,t,n)];case 1:return r=o.sent(),this.isDev&&console.log("ERROR",r,n.statusCode),n.json(r),[2]}}))}))},e.prototype.getResult=function(e,t,n){return Qn(this,void 0,void 0,(function(){var r,o,s,a;return K(this,(function(c){switch(c.label){case 0:return r={},e instanceof i.BadRequestError?(n.status(400),"ParamRequiredError"!==e.constructor.name?[3,2]:(o=r,[4,this.translator.getTranslation(t.language,"message.parameter-required.error")])):[3,6];case 1:return o.message=c.sent(),r.param=e.message,[3,5];case 2:return s=r,(a=e.message)?[3,4]:[4,this.translator.getTranslation(t.language,"message.form-validation.error")];case 3:a=c.sent(),c.label=4;case 4:s.message=a,r.errors=e.errors,this.isDev&&(r.stack=e.stack),c.label=5;case 5:return[2,r];case 6:return n.status(e.httpCode||500),e instanceof Error?(e.name&&(r.name=e.name),e.message&&(r.message=e.message),e.stack&&this.isDev&&(r.stack=e.stack)):"string"==typeof e&&(r.message=e),[2,r]}}))}))},e}(),e.ErrorHandlerMiddleware=Wn([o.injectable(),i.Middleware({type:"after"}),Xn("design:paramtypes",[e.Configuration,e.Translator])],e.ErrorHandlerMiddleware);var Kn=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},Zn=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},er=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}},tr=function(){function e(e){this.container=e}return e.prototype.use=function(e,t,n){e.container=this.container,n(null)},e}();tr=Kn([o.injectable(),i.Middleware({type:"before"}),er(0,o.inject(Qe)),Zn("design:paramtypes",[Object])],tr);var nr=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},rr=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};e.LanguageMiddleware=function(){function e(e){this.config=e}return e.prototype.use=function(e,t,n){e.language=e.query.language||this.config.resolve("defaultLanguage"),n(null)},e}(),e.LanguageMiddleware=nr([o.injectable(),i.Middleware({type:"before"}),rr("design:paramtypes",[e.Configuration])],e.LanguageMiddleware);var or=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},ir=function(){function e(){}return e.prototype.use=function(e,t,n){e.ended=W.default();var r=e.ended.diff(e.started),o=W.default.duration(r);console.log("Request '"+e.id+"' ended at: "+e.ended.format("YYYY-MM-DD HH:mm:ss")+" ["+e.method+"] "+e.url),console.log("Request '"+e.id+"' lasted: "+o.asMilliseconds()+"ms"),n(null)},e}();ir=or([o.injectable(),i.Middleware({type:"after"})],ir);var sr=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},ar=function(){function e(){}return e.prototype.use=function(e,t,n){e.id=(new b.ObjectId).toHexString(),e.started=W.default(),console.log("Request '"+e.id+"' started at: "+e.started.format("YYYY-MM-DD HH:mm:ss")+" ["+e.method+"] "+e.url),n(null)},e}();ar=sr([o.injectable(),i.Middleware({type:"before"})],ar);var cr=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},ur=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},lr=this&&this.__param||function(e,t){return function(n,r){t(n,r,e)}},fr=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},hr=function(){function e(e,t){this.progresses=e,this.socketServer=t}return e.prototype.advanceProgress=function(e,t){return fr(this,void 0,void 0,(function(){var n,r;return K(this,(function(o){switch(o.label){case 0:return[4,this.progresses.get(t)];case 1:return(n=o.sent())?(r=n.toJSON(),Ee(this.socketServer,(function(n){n.interestedProgresses instanceof Set&&n.interestedProgresses.has(t)&&e.emit("background-progress-changed",r)})),console.log("progress changed: "+e.id+", data: "+JSON.stringify(r)),[2]):[2]}}))}))},e.prototype.setProgressInterest=function(e,t){return fr(this,void 0,void 0,(function(){var n,r;return K(this,(function(o){switch(o.label){case 0:return[4,this.progresses.get(t)];case 1:return(n=o.sent())?(r=n.toJSON(),e.interestedProgresses=e.interestedProgresses||new Set,e.interestedProgresses.has(t)||(e.interestedProgresses.add(t),e.emit("background-progress-changed",r),console.log("progress interest added: "+e.id+", data: "+JSON.stringify(r))),[2]):[2]}}))}))},e}();cr([s.OnMessage("background-progress"),lr(0,s.ConnectedSocket()),lr(1,s.MessageBody()),ur("design:type",Function),ur("design:paramtypes",[Object,String]),ur("design:returntype",Promise)],hr.prototype,"advanceProgress",null),cr([s.OnMessage("background-progress-interest"),lr(0,s.ConnectedSocket()),lr(1,s.MessageBody()),ur("design:type",Function),ur("design:paramtypes",[Object,String]),ur("design:returntype",Promise)],hr.prototype,"setProgressInterest",null),hr=cr([o.injectable(),s.SocketController(),lr(1,o.inject(We)),ur("design:paramtypes",[e.Progresses,Object])],hr);var dr=this&&this.__decorate||function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},pr=function(){function e(){}return e.prototype.use=function(e,t){t()},e}();pr=dr([o.injectable(),s.Middleware()],pr);var yr=function(){function e(e,t,n){this.container=e,this.exists=t,this.path=n,this.map=new Map}return Object.defineProperty(e.prototype,"parentTree",{get:function(){return this.container.parent.tree},enumerable:!1,configurable:!0}),e.prototype.resolveService=function(){return this.exists?this.container.resolve(this.path):null},e.prototype.resolveLeaves=function(){var e;try{var t=this.parentTree.resolvePath(this.path);e=t.resolveLeaves()}catch(t){e=new Map}var n=function(t,r){t.forEach((function(t,o){var i=r?r+"."+o:o;0!=t.map.size?n(t.map,i):e.set(i,t)}))};return n(this.map,""),e},e.prototype.resolveServices=function(){var e=new Map;return this.resolveLeaves().forEach((function(t,n){e.set(n,t.resolveService())})),e},e.prototype.resolveAncestor=function(t){var n,r,o;if(!he(t)||0==t.length)return this;try{o=(o=this.parentTree.resolvePath(this.path)).resolveAncestor(t)}catch(t){o=new e(this.container,!1,"")}var i=t.split("."),s=this,a=this;try{for(var c=Z(i),u=c.next();!u.done;u=c.next()){var l=u.value;if(!(s=s.map.get(l))){if(a==this){if(o.path.length>0)return o;throw new Error("Ancestor '"+t+"' not found in current tree: '"+this.path+"'")}return a}a=s}}catch(e){n={error:e}}finally{try{u&&!u.done&&(r=c.return)&&r.call(c)}finally{if(n)throw n.error}}return o.path.length>a.path.length?o:a},e.prototype.resolvePath=function(t,n){void 0===n&&(n=!0);var r=this.path?this.path+"."+t:t,o=new e(this.container,!1,r);try{o=this.resolveAncestor(t)}catch(e){if(n)throw new Error("Path '"+t+"' not found in current tree: '"+this.path+"'");return o}if(o.path!==r){if(n)throw new Error("Path '"+t+"' not found in current tree: '"+this.path+"'");return o}return o},e.prototype.addPath=function(t){if(!he(t)||0==t.length)return this;var n=t.split("."),r=n.length-1,o=this;t=this.path;for(var i=0;i<=r;i++){var s=n[i];o.map.has(s)||o.map.set(s,new e(this.container,!1,t?t+"."+s:s)),(o=o.map.get(s)).exists=o.exists||i==r,t=o.path}return this},e}(),vr=function(){function e(e,t){void 0===t&&(t=null),this.container=e,this.parent=t,e.wrapperContainer=this,this.tokens=[],this.tokenSet=new Set,this.root=new yr(this,!1,"")}return Object.defineProperty(e.prototype,"registeredTokens",{get:function(){var e;return((null===(e=this.parent)||void 0===e?void 0:e.registeredTokens)||[]).concat(this.tokens)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"tree",{get:function(){return this.root},enumerable:!1,configurable:!0}),e.prototype.beforeResolution=function(e,t,n){this.container.beforeResolution(e,t,n)},e.prototype.afterResolution=function(e,t,n){this.container.afterResolution(e,t,n)},e.prototype.clearInstances=function(){this.container.clearInstances()},e.prototype.createChildContainer=function(){return new e(this.container.createChildContainer(),this)},e.prototype.isRegistered=function(e,t){return this.container.isRegistered(e,t)},e.prototype.register=function(e,t,n){return o.isFactoryProvider(t)?(this.container.register(e,{useFactory:function(e){return t.useFactory(e.wrapperContainer)}}),this.addToken(e)):(this.container.register(e,t),this.addToken(e))},e.prototype.registerInstance=function(e,t){return this.container.registerInstance(e,t),this.addToken(e)},e.prototype.registerSingleton=function(e,t){return this.container.registerSingleton(e,t),this.addToken(e)},e.prototype.registerType=function(e,t){return this.container.registerType(e,t),this.addToken(e)},e.prototype.reset=function(){this.tokens=[],this.tokenSet=new Set,this.container.reset()},e.prototype.resolve=function(e){return this.container.resolve(e)},e.prototype.resolveAll=function(e){return this.container.resolveAll(e)},e.prototype.get=function(e){return this.container.resolve(e)},e.prototype.addToken=function(e){return this.tokenSet.has(e)||(this.tokenSet.add(e),this.tokens.push(e),he(e)&&this.root.addPath(e)),this},e}(),gr=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};function mr(n,r){return gr(this,void 0,void 0,(function(){var o,i,s;return K(this,(function(a){switch(a.label){case 0:return o=t.resolve(n||__dirname,"public_html"),i=r.get($e),s=r.get(e.EndpointProvider),console.log(o,y.existsSync(o)),y.existsSync(o)?(console.log("public_html exists. setting up static files serving..."),i.use(M.static(o,{maxAge:"1y"}))):console.log('public_html does not exist on path: "'+o+'"'),[4,s.configure(i)];case 1:return a.sent(),[2]}}))}))}var br=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},wr=function(){function e(e,t,n){this.assetResolver=e,this.progresses=t,this.lazyId=n}return Object.defineProperty(e.prototype,"assets",{get:function(){return this.assetResolver.assets},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lazyAssets",{get:function(){return this.assetResolver.lazyAssets},enumerable:!1,configurable:!0}),e.prototype.process=function(){return br(this,void 0,void 0,(function(){var e,t,n,r;return K(this,(function(o){switch(o.label){case 0:return[4,this.lazyAssets.read(this.lazyId)];case 1:return e=o.sent(),[4,this.progresses.get(e.progressId)];case 2:if(!(t=o.sent())||t.canceled)return[2,null];o.label=3;case 3:return o.trys.push([3,7,,9]),[4,this.generate(t)];case 4:return n=o.sent(),[4,t.load()];case 5:return!(t=o.sent())||t.canceled?[2,null]:[4,e.writeAsset(n)];case 6:return o.sent(),[3,9];case 7:return r=o.sent(),[4,t.setError(r.message||r)];case 8:throw o.sent(),r;case 9:return t.remaining>0?[4,t.advance(t.remaining)]:[3,11];case 10:o.sent(),o.label=11;case 11:return[2]}}))}))},e}(),jr=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};function Pr(t,n){return jr(this,void 0,void 0,(function(){var o,s,a,c;return K(this,(function(u){switch(u.label){case 0:if(n.user)return[2,n.user];o=n.header("Authorization")||"",s=null;try{a=t.resolve(e.Configuration),s=r.verify(o.split(" ")[1],a.resolve("jwtSecret"))}catch(e){throw new i.HttpError(401,"Authentication failed. ("+e.message+")")}if(!s)throw new i.HttpError(401,"Authentication failed. (Maybe invalid token)");return c=n,[4,t.resolve(e.UserManager).getById(s.id)];case 1:return c.user=u.sent(),[2,n.user]}}))}))}function Or(){var n=[new Ke("templatesDir",t.join(__dirname,"templates")),new Ke("galleryDir",t.join(__dirname,"gallery")),new Ke("cacheDir",t.join(__dirname,"cache")),new Ke("defaultLanguage","en"),new Ke("smtpHost","smtp.sendgrid.net"),new Ke("smtpPort",587),new Ke("smtpUser","apikey"),new Ke("smtpPassword",""),new Ke("mailSenderAddress","info@stemy.hu"),new Ke("translationsTemplate","https://translation.service/[lang]"),new Ke("jwtSecret","eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9"),new Ke("mongoUri",""),new Ke("mongoDb","node-backend"),new Ke("mongoUser",null),new Ke("mongoPassword",null),new Ke("nodeEnv","development"),new Ke("appPort",80),new Ke("redisHost","127.0.0.1"),new Ke("redisPort",6379),new Ke("redisPassword","123456"),new Ke("redisNamespace","resque"),new Ke("redisCluster","mymaster"),new Ke("redisSentinels",null,(function(e){return e?e.split(", ").map((function(e){var t=e.split(":");return{host:t[0],port:Number(t[1])}})):null})),new Ke("workQueues",["main"]),new Ke("isWorker",!1),new Ke("mainEndpoint",""),new Ke("idChars","0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"),new Ke("idSeparator","-"),new Ke("idPrefix","ID-"),new Ke("idParts",[4,4]),new Ke("jsonLimit","250mb"),new Ke("cacheCollection","cache")].map((function(e){return{provide:Xe,useValue:e}})),r=[e.AssetProcessor,e.AssetResolver,e.Assets,e.BackendProvider,e.Cache,e.CacheProcessor,e.Configuration,e.EndpointProvider,e.Fixtures,e.Gallery,e.GalleryCache,e.IdGenerator,e.JobManager,e.LazyAssets,e.MailSender,e.MemoryCache,e.MongoConnector,e.Progresses,e.TemplateRenderer,e.TranslationProvider,e.Translator,e.UserManager],i=new vr(o.container.createChildContainer());return n.forEach((function(e){i.register(e.provide,e)})),r.forEach((function(e){o.container.isRegistered(e)||i.register(e,e)})),i}e.DI_CONTAINER=Qe,e.EXPRESS=$e,e.FIXTURE=Ge,e.HTTP_SERVER=Ye,e.JOB=Ve,e.LazyAssetGenerator=wr,e.PARAMETER=Xe,e.Parameter=Ke,e.ResolveEntity=function(e,t){var n=this,r=e.modelName,o=r.toLowerCase();return i.createParamDecorator({required:!1,value:function(s){return ne(n,void 0,void 0,(function(){var n,a,c,u,l,f,h,d;return K(this,(function(p){switch(p.label){case 0:if(n=s.request,a=n.header("x-"+o+"-token"),!(c=n.params[o+"Id"])&&!a)throw new i.BadRequestError(r+" id or token should be defined!");return[4,u=a?e.findOne({token:a}):e.findById(c)];case 1:if(!(l=p.sent()))throw new i.HttpError(404,a?r+" could not be found with token: "+a:r+" could not be found with id: "+c);if(!de(t))return[3,5];p.label=2;case 2:return p.trys.push([2,4,,5]),f=s.request,h=o,[4,Se(t(u,s))];case 3:return f[h]=p.sent()||l,[2,s.request[o]];case 4:throw d=p.sent(),new i.BadRequestError(r+" check error: "+(d.message||d));case 5:return s.request[o]=l,[2,l]}}))}))}})},e.SOCKET_SERVER=We,e.Type=Ue,e.assign=function(e,t,n){return ze(e,t,n)},e.broadcast=Ee,e.bufferToStream=Pe,e.convertValue=be,e.copy=function(e){return ze(null,e)},e.copyStream=Re,e.createServices=Or,e.createTransformer=function(e){return function(t,n,r){return n.id=Ie(n.id)||n.id,t._id&&(n._id=Ie(t._id),n.id=n.id||n._id),delete n.__v,de(e)&&e(t,n,r)||n}},e.deleteFile=function(e){return new Promise((function(t,n){y.unlink(e,(function(e){e?n(e):t()}))}))},e.deleteFromBucket=Ne,e.filter=function(e,t){return ze(null,e,t)},e.firstItem=function(e){return e[0]},e.getConstructorName=Ae,e.getExtension=function(e){return t.basename(e||"").split(".").pop()},e.getFileName=function(e,n){void 0===n&&(n=!1);var r=t.basename(e||"");return n?r:r.split(".").slice(0,-1).join(".")},e.getFunctionParams=Me,e.getType=se,e.getValue=me,e.groupBy=function(e,t){return e.reduce((function(e,n){var r=t(n);return e[r]=e[r]||[],e[r].push(n),e}),{})},e.hydratePopulated=je,e.idToString=Ie,e.injectServices=we,e.isArray=ce,e.isBoolean=ue,e.isConstructor=pe,e.isDate=le,e.isDefined=ie,e.isFunction=de,e.isInterface=ve,e.isNullOrUndefined=oe,e.isObject=ae,e.isPrimitive=fe,e.isString=he,e.isType=ye,e.lastItem=function(e){return e[e.length-1]},e.lcFirst=ge,e.lookupPipelines=function(e,t,n,r,o){void 0===n&&(n=null),void 0===r&&(r="_id"),void 0===o&&(o=!0),n=n||t.replace("Id","");var i=[{$lookup:{from:e,localField:t,foreignField:r,as:n}},{$unwind:{path:"$"+n,preserveNullAndEmptyArrays:!0}}];return o?i:i.slice(0,0)},e.md5=function(e){if(ae(e)&&(e=JSON.stringify(e)),!he(e))throw"Can't md5 other that raw object or string";return h.createHash("md5").update(e).digest("hex")},e.mkdirRecursive=xe,e.multiSubscription=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return new d.Subscription((function(){e.forEach((function(e){e.unsubscribe()}))}))},e.observableFromFunction=function(e){var t;return new d.Observable((function(n){if(!t){t=new d.Subject;try{t=d.from(e())}catch(e){p.canReportError(t)?t.error(e):console.warn(e)}}return t.subscribe(n)}))},e.padLeft=function(e,t,n){return void 0===t&&(t=3),void 0===n&&(n="0"),(""+e).padStart(t,n)},e.padRight=function(e,t,n){return void 0===t&&(t=3),void 0===n&&(n="0"),(""+e).padEnd(t,n)},e.paginate=function(e,t,n){return e.countDocuments(t).then((function(r){var o=e.find(t);return he(n.sort)&&(o=o.sort(n.sort)),ce(n.populate)&&n.populate.forEach((function(e){o=o.populate(e)})),(n.limit>0?o.skip(n.page*n.limit).limit(n.limit):o).then((function(e){return{count:r,items:e,meta:{total:r}}}))}))},e.paginateAggregations=function(e,t,n,r){return void 0===r&&(r={}),ne(this,void 0,void 0,(function(){var o,i,s,a,c;return K(this,(function(u){switch(u.label){case 0:return o=he(n.sort)&&n.sort?n.sort.startsWith("-")?n.sort.substr(1):n.sort:null,i=o?[{$sort:(c={},c[o]=o==n.sort?1:-1,c)}]:[],[4,e.aggregate(te(t,i,[{$group:{_id:"results",result:{$push:"$$CURRENT"}}},{$project:{_id:0,items:n.limit>0?{$slice:["$result",n.page*n.limit,n.limit]}:"$result",count:{$size:"$result"},meta:Object.assign({total:{$size:"$result"}},r)}}]))];case 1:return s=u.sent(),(a=s[0])?(a.items=a.items.map((function(t){return je(e,t)})),[2,a]):[2,{items:[],count:0,meta:{total:0}}]}}))}))},e.promiseTimeout=ke,e.proxyFunction=Te,e.proxyFunctions=function(e,t,n){void 0===n&&(n=null),n=n||ge(Ae(t)).replace(/helper$/gi,"");var r=Object.getOwnPropertyDescriptors(t.prototype);Object.keys(r).forEach((function(t){var o=r[t].value;de(o)&&"constructor"!==t&&(Me(o)[0]==n&&(e.methods[t]=Te(t)))})),we(e,{helper:t})},e.rand=Fe,e.random=De,e.readAndDeleteFile=function(e,t){return void 0===t&&(t=5e3),ne(this,void 0,void 0,(function(){var n;return K(this,(function(r){switch(r.label){case 0:return[4,Ce(e)];case 1:return n=r.sent(),setTimeout((function(){y.unlink(e,(function(){}))}),t),[2,n]}}))}))},e.readFile=Ce,e.runCommand=function(e,t){return void 0===t&&(t=0),new Promise((function(n,r){var o=f.exec(e,(function(e,o){if(e&&t!==e.code)return console.log(e),void r(e);for(var i=(o||"").split("\n"),s=null;!s&&i.length>0;)s=i.pop();n(s)}));o.stdout.on("data",(function(e){console.log(e.toString())})),o.stderr.on("data",(function(e){console.error(e.toString())}))}))},e.setupBackend=function(t,r,o){return jr(this,void 0,void 0,(function(){var f,h,d,p,y,v,g,m,b,w,j=this;return K(this,(function(P){switch(P.label){case 0:return r=Array.isArray(r)?r:[],o=o||Or(),f=t.fixtures||[],h=f.map((function(e){return{provide:Ge,useClass:e}})),d=(t.params||[]).map((function(e){return{provide:Xe,useValue:e}})),p=(t.jobs||[]).map((function(e){return{provide:Ve,useValue:e}})),(y=t.restOptions||{}).defaultErrorHandler=!1,y.cors={credentials:!0,origin:function(e,t){t(null,!0)}},y.routePrefix=t.routePrefix||"/api",y.routePrefix="/"==y.routePrefix?"":y.routePrefix,y.middlewares=[e.ErrorHandlerMiddleware,tr,e.LanguageMiddleware,ar,ir].concat(y.middlewares||[]),y.controllers=[Dn,e.AuthController,e.GalleryController,Yn].concat(y.controllers||[]),(v=t.socketOptions||{}).middlewares=[pr].concat(v.middlewares||[]),v.controllers=[hr].concat(v.controllers||[]),g=[],[Xe].forEach((function(e){o.resolveAll(e).forEach((function(t){g.push({provide:e,useValue:t})}))})),g.push.apply(g,te(f,h,d,p,y.middlewares,y.controllers,v.middlewares,v.controllers,r,[{provide:$e,useFactory:function(t){return t.resolve(e.BackendProvider).express}},{provide:Ye,useFactory:function(t){return t.resolve(e.BackendProvider).server}},{provide:We,useFactory:function(t){return t.resolve(e.BackendProvider).io}}])),m=o.createChildContainer(),g.forEach((function(e){ye(e)?m.register(e,e):m.register(e.provide,e)})),m.register(Qe,{useValue:m}),re.appContainer=re.appContainer||m,y.authorizationChecker=function(e,t){return jr(j,void 0,void 0,(function(){var n,r,o,s,a,c,u,l,f,h,d;return K(this,(function(p){switch(p.label){case 0:return[4,Pr(m,e.request)];case 1:if(!(n=p.sent()))throw new i.HttpError(401,"Authentication failed. (User can't be found.)");if(r=Array.isArray(n.roles)?n.roles:[],!(Array.isArray(t)&&t.length>0))return[3,13];o=null,p.label=2;case 2:p.trys.push([2,10,11,12]),s=Z(t),a=s.next(),p.label=3;case 3:if(a.done)return[3,9];if(!de(c=a.value))return[3,7];p.label=4;case 4:return p.trys.push([4,6,,7]),[4,Se(c(n,e))];case 5:return p.sent()?[2,!0]:[3,7];case 6:return u=p.sent(),o=u,[3,7];case 7:if(r.indexOf(c)>=0)return[2,!0];p.label=8;case 8:return a=s.next(),[3,3];case 9:return[3,12];case 10:return l=p.sent(),h={error:l},[3,12];case 11:try{a&&!a.done&&(d=s.return)&&d.call(s)}finally{if(h)throw h.error}return[7];case 12:throw f=o&&(o.message||he(o))?o.message||o:"User doesn't have access to this resource",new i.HttpError(401,"Authentication failed. ("+f+")");case 13:return[2,!0]}}))}))},y.currentUserChecker=function(e){return jr(j,void 0,void 0,(function(){return K(this,(function(t){return[2,Pr(m,e.request)]}))}))},b=m.resolve(e.Configuration),w=m.resolve(e.BackendProvider),t.restOptions&&(w.express.use(n.json({limit:b.hasParam("jsonLimit")?b.resolve("jsonLimit"):"250mb"})),i.useContainer(m),i.useExpressServer(w.express,y),w.express.get("/api-docs",(function(n,r){r.status(200).end(function(t){var n;if(Je)return Je;var r=i.getMetadataArgsStorage(),o=a.routingControllersToSpec(r);return o.basePath="/api/",o.definitions=l.validationMetadatasToSchemas({classTransformerMetadataStorage:c.defaultMetadataStorage,additionalConverters:(n={},n[u.ValidationTypes.CUSTOM_VALIDATION]=function(n,r){var o=de(t)?t(n,r):t;if(o)return o;var i=n.constraints||[];return n.constraintCls===e.IsFile?{multi:i[0]||!1,type:"file"}:n.constraintCls===e.IsObjectId?{endpoint:i[0]||!1,multi:i[1]||!1,type:"list"}:null},n)}),o.components.schemas=o.definitions,Je=JSON.stringify(o)}(t.customValidation))}))),t.socketOptions&&(s.useContainer(m),s.useSocketServer(w.io,v)),b.hasParam("mongoUri")&&b.resolve("mongoUri")?(console.log("Connecting to MongoDB..."),[4,m.resolve(e.MongoConnector).connect()]):[3,2];case 1:P.sent(),console.log("Successfully connected to MongoDB."),P.label=2;case 2:return[4,mr(t.rootFolder,m)];case 3:return P.sent(),[2,m]}}))}))},e.streamToBuffer=Oe,e.ucFirst=function(e){return e?e[0].toUpperCase()+e.substr(1):""},e.valueToPromise=Se,e.writeFile=function(e,n){return ne(this,void 0,void 0,(function(){return K(this,(function(r){switch(r.label){case 0:return[4,xe(t.dirname(e))];case 1:return r.sent(),[2,new Promise((function(t,r){y.writeFile(e,n,(function(e){e?r(e):t(n)}))}))]}}))}))},Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=stemy-backend.umd.min.js.map