class-transformer.umd.js.map 91 KB

1
  1. {"version":3,"file":"class-transformer.umd.js","sources":["../esm5/enums/transformation-type.enum.js","../esm5/MetadataStorage.js","../esm5/storage.js","../esm5/utils/get-global.util.js","../esm5/utils/is-promise.util.js","../esm5/TransformOperationExecutor.js","../esm5/constants/default-options.constant.js","../esm5/ClassTransformer.js","../esm5/decorators/exclude.decorator.js","../esm5/decorators/expose.decorator.js","../esm5/decorators/transform-instance-to-instance.decorator.js","../esm5/decorators/transform-instance-to-plain.decorator.js","../esm5/decorators/transform-plain-to-instance.decorator.js","../esm5/decorators/transform.decorator.js","../esm5/decorators/type.decorator.js","../esm5/index.js"],"sourcesContent":["export var TransformationType;\n(function (TransformationType) {\n TransformationType[TransformationType[\"PLAIN_TO_CLASS\"] = 0] = \"PLAIN_TO_CLASS\";\n TransformationType[TransformationType[\"CLASS_TO_PLAIN\"] = 1] = \"CLASS_TO_PLAIN\";\n TransformationType[TransformationType[\"CLASS_TO_CLASS\"] = 2] = \"CLASS_TO_CLASS\";\n})(TransformationType || (TransformationType = {}));\n//# sourceMappingURL=transformation-type.enum.js.map","import { TransformationType } from './enums';\n/**\n * Storage all library metadata.\n */\nvar MetadataStorage = /** @class */ (function () {\n function MetadataStorage() {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n this._typeMetadatas = new Map();\n this._transformMetadatas = new Map();\n this._exposeMetadatas = new Map();\n this._excludeMetadatas = new Map();\n this._ancestorsMap = new Map();\n }\n // -------------------------------------------------------------------------\n // Adder Methods\n // -------------------------------------------------------------------------\n MetadataStorage.prototype.addTypeMetadata = function (metadata) {\n if (!this._typeMetadatas.has(metadata.target)) {\n this._typeMetadatas.set(metadata.target, new Map());\n }\n this._typeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n };\n MetadataStorage.prototype.addTransformMetadata = function (metadata) {\n if (!this._transformMetadatas.has(metadata.target)) {\n this._transformMetadatas.set(metadata.target, new Map());\n }\n if (!this._transformMetadatas.get(metadata.target).has(metadata.propertyName)) {\n this._transformMetadatas.get(metadata.target).set(metadata.propertyName, []);\n }\n this._transformMetadatas.get(metadata.target).get(metadata.propertyName).push(metadata);\n };\n MetadataStorage.prototype.addExposeMetadata = function (metadata) {\n if (!this._exposeMetadatas.has(metadata.target)) {\n this._exposeMetadatas.set(metadata.target, new Map());\n }\n this._exposeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n };\n MetadataStorage.prototype.addExcludeMetadata = function (metadata) {\n if (!this._excludeMetadatas.has(metadata.target)) {\n this._excludeMetadatas.set(metadata.target, new Map());\n }\n this._excludeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n };\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n MetadataStorage.prototype.findTransformMetadatas = function (target, propertyName, transformationType) {\n return this.findMetadatas(this._transformMetadatas, target, propertyName).filter(function (metadata) {\n if (!metadata.options)\n return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true)\n return true;\n if (metadata.options.toClassOnly === true) {\n return (transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS);\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n return true;\n });\n };\n MetadataStorage.prototype.findExcludeMetadata = function (target, propertyName) {\n return this.findMetadata(this._excludeMetadatas, target, propertyName);\n };\n MetadataStorage.prototype.findExposeMetadata = function (target, propertyName) {\n return this.findMetadata(this._exposeMetadatas, target, propertyName);\n };\n MetadataStorage.prototype.findExposeMetadataByCustomName = function (target, name) {\n return this.getExposedMetadatas(target).find(function (metadata) {\n return metadata.options && metadata.options.name === name;\n });\n };\n MetadataStorage.prototype.findTypeMetadata = function (target, propertyName) {\n return this.findMetadata(this._typeMetadatas, target, propertyName);\n };\n MetadataStorage.prototype.getStrategy = function (target) {\n var excludeMap = this._excludeMetadatas.get(target);\n var exclude = excludeMap && excludeMap.get(undefined);\n var exposeMap = this._exposeMetadatas.get(target);\n var expose = exposeMap && exposeMap.get(undefined);\n if ((exclude && expose) || (!exclude && !expose))\n return 'none';\n return exclude ? 'excludeAll' : 'exposeAll';\n };\n MetadataStorage.prototype.getExposedMetadatas = function (target) {\n return this.getMetadata(this._exposeMetadatas, target);\n };\n MetadataStorage.prototype.getExcludedMetadatas = function (target) {\n return this.getMetadata(this._excludeMetadatas, target);\n };\n MetadataStorage.prototype.getExposedProperties = function (target, transformationType) {\n return this.getExposedMetadatas(target)\n .filter(function (metadata) {\n if (!metadata.options)\n return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true)\n return true;\n if (metadata.options.toClassOnly === true) {\n return (transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS);\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n return true;\n })\n .map(function (metadata) { return metadata.propertyName; });\n };\n MetadataStorage.prototype.getExcludedProperties = function (target, transformationType) {\n return this.getExcludedMetadatas(target)\n .filter(function (metadata) {\n if (!metadata.options)\n return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true)\n return true;\n if (metadata.options.toClassOnly === true) {\n return (transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS);\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n return true;\n })\n .map(function (metadata) { return metadata.propertyName; });\n };\n MetadataStorage.prototype.clear = function () {\n this._typeMetadatas.clear();\n this._exposeMetadatas.clear();\n this._excludeMetadatas.clear();\n this._ancestorsMap.clear();\n };\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n MetadataStorage.prototype.getMetadata = function (metadatas, target) {\n var metadataFromTargetMap = metadatas.get(target);\n var metadataFromTarget;\n if (metadataFromTargetMap) {\n metadataFromTarget = Array.from(metadataFromTargetMap.values()).filter(function (meta) { return meta.propertyName !== undefined; });\n }\n var metadataFromAncestors = [];\n for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {\n var ancestor = _a[_i];\n var ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n var metadataFromAncestor = Array.from(ancestorMetadataMap.values()).filter(function (meta) { return meta.propertyName !== undefined; });\n metadataFromAncestors.push.apply(metadataFromAncestors, metadataFromAncestor);\n }\n }\n return metadataFromAncestors.concat(metadataFromTarget || []);\n };\n MetadataStorage.prototype.findMetadata = function (metadatas, target, propertyName) {\n var metadataFromTargetMap = metadatas.get(target);\n if (metadataFromTargetMap) {\n var metadataFromTarget = metadataFromTargetMap.get(propertyName);\n if (metadataFromTarget) {\n return metadataFromTarget;\n }\n }\n for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {\n var ancestor = _a[_i];\n var ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n var ancestorResult = ancestorMetadataMap.get(propertyName);\n if (ancestorResult) {\n return ancestorResult;\n }\n }\n }\n return undefined;\n };\n MetadataStorage.prototype.findMetadatas = function (metadatas, target, propertyName) {\n var metadataFromTargetMap = metadatas.get(target);\n var metadataFromTarget;\n if (metadataFromTargetMap) {\n metadataFromTarget = metadataFromTargetMap.get(propertyName);\n }\n var metadataFromAncestorsTarget = [];\n for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {\n var ancestor = _a[_i];\n var ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n if (ancestorMetadataMap.has(propertyName)) {\n metadataFromAncestorsTarget.push.apply(metadataFromAncestorsTarget, ancestorMetadataMap.get(propertyName));\n }\n }\n }\n return metadataFromAncestorsTarget\n .slice()\n .reverse()\n .concat((metadataFromTarget || []).slice().reverse());\n };\n MetadataStorage.prototype.getAncestors = function (target) {\n if (!target)\n return [];\n if (!this._ancestorsMap.has(target)) {\n var ancestors = [];\n for (var baseClass = Object.getPrototypeOf(target.prototype.constructor); typeof baseClass.prototype !== 'undefined'; baseClass = Object.getPrototypeOf(baseClass.prototype.constructor)) {\n ancestors.push(baseClass);\n }\n this._ancestorsMap.set(target, ancestors);\n }\n return this._ancestorsMap.get(target);\n };\n return MetadataStorage;\n}());\nexport { MetadataStorage };\n//# sourceMappingURL=MetadataStorage.js.map","import { MetadataStorage } from './MetadataStorage';\n/**\n * Default metadata storage is used as singleton and can be used to storage all metadatas.\n */\nexport var defaultMetadataStorage = new MetadataStorage();\n//# sourceMappingURL=storage.js.map","/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n return window;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n if (typeof self !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n return self;\n }\n}\n//# sourceMappingURL=get-global.util.js.map","export function isPromise(p) {\n return p !== null && typeof p === 'object' && typeof p.then === 'function';\n}\n//# sourceMappingURL=is-promise.util.js.map","var __spreadArray = (this && this.__spreadArray) || function (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};\nimport { defaultMetadataStorage } from './storage';\nimport { TransformationType } from './enums';\nimport { getGlobal, isPromise } from './utils';\nfunction instantiateArrayType(arrayType) {\n var array = new arrayType();\n if (!(array instanceof Set) && !('push' in array)) {\n return [];\n }\n return array;\n}\nvar TransformOperationExecutor = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function TransformOperationExecutor(transformationType, options) {\n this.transformationType = transformationType;\n this.options = options;\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n this.recursionStack = new Set();\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n TransformOperationExecutor.prototype.transform = function (source, value, targetType, arrayType, isMap, level) {\n var _this = this;\n if (level === void 0) { level = 0; }\n if (Array.isArray(value) || value instanceof Set) {\n var newValue_1 = arrayType && this.transformationType === TransformationType.PLAIN_TO_CLASS\n ? instantiateArrayType(arrayType)\n : [];\n value.forEach(function (subValue, index) {\n var subSource = source ? source[index] : undefined;\n if (!_this.options.enableCircularCheck || !_this.isCircular(subValue)) {\n var realTargetType = void 0;\n if (typeof targetType !== 'function' &&\n targetType &&\n targetType.options &&\n targetType.options.discriminator &&\n targetType.options.discriminator.property &&\n targetType.options.discriminator.subTypes) {\n if (_this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n realTargetType = targetType.options.discriminator.subTypes.find(function (subType) {\n return subType.name === subValue[targetType.options.discriminator.property];\n });\n var options = { newObject: newValue_1, object: subValue, property: undefined };\n var newType = targetType.typeFunction(options);\n realTargetType === undefined ? (realTargetType = newType) : (realTargetType = realTargetType.value);\n if (!targetType.options.keepDiscriminatorProperty)\n delete subValue[targetType.options.discriminator.property];\n }\n if (_this.transformationType === TransformationType.CLASS_TO_CLASS) {\n realTargetType = subValue.constructor;\n }\n if (_this.transformationType === TransformationType.CLASS_TO_PLAIN) {\n subValue[targetType.options.discriminator.property] = targetType.options.discriminator.subTypes.find(function (subType) { return subType.value === subValue.constructor; }).name;\n }\n }\n else {\n realTargetType = targetType;\n }\n var value_1 = _this.transform(subSource, subValue, realTargetType, undefined, subValue instanceof Map, level + 1);\n if (newValue_1 instanceof Set) {\n newValue_1.add(value_1);\n }\n else {\n newValue_1.push(value_1);\n }\n }\n else if (_this.transformationType === TransformationType.CLASS_TO_CLASS) {\n if (newValue_1 instanceof Set) {\n newValue_1.add(subValue);\n }\n else {\n newValue_1.push(subValue);\n }\n }\n });\n return newValue_1;\n }\n else if (targetType === String && !isMap) {\n if (value === null || value === undefined)\n return value;\n return String(value);\n }\n else if (targetType === Number && !isMap) {\n if (value === null || value === undefined)\n return value;\n return Number(value);\n }\n else if (targetType === Boolean && !isMap) {\n if (value === null || value === undefined)\n return value;\n return Boolean(value);\n }\n else if ((targetType === Date || value instanceof Date) && !isMap) {\n if (value instanceof Date) {\n return new Date(value.valueOf());\n }\n if (value === null || value === undefined)\n return value;\n return new Date(value);\n }\n else if (!!getGlobal().Buffer && (targetType === Buffer || value instanceof Buffer) && !isMap) {\n if (value === null || value === undefined)\n return value;\n return Buffer.from(value);\n }\n else if (isPromise(value) && !isMap) {\n return new Promise(function (resolve, reject) {\n value.then(function (data) { return resolve(_this.transform(undefined, data, targetType, undefined, undefined, level + 1)); }, reject);\n });\n }\n else if (!isMap && value !== null && typeof value === 'object' && typeof value.then === 'function') {\n // Note: We should not enter this, as promise has been handled above\n // This option simply returns the Promise preventing a JS error from happening and should be an inaccessible path.\n return value; // skip promise transformation\n }\n else if (typeof value === 'object' && value !== null) {\n // try to guess the type\n if (!targetType && value.constructor !== Object /* && TransformationType === TransformationType.CLASS_TO_PLAIN*/)\n if (!Array.isArray(value) && value.constructor === Array) {\n // Somebody attempts to convert special Array like object to Array, eg:\n // const evilObject = { '100000000': '100000000', __proto__: [] };\n // This could be used to cause Denial-of-service attack so we don't allow it.\n // See prevent-array-bomb.spec.ts for more details.\n }\n else {\n // We are good we can use the built-in constructor\n targetType = value.constructor;\n }\n if (!targetType && source)\n targetType = source.constructor;\n if (this.options.enableCircularCheck) {\n // add transformed type to prevent circular references\n this.recursionStack.add(value);\n }\n var keys = this.getKeys(targetType, value, isMap);\n var newValue = source ? source : {};\n if (!source &&\n (this.transformationType === TransformationType.PLAIN_TO_CLASS ||\n this.transformationType === TransformationType.CLASS_TO_CLASS)) {\n if (isMap) {\n newValue = new Map();\n }\n else if (targetType) {\n newValue = new targetType();\n }\n else {\n newValue = {};\n }\n }\n var _loop_1 = function (key) {\n if (key === '__proto__' || key === 'constructor') {\n return \"continue\";\n }\n var valueKey = key;\n var newValueKey = key, propertyName = key;\n if (!this_1.options.ignoreDecorators && targetType) {\n if (this_1.transformationType === TransformationType.PLAIN_TO_CLASS) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadataByCustomName(targetType, key);\n if (exposeMetadata) {\n propertyName = exposeMetadata.propertyName;\n newValueKey = exposeMetadata.propertyName;\n }\n }\n else if (this_1.transformationType === TransformationType.CLASS_TO_PLAIN ||\n this_1.transformationType === TransformationType.CLASS_TO_CLASS) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(targetType, key);\n if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) {\n newValueKey = exposeMetadata.options.name;\n }\n }\n }\n // get a subvalue\n var subValue = undefined;\n if (this_1.transformationType === TransformationType.PLAIN_TO_CLASS) {\n /**\n * This section is added for the following report:\n * https://github.com/typestack/class-transformer/issues/596\n *\n * We should not call functions or constructors when transforming to class.\n */\n subValue = value[valueKey];\n }\n else {\n if (value instanceof Map) {\n subValue = value.get(valueKey);\n }\n else if (value[valueKey] instanceof Function) {\n subValue = value[valueKey]();\n }\n else {\n subValue = value[valueKey];\n }\n }\n // determine a type\n var type = undefined, isSubValueMap = subValue instanceof Map;\n if (targetType && isMap) {\n type = targetType;\n }\n else if (targetType) {\n var metadata_1 = defaultMetadataStorage.findTypeMetadata(targetType, propertyName);\n if (metadata_1) {\n var options = { newObject: newValue, object: value, property: propertyName };\n var newType = metadata_1.typeFunction ? metadata_1.typeFunction(options) : metadata_1.reflectedType;\n if (metadata_1.options &&\n metadata_1.options.discriminator &&\n metadata_1.options.discriminator.property &&\n metadata_1.options.discriminator.subTypes) {\n if (!(value[valueKey] instanceof Array)) {\n if (this_1.transformationType === TransformationType.PLAIN_TO_CLASS) {\n type = metadata_1.options.discriminator.subTypes.find(function (subType) {\n if (subValue && subValue instanceof Object && metadata_1.options.discriminator.property in subValue) {\n return subType.name === subValue[metadata_1.options.discriminator.property];\n }\n });\n type === undefined ? (type = newType) : (type = type.value);\n if (!metadata_1.options.keepDiscriminatorProperty) {\n if (subValue && subValue instanceof Object && metadata_1.options.discriminator.property in subValue) {\n delete subValue[metadata_1.options.discriminator.property];\n }\n }\n }\n if (this_1.transformationType === TransformationType.CLASS_TO_CLASS) {\n type = subValue.constructor;\n }\n if (this_1.transformationType === TransformationType.CLASS_TO_PLAIN) {\n if (subValue) {\n subValue[metadata_1.options.discriminator.property] = metadata_1.options.discriminator.subTypes.find(function (subType) { return subType.value === subValue.constructor; }).name;\n }\n }\n }\n else {\n type = metadata_1;\n }\n }\n else {\n type = newType;\n }\n isSubValueMap = isSubValueMap || metadata_1.reflectedType === Map;\n }\n else if (this_1.options.targetMaps) {\n // try to find a type in target maps\n this_1.options.targetMaps\n .filter(function (map) { return map.target === targetType && !!map.properties[propertyName]; })\n .forEach(function (map) { return (type = map.properties[propertyName]); });\n }\n else if (this_1.options.enableImplicitConversion &&\n this_1.transformationType === TransformationType.PLAIN_TO_CLASS) {\n // if we have no registererd type via the @Type() decorator then we check if we have any\n // type declarations in reflect-metadata (type declaration is emited only if some decorator is added to the property.)\n var reflectedType = Reflect.getMetadata('design:type', targetType.prototype, propertyName);\n if (reflectedType) {\n type = reflectedType;\n }\n }\n }\n // if value is an array try to get its custom array type\n var arrayType_1 = Array.isArray(value[valueKey])\n ? this_1.getReflectedType(targetType, propertyName)\n : undefined;\n // const subValueKey = TransformationType === TransformationType.PLAIN_TO_CLASS && newKeyName ? newKeyName : key;\n var subSource = source ? source[valueKey] : undefined;\n // if its deserialization then type if required\n // if we uncomment this types like string[] will not work\n // if (this.transformationType === TransformationType.PLAIN_TO_CLASS && !type && subValue instanceof Object && !(subValue instanceof Date))\n // throw new Error(`Cannot determine type for ${(targetType as any).name }.${propertyName}, did you forget to specify a @Type?`);\n // if newValue is a source object that has method that match newKeyName then skip it\n if (newValue.constructor.prototype) {\n var descriptor = Object.getOwnPropertyDescriptor(newValue.constructor.prototype, newValueKey);\n if ((this_1.transformationType === TransformationType.PLAIN_TO_CLASS ||\n this_1.transformationType === TransformationType.CLASS_TO_CLASS) &&\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ((descriptor && !descriptor.set) || newValue[newValueKey] instanceof Function))\n return \"continue\";\n }\n if (!this_1.options.enableCircularCheck || !this_1.isCircular(subValue)) {\n var transformKey = this_1.transformationType === TransformationType.PLAIN_TO_CLASS ? newValueKey : key;\n var finalValue = void 0;\n if (this_1.transformationType === TransformationType.CLASS_TO_PLAIN) {\n // Get original value\n finalValue = value[transformKey];\n // Apply custom transformation\n finalValue = this_1.applyCustomTransformations(finalValue, targetType, transformKey, value, this_1.transformationType);\n // If nothing change, it means no custom transformation was applied, so use the subValue.\n finalValue = value[transformKey] === finalValue ? subValue : finalValue;\n // Apply the default transformation\n finalValue = this_1.transform(subSource, finalValue, type, arrayType_1, isSubValueMap, level + 1);\n }\n else {\n if (subValue === undefined && this_1.options.exposeDefaultValues) {\n // Set default value if nothing provided\n finalValue = newValue[newValueKey];\n }\n else {\n finalValue = this_1.transform(subSource, subValue, type, arrayType_1, isSubValueMap, level + 1);\n finalValue = this_1.applyCustomTransformations(finalValue, targetType, transformKey, value, this_1.transformationType);\n }\n }\n if (finalValue !== undefined || this_1.options.exposeUnsetFields) {\n if (newValue instanceof Map) {\n newValue.set(newValueKey, finalValue);\n }\n else {\n newValue[newValueKey] = finalValue;\n }\n }\n }\n else if (this_1.transformationType === TransformationType.CLASS_TO_CLASS) {\n var finalValue = subValue;\n finalValue = this_1.applyCustomTransformations(finalValue, targetType, key, value, this_1.transformationType);\n if (finalValue !== undefined || this_1.options.exposeUnsetFields) {\n if (newValue instanceof Map) {\n newValue.set(newValueKey, finalValue);\n }\n else {\n newValue[newValueKey] = finalValue;\n }\n }\n }\n };\n var this_1 = this;\n // traverse over keys\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n _loop_1(key);\n }\n if (this.options.enableCircularCheck) {\n this.recursionStack.delete(value);\n }\n return newValue;\n }\n else {\n return value;\n }\n };\n TransformOperationExecutor.prototype.applyCustomTransformations = function (value, target, key, obj, transformationType) {\n var _this = this;\n var metadatas = defaultMetadataStorage.findTransformMetadatas(target, key, this.transformationType);\n // apply versioning options\n if (this.options.version !== undefined) {\n metadatas = metadatas.filter(function (metadata) {\n if (!metadata.options)\n return true;\n return _this.checkVersion(metadata.options.since, metadata.options.until);\n });\n }\n // apply grouping options\n if (this.options.groups && this.options.groups.length) {\n metadatas = metadatas.filter(function (metadata) {\n if (!metadata.options)\n return true;\n return _this.checkGroups(metadata.options.groups);\n });\n }\n else {\n metadatas = metadatas.filter(function (metadata) {\n return !metadata.options || !metadata.options.groups || !metadata.options.groups.length;\n });\n }\n metadatas.forEach(function (metadata) {\n value = metadata.transformFn({ value: value, key: key, obj: obj, type: transformationType, options: _this.options });\n });\n return value;\n };\n // preventing circular references\n TransformOperationExecutor.prototype.isCircular = function (object) {\n return this.recursionStack.has(object);\n };\n TransformOperationExecutor.prototype.getReflectedType = function (target, propertyName) {\n if (!target)\n return undefined;\n var meta = defaultMetadataStorage.findTypeMetadata(target, propertyName);\n return meta ? meta.reflectedType : undefined;\n };\n TransformOperationExecutor.prototype.getKeys = function (target, object, isMap) {\n var _this = this;\n // determine exclusion strategy\n var strategy = defaultMetadataStorage.getStrategy(target);\n if (strategy === 'none')\n strategy = this.options.strategy || 'exposeAll'; // exposeAll is default strategy\n // get all keys that need to expose\n var keys = [];\n if (strategy === 'exposeAll' || isMap) {\n if (object instanceof Map) {\n keys = Array.from(object.keys());\n }\n else {\n keys = Object.keys(object);\n }\n }\n if (isMap) {\n // expose & exclude do not apply for map keys only to fields\n return keys;\n }\n /**\n * If decorators are ignored but we don't want the extraneous values, then we use the\n * metadata to decide which property is needed, but doesn't apply the decorator effect.\n */\n if (this.options.ignoreDecorators && this.options.excludeExtraneousValues && target) {\n var exposedProperties = defaultMetadataStorage.getExposedProperties(target, this.transformationType);\n var excludedProperties = defaultMetadataStorage.getExcludedProperties(target, this.transformationType);\n keys = __spreadArray(__spreadArray([], exposedProperties, true), excludedProperties, true);\n }\n if (!this.options.ignoreDecorators && target) {\n // add all exposed to list of keys\n var exposedProperties = defaultMetadataStorage.getExposedProperties(target, this.transformationType);\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n exposedProperties = exposedProperties.map(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) {\n return exposeMetadata.options.name;\n }\n return key;\n });\n }\n if (this.options.excludeExtraneousValues) {\n keys = exposedProperties;\n }\n else {\n keys = keys.concat(exposedProperties);\n }\n // exclude excluded properties\n var excludedProperties_1 = defaultMetadataStorage.getExcludedProperties(target, this.transformationType);\n if (excludedProperties_1.length > 0) {\n keys = keys.filter(function (key) {\n return !excludedProperties_1.includes(key);\n });\n }\n // apply versioning options\n if (this.options.version !== undefined) {\n keys = keys.filter(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (!exposeMetadata || !exposeMetadata.options)\n return true;\n return _this.checkVersion(exposeMetadata.options.since, exposeMetadata.options.until);\n });\n }\n // apply grouping options\n if (this.options.groups && this.options.groups.length) {\n keys = keys.filter(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (!exposeMetadata || !exposeMetadata.options)\n return true;\n return _this.checkGroups(exposeMetadata.options.groups);\n });\n }\n else {\n keys = keys.filter(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n return (!exposeMetadata ||\n !exposeMetadata.options ||\n !exposeMetadata.options.groups ||\n !exposeMetadata.options.groups.length);\n });\n }\n }\n // exclude prefixed properties\n if (this.options.excludePrefixes && this.options.excludePrefixes.length) {\n keys = keys.filter(function (key) {\n return _this.options.excludePrefixes.every(function (prefix) {\n return key.substr(0, prefix.length) !== prefix;\n });\n });\n }\n // make sure we have unique keys\n keys = keys.filter(function (key, index, self) {\n return self.indexOf(key) === index;\n });\n return keys;\n };\n TransformOperationExecutor.prototype.checkVersion = function (since, until) {\n var decision = true;\n if (decision && since)\n decision = this.options.version >= since;\n if (decision && until)\n decision = this.options.version < until;\n return decision;\n };\n TransformOperationExecutor.prototype.checkGroups = function (groups) {\n if (!groups)\n return true;\n return this.options.groups.some(function (optionGroup) { return groups.includes(optionGroup); });\n };\n return TransformOperationExecutor;\n}());\nexport { TransformOperationExecutor };\n//# sourceMappingURL=TransformOperationExecutor.js.map","/**\n * These are the default options used by any transformation operation.\n */\nexport var defaultOptions = {\n enableCircularCheck: false,\n enableImplicitConversion: false,\n excludeExtraneousValues: false,\n excludePrefixes: undefined,\n exposeDefaultValues: false,\n exposeUnsetFields: true,\n groups: undefined,\n ignoreDecorators: false,\n strategy: undefined,\n targetMaps: undefined,\n version: undefined,\n};\n//# sourceMappingURL=default-options.constant.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { TransformOperationExecutor } from './TransformOperationExecutor';\nimport { TransformationType } from './enums';\nimport { defaultOptions } from './constants/default-options.constant';\nvar ClassTransformer = /** @class */ (function () {\n function ClassTransformer() {\n }\n ClassTransformer.prototype.instanceToPlain = function (object, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, defaultOptions), options));\n return executor.transform(undefined, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.classToPlainFromExist = function (object, plainObject, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, defaultOptions), options));\n return executor.transform(plainObject, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.plainToInstance = function (cls, plain, options) {\n var executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(undefined, plain, cls, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.plainToClassFromExist = function (clsObject, plain, options) {\n var executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(clsObject, plain, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.instanceToInstance = function (object, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(undefined, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.classToClassFromExist = function (object, fromObject, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(fromObject, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.serialize = function (object, options) {\n return JSON.stringify(this.instanceToPlain(object, options));\n };\n /**\n * Deserializes given JSON string to a object of the given class.\n */\n ClassTransformer.prototype.deserialize = function (cls, json, options) {\n var jsonObject = JSON.parse(json);\n return this.plainToInstance(cls, jsonObject, options);\n };\n /**\n * Deserializes given JSON string to an array of objects of the given class.\n */\n ClassTransformer.prototype.deserializeArray = function (cls, json, options) {\n var jsonObject = JSON.parse(json);\n return this.plainToInstance(cls, jsonObject, options);\n };\n return ClassTransformer;\n}());\nexport { ClassTransformer };\n//# sourceMappingURL=ClassTransformer.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Marks the given class or property as excluded. By default the property is excluded in both\n * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction\n * via using the `toPlainOnly` or `toClassOnly` option.\n *\n * Can be applied to class definitions and properties.\n */\nexport function Exclude(options) {\n if (options === void 0) { options = {}; }\n /**\n * NOTE: The `propertyName` property must be marked as optional because\n * this decorator used both as a class and a property decorator and the\n * Typescript compiler will freak out if we make it mandatory as a class\n * decorator only receives one parameter.\n */\n return function (object, propertyName) {\n defaultMetadataStorage.addExcludeMetadata({\n target: object instanceof Function ? object : object.constructor,\n propertyName: propertyName,\n options: options,\n });\n };\n}\n//# sourceMappingURL=exclude.decorator.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Marks the given class or property as included. By default the property is included in both\n * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction\n * via using the `toPlainOnly` or `toClassOnly` option.\n *\n * Can be applied to class definitions and properties.\n */\nexport function Expose(options) {\n if (options === void 0) { options = {}; }\n /**\n * NOTE: The `propertyName` property must be marked as optional because\n * this decorator used both as a class and a property decorator and the\n * Typescript compiler will freak out if we make it mandatory as a class\n * decorator only receives one parameter.\n */\n return function (object, propertyName) {\n defaultMetadataStorage.addExposeMetadata({\n target: object instanceof Function ? object : object.constructor,\n propertyName: propertyName,\n options: options,\n });\n };\n}\n//# sourceMappingURL=expose.decorator.js.map","import { ClassTransformer } from '../ClassTransformer';\n/**\n * Return the class instance only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformInstanceToInstance(params) {\n return function (target, propertyKey, descriptor) {\n var classTransformer = new ClassTransformer();\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = originalMethod.apply(this, args);\n var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then(function (data) { return classTransformer.instanceToInstance(data, params); })\n : classTransformer.instanceToInstance(result, params);\n };\n };\n}\n//# sourceMappingURL=transform-instance-to-instance.decorator.js.map","import { ClassTransformer } from '../ClassTransformer';\n/**\n * Transform the object from class to plain object and return only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformInstanceToPlain(params) {\n return function (target, propertyKey, descriptor) {\n var classTransformer = new ClassTransformer();\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = originalMethod.apply(this, args);\n var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then(function (data) { return classTransformer.instanceToPlain(data, params); })\n : classTransformer.instanceToPlain(result, params);\n };\n };\n}\n//# sourceMappingURL=transform-instance-to-plain.decorator.js.map","import { ClassTransformer } from '../ClassTransformer';\n/**\n * Return the class instance only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformPlainToInstance(classType, params) {\n return function (target, propertyKey, descriptor) {\n var classTransformer = new ClassTransformer();\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = originalMethod.apply(this, args);\n var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then(function (data) { return classTransformer.plainToInstance(classType, data, params); })\n : classTransformer.plainToInstance(classType, result, params);\n };\n };\n}\n//# sourceMappingURL=transform-plain-to-instance.decorator.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Defines a custom logic for value transformation.\n *\n * Can be applied to properties only.\n */\nexport function Transform(transformFn, options) {\n if (options === void 0) { options = {}; }\n return function (target, propertyName) {\n defaultMetadataStorage.addTransformMetadata({\n target: target.constructor,\n propertyName: propertyName,\n transformFn: transformFn,\n options: options,\n });\n };\n}\n//# sourceMappingURL=transform.decorator.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Specifies a type of the property.\n * The given TypeFunction can return a constructor. A discriminator can be given in the options.\n *\n * Can be applied to properties only.\n */\nexport function Type(typeFunction, options) {\n if (options === void 0) { options = {}; }\n return function (target, propertyName) {\n var reflectedType = Reflect.getMetadata('design:type', target, propertyName);\n defaultMetadataStorage.addTypeMetadata({\n target: target.constructor,\n propertyName: propertyName,\n reflectedType: reflectedType,\n typeFunction: typeFunction,\n options: options,\n });\n };\n}\n//# sourceMappingURL=type.decorator.js.map","import { ClassTransformer } from './ClassTransformer';\nexport { ClassTransformer } from './ClassTransformer';\nexport * from './decorators';\nexport * from './interfaces';\nexport * from './enums';\nvar classTransformer = new ClassTransformer();\nexport function classToPlain(object, options) {\n return classTransformer.instanceToPlain(object, options);\n}\nexport function instanceToPlain(object, options) {\n return classTransformer.instanceToPlain(object, options);\n}\nexport function classToPlainFromExist(object, plainObject, options) {\n return classTransformer.classToPlainFromExist(object, plainObject, options);\n}\nexport function plainToClass(cls, plain, options) {\n return classTransformer.plainToInstance(cls, plain, options);\n}\nexport function plainToInstance(cls, plain, options) {\n return classTransformer.plainToInstance(cls, plain, options);\n}\nexport function plainToClassFromExist(clsObject, plain, options) {\n return classTransformer.plainToClassFromExist(clsObject, plain, options);\n}\nexport function instanceToInstance(object, options) {\n return classTransformer.instanceToInstance(object, options);\n}\nexport function classToClassFromExist(object, fromObject, options) {\n return classTransformer.classToClassFromExist(object, fromObject, options);\n}\nexport function serialize(object, options) {\n return classTransformer.serialize(object, options);\n}\n/**\n * Deserializes given JSON string to a object of the given class.\n *\n * @deprecated This function is being removed. Please use the following instead:\n * ```\n * instanceToClass(cls, JSON.parse(json), options)\n * ```\n */\nexport function deserialize(cls, json, options) {\n return classTransformer.deserialize(cls, json, options);\n}\n/**\n * Deserializes given JSON string to an array of objects of the given class.\n *\n * @deprecated This function is being removed. Please use the following instead:\n * ```\n * JSON.parse(json).map(value => instanceToClass(cls, value, options))\n * ```\n *\n */\nexport function deserializeArray(cls, json, options) {\n return classTransformer.deserializeArray(cls, json, options);\n}\n//# sourceMappingURL=index.js.map"],"names":["TransformationType","this"],"mappings":"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"}