@tsed/json-mapper 7.82.2 → 8.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@tsed/core"),require("@tsed/schema")):"function"==typeof define&&define.amd?define(["@tsed/core","@tsed/schema"],t):"object"==typeof exports?exports["@tsed/json-mapper"]=t(require("@tsed/core"),require("@tsed/schema")):e["@tsed/json-mapper"]=t(e["@tsed/core"],e["@tsed/schema"])}(self,((__WEBPACK_EXTERNAL_MODULE__803__,__WEBPACK_EXTERNAL_MODULE__953__)=>(()=>{"use strict";var __webpack_modules__={405:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{S:()=>JsonMapperCompiler});var _tsed_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(803),_tsed_core__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_tsed_core__WEBPACK_IMPORTED_MODULE_0__);class JsonMapperCompiler{cache=new Map;mappers={};schemes={};constructors={};globals={isCollection:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isCollection,isClass:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isClass,isObject:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isObject,classOf:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.classOf,nameOf:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.nameOf,hasJsonMethod:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.hasJsonMethod,isMongooseObject:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isMongooseObject,isNil:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isNil,isDate:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isDate,objectKeys:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.objectKeys,isMomentObject:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isMomentObject};constructor(){this.addGlobal("alterIgnore",this.alterIgnore.bind(this)),this.addGlobal("alterValue",this.alterValue.bind(this)),this.addGlobal("execMapper",this.execMapper.bind(this)),this.addGlobal("compileAndMap",this.map.bind(this))}addTypeMapper(e,t){const r=(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.nameOf)(e);return this.cache.set(e,(new Map).set("typeMapper",{id:r,fn:t})),this.mappers[r]=t,this}removeTypeMapper(e){const t=this.cache.get(e);if(t){const{id:r}=t.get("typeMapper");delete this.mappers[r],this.cache.delete(e)}}addGlobal(e,t){return this.globals[e]=t,this}eval(mapper,{id,groupsId,model}){this.addGlobal("cache",this.cache);const{globals,schemes}=this,injectGlobals=Object.keys(globals).map((e=>`const ${e} = globals.${e};`)).join("\n");eval(`${injectGlobals};\n\n cache.get(model).set(groupsId, { id: '${id}', fn: ${mapper} })`);const store=this.cache.get(model).get(groupsId);return this.mappers[id]=store.fn,store}createContext(e){const{cache:t}=this;return{...e,cache:t}}compile(e,t,r={}){const s=(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isString)(e)?e:this.getType(e),i=this.getGroupsId(t);let n=this.cache.get(s)||this.cache.get((0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.nameOf)(s));if(n||(n=new Map,this.cache.set(s,n)),n.has("typeMapper"))return n.get("typeMapper");if(!n.has(i)){const o=this.getId(s,i);n.set(i,{id:o});const a=r.mapper?r.mapper(o,t):this.createMapper(s,o,t);try{return this.eval(a,{id:o,model:s,groupsId:i})}catch(t){throw new Error(`Fail to compile mapper for ${(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.nameOf)(e)}. See the error above: ${t.message}.\n${a}`)}}return n.get(i)}execMapper(e,t,r){return(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isObjectID)(t)?t.toString():this.mappers[e||(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.nameOf)((0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.classOf)(t))](t,r)}getType(e){if(!e)return Object;if((0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isClass)(e)&&!(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isCollection)(e)){const t=[Array,Map,Set].find((t=>(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.ancestorsOf)(e).includes(t)));if(t)return t}return e}alterIgnore(e,t){let r=this.schemes[e]?.$hooks?.alter("ignore",!1,[t]);if(r)return r}alterGroups(e,t){return!1!==t&&e.$hooks.alter("groups",!1,[t])}getGroupsId(e){return!1===e?"default":0===e.length?"-":e.join(",")}getId(e,t){return`${(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isString)(e)?e:(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.nameOf)(e)}:${(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.getRandomId)()}:${t}`}getSchemaId(e,t){return`${e}:${t}`}}},803:e=>{e.exports=__WEBPACK_EXTERNAL_MODULE__803__},953:e=>{e.exports=__WEBPACK_EXTERNAL_MODULE__953__}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](r,r.exports,__webpack_require__),r.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};return(()=>{function e(e,t,r,s){var i,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,r):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,s);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(n<3?i(o):n>3?i(t,r,o):i(t,r))||o);return n>3&&o&&Object.defineProperty(t,r,o),o}__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{AfterDeserialize:()=>u,BeforeDeserialize:()=>d,CastError:()=>p,DateMapper:()=>o,JsonDeserializer:()=>P,JsonMapper:()=>n,JsonMapperCompiler:()=>O.S,JsonMapperSettings:()=>y,JsonSerializer:()=>A,OnDeserialize:()=>h,OnSerialize:()=>m,PrimitiveMapper:()=>c,SymbolMapper:()=>_,Writer:()=>g,alterAfterDeserialize:()=>f,alterBeforeDeserialize:()=>b,alterOnDeserialize:()=>M,alterOnSerialize:()=>S,deserialize:()=>I,getJsonMapperTypes:()=>i,getObjectProperties:()=>w,registerJsonTypeMapper:()=>s,serialize:()=>C}),Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var t=__webpack_require__(803);const r=new Map;function s(e,t){r.set(e,new t)}function i(){return r}function n(...e){return t=>{e.forEach((e=>{s(e,t)}))}}let o=class{deserialize(e){return(0,t.isBoolean)(e)||null==e?e:new Date(e)}serialize(e){return e?new Date(e).toISOString():e}};function a(e){return[null,"null"].includes(e)}o=e([n(Date)],o);class p extends Error{name="CAST_ERROR";constructor(e){super(`Cast error. ${e}`)}}let c=class{deserialize(e,r){return this[(0,t.nameOf)(r.type)]?this[(0,t.nameOf)(r.type)](e,r):void 0}serialize(e,r){return this[(0,t.nameOf)(r?.type)]&&"object"!=typeof e?this[(0,t.nameOf)(r.type)](e,r):e}String(e){return null===e?null:""+e}Boolean(e){return!!["true","1",!0].includes(e)||!["false","0",!1].includes(e)&&(a(e)?null:void 0!==e?!!e:void 0)}Number(e){if(a(e))return null;if(void 0===e)return e;const t=+e;if(isNaN(t))throw new p("Expression value is not a number.");return t}BigInt(e){return a(e)?null:BigInt(e)}};c=e([n(String,Number,Boolean,BigInt)],c);let _=class{deserialize(e){return Symbol.for(e)}serialize(e){return e.toString().replace("Symbol(","").replace(")","")}};_=e([n(Symbol)],_);var l=__webpack_require__(953);function u(e){return(0,l.JsonEntityFn)((t=>{t.schema.$hooks.on("afterDeserialize",e)}))}function d(e){return(0,l.JsonEntityFn)((t=>{t.schema.$hooks.on("beforeDeserialize",e)}))}function h(e){return(0,l.JsonEntityFn)((t=>{t.schema.$hooks.on("onDeserialize",e)}))}function m(e){return(0,l.JsonEntityFn)((t=>{t.schema.$hooks.on("onSerialize",e)}))}function f(e,t,r){return t?.$hooks?.alter("afterDeserialize",e,[r])}function b(e,t,r){return t?.$hooks?.alter("beforeDeserialize",e,[r])}function M(e,t,r){return e.$hooks.alter("onDeserialize",t,[r])}var O=__webpack_require__(405);const y={disableUnsecureConstructor:!0,additionalProperties:!1,strictGroups:!1};class g{static object={assign:(...e)=>`{ ${e.filter(Boolean).join(", ")} }`};_root;body=[];_indent;constructor(e){this._root=e}static indent(e){return e.map((e=>`\t${e}`))}static mapper(e,t,r){return`execMapper('${e}', ${t}, ${r})`}static mapperFrom(e,t){return`execMapper(nameOf(classOf(${e})), ${e}, ${t})`}static options(...e){return(e=e.filter(Boolean)).length?g.object.assign("...options",...e):"options"}add(...e){return(e=e.filter((e=>void 0!==e))).length&&this.body.push(...e),this}arrow(...e){this.add(`(${e}) => {`);const t=this.new();return this.add("}"),t}build(){const e=this.body.flatMap((e=>e instanceof g?e.build():e));return this._indent?e.map((e=>"\t"+e)):e}callMapper(e,t,...r){return this.set(t,g.mapper(e,t,g.options(...r)))}returnCallMapper(e,t,...r){return this.return(g.mapper(e,t,g.options(...r)))}const(e,t){return this.add(`const ${e} = ${t};`),this}each(e,t=[]){const r=this.add(e+".forEach(("+t.join(", ")+") => {").new();return this.add("});"),r}if(e){const t=new E(e,this);return this.add(t),t}switch(e){const t=new $(e);return this.add(t),t}indent(e){return this._indent=e,this}new(e=!0){const t=new g(this.root());return t.indent(e),this.add(t),t}return(e){return this.add(`return ${e};`),this.root()}root(){return this._root||this}set(e,t){return this.add(`${e} = ${t};`),this}toString(){return this.build().join("\n")}}class E extends g{condition;elseWriter;constructor(e,t){super(),this.condition=e,this._root=t}else(){const e=new g(this._root);return this.elseWriter=e,e}build(){return[`if (${this.condition}) {`,...g.indent(super.build()),"}",this.elseWriter?["else {",...g.indent(this.elseWriter.build()),"}"]:[]].flat()}}class $ extends g{input;#e=new Map;constructor(e){super(),this.input=e}case(e){const t=new g;return this.#e.set(e,t),t}build(){return[`switch (${this.input}) {`,...g.indent(Array.from(this.#e.entries()).flatMap((([e,t])=>["default"===e?`${e}:`:`case ${e}:`,...g.indent(t.build())]))),"}"].flat()}}function D(e){return`__${e}`}class P extends O.S{constructors={};constructor(){super(),this.addGlobal("newInstanceOf",this.newInstanceOf.bind(this)),this.addGlobal("alterBeforeDeserialize",this.alterBeforeDeserialize.bind(this)),this.addGlobal("alterAfterDeserialize",this.alterAfterDeserialize.bind(this)),this.addTypeMapper(Object,this.mapObject.bind(this)),this.addTypeMapper(Array,this.mapArray.bind(this)),this.addTypeMapper(Map,this.mapMap.bind(this)),this.addTypeMapper(Set,this.mapSet.bind(this)),this.addTypeMapper("ObjectId",(e=>String(e)))}map(e,r={}){if(!function(e,r){return!(r.collectionType&&(0,t.isNil)(e)||void 0===e||(0,t.isEmpty)(r.type)||r.type===Object&&!r.collectionType)}(e,r=this.mapOptions(r)))return e;!r.collectionType&&(0,t.isArray)(e)&&(r.collectionType=Array);const s=r.type||(0,t.classOf)(e),i=this.compile(s,r.groups);return r.collectionType?this.compile(r.collectionType,r.groups).fn(e,{...r,id:i.id}):i.fn(e,this.createContext(r))}compile(e,r){if([WeakMap,WeakSet].includes(e))throw new Error(`${(0,t.nameOf)(e)} is not supported by JsonMapper.`);return super.compile(e,r)}eval(e,{id:t,groupsId:r,model:s}){return this.constructors[t]=s,super.eval(e,{id:t,groupsId:r,model:s})}newInstanceOf(e,t,r){try{return new this.constructors[e](r.disableUnsecureConstructor?{}:t)}catch(e){return t}}createMapper(e,r,s){const i=l.JsonEntityStore.from(e),n=new Set,o=[...(0,l.getPropertiesStores)(i).values()],a=(new g).arrow("input","options");return a.if("isNil(input)").return("input"),i.schema.hasDiscriminator&&a.add(this.mapDiscriminator(i,s)),i.schema.$hooks?.has("beforeDeserialize")&&(this.schemes[r]=i.schema,a.set("input",`alterBeforeDeserialize('${r}', input, options)`)),a.const("generics","options.generics[0]"),i.schema.genericLabels?.length?a.set("options","{...options, self: input, generics: [...options.generics].slice(1)}"):a.set("options","{...options, self: input}"),a.const("obj",`newInstanceOf('${r}', input, options)`),a.add(...o.flatMap((e=>{const i=e.propertyName;if(n.add(String(e.parent.schema.getAliasOf(i)||i)),!(e.schema?.$ignore&&(0,t.isBoolean)(e.schema?.$ignore)||e.isGetterOnly()||e.schema?.$hooks?.has("groups")&&this.alterGroups(e.schema,s)))return this.mapProperty(e,r,s)}))),a.add(this.mapAdditionalProperties(i,n,s)),i.schema.$hooks?.has("afterDeserialize")?(this.schemes[r]=i.schema,a.return(`alterAfterDeserialize('${r}', obj, options)`).root().toString()):a.return("obj").root().toString()}alterValue(e,t,r){return M(this.schemes[e],t,r)}mapDiscriminator(e,t){const r=new g,s=e.schema.discriminator(),i=r.switch(`input['${s.propertyName}']`);return s.values.forEach(((e,r)=>{const s=this.compile(e,t);i.case(`'${r}'`).returnCallMapper(s.id,"input")})),r}mapProperty(e,t,r){const s=String(e.propertyKey),i=String(e.parent.schema.getAliasOf(s)||s),n=this.getSchemaId(t,s),o=e.itemSchema.get("format"),a=o&&`options: {format: '${o}'}`;let p=(new g).add(`// Map ${s} ${t} ${r||""}`);const c=s!==i?`options.useAlias ? '${i}' : '${s}'`:`'${s}'`;e.schema?.$hooks?.has("ignore")&&(this.schemes[n]=e.schema,p=p.if(`!alterIgnore('${n}', {...options, self: input})`));const _=e.schema?.$hooks?.has("onDeserialize");let l=`input[${c}]`;_&&(this.schemes[n]=e.schema,l=`alterValue('${n}', input[${c}], ${g.options(a)})`);const u=p.set(`let ${D(s)}`,l).if(`${D(s)} !== undefined`);return this.getPropertyFiller(e,t,r,a)(_?u.if(`${D(s)} === input.${s}`):u),u.set(`obj.${s}`,D(s)),r&&r.includes("partial")&&u.else().add(`delete obj.${s}`),p.root()}getPropertyFiller(e,r,s,i){const n=String(e.propertyKey),o=this.getSchemaId(r,n),a=e.itemSchema.nestedGenerics;if(e.itemSchema.isGeneric&&!a?.length){const t=function(e){return e.parent.schema.genericLabels.indexOf(e.itemSchema.genericType)}(e),r=g.options(i,`type: generics[${t}]`);return e=>e.set(D(n),`compileAndMap(${D(n)}, ${r})`)}const p=e.itemSchema.hasDiscriminator?e.itemSchema.discriminator().base:e.getBestType(),c=this.compile(p,s);return e.isCollection?r=>r.callMapper((0,t.nameOf)(e.collectionType),D(n),`id: '${c.id}'`,i):a?.length?(this.schemes[o]=e.schema,e=>e.callMapper(c.id,D(n),i,`generics: schemes['${o}'].nestedGenerics`)):e=>e.callMapper(c.id,D(n),i)}mapOptions({groups:e,useAlias:r=!0,types:s,...n}){if(n.store instanceof l.JsonParameterStore)return this.mapOptions(function(e,t){return{...t,store:void 0,type:e.getBestType(),collectionType:e.collectionType,groups:e.parameter.groups,generics:e.nestedGenerics}}(n.store,n));(s=s||i()).forEach(((e,r)=>{if(![Array,Set,Map].includes(r)){const s=(0,t.nameOf)(r);(0,t.nameOf)(r)in e?this.addTypeMapper(r,e[s].bind(e)):this.addTypeMapper(r,((t,s)=>e.deserialize(t,{...s,type:r})))}}));const o=n.strictGroups??y.strictGroups;return{...n,additionalProperties:n.additionalProperties??y.additionalProperties,disableUnsecureConstructor:n.disableUnsecureConstructor??y.disableUnsecureConstructor,groups:void 0===e?!!o&&[]:e||!1,useAlias:r,customMappers:{},generics:n.generics||[]}}mapAdditionalProperties(e,r,s){const i=e.schema.get("additionalProperties"),n=[...r.values()].map((e=>`'${e}'`)).join(", "),o=new g;o.add("// add additional properties");let a=o.each("objectKeys(input)",["key"]);if(n.length&&(a=a.if(`![${n}].includes(key)`)),(0,t.isClass)(i)){const e=this.compile(i.getComputedType(),s);return a.set("obj[key]",g.mapper(e.id,"input[key]","options")),o}return i?(a.set("obj[key]","input[key]"),o):(a.if("options.additionalProperties && obj[key] === undefined").set("obj[key]","input[key]"),o)}mapObject(e,t){return e}mapSet(e,r){if((0,t.isNil)(e))return e;const s=new Set;return(0,t.objectKeys)(e).forEach((t=>{s.add(this.mapItem(e[t],r))})),s}mapArray(e,r){return(0,t.isNil)(e)?e:[].concat(e).map((e=>this.mapItem(e,r)))}mapMap(e,r){if((0,t.isNil)(e))return e;const s=new Map;return(0,t.objectKeys)(e).forEach((t=>{s.set(t,this.mapItem(e[t],r))})),s}mapItem(e,{id:t,...r}){return this.execMapper(t,e,r)}alterBeforeDeserialize(e,t,r){return b(t,this.schemes[e],r)}alterAfterDeserialize(e,t,r){return f(t,this.schemes[e],r)}}function S(e,t,r){return e.$hooks.alter("onSerialize",t,[r])}function w(e){return Object.entries(e).filter((([,e])=>!(0,t.isFunction)(e)))}function j(e){return`__${e}`}class A extends O.S{constructor(){super(),this.addTypeMapper(Object,this.mapObject.bind(this)),this.addTypeMapper(Array,this.mapArray.bind(this)),this.addTypeMapper(Map,this.mapMap.bind(this)),this.addTypeMapper(Set,this.mapSet.bind(this)),this.addGlobal("mapJSON",this.mapJSON.bind(this)),this.addTypeMapper("ObjectId",(e=>String(e)))}map(e,r={}){if((0,t.isNil)(e))return e;const s=function(e,r){const s=(0,t.classOf)(r);return!s||(0,t.isClassObject)(s)||(0,t.isCollection)(r)?e||Object:s}((r=this.mapOptions(r)).type,e);return this.compile(s,r.groups).fn(e,this.createContext(r))}alterValue(e,t,r){return S(this.schemes[e],t,r)}createMapper(e,r,s){const i=l.JsonEntityStore.from(e),n=new Set,o=[...(0,l.getPropertiesStores)(i).values()],a=(new g).arrow("input","options");return a.if("isNil(input)").return("input"),a.const("obj","{}"),a.set("options","{...options, self: input}"),a.add(this.mapPrecondition(r)),o.length?(a.add(...o.flatMap((e=>{if(n.add(e.propertyKey),!(e.schema?.$ignore&&(0,t.isBoolean)(e.schema?.$ignore)||e.schema?.$hooks?.has("groups")&&this.alterGroups(e.schema,s)))return this.mapProperty(e,r,s)}))),a.add(this.mapDiscriminatorKeyValue(i)),a.add(this.mapAdditionalProperties(i,n)),a.return("obj").root().toString()):a.return("isObject(input) ? {...input} : input").root().toString()}mapOptions({groups:e,useAlias:t=!0,types:r,...s}){(r=r||i()).forEach(((e,t)=>{[Array,Set,Map].includes(t)||this.addTypeMapper(t,((r,s)=>e.serialize(r,{...s,type:t})))}));const n=s.strictGroups??y.strictGroups;return{...s,groups:void 0===e?!!n&&[]:e||!1,useAlias:t,customMappers:{}}}mapProperty(e,t,r){const s=String(e.propertyKey),i=String(e.parent.schema.getAliasOf(s)||s),n=this.getSchemaId(t,s),o=e.itemSchema.get("format"),a=o&&`options: {format: '${o}'}`;let p=(new g).add(`// Map ${s} ${t} ${r||""}`);e.schema?.$hooks?.has("ignore")&&(this.schemes[n]=e.schema,p=p.if(`!alterIgnore('${n}', {...options, self: input})`));const c=e.schema?.$hooks?.has("onSerialize");let _=`input.${s}`;c&&(this.schemes[n]=e.schema,_=`alterValue('${n}', input.${s}, ${g.options(a)})`),p=p.set(`let ${j(s)}`,_).if(`${j(s)} !== undefined`);return this.getPropertyFiller(e,s,r,a)(c?p.if(`${j(s)} === input.${s}`):p),i!==s?p.set(`obj[options.useAlias ? '${i}' : '${s}']`,j(s)):p.set(`obj.${s}`,j(s)),p.root()}getPropertyFiller(e,r,s,i){const n=e.itemSchema.isGeneric,o=e.itemSchema.hasDiscriminator;if(e.isCollection){const a=e.getBestType();let p;if(o){const t=e.parent.targetName;p=this.compile(`Discriminator:${t}:${r}`,s,{mapper:()=>this.createDiscriminatorMapper(e,s)})}else p=n?{id:""}:this.compile(a,s);return s=>s.callMapper((0,t.nameOf)(e.collectionType),j(r),`id: '${p.id}'`,i)}if(n)return e=>e.set(j(r),`compileAndMap(${j(r)}, options)`);let a;if(o){const t=e.parent.targetName;a=this.compile(`Discriminator:${t}:${r}`,s,{mapper:()=>this.createDiscriminatorMapper(e,s)})}else a=this.compile(e.getBestType(),s);return e=>e.callMapper(a.id,j(r),i)}createDiscriminatorMapper(e,r){const s=e.itemSchema.discriminator(),i=(new g).arrow("input","options"),n=i.switch("nameOf(classOf(input))");return s.values.forEach(((e,s)=>{const i=this.compile(e,r);n.case(`'${(0,t.nameOf)(e)}'`).returnCallMapper(i.id,"input")})),i.root().toString()}mapPrecondition(e){const t=new g;return t.if("input && isCollection(input)").return(g.mapperFrom("input",`{...options, id: '${e}'}`)),t.if("hasJsonMethod(input)").return(`mapJSON(input, {...options, id: '${e}'})`),t}mapDiscriminatorKeyValue(e){if(e.discriminatorAncestor){const t=e.discriminatorAncestor.schema.discriminator(),r=t.getDefaultValue(e.target);if(r){const e=new g;return e.if(`!obj.${t.propertyName}`).set(`obj.${t.propertyName}`,`'${r}'`),e}}}mapAdditionalProperties(e,t){if(e.schema.get("additionalProperties")){const e=[...t.values()].map((e=>`'${e}'`)).join(", "),r=new g;return r.add("// add additional properties"),r.each("objectKeys(input)",["key"]).if(`![${e}].includes(key)`).set("obj[key]","input[key]"),r}}mapObject(e,{type:r,...s}){return e&&(0,t.isPrimitive)(e)||!e?e:e&&(0,t.isCollection)(e)?this.execMapper((e=>(0,t.isArray)(e)?"Array":e instanceof Set?"Set":e instanceof Map?"Map":void 0)(e),e,s):(0,t.hasJsonMethod)(e)?this.mapJSON(e,s):w(e).filter((([,e])=>void 0!==e)).reduce(((e,[r,i])=>{if((0,t.isNil)(i))return{...e,[r]:i};const n=this.compile((0,t.classOf)(i),s.groups);return{...e,[r]:n.fn(i,s)}}),{})}mapSet(e,r){return(0,t.isNil)(e)?e:[...e.values()].map((e=>this.mapItem(e,r)))}mapArray(e,r){return(0,t.isNil)(e)?e:[].concat(e).map((e=>this.mapItem(e,r)))}mapMap(e,r){return(0,t.isNil)(e)?e:[...e.entries()].reduce(((e,[t,s])=>({...e,[t]:this.mapItem(s,r)})),{})}mapItem(e,{id:r,...s}){return!r&&e?this.compile((0,t.classOf)(e),s.groups).fn(e,s):r?this.execMapper(r,e,s):e}mapJSON(e,{id:r,...s}){return(0,t.isMongooseObject)(e)?e.toJSON({...s,id:r}):(r=r||(0,t.nameOf)((0,t.classOf)(e)),this.mappers[r]&&((0,t.isDate)(e)||(0,t.isMomentObject)(e))?this.execMapper(r,e,s):(e=e.toJSON(),(0,t.isObject)(e)?this.execMapper(r,e,s):e))}}const T=new P;function I(e,t){return T.map(e,t)}const k=new A;function C(e,t){return k.map(e,t)}})(),__webpack_exports__})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@tsed/core"),require("@tsed/schema")):"function"==typeof define&&define.amd?define(["@tsed/core","@tsed/schema"],t):"object"==typeof exports?exports["@tsed/json-mapper"]=t(require("@tsed/core"),require("@tsed/schema")):e["@tsed/json-mapper"]=t(e["@tsed/core"],e["@tsed/schema"])}(self,((__WEBPACK_EXTERNAL_MODULE__803__,__WEBPACK_EXTERNAL_MODULE__953__)=>(()=>{"use strict";var __webpack_modules__={405:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{S:()=>JsonMapperCompiler});var _tsed_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(803),_tsed_core__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_tsed_core__WEBPACK_IMPORTED_MODULE_0__);class JsonMapperCompiler{constructor(){this.cache=new Map,this.mappers={},this.schemes={},this.constructors={},this.globals={isCollection:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isCollection,isClass:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isClass,isObject:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isObject,classOf:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.classOf,nameOf:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.nameOf,hasJsonMethod:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.hasJsonMethod,isMongooseObject:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isMongooseObject,isNil:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isNil,isDate:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isDate,objectKeys:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.objectKeys,isMomentObject:_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isMomentObject},this.addGlobal("alterIgnore",this.alterIgnore.bind(this)),this.addGlobal("alterValue",this.alterValue.bind(this)),this.addGlobal("execMapper",this.execMapper.bind(this)),this.addGlobal("compileAndMap",this.map.bind(this))}addTypeMapper(e,t){const r=(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.nameOf)(e);return this.cache.set(e,(new Map).set("typeMapper",{id:r,fn:t})),this.mappers[r]=t,this}removeTypeMapper(e){const t=this.cache.get(e);if(t){const{id:r}=t.get("typeMapper");delete this.mappers[r],this.cache.delete(e)}}addGlobal(e,t){return this.globals[e]=t,this}eval(mapper,{id,groupsId,model}){this.addGlobal("cache",this.cache);const{globals,schemes}=this,injectGlobals=Object.keys(globals).map((e=>`const ${e} = globals.${e};`)).join("\n");eval(`${injectGlobals};\n\n cache.get(model).set(groupsId, { id: '${id}', fn: ${mapper} })`);const store=this.cache.get(model).get(groupsId);return this.mappers[id]=store.fn,store}createContext(e){const{cache:t}=this;return{...e,cache:t}}compile(e,t,r={}){const s=(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isString)(e)?e:this.getType(e),i=this.getGroupsId(t);let n=this.cache.get(s)||this.cache.get((0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.nameOf)(s));if(n||(n=new Map,this.cache.set(s,n)),n.has("typeMapper"))return n.get("typeMapper");if(!n.has(i)){const o=this.getId(s,i);n.set(i,{id:o});const a=r.mapper?r.mapper(o,t):this.createMapper(s,o,t);try{return this.eval(a,{id:o,model:s,groupsId:i})}catch(t){throw new Error(`Fail to compile mapper for ${(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.nameOf)(e)}. See the error above: ${t.message}.\n${a}`)}}return n.get(i)}execMapper(e,t,r){return(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isObjectID)(t)?t.toString():this.mappers[e||(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.nameOf)((0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.classOf)(t))](t,r)}getType(e){if(!e)return Object;if((0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isClass)(e)&&!(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isCollection)(e)){const t=[Array,Map,Set].find((t=>(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.ancestorsOf)(e).includes(t)));if(t)return t}return e}alterIgnore(e,t){let r=this.schemes[e]?.$hooks?.alter("ignore",!1,[t]);if(r)return r}alterGroups(e,t){return!1!==t&&e.$hooks.alter("groups",!1,[t])}getGroupsId(e){return!1===e?"default":0===e.length?"-":e.join(",")}getId(e,t){return`${(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.isString)(e)?e:(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.nameOf)(e)}:${(0,_tsed_core__WEBPACK_IMPORTED_MODULE_0__.getRandomId)()}:${t}`}getSchemaId(e,t){return`${e}:${t}`}}},803:e=>{e.exports=__WEBPACK_EXTERNAL_MODULE__803__},953:e=>{e.exports=__WEBPACK_EXTERNAL_MODULE__953__}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](r,r.exports,__webpack_require__),r.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};return(()=>{function e(e,t,r,s){var i,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,r):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,s);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(n<3?i(o):n>3?i(t,r,o):i(t,r))||o);return n>3&&o&&Object.defineProperty(t,r,o),o}__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{AfterDeserialize:()=>u,BeforeDeserialize:()=>d,CastError:()=>p,DateMapper:()=>o,JsonDeserializer:()=>P,JsonMapper:()=>n,JsonMapperCompiler:()=>O.S,JsonMapperSettings:()=>y,JsonSerializer:()=>A,OnDeserialize:()=>h,OnSerialize:()=>m,PrimitiveMapper:()=>c,SymbolMapper:()=>_,Writer:()=>g,alterAfterDeserialize:()=>f,alterBeforeDeserialize:()=>b,alterOnDeserialize:()=>M,alterOnSerialize:()=>S,deserialize:()=>I,getJsonMapperTypes:()=>i,getObjectProperties:()=>w,registerJsonTypeMapper:()=>s,serialize:()=>C}),Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var t=__webpack_require__(803);const r=new Map;function s(e,t){r.set(e,new t)}function i(){return r}function n(...e){return t=>{e.forEach((e=>{s(e,t)}))}}let o=class{deserialize(e){return(0,t.isBoolean)(e)||null==e?e:new Date(e)}serialize(e){return e?new Date(e).toISOString():e}};function a(e){return[null,"null"].includes(e)}o=e([n(Date)],o);class p extends Error{constructor(e){super(`Cast error. ${e}`),this.name="CAST_ERROR"}}let c=class{deserialize(e,r){return this[(0,t.nameOf)(r.type)]?this[(0,t.nameOf)(r.type)](e,r):void 0}serialize(e,r){return this[(0,t.nameOf)(r?.type)]&&"object"!=typeof e?this[(0,t.nameOf)(r.type)](e,r):e}String(e){return null===e?null:""+e}Boolean(e){return!!["true","1",!0].includes(e)||!["false","0",!1].includes(e)&&(a(e)?null:void 0!==e?!!e:void 0)}Number(e){if(a(e))return null;if(void 0===e)return e;const t=+e;if(isNaN(t))throw new p("Expression value is not a number.");return t}BigInt(e){return a(e)?null:BigInt(e)}};c=e([n(String,Number,Boolean,BigInt)],c);let _=class{deserialize(e){return Symbol.for(e)}serialize(e){return e.toString().replace("Symbol(","").replace(")","")}};_=e([n(Symbol)],_);var l=__webpack_require__(953);function u(e){return(0,l.JsonEntityFn)((t=>{t.schema.$hooks.on("afterDeserialize",e)}))}function d(e){return(0,l.JsonEntityFn)((t=>{t.schema.$hooks.on("beforeDeserialize",e)}))}function h(e){return(0,l.JsonEntityFn)((t=>{t.schema.$hooks.on("onDeserialize",e)}))}function m(e){return(0,l.JsonEntityFn)((t=>{t.schema.$hooks.on("onSerialize",e)}))}function f(e,t,r){return t?.$hooks?.alter("afterDeserialize",e,[r])}function b(e,t,r){return t?.$hooks?.alter("beforeDeserialize",e,[r])}function M(e,t,r){return e.$hooks.alter("onDeserialize",t,[r])}var O=__webpack_require__(405);const y={disableUnsecureConstructor:!0,additionalProperties:!1,strictGroups:!1};class g{static{this.object={assign:(...e)=>`{ ${e.filter(Boolean).join(", ")} }`}}constructor(e){this.body=[],this._root=e}static indent(e){return e.map((e=>`\t${e}`))}static mapper(e,t,r){return`execMapper('${e}', ${t}, ${r})`}static mapperFrom(e,t){return`execMapper(nameOf(classOf(${e})), ${e}, ${t})`}static options(...e){return(e=e.filter(Boolean)).length?g.object.assign("...options",...e):"options"}add(...e){return(e=e.filter((e=>void 0!==e))).length&&this.body.push(...e),this}arrow(...e){this.add(`(${e}) => {`);const t=this.new();return this.add("}"),t}build(){const e=this.body.flatMap((e=>e instanceof g?e.build():e));return this._indent?e.map((e=>"\t"+e)):e}callMapper(e,t,...r){return this.set(t,g.mapper(e,t,g.options(...r)))}returnCallMapper(e,t,...r){return this.return(g.mapper(e,t,g.options(...r)))}const(e,t){return this.add(`const ${e} = ${t};`),this}each(e,t=[]){const r=this.add(e+".forEach(("+t.join(", ")+") => {").new();return this.add("});"),r}if(e){const t=new E(e,this);return this.add(t),t}switch(e){const t=new $(e);return this.add(t),t}indent(e){return this._indent=e,this}new(e=!0){const t=new g(this.root());return t.indent(e),this.add(t),t}return(e){return this.add(`return ${e};`),this.root()}root(){return this._root||this}set(e,t){return this.add(`${e} = ${t};`),this}toString(){return this.build().join("\n")}}class E extends g{constructor(e,t){super(),this.condition=e,this._root=t}else(){const e=new g(this._root);return this.elseWriter=e,e}build(){return[`if (${this.condition}) {`,...g.indent(super.build()),"}",this.elseWriter?["else {",...g.indent(this.elseWriter.build()),"}"]:[]].flat()}}class $ extends g{#e;constructor(e){super(),this.input=e,this.#e=new Map}case(e){const t=new g;return this.#e.set(e,t),t}build(){return[`switch (${this.input}) {`,...g.indent(Array.from(this.#e.entries()).flatMap((([e,t])=>["default"===e?`${e}:`:`case ${e}:`,...g.indent(t.build())]))),"}"].flat()}}function D(e){return`__${e}`}class P extends O.S{constructor(){super(),this.constructors={},this.addGlobal("newInstanceOf",this.newInstanceOf.bind(this)),this.addGlobal("alterBeforeDeserialize",this.alterBeforeDeserialize.bind(this)),this.addGlobal("alterAfterDeserialize",this.alterAfterDeserialize.bind(this)),this.addTypeMapper(Object,this.mapObject.bind(this)),this.addTypeMapper(Array,this.mapArray.bind(this)),this.addTypeMapper(Map,this.mapMap.bind(this)),this.addTypeMapper(Set,this.mapSet.bind(this)),this.addTypeMapper("ObjectId",(e=>String(e)))}map(e,r={}){if(!function(e,r){return!(r.collectionType&&(0,t.isNil)(e)||void 0===e||(0,t.isEmpty)(r.type)||r.type===Object&&!r.collectionType)}(e,r=this.mapOptions(r)))return e;!r.collectionType&&(0,t.isArray)(e)&&(r.collectionType=Array);const s=r.type||(0,t.classOf)(e),i=this.compile(s,r.groups);return r.collectionType?this.compile(r.collectionType,r.groups).fn(e,{...r,id:i.id}):i.fn(e,this.createContext(r))}compile(e,r){if([WeakMap,WeakSet].includes(e))throw new Error(`${(0,t.nameOf)(e)} is not supported by JsonMapper.`);return super.compile(e,r)}eval(e,{id:t,groupsId:r,model:s}){return this.constructors[t]=s,super.eval(e,{id:t,groupsId:r,model:s})}newInstanceOf(e,t,r){try{return new this.constructors[e](r.disableUnsecureConstructor?{}:t)}catch(e){return t}}createMapper(e,r,s){const i=l.JsonEntityStore.from(e),n=new Set,o=[...(0,l.getPropertiesStores)(i).values()],a=(new g).arrow("input","options");return a.if("isNil(input)").return("input"),i.schema.hasDiscriminator&&a.add(this.mapDiscriminator(i,s)),i.schema.$hooks?.has("beforeDeserialize")&&(this.schemes[r]=i.schema,a.set("input",`alterBeforeDeserialize('${r}', input, options)`)),a.const("generics","options.generics[0]"),i.schema.genericLabels?.length?a.set("options","{...options, self: input, generics: [...options.generics].slice(1)}"):a.set("options","{...options, self: input}"),a.const("obj",`newInstanceOf('${r}', input, options)`),a.add(...o.flatMap((e=>{const i=e.propertyName;if(n.add(String(e.parent.schema.getAliasOf(i)||i)),!(e.schema?.$ignore&&(0,t.isBoolean)(e.schema?.$ignore)||e.isGetterOnly()||e.schema?.$hooks?.has("groups")&&this.alterGroups(e.schema,s)))return this.mapProperty(e,r,s)}))),a.add(this.mapAdditionalProperties(i,n,s)),i.schema.$hooks?.has("afterDeserialize")?(this.schemes[r]=i.schema,a.return(`alterAfterDeserialize('${r}', obj, options)`).root().toString()):a.return("obj").root().toString()}alterValue(e,t,r){return M(this.schemes[e],t,r)}mapDiscriminator(e,t){const r=new g,s=e.schema.discriminator(),i=r.switch(`input['${s.propertyName}']`);return s.values.forEach(((e,r)=>{const s=this.compile(e,t);i.case(`'${r}'`).returnCallMapper(s.id,"input")})),r}mapProperty(e,t,r){const s=String(e.propertyKey),i=String(e.parent.schema.getAliasOf(s)||s),n=this.getSchemaId(t,s),o=e.itemSchema.get("format"),a=o&&`options: {format: '${o}'}`;let p=(new g).add(`// Map ${s} ${t} ${r||""}`);const c=s!==i?`options.useAlias ? '${i}' : '${s}'`:`'${s}'`;e.schema?.$hooks?.has("ignore")&&(this.schemes[n]=e.schema,p=p.if(`!alterIgnore('${n}', {...options, self: input})`));const _=e.schema?.$hooks?.has("onDeserialize");let l=`input[${c}]`;_&&(this.schemes[n]=e.schema,l=`alterValue('${n}', input[${c}], ${g.options(a)})`);const u=p.set(`let ${D(s)}`,l).if(`${D(s)} !== undefined`);return this.getPropertyFiller(e,t,r,a)(_?u.if(`${D(s)} === input.${s}`):u),u.set(`obj.${s}`,D(s)),r&&r.includes("partial")&&u.else().add(`delete obj.${s}`),p.root()}getPropertyFiller(e,r,s,i){const n=String(e.propertyKey),o=this.getSchemaId(r,n),a=e.itemSchema.nestedGenerics;if(e.itemSchema.isGeneric&&!a?.length){const t=function(e){return e.parent.schema.genericLabels.indexOf(e.itemSchema.genericType)}(e),r=g.options(i,`type: generics[${t}]`);return e=>e.set(D(n),`compileAndMap(${D(n)}, ${r})`)}const p=e.itemSchema.hasDiscriminator?e.itemSchema.discriminator().base:e.getBestType(),c=this.compile(p,s);return e.isCollection?r=>r.callMapper((0,t.nameOf)(e.collectionType),D(n),`id: '${c.id}'`,i):a?.length?(this.schemes[o]=e.schema,e=>e.callMapper(c.id,D(n),i,`generics: schemes['${o}'].nestedGenerics`)):e=>e.callMapper(c.id,D(n),i)}mapOptions({groups:e,useAlias:r=!0,types:s,...n}){if(n.store instanceof l.JsonParameterStore)return this.mapOptions(function(e,t){return{...t,store:void 0,type:e.getBestType(),collectionType:e.collectionType,groups:e.parameter.groups,generics:e.nestedGenerics}}(n.store,n));(s=s||i()).forEach(((e,r)=>{if(![Array,Set,Map].includes(r)){const s=(0,t.nameOf)(r);(0,t.nameOf)(r)in e?this.addTypeMapper(r,e[s].bind(e)):this.addTypeMapper(r,((t,s)=>e.deserialize(t,{...s,type:r})))}}));const o=n.strictGroups??y.strictGroups;return{...n,additionalProperties:n.additionalProperties??y.additionalProperties,disableUnsecureConstructor:n.disableUnsecureConstructor??y.disableUnsecureConstructor,groups:void 0===e?!!o&&[]:e||!1,useAlias:r,customMappers:{},generics:n.generics||[]}}mapAdditionalProperties(e,r,s){const i=e.schema.get("additionalProperties"),n=[...r.values()].map((e=>`'${e}'`)).join(", "),o=new g;o.add("// add additional properties");let a=o.each("objectKeys(input)",["key"]);if(n.length&&(a=a.if(`![${n}].includes(key)`)),(0,t.isClass)(i)){const e=this.compile(i.getComputedType(),s);return a.set("obj[key]",g.mapper(e.id,"input[key]","options")),o}return i?(a.set("obj[key]","input[key]"),o):(a.if("options.additionalProperties && obj[key] === undefined").set("obj[key]","input[key]"),o)}mapObject(e,t){return e}mapSet(e,r){if((0,t.isNil)(e))return e;const s=new Set;return(0,t.objectKeys)(e).forEach((t=>{s.add(this.mapItem(e[t],r))})),s}mapArray(e,r){return(0,t.isNil)(e)?e:[].concat(e).map((e=>this.mapItem(e,r)))}mapMap(e,r){if((0,t.isNil)(e))return e;const s=new Map;return(0,t.objectKeys)(e).forEach((t=>{s.set(t,this.mapItem(e[t],r))})),s}mapItem(e,{id:t,...r}){return this.execMapper(t,e,r)}alterBeforeDeserialize(e,t,r){return b(t,this.schemes[e],r)}alterAfterDeserialize(e,t,r){return f(t,this.schemes[e],r)}}function S(e,t,r){return e.$hooks.alter("onSerialize",t,[r])}function w(e){return Object.entries(e).filter((([,e])=>!(0,t.isFunction)(e)))}function j(e){return`__${e}`}class A extends O.S{constructor(){super(),this.addTypeMapper(Object,this.mapObject.bind(this)),this.addTypeMapper(Array,this.mapArray.bind(this)),this.addTypeMapper(Map,this.mapMap.bind(this)),this.addTypeMapper(Set,this.mapSet.bind(this)),this.addGlobal("mapJSON",this.mapJSON.bind(this)),this.addTypeMapper("ObjectId",(e=>String(e)))}map(e,r={}){if((0,t.isNil)(e))return e;const s=function(e,r){const s=(0,t.classOf)(r);return!s||(0,t.isClassObject)(s)||(0,t.isCollection)(r)?e||Object:s}((r=this.mapOptions(r)).type,e);return this.compile(s,r.groups).fn(e,this.createContext(r))}alterValue(e,t,r){return S(this.schemes[e],t,r)}createMapper(e,r,s){const i=l.JsonEntityStore.from(e),n=new Set,o=[...(0,l.getPropertiesStores)(i).values()],a=(new g).arrow("input","options");return a.if("isNil(input)").return("input"),a.const("obj","{}"),a.set("options","{...options, self: input}"),a.add(this.mapPrecondition(r)),o.length?(a.add(...o.flatMap((e=>{if(n.add(e.propertyKey),!(e.schema?.$ignore&&(0,t.isBoolean)(e.schema?.$ignore)||e.schema?.$hooks?.has("groups")&&this.alterGroups(e.schema,s)))return this.mapProperty(e,r,s)}))),a.add(this.mapDiscriminatorKeyValue(i)),a.add(this.mapAdditionalProperties(i,n)),a.return("obj").root().toString()):a.return("isObject(input) ? {...input} : input").root().toString()}mapOptions({groups:e,useAlias:t=!0,types:r,...s}){(r=r||i()).forEach(((e,t)=>{[Array,Set,Map].includes(t)||this.addTypeMapper(t,((r,s)=>e.serialize(r,{...s,type:t})))}));const n=s.strictGroups??y.strictGroups;return{...s,groups:void 0===e?!!n&&[]:e||!1,useAlias:t,customMappers:{}}}mapProperty(e,t,r){const s=String(e.propertyKey),i=String(e.parent.schema.getAliasOf(s)||s),n=this.getSchemaId(t,s),o=e.itemSchema.get("format"),a=o&&`options: {format: '${o}'}`;let p=(new g).add(`// Map ${s} ${t} ${r||""}`);e.schema?.$hooks?.has("ignore")&&(this.schemes[n]=e.schema,p=p.if(`!alterIgnore('${n}', {...options, self: input})`));const c=e.schema?.$hooks?.has("onSerialize");let _=`input.${s}`;c&&(this.schemes[n]=e.schema,_=`alterValue('${n}', input.${s}, ${g.options(a)})`),p=p.set(`let ${j(s)}`,_).if(`${j(s)} !== undefined`);return this.getPropertyFiller(e,s,r,a)(c?p.if(`${j(s)} === input.${s}`):p),i!==s?p.set(`obj[options.useAlias ? '${i}' : '${s}']`,j(s)):p.set(`obj.${s}`,j(s)),p.root()}getPropertyFiller(e,r,s,i){const n=e.itemSchema.isGeneric,o=e.itemSchema.hasDiscriminator;if(e.isCollection){const a=e.getBestType();let p;if(o){const t=e.parent.targetName;p=this.compile(`Discriminator:${t}:${r}`,s,{mapper:()=>this.createDiscriminatorMapper(e,s)})}else p=n?{id:""}:this.compile(a,s);return s=>s.callMapper((0,t.nameOf)(e.collectionType),j(r),`id: '${p.id}'`,i)}if(n)return e=>e.set(j(r),`compileAndMap(${j(r)}, options)`);let a;if(o){const t=e.parent.targetName;a=this.compile(`Discriminator:${t}:${r}`,s,{mapper:()=>this.createDiscriminatorMapper(e,s)})}else a=this.compile(e.getBestType(),s);return e=>e.callMapper(a.id,j(r),i)}createDiscriminatorMapper(e,r){const s=e.itemSchema.discriminator(),i=(new g).arrow("input","options"),n=i.switch("nameOf(classOf(input))");return s.values.forEach(((e,s)=>{const i=this.compile(e,r);n.case(`'${(0,t.nameOf)(e)}'`).returnCallMapper(i.id,"input")})),i.root().toString()}mapPrecondition(e){const t=new g;return t.if("input && isCollection(input)").return(g.mapperFrom("input",`{...options, id: '${e}'}`)),t.if("hasJsonMethod(input)").return(`mapJSON(input, {...options, id: '${e}'})`),t}mapDiscriminatorKeyValue(e){if(e.discriminatorAncestor){const t=e.discriminatorAncestor.schema.discriminator(),r=t.getDefaultValue(e.target);if(r){const e=new g;return e.if(`!obj.${t.propertyName}`).set(`obj.${t.propertyName}`,`'${r}'`),e}}}mapAdditionalProperties(e,t){if(e.schema.get("additionalProperties")){const e=[...t.values()].map((e=>`'${e}'`)).join(", "),r=new g;return r.add("// add additional properties"),r.each("objectKeys(input)",["key"]).if(`![${e}].includes(key)`).set("obj[key]","input[key]"),r}}mapObject(e,{type:r,...s}){return e&&(0,t.isPrimitive)(e)||!e?e:e&&(0,t.isCollection)(e)?this.execMapper((e=>(0,t.isArray)(e)?"Array":e instanceof Set?"Set":e instanceof Map?"Map":void 0)(e),e,s):(0,t.hasJsonMethod)(e)?this.mapJSON(e,s):w(e).filter((([,e])=>void 0!==e)).reduce(((e,[r,i])=>{if((0,t.isNil)(i))return{...e,[r]:i};const n=this.compile((0,t.classOf)(i),s.groups);return{...e,[r]:n.fn(i,s)}}),{})}mapSet(e,r){return(0,t.isNil)(e)?e:[...e.values()].map((e=>this.mapItem(e,r)))}mapArray(e,r){return(0,t.isNil)(e)?e:[].concat(e).map((e=>this.mapItem(e,r)))}mapMap(e,r){return(0,t.isNil)(e)?e:[...e.entries()].reduce(((e,[t,s])=>({...e,[t]:this.mapItem(s,r)})),{})}mapItem(e,{id:r,...s}){return!r&&e?this.compile((0,t.classOf)(e),s.groups).fn(e,s):r?this.execMapper(r,e,s):e}mapJSON(e,{id:r,...s}){return(0,t.isMongooseObject)(e)?e.toJSON({...s,id:r}):(r=r||(0,t.nameOf)((0,t.classOf)(e)),this.mappers[r]&&((0,t.isDate)(e)||(0,t.isMomentObject)(e))?this.execMapper(r,e,s):(e=e.toJSON(),(0,t.isObject)(e)?this.execMapper(r,e,s):e))}}const T=new P;function I(e,t){return T.map(e,t)}const k=new A;function C(e,t){return k.map(e,t)}})(),__webpack_exports__})()));
2
2
  //# sourceMappingURL=json-mapper.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-mapper.umd.min.js","mappings":"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","sources":["webpack://@tsed/json-mapper/webpack/universalModuleDefinition","webpack://@tsed/json-mapper/./src/domain/JsonMapperCompiler.ts","webpack://@tsed/json-mapper/external umd \"@tsed/core\"","webpack://@tsed/json-mapper/external umd \"@tsed/schema\"","webpack://@tsed/json-mapper/webpack/bootstrap","webpack://@tsed/json-mapper/webpack/runtime/compat get default export","webpack://@tsed/json-mapper/webpack/runtime/define property getters","webpack://@tsed/json-mapper/webpack/runtime/hasOwnProperty shorthand","webpack://@tsed/json-mapper/webpack/runtime/make namespace object","webpack://@tsed/json-mapper/../../../node_modules/tslib/tslib.es6.mjs","webpack://@tsed/json-mapper/./src/domain/JsonMapperTypesContainer.ts","webpack://@tsed/json-mapper/./src/decorators/jsonMapper.ts","webpack://@tsed/json-mapper/./src/components/DateMapper.ts","webpack://@tsed/json-mapper/./src/components/PrimitiveMapper.ts","webpack://@tsed/json-mapper/./src/components/SymbolMapper.ts","webpack://@tsed/json-mapper/./src/decorators/afterDeserialize.ts","webpack://@tsed/json-mapper/./src/decorators/beforeDeserialize.ts","webpack://@tsed/json-mapper/./src/decorators/onDeserialize.ts","webpack://@tsed/json-mapper/./src/decorators/onSerialize.ts","webpack://@tsed/json-mapper/./src/hooks/alterAfterDeserialize.ts","webpack://@tsed/json-mapper/./src/hooks/alterBeforeDeserialize.ts","webpack://@tsed/json-mapper/./src/hooks/alterOnDeserialize.ts","webpack://@tsed/json-mapper/./src/domain/JsonMapperSettings.ts","webpack://@tsed/json-mapper/./src/domain/Writer.ts","webpack://@tsed/json-mapper/./src/domain/JsonDeserializer.ts","webpack://@tsed/json-mapper/./src/hooks/alterOnSerialize.ts","webpack://@tsed/json-mapper/./src/utils/getObjectProperties.ts","webpack://@tsed/json-mapper/./src/domain/JsonSerializer.ts","webpack://@tsed/json-mapper/./src/utils/deserialize.ts","webpack://@tsed/json-mapper/./src/utils/serialize.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@tsed/core\"), require(\"@tsed/schema\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@tsed/core\", \"@tsed/schema\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@tsed/json-mapper\"] = factory(require(\"@tsed/core\"), require(\"@tsed/schema\"));\n\telse\n\t\troot[\"@tsed/json-mapper\"] = factory(root[\"@tsed/core\"], root[\"@tsed/schema\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE__803__, __WEBPACK_EXTERNAL_MODULE__953__) => {\nreturn ","import { ancestorsOf, classOf, getRandomId, hasJsonMethod, isClass, isCollection, isDate, isMomentObject, isMongooseObject, isNil, isObject, isObjectID, isString, nameOf, objectKeys } from \"@tsed/core\";\nexport class JsonMapperCompiler {\n /**\n * Cached mappers metadata\n * @protected\n */\n cache = new Map();\n /**\n * Cached executable mappers by his id\n * @protected\n */\n mappers = {};\n /**\n * Cached schemas\n * @protected\n */\n schemes = {};\n /**\n * Cached classes by his id\n * @protected\n */\n constructors = {};\n /**\n * Global variables available in the mapper\n * @protected\n */\n globals = {\n isCollection,\n isClass,\n isObject,\n classOf,\n nameOf,\n hasJsonMethod,\n isMongooseObject,\n isNil,\n isDate,\n objectKeys,\n isMomentObject\n };\n constructor() {\n this.addGlobal(\"alterIgnore\", this.alterIgnore.bind(this));\n this.addGlobal(\"alterValue\", this.alterValue.bind(this));\n this.addGlobal(\"execMapper\", this.execMapper.bind(this));\n this.addGlobal(\"compileAndMap\", this.map.bind(this));\n }\n addTypeMapper(model, fn) {\n const id = nameOf(model);\n this.cache.set(model, new Map().set(\"typeMapper\", {\n id,\n fn\n }));\n this.mappers[id] = fn;\n return this;\n }\n removeTypeMapper(model) {\n const store = this.cache.get(model);\n if (store) {\n const { id } = store.get(\"typeMapper\");\n delete this.mappers[id];\n this.cache.delete(model);\n }\n }\n addGlobal(key, value) {\n this.globals[key] = value;\n return this;\n }\n eval(mapper, { id, groupsId, model }) {\n this.addGlobal(\"cache\", this.cache);\n const { globals, schemes } = this;\n const injectGlobals = Object.keys(globals)\n .map((name) => {\n return `const ${name} = globals.${name};`;\n })\n .join(\"\\n\");\n eval(`${injectGlobals};\n\n cache.get(model).set(groupsId, { id: '${id}', fn: ${mapper} })`);\n const store = this.cache.get(model).get(groupsId);\n this.mappers[id] = store.fn;\n return store;\n }\n createContext(options) {\n const { cache } = this;\n return {\n ...options,\n cache\n };\n }\n compile(model, groups, opts = {}) {\n const token = isString(model) ? model : this.getType(model);\n const groupsId = this.getGroupsId(groups);\n let storeGroups = this.cache.get(token) || this.cache.get(nameOf(token));\n if (!storeGroups) {\n storeGroups = new Map();\n this.cache.set(token, storeGroups);\n }\n if (storeGroups.has(\"typeMapper\")) {\n return storeGroups.get(\"typeMapper\");\n }\n // generate mapper for the given groups\n if (!storeGroups.has(groupsId)) {\n const id = this.getId(token, groupsId);\n // prevent circular dependencies\n storeGroups.set(groupsId, {\n id\n });\n const mapper = opts.mapper ? opts.mapper(id, groups) : this.createMapper(token, id, groups);\n try {\n return this.eval(mapper, { id, model: token, groupsId });\n }\n catch (err) {\n throw new Error(`Fail to compile mapper for ${nameOf(model)}. See the error above: ${err.message}.\\n${mapper}`);\n }\n }\n return storeGroups.get(groupsId);\n }\n execMapper(id, value, options) {\n if (isObjectID(value)) {\n return value.toString();\n }\n return this.mappers[id || nameOf(classOf(value))](value, options);\n }\n getType(model) {\n if (!model) {\n return Object;\n }\n if (isClass(model) && !isCollection(model)) {\n const type = [Array, Map, Set].find((t) => ancestorsOf(model).includes(t));\n if (type) {\n return type;\n }\n }\n return model;\n }\n alterIgnore(id, options) {\n let result = this.schemes[id]?.$hooks?.alter(\"ignore\", false, [options]);\n if (result) {\n return result;\n }\n }\n alterGroups(schema, groups) {\n if (groups !== false) {\n return schema.$hooks.alter(\"groups\", false, [groups]);\n }\n return false;\n }\n getGroupsId(groups) {\n if (groups === false) {\n return \"default\";\n }\n if (groups.length === 0) {\n return \"-\";\n }\n return groups.join(\",\");\n }\n getId(model, groupsId) {\n return `${isString(model) ? model : nameOf(model)}:${getRandomId()}:${groupsId}`;\n }\n getSchemaId(id, propertyKey) {\n return `${id}:${propertyKey}`;\n }\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__803__;","module.exports = __WEBPACK_EXTERNAL_MODULE__953__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","/**\n * @ignore\n */\n// tslint:disable-next-line:variable-name\nconst JsonMapperTypesContainer = new Map();\n/**\n * @ignore\n */\nexport function registerJsonTypeMapper(type, token) {\n JsonMapperTypesContainer.set(type, new token());\n}\n/**\n * @ignore\n */\nexport function getJsonMapperTypes() {\n return JsonMapperTypesContainer;\n}\n","import { registerJsonTypeMapper } from \"../domain/JsonMapperTypesContainer.js\";\n/**\n * Register a new JsonMapper Type\n * @param types\n * @constructor\n */\nexport function JsonMapper(...types) {\n return (target) => {\n types.forEach((type) => {\n registerJsonTypeMapper(type, target);\n });\n };\n}\n","import { __decorate } from \"tslib\";\nimport { isBoolean } from \"@tsed/core\";\nimport { JsonMapper } from \"../decorators/jsonMapper.js\";\n/**\n * Mapper for `Date` type.\n * @jsonmapper\n * @component\n */\nlet DateMapper = class DateMapper {\n deserialize(data) {\n // don't convert unexpected data. In normal case, Ajv reject unexpected data.\n // But by default, we have to skip data deserialization and let user to apply\n // the right mapping\n if (isBoolean(data) || data === null || data === undefined) {\n return data;\n }\n return new Date(data);\n }\n serialize(object) {\n return object ? new Date(object).toISOString() : object;\n }\n};\nDateMapper = __decorate([\n JsonMapper(Date)\n], DateMapper);\nexport { DateMapper };\n","import { __decorate } from \"tslib\";\nimport { nameOf } from \"@tsed/core\";\nimport { JsonMapper } from \"../decorators/jsonMapper.js\";\nfunction isNullish(data) {\n return [null, \"null\"].includes(data);\n}\nexport class CastError extends Error {\n name = \"CAST_ERROR\";\n constructor(message) {\n super(`Cast error. ${message}`);\n }\n}\n/**\n * Mapper for the `String`, `Number`, `BigInt` and `Boolean` types.\n * @jsonmapper\n * @component\n */\nlet PrimitiveMapper = class PrimitiveMapper {\n deserialize(data, ctx) {\n return this[nameOf(ctx.type)] ? this[nameOf(ctx.type)](data, ctx) : undefined;\n }\n serialize(object, ctx) {\n return this[nameOf(ctx?.type)] && typeof object !== \"object\" ? this[nameOf(ctx.type)](object, ctx) : object;\n }\n String(data) {\n return data === null ? null : \"\" + data;\n }\n Boolean(data) {\n if ([\"true\", \"1\", true].includes(data))\n return true;\n if ([\"false\", \"0\", false].includes(data))\n return false;\n if (isNullish(data))\n return null;\n if (data === undefined)\n return undefined;\n return !!data;\n }\n Number(data) {\n if (isNullish(data))\n return null;\n if (data === undefined)\n return data;\n const n = +data;\n if (isNaN(n)) {\n throw new CastError(\"Expression value is not a number.\");\n }\n return n;\n }\n BigInt(data) {\n if (isNullish(data))\n return null;\n return BigInt(data);\n }\n};\nPrimitiveMapper = __decorate([\n JsonMapper(String, Number, Boolean, BigInt)\n], PrimitiveMapper);\nexport { PrimitiveMapper };\n","import { __decorate } from \"tslib\";\nimport { JsonMapper } from \"../decorators/jsonMapper.js\";\n/**\n * Mapper for the `Symbol` type.\n *\n * @jsonmapper\n * @component\n */\nlet SymbolMapper = class SymbolMapper {\n deserialize(data) {\n return Symbol.for(data);\n }\n serialize(object) {\n return object.toString().replace(\"Symbol(\", \"\").replace(\")\", \"\");\n }\n};\nSymbolMapper = __decorate([\n JsonMapper(Symbol)\n], SymbolMapper);\nexport { SymbolMapper };\n","import { JsonEntityFn } from \"@tsed/schema\";\n/**\n * Call the function after JsonMapper.\n *\n * ## Example\n *\n * ```typescript\n * @AfterDeserialize((data: Model) => { // After deserialize get the instance class\n * if (data.prop1 === 'VALUE' && data.prop2 !== 'VALUE2') {\n * throw BadRequest('MyMessage'); // or throw a ValidationError\n * } else {\n * data.prop2 = 'VALUE2';\n * return data;\n * }\n * })\n * class Model {\n * @Property()\n * prop1: string;\n * @Property()\n * prop2: string;\n * }\n * ```\n *\n * @returns {Function}\n * @decorator\n * @schema\n * @property\n * @param cb\n */\nexport function AfterDeserialize(cb) {\n return JsonEntityFn((storedJson) => {\n storedJson.schema.$hooks.on(\"afterDeserialize\", cb);\n });\n}\n","import { JsonEntityFn } from \"@tsed/schema\";\n/**\n * Call the function before JsonMapper.\n *\n * ## Example\n *\n * ```typescript\n * @BeforeDeserialize((data: Record<string, unknown>) => { // Before deserialize get the data\n * if (data.prop1 === 'VALUE' && data.prop2 !== 'VALUE2') {\n * throw BadRequest('MyMessage'); // or throw a ValidationError\n * } else {\n * data.prop2 = 'VALUE2';\n * return data;\n * }\n * })\n * class Model {\n * @Property()\n * prop1: string;\n * @Property()\n * prop2: string;\n * }\n * ```\n *\n * @returns {Function}\n * @decorator\n * @schema\n * @property\n * @param cb\n */\nexport function BeforeDeserialize(cb) {\n return JsonEntityFn((storedJson) => {\n storedJson.schema.$hooks.on(\"beforeDeserialize\", cb);\n });\n}\n","import { JsonEntityFn } from \"@tsed/schema\";\n/**\n * Call the function before property deserialization.\n *\n * ## Example\n *\n * ```typescript\n * class Model {\n * @OnDeserialize(v => v + 1)\n * property: string;\n * }\n * ```\n *\n * @returns {Function}\n * @decorator\n * @schema\n * @property\n * @param cb\n */\nexport function OnDeserialize(cb) {\n return JsonEntityFn((storedJson) => {\n storedJson.schema.$hooks.on(\"onDeserialize\", cb);\n });\n}\n","import { JsonEntityFn } from \"@tsed/schema\";\n/**\n * Call the function before property serialization.\n *\n * ## Example\n *\n * ```typescript\n * class Model {\n * @OnSerialize(v => v + 1)\n * property: string;\n * }\n * ```\n *\n * @returns {Function}\n * @decorator\n * @schema\n * @property\n * @param cb\n */\nexport function OnSerialize(cb) {\n return JsonEntityFn((storedJson) => {\n storedJson.schema.$hooks.on(\"onSerialize\", cb);\n });\n}\n","export function alterAfterDeserialize(data, schema, options) {\n return schema?.$hooks?.alter(\"afterDeserialize\", data, [options]);\n}\n","export function alterBeforeDeserialize(data, schema, options) {\n return schema?.$hooks?.alter(\"beforeDeserialize\", data, [options]);\n}\n","export function alterOnDeserialize(schema, value, options) {\n return schema.$hooks.alter(\"onDeserialize\", value, [options]);\n}\n","export const JsonMapperSettings = {\n disableUnsecureConstructor: true,\n additionalProperties: false,\n strictGroups: false\n};\n","export class Writer {\n static object = {\n assign(...args) {\n return `{ ${args.filter(Boolean).join(\", \")} }`;\n }\n };\n _root;\n body = [];\n _indent;\n constructor(root) {\n this._root = root;\n }\n static indent(lines) {\n return lines.map((p) => `\\t${p}`);\n }\n static mapper(mapperId, key, options) {\n return `execMapper('${mapperId}', ${key}, ${options})`;\n }\n static mapperFrom(key, options) {\n return `execMapper(nameOf(classOf(${key})), ${key}, ${options})`;\n }\n static options(...args) {\n args = args.filter(Boolean);\n return !args.length ? \"options\" : Writer.object.assign(\"...options\", ...args);\n }\n add(...lines) {\n lines = lines.filter((line) => line !== undefined);\n lines.length && this.body.push(...lines);\n return this;\n }\n arrow(...args) {\n this.add(`(${args}) => {`);\n const writer = this.new();\n this.add(\"}\");\n return writer;\n }\n build() {\n const result = this.body.flatMap((line) => {\n return line instanceof Writer ? line.build() : line;\n });\n return this._indent ? result.map((item) => \"\\t\" + item) : result;\n }\n callMapper(id, key, ...options) {\n return this.set(key, Writer.mapper(id, key, Writer.options(...options)));\n }\n returnCallMapper(id, key, ...options) {\n return this.return(Writer.mapper(id, key, Writer.options(...options)));\n }\n const(name, line) {\n this.add(`const ${name} = ${line};`);\n return this;\n }\n each(iterable, args = []) {\n const writer = this.add(iterable + \".forEach((\" + args.join(\", \") + \") => {\").new();\n this.add(\"});\");\n return writer;\n }\n if(condition) {\n const writer = new IfWriter(condition, this);\n this.add(writer);\n return writer;\n }\n switch(input) {\n const sw = new SwitchWriter(input);\n this.add(sw);\n return sw;\n }\n indent(indent) {\n this._indent = indent;\n return this;\n }\n new(indent = true) {\n const writer = new Writer(this.root());\n writer.indent(indent);\n this.add(writer);\n return writer;\n }\n return(line) {\n this.add(`return ${line};`);\n return this.root();\n }\n root() {\n return this._root || this;\n }\n set(left, right) {\n this.add(`${left} = ${right};`);\n return this;\n }\n toString() {\n return this.build().join(\"\\n\");\n }\n}\nclass IfWriter extends Writer {\n condition;\n elseWriter;\n constructor(condition, root) {\n super();\n this.condition = condition;\n this._root = root;\n }\n else() {\n const writer = new Writer(this._root);\n this.elseWriter = writer;\n return writer;\n }\n build() {\n return [\n `if (${this.condition}) {`,\n ...Writer.indent(super.build()),\n \"}\",\n this.elseWriter ? [`else {`, ...Writer.indent(this.elseWriter.build()), \"}\"] : []\n ].flat();\n }\n}\nclass SwitchWriter extends Writer {\n input;\n #map = new Map();\n constructor(input) {\n super();\n this.input = input;\n }\n case(condition) {\n const writer = new Writer();\n this.#map.set(condition, writer);\n return writer;\n }\n build() {\n return [\n `switch (${this.input}) {`,\n ...Writer.indent(Array.from(this.#map.entries()).flatMap(([condition, writer]) => {\n return [condition === \"default\" ? `${condition}:` : `case ${condition}:`, ...Writer.indent(writer.build())];\n })),\n \"}\"\n ].flat();\n }\n}\n","import { classOf, isArray, isBoolean, isClass, isEmpty, isNil, nameOf, objectKeys } from \"@tsed/core\";\nimport { getPropertiesStores, JsonEntityStore, JsonParameterStore } from \"@tsed/schema\";\nimport { alterAfterDeserialize } from \"../hooks/alterAfterDeserialize.js\";\nimport { alterBeforeDeserialize } from \"../hooks/alterBeforeDeserialize.js\";\nimport { alterOnDeserialize } from \"../hooks/alterOnDeserialize.js\";\nimport { JsonMapperCompiler } from \"./JsonMapperCompiler.js\";\nimport { JsonMapperSettings } from \"./JsonMapperSettings.js\";\nimport { getJsonMapperTypes } from \"./JsonMapperTypesContainer.js\";\nimport { Writer } from \"./Writer.js\";\nfunction isDeserializable(obj, options) {\n if ((!!options.collectionType && isNil(obj)) || obj === undefined) {\n return false;\n }\n return !(isEmpty(options.type) || (options.type === Object && !options.collectionType));\n}\nfunction varKey(k) {\n return `__${k}`;\n}\nfunction mapParamStoreOptions(store, options) {\n return {\n ...options,\n store: undefined,\n type: store.getBestType(),\n collectionType: store.collectionType,\n groups: store.parameter.groups,\n // genericTypes: store.nestedGenerics[0],\n generics: store.nestedGenerics\n };\n}\nfunction getGenericIndex(propertyStore) {\n return propertyStore.parent.schema.genericLabels.indexOf(propertyStore.itemSchema.genericType);\n}\nexport class JsonDeserializer extends JsonMapperCompiler {\n /**\n * Cached classes by his id\n * @protected\n */\n constructors = {};\n constructor() {\n super();\n this.addGlobal(\"newInstanceOf\", this.newInstanceOf.bind(this));\n this.addGlobal(\"alterBeforeDeserialize\", this.alterBeforeDeserialize.bind(this));\n this.addGlobal(\"alterAfterDeserialize\", this.alterAfterDeserialize.bind(this));\n this.addTypeMapper(Object, this.mapObject.bind(this));\n this.addTypeMapper(Array, this.mapArray.bind(this));\n this.addTypeMapper(Map, this.mapMap.bind(this));\n this.addTypeMapper(Set, this.mapSet.bind(this));\n this.addTypeMapper(\"ObjectId\", (value) => String(value));\n }\n map(input, options = {}) {\n options = this.mapOptions(options);\n if (!isDeserializable(input, options)) {\n return input;\n }\n if (!options.collectionType && isArray(input)) {\n options.collectionType = Array;\n }\n const model = options.type || classOf(input);\n const mapper = this.compile(model, options.groups);\n if (options.collectionType) {\n const collectionMapper = this.compile(options.collectionType, options.groups);\n return collectionMapper.fn(input, { ...options, id: mapper.id });\n }\n return mapper.fn(input, this.createContext(options));\n }\n compile(model, groups) {\n if ([WeakMap, WeakSet].includes(model)) {\n throw new Error(`${nameOf(model)} is not supported by JsonMapper.`);\n }\n return super.compile(model, groups);\n }\n eval(mapper, { id, groupsId, model }) {\n this.constructors[id] = model;\n return super.eval(mapper, { id, groupsId, model });\n }\n newInstanceOf(id, obj, options) {\n try {\n return new this.constructors[id](options.disableUnsecureConstructor ? {} : obj);\n }\n catch (er) {\n return obj;\n }\n }\n createMapper(model, id, groups) {\n const entity = JsonEntityStore.from(model);\n const properties = new Set();\n const schemaProperties = [...getPropertiesStores(entity).values()];\n const writer = new Writer().arrow(\"input\", \"options\");\n writer.if(\"isNil(input)\").return(\"input\");\n if (entity.schema.hasDiscriminator) {\n writer.add(this.mapDiscriminator(entity, groups));\n }\n // pre hook\n if (entity.schema.$hooks?.has(\"beforeDeserialize\")) {\n this.schemes[id] = entity.schema;\n writer.set(\"input\", `alterBeforeDeserialize('${id}', input, options)`);\n }\n // generics and options\n writer.const(\"generics\", \"options.generics[0]\");\n if (entity.schema.genericLabels?.length) {\n writer.set(\"options\", \"{...options, self: input, generics: [...options.generics].slice(1)}\");\n }\n else {\n writer.set(\"options\", \"{...options, self: input}\");\n }\n writer.const(\"obj\", `newInstanceOf('${id}', input, options)`);\n // properties\n writer.add(...schemaProperties.flatMap((propertyStore) => {\n const key = propertyStore.propertyName;\n // TODO V8 add this line: properties.add(key as string);\n properties.add(String(propertyStore.parent.schema.getAliasOf(key) || key));\n if ((propertyStore.schema?.$ignore && isBoolean(propertyStore.schema?.$ignore)) ||\n propertyStore.isGetterOnly() ||\n (propertyStore.schema?.$hooks?.has(\"groups\") && this.alterGroups(propertyStore.schema, groups))) {\n return;\n }\n return this.mapProperty(propertyStore, id, groups);\n }));\n // additional properties\n writer.add(this.mapAdditionalProperties(entity, properties, groups));\n // post hook\n if (entity.schema.$hooks?.has(\"afterDeserialize\")) {\n this.schemes[id] = entity.schema;\n return writer.return(`alterAfterDeserialize('${id}', obj, options)`).root().toString();\n }\n return writer.return(\"obj\").root().toString();\n }\n alterValue(schemaId, value, options) {\n return alterOnDeserialize(this.schemes[schemaId], value, options);\n }\n mapDiscriminator(entity, groups) {\n const writer = new Writer();\n const discriminator = entity.schema.discriminator();\n const sw = writer.switch(`input['${discriminator.propertyName}']`);\n discriminator.values.forEach((value, kind) => {\n const nestedMapper = this.compile(value, groups);\n sw.case(`'${kind}'`).returnCallMapper(nestedMapper.id, \"input\");\n });\n return writer;\n }\n mapProperty(propertyStore, id, groups) {\n const key = String(propertyStore.propertyKey);\n const aliasKey = String(propertyStore.parent.schema.getAliasOf(key) || key);\n const schemaId = this.getSchemaId(id, key);\n const format = propertyStore.itemSchema.get(\"format\");\n const formatOpts = format && `options: {format: '${format}'}`;\n let writer = new Writer().add(`// Map ${key} ${id} ${groups || \"\"}`);\n const pick = key !== aliasKey ? `options.useAlias ? '${aliasKey}' : '${key}'` : `'${key}'`;\n // ignore hook (deprecated)\n if (propertyStore.schema?.$hooks?.has(\"ignore\")) {\n this.schemes[schemaId] = propertyStore.schema;\n writer = writer.if(`!alterIgnore('${schemaId}', {...options, self: input})`);\n }\n // pre hook\n const hasDeserializer = propertyStore.schema?.$hooks?.has(\"onDeserialize\");\n let getter = `input[${pick}]`;\n if (hasDeserializer) {\n this.schemes[schemaId] = propertyStore.schema;\n const opts = Writer.options(formatOpts);\n getter = `alterValue('${schemaId}', input[${pick}], ${opts})`;\n }\n const ifWriter = writer.set(`let ${varKey(key)}`, getter).if(`${varKey(key)} !== undefined`);\n const fill = this.getPropertyFiller(propertyStore, id, groups, formatOpts);\n if (hasDeserializer) {\n fill(ifWriter.if(`${varKey(key)} === input.${key}`));\n }\n else {\n fill(ifWriter);\n }\n ifWriter.set(`obj.${key}`, varKey(key));\n if (groups && groups.includes(\"partial\")) {\n ifWriter.else().add(`delete obj.${key}`);\n }\n return writer.root();\n }\n getPropertyFiller(propertyStore, id, groups, formatOpts) {\n const key = String(propertyStore.propertyKey);\n const schemaId = this.getSchemaId(id, key);\n const generics = propertyStore.itemSchema.nestedGenerics;\n const isGeneric = propertyStore.itemSchema.isGeneric && !generics?.length;\n if (isGeneric) {\n const index = getGenericIndex(propertyStore);\n const opts = Writer.options(formatOpts, `type: generics[${index}]`);\n return (writer) => writer.set(varKey(key), `compileAndMap(${varKey(key)}, ${opts})`);\n }\n const type = propertyStore.itemSchema.hasDiscriminator ? propertyStore.itemSchema.discriminator().base : propertyStore.getBestType();\n const nestedMapper = this.compile(type, groups);\n if (propertyStore.isCollection) {\n return (writer) => writer.callMapper(nameOf(propertyStore.collectionType), varKey(key), `id: '${nestedMapper.id}'`, formatOpts);\n }\n if (generics?.length) {\n this.schemes[schemaId] = propertyStore.schema;\n return (writer) => writer.callMapper(nestedMapper.id, varKey(key), formatOpts, `generics: schemes['${schemaId}'].nestedGenerics`);\n }\n return (writer) => writer.callMapper(nestedMapper.id, varKey(key), formatOpts);\n }\n mapOptions({ groups, useAlias = true, types, ...options }) {\n if (options.store instanceof JsonParameterStore) {\n return this.mapOptions(mapParamStoreOptions(options.store, options));\n }\n const customMappers = {};\n types = types || getJsonMapperTypes();\n types.forEach((mapper, model) => {\n if (![Array, Set, Map].includes(model)) {\n const typeName = nameOf(model);\n if (nameOf(model) in mapper) {\n this.addTypeMapper(model, mapper[typeName].bind(mapper));\n }\n else {\n this.addTypeMapper(model, (value, options) => mapper.deserialize(value, {\n ...options,\n type: model\n }));\n }\n }\n });\n const strictGroups = options.strictGroups ?? JsonMapperSettings.strictGroups;\n return {\n ...options,\n additionalProperties: options.additionalProperties ?? JsonMapperSettings.additionalProperties,\n disableUnsecureConstructor: options.disableUnsecureConstructor ?? JsonMapperSettings.disableUnsecureConstructor,\n groups: groups === undefined ? (strictGroups ? [] : false) : groups || false,\n useAlias,\n customMappers,\n generics: options.generics || []\n };\n }\n mapAdditionalProperties(entity, properties, groups) {\n const additionalProperties = entity.schema.get(\"additionalProperties\");\n const exclude = [...properties.values()].map((key) => `'${key}'`).join(\", \");\n const writer = new Writer();\n writer.add(\"// add additional properties\");\n let each = writer.each(\"objectKeys(input)\", [\"key\"]);\n if (exclude.length) {\n each = each.if(`![${exclude}].includes(key)`);\n }\n if (isClass(additionalProperties)) {\n const nestedMapper = this.compile(additionalProperties.getComputedType(), groups);\n each.set(\"obj[key]\", Writer.mapper(nestedMapper.id, \"input[key]\", \"options\"));\n return writer;\n }\n if (additionalProperties) {\n each.set(\"obj[key]\", \"input[key]\");\n return writer;\n }\n // dynamic additional properties options\n each.if(`options.additionalProperties && obj[key] === undefined`).set(\"obj[key]\", \"input[key]\");\n return writer;\n }\n mapObject(input, options) {\n return input;\n }\n mapSet(input, options) {\n if (isNil(input)) {\n return input;\n }\n const obj = new Set();\n objectKeys(input).forEach((key) => {\n obj.add(this.mapItem(input[key], options));\n });\n return obj;\n }\n mapArray(input, options) {\n if (isNil(input)) {\n return input;\n }\n return [].concat(input).map((item) => {\n return this.mapItem(item, options);\n });\n }\n mapMap(input, options) {\n if (isNil(input)) {\n return input;\n }\n const obj = new Map();\n objectKeys(input).forEach((key) => {\n obj.set(key, this.mapItem(input[key], options));\n });\n return obj;\n }\n mapItem(input, { id, ...options }) {\n return this.execMapper(id, input, options);\n }\n alterBeforeDeserialize(schemaId, value, options) {\n return alterBeforeDeserialize(value, this.schemes[schemaId], options);\n }\n alterAfterDeserialize(schemaId, value, options) {\n return alterAfterDeserialize(value, this.schemes[schemaId], options);\n }\n}\n","export function alterOnSerialize(schema, value, options) {\n return schema.$hooks.alter(\"onSerialize\", value, [options]);\n}\n","import { isFunction } from \"@tsed/core\";\nexport function getObjectProperties(obj) {\n return Object.entries(obj).filter(([, value]) => !isFunction(value));\n}\n","import { classOf, hasJsonMethod, isArray, isBoolean, isClassObject, isCollection, isDate, isMomentObject, isMongooseObject, isNil, isObject, isPrimitive, nameOf } from \"@tsed/core\";\nimport { getPropertiesStores, JsonEntityStore } from \"@tsed/schema\";\nimport { alterOnSerialize } from \"../hooks/alterOnSerialize.js\";\nimport { getObjectProperties } from \"../utils/getObjectProperties.js\";\nimport { JsonMapperCompiler } from \"./JsonMapperCompiler.js\";\nimport { JsonMapperSettings } from \"./JsonMapperSettings.js\";\nimport { getJsonMapperTypes } from \"./JsonMapperTypesContainer.js\";\nimport { Writer } from \"./Writer.js\";\nconst getCollectionType = (input) => {\n return isArray(input) ? \"Array\" : input instanceof Set ? \"Set\" : input instanceof Map ? \"Map\" : undefined;\n};\nfunction getBestType(type, obj) {\n const dataType = classOf(obj);\n if (dataType && !isClassObject(dataType) && !isCollection(obj)) {\n return dataType;\n }\n return type || Object;\n}\nfunction varKey(k) {\n return `__${k}`;\n}\nexport class JsonSerializer extends JsonMapperCompiler {\n constructor() {\n super();\n this.addTypeMapper(Object, this.mapObject.bind(this));\n this.addTypeMapper(Array, this.mapArray.bind(this));\n this.addTypeMapper(Map, this.mapMap.bind(this));\n this.addTypeMapper(Set, this.mapSet.bind(this));\n this.addGlobal(\"mapJSON\", this.mapJSON.bind(this));\n this.addTypeMapper(\"ObjectId\", (value) => String(value));\n }\n map(input, options = {}) {\n if (isNil(input)) {\n return input;\n }\n options = this.mapOptions(options);\n const model = getBestType(options.type, input);\n const mapper = this.compile(model, options.groups);\n return mapper.fn(input, this.createContext(options));\n }\n alterValue(schemaId, value, options) {\n return alterOnSerialize(this.schemes[schemaId], value, options);\n }\n createMapper(model, id, groups) {\n const entity = JsonEntityStore.from(model);\n const properties = new Set();\n const schemaProperties = [...getPropertiesStores(entity).values()];\n const writer = new Writer().arrow(\"input\", \"options\");\n writer.if(\"isNil(input)\").return(\"input\");\n // prepare options\n writer.const(\"obj\", \"{}\");\n writer.set(\"options\", \"{...options, self: input}\");\n // detect some special case\n writer.add(this.mapPrecondition(id));\n if (!schemaProperties.length) {\n return writer.return(\"isObject(input) ? {...input} : input\").root().toString();\n }\n // properties\n writer.add(...schemaProperties.flatMap((propertyStore) => {\n properties.add(propertyStore.propertyKey);\n if ((propertyStore.schema?.$ignore && isBoolean(propertyStore.schema?.$ignore)) ||\n (propertyStore.schema?.$hooks?.has(\"groups\") && this.alterGroups(propertyStore.schema, groups))) {\n return;\n }\n return this.mapProperty(propertyStore, id, groups);\n }));\n // discriminator\n writer.add(this.mapDiscriminatorKeyValue(entity));\n // additional properties\n writer.add(this.mapAdditionalProperties(entity, properties));\n return writer.return(\"obj\").root().toString();\n }\n mapOptions({ groups, useAlias = true, types, ...options }) {\n const customMappers = {};\n types = types || getJsonMapperTypes();\n types.forEach((mapper, model) => {\n if (![Array, Set, Map].includes(model)) {\n this.addTypeMapper(model, (value, options) => mapper.serialize(value, {\n ...options,\n type: model\n }));\n }\n });\n const strictGroups = options.strictGroups ?? JsonMapperSettings.strictGroups;\n return {\n ...options,\n groups: groups === undefined ? (strictGroups ? [] : false) : groups || false,\n useAlias,\n customMappers\n };\n }\n mapProperty(propertyStore, id, groups) {\n const key = String(propertyStore.propertyKey);\n const aliasKey = String(propertyStore.parent.schema.getAliasOf(key) || key);\n const schemaId = this.getSchemaId(id, key);\n const format = propertyStore.itemSchema.get(\"format\");\n const formatOpts = format && `options: {format: '${format}'}`;\n let writer = new Writer().add(`// Map ${key} ${id} ${groups || \"\"}`);\n // ignore hook (deprecated)\n if (propertyStore.schema?.$hooks?.has(\"ignore\")) {\n this.schemes[schemaId] = propertyStore.schema;\n writer = writer.if(`!alterIgnore('${schemaId}', {...options, self: input})`);\n }\n // pre hook\n const hasSerializer = propertyStore.schema?.$hooks?.has(\"onSerialize\");\n let getter = `input.${key}`;\n if (hasSerializer) {\n this.schemes[schemaId] = propertyStore.schema;\n const opts = Writer.options(formatOpts);\n getter = `alterValue('${schemaId}', input.${key}, ${opts})`;\n }\n writer = writer.set(`let ${varKey(key)}`, getter).if(`${varKey(key)} !== undefined`);\n const fill = this.getPropertyFiller(propertyStore, key, groups, formatOpts);\n if (hasSerializer) {\n fill(writer.if(`${varKey(key)} === input.${key}`));\n }\n else {\n fill(writer);\n }\n if (aliasKey !== key) {\n writer.set(`obj[options.useAlias ? '${aliasKey}' : '${key}']`, varKey(key));\n }\n else {\n writer.set(`obj.${key}`, varKey(key));\n }\n return writer.root();\n }\n getPropertyFiller(propertyStore, key, groups, formatOpts) {\n const isGeneric = propertyStore.itemSchema.isGeneric;\n const hasDiscriminator = propertyStore.itemSchema.hasDiscriminator;\n if (propertyStore.isCollection) {\n const type = propertyStore.getBestType();\n let nestedMapper;\n if (hasDiscriminator) {\n const targetName = propertyStore.parent.targetName;\n nestedMapper = this.compile(`Discriminator:${targetName}:${key}`, groups, {\n mapper: () => this.createDiscriminatorMapper(propertyStore, groups)\n });\n }\n else {\n nestedMapper = isGeneric ? { id: \"\" } : this.compile(type, groups);\n }\n return (writer) => writer.callMapper(nameOf(propertyStore.collectionType), varKey(key), `id: '${nestedMapper.id}'`, formatOpts);\n }\n if (isGeneric) {\n return (writer) => writer.set(varKey(key), `compileAndMap(${varKey(key)}, options)`);\n }\n let nestedMapper;\n if (hasDiscriminator) {\n const targetName = propertyStore.parent.targetName;\n nestedMapper = this.compile(`Discriminator:${targetName}:${key}`, groups, {\n mapper: () => this.createDiscriminatorMapper(propertyStore, groups)\n });\n }\n else {\n nestedMapper = this.compile(propertyStore.getBestType(), groups);\n }\n return (writer) => writer.callMapper(nestedMapper.id, varKey(key), formatOpts);\n }\n createDiscriminatorMapper(propertyStore, groups) {\n const discriminator = propertyStore.itemSchema.discriminator();\n const writer = new Writer().arrow(\"input\", \"options\");\n const sw = writer.switch(`nameOf(classOf(input))`);\n discriminator.values.forEach((value, kind) => {\n const nestedMapper = this.compile(value, groups);\n sw.case(`'${nameOf(value)}'`).returnCallMapper(nestedMapper.id, \"input\");\n });\n return writer.root().toString();\n }\n mapPrecondition(id) {\n const writer = new Writer();\n writer.if(\"input && isCollection(input)\").return(Writer.mapperFrom(\"input\", `{...options, id: '${id}'}`));\n writer.if(\"hasJsonMethod(input)\").return(`mapJSON(input, {...options, id: '${id}'})`);\n return writer;\n }\n mapDiscriminatorKeyValue(entity) {\n if (entity.discriminatorAncestor) {\n const discriminator = entity.discriminatorAncestor.schema.discriminator();\n const type = discriminator.getDefaultValue(entity.target);\n if (type) {\n const writer = new Writer();\n writer.if(`!obj.${discriminator.propertyName}`).set(`obj.${discriminator.propertyName}`, `'${type}'`);\n return writer;\n }\n }\n }\n mapAdditionalProperties(entity, properties) {\n const additionalProperties = !!entity.schema.get(\"additionalProperties\");\n if (additionalProperties) {\n const exclude = [...properties.values()].map((key) => `'${key}'`).join(\", \");\n const writer = new Writer();\n writer.add(\"// add additional properties\");\n writer.each(\"objectKeys(input)\", [\"key\"]).if(`![${exclude}].includes(key)`).set(\"obj[key]\", \"input[key]\");\n return writer;\n }\n }\n mapObject(input, { type, ...options }) {\n if ((input && isPrimitive(input)) || !input) {\n // prevent mongoose mapping error\n return input;\n }\n if (input && isCollection(input)) {\n return this.execMapper(getCollectionType(input), input, options);\n }\n if (hasJsonMethod(input)) {\n return this.mapJSON(input, options);\n }\n return getObjectProperties(input)\n .filter(([, value]) => value !== undefined)\n .reduce((obj, [key, value]) => {\n if (isNil(value)) {\n return {\n ...obj,\n [key]: value\n };\n }\n const mapper = this.compile(classOf(value), options.groups);\n return {\n ...obj,\n [key]: mapper.fn(value, options)\n };\n }, {});\n }\n mapSet(input, options) {\n if (isNil(input)) {\n return input;\n }\n return [...input.values()].map((item) => {\n return this.mapItem(item, options);\n });\n }\n mapArray(input, options) {\n if (isNil(input)) {\n return input;\n }\n return [].concat(input).map((item) => {\n return this.mapItem(item, options);\n });\n }\n mapMap(input, options) {\n if (isNil(input)) {\n return input;\n }\n return [...input.entries()].reduce((obj, [key, item]) => {\n return {\n ...obj,\n [key]: this.mapItem(item, options)\n };\n }, {});\n }\n mapItem(input, { id, ...options }) {\n if (!id && input) {\n return this.compile(classOf(input), options.groups).fn(input, options);\n }\n return id ? this.execMapper(id, input, options) : input;\n }\n mapJSON(input, { id, ...options }) {\n if (isMongooseObject(input)) {\n return input.toJSON({ ...options, id });\n }\n id = id || nameOf(classOf(input));\n if (this.mappers[id] && (isDate(input) || isMomentObject(input))) {\n return this.execMapper(id, input, options);\n }\n input = input.toJSON();\n return isObject(input) ? this.execMapper(id, input, options) : input;\n }\n}\n","import \"../components/DateMapper\";\nimport \"../components/PrimitiveMapper\";\nimport \"../components/SymbolMapper\";\nimport { JsonDeserializer } from \"../domain/JsonDeserializer.js\";\nconst deserializer = new JsonDeserializer();\nexport function deserialize(input, options) {\n return deserializer.map(input, options);\n}\n","import \"../components/DateMapper\";\nimport \"../components/PrimitiveMapper\";\nimport \"../components/SymbolMapper\";\nimport { JsonSerializer } from \"../domain/JsonSerializer.js\";\nconst serializer = new JsonSerializer();\nexport function serialize(input, options) {\n return serializer.map(input, options);\n}\n"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__803__","__WEBPACK_EXTERNAL_MODULE__953__","JsonMapperCompiler","cache","Map","mappers","schemes","constructors","globals","isCollection","isClass","isObject","classOf","nameOf","hasJsonMethod","isMongooseObject","isNil","isDate","objectKeys","isMomentObject","constructor","this","addGlobal","alterIgnore","bind","alterValue","execMapper","map","addTypeMapper","model","fn","id","set","removeTypeMapper","store","get","delete","key","value","eval","mapper","injectGlobals","Object","keys","name","join","groupsId","createContext","options","compile","groups","opts","token","isString","getType","getGroupsId","storeGroups","has","getId","createMapper","err","Error","message","isObjectID","toString","type","Array","Set","find","t","ancestorsOf","includes","result","$hooks","alter","alterGroups","schema","length","getRandomId","getSchemaId","propertyKey","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","__decorate","decorators","target","desc","c","arguments","getOwnPropertyDescriptor","Reflect","decorate","i","create","SuppressedError","JsonMapperTypesContainer","registerJsonTypeMapper","getJsonMapperTypes","JsonMapper","types","forEach","DateMapper","deserialize","data","isBoolean","Date","serialize","object","toISOString","isNullish","CastError","super","PrimitiveMapper","ctx","String","Boolean","Number","isNaN","BigInt","SymbolMapper","for","replace","AfterDeserialize","cb","JsonEntityFn","storedJson","on","BeforeDeserialize","OnDeserialize","OnSerialize","alterAfterDeserialize","alterBeforeDeserialize","alterOnDeserialize","JsonMapperSettings","disableUnsecureConstructor","additionalProperties","strictGroups","Writer","static","assign","args","filter","_root","body","_indent","lines","p","mapperId","add","line","push","arrow","writer","new","build","flatMap","item","callMapper","returnCallMapper","return","const","each","iterable","if","condition","IfWriter","switch","input","sw","SwitchWriter","indent","left","right","elseWriter","else","flat","case","from","entries","varKey","k","JsonDeserializer","newInstanceOf","mapObject","mapArray","mapMap","mapSet","collectionType","isEmpty","isDeserializable","mapOptions","isArray","WeakMap","WeakSet","er","entity","JsonEntityStore","properties","schemaProperties","getPropertiesStores","values","hasDiscriminator","mapDiscriminator","genericLabels","propertyStore","propertyName","parent","getAliasOf","$ignore","isGetterOnly","mapProperty","mapAdditionalProperties","schemaId","discriminator","kind","nestedMapper","aliasKey","format","itemSchema","formatOpts","pick","hasDeserializer","ifWriter","getPropertyFiller","fill","generics","nestedGenerics","isGeneric","index","indexOf","genericType","getGenericIndex","base","getBestType","useAlias","JsonParameterStore","parameter","mapParamStoreOptions","typeName","customMappers","exclude","getComputedType","mapItem","concat","alterOnSerialize","getObjectProperties","isFunction","JsonSerializer","mapJSON","dataType","isClassObject","mapPrecondition","mapDiscriminatorKeyValue","hasSerializer","targetName","createDiscriminatorMapper","mapperFrom","discriminatorAncestor","getDefaultValue","isPrimitive","getCollectionType","reduce","toJSON","deserializer","serializer"],"sourceRoot":""}
1
+ {"version":3,"file":"json-mapper.umd.min.js","mappings":"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","sources":["webpack://@tsed/json-mapper/webpack/universalModuleDefinition","webpack://@tsed/json-mapper/./src/domain/JsonMapperCompiler.ts","webpack://@tsed/json-mapper/external umd \"@tsed/core\"","webpack://@tsed/json-mapper/external umd \"@tsed/schema\"","webpack://@tsed/json-mapper/webpack/bootstrap","webpack://@tsed/json-mapper/webpack/runtime/compat get default export","webpack://@tsed/json-mapper/webpack/runtime/define property getters","webpack://@tsed/json-mapper/webpack/runtime/hasOwnProperty shorthand","webpack://@tsed/json-mapper/webpack/runtime/make namespace object","webpack://@tsed/json-mapper/../../../node_modules/tslib/tslib.es6.mjs","webpack://@tsed/json-mapper/./src/domain/JsonMapperTypesContainer.ts","webpack://@tsed/json-mapper/./src/decorators/jsonMapper.ts","webpack://@tsed/json-mapper/./src/components/DateMapper.ts","webpack://@tsed/json-mapper/./src/components/PrimitiveMapper.ts","webpack://@tsed/json-mapper/./src/components/SymbolMapper.ts","webpack://@tsed/json-mapper/./src/decorators/afterDeserialize.ts","webpack://@tsed/json-mapper/./src/decorators/beforeDeserialize.ts","webpack://@tsed/json-mapper/./src/decorators/onDeserialize.ts","webpack://@tsed/json-mapper/./src/decorators/onSerialize.ts","webpack://@tsed/json-mapper/./src/hooks/alterAfterDeserialize.ts","webpack://@tsed/json-mapper/./src/hooks/alterBeforeDeserialize.ts","webpack://@tsed/json-mapper/./src/hooks/alterOnDeserialize.ts","webpack://@tsed/json-mapper/./src/domain/JsonMapperSettings.ts","webpack://@tsed/json-mapper/./src/domain/Writer.ts","webpack://@tsed/json-mapper/./src/domain/JsonDeserializer.ts","webpack://@tsed/json-mapper/./src/hooks/alterOnSerialize.ts","webpack://@tsed/json-mapper/./src/utils/getObjectProperties.ts","webpack://@tsed/json-mapper/./src/domain/JsonSerializer.ts","webpack://@tsed/json-mapper/./src/utils/deserialize.ts","webpack://@tsed/json-mapper/./src/utils/serialize.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@tsed/core\"), require(\"@tsed/schema\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@tsed/core\", \"@tsed/schema\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@tsed/json-mapper\"] = factory(require(\"@tsed/core\"), require(\"@tsed/schema\"));\n\telse\n\t\troot[\"@tsed/json-mapper\"] = factory(root[\"@tsed/core\"], root[\"@tsed/schema\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE__803__, __WEBPACK_EXTERNAL_MODULE__953__) => {\nreturn ","import { ancestorsOf, classOf, getRandomId, hasJsonMethod, isClass, isCollection, isDate, isMomentObject, isMongooseObject, isNil, isObject, isObjectID, isString, nameOf, objectKeys } from \"@tsed/core\";\nexport class JsonMapperCompiler {\n constructor() {\n /**\n * Cached mappers metadata\n * @protected\n */\n this.cache = new Map();\n /**\n * Cached executable mappers by his id\n * @protected\n */\n this.mappers = {};\n /**\n * Cached schemas\n * @protected\n */\n this.schemes = {};\n /**\n * Cached classes by his id\n * @protected\n */\n this.constructors = {};\n /**\n * Global variables available in the mapper\n * @protected\n */\n this.globals = {\n isCollection,\n isClass,\n isObject,\n classOf,\n nameOf,\n hasJsonMethod,\n isMongooseObject,\n isNil,\n isDate,\n objectKeys,\n isMomentObject\n };\n this.addGlobal(\"alterIgnore\", this.alterIgnore.bind(this));\n this.addGlobal(\"alterValue\", this.alterValue.bind(this));\n this.addGlobal(\"execMapper\", this.execMapper.bind(this));\n this.addGlobal(\"compileAndMap\", this.map.bind(this));\n }\n addTypeMapper(model, fn) {\n const id = nameOf(model);\n this.cache.set(model, new Map().set(\"typeMapper\", {\n id,\n fn\n }));\n this.mappers[id] = fn;\n return this;\n }\n removeTypeMapper(model) {\n const store = this.cache.get(model);\n if (store) {\n const { id } = store.get(\"typeMapper\");\n delete this.mappers[id];\n this.cache.delete(model);\n }\n }\n addGlobal(key, value) {\n this.globals[key] = value;\n return this;\n }\n eval(mapper, { id, groupsId, model }) {\n this.addGlobal(\"cache\", this.cache);\n const { globals, schemes } = this;\n const injectGlobals = Object.keys(globals)\n .map((name) => {\n return `const ${name} = globals.${name};`;\n })\n .join(\"\\n\");\n eval(`${injectGlobals};\n\n cache.get(model).set(groupsId, { id: '${id}', fn: ${mapper} })`);\n const store = this.cache.get(model).get(groupsId);\n this.mappers[id] = store.fn;\n return store;\n }\n createContext(options) {\n const { cache } = this;\n return {\n ...options,\n cache\n };\n }\n compile(model, groups, opts = {}) {\n const token = isString(model) ? model : this.getType(model);\n const groupsId = this.getGroupsId(groups);\n let storeGroups = this.cache.get(token) || this.cache.get(nameOf(token));\n if (!storeGroups) {\n storeGroups = new Map();\n this.cache.set(token, storeGroups);\n }\n if (storeGroups.has(\"typeMapper\")) {\n return storeGroups.get(\"typeMapper\");\n }\n // generate mapper for the given groups\n if (!storeGroups.has(groupsId)) {\n const id = this.getId(token, groupsId);\n // prevent circular dependencies\n storeGroups.set(groupsId, {\n id\n });\n const mapper = opts.mapper ? opts.mapper(id, groups) : this.createMapper(token, id, groups);\n try {\n return this.eval(mapper, { id, model: token, groupsId });\n }\n catch (err) {\n throw new Error(`Fail to compile mapper for ${nameOf(model)}. See the error above: ${err.message}.\\n${mapper}`);\n }\n }\n return storeGroups.get(groupsId);\n }\n execMapper(id, value, options) {\n if (isObjectID(value)) {\n return value.toString();\n }\n return this.mappers[id || nameOf(classOf(value))](value, options);\n }\n getType(model) {\n if (!model) {\n return Object;\n }\n if (isClass(model) && !isCollection(model)) {\n const type = [Array, Map, Set].find((t) => ancestorsOf(model).includes(t));\n if (type) {\n return type;\n }\n }\n return model;\n }\n alterIgnore(id, options) {\n let result = this.schemes[id]?.$hooks?.alter(\"ignore\", false, [options]);\n if (result) {\n return result;\n }\n }\n alterGroups(schema, groups) {\n if (groups !== false) {\n return schema.$hooks.alter(\"groups\", false, [groups]);\n }\n return false;\n }\n getGroupsId(groups) {\n if (groups === false) {\n return \"default\";\n }\n if (groups.length === 0) {\n return \"-\";\n }\n return groups.join(\",\");\n }\n getId(model, groupsId) {\n return `${isString(model) ? model : nameOf(model)}:${getRandomId()}:${groupsId}`;\n }\n getSchemaId(id, propertyKey) {\n return `${id}:${propertyKey}`;\n }\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__803__;","module.exports = __WEBPACK_EXTERNAL_MODULE__953__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","/**\n * @ignore\n */\n// tslint:disable-next-line:variable-name\nconst JsonMapperTypesContainer = new Map();\n/**\n * @ignore\n */\nexport function registerJsonTypeMapper(type, token) {\n JsonMapperTypesContainer.set(type, new token());\n}\n/**\n * @ignore\n */\nexport function getJsonMapperTypes() {\n return JsonMapperTypesContainer;\n}\n","import { registerJsonTypeMapper } from \"../domain/JsonMapperTypesContainer.js\";\n/**\n * Register a new JsonMapper Type\n * @param types\n * @constructor\n */\nexport function JsonMapper(...types) {\n return (target) => {\n types.forEach((type) => {\n registerJsonTypeMapper(type, target);\n });\n };\n}\n","import { __decorate } from \"tslib\";\nimport { isBoolean } from \"@tsed/core\";\nimport { JsonMapper } from \"../decorators/jsonMapper.js\";\n/**\n * Mapper for `Date` type.\n * @jsonmapper\n * @component\n */\nlet DateMapper = class DateMapper {\n deserialize(data) {\n // don't convert unexpected data. In normal case, Ajv reject unexpected data.\n // But by default, we have to skip data deserialization and let user to apply\n // the right mapping\n if (isBoolean(data) || data === null || data === undefined) {\n return data;\n }\n return new Date(data);\n }\n serialize(object) {\n return object ? new Date(object).toISOString() : object;\n }\n};\nDateMapper = __decorate([\n JsonMapper(Date)\n], DateMapper);\nexport { DateMapper };\n","import { __decorate } from \"tslib\";\nimport { nameOf } from \"@tsed/core\";\nimport { JsonMapper } from \"../decorators/jsonMapper.js\";\nfunction isNullish(data) {\n return [null, \"null\"].includes(data);\n}\nexport class CastError extends Error {\n constructor(message) {\n super(`Cast error. ${message}`);\n this.name = \"CAST_ERROR\";\n }\n}\n/**\n * Mapper for the `String`, `Number`, `BigInt` and `Boolean` types.\n * @jsonmapper\n * @component\n */\nlet PrimitiveMapper = class PrimitiveMapper {\n deserialize(data, ctx) {\n return this[nameOf(ctx.type)] ? this[nameOf(ctx.type)](data, ctx) : undefined;\n }\n serialize(object, ctx) {\n return this[nameOf(ctx?.type)] && typeof object !== \"object\" ? this[nameOf(ctx.type)](object, ctx) : object;\n }\n String(data) {\n return data === null ? null : \"\" + data;\n }\n Boolean(data) {\n if ([\"true\", \"1\", true].includes(data))\n return true;\n if ([\"false\", \"0\", false].includes(data))\n return false;\n if (isNullish(data))\n return null;\n if (data === undefined)\n return undefined;\n return !!data;\n }\n Number(data) {\n if (isNullish(data))\n return null;\n if (data === undefined)\n return data;\n const n = +data;\n if (isNaN(n)) {\n throw new CastError(\"Expression value is not a number.\");\n }\n return n;\n }\n BigInt(data) {\n if (isNullish(data))\n return null;\n return BigInt(data);\n }\n};\nPrimitiveMapper = __decorate([\n JsonMapper(String, Number, Boolean, BigInt)\n], PrimitiveMapper);\nexport { PrimitiveMapper };\n","import { __decorate } from \"tslib\";\nimport { JsonMapper } from \"../decorators/jsonMapper.js\";\n/**\n * Mapper for the `Symbol` type.\n *\n * @jsonmapper\n * @component\n */\nlet SymbolMapper = class SymbolMapper {\n deserialize(data) {\n return Symbol.for(data);\n }\n serialize(object) {\n return object.toString().replace(\"Symbol(\", \"\").replace(\")\", \"\");\n }\n};\nSymbolMapper = __decorate([\n JsonMapper(Symbol)\n], SymbolMapper);\nexport { SymbolMapper };\n","import { JsonEntityFn } from \"@tsed/schema\";\n/**\n * Call the function after JsonMapper.\n *\n * ## Example\n *\n * ```typescript\n * @AfterDeserialize((data: Model) => { // After deserialize get the instance class\n * if (data.prop1 === 'VALUE' && data.prop2 !== 'VALUE2') {\n * throw BadRequest('MyMessage'); // or throw a ValidationError\n * } else {\n * data.prop2 = 'VALUE2';\n * return data;\n * }\n * })\n * class Model {\n * @Property()\n * prop1: string;\n * @Property()\n * prop2: string;\n * }\n * ```\n *\n * @returns {Function}\n * @decorator\n * @schema\n * @property\n * @param cb\n */\nexport function AfterDeserialize(cb) {\n return JsonEntityFn((storedJson) => {\n storedJson.schema.$hooks.on(\"afterDeserialize\", cb);\n });\n}\n","import { JsonEntityFn } from \"@tsed/schema\";\n/**\n * Call the function before JsonMapper.\n *\n * ## Example\n *\n * ```typescript\n * @BeforeDeserialize((data: Record<string, unknown>) => { // Before deserialize get the data\n * if (data.prop1 === 'VALUE' && data.prop2 !== 'VALUE2') {\n * throw BadRequest('MyMessage'); // or throw a ValidationError\n * } else {\n * data.prop2 = 'VALUE2';\n * return data;\n * }\n * })\n * class Model {\n * @Property()\n * prop1: string;\n * @Property()\n * prop2: string;\n * }\n * ```\n *\n * @returns {Function}\n * @decorator\n * @schema\n * @property\n * @param cb\n */\nexport function BeforeDeserialize(cb) {\n return JsonEntityFn((storedJson) => {\n storedJson.schema.$hooks.on(\"beforeDeserialize\", cb);\n });\n}\n","import { JsonEntityFn } from \"@tsed/schema\";\n/**\n * Call the function before property deserialization.\n *\n * ## Example\n *\n * ```typescript\n * class Model {\n * @OnDeserialize(v => v + 1)\n * property: string;\n * }\n * ```\n *\n * @returns {Function}\n * @decorator\n * @schema\n * @property\n * @param cb\n */\nexport function OnDeserialize(cb) {\n return JsonEntityFn((storedJson) => {\n storedJson.schema.$hooks.on(\"onDeserialize\", cb);\n });\n}\n","import { JsonEntityFn } from \"@tsed/schema\";\n/**\n * Call the function before property serialization.\n *\n * ## Example\n *\n * ```typescript\n * class Model {\n * @OnSerialize(v => v + 1)\n * property: string;\n * }\n * ```\n *\n * @returns {Function}\n * @decorator\n * @schema\n * @property\n * @param cb\n */\nexport function OnSerialize(cb) {\n return JsonEntityFn((storedJson) => {\n storedJson.schema.$hooks.on(\"onSerialize\", cb);\n });\n}\n","export function alterAfterDeserialize(data, schema, options) {\n return schema?.$hooks?.alter(\"afterDeserialize\", data, [options]);\n}\n","export function alterBeforeDeserialize(data, schema, options) {\n return schema?.$hooks?.alter(\"beforeDeserialize\", data, [options]);\n}\n","export function alterOnDeserialize(schema, value, options) {\n return schema.$hooks.alter(\"onDeserialize\", value, [options]);\n}\n","export const JsonMapperSettings = {\n disableUnsecureConstructor: true,\n additionalProperties: false,\n strictGroups: false\n};\n","export class Writer {\n static { this.object = {\n assign(...args) {\n return `{ ${args.filter(Boolean).join(\", \")} }`;\n }\n }; }\n constructor(root) {\n this.body = [];\n this._root = root;\n }\n static indent(lines) {\n return lines.map((p) => `\\t${p}`);\n }\n static mapper(mapperId, key, options) {\n return `execMapper('${mapperId}', ${key}, ${options})`;\n }\n static mapperFrom(key, options) {\n return `execMapper(nameOf(classOf(${key})), ${key}, ${options})`;\n }\n static options(...args) {\n args = args.filter(Boolean);\n return !args.length ? \"options\" : Writer.object.assign(\"...options\", ...args);\n }\n add(...lines) {\n lines = lines.filter((line) => line !== undefined);\n lines.length && this.body.push(...lines);\n return this;\n }\n arrow(...args) {\n this.add(`(${args}) => {`);\n const writer = this.new();\n this.add(\"}\");\n return writer;\n }\n build() {\n const result = this.body.flatMap((line) => {\n return line instanceof Writer ? line.build() : line;\n });\n return this._indent ? result.map((item) => \"\\t\" + item) : result;\n }\n callMapper(id, key, ...options) {\n return this.set(key, Writer.mapper(id, key, Writer.options(...options)));\n }\n returnCallMapper(id, key, ...options) {\n return this.return(Writer.mapper(id, key, Writer.options(...options)));\n }\n const(name, line) {\n this.add(`const ${name} = ${line};`);\n return this;\n }\n each(iterable, args = []) {\n const writer = this.add(iterable + \".forEach((\" + args.join(\", \") + \") => {\").new();\n this.add(\"});\");\n return writer;\n }\n if(condition) {\n const writer = new IfWriter(condition, this);\n this.add(writer);\n return writer;\n }\n switch(input) {\n const sw = new SwitchWriter(input);\n this.add(sw);\n return sw;\n }\n indent(indent) {\n this._indent = indent;\n return this;\n }\n new(indent = true) {\n const writer = new Writer(this.root());\n writer.indent(indent);\n this.add(writer);\n return writer;\n }\n return(line) {\n this.add(`return ${line};`);\n return this.root();\n }\n root() {\n return this._root || this;\n }\n set(left, right) {\n this.add(`${left} = ${right};`);\n return this;\n }\n toString() {\n return this.build().join(\"\\n\");\n }\n}\nclass IfWriter extends Writer {\n constructor(condition, root) {\n super();\n this.condition = condition;\n this._root = root;\n }\n else() {\n const writer = new Writer(this._root);\n this.elseWriter = writer;\n return writer;\n }\n build() {\n return [\n `if (${this.condition}) {`,\n ...Writer.indent(super.build()),\n \"}\",\n this.elseWriter ? [`else {`, ...Writer.indent(this.elseWriter.build()), \"}\"] : []\n ].flat();\n }\n}\nclass SwitchWriter extends Writer {\n #map;\n constructor(input) {\n super();\n this.input = input;\n this.#map = new Map();\n }\n case(condition) {\n const writer = new Writer();\n this.#map.set(condition, writer);\n return writer;\n }\n build() {\n return [\n `switch (${this.input}) {`,\n ...Writer.indent(Array.from(this.#map.entries()).flatMap(([condition, writer]) => {\n return [condition === \"default\" ? `${condition}:` : `case ${condition}:`, ...Writer.indent(writer.build())];\n })),\n \"}\"\n ].flat();\n }\n}\n","import { classOf, isArray, isBoolean, isClass, isEmpty, isNil, nameOf, objectKeys } from \"@tsed/core\";\nimport { getPropertiesStores, JsonEntityStore, JsonParameterStore } from \"@tsed/schema\";\nimport { alterAfterDeserialize } from \"../hooks/alterAfterDeserialize.js\";\nimport { alterBeforeDeserialize } from \"../hooks/alterBeforeDeserialize.js\";\nimport { alterOnDeserialize } from \"../hooks/alterOnDeserialize.js\";\nimport { JsonMapperCompiler } from \"./JsonMapperCompiler.js\";\nimport { JsonMapperSettings } from \"./JsonMapperSettings.js\";\nimport { getJsonMapperTypes } from \"./JsonMapperTypesContainer.js\";\nimport { Writer } from \"./Writer.js\";\nfunction isDeserializable(obj, options) {\n if ((!!options.collectionType && isNil(obj)) || obj === undefined) {\n return false;\n }\n return !(isEmpty(options.type) || (options.type === Object && !options.collectionType));\n}\nfunction varKey(k) {\n return `__${k}`;\n}\nfunction mapParamStoreOptions(store, options) {\n return {\n ...options,\n store: undefined,\n type: store.getBestType(),\n collectionType: store.collectionType,\n groups: store.parameter.groups,\n // genericTypes: store.nestedGenerics[0],\n generics: store.nestedGenerics\n };\n}\nfunction getGenericIndex(propertyStore) {\n return propertyStore.parent.schema.genericLabels.indexOf(propertyStore.itemSchema.genericType);\n}\nexport class JsonDeserializer extends JsonMapperCompiler {\n constructor() {\n super();\n /**\n * Cached classes by his id\n * @protected\n */\n this.constructors = {};\n this.addGlobal(\"newInstanceOf\", this.newInstanceOf.bind(this));\n this.addGlobal(\"alterBeforeDeserialize\", this.alterBeforeDeserialize.bind(this));\n this.addGlobal(\"alterAfterDeserialize\", this.alterAfterDeserialize.bind(this));\n this.addTypeMapper(Object, this.mapObject.bind(this));\n this.addTypeMapper(Array, this.mapArray.bind(this));\n this.addTypeMapper(Map, this.mapMap.bind(this));\n this.addTypeMapper(Set, this.mapSet.bind(this));\n this.addTypeMapper(\"ObjectId\", (value) => String(value));\n }\n map(input, options = {}) {\n options = this.mapOptions(options);\n if (!isDeserializable(input, options)) {\n return input;\n }\n if (!options.collectionType && isArray(input)) {\n options.collectionType = Array;\n }\n const model = options.type || classOf(input);\n const mapper = this.compile(model, options.groups);\n if (options.collectionType) {\n const collectionMapper = this.compile(options.collectionType, options.groups);\n return collectionMapper.fn(input, { ...options, id: mapper.id });\n }\n return mapper.fn(input, this.createContext(options));\n }\n compile(model, groups) {\n if ([WeakMap, WeakSet].includes(model)) {\n throw new Error(`${nameOf(model)} is not supported by JsonMapper.`);\n }\n return super.compile(model, groups);\n }\n eval(mapper, { id, groupsId, model }) {\n this.constructors[id] = model;\n return super.eval(mapper, { id, groupsId, model });\n }\n newInstanceOf(id, obj, options) {\n try {\n return new this.constructors[id](options.disableUnsecureConstructor ? {} : obj);\n }\n catch (er) {\n return obj;\n }\n }\n createMapper(model, id, groups) {\n const entity = JsonEntityStore.from(model);\n const properties = new Set();\n const schemaProperties = [...getPropertiesStores(entity).values()];\n const writer = new Writer().arrow(\"input\", \"options\");\n writer.if(\"isNil(input)\").return(\"input\");\n if (entity.schema.hasDiscriminator) {\n writer.add(this.mapDiscriminator(entity, groups));\n }\n // pre hook\n if (entity.schema.$hooks?.has(\"beforeDeserialize\")) {\n this.schemes[id] = entity.schema;\n writer.set(\"input\", `alterBeforeDeserialize('${id}', input, options)`);\n }\n // generics and options\n writer.const(\"generics\", \"options.generics[0]\");\n if (entity.schema.genericLabels?.length) {\n writer.set(\"options\", \"{...options, self: input, generics: [...options.generics].slice(1)}\");\n }\n else {\n writer.set(\"options\", \"{...options, self: input}\");\n }\n writer.const(\"obj\", `newInstanceOf('${id}', input, options)`);\n // properties\n writer.add(...schemaProperties.flatMap((propertyStore) => {\n const key = propertyStore.propertyName;\n // TODO V8 add this line: properties.add(key as string);\n properties.add(String(propertyStore.parent.schema.getAliasOf(key) || key));\n if ((propertyStore.schema?.$ignore && isBoolean(propertyStore.schema?.$ignore)) ||\n propertyStore.isGetterOnly() ||\n (propertyStore.schema?.$hooks?.has(\"groups\") && this.alterGroups(propertyStore.schema, groups))) {\n return;\n }\n return this.mapProperty(propertyStore, id, groups);\n }));\n // additional properties\n writer.add(this.mapAdditionalProperties(entity, properties, groups));\n // post hook\n if (entity.schema.$hooks?.has(\"afterDeserialize\")) {\n this.schemes[id] = entity.schema;\n return writer.return(`alterAfterDeserialize('${id}', obj, options)`).root().toString();\n }\n return writer.return(\"obj\").root().toString();\n }\n alterValue(schemaId, value, options) {\n return alterOnDeserialize(this.schemes[schemaId], value, options);\n }\n mapDiscriminator(entity, groups) {\n const writer = new Writer();\n const discriminator = entity.schema.discriminator();\n const sw = writer.switch(`input['${discriminator.propertyName}']`);\n discriminator.values.forEach((value, kind) => {\n const nestedMapper = this.compile(value, groups);\n sw.case(`'${kind}'`).returnCallMapper(nestedMapper.id, \"input\");\n });\n return writer;\n }\n mapProperty(propertyStore, id, groups) {\n const key = String(propertyStore.propertyKey);\n const aliasKey = String(propertyStore.parent.schema.getAliasOf(key) || key);\n const schemaId = this.getSchemaId(id, key);\n const format = propertyStore.itemSchema.get(\"format\");\n const formatOpts = format && `options: {format: '${format}'}`;\n let writer = new Writer().add(`// Map ${key} ${id} ${groups || \"\"}`);\n const pick = key !== aliasKey ? `options.useAlias ? '${aliasKey}' : '${key}'` : `'${key}'`;\n // ignore hook (deprecated)\n if (propertyStore.schema?.$hooks?.has(\"ignore\")) {\n this.schemes[schemaId] = propertyStore.schema;\n writer = writer.if(`!alterIgnore('${schemaId}', {...options, self: input})`);\n }\n // pre hook\n const hasDeserializer = propertyStore.schema?.$hooks?.has(\"onDeserialize\");\n let getter = `input[${pick}]`;\n if (hasDeserializer) {\n this.schemes[schemaId] = propertyStore.schema;\n const opts = Writer.options(formatOpts);\n getter = `alterValue('${schemaId}', input[${pick}], ${opts})`;\n }\n const ifWriter = writer.set(`let ${varKey(key)}`, getter).if(`${varKey(key)} !== undefined`);\n const fill = this.getPropertyFiller(propertyStore, id, groups, formatOpts);\n if (hasDeserializer) {\n fill(ifWriter.if(`${varKey(key)} === input.${key}`));\n }\n else {\n fill(ifWriter);\n }\n ifWriter.set(`obj.${key}`, varKey(key));\n if (groups && groups.includes(\"partial\")) {\n ifWriter.else().add(`delete obj.${key}`);\n }\n return writer.root();\n }\n getPropertyFiller(propertyStore, id, groups, formatOpts) {\n const key = String(propertyStore.propertyKey);\n const schemaId = this.getSchemaId(id, key);\n const generics = propertyStore.itemSchema.nestedGenerics;\n const isGeneric = propertyStore.itemSchema.isGeneric && !generics?.length;\n if (isGeneric) {\n const index = getGenericIndex(propertyStore);\n const opts = Writer.options(formatOpts, `type: generics[${index}]`);\n return (writer) => writer.set(varKey(key), `compileAndMap(${varKey(key)}, ${opts})`);\n }\n const type = propertyStore.itemSchema.hasDiscriminator ? propertyStore.itemSchema.discriminator().base : propertyStore.getBestType();\n const nestedMapper = this.compile(type, groups);\n if (propertyStore.isCollection) {\n return (writer) => writer.callMapper(nameOf(propertyStore.collectionType), varKey(key), `id: '${nestedMapper.id}'`, formatOpts);\n }\n if (generics?.length) {\n this.schemes[schemaId] = propertyStore.schema;\n return (writer) => writer.callMapper(nestedMapper.id, varKey(key), formatOpts, `generics: schemes['${schemaId}'].nestedGenerics`);\n }\n return (writer) => writer.callMapper(nestedMapper.id, varKey(key), formatOpts);\n }\n mapOptions({ groups, useAlias = true, types, ...options }) {\n if (options.store instanceof JsonParameterStore) {\n return this.mapOptions(mapParamStoreOptions(options.store, options));\n }\n const customMappers = {};\n types = types || getJsonMapperTypes();\n types.forEach((mapper, model) => {\n if (![Array, Set, Map].includes(model)) {\n const typeName = nameOf(model);\n if (nameOf(model) in mapper) {\n this.addTypeMapper(model, mapper[typeName].bind(mapper));\n }\n else {\n this.addTypeMapper(model, (value, options) => mapper.deserialize(value, {\n ...options,\n type: model\n }));\n }\n }\n });\n const strictGroups = options.strictGroups ?? JsonMapperSettings.strictGroups;\n return {\n ...options,\n additionalProperties: options.additionalProperties ?? JsonMapperSettings.additionalProperties,\n disableUnsecureConstructor: options.disableUnsecureConstructor ?? JsonMapperSettings.disableUnsecureConstructor,\n groups: groups === undefined ? (strictGroups ? [] : false) : groups || false,\n useAlias,\n customMappers,\n generics: options.generics || []\n };\n }\n mapAdditionalProperties(entity, properties, groups) {\n const additionalProperties = entity.schema.get(\"additionalProperties\");\n const exclude = [...properties.values()].map((key) => `'${key}'`).join(\", \");\n const writer = new Writer();\n writer.add(\"// add additional properties\");\n let each = writer.each(\"objectKeys(input)\", [\"key\"]);\n if (exclude.length) {\n each = each.if(`![${exclude}].includes(key)`);\n }\n if (isClass(additionalProperties)) {\n const nestedMapper = this.compile(additionalProperties.getComputedType(), groups);\n each.set(\"obj[key]\", Writer.mapper(nestedMapper.id, \"input[key]\", \"options\"));\n return writer;\n }\n if (additionalProperties) {\n each.set(\"obj[key]\", \"input[key]\");\n return writer;\n }\n // dynamic additional properties options\n each.if(`options.additionalProperties && obj[key] === undefined`).set(\"obj[key]\", \"input[key]\");\n return writer;\n }\n mapObject(input, options) {\n return input;\n }\n mapSet(input, options) {\n if (isNil(input)) {\n return input;\n }\n const obj = new Set();\n objectKeys(input).forEach((key) => {\n obj.add(this.mapItem(input[key], options));\n });\n return obj;\n }\n mapArray(input, options) {\n if (isNil(input)) {\n return input;\n }\n return [].concat(input).map((item) => {\n return this.mapItem(item, options);\n });\n }\n mapMap(input, options) {\n if (isNil(input)) {\n return input;\n }\n const obj = new Map();\n objectKeys(input).forEach((key) => {\n obj.set(key, this.mapItem(input[key], options));\n });\n return obj;\n }\n mapItem(input, { id, ...options }) {\n return this.execMapper(id, input, options);\n }\n alterBeforeDeserialize(schemaId, value, options) {\n return alterBeforeDeserialize(value, this.schemes[schemaId], options);\n }\n alterAfterDeserialize(schemaId, value, options) {\n return alterAfterDeserialize(value, this.schemes[schemaId], options);\n }\n}\n","export function alterOnSerialize(schema, value, options) {\n return schema.$hooks.alter(\"onSerialize\", value, [options]);\n}\n","import { isFunction } from \"@tsed/core\";\nexport function getObjectProperties(obj) {\n return Object.entries(obj).filter(([, value]) => !isFunction(value));\n}\n","import { classOf, hasJsonMethod, isArray, isBoolean, isClassObject, isCollection, isDate, isMomentObject, isMongooseObject, isNil, isObject, isPrimitive, nameOf } from \"@tsed/core\";\nimport { getPropertiesStores, JsonEntityStore } from \"@tsed/schema\";\nimport { alterOnSerialize } from \"../hooks/alterOnSerialize.js\";\nimport { getObjectProperties } from \"../utils/getObjectProperties.js\";\nimport { JsonMapperCompiler } from \"./JsonMapperCompiler.js\";\nimport { JsonMapperSettings } from \"./JsonMapperSettings.js\";\nimport { getJsonMapperTypes } from \"./JsonMapperTypesContainer.js\";\nimport { Writer } from \"./Writer.js\";\nconst getCollectionType = (input) => {\n return isArray(input) ? \"Array\" : input instanceof Set ? \"Set\" : input instanceof Map ? \"Map\" : undefined;\n};\nfunction getBestType(type, obj) {\n const dataType = classOf(obj);\n if (dataType && !isClassObject(dataType) && !isCollection(obj)) {\n return dataType;\n }\n return type || Object;\n}\nfunction varKey(k) {\n return `__${k}`;\n}\nexport class JsonSerializer extends JsonMapperCompiler {\n constructor() {\n super();\n this.addTypeMapper(Object, this.mapObject.bind(this));\n this.addTypeMapper(Array, this.mapArray.bind(this));\n this.addTypeMapper(Map, this.mapMap.bind(this));\n this.addTypeMapper(Set, this.mapSet.bind(this));\n this.addGlobal(\"mapJSON\", this.mapJSON.bind(this));\n this.addTypeMapper(\"ObjectId\", (value) => String(value));\n }\n map(input, options = {}) {\n if (isNil(input)) {\n return input;\n }\n options = this.mapOptions(options);\n const model = getBestType(options.type, input);\n const mapper = this.compile(model, options.groups);\n return mapper.fn(input, this.createContext(options));\n }\n alterValue(schemaId, value, options) {\n return alterOnSerialize(this.schemes[schemaId], value, options);\n }\n createMapper(model, id, groups) {\n const entity = JsonEntityStore.from(model);\n const properties = new Set();\n const schemaProperties = [...getPropertiesStores(entity).values()];\n const writer = new Writer().arrow(\"input\", \"options\");\n writer.if(\"isNil(input)\").return(\"input\");\n // prepare options\n writer.const(\"obj\", \"{}\");\n writer.set(\"options\", \"{...options, self: input}\");\n // detect some special case\n writer.add(this.mapPrecondition(id));\n if (!schemaProperties.length) {\n return writer.return(\"isObject(input) ? {...input} : input\").root().toString();\n }\n // properties\n writer.add(...schemaProperties.flatMap((propertyStore) => {\n properties.add(propertyStore.propertyKey);\n if ((propertyStore.schema?.$ignore && isBoolean(propertyStore.schema?.$ignore)) ||\n (propertyStore.schema?.$hooks?.has(\"groups\") && this.alterGroups(propertyStore.schema, groups))) {\n return;\n }\n return this.mapProperty(propertyStore, id, groups);\n }));\n // discriminator\n writer.add(this.mapDiscriminatorKeyValue(entity));\n // additional properties\n writer.add(this.mapAdditionalProperties(entity, properties));\n return writer.return(\"obj\").root().toString();\n }\n mapOptions({ groups, useAlias = true, types, ...options }) {\n const customMappers = {};\n types = types || getJsonMapperTypes();\n types.forEach((mapper, model) => {\n if (![Array, Set, Map].includes(model)) {\n this.addTypeMapper(model, (value, options) => mapper.serialize(value, {\n ...options,\n type: model\n }));\n }\n });\n const strictGroups = options.strictGroups ?? JsonMapperSettings.strictGroups;\n return {\n ...options,\n groups: groups === undefined ? (strictGroups ? [] : false) : groups || false,\n useAlias,\n customMappers\n };\n }\n mapProperty(propertyStore, id, groups) {\n const key = String(propertyStore.propertyKey);\n const aliasKey = String(propertyStore.parent.schema.getAliasOf(key) || key);\n const schemaId = this.getSchemaId(id, key);\n const format = propertyStore.itemSchema.get(\"format\");\n const formatOpts = format && `options: {format: '${format}'}`;\n let writer = new Writer().add(`// Map ${key} ${id} ${groups || \"\"}`);\n // ignore hook (deprecated)\n if (propertyStore.schema?.$hooks?.has(\"ignore\")) {\n this.schemes[schemaId] = propertyStore.schema;\n writer = writer.if(`!alterIgnore('${schemaId}', {...options, self: input})`);\n }\n // pre hook\n const hasSerializer = propertyStore.schema?.$hooks?.has(\"onSerialize\");\n let getter = `input.${key}`;\n if (hasSerializer) {\n this.schemes[schemaId] = propertyStore.schema;\n const opts = Writer.options(formatOpts);\n getter = `alterValue('${schemaId}', input.${key}, ${opts})`;\n }\n writer = writer.set(`let ${varKey(key)}`, getter).if(`${varKey(key)} !== undefined`);\n const fill = this.getPropertyFiller(propertyStore, key, groups, formatOpts);\n if (hasSerializer) {\n fill(writer.if(`${varKey(key)} === input.${key}`));\n }\n else {\n fill(writer);\n }\n if (aliasKey !== key) {\n writer.set(`obj[options.useAlias ? '${aliasKey}' : '${key}']`, varKey(key));\n }\n else {\n writer.set(`obj.${key}`, varKey(key));\n }\n return writer.root();\n }\n getPropertyFiller(propertyStore, key, groups, formatOpts) {\n const isGeneric = propertyStore.itemSchema.isGeneric;\n const hasDiscriminator = propertyStore.itemSchema.hasDiscriminator;\n if (propertyStore.isCollection) {\n const type = propertyStore.getBestType();\n let nestedMapper;\n if (hasDiscriminator) {\n const targetName = propertyStore.parent.targetName;\n nestedMapper = this.compile(`Discriminator:${targetName}:${key}`, groups, {\n mapper: () => this.createDiscriminatorMapper(propertyStore, groups)\n });\n }\n else {\n nestedMapper = isGeneric ? { id: \"\" } : this.compile(type, groups);\n }\n return (writer) => writer.callMapper(nameOf(propertyStore.collectionType), varKey(key), `id: '${nestedMapper.id}'`, formatOpts);\n }\n if (isGeneric) {\n return (writer) => writer.set(varKey(key), `compileAndMap(${varKey(key)}, options)`);\n }\n let nestedMapper;\n if (hasDiscriminator) {\n const targetName = propertyStore.parent.targetName;\n nestedMapper = this.compile(`Discriminator:${targetName}:${key}`, groups, {\n mapper: () => this.createDiscriminatorMapper(propertyStore, groups)\n });\n }\n else {\n nestedMapper = this.compile(propertyStore.getBestType(), groups);\n }\n return (writer) => writer.callMapper(nestedMapper.id, varKey(key), formatOpts);\n }\n createDiscriminatorMapper(propertyStore, groups) {\n const discriminator = propertyStore.itemSchema.discriminator();\n const writer = new Writer().arrow(\"input\", \"options\");\n const sw = writer.switch(`nameOf(classOf(input))`);\n discriminator.values.forEach((value, kind) => {\n const nestedMapper = this.compile(value, groups);\n sw.case(`'${nameOf(value)}'`).returnCallMapper(nestedMapper.id, \"input\");\n });\n return writer.root().toString();\n }\n mapPrecondition(id) {\n const writer = new Writer();\n writer.if(\"input && isCollection(input)\").return(Writer.mapperFrom(\"input\", `{...options, id: '${id}'}`));\n writer.if(\"hasJsonMethod(input)\").return(`mapJSON(input, {...options, id: '${id}'})`);\n return writer;\n }\n mapDiscriminatorKeyValue(entity) {\n if (entity.discriminatorAncestor) {\n const discriminator = entity.discriminatorAncestor.schema.discriminator();\n const type = discriminator.getDefaultValue(entity.target);\n if (type) {\n const writer = new Writer();\n writer.if(`!obj.${discriminator.propertyName}`).set(`obj.${discriminator.propertyName}`, `'${type}'`);\n return writer;\n }\n }\n }\n mapAdditionalProperties(entity, properties) {\n const additionalProperties = !!entity.schema.get(\"additionalProperties\");\n if (additionalProperties) {\n const exclude = [...properties.values()].map((key) => `'${key}'`).join(\", \");\n const writer = new Writer();\n writer.add(\"// add additional properties\");\n writer.each(\"objectKeys(input)\", [\"key\"]).if(`![${exclude}].includes(key)`).set(\"obj[key]\", \"input[key]\");\n return writer;\n }\n }\n mapObject(input, { type, ...options }) {\n if ((input && isPrimitive(input)) || !input) {\n // prevent mongoose mapping error\n return input;\n }\n if (input && isCollection(input)) {\n return this.execMapper(getCollectionType(input), input, options);\n }\n if (hasJsonMethod(input)) {\n return this.mapJSON(input, options);\n }\n return getObjectProperties(input)\n .filter(([, value]) => value !== undefined)\n .reduce((obj, [key, value]) => {\n if (isNil(value)) {\n return {\n ...obj,\n [key]: value\n };\n }\n const mapper = this.compile(classOf(value), options.groups);\n return {\n ...obj,\n [key]: mapper.fn(value, options)\n };\n }, {});\n }\n mapSet(input, options) {\n if (isNil(input)) {\n return input;\n }\n return [...input.values()].map((item) => {\n return this.mapItem(item, options);\n });\n }\n mapArray(input, options) {\n if (isNil(input)) {\n return input;\n }\n return [].concat(input).map((item) => {\n return this.mapItem(item, options);\n });\n }\n mapMap(input, options) {\n if (isNil(input)) {\n return input;\n }\n return [...input.entries()].reduce((obj, [key, item]) => {\n return {\n ...obj,\n [key]: this.mapItem(item, options)\n };\n }, {});\n }\n mapItem(input, { id, ...options }) {\n if (!id && input) {\n return this.compile(classOf(input), options.groups).fn(input, options);\n }\n return id ? this.execMapper(id, input, options) : input;\n }\n mapJSON(input, { id, ...options }) {\n if (isMongooseObject(input)) {\n return input.toJSON({ ...options, id });\n }\n id = id || nameOf(classOf(input));\n if (this.mappers[id] && (isDate(input) || isMomentObject(input))) {\n return this.execMapper(id, input, options);\n }\n input = input.toJSON();\n return isObject(input) ? this.execMapper(id, input, options) : input;\n }\n}\n","import \"../components/DateMapper\";\nimport \"../components/PrimitiveMapper\";\nimport \"../components/SymbolMapper\";\nimport { JsonDeserializer } from \"../domain/JsonDeserializer.js\";\nconst deserializer = new JsonDeserializer();\nexport function deserialize(input, options) {\n return deserializer.map(input, options);\n}\n","import \"../components/DateMapper\";\nimport \"../components/PrimitiveMapper\";\nimport \"../components/SymbolMapper\";\nimport { JsonSerializer } from \"../domain/JsonSerializer.js\";\nconst serializer = new JsonSerializer();\nexport function serialize(input, options) {\n return serializer.map(input, options);\n}\n"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__803__","__WEBPACK_EXTERNAL_MODULE__953__","JsonMapperCompiler","constructor","this","cache","Map","mappers","schemes","constructors","globals","isCollection","isClass","isObject","classOf","nameOf","hasJsonMethod","isMongooseObject","isNil","isDate","objectKeys","isMomentObject","addGlobal","alterIgnore","bind","alterValue","execMapper","map","addTypeMapper","model","fn","id","set","removeTypeMapper","store","get","delete","key","value","eval","mapper","injectGlobals","Object","keys","name","join","groupsId","createContext","options","compile","groups","opts","token","isString","getType","getGroupsId","storeGroups","has","getId","createMapper","err","Error","message","isObjectID","toString","type","Array","Set","find","t","ancestorsOf","includes","result","$hooks","alter","alterGroups","schema","length","getRandomId","getSchemaId","propertyKey","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","__decorate","decorators","target","desc","c","arguments","getOwnPropertyDescriptor","Reflect","decorate","i","create","SuppressedError","JsonMapperTypesContainer","registerJsonTypeMapper","getJsonMapperTypes","JsonMapper","types","forEach","DateMapper","deserialize","data","isBoolean","Date","serialize","object","toISOString","isNullish","CastError","super","PrimitiveMapper","ctx","String","Boolean","Number","isNaN","BigInt","SymbolMapper","for","replace","AfterDeserialize","cb","JsonEntityFn","storedJson","on","BeforeDeserialize","OnDeserialize","OnSerialize","alterAfterDeserialize","alterBeforeDeserialize","alterOnDeserialize","JsonMapperSettings","disableUnsecureConstructor","additionalProperties","strictGroups","Writer","assign","args","filter","body","_root","static","lines","p","mapperId","add","line","push","arrow","writer","new","build","flatMap","_indent","item","callMapper","returnCallMapper","return","const","each","iterable","if","condition","IfWriter","switch","input","sw","SwitchWriter","indent","left","right","else","elseWriter","flat","case","from","entries","varKey","k","JsonDeserializer","newInstanceOf","mapObject","mapArray","mapMap","mapSet","collectionType","isEmpty","isDeserializable","mapOptions","isArray","WeakMap","WeakSet","er","entity","JsonEntityStore","properties","schemaProperties","getPropertiesStores","values","hasDiscriminator","mapDiscriminator","genericLabels","propertyStore","propertyName","parent","getAliasOf","$ignore","isGetterOnly","mapProperty","mapAdditionalProperties","schemaId","discriminator","kind","nestedMapper","aliasKey","format","itemSchema","formatOpts","pick","hasDeserializer","ifWriter","getPropertyFiller","fill","generics","nestedGenerics","isGeneric","index","indexOf","genericType","getGenericIndex","base","getBestType","useAlias","JsonParameterStore","parameter","mapParamStoreOptions","typeName","customMappers","exclude","getComputedType","mapItem","concat","alterOnSerialize","getObjectProperties","isFunction","JsonSerializer","mapJSON","dataType","isClassObject","mapPrecondition","mapDiscriminatorKeyValue","hasSerializer","targetName","createDiscriminatorMapper","mapperFrom","discriminatorAncestor","getDefaultValue","isPrimitive","getCollectionType","reduce","toJSON","deserializer","serializer"],"sourceRoot":""}
@@ -8,9 +8,9 @@ function isNullish(data) {
8
8
  return [null, "null"].includes(data);
9
9
  }
10
10
  class CastError extends Error {
11
- name = "CAST_ERROR";
12
11
  constructor(message) {
13
12
  super(`Cast error. ${message}`);
13
+ this.name = "CAST_ERROR";
14
14
  }
15
15
  }
16
16
  exports.CastError = CastError;
@@ -1 +1 @@
1
- {"version":3,"file":"PrimitiveMapper.js","sourceRoot":"","sources":["../../../src/components/PrimitiveMapper.ts"],"names":[],"mappings":";;;;AAAA,qCAAkC;AAClC,+DAAuD;AAGvD,SAAS,SAAS,CAAC,IAAS;IAC1B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAa,SAAU,SAAQ,KAAK;IAClC,IAAI,GAAG,YAAY,CAAC;IAEpB,YAAY,OAAe;QACzB,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;IAClC,CAAC;CACF;AAND,8BAMC;AAED;;;;GAIG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,WAAW,CAAI,IAAS,EAAE,GAAkB;QAC1C,OAAQ,IAAY,CAAC,IAAA,aAAM,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,IAAY,CAAC,IAAA,aAAM,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,CAAC;IAED,SAAS,CAAC,MAA0C,EAAE,GAAkB;QACtE,OAAQ,IAAY,CAAC,IAAA,aAAM,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAY,CAAC,IAAA,aAAM,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAChI,CAAC;IAES,MAAM,CAAC,IAAS;QACxB,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;IAC1C,CAAC;IAES,OAAO,CAAC,IAAS;QACzB,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAEzC,OAAO,CAAC,CAAC,IAAI,CAAC;IAChB,CAAC;IAES,MAAM,CAAC,IAAS;QACxB,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAEpC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QAEhB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YACZ,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;SAC1D;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAES,MAAM,CAAC,IAAS;QACxB,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAEjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACF,CAAA;AAxCY,eAAe;IAD3B,IAAA,0BAAU,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;GAC/B,eAAe,CAwC3B;AAxCY,0CAAe"}
1
+ {"version":3,"file":"PrimitiveMapper.js","sourceRoot":"","sources":["../../../src/components/PrimitiveMapper.ts"],"names":[],"mappings":";;;;AAAA,qCAAkC;AAClC,+DAAuD;AAGvD,SAAS,SAAS,CAAC,IAAS;IAC1B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAa,SAAU,SAAQ,KAAK;IAGlC,YAAY,OAAe;QACzB,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;QAHlC,SAAI,GAAG,YAAY,CAAC;IAIpB,CAAC;CACF;AAND,8BAMC;AAED;;;;GAIG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,WAAW,CAAI,IAAS,EAAE,GAAkB;QAC1C,OAAQ,IAAY,CAAC,IAAA,aAAM,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,IAAY,CAAC,IAAA,aAAM,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,CAAC;IAED,SAAS,CAAC,MAA0C,EAAE,GAAkB;QACtE,OAAQ,IAAY,CAAC,IAAA,aAAM,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAY,CAAC,IAAA,aAAM,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAChI,CAAC;IAES,MAAM,CAAC,IAAS;QACxB,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;IAC1C,CAAC;IAES,OAAO,CAAC,IAAS;QACzB,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAEzC,OAAO,CAAC,CAAC,IAAI,CAAC;IAChB,CAAC;IAES,MAAM,CAAC,IAAS;QACxB,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAEpC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QAEhB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YACZ,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;SAC1D;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAES,MAAM,CAAC,IAAS;QACxB,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAEjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACF,CAAA;AAxCY,eAAe;IAD3B,IAAA,0BAAU,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;GAC/B,eAAe,CAwC3B;AAxCY,0CAAe"}
@@ -34,13 +34,13 @@ function getGenericIndex(propertyStore) {
34
34
  return propertyStore.parent.schema.genericLabels.indexOf(propertyStore.itemSchema.genericType);
35
35
  }
36
36
  class JsonDeserializer extends JsonMapperCompiler_js_1.JsonMapperCompiler {
37
- /**
38
- * Cached classes by his id
39
- * @protected
40
- */
41
- constructors = {};
42
37
  constructor() {
43
38
  super();
39
+ /**
40
+ * Cached classes by his id
41
+ * @protected
42
+ */
43
+ this.constructors = {};
44
44
  this.addGlobal("newInstanceOf", this.newInstanceOf.bind(this));
45
45
  this.addGlobal("alterBeforeDeserialize", this.alterBeforeDeserialize.bind(this));
46
46
  this.addGlobal("alterAfterDeserialize", this.alterAfterDeserialize.bind(this));
@@ -1 +1 @@
1
- {"version":3,"file":"JsonDeserializer.js","sourceRoot":"","sources":["../../../src/domain/JsonDeserializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JsonDeserializer.js","sourceRoot":"","sources":["../../../src/domain/JsonDeserializer.ts"],"names":[],"mappings":"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"}
@@ -3,44 +3,44 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JsonMapperCompiler = void 0;
4
4
  const core_1 = require("@tsed/core");
5
5
  class JsonMapperCompiler {
6
- /**
7
- * Cached mappers metadata
8
- * @protected
9
- */
10
- cache = new Map();
11
- /**
12
- * Cached executable mappers by his id
13
- * @protected
14
- */
15
- mappers = {};
16
- /**
17
- * Cached schemas
18
- * @protected
19
- */
20
- schemes = {};
21
- /**
22
- * Cached classes by his id
23
- * @protected
24
- */
25
- constructors = {};
26
- /**
27
- * Global variables available in the mapper
28
- * @protected
29
- */
30
- globals = {
31
- isCollection: core_1.isCollection,
32
- isClass: core_1.isClass,
33
- isObject: core_1.isObject,
34
- classOf: core_1.classOf,
35
- nameOf: core_1.nameOf,
36
- hasJsonMethod: core_1.hasJsonMethod,
37
- isMongooseObject: core_1.isMongooseObject,
38
- isNil: core_1.isNil,
39
- isDate: core_1.isDate,
40
- objectKeys: core_1.objectKeys,
41
- isMomentObject: core_1.isMomentObject
42
- };
43
6
  constructor() {
7
+ /**
8
+ * Cached mappers metadata
9
+ * @protected
10
+ */
11
+ this.cache = new Map();
12
+ /**
13
+ * Cached executable mappers by his id
14
+ * @protected
15
+ */
16
+ this.mappers = {};
17
+ /**
18
+ * Cached schemas
19
+ * @protected
20
+ */
21
+ this.schemes = {};
22
+ /**
23
+ * Cached classes by his id
24
+ * @protected
25
+ */
26
+ this.constructors = {};
27
+ /**
28
+ * Global variables available in the mapper
29
+ * @protected
30
+ */
31
+ this.globals = {
32
+ isCollection: core_1.isCollection,
33
+ isClass: core_1.isClass,
34
+ isObject: core_1.isObject,
35
+ classOf: core_1.classOf,
36
+ nameOf: core_1.nameOf,
37
+ hasJsonMethod: core_1.hasJsonMethod,
38
+ isMongooseObject: core_1.isMongooseObject,
39
+ isNil: core_1.isNil,
40
+ isDate: core_1.isDate,
41
+ objectKeys: core_1.objectKeys,
42
+ isMomentObject: core_1.isMomentObject
43
+ };
44
44
  this.addGlobal("alterIgnore", this.alterIgnore.bind(this));
45
45
  this.addGlobal("alterValue", this.alterValue.bind(this));
46
46
  this.addGlobal("execMapper", this.execMapper.bind(this));
@@ -1 +1 @@
1
- {"version":3,"file":"JsonMapperCompiler.js","sourceRoot":"","sources":["../../../src/domain/JsonMapperCompiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JsonMapperCompiler.js","sourceRoot":"","sources":["../../../src/domain/JsonMapperCompiler.ts"],"names":[],"mappings":"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"}
@@ -2,15 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Writer = void 0;
4
4
  class Writer {
5
- static object = {
5
+ static { this.object = {
6
6
  assign(...args) {
7
7
  return `{ ${args.filter(Boolean).join(", ")} }`;
8
8
  }
9
- };
10
- _root;
11
- body = [];
12
- _indent;
9
+ }; }
13
10
  constructor(root) {
11
+ this.body = [];
14
12
  this._root = root;
15
13
  }
16
14
  static indent(lines) {
@@ -95,8 +93,6 @@ class Writer {
95
93
  }
96
94
  exports.Writer = Writer;
97
95
  class IfWriter extends Writer {
98
- condition;
99
- elseWriter;
100
96
  constructor(condition, root) {
101
97
  super();
102
98
  this.condition = condition;
@@ -117,11 +113,11 @@ class IfWriter extends Writer {
117
113
  }
118
114
  }
119
115
  class SwitchWriter extends Writer {
120
- input;
121
- #map = new Map();
116
+ #map;
122
117
  constructor(input) {
123
118
  super();
124
119
  this.input = input;
120
+ this.#map = new Map();
125
121
  }
126
122
  case(condition) {
127
123
  const writer = new Writer();
@@ -1 +1 @@
1
- {"version":3,"file":"Writer.js","sourceRoot":"","sources":["../../../src/domain/Writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Writer.js","sourceRoot":"","sources":["../../../src/domain/Writer.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,9 @@ function isNullish(data) {
5
5
  return [null, "null"].includes(data);
6
6
  }
7
7
  export class CastError extends Error {
8
- name = "CAST_ERROR";
9
8
  constructor(message) {
10
9
  super(`Cast error. ${message}`);
10
+ this.name = "CAST_ERROR";
11
11
  }
12
12
  }
13
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PrimitiveMapper.js","sourceRoot":"","sources":["../../../src/components/PrimitiveMapper.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,YAAY,CAAC;AAClC,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAGvD,SAAS,SAAS,CAAC,IAAS;IAC1B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,IAAI,GAAG,YAAY,CAAC;IAEpB,YAAY,OAAe;QACzB,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;IAClC,CAAC;CACF;AAED;;;;GAIG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,WAAW,CAAI,IAAS,EAAE,GAAkB;QAC1C,OAAQ,IAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,IAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,CAAC;IAED,SAAS,CAAC,MAA0C,EAAE,GAAkB;QACtE,OAAQ,IAAY,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAChI,CAAC;IAES,MAAM,CAAC,IAAS;QACxB,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;IAC1C,CAAC;IAES,OAAO,CAAC,IAAS;QACzB,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAEzC,OAAO,CAAC,CAAC,IAAI,CAAC;IAChB,CAAC;IAES,MAAM,CAAC,IAAS;QACxB,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAEpC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QAEhB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YACZ,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;SAC1D;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAES,MAAM,CAAC,IAAS;QACxB,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAEjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACF,CAAA;AAxCY,eAAe;IAD3B,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;GAC/B,eAAe,CAwC3B;SAxCY,eAAe"}
1
+ {"version":3,"file":"PrimitiveMapper.js","sourceRoot":"","sources":["../../../src/components/PrimitiveMapper.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,YAAY,CAAC;AAClC,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAGvD,SAAS,SAAS,CAAC,IAAS;IAC1B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,OAAO,SAAU,SAAQ,KAAK;IAGlC,YAAY,OAAe;QACzB,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;QAHlC,SAAI,GAAG,YAAY,CAAC;IAIpB,CAAC;CACF;AAED;;;;GAIG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,WAAW,CAAI,IAAS,EAAE,GAAkB;QAC1C,OAAQ,IAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,IAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,CAAC;IAED,SAAS,CAAC,MAA0C,EAAE,GAAkB;QACtE,OAAQ,IAAY,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAChI,CAAC;IAES,MAAM,CAAC,IAAS;QACxB,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;IAC1C,CAAC;IAES,OAAO,CAAC,IAAS;QACzB,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAEzC,OAAO,CAAC,CAAC,IAAI,CAAC;IAChB,CAAC;IAES,MAAM,CAAC,IAAS;QACxB,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAEpC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QAEhB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YACZ,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;SAC1D;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAES,MAAM,CAAC,IAAS;QACxB,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAEjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACF,CAAA;AAxCY,eAAe;IAD3B,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;GAC/B,eAAe,CAwC3B;SAxCY,eAAe"}
@@ -31,13 +31,13 @@ function getGenericIndex(propertyStore) {
31
31
  return propertyStore.parent.schema.genericLabels.indexOf(propertyStore.itemSchema.genericType);
32
32
  }
33
33
  export class JsonDeserializer extends JsonMapperCompiler {
34
- /**
35
- * Cached classes by his id
36
- * @protected
37
- */
38
- constructors = {};
39
34
  constructor() {
40
35
  super();
36
+ /**
37
+ * Cached classes by his id
38
+ * @protected
39
+ */
40
+ this.constructors = {};
41
41
  this.addGlobal("newInstanceOf", this.newInstanceOf.bind(this));
42
42
  this.addGlobal("alterBeforeDeserialize", this.alterBeforeDeserialize.bind(this));
43
43
  this.addGlobal("alterAfterDeserialize", this.alterAfterDeserialize.bind(this));
@@ -1 +1 @@
1
- {"version":3,"file":"JsonDeserializer.js","sourceRoot":"","sources":["../../../src/domain/JsonDeserializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JsonDeserializer.js","sourceRoot":"","sources":["../../../src/domain/JsonDeserializer.ts"],"names":[],"mappings":"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"}
@@ -1,43 +1,43 @@
1
1
  import { ancestorsOf, classOf, getRandomId, hasJsonMethod, isClass, isCollection, isDate, isMomentObject, isMongooseObject, isNil, isObject, isObjectID, isString, nameOf, objectKeys } from "@tsed/core";
2
2
  export class JsonMapperCompiler {
3
- /**
4
- * Cached mappers metadata
5
- * @protected
6
- */
7
- cache = new Map();
8
- /**
9
- * Cached executable mappers by his id
10
- * @protected
11
- */
12
- mappers = {};
13
- /**
14
- * Cached schemas
15
- * @protected
16
- */
17
- schemes = {};
18
- /**
19
- * Cached classes by his id
20
- * @protected
21
- */
22
- constructors = {};
23
- /**
24
- * Global variables available in the mapper
25
- * @protected
26
- */
27
- globals = {
28
- isCollection,
29
- isClass,
30
- isObject,
31
- classOf,
32
- nameOf,
33
- hasJsonMethod,
34
- isMongooseObject,
35
- isNil,
36
- isDate,
37
- objectKeys,
38
- isMomentObject
39
- };
40
3
  constructor() {
4
+ /**
5
+ * Cached mappers metadata
6
+ * @protected
7
+ */
8
+ this.cache = new Map();
9
+ /**
10
+ * Cached executable mappers by his id
11
+ * @protected
12
+ */
13
+ this.mappers = {};
14
+ /**
15
+ * Cached schemas
16
+ * @protected
17
+ */
18
+ this.schemes = {};
19
+ /**
20
+ * Cached classes by his id
21
+ * @protected
22
+ */
23
+ this.constructors = {};
24
+ /**
25
+ * Global variables available in the mapper
26
+ * @protected
27
+ */
28
+ this.globals = {
29
+ isCollection,
30
+ isClass,
31
+ isObject,
32
+ classOf,
33
+ nameOf,
34
+ hasJsonMethod,
35
+ isMongooseObject,
36
+ isNil,
37
+ isDate,
38
+ objectKeys,
39
+ isMomentObject
40
+ };
41
41
  this.addGlobal("alterIgnore", this.alterIgnore.bind(this));
42
42
  this.addGlobal("alterValue", this.alterValue.bind(this));
43
43
  this.addGlobal("execMapper", this.execMapper.bind(this));
@@ -1 +1 @@
1
- {"version":3,"file":"JsonMapperCompiler.js","sourceRoot":"","sources":["../../../src/domain/JsonMapperCompiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JsonMapperCompiler.js","sourceRoot":"","sources":["../../../src/domain/JsonMapperCompiler.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,11 @@
1
1
  export class Writer {
2
- static object = {
2
+ static { this.object = {
3
3
  assign(...args) {
4
4
  return `{ ${args.filter(Boolean).join(", ")} }`;
5
5
  }
6
- };
7
- _root;
8
- body = [];
9
- _indent;
6
+ }; }
10
7
  constructor(root) {
8
+ this.body = [];
11
9
  this._root = root;
12
10
  }
13
11
  static indent(lines) {
@@ -91,8 +89,6 @@ export class Writer {
91
89
  }
92
90
  }
93
91
  class IfWriter extends Writer {
94
- condition;
95
- elseWriter;
96
92
  constructor(condition, root) {
97
93
  super();
98
94
  this.condition = condition;
@@ -113,11 +109,11 @@ class IfWriter extends Writer {
113
109
  }
114
110
  }
115
111
  class SwitchWriter extends Writer {
116
- input;
117
- #map = new Map();
112
+ #map;
118
113
  constructor(input) {
119
114
  super();
120
115
  this.input = input;
116
+ this.#map = new Map();
121
117
  }
122
118
  case(condition) {
123
119
  const writer = new Writer();
@@ -1 +1 @@
1
- {"version":3,"file":"Writer.js","sourceRoot":"","sources":["../../../src/domain/Writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Writer.js","sourceRoot":"","sources":["../../../src/domain/Writer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@tsed/json-mapper",
3
3
  "description": "Json mapper module for Ts.ED Framework",
4
4
  "type": "commonjs",
5
- "version": "7.82.2",
5
+ "version": "8.0.0-alpha.1",
6
6
  "source": "./src/index.ts",
7
7
  "main": "./lib/cjs/index.js",
8
8
  "module": "./lib/esm/index.js",
@@ -42,17 +42,17 @@
42
42
  "tslib": "2.6.1"
43
43
  },
44
44
  "devDependencies": {
45
- "@tsed/barrels": "7.82.2",
46
- "@tsed/core": "7.82.2",
47
- "@tsed/schema": "7.82.2",
48
- "@tsed/typescript": "7.82.2",
45
+ "@tsed/barrels": "8.0.0-alpha.1",
46
+ "@tsed/core": "8.0.0-alpha.1",
47
+ "@tsed/schema": "8.0.0-alpha.1",
48
+ "@tsed/typescript": "8.0.0-alpha.1",
49
49
  "eslint": "^8.57.0",
50
50
  "typescript": "4.9.5",
51
51
  "vitest": "2.0.4"
52
52
  },
53
53
  "peerDependencies": {
54
- "@tsed/core": "7.82.2",
55
- "@tsed/schema": "7.82.2"
54
+ "@tsed/core": "8.0.0-alpha.1",
55
+ "@tsed/schema": "8.0.0-alpha.1"
56
56
  },
57
57
  "peerDependenciesMeta": {
58
58
  "@tsed/core": {
@@ -68,5 +68,8 @@
68
68
  },
69
69
  "homepage": "https://github.com/tsedio/tsed/tree/production/packages/specs/json-mapper",
70
70
  "author": "Romain Lenzotti",
71
- "license": "MIT"
71
+ "license": "MIT",
72
+ "publishConfig": {
73
+ "tag": "alpha"
74
+ }
72
75
  }