{"_id":"@badetitou/jackson-js","_rev":"9-7160c740722ae635c59324e63fd544af","name":"@badetitou/jackson-js","dist-tags":{"latest":"1.5.0"},"versions":{"1.4.2":{"name":"@badetitou/jackson-js","version":"1.4.2","keywords":["jackson-json","json","jackson","jackson-js","json-serialization","json-deserialization","json-stringifier","json-parser","jackson-javascript","json-stringify","json-parse","json-decoder","json-encoder"],"author":{"url":"https://github.com/badetitou","name":"Benoît Verhaeghe","email":"banoit@badetitou.fr"},"license":"MIT","_id":"@badetitou/jackson-js@1.4.2","maintainers":[{"name":"badetitou","email":"benoit@badetitou.fr"}],"homepage":"https://github.com/badetitou/jackson-js#readme","bugs":{"url":"https://github.com/badetitou/jackson-js/issues"},"ava":{"files":["tests/**/*.ts"],"require":["ts-node/register"],"extensions":["ts"]},"dist":{"shasum":"da8b4e938eb84e4653c8f6f9d0f433de5d0c3cac","tarball":"https://registry.npmjs.org/@badetitou/jackson-js/-/jackson-js-1.4.2.tgz","fileCount":65,"integrity":"sha512-yPluWRQLZVgECpz2IKB+VMF66rKC3Ed/OJxv7OMIDV85XToCLEkCko/5hLV+eENSxaGZy8xwgO/tMA6aUeaQqA==","signatures":[{"sig":"MEQCIA0167ljaV8q1HAoDP9Oooy9CUjZpgETfP5P2NGw+dDCAiBoGnbn7FZaj42eh5exLI/1Wk/Tb7JFgIMkuB2IL5xGfQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2750049},"main":"./dist/lib.node.js","types":"./dist/index.d.ts","browser":"./dist/lib.js","gitHead":"1c3969ef9a4495f6c41ed8ecda19eded7e71f6e7","scripts":{"test":"nyc npm run test-es5 && nyc --no-clean npm run test-es6","clean":"rimraf ./dist","coverage":"nyc report --reporter=text-lcov | coveralls","test-es5":"TZ=UTC TS_NODE_PROJECT=tsconfig.json ava --concurrency=8 --timeout=3m --verbose","test-es6":"TZ=UTC TS_NODE_PROJECT=tsconfig.es6.json ava --concurrency=8 --timeout=3m --verbose","build:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:doc":"npm run clean:doc && npm run build:doc:latest && npm run build:doc:current-version && node ./build-index-docs.js","clean:doc":"rimraf ./docs/latest && rimraf ./docs/$npm_package_version","build:prod":"npm run clean && ./node_modules/.bin/webpack --config webpack.prod.js","build:win:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:win:prod":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.prod.js","start:node:dev":"node dist/lib.node","build:doc:latest":"typedoc --out ./docs/latest ./src --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json","build:doc:current-version":"typedoc --out ./docs/$npm_package_version ./src --name \"jackson-js $npm_package_version\" --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json"},"_npmUser":{"name":"badetitou","email":"benoit@badetitou.fr"},"repository":{"url":"git+https://github.com/badetitou/jackson-js.git","type":"git"},"_npmVersion":"8.19.4","description":"JavaScript object serialization and deserialization library using decorators. It supports also advanced Object concepts such as polymorphism, Object identity and cyclic objects.","directories":{},"_nodeVersion":"16.20.1","dependencies":{"meriyah":"^1.9.12","lodash.clone":"^4.5.0","lodash.clonedeep":"^4.5.0","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^3.5.2","nyc":"^15.0.1","uuid":"^8.0.0","dayjs":"^1.8.26","eslint":"^6.8.0","moment":"^2.25.3","rimraf":"^3.0.2","tslint":"~5.18.0","ts-node":"^8.8.1","typedoc":"^0.17.3","webpack":"^4.42.1","codelyzer":"^5.2.2","coveralls":"^3.1.0","cross-env":"^7.0.2","ts-loader":"^6.2.2","typescript":"^3.8.3","@types/node":"^13.11.0","@types/uuid":"^7.0.3","webpack-cli":"^3.3.11","@babel/types":"^7.8.7","@types/estree":"0.0.44","eslint-loader":"^3.0.4","@ava/typescript":"^1.1.1","eslint-plugin-jsdoc":"^22.1.0","eslint-plugin-import":"^2.20.2","@typescript-eslint/parser":"^2.26.0","eslint-plugin-prefer-arrow":"^1.1.7","typedoc-plugin-custom-tags":"^1.0.2","@typescript-eslint/eslint-plugin":"^2.26.0","typedoc-plugin-external-module-name":"^3.0.0","@typescript-eslint/eslint-plugin-tslint":"^2.26.0"},"_npmOperationalInternal":{"tmp":"tmp/jackson-js_1.4.2_1687871495836_0.661860607694505","host":"s3://npm-registry-packages"}},"1.4.3":{"name":"@badetitou/jackson-js","version":"1.4.3","keywords":["jackson-json","json","jackson","jackson-js","json-serialization","json-deserialization","json-stringifier","json-parser","jackson-javascript","json-stringify","json-parse","json-decoder","json-encoder"],"author":{"url":"https://github.com/badetitou","name":"Benoît Verhaeghe","email":"banoit@badetitou.fr"},"license":"MIT","_id":"@badetitou/jackson-js@1.4.3","maintainers":[{"name":"badetitou","email":"benoit@badetitou.fr"}],"homepage":"https://github.com/badetitou/jackson-js#readme","bugs":{"url":"https://github.com/badetitou/jackson-js/issues"},"ava":{"files":["tests/**/*.ts"],"require":["ts-node/register"],"extensions":["ts"]},"dist":{"shasum":"85bb4c38d44d4f66bb3bd5fde7a9e9a53b1bd4d3","tarball":"https://registry.npmjs.org/@badetitou/jackson-js/-/jackson-js-1.4.3.tgz","fileCount":65,"integrity":"sha512-N70+05Q3kt3roB/FfIks+nC+RJVa5Sgi/ASFqpERBFUJ/TcyMUOBtdT/ICVMNEOePz11w9L9Cpw2Ys9GqL895w==","signatures":[{"sig":"MEQCIGgGpU4kPaytCGvdKM/mWEpP9aWXvwARn+6F/V3Xog0aAiBirv153IrRcWGxdwpzFoEnpR5ETLKTym1aYwRr7iaSgw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2752452},"main":"./dist/lib.node.js","types":"./dist/index.d.ts","browser":"./dist/lib.js","gitHead":"bbb0808668e9003b418e882974f1f616ec0e10e0","scripts":{"test":"nyc npm run test-es5 && nyc --no-clean npm run test-es6","clean":"rimraf ./dist","coverage":"nyc report --reporter=text-lcov > coverage/lcov.info","test-es5":"TZ=UTC TS_NODE_PROJECT=tsconfig.json ava --concurrency=8 --timeout=3m --verbose","test-es6":"TZ=UTC TS_NODE_PROJECT=tsconfig.es6.json ava --concurrency=8 --timeout=3m --verbose","test:win":"nyc npm run test:win:test-es5 && nyc --no-clean npm run test:win:test-es6","build:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:doc":"npm run clean:doc && npm run build:doc:latest && npm run build:doc:current-version && node ./build-index-docs.js","clean:doc":"rimraf ./docs/latest && rimraf ./docs/$npm_package_version","build:prod":"npm run clean && ./node_modules/.bin/webpack --config webpack.prod.js","build:win:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:win:prod":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.prod.js","start:node:dev":"node dist/lib.node","build:doc:latest":"typedoc --out ./docs/latest ./src --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json","test:win:test-es5":"ava --concurrency=8 --timeout=3m --verbose","test:win:test-es6":"ava --concurrency=8 --timeout=3m --verbose","build:doc:current-version":"typedoc --out ./docs/$npm_package_version ./src --name \"jackson-js $npm_package_version\" --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json"},"_npmUser":{"name":"badetitou","email":"benoit@badetitou.fr"},"repository":{"url":"git+https://github.com/badetitou/jackson-js.git","type":"git"},"_npmVersion":"8.19.4","description":"JavaScript object serialization and deserialization library using decorators. It supports also advanced Object concepts such as polymorphism, Object identity and cyclic objects.","directories":{},"_nodeVersion":"16.20.0","dependencies":{"meriyah":"^1.9.12","lodash.clone":"^4.5.0","lodash.clonedeep":"^4.5.0","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^3.5.2","nyc":"^15.0.1","uuid":"^8.0.0","dayjs":"^1.8.26","eslint":"^6.8.0","moment":"^2.25.3","rimraf":"^3.0.2","tslint":"~5.18.0","ts-node":"^8.8.1","typedoc":"^0.17.3","webpack":"^4.42.1","codelyzer":"^5.2.2","coveralls":"^3.1.0","cross-env":"^7.0.2","ts-loader":"^6.2.2","typescript":"^3.8.3","@types/node":"^13.11.0","@types/uuid":"^7.0.3","webpack-cli":"^3.3.11","@babel/types":"^7.8.7","@types/estree":"0.0.44","eslint-loader":"^3.0.4","@ava/typescript":"^1.1.1","eslint-plugin-jsdoc":"^22.1.0","eslint-plugin-import":"^2.20.2","@typescript-eslint/parser":"^2.26.0","eslint-plugin-prefer-arrow":"^1.1.7","typedoc-plugin-custom-tags":"^1.0.2","@typescript-eslint/eslint-plugin":"^2.26.0","typedoc-plugin-external-module-name":"^3.0.0","@typescript-eslint/eslint-plugin-tslint":"^2.26.0"},"_npmOperationalInternal":{"tmp":"tmp/jackson-js_1.4.3_1687934737072_0.6536177042543538","host":"s3://npm-registry-packages"}},"1.4.4":{"name":"@badetitou/jackson-js","version":"1.4.4","keywords":["jackson-json","json","jackson","jackson-js","json-serialization","json-deserialization","json-stringifier","json-parser","jackson-javascript","json-stringify","json-parse","json-decoder","json-encoder"],"author":{"url":"https://github.com/badetitou","name":"Benoît Verhaeghe","email":"banoit@badetitou.fr"},"license":"MIT","_id":"@badetitou/jackson-js@1.4.4","maintainers":[{"name":"badetitou","email":"benoit@badetitou.fr"}],"homepage":"https://github.com/badetitou/jackson-js#readme","bugs":{"url":"https://github.com/badetitou/jackson-js/issues"},"ava":{"files":["tests/**/*.ts"],"require":["ts-node/register"],"extensions":["ts"]},"dist":{"shasum":"6f13fabf9f155406409f27bd4e4b7f241d45af96","tarball":"https://registry.npmjs.org/@badetitou/jackson-js/-/jackson-js-1.4.4.tgz","fileCount":65,"integrity":"sha512-ivME9/rMdy7rtK6yhNMDWPky/FBMyFJtv3PSpX99WScc3GqPk26gLJc0Us8yQvSglgt46Yv9y133frIlnkekkw==","signatures":[{"sig":"MEUCIFACJIzpKQSW51jl+c7mBoMsVYS2CjumjlcDTm/rRCTlAiEAm23HlOOfW2GCzeZAHivsFpYdfd3W4Z3q5AhYtgTCB6E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2817142},"main":"./dist/lib.node.js","types":"./dist/index.d.ts","browser":"./dist/lib.js","gitHead":"8b60decfbf8f240e0f36b51888794344a274d3d4","scripts":{"test":"nyc npm run test-es5 && nyc --no-clean npm run test-es6","clean":"rimraf ./dist","coverage":"nyc report --reporter=text-lcov > coverage/lcov.info","test-es5":"TZ=UTC TS_NODE_PROJECT=tsconfig.json ava --concurrency=8 --timeout=3m --verbose","test-es6":"TZ=UTC TS_NODE_PROJECT=tsconfig.es6.json ava --concurrency=8 --timeout=3m --verbose","test:win":"nyc npm run test:win:test-es5 && nyc --no-clean npm run test:win:test-es6","build:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:doc":"npm run clean:doc && npm run build:doc:latest && npm run build:doc:current-version && node ./build-index-docs.js","clean:doc":"rimraf ./docs/latest && rimraf ./docs/$npm_package_version","build:prod":"npm run clean && ./node_modules/.bin/webpack --config webpack.prod.js","build:win:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:win:prod":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.prod.js","start:node:dev":"node dist/lib.node","build:doc:latest":"typedoc --out ./docs/latest ./src --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json","test:win:test-es5":"ava --concurrency=8 --timeout=3m --verbose","test:win:test-es6":"ava --concurrency=8 --timeout=3m --verbose","build:doc:current-version":"typedoc --out ./docs/$npm_package_version ./src --name \"jackson-js $npm_package_version\" --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json"},"_npmUser":{"name":"badetitou","email":"benoit@badetitou.fr"},"repository":{"url":"git+https://github.com/badetitou/jackson-js.git","type":"git"},"_npmVersion":"8.19.4","description":"JavaScript object serialization and deserialization library using decorators. It supports also advanced Object concepts such as polymorphism, Object identity and cyclic objects.","directories":{},"_nodeVersion":"16.20.1","dependencies":{"meriyah":"^4.3.7","lodash.clone":"^4.5.0","lodash.clonedeep":"^4.5.0","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^3.5.2","nyc":"^15.0.1","uuid":"^8.0.0","dayjs":"^1.8.26","eslint":"^6.8.0","moment":"^2.25.3","rimraf":"^3.0.2","tslint":"~5.18.0","ts-node":"^8.8.1","typedoc":"^0.17.3","webpack":"^4.42.1","codelyzer":"^5.2.2","coveralls":"^3.1.0","cross-env":"^7.0.2","ts-loader":"^6.2.2","typescript":"^3.8.3","@types/node":"^13.11.0","@types/uuid":"^7.0.3","webpack-cli":"^3.3.11","@babel/types":"^7.8.7","@types/estree":"0.0.44","eslint-loader":"^3.0.4","@ava/typescript":"^1.1.1","eslint-plugin-jsdoc":"^22.1.0","eslint-plugin-import":"^2.20.2","@typescript-eslint/parser":"^2.26.0","eslint-plugin-prefer-arrow":"^1.1.7","typedoc-plugin-custom-tags":"^1.0.2","@typescript-eslint/eslint-plugin":"^2.26.0","typedoc-plugin-external-module-name":"^3.0.0","@typescript-eslint/eslint-plugin-tslint":"^2.26.0"},"_npmOperationalInternal":{"tmp":"tmp/jackson-js_1.4.4_1688372457084_0.7904824932776837","host":"s3://npm-registry-packages"}},"1.4.5":{"name":"@badetitou/jackson-js","version":"1.4.5","keywords":["jackson-json","json","jackson","jackson-js","json-serialization","json-deserialization","json-stringifier","json-parser","jackson-javascript","json-stringify","json-parse","json-decoder","json-encoder"],"author":{"url":"https://github.com/badetitou","name":"Benoît Verhaeghe","email":"banoit@badetitou.fr"},"license":"MIT","_id":"@badetitou/jackson-js@1.4.5","maintainers":[{"name":"badetitou","email":"benoit@badetitou.fr"}],"homepage":"https://github.com/badetitou/jackson-js#readme","bugs":{"url":"https://github.com/badetitou/jackson-js/issues"},"ava":{"files":["tests/**/*.ts"],"require":["ts-node/register"],"extensions":["ts"]},"dist":{"shasum":"088f93105cea4a56524b7d8409d11dfa98a66d2b","tarball":"https://registry.npmjs.org/@badetitou/jackson-js/-/jackson-js-1.4.5.tgz","fileCount":65,"integrity":"sha512-gDV3QdbYybaOwKMD35iBZYxMRVvUFn71LAq7i2X/SOjSVudGJ4YXYD5A4/gBPcDkkF8efaH7dNTLdZr2UlAlJw==","signatures":[{"sig":"MEUCIQCPMit15nyKEE3FSXz1F2CgFrWQiJqvTk1oIRtYlN3OnwIgT94RoeRXRudBato41piKufs7jpUP0O+pdD1tbpzSsRI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2817348},"main":"./dist/lib.node.js","types":"./dist/index.d.ts","browser":"./dist/lib.js","gitHead":"1786c223a04f6936a312f29a4e5b96b644d85aff","scripts":{"test":"nyc npm run test-es5 && nyc --no-clean npm run test-es6","clean":"rimraf ./dist","coverage":"nyc report --reporter=text-lcov > coverage/lcov.info","test-es5":"TZ=UTC TS_NODE_PROJECT=tsconfig.json ava --concurrency=8 --timeout=3m --verbose","test-es6":"TZ=UTC TS_NODE_PROJECT=tsconfig.es6.json ava --concurrency=8 --timeout=3m --verbose","test:win":"nyc npm run test:win:test-es5 && nyc --no-clean npm run test:win:test-es6","build:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:doc":"npm run clean:doc && npm run build:doc:latest && npm run build:doc:current-version && node ./build-index-docs.js","clean:doc":"rimraf ./docs/latest && rimraf ./docs/$npm_package_version","build:prod":"npm run clean && ./node_modules/.bin/webpack --config webpack.prod.js","build:win:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:win:prod":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.prod.js","start:node:dev":"node dist/lib.node","build:doc:latest":"typedoc --out ./docs/latest ./src --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json","test:win:test-es5":"ava --concurrency=8 --timeout=3m --verbose","test:win:test-es6":"ava --concurrency=8 --timeout=3m --verbose","build:doc:current-version":"typedoc --out ./docs/$npm_package_version ./src --name \"jackson-js $npm_package_version\" --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json"},"_npmUser":{"name":"badetitou","email":"benoit@badetitou.fr"},"repository":{"url":"git+https://github.com/badetitou/jackson-js.git","type":"git"},"_npmVersion":"8.19.4","description":"JavaScript object serialization and deserialization library using decorators. It supports also advanced Object concepts such as polymorphism, Object identity and cyclic objects.","directories":{},"_nodeVersion":"16.20.1","dependencies":{"meriyah":"^4.3.7","lodash.clone":"^4.5.0","lodash.clonedeep":"^4.5.0","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^3.5.2","nyc":"^15.0.1","uuid":"^8.0.0","dayjs":"^1.8.26","eslint":"^6.8.0","moment":"^2.25.3","rimraf":"^3.0.2","tslint":"~5.18.0","ts-node":"^8.8.1","typedoc":"^0.17.3","webpack":"^4.42.1","codelyzer":"^5.2.2","coveralls":"^3.1.0","cross-env":"^7.0.2","ts-loader":"^6.2.2","typescript":"^3.8.3","@types/node":"^13.11.0","@types/uuid":"^7.0.3","webpack-cli":"^3.3.11","@babel/types":"^7.8.7","@types/estree":"0.0.44","eslint-loader":"^3.0.4","@ava/typescript":"^1.1.1","eslint-plugin-jsdoc":"^22.1.0","eslint-plugin-import":"^2.20.2","@typescript-eslint/parser":"^2.26.0","eslint-plugin-prefer-arrow":"^1.1.7","typedoc-plugin-custom-tags":"^1.0.2","@typescript-eslint/eslint-plugin":"^2.26.0","typedoc-plugin-external-module-name":"^3.0.0","@typescript-eslint/eslint-plugin-tslint":"^2.26.0"},"_npmOperationalInternal":{"tmp":"tmp/jackson-js_1.4.5_1688729827065_0.6270133027283256","host":"s3://npm-registry-packages"}},"1.4.6":{"name":"@badetitou/jackson-js","version":"1.4.6","keywords":["jackson-json","json","jackson","jackson-js","json-serialization","json-deserialization","json-stringifier","json-parser","jackson-javascript","json-stringify","json-parse","json-decoder","json-encoder"],"author":{"url":"https://github.com/badetitou","name":"Benoît Verhaeghe","email":"banoit@badetitou.fr"},"license":"MIT","_id":"@badetitou/jackson-js@1.4.6","maintainers":[{"name":"badetitou","email":"benoit@badetitou.fr"}],"homepage":"https://github.com/badetitou/jackson-js#readme","bugs":{"url":"https://github.com/badetitou/jackson-js/issues"},"ava":{"files":["tests/**/*.ts"],"require":["ts-node/register"],"extensions":["ts"]},"dist":{"shasum":"2f7dd414994e7765e7c4585e6e17f43b6da4bd73","tarball":"https://registry.npmjs.org/@badetitou/jackson-js/-/jackson-js-1.4.6.tgz","fileCount":64,"integrity":"sha512-kPERZbHDxwzxHR5uU0+jktCqg9oFGCqsDU+wpJw1mjTEOIPrCNW9bNI8mKWaElVq7edzNXtjBAQEu8D+UF853Q==","signatures":[{"sig":"MEQCIBrxc/WGNm0z4aY6yQxKod4ADGZiv8TnRJeQBwqzo3RgAiBKPuKYQ+WNoOeyJPby7tB7TcaZA6qQOofazwISWK7PbQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2788088},"main":"./dist/lib.node.js","types":"./dist/index.d.ts","browser":"./dist/lib.js","gitHead":"7d07a9483da0eaa325804ceb83cb4969e1603ee1","scripts":{"test":"nyc --no-clean npm run test-es6","clean":"rimraf ./dist","coverage":"nyc report --reporter=text-lcov > coverage/lcov.info","test-es6":"TZ=UTC TS_NODE_PROJECT=tsconfig.json ava --concurrency=8 --timeout=3m --verbose","test:win":"nyc --no-clean npm run test:win:test-es6","build:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:doc":"npm run clean:doc && npm run build:doc:latest && npm run build:doc:current-version && node ./build-index-docs.js","clean:doc":"rimraf ./docs/latest && rimraf ./docs/$npm_package_version","build:prod":"npm run clean && ./node_modules/.bin/webpack --config webpack.prod.js","build:win:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:win:prod":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.prod.js","start:node:dev":"node dist/lib.node","build:doc:latest":"typedoc --out ./docs/latest ./src --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json","test:win:test-es6":"ava --concurrency=8 --timeout=3m --verbose","build:doc:current-version":"typedoc --out ./docs/$npm_package_version ./src --name \"jackson-js $npm_package_version\" --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json"},"_npmUser":{"name":"badetitou","email":"benoit@badetitou.fr"},"repository":{"url":"git+https://github.com/badetitou/jackson-js.git","type":"git"},"_npmVersion":"8.19.4","description":"JavaScript object serialization and deserialization library using decorators. It supports also advanced Object concepts such as polymorphism, Object identity and cyclic objects.","directories":{},"_nodeVersion":"16.20.1","dependencies":{"meriyah":"^4.3.7","lodash.clone":"^4.5.0","lodash.clonedeep":"^4.5.0","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^3.5.2","nyc":"^15.0.1","uuid":"^8.0.0","dayjs":"^1.8.26","eslint":"^6.8.0","moment":"^2.25.3","rimraf":"^3.0.2","tslint":"~5.18.0","ts-node":"^8.8.1","typedoc":"^0.17.3","webpack":"^4.42.1","codelyzer":"^5.2.2","coveralls":"^3.1.0","cross-env":"^7.0.2","ts-loader":"^6.2.2","typescript":"^3.8.3","@types/node":"^13.11.0","@types/uuid":"^7.0.3","webpack-cli":"^3.3.11","@babel/types":"^7.8.7","@types/estree":"0.0.44","eslint-loader":"^3.0.4","@ava/typescript":"^1.1.1","eslint-plugin-jsdoc":"^22.1.0","eslint-plugin-import":"^2.20.2","@typescript-eslint/parser":"^2.26.0","eslint-plugin-prefer-arrow":"^1.1.7","typedoc-plugin-custom-tags":"^1.0.2","@typescript-eslint/eslint-plugin":"^2.26.0","typedoc-plugin-external-module-name":"^3.0.0","@typescript-eslint/eslint-plugin-tslint":"^2.26.0"},"_npmOperationalInternal":{"tmp":"tmp/jackson-js_1.4.6_1690183135352_0.0034999835811699853","host":"s3://npm-registry-packages"}},"1.4.7":{"name":"@badetitou/jackson-js","version":"1.4.7","keywords":["jackson-json","json","jackson","jackson-js","json-serialization","json-deserialization","json-stringifier","json-parser","jackson-javascript","json-stringify","json-parse","json-decoder","json-encoder"],"author":{"url":"https://github.com/badetitou","name":"Benoît Verhaeghe","email":"banoit@badetitou.fr"},"license":"MIT","_id":"@badetitou/jackson-js@1.4.7","maintainers":[{"name":"badetitou","email":"benoit@badetitou.fr"}],"homepage":"https://github.com/badetitou/jackson-js#readme","bugs":{"url":"https://github.com/badetitou/jackson-js/issues"},"ava":{"files":["tests/**/*.ts"],"require":["ts-node/register"],"extensions":["ts"]},"dist":{"shasum":"09099fa35f7d449a2316eac9f86a3e859d4ab0e8","tarball":"https://registry.npmjs.org/@badetitou/jackson-js/-/jackson-js-1.4.7.tgz","fileCount":64,"integrity":"sha512-4ZEIT1+b+30NUzOyzIgdlxNAMBZWexe5zA2ADJIekGSauEMLqBzQun4fCmXZK1K2XJ+HFJEy2Zgce/TZpG15gQ==","signatures":[{"sig":"MEUCIHonn9IpIHGJqcOZg6C5Q1ObqiPIROPWC/YQTzZgxxEwAiEA8LevakTjO3iDJuliy+bATv1ODRXo/uewbtoOeKSpzk4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2791782},"main":"./dist/lib.node.js","types":"./dist/index.d.ts","browser":"./dist/lib.js","gitHead":"5d7f9630934e6a611d656a459fe1da702d733b7c","scripts":{"test":"nyc --no-clean npm run test-es6","clean":"rimraf ./dist","coverage":"nyc report --reporter=text-lcov > coverage/lcov.info","test-es6":"TZ=UTC TS_NODE_PROJECT=tsconfig.json ava --concurrency=8 --timeout=3m --verbose","test:win":"nyc --no-clean npm run test:win:test-es6","build:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:doc":"npm run clean:doc && npm run build:doc:latest && npm run build:doc:current-version && node ./build-index-docs.js","clean:doc":"rimraf ./docs/latest && rimraf ./docs/$npm_package_version","build:prod":"npm run clean && ./node_modules/.bin/webpack --config webpack.prod.js","build:win:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:win:prod":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.prod.js","start:node:dev":"node dist/lib.node","build:doc:latest":"typedoc --out ./docs/latest ./src --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json","test:win:test-es6":"ava --concurrency=8 --timeout=3m --verbose","build:doc:current-version":"typedoc --out ./docs/$npm_package_version ./src --name \"jackson-js $npm_package_version\" --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json"},"_npmUser":{"name":"badetitou","email":"benoit@badetitou.fr"},"repository":{"url":"git+https://github.com/badetitou/jackson-js.git","type":"git"},"_npmVersion":"8.19.4","description":"JavaScript object serialization and deserialization library using decorators. It supports also advanced Object concepts such as polymorphism, Object identity and cyclic objects.","directories":{},"_nodeVersion":"16.20.1","dependencies":{"meriyah":"^4.3.7","lodash.clone":"^4.5.0","lodash.clonedeep":"^4.5.0","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^3.5.2","nyc":"^15.0.1","uuid":"^8.0.0","dayjs":"^1.8.26","eslint":"^6.8.0","moment":"^2.25.3","rimraf":"^3.0.2","tslint":"~5.18.0","ts-node":"^8.8.1","typedoc":"^0.17.3","webpack":"^4.42.1","codelyzer":"^5.2.2","coveralls":"^3.1.0","cross-env":"^7.0.2","ts-loader":"^6.2.2","typescript":"^3.8.3","@types/node":"^13.11.0","@types/uuid":"^7.0.3","webpack-cli":"^3.3.11","@babel/types":"^7.8.7","@types/estree":"0.0.44","eslint-loader":"^3.0.4","@ava/typescript":"^1.1.1","eslint-plugin-jsdoc":"^22.1.0","eslint-plugin-import":"^2.20.2","@typescript-eslint/parser":"^2.26.0","eslint-plugin-prefer-arrow":"^1.1.7","typedoc-plugin-custom-tags":"^1.0.2","@typescript-eslint/eslint-plugin":"^2.26.0","typedoc-plugin-external-module-name":"^3.0.0","@typescript-eslint/eslint-plugin-tslint":"^2.26.0"},"_npmOperationalInternal":{"tmp":"tmp/jackson-js_1.4.7_1690200954565_0.45381148819266803","host":"s3://npm-registry-packages"}},"1.4.8":{"name":"@badetitou/jackson-js","version":"1.4.8","keywords":["jackson-json","json","jackson","jackson-js","json-serialization","json-deserialization","json-stringifier","json-parser","jackson-javascript","json-stringify","json-parse","json-decoder","json-encoder"],"author":{"url":"https://github.com/badetitou","name":"Benoît Verhaeghe","email":"banoit@badetitou.fr"},"license":"MIT","_id":"@badetitou/jackson-js@1.4.8","maintainers":[{"name":"badetitou","email":"benoit@badetitou.fr"}],"homepage":"https://github.com/badetitou/jackson-js#readme","bugs":{"url":"https://github.com/badetitou/jackson-js/issues"},"ava":{"files":["tests/**/*.ts"],"require":["ts-node/register"],"extensions":["ts"]},"dist":{"shasum":"4a285bc5cfa1b3f4d0d52f9b0baf55a3d9d8c841","tarball":"https://registry.npmjs.org/@badetitou/jackson-js/-/jackson-js-1.4.8.tgz","fileCount":64,"integrity":"sha512-YQtzwLhVizFqs1DkA83xQmVrMb+mRQAPMp03FQwaVZf2twVY9GWGuTt5us+uT6NcPf3T3d1dlF99t3AyoAMlmg==","signatures":[{"sig":"MEQCIGGMtFY5xEmrpKIRnPNVj9N9cCuL8r0rs7nPhTpYOce7AiBu9ZE2YlivaImknO6yFggVIUY37jMeYzGizCLBB7BFyg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2800746},"main":"./dist/lib.node.js","types":"./dist/index.d.ts","browser":"./dist/lib.js","gitHead":"fbc53ac9d69feb71a7be9aab686140ead56982dc","scripts":{"test":"nyc --no-clean npm run test-es6","clean":"rimraf ./dist","coverage":"nyc report --reporter=text-lcov > coverage/lcov.info","test-es6":"TZ=UTC TS_NODE_PROJECT=tsconfig.json ava --concurrency=8 --timeout=3m --verbose","test:win":"nyc --no-clean npm run test:win:test-es6","build:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:doc":"npm run clean:doc && npm run build:doc:latest && npm run build:doc:current-version && node ./build-index-docs.js","clean:doc":"rimraf ./docs/latest && rimraf ./docs/$npm_package_version","build:prod":"npm run clean && ./node_modules/.bin/webpack --config webpack.prod.js","build:win:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:win:prod":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.prod.js","start:node:dev":"node dist/lib.node","build:doc:latest":"typedoc --out ./docs/latest ./src --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json","test:win:test-es6":"ava --concurrency=8 --timeout=3m --verbose","build:doc:current-version":"typedoc --out ./docs/$npm_package_version ./src --name \"jackson-js $npm_package_version\" --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json"},"_npmUser":{"name":"badetitou","email":"benoit@badetitou.fr"},"repository":{"url":"git+https://github.com/badetitou/jackson-js.git","type":"git"},"_npmVersion":"8.19.4","description":"JavaScript object serialization and deserialization library using decorators. It supports also advanced Object concepts such as polymorphism, Object identity and cyclic objects.","directories":{},"_nodeVersion":"16.20.2","dependencies":{"meriyah":"^4.3.7","lodash.clone":"^4.5.0","lodash.clonedeep":"^4.5.0","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^3.5.2","nyc":"^15.0.1","uuid":"^8.0.0","dayjs":"^1.8.26","eslint":"^6.8.0","moment":"^2.25.3","rimraf":"^3.0.2","tslint":"~5.18.0","ts-node":"^8.8.1","typedoc":"^0.17.3","webpack":"^4.42.1","codelyzer":"^5.2.2","coveralls":"^3.1.0","cross-env":"^7.0.2","ts-loader":"^6.2.2","typescript":"^3.8.3","@types/node":"^13.11.0","@types/uuid":"^7.0.3","webpack-cli":"^3.3.11","@babel/types":"^7.8.7","@types/estree":"0.0.44","eslint-loader":"^3.0.4","@ava/typescript":"^1.1.1","eslint-plugin-jsdoc":"^22.1.0","eslint-plugin-import":"^2.20.2","@typescript-eslint/parser":"^2.26.0","eslint-plugin-prefer-arrow":"^1.1.7","typedoc-plugin-custom-tags":"^1.0.2","@typescript-eslint/eslint-plugin":"^2.26.0","typedoc-plugin-external-module-name":"^3.0.0","@typescript-eslint/eslint-plugin-tslint":"^2.26.0"},"_npmOperationalInternal":{"tmp":"tmp/jackson-js_1.4.8_1692360101753_0.4461136543684123","host":"s3://npm-registry-packages"}},"1.4.9":{"name":"@badetitou/jackson-js","version":"1.4.9","keywords":["jackson-json","json","jackson","jackson-js","json-serialization","json-deserialization","json-stringifier","json-parser","jackson-javascript","json-stringify","json-parse","json-decoder","json-encoder"],"author":{"url":"https://github.com/badetitou","name":"Benoît Verhaeghe","email":"banoit@badetitou.fr"},"license":"MIT","_id":"@badetitou/jackson-js@1.4.9","maintainers":[{"name":"badetitou","email":"benoit@badetitou.fr"}],"homepage":"https://github.com/badetitou/jackson-js#readme","bugs":{"url":"https://github.com/badetitou/jackson-js/issues"},"ava":{"files":["tests/**/*.ts"],"require":["ts-node/register"],"extensions":["ts"]},"dist":{"shasum":"1199da4a91d2634843fd8cfd39d8e2f35b67c462","tarball":"https://registry.npmjs.org/@badetitou/jackson-js/-/jackson-js-1.4.9.tgz","fileCount":64,"integrity":"sha512-4lgw7jexT8tO4jsD2xRVZrNT/p1m50CDN2TiqwubOnLe+85SY548ACYkJ3qAhLfiPkCfx7U/rKyjrGM6iI18/Q==","signatures":[{"sig":"MEUCIDyL29RuWiZ6UcmlYLOKYV2n26kvjPMCKgrLzlqPLeXXAiEAmO5eI3RmtSf/J5cLLBdnSfP0tRKEoyASNJi163pYoQc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2802283},"main":"./dist/lib.node.js","types":"./dist/index.d.ts","browser":"./dist/lib.js","gitHead":"1560978fca7ab2212937ea0c9aabeec665c06ab9","scripts":{"test":"nyc --no-clean npm run test-es6","clean":"rimraf ./dist","coverage":"nyc report --reporter=text-lcov > coverage/lcov.info","test-es6":"TZ=UTC TS_NODE_PROJECT=tsconfig.json ava --concurrency=8 --timeout=3m --verbose","test:win":"nyc --no-clean npm run test:win:test-es6","build:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:doc":"npm run clean:doc && npm run build:doc:latest && npm run build:doc:current-version && node ./build-index-docs.js","clean:doc":"rimraf ./docs/latest && rimraf ./docs/$npm_package_version","build:prod":"npm run clean && ./node_modules/.bin/webpack --config webpack.prod.js","build:win:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:win:prod":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.prod.js","start:node:dev":"node dist/lib.node","build:doc:latest":"typedoc --out ./docs/latest ./src --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json","test:win:test-es6":"ava --concurrency=8 --timeout=3m --verbose","build:doc:current-version":"typedoc --out ./docs/$npm_package_version ./src --name \"jackson-js $npm_package_version\" --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json"},"_npmUser":{"name":"badetitou","email":"benoit@badetitou.fr"},"repository":{"url":"git+https://github.com/badetitou/jackson-js.git","type":"git"},"_npmVersion":"8.19.4","description":"JavaScript object serialization and deserialization library using decorators. It supports also advanced Object concepts such as polymorphism, Object identity and cyclic objects.","directories":{},"_nodeVersion":"16.20.2","dependencies":{"meriyah":"^4.3.7","lodash.clone":"^4.5.0","lodash.clonedeep":"^4.5.0","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"ava":"^3.5.2","nyc":"^15.0.1","uuid":"^8.0.0","dayjs":"^1.8.26","eslint":"^6.8.0","moment":"^2.25.3","rimraf":"^3.0.2","tslint":"~5.18.0","ts-node":"^8.8.1","typedoc":"^0.17.3","webpack":"^4.42.1","codelyzer":"^5.2.2","coveralls":"^3.1.0","cross-env":"^7.0.2","ts-loader":"^6.2.2","typescript":"^3.8.3","@types/node":"^13.11.0","@types/uuid":"^7.0.3","webpack-cli":"^3.3.11","@babel/types":"^7.8.7","@types/estree":"0.0.44","eslint-loader":"^3.0.4","@ava/typescript":"^1.1.1","eslint-plugin-jsdoc":"^22.1.0","eslint-plugin-import":"^2.20.2","@typescript-eslint/parser":"^2.26.0","eslint-plugin-prefer-arrow":"^1.1.7","typedoc-plugin-custom-tags":"^1.0.2","@typescript-eslint/eslint-plugin":"^2.26.0","typedoc-plugin-external-module-name":"^3.0.0","@typescript-eslint/eslint-plugin-tslint":"^2.26.0"},"_npmOperationalInternal":{"tmp":"tmp/jackson-js_1.4.9_1692796268790_0.4454671271006876","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"@badetitou/jackson-js","version":"1.5.0","description":"JavaScript object serialization and deserialization library using decorators. It supports also advanced Object concepts such as polymorphism, Object identity and cyclic objects.","author":{"name":"Benoît Verhaeghe","email":"banoit@badetitou.fr","url":"https://github.com/badetitou"},"keywords":["jackson-json","json","jackson","jackson-js","json-serialization","json-deserialization","json-stringifier","json-parser","jackson-javascript","json-stringify","json-parse","json-decoder","json-encoder"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/badetitou/jackson-js.git"},"scripts":{"clean":"rimraf ./dist","clean:doc":"rimraf ./docs/latest && rimraf ./docs/$npm_package_version","build:doc":"npm run clean:doc && npm run build:doc:latest && npm run build:doc:current-version && node ./build-index-docs.js","build:doc:latest":"typedoc --out ./docs/latest ./src --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json","build:doc:current-version":"typedoc --out ./docs/$npm_package_version ./src --name \"jackson-js $npm_package_version\" --readme none --excludePrivate --excludeExternals --exclude \"**/!(@types)/*+(util|index).ts\" --custom-tags-config typedoc-tags-config.json","build:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:prod":"npm run clean && ./node_modules/.bin/webpack --config webpack.prod.js","build:win:dev":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.dev.js","build:win:prod":"npm run clean && \"./node_modules/.bin/webpack\" --config webpack.prod.js","start:node:dev":"node dist/lib.node","test-es6":"TZ=UTC TS_NODE_PROJECT=tsconfig.json ava --concurrency=8 --timeout=3m --verbose","test":"nyc --no-clean npm run test-es6","test:win:test-es6":"ava --concurrency=1 --timeout=3m --verbose","test:win":"nyc --no-clean npm run test:win:test-es6","coverage":"nyc report --reporter=text-lcov > coverage/lcov.info"},"main":"./dist/lib.node.js","browser":"./dist/lib.js","types":"./dist/index.d.ts","dependencies":{"lodash.clone":"^4.5.0","lodash.clonedeep":"^4.5.0","meriyah":"^4.3.7","reflect-metadata":"^0.1.13"},"devDependencies":{"@ava/typescript":"^1.1.1","@babel/types":"^7.8.7","@types/estree":"0.0.44","@types/node":"^13.11.0","@types/uuid":"^7.0.3","@typescript-eslint/eslint-plugin":"^7.2.0","@typescript-eslint/eslint-plugin-tslint":"^7.0.2","@typescript-eslint/parser":"^7.2.0","ava":"^6.1.2","coveralls":"^3.1.1","cross-env":"^7.0.2","dayjs":"^1.8.26","eslint":"^8.56.0","eslint-webpack-plugin":"^4.1.0","eslint-plugin-import":"^2.29.1","eslint-plugin-jsdoc":"^48.2.1","eslint-plugin-prefer-arrow":"^1.2.3","moment":"^2.25.3","nyc":"^15.0.1","rimraf":"^3.0.2","ts-loader":"^6.2.2","ts-node":"^10.9.2","typescript":"^5.4.2","uuid":"^8.0.0","webpack":"^5.90.3","webpack-cli":"^5.1.4"},"ava":{"extensions":["ts"],"require":["ts-node/register"],"files":["tests/**/*.ts"]},"gitHead":"5adca1b5b9c911a65048bc6fe72d18a26346051a","_id":"@badetitou/jackson-js@1.5.0","bugs":{"url":"https://github.com/badetitou/jackson-js/issues"},"homepage":"https://github.com/badetitou/jackson-js#readme","_nodeVersion":"25.7.0","_npmVersion":"11.11.0","dist":{"integrity":"sha512-MkfKJ5oX94W8viNYV+kHj+esJxxVFnfiZMUoX272rilxZrq7UCHKHpjawqkS5zQJbU/gCuW/uPODC7AeHB1Oog==","shasum":"b91c70067fb3890ee0632a714fde4ef55139886c","tarball":"https://registry.npmjs.org/@badetitou/jackson-js/-/jackson-js-1.5.0.tgz","fileCount":66,"unpackedSize":3016212,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDmsGH+WY70ThIMCZHeHlhLtMsve5X8kGPPrXDEm8qZ/QIgbepSsBR9LqOgUgp5iGnhiwl734+e7AGt+9Dv62zo4cg="}]},"_npmUser":{"name":"badetitou","email":"benoit@badetitou.fr"},"directories":{},"maintainers":[{"name":"badetitou","email":"benoit@badetitou.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jackson-js_1.5.0_1774437459553_0.9239808713400095"},"_hasShrinkwrap":false}},"time":{"created":"2023-06-27T13:11:35.742Z","modified":"2026-03-25T11:17:39.876Z","1.4.2":"2023-06-27T13:11:36.120Z","1.4.3":"2023-06-28T06:45:37.299Z","1.4.4":"2023-07-03T08:20:57.326Z","1.4.5":"2023-07-07T11:37:07.329Z","1.4.6":"2023-07-24T07:18:55.626Z","1.4.7":"2023-07-24T12:15:54.771Z","1.4.8":"2023-08-18T12:01:42.049Z","1.4.9":"2023-08-23T13:11:09.011Z","1.5.0":"2026-03-25T11:17:39.756Z"},"bugs":{"url":"https://github.com/badetitou/jackson-js/issues"},"author":{"name":"Benoît Verhaeghe","email":"banoit@badetitou.fr","url":"https://github.com/badetitou"},"license":"MIT","homepage":"https://github.com/badetitou/jackson-js#readme","keywords":["jackson-json","json","jackson","jackson-js","json-serialization","json-deserialization","json-stringifier","json-parser","jackson-javascript","json-stringify","json-parse","json-decoder","json-encoder"],"repository":{"type":"git","url":"git+https://github.com/badetitou/jackson-js.git"},"description":"JavaScript object serialization and deserialization library using decorators. It supports also advanced Object concepts such as polymorphism, Object identity and cyclic objects.","maintainers":[{"name":"badetitou","email":"benoit@badetitou.fr"}],"readme":"# jackson-js\n\n[![npm downloads](https://img.shields.io/npm/dm/@badetitou/jackson-js.svg)](https://www.npmjs.com/package/@badetitou/jackson-js)\n[![jackson-js version](https://img.shields.io/npm/v/@badetitou/jackson-js.svg)](https://www.npmjs.com/package/@badetitou/jackson-js)\n[![CI](https://github.com/badetitou/jackson-js/actions/workflows/ci.yml/badge.svg)](https://github.com/badetitou/jackson-js/actions/workflows/ci.yml)\n[![Coverage Status](https://coveralls.io/repos/github/badetitou/jackson-js/badge.svg?branch=main)](https://coveralls.io/github/badetitou/jackson-js?branch=main)\n[![license](https://img.shields.io/github/license/mashape/apistatus.svg)](/LICENSE)\n\nAs the name implies, `jackson-js` is heavily inspired by the famous Java [FasterXML/jackson library](https://github.com/FasterXML/jackson).\n\nIt can be used on both **client** (browser) and **server** (Node.js) side.\n\n## First of all\n\nThis project inherits the incredible work of [outfoxx](https://github.com/outfoxx/jackson-js/) and [pichillilorenzo](https://github.com/pichillilorenzo/jackson-js).\nIt mainly focuses on performance issues due to the low performance of the `reflect-metadata` project by trying to reduce its usage and other little code optimization.\n\n## Why this library? What's the difference between using this library instead of `JSON.parse` and `JSON.stringify`?\n\nFor simple cases, you don't need this library of course, you can just use `JSON.parse` and `JSON.stringify` to serialize/deserialize JSON.\n\nWith `jackson-js` , you can easily manipulate your JavaScript objects/values serialization/deserialization using decorators such as `@JsonProperty()`, `@JsonFormat()`, `@JsonIgnore()`, and more. However, this library uses `JSON.parse` and `JSON.stringify` under the hood.\n\nFurthermore:\n\n- it not only deserializes JSON text into a JavaScript object, it also converts it into an **instance of the class** specified in the `context` option (similar packages are: [class-transformer](https://github.com/typestack/class-transformer) and [TypedJSON](https://github.com/JohnWeisz/TypedJSON)); instead, with `JSON.parse` you will get just a simple plain (literal) JavaScript object (just `Object` type);\n- it supports more advanced Object concepts such as **polymorphism** and **Object identity**;\n- it supports **cyclic object** serialization/deserialization;\n- it supports serialization/deserialization of other native JavaScript types: `Map`, `Set`, `BigInt`, Typed Arrays (such as `Int8Array`);\n\nThis library can be useful in more complex cases, for example when you want to:\n\n- manipulate JSON in depth;\n- restore a JavaScript type (a similar package is [class-transformer](https://github.com/typestack/class-transformer));\n- preserve type information (using polymorphic type handling decorators: `@JsonTypeInfo`, `@JsonSubTypes`, and `@JsonTypeName`. A similar package is [TypedJSON](https://github.com/JohnWeisz/TypedJSON));\n- hide some properties for certain HTTP endpoints or some other external service;\n- have different JSON responses for some external applications or manage different JSON data coming from other applications (for example you need to communicate with a Spring Boot application that uses different JSON Schema for the same model or with other applications made with Python, PHP, etc...);\n- manage cyclic references;\n- manage other JavaScript native types such as Maps and Sets;\n- etc.\n\nMost of the use cases of the Java [FasterXML/jackson](https://github.com/FasterXML/jackson) annotations are similar or equal.\n\n## Installation\n\n```sh\nnpm install --save @badetitoujackson-js\n```\n\n## API\n\nAPI docs can be found [here](https://pichillilorenzo.github.io/jackson-js).\n\nThe main classes that `jackson-js` offers to serialize and deserialize JavaScript objects are `ObjectMapper`, `JsonStringifier`, and `JsonParser`.\n\n### ObjectMapper\n\n`ObjectMapper` provides functionality for both reading and writing JSON and applies `jackson-js` **decorators**. It will use instances of `JsonParser` and `JsonStringifier` for implementing the actual reading/writing of JSON. It has two methods:\n\n- `stringify(obj: T, context?: JsonStringifierContext): string`: a method for serializing a JavaScript object or a value to a JSON string with **decorators** applied;\n- `parse(text: string, context?: JsonParserContext): T`: a method for deserializing a JSON string into a JavaScript object/value (of type `T`, based on the context given) with **decorators** applied.\n\n### JsonParser\n\n`JsonParser` provides functionality for writing JSON and applies `jackson-js` **decorators**. The main methods are:\n\n- `parse(text: string, context?: JsonParserContext): T` : a method for deserializing a JSON string into a JavaScript object/value (of type `T`, based on the context given) with **decorators** applied;\n- `transform(value: any, context?: JsonParserContext): any` : a method for applying `jackson-js` **decorators** to a JavaScript object/value parsed. It returns a JavaScript object/value with decorators applied.\n\n### JsonStringifier\n\n`JsonStringifier` provides functionality for reading JSON and applies `jackson-js` **decorators**. The main methods are:\n\n- `stringify(obj: T, context?: JsonStringifierContext): string`: a method for serializing a JavaScript object or a value to a JSON string with **decorators** applied;\n- `transform(value: any, context?: JsonStringifierContext): any`: a method for applying `jackson-js` **decorators** to a JavaScript object/value. It returns a JavaScript object/value with decorators applied and ready to be JSON serialized.\n\n### Decorators\n\nDecorators available:\n\n- [JsonAlias](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonalias) (decorator options: [JsonAliasOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonaliasoptions.html))\n- [JsonAnyGetter](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonanygetter) (decorator options: [JsonAnyGetterOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonanygetteroptions.html))\n- [JsonAnySetter](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonanysetter) (decorator options: [JsonAnySetterOptions](https://pichillilorenzo.github.io/jackson-js/latest/modules/types.html#jsonanysetteroptions))\n- [JsonAppend](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonappend) (decorator options: [JsonAppendOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonappendoptions.html))\n- [JsonBackReference](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonbackreference) (decorator options: [JsonBackReferenceOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonbackreferenceoptions.html))\n- [JsonClassType](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonclasstype) (decorator options: [JsonClassTypeOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonclasstypeoptions.html))\n- [JsonCreator](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsoncreator) (decorator options: [JsonCreatorOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsoncreatoroptions.html))\n- [JsonDeserialize](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsondeserialize) (decorator options: [JsonDeserializeOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsondeserializeoptions.html))\n- [JsonFilter](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonfilter) (decorator options: [JsonFilterOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonfilteroptions.html))\n- [JsonFormat](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonformat) (decorator options: [JsonFormatOptions](https://pichillilorenzo.github.io/jackson-js/latest/modules/types.html#jsonformatoptions))\n- [JsonGetter](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsongetter) (decorator options: [JsonGetterOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsongetteroptions.html))\n- [JsonIdentityInfo](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonidentityinfo) (decorator options: [JsonIdentityInfoOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonidentityinfooptions.html))\n- [JsonIdentityReference](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonidentityreference) (decorator options: [JsonIdentityReferenceOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonidentityreferenceoptions.html))\n- [JsonIgnore](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonignore) (decorator options: [JsonIgnoreOptions](https://pichillilorenzo.github.io/jackson-js/latest/modules/types.html#jsonignoreoptions))\n- [JsonIgnoreProperties](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonignoreproperties) (decorator options: [JsonIgnorePropertiesOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonignorepropertiesoptions.html))\n- [JsonIgnoreType](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonignoretype) (decorator options: [JsonIgnoreTypeOptions](https://pichillilorenzo.github.io/jackson-js/latest/modules/types.html#jsonignoretypeoptions))\n- [JsonInclude](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsoninclude) (decorator options: [JsonIncludeOptions](https://pichillilorenzo.github.io/jackson-js/latest/modules/types.html#jsonincludeoptions))\n- [JsonInject](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsoninject) (decorator options: [JsonInjectOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsoninjectoptions.html))\n- [JsonManagedReference](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonmanagedreference) (decorator options: [JsonManagedReferenceOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonmanagedreferenceoptions.html))\n- [JsonNaming](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonnaming) (decorator options: [JsonNamingOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonnamingoptions.html))\n- [JsonProperty](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonproperty) (decorator options: [JsonPropertyOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonpropertyoptions.html))\n- [JsonPropertyOrder](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonpropertyorder) (decorator options: [JsonPropertyOrderOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonpropertyorderoptions.html))\n- [JsonRawValue](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonrawvalue) (decorator options: [JsonRawValueOptions](https://pichillilorenzo.github.io/jackson-js/latest/modules/types.html#jsonrawvalueoptions))\n- [JsonRootName](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonrootname) (decorator options: [JsonRootNameOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonrootnameoptions.html))\n- [JsonSerialize](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonserialize) (decorator options: [JsonSerializeOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonserializeoptions.html))\n- [JsonSetter](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonsetter) (decorator options: [JsonSetterOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonsetteroptions.html))\n- [JsonSubTypes](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonsubtypes) (decorator options: [JsonSubTypesOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonsubtypesoptions.html))\n- [JsonTypeId](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsontypeid) (decorator options: [JsonTypeIdOptions](https://pichillilorenzo.github.io/jackson-js/latest/modules/types.html#jsontypeidoptions))\n- [JsonTypeIdResolver](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsontypeidresolver) (decorator options: [JsonTypeIdResolverOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsontypeidresolveroptions.html))\n- [JsonTypeInfo](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsontypeinfo) (decorator options: [JsonTypeInfoOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsontypeinfooptions.html))\n- [JsonTypeName](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsontypename) (decorator options: [JsonTypeNameOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsontypenameoptions.html))\n- [JsonUnwrapped](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonunwrapped) (decorator options: [JsonUnwrappedOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonunwrappedoptions.html))\n- [JsonValue](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonvalue) (decorator options: [JsonValueOptions](https://pichillilorenzo.github.io/jackson-js/latest/modules/types.html#jsonvalueoptions))\n- [JsonView](https://pichillilorenzo.github.io/jackson-js/latest/modules/decorators.html#jsonview) (decorator options: [JsonViewOptions](https://pichillilorenzo.github.io/jackson-js/latest/interfaces/types.jsonviewoptions.html))\n\n## Important note\n\nThe most important decorators are:\n\n- `@JsonProperty()`: each class property (or its getter/setter) must be decorated with this decorator, otherwise deserialization and serialization will not work properly! That's because, for example, given a JavaScript class, there isn't any way or API (such as [Reflection API for Java](https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/package-summary.html)) to get for sure all the class properties; also because, sometimes, compilers such as [TypeScript](https://www.typescriptlang.org/) and [Babel](https://babeljs.io/), can strip class properties after compilation from the class properties declaration;\n- `@JsonClassType()`: this decorator is used to define the type of a class property or method parameter. This information is used during serialization and, more important, during deserialization to know about **the type of a property/parameter**. This is necessary because JavaScript isn't a strongly-typed programming language, so, for example, during deserialization, without the usage of this decorator, there isn't any way to know the specific type of a class property, such as a `Date` or a custom Class type.\n\nHere is a quick example about these two decorators:\n\n```typescript\nclass Book {\n  @JsonProperty() @JsonClassType({type: () => [String]})\n  name: string;\n\n  @JsonProperty() @JsonClassType({type: () => [String]})\n  category: string;\n}\n\nclass Writer {\n  @JsonProperty() @JsonClassType({type: () => [Number]})\n  id: number;\n  @JsonProperty() @JsonClassType({type: () => [String]})\n  name: string;\n\n  @JsonProperty() @JsonClassType({type: () => [Array, [Book]]})\n  books: Book[] = [];\n}\n```\n\n## Tutorials\n\n- [Jackson-js: Powerful JavaScript decorators to serialize/deserialize objects into JSON and vice versa (Part 1)](https://itnext.io/jackson-js-powerful-javascript-decorators-to-serialize-deserialize-objects-into-json-and-vice-df952454cf?source=friends_link&sk=a65bd247eca2f95fdfddda34447a6db6) - Article available at [[itnext.io](https://itnext.io/jackson-js-powerful-javascript-decorators-to-serialize-deserialize-objects-into-json-and-vice-df952454cf?source=friends_link&sk=a65bd247eca2f95fdfddda34447a6db6) | [dev.to](https://dev.to/pichillilorenzo/jackson-js-powerful-javascript-decorators-to-serialize-deserialize-objects-into-json-and-vice-versa-part-1-5484)].\n- [Jackson-js: Examples for client (Angular) and server (Node.js) side (Part 2)](https://medium.com/@pichillilorenzo/jackson-js-examples-for-client-and-server-side-part-2-7e66df74c851?source=friends_link&sk=2636fca640284894c63cb3c689a0e822) - Article available at [[medium.com](https://medium.com/@pichillilorenzo/jackson-js-examples-for-client-and-server-side-part-2-7e66df74c851?source=friends_link&sk=2636fca640284894c63cb3c689a0e822) | [dev.to](https://dev.to/pichillilorenzo/jackson-js-examples-for-client-angular-and-server-node-js-side-part-2-128n)]\n\n## Examples\n\nCode examples can be found inside the `tests` folder and in [this example repository](https://github.com/pichillilorenzo/jackson-js-examples). The example repository gives a simple example using the `jackson-js` library with Angular 9 for the client side and two examples for the server side: one using Node.js + Express + SQLite3 (with Sequelize 5) and another one using Node.js + LoopBack 4.\n","readmeFilename":"README.md"}