{"_id":"serialzr","_rev":"26-feceaa5d4fcf78f33ebf830bf7db7b0f","name":"serialzr","dist-tags":{"latest":"1.9.3"},"versions":{"1.0.1":{"name":"serialzr","version":"1.0.1","license":"MIT","_id":"serialzr@1.0.1","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"dist":{"shasum":"55781014f416eadfdba93cd2ee548bfec70885d1","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.0.1.tgz","fileCount":84,"integrity":"sha512-4xOVpvvTQgRtWxCA6uYOKR9QzbaRIkwEq829iNo0bD/jVG2iWJYAPyTNeMhx8NrX3HDXVNLHcY0W7+DnpiqmSw==","signatures":[{"sig":"MEUCIQCrcsqhV8tDKTZy7GX4DQXdqr/EB2BTz9Mx7QB7X0KfrAIgcEgEZ35vCsYFdiyjo9XQex1cbSmPYali+CwLCpHwNGY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":199680},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"13a1d34bad430fc95055156818374ed654287f24","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"nyc mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"_npmVersion":"9.8.1","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"_nodeVersion":"18.18.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","tsx":"^4.7.0","chai":"^4.3.10","mocha":"^10.2.0","ts-patch":"^3.1.1","chai-spies":"^1.1.0","typescript":"^5.3.3","@types/chai":"^4.3.11","@types/node":"^18.0.3","chai-subset":"^1.6.0","@types/mocha":"^10.0.6","@tsconfig/node18":"^18.2.2","chai-as-promised":"^7.1.1","@types/chai-spies":"^1.0.6","@types/chai-subset":"^1.3.5","@tsconfig/strictest":"^2.0.2","@types/chai-as-promised":"^7.1.8","typescript-transform-paths":"^3.4.6"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.0.1_1710740747793_0.030690731019161532","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"serialzr","version":"1.0.2","license":"MIT","_id":"serialzr@1.0.2","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"homepage":"https://github.com/l00k/serialzr#readme","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"dist":{"shasum":"f083e40ccea0fa76bf9232a06a869a759b82c97a","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.0.2.tgz","fileCount":84,"integrity":"sha512-c3MDT+l1Smmnng8S1A6yAJSDCLrVWRB18+Ps0P/5W1tlGkmpioDWtaDwYNEg6wyFgPrCf0Y8dW+edYKuGThxKQ==","signatures":[{"sig":"MEYCIQCevPOjJoktDDhZOzdKOtABOSY3aLMdjVKbMFgUBFlTnwIhAPlz8kcz01yy4R8WaTvkPDJDpvA3fOHnOmacbCn9HSYy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":199788},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"13a1d34bad430fc95055156818374ed654287f24","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"nyc mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"repository":{"url":"git+https://github.com/l00k/serialzr.git","type":"git"},"_npmVersion":"9.8.1","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"_nodeVersion":"18.18.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","tsx":"^4.7.0","chai":"^4.3.10","mocha":"^10.2.0","ts-patch":"^3.1.1","chai-spies":"^1.1.0","typescript":"^5.3.3","@types/chai":"^4.3.11","@types/node":"^18.0.3","chai-subset":"^1.6.0","@types/mocha":"^10.0.6","@tsconfig/node18":"^18.2.2","chai-as-promised":"^7.1.1","@types/chai-spies":"^1.0.6","@types/chai-subset":"^1.3.5","@tsconfig/strictest":"^2.0.2","@types/chai-as-promised":"^7.1.8","typescript-transform-paths":"^3.4.6"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.0.2_1710741016113_0.4836689064959663","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"serialzr","version":"1.1.0","license":"MIT","_id":"serialzr@1.1.0","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"homepage":"https://github.com/l00k/serialzr#readme","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"dist":{"shasum":"c5261d65e60094ef12fa50ffb39c678af21e77a6","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.1.0.tgz","fileCount":85,"integrity":"sha512-8dTz3rxrlNDqPd3ycpJTvEO6Du2gdy5MCYcDxfTLAx6b9jvHzfVaxIYprvDlNiEVtGAu9uU7wIunsYzXqgfaMQ==","signatures":[{"sig":"MEYCIQCcoKx8e7jyeHEVm/xZWphdQ9MWLZxdazpOoy7xB4IHlQIhAJaSu5Eapc3z5p5iYcZUnxYx1E0dkWU4nK3l1U3fqO+k","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":200413},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"62cbb5c39004916e829a55f305a728a5961e4f36","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"nyc mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"repository":{"url":"git+https://github.com/l00k/serialzr.git","type":"git"},"_npmVersion":"9.8.1","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"_nodeVersion":"18.18.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","tsx":"^4.7.0","chai":"^4.3.10","mocha":"^10.2.0","ts-patch":"^3.1.1","chai-spies":"^1.1.0","typescript":"^5.3.3","@types/chai":"^4.3.11","@types/node":"^18.0.3","chai-subset":"^1.6.0","@types/mocha":"^10.0.6","@tsconfig/node18":"^18.2.2","chai-as-promised":"^7.1.1","@types/chai-spies":"^1.0.6","@types/chai-subset":"^1.3.5","@tsconfig/strictest":"^2.0.2","@types/chai-as-promised":"^7.1.8","typescript-transform-paths":"^3.4.6"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.1.0_1710747457540_0.45825512863395","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"serialzr","version":"1.1.1","license":"MIT","_id":"serialzr@1.1.1","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"homepage":"https://github.com/l00k/serialzr#readme","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"dist":{"shasum":"43eaaa4fda13e245554a4ad5ab87db47afbdd437","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.1.1.tgz","fileCount":42,"integrity":"sha512-YisJmKaLuFVHHyLWomenXYCtbBJ3vyBNkNzhFWEiOFvQNLDl0YFeoknpDHix6BdVfgyOpMYT4LBF3bfuyO5lIw==","signatures":[{"sig":"MEUCIBAO9OiFCtstS+ar0I0e9iYQW2cwRTO8Vs/JIMHorpktAiEAoxJsBYxbpEHeTR68o1Hbq6FWeQyOqyzC/KGL529XbhA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58315},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"ac2dfcefcba03074cb5704416ebeb506834c45be","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"nyc mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"repository":{"url":"git+https://github.com/l00k/serialzr.git","type":"git"},"_npmVersion":"10.2.3","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"_nodeVersion":"20.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","tsx":"^4.7.0","chai":"^4.3.10","mocha":"^10.2.0","ts-patch":"^3.1.1","chai-spies":"^1.1.0","typescript":"^5.3.3","@types/chai":"^4.3.11","@types/node":"^18.0.3","chai-subset":"^1.6.0","@types/mocha":"^10.0.6","@tsconfig/node18":"^18.2.2","chai-as-promised":"^7.1.1","@types/chai-spies":"^1.0.6","@types/chai-subset":"^1.3.5","@tsconfig/strictest":"^2.0.2","@types/chai-as-promised":"^7.1.8","typescript-transform-paths":"^3.4.6"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.1.1_1710748335896_0.34196984679700404","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"serialzr","version":"1.1.2","license":"MIT","_id":"serialzr@1.1.2","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"homepage":"https://github.com/l00k/serialzr#readme","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"dist":{"shasum":"814338cf1657ff33d6f4272852441d84e5672561","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.1.2.tgz","fileCount":42,"integrity":"sha512-MSkLfC5koekY+WF3XZBw9S+eZ8/jb9Nr+MFhWPIOshly3Pv2YCEhk4ciSOd8iXuW8sJ/lMGdnkrS069ZNPvG3Q==","signatures":[{"sig":"MEYCIQD0n0kW1DL4yHXSfHjcax1yJXssHHbgv4VSHTAhV3tgbAIhAPd47xQEdW882Zj0dVvkOykeMMiHHHh31hpF/wtCWtCh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58416},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"9ec7deec871941778c3083292d4fa16eb91d8dff","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"nyc mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"repository":{"url":"git+https://github.com/l00k/serialzr.git","type":"git"},"_npmVersion":"10.2.3","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"_nodeVersion":"20.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","tsx":"^4.7.0","chai":"^4.3.10","mocha":"^10.2.0","ts-patch":"^3.1.1","chai-spies":"^1.1.0","typescript":"^5.3.3","@types/chai":"^4.3.11","@types/node":"^18.0.3","chai-subset":"^1.6.0","@types/mocha":"^10.0.6","@tsconfig/node18":"^18.2.2","chai-as-promised":"^7.1.1","@types/chai-spies":"^1.0.6","@types/chai-subset":"^1.3.5","@tsconfig/strictest":"^2.0.2","@types/chai-as-promised":"^7.1.8","typescript-transform-paths":"^3.4.6"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.1.2_1710859040493_0.9821014181174073","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"serialzr","version":"1.2.1","license":"MIT","_id":"serialzr@1.2.1","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"homepage":"https://github.com/l00k/serialzr#readme","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"dist":{"shasum":"be73a6f5b955fcf04f485ee2d251150ff8628226","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.2.1.tgz","fileCount":42,"integrity":"sha512-VCjES/U8n2CMcJhmrwJXqz1miAZKMyiNg2l+pCpr7rD/FVWbkwqwqfPZyVhd8UgGYjPRIeamLIq/OliYjBGnLw==","signatures":[{"sig":"MEYCIQDcmadTcTbj7HJ4heUfQfB8VxULDXT9B2ec98bjcCwQoQIhALSnRbRfcq5C5GDC9ftEY+S/wB3NbXZ8Rn+SBSS4cuO8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59650},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"06a7d5293c6134179fd73f5437c3893e5601abea","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"nyc mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"repository":{"url":"git+https://github.com/l00k/serialzr.git","type":"git"},"_npmVersion":"9.8.1","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"_nodeVersion":"18.18.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","tsx":"^4.7.0","chai":"^4.3.10","mocha":"^10.2.0","ts-patch":"^3.1.1","chai-spies":"^1.1.0","typescript":"^5.3.3","@types/chai":"^4.3.11","@types/node":"^18.0.3","chai-subset":"^1.6.0","@types/mocha":"^10.0.6","@tsconfig/node18":"^18.2.2","chai-as-promised":"^7.1.1","@types/chai-spies":"^1.0.6","@types/chai-subset":"^1.3.5","@tsconfig/strictest":"^2.0.2","@types/chai-as-promised":"^7.1.8","typescript-transform-paths":"^3.4.6"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.2.1_1710930550747_0.5431194545508098","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"serialzr","version":"1.2.2","license":"MIT","_id":"serialzr@1.2.2","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"homepage":"https://github.com/l00k/serialzr#readme","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"dist":{"shasum":"7d626d713bb8a140008fd4f975ce1e3c85420f3a","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.2.2.tgz","fileCount":42,"integrity":"sha512-opFq+5CjQgZu68Dt1HxHNG6bLAUxfSsnCASV6wmWI77zm2Ksk8nzr2cDX48r9yrgPTul31qDWPMKZ/usf8GLEw==","signatures":[{"sig":"MEYCIQDxH68z8iDe45UluPv36BLyi8JNo5PwF1lk2oqvyOUifwIhANsBtp/HHLaePPwQbFm+pD6zEEhgqWEpDXdlwtrqAkBy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60171},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"df277509865ef49b5a1775a0d90513faebea5445","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"nyc mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"repository":{"url":"git+https://github.com/l00k/serialzr.git","type":"git"},"_npmVersion":"9.8.1","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"_nodeVersion":"18.18.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","tsx":"^4.7.2","chai":"^4.4.1","mocha":"^10.4.0","ts-patch":"^3.1.2","chai-spies":"^1.1.0","typescript":"^5.4.4","@types/chai":"^4.3.14","@types/node":"^18.19.29","chai-subset":"^1.6.0","@types/mocha":"^10.0.6","@tsconfig/node18":"^18.2.4","chai-as-promised":"^7.1.1","@types/chai-spies":"^1.0.6","@types/chai-subset":"^1.3.5","@tsconfig/strictest":"^2.0.5","@types/chai-as-promised":"^7.1.8","typescript-transform-paths":"^3.4.7"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.2.2_1712299277696_0.9424843006107293","host":"s3://npm-registry-packages"}},"1.2.4":{"name":"serialzr","version":"1.2.4","license":"MIT","_id":"serialzr@1.2.4","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"homepage":"https://github.com/l00k/serialzr#readme","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"dist":{"shasum":"fabee116df495caffebfdddb9df9306fbc75fbf4","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.2.4.tgz","fileCount":42,"integrity":"sha512-qYt2DlddYkFH+cx1Hmz3VJksYQxTLcz5aIbfxnb48NPiHTI2h+gk6ZRazViePqa5kLLmh7UKefA91VfhDM6IUg==","signatures":[{"sig":"MEYCIQCdjJIe7fDHRvAo3Xg1C8+7Jy/hxcYHiMguRvUUYCd7sAIhALD6N2Fsmw4AW+ROFPCFp+X9+adiBrSC1X7NM7lMcIqe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60189},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"97605d6d4f9f3b99f493f4cfc652b72dafe4af55","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"nyc mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"repository":{"url":"git+https://github.com/l00k/serialzr.git","type":"git"},"_npmVersion":"9.8.1","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"_nodeVersion":"18.18.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","tsx":"^4.7.2","chai":"^4.4.1","mocha":"^10.4.0","ts-patch":"^3.1.2","chai-spies":"^1.1.0","typescript":"^5.4.4","@types/chai":"^4.3.14","@types/node":"^18.19.29","chai-subset":"^1.6.0","@types/mocha":"^10.0.6","@tsconfig/node18":"^18.2.4","chai-as-promised":"^7.1.1","@types/chai-spies":"^1.0.6","@types/chai-subset":"^1.3.5","@tsconfig/strictest":"^2.0.5","@types/chai-as-promised":"^7.1.8","typescript-transform-paths":"^3.4.7"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.2.4_1712463264237_0.6200556385330984","host":"s3://npm-registry-packages"}},"1.2.5":{"name":"serialzr","version":"1.2.5","license":"MIT","_id":"serialzr@1.2.5","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"homepage":"https://github.com/l00k/serialzr#readme","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"dist":{"shasum":"25132b5a916ebe8f4a32de0a65318b00e90458a1","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.2.5.tgz","fileCount":46,"integrity":"sha512-aMU/Y3JR5APbTP485dizK/L3Ude6z6wElY5Et8RmppW0eHgRz3zgGPCKWf/Q3X+mJgdpz3uP0r70dNogu6TigQ==","signatures":[{"sig":"MEUCIQCpVm02xe+R1a12eN4qBbPxxf2+SxHqAtGg+AwkryKUcgIgabsPBHm0VKqOeX4MQlYiydiSz1C9KUj6YE32lVBLO+o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63746},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"14f5f890809dc9be3556fa9407ffbf2a1a74d4ce","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"nyc mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"repository":{"url":"git+https://github.com/l00k/serialzr.git","type":"git"},"_npmVersion":"10.2.3","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"_nodeVersion":"20.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","tsx":"^4.7.2","chai":"^4.4.1","mocha":"^10.4.0","ts-patch":"^3.1.2","chai-spies":"^1.1.0","typescript":"^5.4.4","@types/chai":"^4.3.14","@types/node":"^18.19.29","chai-subset":"^1.6.0","@types/mocha":"^10.0.6","@tsconfig/node18":"^18.2.4","chai-as-promised":"^7.1.1","@types/chai-spies":"^1.0.6","@types/chai-subset":"^1.3.5","@tsconfig/strictest":"^2.0.5","@types/chai-as-promised":"^7.1.8","typescript-transform-paths":"^3.4.7"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.2.5_1712820953472_0.1323480273807569","host":"s3://npm-registry-packages"}},"1.2.6":{"name":"serialzr","version":"1.2.6","license":"MIT","_id":"serialzr@1.2.6","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"homepage":"https://github.com/l00k/serialzr#readme","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"dist":{"shasum":"f571b4ebfbeacf095aef64ea59d093f51ccff427","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.2.6.tgz","fileCount":46,"integrity":"sha512-VHC7ZSLzGafnne6Vr3Uit/KpJCs6T73Icy3RxFFfdas/9l2Pt3KqYw6ftBO+NSBvKQXg7xK0dhz7+ZueJzwzBw==","signatures":[{"sig":"MEQCIHSBH1PAuraU2B7k5zQGWZjjL0YC/d+3Lfuuk2/wi6vuAiAZbxrFDjhPlqFhyS7UOMLVPjxXgYLTDlRiFadrJAOZgA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63660},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"14f5f890809dc9be3556fa9407ffbf2a1a74d4ce","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"nyc mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"repository":{"url":"git+https://github.com/l00k/serialzr.git","type":"git"},"_npmVersion":"10.2.3","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"_nodeVersion":"20.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","tsx":"^4.7.2","chai":"^4.4.1","mocha":"^10.4.0","ts-patch":"^3.1.2","chai-spies":"^1.1.0","typescript":"^5.4.4","@types/chai":"^4.3.14","@types/node":"^18.19.29","chai-subset":"^1.6.0","@types/mocha":"^10.0.6","@tsconfig/node18":"^18.2.4","chai-as-promised":"^7.1.1","@types/chai-spies":"^1.0.6","@types/chai-subset":"^1.3.5","@tsconfig/strictest":"^2.0.5","@types/chai-as-promised":"^7.1.8","typescript-transform-paths":"^3.4.7"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.2.6_1712821241836_0.13279646369709197","host":"s3://npm-registry-packages"}},"1.4.1":{"name":"serialzr","version":"1.4.1","license":"MIT","_id":"serialzr@1.4.1","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"homepage":"https://github.com/l00k/serialzr#readme","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"dist":{"shasum":"7b9a2be167f1b3689d3139b15a922ea0278f15ad","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.4.1.tgz","fileCount":48,"integrity":"sha512-zwSpx6DM02nHWLmIq3GVVjG/p1mDu0TYrxn0br4+amIFjZIT3VnnKkIvBXWyu7fqWA8Y+RdsGX7l08HGG/TkXg==","signatures":[{"sig":"MEUCIAYKgf9B0FqSj0SqRQU51swFNr7doulniRaTIAL3Dj/fAiEA0jbSfe1Qu+Ug791Qj1gcjWLMcJ9Q8PlDYKBG2O+h6Z0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63862},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"ac6f3473cdd0cdfa46abbc654fc7c0c939602633","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"c8 mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"repository":{"url":"git+https://github.com/l00k/serialzr.git","type":"git"},"_npmVersion":"10.2.3","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"_nodeVersion":"20.10.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.2","tsx":"^4.19.1","chai":"^5.1.1","mocha":"^10.7.3","ts-patch":"^3.2.1","typescript":"5.5.4","@types/chai":"^4.3.19","@types/node":"^20.16.5","chai-subset":"^1.6.0","@types/mocha":"^10.0.7","tsconfig-paths":"^4.2.0","@tsconfig/node20":"^20.1.4","chai-as-promised":"^8.0.0","@types/chai-subset":"^1.3.5","@types/chai-as-promised":"^7.1.8","typescript-transform-paths":"^3.5.1"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.4.1_1726501109197_0.4325470761247385","host":"s3://npm-registry-packages"}},"1.5.1":{"name":"serialzr","version":"1.5.1","license":"MIT","_id":"serialzr@1.5.1","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"homepage":"https://github.com/l00k/serialzr#readme","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"dist":{"shasum":"13d3641cd6126adf15540cb292724bf2b3d9b7c2","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.5.1.tgz","fileCount":48,"integrity":"sha512-CBNP8tgvvKxG48heg9UhxU4i8RCG3pqxt4Weeqjx0cjikVn8etOVeBHBasWY9BQKQV+8CVR3hKbg9T2BJH5BRQ==","signatures":[{"sig":"MEYCIQD2YzGHlAZ8JbqtiEHZc8kePPpjkZMsjF+Azwf3pMoZiQIhAItWvShPrk88Std5fN3v6fuC/XHLQNTOi0k1xGOYO7G8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63826},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"c596beb22e97865bb94104d715704d8e240822e9","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"c8 mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"repository":{"url":"git+https://github.com/l00k/serialzr.git","type":"git"},"_npmVersion":"10.5.0","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"_nodeVersion":"20.12.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.2","tsx":"^4.19.1","chai":"^5.1.1","mocha":"^10.7.3","ts-patch":"^3.2.1","typescript":"5.5.4","@types/chai":"^4.3.19","@types/node":"^20.16.5","chai-subset":"^1.6.0","@types/mocha":"^10.0.8","@tsconfig/node20":"^20.1.4","chai-as-promised":"^8.0.0","@types/chai-subset":"^1.3.5","@types/chai-as-promised":"^8.0.0","typescript-transform-paths":"^3.5.1"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.5.1_1726670782892_0.7592389902668686","host":"s3://npm-registry-packages"}},"1.8.1":{"name":"serialzr","version":"1.8.1","license":"MIT","_id":"serialzr@1.8.1","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"homepage":"https://github.com/l00k/serialzr#readme","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"dist":{"shasum":"89dac5ba800962f5b850a8b95d23e7981ccbb380","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.8.1.tgz","fileCount":52,"integrity":"sha512-sLVvqRf/yZ05kuPzYoRLg6V6Qj4/gHMVK6K14uFRqDVc/e+6KqnBO53ULDfY3pmmEwUlEPUPwgwESPoyTU/Meg==","signatures":[{"sig":"MEQCIF625Ngb+lrYAnk3TDkv90cdt8JOdwydsY5M7xvfEP7CAiAJ2u35lx5MPd4GTr9GTg9/TN083o1GWuVBprhg9OooBw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":67348},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"d762e80c393ede6905244ece9ac3b35dd6a85a83","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"c8 mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"repository":{"url":"git+https://github.com/l00k/serialzr.git","type":"git"},"_npmVersion":"10.5.0","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"lint-staged":{"*.{js,jsx,ts,tsx}":["eslint --fix","git add"]},"_nodeVersion":"20.12.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.2","tsx":"^4.19.1","chai":"^5.1.1","husky":"^9.1.6","mocha":"^10.7.3","eslint":"^8.57.1","ts-patch":"^3.2.1","typescript":"5.5.4","@types/chai":"^4.3.19","@types/node":"^20.16.5","chai-subset":"^1.6.0","lint-staged":"^15.2.10","@types/mocha":"^10.0.8","@tsconfig/node20":"^20.1.4","chai-as-promised":"^8.0.0","typescript-eslint":"^8.7.0","@types/chai-subset":"^1.3.5","eslint-plugin-import":"^2.30.0","@types/chai-as-promised":"^8.0.0","typescript-transform-paths":"^3.5.1"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.8.1_1728140019871_0.29964618032776325","host":"s3://npm-registry-packages"}},"1.9.1-1":{"name":"serialzr","version":"1.9.1-1","license":"MIT","_id":"serialzr@1.9.1-1","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"homepage":"https://github.com/l00k/serialzr#readme","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"dist":{"shasum":"154ea9a9a25463f3658c010fc9d5d6619277470f","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.9.1-1.tgz","fileCount":52,"integrity":"sha512-uQt7eYXdZH02ogklRd29hFZMSoat1X7dwiU96zRxkBgHTZaBP5E4wHfpNO3SR8GhV0id5qq9t9C0R36fzuKU8A==","signatures":[{"sig":"MEUCIQCZ/DM2Xz4MNdsXQREnkQSoVDyQLJ8stSuOkzbX2OOUrQIgT+034/bAGvcP3/Sp1kuN+87q9XQVs6nz8mhi9Bqk9yY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68480},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"c8be7c5a7e70d81c1c9c6fd6feb15cc36cc8b72e","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"c8 mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"repository":{"url":"git+https://github.com/l00k/serialzr.git","type":"git"},"_npmVersion":"10.5.0","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"lint-staged":{"*.{js,jsx,ts,tsx}":["eslint --fix","git add"]},"_nodeVersion":"20.12.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.2","tsx":"^4.19.1","chai":"^5.1.1","husky":"^9.1.6","mocha":"^10.7.3","eslint":"^8.57.1","ts-patch":"^3.2.1","typescript":"5.5.4","@types/chai":"^4.3.19","@types/node":"^20.16.5","chai-subset":"^1.6.0","lint-staged":"^15.2.10","@types/mocha":"^10.0.8","@tsconfig/node20":"^20.1.4","chai-as-promised":"^8.0.0","typescript-eslint":"^8.7.0","@types/chai-subset":"^1.3.5","eslint-plugin-import":"^2.30.0","@types/chai-as-promised":"^8.0.0","typescript-transform-paths":"^3.5.1"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.9.1-1_1728195740264_0.31240985703389734","host":"s3://npm-registry-packages"}},"1.9.2":{"name":"serialzr","version":"1.9.2","license":"MIT","_id":"serialzr@1.9.2","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"homepage":"https://github.com/l00k/serialzr#readme","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"dist":{"shasum":"cf7cfc39e79b48791b5777482192fda913f22829","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.9.2.tgz","fileCount":52,"integrity":"sha512-nui7eklNqNPnQDXpSGJ3rZGIYxpBwoKuU19kuPJAEdAEAkaT5i/wzyDbU3yejOUkWqy4531mWnio4ik+IHpSDA==","signatures":[{"sig":"MEQCIA26klhnu89tlNDLnRQfmmqg47O2gzdhACaJGoSnNtPSAiA3LaEwu6QE5P0J5eDVZ/oq6oQxrScg/0lp5xJlPvPp5A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68478},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"c8be7c5a7e70d81c1c9c6fd6feb15cc36cc8b72e","scripts":{"test":"mocha --import=tsx","build":"tspc -P tsconfig.build.json","inspect":"mocha --import=tsx --inspect-brk","coverage":"c8 mocha --import=tsx"},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"repository":{"url":"git+https://github.com/l00k/serialzr.git","type":"git"},"_npmVersion":"10.5.0","description":"JS library for serializing and deserializing complex objects into JSON and back.","directories":{},"lint-staged":{"*.{js,jsx,ts,tsx}":["eslint --fix","git add"]},"_nodeVersion":"20.12.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.2","tsx":"^4.19.1","chai":"^5.1.1","husky":"^9.1.6","mocha":"^10.7.3","eslint":"^8.57.1","ts-patch":"^3.2.1","typescript":"5.5.4","@types/chai":"^4.3.19","@types/node":"^20.16.5","chai-subset":"^1.6.0","lint-staged":"^15.2.10","@types/mocha":"^10.0.8","@tsconfig/node20":"^20.1.4","chai-as-promised":"^8.0.0","typescript-eslint":"^8.7.0","@types/chai-subset":"^1.3.5","eslint-plugin-import":"^2.30.0","@types/chai-as-promised":"^8.0.0","typescript-transform-paths":"^3.5.1"},"_npmOperationalInternal":{"tmp":"tmp/serialzr_1.9.2_1728195793827_0.17963509179261772","host":"s3://npm-registry-packages"}},"1.9.3":{"name":"serialzr","version":"1.9.3","license":"MIT","repository":{"type":"git","url":"git+https://github.com/l00k/serialzr.git"},"type":"module","module":"dist/index.js","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tspc -P tsconfig.build.json","test":"mocha --import=tsx","coverage":"c8 mocha --import=tsx","inspect":"mocha --import=tsx --inspect-brk"},"dependencies":{},"devDependencies":{"@tsconfig/node20":"^20.1.4","@types/chai":"^4.3.19","@types/chai-as-promised":"^8.0.0","@types/chai-subset":"^1.3.5","@types/mocha":"^10.0.8","@types/node":"^20.16.5","c8":"^10.1.2","chai":"^5.1.1","chai-as-promised":"^8.0.0","chai-subset":"^1.6.0","eslint":"^8.57.1","eslint-plugin-import":"^2.30.0","husky":"^9.1.6","lint-staged":"^15.2.10","mocha":"^10.7.3","ts-patch":"^3.2.1","tsx":"^4.19.1","typescript":"5.5.4","typescript-eslint":"^8.7.0","typescript-transform-paths":"^3.5.1"},"lint-staged":{"*.{js,jsx,ts,tsx}":["eslint --fix","git add"]},"_id":"serialzr@1.9.3","gitHead":"2c8279609026c86dcadf07592f550955a5f495e2","description":"JS library for serializing and deserializing complex objects into JSON and back.","bugs":{"url":"https://github.com/l00k/serialzr/issues"},"homepage":"https://github.com/l00k/serialzr#readme","_nodeVersion":"20.12.2","_npmVersion":"10.5.0","dist":{"integrity":"sha512-v6HdARaLErI1+bd8iVyAv7Ut6lsr1fFFBo9Rw6BVMTJIuEjd1/XyI89KAvtcDxvMz/A4rn7zoeGqqgFf+Gap2A==","shasum":"2d3ae8229e7d8cdb7e3d695f2a1d6ee580bda4e5","tarball":"https://registry.npmjs.org/serialzr/-/serialzr-1.9.3.tgz","fileCount":58,"unpackedSize":90331,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFoKQDX3ugbK5ktSxJemXXDNk2i2tipFJzN6qnE9BrlEAiEAwUb7RPhKirlj3WZ8SRP742wiPxyBIxhrhxkW4jPRQMk="}]},"_npmUser":{"name":"l00k","email":"l00k+npm@protonmail.com"},"directories":{},"maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/serialzr_1.9.3_1730651080449_0.19999275550753493"},"_hasShrinkwrap":false}},"time":{"created":"2024-03-18T05:45:47.645Z","modified":"2024-11-03T16:24:40.792Z","1.0.0":"2024-03-16T07:22:43.771Z","1.0.1":"2024-03-18T05:45:47.953Z","1.0.2":"2024-03-18T05:50:16.267Z","1.1.0":"2024-03-18T07:37:37.727Z","1.1.1":"2024-03-18T07:52:16.092Z","1.1.2":"2024-03-19T14:37:20.679Z","1.2.0":"2024-03-20T10:25:03.340Z","1.2.1":"2024-03-20T10:29:10.895Z","1.2.2":"2024-04-05T06:41:17.850Z","1.2.3":"2024-04-07T04:13:58.635Z","1.2.4":"2024-04-07T04:14:24.422Z","1.2.5":"2024-04-11T07:35:53.632Z","1.2.6":"2024-04-11T07:40:42.016Z","1.3.1":"2024-09-12T08:53:58.180Z","1.4.1":"2024-09-16T15:38:29.409Z","1.5.1":"2024-09-18T14:46:23.062Z","1.8.1":"2024-10-05T14:53:40.084Z","1.9.1":"2024-10-06T06:21:32.743Z","1.9.1-1":"2024-10-06T06:22:20.495Z","1.9.2":"2024-10-06T06:23:14.003Z","1.9.3":"2024-11-03T16:24:40.622Z"},"bugs":{"url":"https://github.com/l00k/serialzr/issues"},"license":"MIT","homepage":"https://github.com/l00k/serialzr#readme","repository":{"type":"git","url":"git+https://github.com/l00k/serialzr.git"},"description":"JS library for serializing and deserializing complex objects into JSON and back.","maintainers":[{"name":"l00k","email":"l00k+npm@protonmail.com"}],"readme":"# Serializer\n\nJS library for serializing and deserializing complex objects into JSON and back.\n\n[![NPM Version](https://img.shields.io/npm/v/serialzr)](https://www.npmjs.com/package/serialzr)\n![GitHub top language](https://img.shields.io/github/languages/top/l00k/serialzr)\n[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/l00k/serialzr/ci.yaml?branch=master)](https://github.com/l00k/serialzr/actions/workflows/ci.yaml)\n[![Codecov](https://img.shields.io/codecov/c/github/l00k/serialzr)](https://app.codecov.io/gh/l00k/serialzr)\n\n## Features\n\n- two-way serialization / deserialization without specifying target type - thanks to `@type` property\n- defining exposed / excluded properties via groups or graph\n- defining custom serialization / deserialization functions (per type or per property)\n- built-in support for array of objects and `Record<string, T>` maps\n\n\n- ESM\n- zero dependencies\n- full TypeScript support\n- covered with tests\n\n## NPM package\n\n```bash\nyarn add serialzr\n```\n\n## Detailes features\n\n### 1. Property Exclusion and Exposure\n\nYou can control which properties are included in the serialized output and which are not.  \nThis can be done using the `@Srlz.Expose()` and `@Srlz.Exclude()` decorators.\n\n```ts\nclass Foo\n{\n    @Srlz.Expose()\n    public exposedProperty : string = 'exposed';\n    \n    @Srlz.Exclude()\n    public excludedProperty : string = 'excluded';\n}\n\nconst plain = serializer.toPlain(new Foo());\n// { exposedProperty: 'exposed' }\n```\n\n### 2. Grouping\n\nYou can specify groups for properties, allowing you to control the serialization and deserialization process based on\nthese groups.\n\n```ts\nclass Foo\n{\n    @Srlz.Expose([ 'group1' ])\n    public property1 : string = 'property1';\n    \n    @Srlz.Expose([ 'group2' ])\n    public property2 : string = 'property2';\n}\n\nconst plain = serializer.toPlain(new Foo(), {\n    groups: [ 'group1' ]\n});\n// { property1: 'property1' }\n```\n\n### 3. Auto Groups\n\nThe library allows you to automatically add groups based on certain conditions.\n\n```ts\n@Srlz.AutoGroup('detailed', (obj, ctx) => ctx.detailedEntries?.includes(obj.id))\nclass Entry\n{\n    @Srlz.Id()\n    public id : number = 1;\n    \n    @Srlz.Expose([ 'detailed' ])\n    public stats : string = 'stats';\n}\n\nconst plain = serializer.toPlain(new User(), {\n    ctxData: {\n        detailedEntries: [ 1, 2 ]\n    }\n});\n// { id: 1, stats: 'stats' }\n```\n\n### 4. Graph Serialization\n\nThe library supports graph serialization, allowing you to control how nested objects are serialized.\n\n```ts\n@Srlz.Type('book')\nclass Book\n{\n    @Srlz.Id()\n    public id : number = 5;\n    \n    @Srlz.Expose([ 'public' ])\n    public name : string = 'Noname';\n    \n    public constructor (data : Partial<Book> = {})\n    {\n        Object.assign(this, data);\n    }\n}\n\n@Srlz.Type('author')\nclass Author\n{\n    @Srlz.Id()\n    public id : number = 5;\n    \n    @Srlz.Expose([ 'public' ])\n    public name : string = 'John Doe';\n    \n    @Srlz.Expose([ 'public' ])\n    public age : number = 18;\n    \n    @Srlz.Type({ arrayOf: () => Book })\n    public books : Book[] = [\n        new Book({ id: 8, name: 'Book 1' }),\n        new Book({ id: 9, name: 'Book 2' }),\n    ];\n    \n    @Srlz.Expose([ 'owner' ]) // only owner can see this\n    @Srlz.Type({ recordOf: () => Book })\n    public aliasedBooks : Record<string, Book> = {\n        a: new Book({ id: 10, name: 'Book 3' }),\n    };\n    \n    @Srlz.Exclude() // excluded even if default strategy is to include\n    public secret : number = 12345;\n    \n    public constructor (data : Partial<Author> = {})\n    {\n        Object.assign(this, data);\n    }\n}\n\nconst plain = serializer.toPlain(new Author(), {\n    graph: {\n        $default: false,\n        id: true,\n        name: true,\n        books: '**',\n        aliasedBooks: {\n            id: true,\n            name: true,\n        }\n    }\n});\n// { \n//      id: 5, \n//      name: 'John Doe', \n//      books: [ \n//          { id: 8, name: 'Book 1' },\n//          { id: 9, name: 'Book 2' } \n//      ],\n//      aliasedBooks: { \n//          a: { id: 10, name: 'Book 3' }\n//      } \n// }\n```\n\n### 5. Custom Serialization and Deserialization Strategies\n\nYou can define custom strategies for serializing and deserializing properties.\n\n```ts\n@Srlz.Transformer({\n    toPlain: (obj) => obj.text.toLowerCase(),\n    toClass: (plain) => new Tag({ text: plain.toLowerCase() }),\n})\nclass Tag\n{\n    public text : string = 'tag';\n    \n    public constructor (data : Partial<Tag> = {})\n    {\n        Object.assign(this, data);\n    }\n}\n```\n\n## Refrence\n\n### 1. Class decorator `@Srlz.Type()`\n\nAs class decorator, it marks the class as a serializable type.\n\n```ts\nfunction Type (typeName : string)\nfunction Type (typeDef : {\n    name? : string,\n    idProperty? : string,\n})\n```\n\n### 2. Class decorator `@Srlz.AutoGroup()`\n\nDefines a group that is automatically added to the object based on the condition.\n\n```ts\nfunction AutoGroup (\n    groupName : string, // group name\n    condition : (\n        obj : any, // currently serialized object\n        ctx : any // context data (passed to toPlain and toClass methods under ctxData key)\n    ) => boolean\n)\n```\n\n### 3. Class decorator `@Srlz.Transformer()`\n\nDefines custom serialization and deserialization strategies for the class.\n\n```ts\ntype TransformerFnParams = {\n    direction : Direction,\n    type : any,\n    options? : SerializationOptions.Base<T> | any,\n    context? : SerializationContext.Base<T> | any,\n}\n```\n\n```ts\nfunction Transformer (\n    def : {\n        toPlain : (obj : any, params : TransformerFnParams) => any,     // serialization function (before exposure calculation)\n        toClass : (plain : any, params : TransformerFnParams) => any,   // deserialization function (before exposure calculation)\n    }\n)\nfunction Transformer (\n    def : {\n        toPlain : {\n            before? : (obj : any, params : TransformerFnParams) => any, // before exposure calculation\n            after? : (plain : any, params : TransformerFnParams) => any, // after exposure calculation\n        }\n        toClass : {\n            before? : (plain : any, params : TransformerFnParams) => any, // before exposure calculation\n            after? : (obj : any, params : TransformerFnParams) => any, // after exposure calculation\n        }\n    }\n)\n```\n\n### 4. Property decorator `@Srlz.Id()`\n\nMarks the property as an identifier.\n\n### 5. Property decorator `@Srlz.Expose()`\n\nMarks the property as exposed.\n\n```ts\nfunction Expose () // exposes property by default\nfunction Expose (groups : string[]) // exposes property only for specified groups\nfunction Expose (def : { // complex configuration\n    // modifiers\n    mode? : boolean = true, // true - expose, false - exclude\n    deeply? : boolean, // expose deeply\n    \n    // conditions\n    all? : string[], // matched if all groups are present\n    any? : string[], // matched if any group is present\n    notAll? : string[], // matched if no all groups are present\n    notAny? : string[], // matched if none of groups is present\n}) \n```\n\n### 6. Property decorator `@Srlz.Exclude()`\n\nMarks the property as excluded.  \nSample usage is the same as for `@Srlz.Expose()`.\n\n### 7. Property decorator `@Srlz.Type()`\n\nDefines the type of the property.  \nIt is required to specify the type of the property if it is not a primitive type.\n\n```ts\nfunction Type (type : () => ClassConstructor) // for single object\nfunction Type (def : {\n    type : () => ClassConstructor, // for single object\n    arrayOf : () => ClassConstructor, // for array of objects\n    recordOf : () => ClassConstructor, // for record of objects\n})\n```\n\n### 8. Property decorator `@Srlz.Transformer()`\n\nDefines custom serialization and deserialization strategies for the property.  \nUsage is the same as for `@Srlz.Transformer()` class decorator.\n\n### 9. Property decorator `@Srlz.Computed()`\n\nDefines a computed property.\n\n```ts\ntype GetterFn = (args : {\n    value : any,                    // current property value\n    parent : any,                   // parent object\n    params : TransformerFnParams,\n}) => any;\n```\n\n```ts\nfunction Computed (getterFn : GetterFn)\n```\n\n\n### 10. Property decorator `@Srlz.ComputedByGroup()`\n\nDefines a computed property.\n\n```ts\nfunction ComputedByGroup (\n    group : string,                         // group name to match\n    ifIncludes : GetterFn = () => true,     // getter function to use if group is included\n    ifNotIncludes : GetterFn = () => false, // getter function to use if group is not included\n)\n```\n","readmeFilename":"README.md"}