{"_id":"class-transformer","_rev":"2793027","name":"class-transformer","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","dist-tags":{"latest":"0.5.1"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"time":{"modified":"2022-06-23T12:00:31.000Z","created":"2016-07-25T11:28:58.565Z","0.5.1":"2021-11-22T19:04:09.677Z","0.5.0":"2021-11-20T15:17:35.333Z","0.4.1":"2021-11-20T14:55:23.134Z","0.4.0":"2021-02-14T15:26:22.616Z","0.3.2":"2021-01-14T06:03:30.768Z","0.3.1":"2020-07-29T22:09:18.147Z","0.2.3":"2019-05-20T20:05:01.156Z","0.2.2":"2019-05-08T00:30:25.264Z","0.2.1":"2019-05-07T22:05:30.768Z","0.2.0":"2018-11-04T19:06:48.719Z","0.1.10":"2018-10-17T09:35:40.364Z","0.1.9":"2018-02-04T14:04:49.399Z","0.1.8":"2017-10-03T09:41:59.335Z","0.1.7":"2017-06-27T13:55:55.147Z","0.1.6":"2017-01-18T10:54:43.598Z","0.1.5":"2017-01-18T10:30:38.027Z","0.1.4":"2017-01-12T17:52:02.764Z","0.1.3":"2016-12-01T11:28:45.137Z","0.1.2":"2016-10-22T09:41:52.160Z","0.1.1":"2016-08-02T12:21:35.658Z","0.1.0":"2016-07-28T19:03:24.601Z","0.1.0-beta.10":"2016-07-28T17:14:04.324Z","0.1.0-beta.9":"2016-07-28T15:19:23.877Z","0.1.0-beta.8":"2016-07-28T06:03:27.375Z","0.1.0-beta.7":"2016-07-27T14:55:23.406Z","0.1.0-beta.6":"2016-07-27T13:10:52.395Z","0.1.0-beta.5":"2016-07-27T12:02:55.947Z","0.1.0-beta.4":"2016-07-27T06:27:46.993Z","0.1.0-beta.3":"2016-07-25T16:13:40.176Z","0.1.0-beta.2":"2016-07-25T14:02:57.189Z","0.1.0-beta.1":"2016-07-25T11:28:58.565Z"},"users":{},"author":{"name":"TypeStack contributors"},"repository":{"type":"git","url":"git+https://github.com/typestack/class-transformer.git"},"versions":{"0.5.1":{"name":"class-transformer","version":"0.5.1","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","author":{"name":"TypeStack contributors"},"license":"MIT","sideEffects":false,"main":"./cjs/index.js","module":"./esm5/index.js","es2015":"./esm2015/index.js","typings":"./types/index.d.ts","repository":{"type":"git","url":"git+https://github.com/typestack/class-transformer.git"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix"]},"bugs":{"url":"https://github.com/typestack/class-transformer/issues"},"homepage":"https://github.com/typestack/class-transformer#readme","_id":"class-transformer@0.5.1","_nodeVersion":"10.24.1","_npmVersion":"6.14.12","dist":{"shasum":"24147d5dffd2a6cea930a3250a677addf96ab336","size":111161,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.5.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.5.1.tgz"},"_npmUser":{"name":"typestack-release-bot","email":"attila.olah+typestackreleasebot@outlook.com"},"directories":{},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/class-transformer_0.5.1_1637607849505_0.5569857318826628"},"_hasShrinkwrap":false,"publish_time":1637607849677,"_cnpm_publish_time":1637607849677,"_cnpmcore_publish_time":"2021-12-16T12:03:50.843Z"},"0.5.0":{"name":"class-transformer","version":"0.5.0","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","author":{"name":"TypeStack contributors"},"license":"MIT","sideEffects":false,"main":"./cjs/index.js","module":"./esm5/index.js","es2015":"./esm2015/index.js","typings":"./types/index.d.ts","repository":{"type":"git","url":"git+https://github.com/typestack/class-transformer.git"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix"]},"bugs":{"url":"https://github.com/typestack/class-transformer/issues"},"homepage":"https://github.com/typestack/class-transformer#readme","_id":"class-transformer@0.5.0","_nodeVersion":"10.24.1","_npmVersion":"6.14.12","dist":{"shasum":"4b599307707dc1c0bb785e995303d59afbed605c","size":110770,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.5.0.tgz"},"_npmUser":{"name":"typestack-release-bot","email":"attila.olah+typestackreleasebot@outlook.com"},"directories":{},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/class-transformer_0.5.0_1637421455152_0.17095477983310903"},"_hasShrinkwrap":false,"publish_time":1637421455333,"_cnpm_publish_time":1637421455333,"_cnpmcore_publish_time":"2021-12-16T12:03:51.369Z"},"0.4.1":{"name":"class-transformer","version":"0.4.1","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","author":{"name":"TypeStack contributors"},"license":"MIT","sideEffects":false,"main":"./cjs/index.js","module":"./esm5/index.js","es2015":"./esm2015/index.js","typings":"./types/index.d.ts","repository":{"type":"git","url":"git+https://github.com/typestack/class-transformer.git"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix"]},"bugs":{"url":"https://github.com/typestack/class-transformer/issues"},"homepage":"https://github.com/typestack/class-transformer#readme","_id":"class-transformer@0.4.1","_nodeVersion":"10.24.1","_npmVersion":"6.14.12","dist":{"shasum":"eb86449fb5dc8333acbf880c96214acfa0d8dedf","size":110770,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.4.1.tgz"},"_npmUser":{"name":"typestack-release-bot","email":"attila.olah+typestackreleasebot@outlook.com"},"directories":{},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/class-transformer_0.4.1_1637420122621_0.49023915968977083"},"_hasShrinkwrap":false,"publish_time":1637420123134,"deprecated":"This version contains an important fix for a security vulnerability but accidentally was released with an unrelated API breaking change. To respect SemVer it is deprecated in favor of 0.5.0. Please update as soon as possible.","_cnpm_publish_time":1637420123134,"_cnpmcore_publish_time":"2021-12-16T12:03:52.596Z"},"0.4.0":{"name":"class-transformer","version":"0.4.0","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","author":{"name":"TypeStack contributors"},"license":"MIT","sideEffects":false,"main":"./cjs/index.js","module":"./esm5/index.js","es2015":"./esm2015/index.js","typings":"./types/index.d.ts","repository":{"type":"git","url":"git+https://github.com/typestack/class-transformer.git"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix"]},"bugs":{"url":"https://github.com/typestack/class-transformer/issues"},"homepage":"https://github.com/typestack/class-transformer#readme","_id":"class-transformer@0.4.0","_nodeVersion":"10.23.2","_npmVersion":"6.14.10","dist":{"shasum":"b52144117b423c516afb44cc1c76dbad31c2165b","size":104715,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.4.0.tgz"},"_npmUser":{"name":"typestack-release-bot","email":"attila.olah+typestackreleasebot@outlook.com"},"directories":{},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/class-transformer_0.4.0_1613316382501_0.024517359425999974"},"_hasShrinkwrap":false,"publish_time":1613316382616,"_cnpm_publish_time":1613316382616,"_cnpmcore_publish_time":"2021-12-16T12:03:53.168Z"},"0.3.2":{"name":"class-transformer","version":"0.3.2","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","author":{"name":"TypeStack contributors"},"license":"MIT","sideEffects":false,"main":"./cjs/index.js","module":"./esm5/index.js","es2015":"./esm2015/index.js","typings":"./types/index.d.ts","repository":{"type":"git","url":"git+https://github.com/typestack/class-transformer.git"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix"]},"bugs":{"url":"https://github.com/typestack/class-transformer/issues"},"homepage":"https://github.com/typestack/class-transformer#readme","_id":"class-transformer@0.3.2","_nodeVersion":"10.23.1","_npmVersion":"6.14.10","dist":{"shasum":"779ef5f124784324b40f8e927c774bd96cdecd4b","size":98907,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.3.2.tgz"},"_npmUser":{"name":"typestack-release-bot","email":"attila.olah+typestackreleasebot@outlook.com"},"directories":{},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/class-transformer_0.3.2_1610604210525_0.2285955669949291"},"_hasShrinkwrap":false,"publish_time":1610604210768,"deprecated":"This release contains a breaking change from 0.3.1 but otherwise functions properly. Please read the changelog on Github to learn more.","_cnpm_publish_time":1610604210768,"_cnpmcore_publish_time":"2021-12-16T12:03:53.987Z"},"0.3.1":{"name":"class-transformer","version":"0.3.1","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"contributors":[{"name":"Jonathas Morais","url":"https://github.com/jotamorais"},{"name":"Rob Muchal","url":"https://github.com/rmuchall"}],"repository":{"type":"git","url":"git+https://github.com/typestack/class-transformer.git"},"bugs":{"url":"https://github.com/typestack/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix"]},"homepage":"https://github.com/typestack/class-transformer#readme","_id":"class-transformer@0.3.1","_nodeVersion":"10.22.0","_npmVersion":"6.14.6","dist":{"shasum":"ee681a5439ff2230fc57f5056412d3befa70d597","size":25083,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.3.1.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmUser":{"name":"typestack-release-bot","email":"attila.olah+typestackreleasebot@outlook.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/class-transformer_0.3.1_1596060558044_0.9982064465835427"},"_hasShrinkwrap":false,"publish_time":1596060558147,"_cnpm_publish_time":1596060558147,"_cnpmcore_publish_time":"2021-12-16T12:03:54.236Z"},"0.2.3":{"name":"class-transformer","version":"0.2.3","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"@types/moment":"^2.13.0","@types/chai":"^3.4.34","@types/es6-shim":"^0.31.32","@types/mocha":"^2.2.33","@types/node":"0.0.2","@types/sinon":"^2.2.2","chai":"^4.2.0","chai-as-promised":"^7.1.1","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.0.0","gulp-mocha":"^3.0.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^8.1.3","gulp-typescript":"^3.1.3","gulp-uglify":"^2.0.0","gulpclass":"^0.1.1","mocha":"^3.2.0","moment":"2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.7.0","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^4.0.2","tslint-stylish":"^2.1.0-beta","typescript":"^2.0.10"},"scripts":{"test":"gulp tests","package":"gulp package"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.2.3","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"shasum":"598c92ca71dcca73f91ccb875d74a3847ccfa32d","size":72055,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.2.3.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmUser":{"name":"nonameprovided","email":"attila.olah@outlook.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/class-transformer_0.2.3_1558382701007_0.27161491326536913"},"_hasShrinkwrap":false,"publish_time":1558382701156,"_cnpm_publish_time":1558382701156,"_cnpmcore_publish_time":"2021-12-16T12:03:54.999Z"},"0.2.2":{"name":"class-transformer","version":"0.2.2","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"@types/moment":"^2.13.0","@types/chai":"^3.4.34","@types/es6-shim":"^0.31.32","@types/mocha":"^2.2.33","@types/node":"0.0.2","@types/sinon":"^2.2.2","chai":"^4.2.0","chai-as-promised":"^7.1.1","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.0.0","gulp-mocha":"^3.0.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^8.1.3","gulp-typescript":"^3.1.3","gulp-uglify":"^2.0.0","gulpclass":"^0.1.1","mocha":"^3.2.0","moment":"2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.7.0","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^4.0.2","tslint-stylish":"^2.1.0-beta","typescript":"^2.0.10"},"scripts":{"test":"gulp tests","package":"gulp package"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.2.2","_nodeVersion":"11.4.0","_npmVersion":"6.6.0","dist":{"shasum":"8f35a7ee6f46a184e238250b0b49c5be2ef9d3fd","size":71696,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.2.2.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmUser":{"name":"nonameprovided","email":"attila.olah@outlook.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/class-transformer_0.2.2_1557275425061_0.8682075026533389"},"_hasShrinkwrap":false,"publish_time":1557275425264,"deprecated":"This version has shipped with an issue where in some-cases your objets are not transformed properly. Please use the 0.2.0 version until 0.2.3 is released.","_cnpm_publish_time":1557275425264,"_cnpmcore_publish_time":"2021-12-16T12:03:55.458Z"},"0.2.1":{"name":"class-transformer","version":"0.2.1","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"@types/moment":"^2.13.0","@types/chai":"^3.4.34","@types/es6-shim":"^0.31.32","@types/mocha":"^2.2.33","@types/node":"0.0.2","@types/sinon":"^2.2.2","chai":"^4.2.0","chai-as-promised":"^7.1.1","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.0.0","gulp-mocha":"^3.0.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^8.1.3","gulp-typescript":"^3.1.3","gulp-uglify":"^2.0.0","gulpclass":"^0.1.1","mocha":"^3.2.0","moment":"2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.7.0","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^4.0.2","tslint-stylish":"^2.1.0-beta","typescript":"^2.0.10"},"scripts":{"test":"gulp tests","package":"gulp package"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.2.1","_nodeVersion":"11.4.0","_npmVersion":"6.6.0","dist":{"shasum":"d21188a1646e4706e0b5a9fbc5f5bfac11830976","size":70300,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.2.1.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmUser":{"name":"nonameprovided","email":"attila.olah@outlook.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/class-transformer_0.2.1_1557266730586_0.11327619618192486"},"_hasShrinkwrap":false,"publish_time":1557266730768,"deprecated":"This version has shipped with an issue where in some-cases your objets are not transformed properly. Please use the 0.2.0 version until 0.2.3 is released.","_cnpm_publish_time":1557266730768,"_cnpmcore_publish_time":"2021-12-16T12:03:55.906Z"},"0.2.0":{"name":"class-transformer","version":"0.2.0","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"@types/moment":"^2.13.0","@types/chai":"^3.4.34","@types/es6-shim":"^0.31.32","@types/mocha":"^2.2.33","@types/node":"0.0.2","@types/sinon":"^2.2.2","chai":"^3.4.1","chai-as-promised":"^6.0.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.0.0","gulp-mocha":"^3.0.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^7.0.1","gulp-typescript":"^3.1.3","gulp-uglify":"^2.0.0","gulpclass":"^0.1.1","mocha":"^3.2.0","moment":"2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.7.0","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^4.0.2","tslint-stylish":"^2.1.0-beta","typescript":"^2.0.10"},"scripts":{"test":"gulp tests","package":"gulp package"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.2.0","_npmVersion":"6.4.1","_nodeVersion":"11.0.0","_npmUser":{"name":"nonameprovided","email":"attila.olah@outlook.com"},"dist":{"shasum":"e54b34112e8ef7f913ef938c81fed8ed949fc9c7","size":68228,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.2.0.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/class-transformer_0.2.0_1541358408605_0.9849293881840135"},"_hasShrinkwrap":false,"publish_time":1541358408719,"_cnpm_publish_time":1541358408719,"_cnpmcore_publish_time":"2021-12-16T12:03:56.291Z"},"0.1.10":{"name":"class-transformer","version":"0.1.10","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"@types/moment":"^2.13.0","@types/chai":"^3.4.34","@types/es6-shim":"^0.31.32","@types/mocha":"^2.2.33","@types/node":"0.0.2","@types/sinon":"^2.2.2","chai":"^3.4.1","chai-as-promised":"^6.0.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.0.0","gulp-mocha":"^3.0.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^7.0.1","gulp-typescript":"^3.1.3","gulp-uglify":"^2.0.0","gulpclass":"^0.1.1","mocha":"^3.2.0","moment":"2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.7.0","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^4.0.2","tslint-stylish":"^2.1.0-beta","typescript":"^2.0.10"},"scripts":{"test":"gulp tests","package":"gulp package"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.10","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"nonameprovided","email":"attila.olah@outlook.com"},"dist":{"shasum":"350f168ebb4c1f87edb18b98dd973681fc20fff7","size":60543,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.10.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/class-transformer_0.1.10_1539768940170_0.7229441385355146"},"_hasShrinkwrap":false,"publish_time":1539768940364,"_cnpm_publish_time":1539768940364,"_cnpmcore_publish_time":"2021-12-16T12:03:56.734Z"},"0.1.9":{"name":"class-transformer","version":"0.1.9","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"@types/moment":"^2.13.0","@types/chai":"^3.4.34","@types/es6-shim":"^0.31.32","@types/mocha":"^2.2.33","@types/node":"0.0.2","@types/sinon":"^2.2.2","chai":"^3.4.1","chai-as-promised":"^6.0.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.0.0","gulp-mocha":"^3.0.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^7.0.1","gulp-typescript":"^3.1.3","gulp-uglify":"^2.0.0","gulpclass":"^0.1.1","mocha":"^3.2.0","moment":"2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.7.0","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^4.0.2","tslint-stylish":"^2.1.0-beta","typescript":"^2.0.10"},"scripts":{"test":"gulp tests","package":"gulp package"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.9","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"nonameprovided","email":"attila.olah@outlook.com"},"dist":{"shasum":"29977c528233ca014e6fd9523327ebd31d11ca54","size":56153,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.9.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/class-transformer-0.1.9.tgz_1517753088215_0.9565628708805889"},"directories":{},"publish_time":1517753089399,"_hasShrinkwrap":false,"_cnpm_publish_time":1517753089399,"_cnpmcore_publish_time":"2021-12-16T12:03:58.029Z"},"0.1.8":{"name":"class-transformer","version":"0.1.8","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"@types/moment":"^2.13.0","@types/chai":"^3.4.34","@types/es6-shim":"^0.31.32","@types/mocha":"^2.2.33","@types/node":"0.0.2","@types/sinon":"^2.2.2","chai":"^3.4.1","chai-as-promised":"^6.0.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.0.0","gulp-mocha":"^3.0.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^7.0.1","gulp-typescript":"^3.1.3","gulp-uglify":"^2.0.0","gulpclass":"^0.1.1","mocha":"^3.2.0","moment":"2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.7.0","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^4.0.2","tslint-stylish":"^2.1.0-beta","typescript":"^2.0.10"},"scripts":{"test":"gulp tests","package":"gulp package"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.8","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"be04dd2afb7b301e4c8c79c5349fedaac3d5a7e1","size":56781,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.8.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/class-transformer-0.1.8.tgz_1507023717766_0.6077826486434788"},"directories":{},"publish_time":1507023719335,"_hasShrinkwrap":false,"_cnpm_publish_time":1507023719335,"_cnpmcore_publish_time":"2021-12-16T12:03:58.452Z"},"0.1.7":{"name":"class-transformer","version":"0.1.7","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"@types/chai":"^3.4.34","@types/es6-shim":"^0.31.32","@types/mocha":"^2.2.33","@types/node":"0.0.2","@types/sinon":"^2.2.2","chai":"^3.4.1","chai-as-promised":"^6.0.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.0.0","gulp-mocha":"^3.0.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^7.0.1","gulp-typescript":"^3.1.3","gulp-uglify":"^2.0.0","gulpclass":"^0.1.1","mocha":"^3.2.0","moment":"2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.7.0","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^4.0.2","tslint-stylish":"^2.1.0-beta","typescript":"^2.0.10"},"scripts":{"test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.7","_shasum":"d577a7ce6fe83b766a447b2ba8c880eb5c9cd681","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.8.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"d577a7ce6fe83b766a447b2ba8c880eb5c9cd681","size":53647,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.7.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/class-transformer-0.1.7.tgz_1498571753881_0.08627645298838615"},"directories":{},"publish_time":1498571755147,"_hasShrinkwrap":false,"_cnpm_publish_time":1498571755147,"_cnpmcore_publish_time":"2021-12-16T12:03:58.770Z"},"0.1.6":{"name":"class-transformer","version":"0.1.6","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"@types/chai":"^3.4.34","@types/es6-shim":"^0.31.32","@types/mocha":"^2.2.33","@types/node":"0.0.2","chai":"^3.4.1","chai-as-promised":"^6.0.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.0.0","gulp-mocha":"^3.0.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^7.0.1","gulp-typescript":"^3.1.3","gulp-uglify":"^2.0.0","gulpclass":"^0.1.1","mocha":"^3.2.0","moment":"2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.7.0","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^4.0.2","tslint-stylish":"^2.1.0-beta","typescript":"^2.0.10"},"scripts":{"test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.6","_shasum":"1139c149311c0c84ded3c00e2a879e3479f60fa0","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"1139c149311c0c84ded3c00e2a879e3479f60fa0","size":53837,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.6.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.6.tgz_1484736882807_0.9151377493981272"},"directories":{},"publish_time":1484736883598,"_hasShrinkwrap":false,"_cnpm_publish_time":1484736883598,"_cnpmcore_publish_time":"2021-12-16T12:03:59.146Z"},"0.1.5":{"name":"class-transformer","version":"0.1.5","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"@types/chai":"^3.4.34","@types/es6-shim":"^0.31.32","@types/mocha":"^2.2.33","@types/node":"0.0.2","chai":"^3.4.1","chai-as-promised":"^6.0.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.0.0","gulp-mocha":"^3.0.1","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^7.0.1","gulp-typescript":"^3.1.3","gulp-uglify":"^2.0.0","gulpclass":"^0.1.1","mocha":"^3.2.0","moment":"2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.7.0","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^4.0.2","tslint-stylish":"^2.1.0-beta","typescript":"^2.0.10"},"scripts":{"test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.5","_shasum":"7cc7ae01d023787e3bccdaf27e5ad77a9c8b9b72","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"7cc7ae01d023787e3bccdaf27e5ad77a9c8b9b72","size":53896,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.5.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.5.tgz_1484735437219_0.009838303085416555"},"directories":{},"publish_time":1484735438027,"_hasShrinkwrap":false,"_cnpm_publish_time":1484735438027,"_cnpmcore_publish_time":"2021-12-16T12:03:59.680Z"},"0.1.4":{"name":"class-transformer","version":"0.1.4","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"@types/chai":"^3.4.34","@types/es6-shim":"^0.31.32","@types/mocha":"^2.2.33","@types/node":"0.0.2","chai":"^3.4.1","chai-as-promised":"^6.0.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^3.0.1","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^7.0.1","gulp-typescript":"^3.1.3","gulpclass":"^0.1.1","mocha":"^3.2.0","moment":"2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.7.0","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^4.0.2","tslint-stylish":"^2.1.0-beta","typescript":"^2.0.10"},"scripts":{"test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.4","_shasum":"03ac291bafc4f87495b37c6a809268c99c2a5848","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"03ac291bafc4f87495b37c6a809268c99c2a5848","size":24600,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.4.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.4.tgz_1484243520146_0.008023079484701157"},"directories":{},"publish_time":1484243522764,"_hasShrinkwrap":false,"_cnpm_publish_time":1484243522764,"_cnpmcore_publish_time":"2021-12-16T12:04:00.015Z"},"0.1.3":{"name":"class-transformer","version":"0.1.3","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"chai":"^3.4.1","chai-as-promised":"^5.3.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^6.0.1","gulp-typescript":"^2.13.6","gulpclass":"^0.1.1","mocha":"^2.5.3","moment":"^2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.6.4","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^3.13.0","tslint-stylish":"^2.1.0-beta","typescript":"^1.8.10","typings":"^1.3.2"},"scripts":{"test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.3","_shasum":"6cb4ed24953ee0223e5d98fed0b84c0d68775b2b","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"6cb4ed24953ee0223e5d98fed0b84c0d68775b2b","size":23461,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.3.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.3.tgz_1480591722909_0.19615805917419493"},"directories":{},"publish_time":1480591725137,"_hasShrinkwrap":false,"_cnpm_publish_time":1480591725137,"_cnpmcore_publish_time":"2021-12-16T12:04:00.268Z"},"0.1.2":{"name":"class-transformer","version":"0.1.2","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"chai":"^3.4.1","chai-as-promised":"^5.3.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^6.0.1","gulp-typescript":"^2.13.6","gulpclass":"^0.1.1","mocha":"^2.5.3","moment":"^2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.6.4","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^3.13.0","tslint-stylish":"^2.1.0-beta","typescript":"^1.8.10","typings":"^1.3.2"},"scripts":{"test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.2","_shasum":"fcd3fe8c2120c0adfe348f0b01cc54b1e4243e76","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.6.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"fcd3fe8c2120c0adfe348f0b01cc54b1e4243e76","size":23363,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.2.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.2.tgz_1477129310745_0.10101889073848724"},"directories":{},"publish_time":1477129312160,"_hasShrinkwrap":false,"_cnpm_publish_time":1477129312160,"_cnpmcore_publish_time":"2021-12-16T12:04:00.522Z"},"0.1.1":{"name":"class-transformer","version":"0.1.1","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"chai":"^3.4.1","chai-as-promised":"^5.3.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^6.0.1","gulp-typescript":"^2.13.6","gulpclass":"^0.1.1","mocha":"^2.5.3","moment":"^2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.6.4","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^3.13.0","tslint-stylish":"^2.1.0-beta","typescript":"^1.8.10","typings":"^1.3.2"},"scripts":{"test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.1","_shasum":"8dcb689d0f52ca87de462f8910fd48c1691066b1","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"8dcb689d0f52ca87de462f8910fd48c1691066b1","size":23022,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.1.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.1.tgz_1470140494540_0.21927611157298088"},"directories":{},"publish_time":1470140495658,"_hasShrinkwrap":false,"_cnpm_publish_time":1470140495658,"_cnpmcore_publish_time":"2021-12-16T12:04:00.769Z"},"0.1.0":{"name":"class-transformer","version":"0.1.0","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"chai":"^3.4.1","chai-as-promised":"^5.3.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^6.0.1","gulp-typescript":"^2.13.6","gulpclass":"^0.1.1","mocha":"^2.5.3","moment":"^2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.6.4","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^3.13.0","tslint-stylish":"^2.1.0-beta","typescript":"^1.8.10","typings":"^1.3.2"},"scripts":{"test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.0","_shasum":"7e005f59dada44bd04d0a664b1401abdbef171f4","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"7e005f59dada44bd04d0a664b1401abdbef171f4","size":23072,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.0.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.0.tgz_1469732602798_0.5311603490263224"},"directories":{},"publish_time":1469732604601,"_hasShrinkwrap":false,"_cnpm_publish_time":1469732604601,"_cnpmcore_publish_time":"2021-12-16T12:04:01.231Z"},"0.1.0-beta.10":{"name":"class-transformer","version":"0.1.0-beta.10","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"chai":"^3.4.1","chai-as-promised":"^5.3.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^6.0.1","gulp-typescript":"^2.13.6","gulpclass":"^0.1.1","mocha":"^2.5.3","moment":"^2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.6.4","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^3.13.0","tslint-stylish":"^2.1.0-beta","typescript":"^1.8.10","typings":"^1.3.2"},"scripts":{"test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.0-beta.10","_shasum":"404ebca40542663e5a047ccb7f1ef1ff56aa58a7","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"404ebca40542663e5a047ccb7f1ef1ff56aa58a7","size":22765,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.0-beta.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.0-beta.10.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.0-beta.10.tgz_1469726041507_0.28280782443471253"},"directories":{},"publish_time":1469726044324,"_hasShrinkwrap":false,"_cnpm_publish_time":1469726044324,"_cnpmcore_publish_time":"2021-12-16T12:04:01.972Z"},"0.1.0-beta.9":{"name":"class-transformer","version":"0.1.0-beta.9","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"chai":"^3.4.1","chai-as-promised":"^5.3.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^6.0.1","gulp-typescript":"^2.13.6","gulpclass":"^0.1.1","mocha":"^2.5.3","moment":"^2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.6.4","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^3.13.0","tslint-stylish":"^2.1.0-beta","typescript":"^1.8.10","typings":"^1.3.2"},"scripts":{"test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.0-beta.9","_shasum":"222f86db33baa635d6ead1dc02671e71dac2d947","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"222f86db33baa635d6ead1dc02671e71dac2d947","size":22233,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.0-beta.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.0-beta.9.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.0-beta.9.tgz_1469719161869_0.7596281100995839"},"directories":{},"publish_time":1469719163877,"_hasShrinkwrap":false,"_cnpm_publish_time":1469719163877,"_cnpmcore_publish_time":"2021-12-16T12:04:02.222Z"},"0.1.0-beta.8":{"name":"class-transformer","version":"0.1.0-beta.8","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"chai":"^3.4.1","chai-as-promised":"^5.3.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^6.0.1","gulp-typescript":"^2.13.6","gulpclass":"^0.1.1","mocha":"^2.5.3","moment":"^2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.6.4","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^3.13.0","tslint-stylish":"^2.1.0-beta","typescript":"^1.8.10","typings":"^1.3.2"},"scripts":{"test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.0-beta.8","_shasum":"f8aff31858be67544a24856913dda787722b488d","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"f8aff31858be67544a24856913dda787722b488d","size":22304,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.0-beta.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.0-beta.8.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.0-beta.8.tgz_1469685805356_0.5740959804970771"},"directories":{},"publish_time":1469685807375,"_hasShrinkwrap":false,"_cnpm_publish_time":1469685807375,"_cnpmcore_publish_time":"2021-12-16T12:04:02.796Z"},"0.1.0-beta.7":{"name":"class-transformer","version":"0.1.0-beta.7","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"chai":"^3.4.1","chai-as-promised":"^5.3.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^6.0.1","gulp-typescript":"^2.13.6","gulpclass":"^0.1.1","mocha":"^2.5.3","moment":"^2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.6.4","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^3.13.0","tslint-stylish":"^2.1.0-beta","typescript":"^1.8.10","typings":"^1.3.2"},"scripts":{"postinstall":"typings install","test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.0-beta.7","_shasum":"c8ab7cfba1d675ca48bfe603fdf51ad0816b5c89","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"c8ab7cfba1d675ca48bfe603fdf51ad0816b5c89","size":22325,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.0-beta.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.0-beta.7.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.0-beta.7.tgz_1469631320796_0.23885228857398033"},"directories":{},"publish_time":1469631323406,"_hasShrinkwrap":false,"_cnpm_publish_time":1469631323406,"_cnpmcore_publish_time":"2021-12-16T12:04:03.074Z","hasInstallScript":true},"0.1.0-beta.6":{"name":"class-transformer","version":"0.1.0-beta.6","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"chai":"^3.4.1","chai-as-promised":"^5.3.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^6.0.1","gulp-typescript":"^2.13.6","gulpclass":"^0.1.1","mocha":"^2.5.3","moment":"^2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.6.4","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^3.13.0","tslint-stylish":"^2.1.0-beta","typescript":"^1.8.10","typings":"^1.3.2"},"scripts":{"postinstall":"typings install","test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.0-beta.6","_shasum":"6f6f87a24bd7d69544f8e9407bba70bd5eee7a49","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"6f6f87a24bd7d69544f8e9407bba70bd5eee7a49","size":21948,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.0-beta.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.0-beta.6.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.0-beta.6.tgz_1469625048406_0.25202401890419424"},"directories":{},"publish_time":1469625052395,"_hasShrinkwrap":false,"_cnpm_publish_time":1469625052395,"_cnpmcore_publish_time":"2021-12-16T12:04:03.260Z","hasInstallScript":true},"0.1.0-beta.5":{"name":"class-transformer","version":"0.1.0-beta.5","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"chai":"^3.4.1","chai-as-promised":"^5.3.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^6.0.1","gulp-typescript":"^2.13.6","gulpclass":"^0.1.1","mocha":"^2.5.3","moment":"^2.14.1","reflect-metadata":"^0.1.3","remap-istanbul":"^0.6.4","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^3.13.0","tslint-stylish":"^2.1.0-beta","typescript":"^1.8.10","typings":"^1.3.2"},"scripts":{"postinstall":"typings install","test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.0-beta.5","_shasum":"7e7395c4a63c3ee761bed6a723042acc81a79e11","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"7e7395c4a63c3ee761bed6a723042acc81a79e11","size":20731,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.0-beta.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.0-beta.5.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.0-beta.5.tgz_1469620973245_0.372511564521119"},"directories":{},"publish_time":1469620975947,"_hasShrinkwrap":false,"_cnpm_publish_time":1469620975947,"_cnpmcore_publish_time":"2021-12-16T12:04:03.680Z","hasInstallScript":true},"0.1.0-beta.4":{"name":"class-transformer","version":"0.1.0-beta.4","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"chai":"^3.4.1","chai-as-promised":"^5.3.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^6.0.1","gulp-typescript":"^2.13.6","gulpclass":"^0.1.1","mocha":"^2.5.3","reflect-metadata":"^0.1.3","remap-istanbul":"^0.6.4","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^3.13.0","tslint-stylish":"^2.1.0-beta","typescript":"^1.8.10","typings":"^1.3.2"},"scripts":{"postinstall":"typings install","test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.0-beta.4","_shasum":"07aeac109e6a904a25337e189a0ec48bef6be538","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"07aeac109e6a904a25337e189a0ec48bef6be538","size":18856,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.0-beta.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.0-beta.4.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.0-beta.4.tgz_1469600864942_0.8095538625493646"},"directories":{},"publish_time":1469600866993,"_hasShrinkwrap":false,"_cnpm_publish_time":1469600866993,"_cnpmcore_publish_time":"2021-12-16T12:04:03.985Z","hasInstallScript":true},"0.1.0-beta.3":{"name":"class-transformer","version":"0.1.0-beta.3","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"chai":"^3.4.1","chai-as-promised":"^5.3.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^6.0.1","gulp-typescript":"^2.13.6","gulpclass":"^0.1.1","mocha":"^2.5.3","reflect-metadata":"^0.1.3","remap-istanbul":"^0.6.4","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^3.13.0","tslint-stylish":"^2.1.0-beta","typescript":"^1.8.10","typings":"^1.3.2"},"scripts":{"postinstall":"typings install","test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.0-beta.3","_shasum":"cc34c7be3434f0354e046c9b96a1ae9e5690ca33","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"cc34c7be3434f0354e046c9b96a1ae9e5690ca33","size":18749,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.0-beta.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.0-beta.3.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.0-beta.3.tgz_1469463217949_0.2519399805460125"},"directories":{},"publish_time":1469463220176,"_hasShrinkwrap":false,"_cnpm_publish_time":1469463220176,"_cnpmcore_publish_time":"2021-12-16T12:04:04.333Z","hasInstallScript":true},"0.1.0-beta.2":{"name":"class-transformer","version":"0.1.0-beta.2","description":"Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"chai":"^3.4.1","chai-as-promised":"^5.3.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^6.0.1","gulp-typescript":"^2.13.6","gulpclass":"^0.1.1","mocha":"^2.5.3","reflect-metadata":"^0.1.3","remap-istanbul":"^0.6.4","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^3.13.0","tslint-stylish":"^2.1.0-beta","typescript":"^1.8.10","typings":"^1.3.2"},"scripts":{"postinstall":"typings install","test":"gulp tests"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.0-beta.2","_shasum":"0bf2aaaa098a90e42963e48b9de83ae524ca766c","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"0bf2aaaa098a90e42963e48b9de83ae524ca766c","size":18734,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.0-beta.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.0-beta.2.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.0-beta.2.tgz_1469455374925_0.7189271117094904"},"directories":{},"publish_time":1469455377189,"_hasShrinkwrap":false,"_cnpm_publish_time":1469455377189,"_cnpmcore_publish_time":"2021-12-16T12:04:04.653Z","hasInstallScript":true},"0.1.0-beta.1":{"name":"class-transformer","version":"0.1.0-beta.1","description":"Transforms or serializes / deserializes objects from one shape into another based on class decorators","license":"MIT","private":false,"author":{"name":"Umed Khudoiberdiev","email":"pleerock.me@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/pleerock/class-transformer.git"},"bugs":{"url":"https://github.com/pleerock/class-transformer/issues"},"tags":["serialization","deserialization","serializer","typescript","object-to-class","typescript-serializer"],"dependencies":{},"devDependencies":{"chai":"^3.4.1","chai-as-promised":"^5.3.0","del":"^2.2.1","es6-shim":"^0.35.1","gulp":"^3.9.1","gulp-istanbul":"^1.0.0","gulp-mocha":"^2.2.0","gulp-replace":"^0.5.4","gulp-shell":"^0.5.1","gulp-sourcemaps":"^1.6.0","gulp-tslint":"^6.0.1","gulp-typescript":"^2.13.6","gulpclass":"^0.1.1","mocha":"^2.5.3","reflect-metadata":"^0.1.3","remap-istanbul":"^0.6.4","sinon":"^1.17.4","sinon-chai":"^2.8.0","tslint":"^3.13.0","tslint-stylish":"^2.1.0-beta","typescript":"^1.8.10","typings":"^1.3.2"},"homepage":"https://github.com/pleerock/class-transformer#readme","_id":"class-transformer@0.1.0-beta.1","scripts":{},"_shasum":"909805bb4e714f57b775fc3b8b94ad355f65e2fe","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"pleerock","email":"zarrhost@gmail.com"},"dist":{"shasum":"909805bb4e714f57b775fc3b8b94ad355f65e2fe","size":18516,"noattachment":false,"key":"/class-transformer/-/class-transformer-0.1.0-beta.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/class-transformer/download/class-transformer-0.1.0-beta.1.tgz"},"maintainers":[{"name":"nonameprovided","email":""},{"name":"typestack-release-bot","email":""}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/class-transformer-0.1.0-beta.1.tgz_1469446136415_0.6681787972338498"},"directories":{},"publish_time":1469446138565,"_hasShrinkwrap":false,"_cnpm_publish_time":1469446138565,"_cnpmcore_publish_time":"2021-12-16T12:04:04.968Z"}},"readme":"# class-transformer\n\n![Build Status](https://github.com/typestack/class-transformer/workflows/CI/badge.svg)\n[![codecov](https://codecov.io/gh/typestack/class-transformer/branch/develop/graph/badge.svg)](https://codecov.io/gh/typestack/class-transformer)\n[![npm version](https://badge.fury.io/js/class-transformer.svg)](https://badge.fury.io/js/class-transformer)\n\nIts ES6 and Typescript era. Nowadays you are working with classes and constructor objects more than ever.\nClass-transformer allows you to transform plain object to some instance of class and versa.\nAlso it allows to serialize / deserialize object based on criteria.\nThis tool is super useful on both frontend and backend.\n\nExample how to use with angular 2 in [plunker](http://plnkr.co/edit/Mja1ZYAjVySWASMHVB9R).\nSource code is available [here](https://github.com/pleerock/class-transformer-demo).\n\n## Table of contents\n\n- [What is class-transformer](#what-is-class-transformer)\n- [Installation](#installation)\n  - [Node.js](#nodejs)\n  - [Browser](#browser)\n- [Methods](#methods)\n  - [plainToClass](#plaintoclass)\n  - [plainToClassFromExist](#plaintoclassfromexist)\n  - [classToPlain](#classtoplain)\n  - [classToClass](#classtoclass)\n  - [serialize](#serialize)\n  - [deserialize and deserializeArray](#deserialize-and-deserializearray)\n- [Enforcing type-safe instance](#enforcing-type-safe-instance)\n- [Working with nested objects](#working-with-nested-objects)\n  - [Providing more than one type option](#providing-more-than-one-type-option)\n- [Exposing getters and method return values](#exposing-getters-and-method-return-values)\n- [Exposing properties with different names](#exposing-properties-with-different-names)\n- [Skipping specific properties](#skipping-specific-properties)\n- [Skipping depend of operation](#skipping-depend-of-operation)\n- [Skipping all properties of the class](#skipping-all-properties-of-the-class)\n- [Skipping private properties, or some prefixed properties](#skipping-private-properties-or-some-prefixed-properties)\n- [Using groups to control excluded properties](#using-groups-to-control-excluded-properties)\n- [Using versioning to control exposed and excluded properties](#using-versioning-to-control-exposed-and-excluded-properties)\n- [Сonverting date strings into Date objects](#сonverting-date-strings-into-date-objects)\n- [Working with arrays](#working-with-arrays)\n- [Additional data transformation](#additional-data-transformation)\n  - [Basic usage](#basic-usage)\n  - [Advanced usage](#advanced-usage)\n- [Other decorators](#other-decorators)\n- [Working with generics](#working-with-generics)\n- [Implicit type conversion](#implicit-type-conversion)\n- [How does it handle circular references?](#how-does-it-handle-circular-references)\n- [Example with Angular2](#example-with-angular2)\n- [Samples](#samples)\n- [Release notes](#release-notes)\n\n## What is class-transformer[⬆](#table-of-contents)\n\nIn JavaScript there are two types of objects:\n\n- plain (literal) objects\n- class (constructor) objects\n\nPlain objects are objects that are instances of `Object` class.\nSometimes they are called **literal** objects, when created via `{}` notation.\nClass objects are instances of classes with own defined constructor, properties and methods.\nUsually you define them via `class` notation.\n\nSo, what is the problem?\n\nSometimes you want to transform plain javascript object to the ES6 **classes** you have.\nFor example, if you are loading a json from your backend, some api or from a json file,\nand after you `JSON.parse` it you have a plain javascript object, not instance of class you have.\n\nFor example you have a list of users in your `users.json` that you are loading:\n\n```json\n[\n  {\n    \"id\": 1,\n    \"firstName\": \"Johny\",\n    \"lastName\": \"Cage\",\n    \"age\": 27\n  },\n  {\n    \"id\": 2,\n    \"firstName\": \"Ismoil\",\n    \"lastName\": \"Somoni\",\n    \"age\": 50\n  },\n  {\n    \"id\": 3,\n    \"firstName\": \"Luke\",\n    \"lastName\": \"Dacascos\",\n    \"age\": 12\n  }\n]\n```\n\nAnd you have a `User` class:\n\n```typescript\nexport class User {\n  id: number;\n  firstName: string;\n  lastName: string;\n  age: number;\n\n  getName() {\n    return this.firstName + ' ' + this.lastName;\n  }\n\n  isAdult() {\n    return this.age > 36 && this.age < 60;\n  }\n}\n```\n\nYou are assuming that you are downloading users of type `User` from `users.json` file and may want to write\nfollowing code:\n\n```typescript\nfetch('users.json').then((users: User[]) => {\n  // you can use users here, and type hinting also will be available to you,\n  //  but users are not actually instances of User class\n  // this means that you can't use methods of User class\n});\n```\n\nIn this code you can use `users[0].id`, you can also use `users[0].firstName` and `users[0].lastName`.\nHowever you cannot use `users[0].getName()` or `users[0].isAdult()` because \"users\" actually is\narray of plain javascript objects, not instances of User object.\nYou actually lied to compiler when you said that its `users: User[]`.\n\nSo what to do? How to make a `users` array of instances of `User` objects instead of plain javascript objects?\nSolution is to create new instances of User object and manually copy all properties to new objects.\nBut things may go wrong very fast once you have a more complex object hierarchy.\n\nAlternatives? Yes, you can use class-transformer. Purpose of this library is to help you to map your plain javascript\nobjects to the instances of classes you have.\n\nThis library also great for models exposed in your APIs,\nbecause it provides a great tooling to control what your models are exposing in your API.\nHere is an example how it will look like:\n\n```typescript\nfetch('users.json').then((users: Object[]) => {\n  const realUsers = plainToClass(User, users);\n  // now each user in realUsers is an instance of User class\n});\n```\n\nNow you can use `users[0].getName()` and `users[0].isAdult()` methods.\n\n## Installation[⬆](#table-of-contents)\n\n### Node.js[⬆](#table-of-contents)\n\n1. Install module:\n\n   `npm install class-transformer --save`\n\n2. `reflect-metadata` shim is required, install it too:\n\n   `npm install reflect-metadata --save`\n\n   and make sure to import it in a global place, like app.ts:\n\n   ```typescript\n   import 'reflect-metadata';\n   ```\n\n3. ES6 features are used, if you are using old version of node.js you may need to install es6-shim:\n\n   `npm install es6-shim --save`\n\n   and import it in a global place like app.ts:\n\n   ```typescript\n   import 'es6-shim';\n   ```\n\n### Browser[⬆](#table-of-contents)\n\n1. Install module:\n\n   `npm install class-transformer --save`\n\n2. `reflect-metadata` shim is required, install it too:\n\n   `npm install reflect-metadata --save`\n\n   add `<script>` to reflect-metadata in the head of your `index.html`:\n\n   ```html\n   <html>\n     <head>\n       <!-- ... -->\n       <script src=\"node_modules/reflect-metadata/Reflect.js\"></script>\n     </head>\n     <!-- ... -->\n   </html>\n   ```\n\n   If you are using angular 2 you should already have this shim installed.\n\n3. If you are using system.js you may want to add this into `map` and `package` config:\n\n   ```json\n   {\n     \"map\": {\n       \"class-transformer\": \"node_modules/class-transformer\"\n     },\n     \"packages\": {\n       \"class-transformer\": { \"main\": \"index.js\", \"defaultExtension\": \"js\" }\n     }\n   }\n   ```\n\n## Methods[⬆](#table-of-contents)\n\n### plainToClass[⬆](#table-of-contents)\n\nThis method transforms a plain javascript object to instance of specific class.\n\n```typescript\nimport { plainToClass } from 'class-transformer';\n\nlet users = plainToClass(User, userJson); // to convert user plain object a single user. also supports arrays\n```\n\n### plainToClassFromExist[⬆](#table-of-contents)\n\nThis method transforms a plain object into an instance using an already filled Object which is an instance of the target class.\n\n```typescript\nconst defaultUser = new User();\ndefaultUser.role = 'user';\n\nlet mixedUser = plainToClassFromExist(defaultUser, user); // mixed user should have the value role = user when no value is set otherwise.\n```\n\n### classToPlain[⬆](#table-of-contents)\n\nThis method transforms your class object back to plain javascript object, that can be `JSON.stringify` later.\n\n```typescript\nimport { classToPlain } from 'class-transformer';\nlet photo = classToPlain(photo);\n```\n\n### classToClass[⬆](#table-of-contents)\n\nThis method transforms your class object into a new instance of the class object.\nThis may be treated as deep clone of your objects.\n\n```typescript\nimport { classToClass } from 'class-transformer';\nlet photo = classToClass(photo);\n```\n\nYou can also use an `ignoreDecorators` option in transformation options to ignore all decorators you classes is using.\n\n### serialize[⬆](#table-of-contents)\n\nYou can serialize your model right to json using `serialize` method:\n\n```typescript\nimport { serialize } from 'class-transformer';\nlet photo = serialize(photo);\n```\n\n`serialize` works with both arrays and non-arrays.\n\n### deserialize and deserializeArray[⬆](#table-of-contents)\n\nYou can deserialize your model from json using the `deserialize` method:\n\n```typescript\nimport { deserialize } from 'class-transformer';\nlet photo = deserialize(Photo, photo);\n```\n\nTo make deserialization work with arrays, use the `deserializeArray` method:\n\n```typescript\nimport { deserializeArray } from 'class-transformer';\nlet photos = deserializeArray(Photo, photos);\n```\n\n## Enforcing type-safe instance[⬆](#table-of-contents)\n\nThe default behaviour of the `plainToClass` method is to set _all_ properties from the plain object,\neven those which are not specified in the class.\n\n```typescript\nimport { plainToClass } from 'class-transformer';\n\nclass User {\n  id: number;\n  firstName: string;\n  lastName: string;\n}\n\nconst fromPlainUser = {\n  unkownProp: 'hello there',\n  firstName: 'Umed',\n  lastName: 'Khudoiberdiev',\n};\n\nconsole.log(plainToClass(User, fromPlainUser));\n\n// User {\n//   unkownProp: 'hello there',\n//   firstName: 'Umed',\n//   lastName: 'Khudoiberdiev',\n// }\n```\n\nIf this behaviour does not suit your needs, you can use the `excludeExtraneousValues` option\nin the `plainToClass` method while _exposing all your class properties_ as a requirement.\n\n```typescript\nimport { Expose, plainToClass } from 'class-transformer';\n\nclass User {\n  @Expose() id: number;\n  @Expose() firstName: string;\n  @Expose() lastName: string;\n}\n\nconst fromPlainUser = {\n  unkownProp: 'hello there',\n  firstName: 'Umed',\n  lastName: 'Khudoiberdiev',\n};\n\nconsole.log(plainToClass(User, fromPlainUser, { excludeExtraneousValues: true }));\n\n// User {\n//   id: undefined,\n//   firstName: 'Umed',\n//   lastName: 'Khudoiberdiev'\n// }\n```\n\n## Working with nested objects[⬆](#table-of-contents)\n\nWhen you are trying to transform objects that have nested objects,\nit's required to known what type of object you are trying to transform.\nSince Typescript does not have good reflection abilities yet,\nwe should implicitly specify what type of object each property contain.\nThis is done using `@Type` decorator.\n\nLets say we have an album with photos.\nAnd we are trying to convert album plain object to class object:\n\n```typescript\nimport { Type, plainToClass } from 'class-transformer';\n\nexport class Album {\n  id: number;\n\n  name: string;\n\n  @Type(() => Photo)\n  photos: Photo[];\n}\n\nexport class Photo {\n  id: number;\n  filename: string;\n}\n\nlet album = plainToClass(Album, albumJson);\n// now album is Album object with Photo objects inside\n```\n\n### Providing more than one type option[⬆](#table-of-contents)\n\nIn case the nested object can be of different types, you can provide an additional options object,\nthat specifies a discriminator. The discriminator option must define a `property` that holds the subtype\nname for the object and the possible `subTypes` that the nested object can converted to. A sub type\nhas a `value`, that holds the constructor of the Type and the `name`, that can match with the `property`\nof the discriminator.\n\nLets say we have an album that has a top photo. But this photo can be of certain different types.\nAnd we are trying to convert album plain object to class object. The plain object input has to define\nthe additional property `__type`. This property is removed during transformation by default:\n\n**JSON input**:\n\n```json\n{\n  \"id\": 1,\n  \"name\": \"foo\",\n  \"topPhoto\": {\n    \"id\": 9,\n    \"filename\": \"cool_wale.jpg\",\n    \"depth\": 1245,\n    \"__type\": \"underwater\"\n  }\n}\n```\n\n```typescript\nimport { Type, plainToClass } from 'class-transformer';\n\nexport abstract class Photo {\n  id: number;\n  filename: string;\n}\n\nexport class Landscape extends Photo {\n  panorama: boolean;\n}\n\nexport class Portrait extends Photo {\n  person: Person;\n}\n\nexport class UnderWater extends Photo {\n  depth: number;\n}\n\nexport class Album {\n  id: number;\n  name: string;\n\n  @Type(() => Photo, {\n    discriminator: {\n      property: '__type',\n      subTypes: [\n        { value: Landscape, name: 'landscape' },\n        { value: Portrait, name: 'portrait' },\n        { value: UnderWater, name: 'underwater' },\n      ],\n    },\n  })\n  topPhoto: Landscape | Portrait | UnderWater;\n}\n\nlet album = plainToClass(Album, albumJson);\n// now album is Album object with a UnderWater object without `__type` property.\n```\n\nHint: The same applies for arrays with different sub types. Moreover you can specify `keepDiscriminatorProperty: true`\nin the options to keep the discriminator property also inside your resulting class.\n\n## Exposing getters and method return values[⬆](#table-of-contents)\n\nYou can expose what your getter or method return by setting an `@Expose()` decorator to those getters or methods:\n\n```typescript\nimport { Expose } from 'class-transformer';\n\nexport class User {\n  id: number;\n  firstName: string;\n  lastName: string;\n  password: string;\n\n  @Expose()\n  get name() {\n    return this.firstName + ' ' + this.lastName;\n  }\n\n  @Expose()\n  getFullName() {\n    return this.firstName + ' ' + this.lastName;\n  }\n}\n```\n\n## Exposing properties with different names[⬆](#table-of-contents)\n\nIf you want to expose some of the properties with a different name,\nyou can do that by specifying a `name` option to `@Expose` decorator:\n\n```typescript\nimport { Expose } from 'class-transformer';\n\nexport class User {\n  @Expose({ name: 'uid' })\n  id: number;\n\n  firstName: string;\n\n  lastName: string;\n\n  @Expose({ name: 'secretKey' })\n  password: string;\n\n  @Expose({ name: 'fullName' })\n  getFullName() {\n    return this.firstName + ' ' + this.lastName;\n  }\n}\n```\n\n## Skipping specific properties[⬆](#table-of-contents)\n\nSometimes you want to skip some properties during transformation.\nThis can be done using `@Exclude` decorator:\n\n```typescript\nimport { Exclude } from 'class-transformer';\n\nexport class User {\n  id: number;\n\n  email: string;\n\n  @Exclude()\n  password: string;\n}\n```\n\nNow when you transform a User, the `password` property will be skipped and not be included in the transformed result.\n\n## Skipping depend of operation[⬆](#table-of-contents)\n\nYou can control on what operation you will exclude a property. Use `toClassOnly` or `toPlainOnly` options:\n\n```typescript\nimport { Exclude } from 'class-transformer';\n\nexport class User {\n  id: number;\n\n  email: string;\n\n  @Exclude({ toPlainOnly: true })\n  password: string;\n}\n```\n\nNow `password` property will be excluded only during `classToPlain` operation. Vice versa, use the `toClassOnly` option.\n\n## Skipping all properties of the class[⬆](#table-of-contents)\n\nYou can skip all properties of the class, and expose only those are needed explicitly:\n\n```typescript\nimport { Exclude, Expose } from 'class-transformer';\n\n@Exclude()\nexport class User {\n  @Expose()\n  id: number;\n\n  @Expose()\n  email: string;\n\n  password: string;\n}\n```\n\nNow `id` and `email` will be exposed, and password will be excluded during transformation.\nAlternatively, you can set exclusion strategy during transformation:\n\n```typescript\nimport { classToPlain } from 'class-transformer';\nlet photo = classToPlain(photo, { strategy: 'excludeAll' });\n```\n\nIn this case you don't need to `@Exclude()` a whole class.\n\n## Skipping private properties, or some prefixed properties[⬆](#table-of-contents)\n\nIf you name your private properties with a prefix, lets say with `_`,\nthen you can exclude such properties from transformation too:\n\n```typescript\nimport { classToPlain } from 'class-transformer';\nlet photo = classToPlain(photo, { excludePrefixes: ['_'] });\n```\n\nThis will skip all properties that start with `_` prefix.\nYou can pass any number of prefixes and all properties that begin with these prefixes will be ignored.\nFor example:\n\n```typescript\nimport { Expose, classToPlain } from 'class-transformer';\n\nexport class User {\n  id: number;\n  private _firstName: string;\n  private _lastName: string;\n  _password: string;\n\n  setName(firstName: string, lastName: string) {\n    this._firstName = firstName;\n    this._lastName = lastName;\n  }\n\n  @Expose()\n  get name() {\n    return this._firstName + ' ' + this._lastName;\n  }\n}\n\nconst user = new User();\nuser.id = 1;\nuser.setName('Johny', 'Cage');\nuser._password = '123';\n\nconst plainUser = classToPlain(user, { excludePrefixes: ['_'] });\n// here plainUser will be equal to\n// { id: 1, name: \"Johny Cage\" }\n```\n\n## Using groups to control excluded properties[⬆](#table-of-contents)\n\nYou can use groups to control what data will be exposed and what will not be:\n\n```typescript\nimport { Exclude, Expose, classToPlain } from 'class-transformer';\n\nexport class User {\n  id: number;\n\n  name: string;\n\n  @Expose({ groups: ['user', 'admin'] }) // this means that this data will be exposed only to users and admins\n  email: string;\n\n  @Expose({ groups: ['user'] }) // this means that this data will be exposed only to users\n  password: string;\n}\n\nlet user1 = classToPlain(user, { groups: ['user'] }); // will contain id, name, email and password\nlet user2 = classToPlain(user, { groups: ['admin'] }); // will contain id, name and email\n```\n\n## Using versioning to control exposed and excluded properties[⬆](#table-of-contents)\n\nIf you are building an API that has different versions, class-transformer has extremely useful tools for that.\nYou can control which properties of your model should be exposed or excluded in what version. Example:\n\n```typescript\nimport { Exclude, Expose, classToPlain } from 'class-transformer';\n\nexport class User {\n  id: number;\n\n  name: string;\n\n  @Expose({ since: 0.7, until: 1 }) // this means that this property will be exposed for version starting from 0.7 until 1\n  email: string;\n\n  @Expose({ since: 2.1 }) // this means that this property will be exposed for version starting from 2.1\n  password: string;\n}\n\nlet user1 = classToPlain(user, { version: 0.5 }); // will contain id and name\nlet user2 = classToPlain(user, { version: 0.7 }); // will contain id, name and email\nlet user3 = classToPlain(user, { version: 1 }); // will contain id and name\nlet user4 = classToPlain(user, { version: 2 }); // will contain id and name\nlet user5 = classToPlain(user, { version: 2.1 }); // will contain id, name and password\n```\n\n## Сonverting date strings into Date objects[⬆](#table-of-contents)\n\nSometimes you have a Date in your plain javascript object received in a string format.\nAnd you want to create a real javascript Date object from it.\nYou can do it simply by passing a Date object to the `@Type` decorator:\n\n```typescript\nimport { Type } from 'class-transformer';\n\nexport class User {\n  id: number;\n\n  email: string;\n\n  password: string;\n\n  @Type(() => Date)\n  registrationDate: Date;\n}\n```\n\nSame technique can be used with `Number`, `String`, `Boolean`\nprimitive types when you want to convert your values into these types.\n\n## Working with arrays[⬆](#table-of-contents)\n\nWhen you are using arrays you must provide a type of the object that array contains.\nThis type, you specify in a `@Type()` decorator:\n\n```typescript\nimport { Type } from 'class-transformer';\n\nexport class Photo {\n  id: number;\n\n  name: string;\n\n  @Type(() => Album)\n  albums: Album[];\n}\n```\n\nYou can also use custom array types:\n\n```typescript\nimport { Type } from 'class-transformer';\n\nexport class AlbumCollection extends Array<Album> {\n  // custom array functions ...\n}\n\nexport class Photo {\n  id: number;\n\n  name: string;\n\n  @Type(() => Album)\n  albums: AlbumCollection;\n}\n```\n\nLibrary will handle proper transformation automatically.\n\nES6 collections `Set` and `Map` also require the `@Type` decorator:\n\n```typescript\nexport class Skill {\n  name: string;\n}\n\nexport class Weapon {\n  name: string;\n  range: number;\n}\n\nexport class Player {\n  name: string;\n\n  @Type(() => Skill)\n  skills: Set<Skill>;\n\n  @Type(() => Weapon)\n  weapons: Map<string, Weapon>;\n}\n```\n\n## Additional data transformation[⬆](#table-of-contents)\n\n### Basic usage[⬆](#table-of-contents)\n\nYou can perform additional data transformation using `@Transform` decorator.\nFor example, you want to make your `Date` object to be a `moment` object when you are\ntransforming object from plain to class:\n\n```typescript\nimport { Transform } from 'class-transformer';\nimport * as moment from 'moment';\nimport { Moment } from 'moment';\n\nexport class Photo {\n  id: number;\n\n  @Type(() => Date)\n  @Transform(({ value }) => moment(value), { toClassOnly: true })\n  date: Moment;\n}\n```\n\nNow when you call `plainToClass` and send a plain representation of the Photo object,\nit will convert a date value in your photo object to moment date.\n`@Transform` decorator also supports groups and versioning.\n\n### Advanced usage[⬆](#table-of-contents)\n\nThe `@Transform` decorator is given more arguments to let you configure how you want the transformation to be done.\n\n```ts\n@Transform(({ value, key, obj, type }) => value)\n```\n\n| Argument  | Description                                             |\n| --------- | ------------------------------------------------------- |\n| `value`   | The property value before the transformation.           |\n| `key`     | The name of the transformed property.                   |\n| `obj`     | The transformation source object.                       |\n| `type`    | The transformation type.                                |\n| `options` | The options object passed to the transformation method. |\n\n## Other decorators[⬆](#table-of-contents)\n\n| Signature                | Example                                              | Description                                                                           |\n| ------------------------ | ---------------------------------------------------- | ------------------------------------------------------------------------------------- |\n| `@TransformClassToPlain` | `@TransformClassToPlain({ groups: [\"user\"] })`       | Transform the method return with classToPlain and expose the properties on the class. |\n| `@TransformClassToClass` | `@TransformClassToClass({ groups: [\"user\"] })`       | Transform the method return with classToClass and expose the properties on the class. |\n| `@TransformPlainToClass` | `@TransformPlainToClass(User, { groups: [\"user\"] })` | Transform the method return with plainToClass and expose the properties on the class. |\n\nThe above decorators accept one optional argument:\nClassTransformOptions - The transform options like groups, version, name\n\nAn example:\n\n```typescript\n@Exclude()\nclass User {\n  id: number;\n\n  @Expose()\n  firstName: string;\n\n  @Expose()\n  lastName: string;\n\n  @Expose({ groups: ['user.email'] })\n  email: string;\n\n  password: string;\n}\n\nclass UserController {\n  @TransformClassToPlain({ groups: ['user.email'] })\n  getUser() {\n    const user = new User();\n    user.firstName = 'Snir';\n    user.lastName = 'Segal';\n    user.password = 'imnosuperman';\n\n    return user;\n  }\n}\n\nconst controller = new UserController();\nconst user = controller.getUser();\n```\n\nthe `user` variable will contain only firstName,lastName, email properties because they are\nthe exposed variables. email property is also exposed because we metioned the group \"user.email\".\n\n## Working with generics[⬆](#table-of-contents)\n\nGenerics are not supported because TypeScript does not have good reflection abilities yet.\nOnce TypeScript team provide us better runtime type reflection tools, generics will be implemented.\nThere are some tweaks however you can use, that maybe can solve your problem.\n[Checkout this example.](https://github.com/pleerock/class-transformer/tree/master/sample/sample4-generics)\n\n## Implicit type conversion[⬆](#table-of-contents)\n\n> **NOTE** If you use class-validator together with class-transformer you propably DON'T want to enable this function.\n\nEnables automatic conversion between built-in types based on type information provided by Typescript. Disabled by default.\n\n```ts\nimport { IsString } from 'class-validator';\n\nclass MyPayload {\n  @IsString()\n  prop: string;\n}\n\nconst result1 = plainToClass(MyPayload, { prop: 1234 }, { enableImplicitConversion: true });\nconst result2 = plainToClass(MyPayload, { prop: 1234 }, { enableImplicitConversion: false });\n\n/**\n *  result1 will be `{ prop: \"1234\" }` - notice how the prop value has been converted to string.\n *  result2 will be `{ prop: 1234 }` - default behaviour\n */\n```\n\n## How does it handle circular references?[⬆](#table-of-contents)\n\nCircular references are ignored.\nFor example, if you are transforming class `User` that contains property `photos` with type of `Photo`,\nand `Photo` contains link `user` to its parent `User`, then `user` will be ignored during transformation.\nCircular references are not ignored only during `classToClass` operation.\n\n## Example with Angular2[⬆](#table-of-contents)\n\nLets say you want to download users and want them automatically to be mapped to the instances of `User` class.\n\n```typescript\nimport { plainToClass } from 'class-transformer';\n\nthis.http\n  .get('users.json')\n  .map(res => res.json())\n  .map(res => plainToClass(User, res as Object[]))\n  .subscribe(users => {\n    // now \"users\" is type of User[] and each user has getName() and isAdult() methods available\n    console.log(users);\n  });\n```\n\nYou can also inject a class `ClassTransformer` as a service in `providers`, and use its methods.\n\nExample how to use with angular 2 in [plunker](http://plnkr.co/edit/Mja1ZYAjVySWASMHVB9R).\nSource code is [here](https://github.com/pleerock/class-transformer-demo).\n\n## Samples[⬆](#table-of-contents)\n\nTake a look on samples in [./sample](https://github.com/pleerock/class-transformer/tree/master/sample) for more examples of\nusages.\n\n## Release notes[⬆](#table-of-contents)\n\nSee information about breaking changes and release notes [here](https://github.com/typestack/class-transformer/blob/master/CHANGELOG.md).\n","_attachments":{},"homepage":"https://github.com/typestack/class-transformer#readme","bugs":{"url":"https://github.com/typestack/class-transformer/issues"},"license":"MIT"}