{"_id":"secure-json-parse","_rev":"4086631","name":"secure-json-parse","description":"JSON parse with prototype poisoning protection","dist-tags":{"latest":"4.1.0","next":"3.0.0"},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"time":{"modified":"2025-12-02T22:11:18.000Z","created":"2019-04-29T14:35:37.048Z","4.1.0":"2025-10-05T12:41:31.433Z","4.0.0":"2025-03-09T17:09:27.273Z","3.0.2":"2025-01-03T09:13:55.389Z","3.0.1":"2024-11-18T14:01:20.553Z","3.0.0":"2024-09-03T17:19:48.637Z","2.7.0":"2023-01-10T14:27:30.112Z","2.6.0":"2022-12-05T00:20:32.818Z","2.5.0":"2022-07-29T22:37:49.600Z","2.4.0":"2021-04-06T09:32:56.047Z","2.3.2":"2021-03-15T10:04:06.271Z","2.3.1":"2021-02-17T16:38:10.299Z","2.3.0":"2021-01-26T20:57:16.639Z","2.2.0":"2021-01-11T09:59:16.614Z","2.1.0":"2020-01-15T16:19:59.929Z","2.0.0":"2019-10-23T16:32:34.533Z","1.0.0":"2019-04-30T07:31:54.015Z","0.1.0":"2019-04-29T14:35:37.048Z"},"users":{},"author":{"name":"Eran Hammer","email":"eran@sideway.com"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"versions":{"4.1.0":{"name":"secure-json-parse","version":"4.1.0","description":"JSON parse with prototype poisoning protection","main":"index.js","type":"commonjs","types":"types/index.d.ts","scripts":{"benchmark":"cd benchmarks && npm install && npm run all","lint":"eslint","lint:fix":"eslint --fix","test":"nyc npm run test:unit && npm run test:typescript","test:unit":"tape \"test/*.test.js\"","test:typescript":"tsd","test:browser":"airtap test/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"author":{"name":"Eran Hammer","email":"eran@sideway.com"},"contributors":[{"name":"Matteo Collina","email":"hello@matteocollina.com"},{"name":"Tomas Della Vedova","url":"http://delved.org"},{"name":"Aras Abbasi","email":"aras.abbasi@gmail.com"},{"name":"Frazer Smith","email":"frazer.dev@icloud.com","url":"https://github.com/fdawgs"}],"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","funding":[{"type":"github","url":"https://github.com/sponsors/fastify"},{"type":"opencollective","url":"https://opencollective.com/fastify"}],"devDependencies":{"airtap":"^5.0.0","airtap-playwright":"^1.0.1","eslint":"^9.17.0","neostandard":"^0.12.0","nyc":"^17.0.0","playwright":"^1.43.1","tape":"^5.7.5","tsd":"^0.33.0"},"_id":"secure-json-parse@4.1.0","gitHead":"bb46008b83674b74b482250bd54d8e2acb516358","_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"shasum":"4f1ab41c67a13497ea1b9131bb4183a22865477c","size":9853,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-4.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-4.1.0.tgz"},"_npmUser":{"name":"eomm","email":"behemoth89@gmail.com"},"directories":{},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/secure-json-parse_4.1.0_1759668091245_0.14942325208795104"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-05T12:41:31.433Z","publish_time":1759668091433,"_source_registry_name":"default","_cnpm_publish_time":1759668091433},"4.0.0":{"name":"secure-json-parse","version":"4.0.0","description":"JSON parse with prototype poisoning protection","main":"index.js","type":"commonjs","types":"types/index.d.ts","scripts":{"benchmark":"cd benchmarks && npm install && npm run all","lint":"eslint","lint:fix":"eslint --fix","test":"nyc npm run test:unit && npm run test:typescript","test:unit":"tape \"test/*.test.js\"","test:typescript":"tsd","test:browser":"airtap test/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"author":{"name":"Eran Hammer","email":"eran@sideway.com"},"contributors":[{"name":"Matteo Collina","email":"hello@matteocollina.com"},{"name":"Tomas Della Vedova","url":"http://delved.org"},{"name":"Aras Abbasi","email":"aras.abbasi@gmail.com"},{"name":"Frazer Smith","email":"frazer.dev@icloud.com","url":"https://github.com/fdawgs"}],"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","funding":[{"type":"github","url":"https://github.com/sponsors/fastify"},{"type":"opencollective","url":"https://opencollective.com/fastify"}],"devDependencies":{"@fastify/pre-commit":"^2.1.0","airtap":"^5.0.0","airtap-playwright":"^1.0.1","eslint":"^9.17.0","neostandard":"^0.12.0","nyc":"^17.0.0","playwright":"^1.43.1","tape":"^5.7.5","tsd":"^0.31.0"},"_id":"secure-json-parse@4.0.0","gitHead":"3f24016677aae9c37513eeee30e346bf70ff1575","_nodeVersion":"20.18.1","_npmVersion":"10.8.2","dist":{"shasum":"2ee1b7581be38ab348bab5a3e49280ba80a89c85","size":8676,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-4.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-4.0.0.tgz"},"_npmUser":{"name":"fdawgs","email":"frazer.dev@icloud.com"},"directories":{},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/secure-json-parse_4.0.0_1741540167098_0.4131278453902343"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-03-09T17:09:27.273Z","publish_time":1741540167273,"_source_registry_name":"default","_cnpm_publish_time":1741540167273},"3.0.2":{"name":"secure-json-parse","version":"3.0.2","description":"JSON parse with prototype poisoning protection","main":"index.js","type":"commonjs","types":"types/index.d.ts","scripts":{"benchmark":"cd benchmarks && npm install && npm run all","lint":"eslint","lint:fix":"eslint --fix","test":"nyc npm run test:unit && npm run test:typescript","test:unit":"tape \"test/*.test.js\"","test:typescript":"tsd","test:browser":"airtap test/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"author":{"name":"Eran Hammer","email":"eran@sideway.com"},"contributors":[{"name":"Matteo Collina","email":"hello@matteocollina.com"},{"name":"Tomas Della Vedova","url":"http://delved.org"},{"name":"Aras Abbasi","email":"aras.abbasi@gmail.com"},{"name":"Frazer Smith","email":"frazer.dev@icloud.com","url":"https://github.com/fdawgs"}],"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","funding":[{"type":"github","url":"https://github.com/sponsors/fastify"},{"type":"opencollective","url":"https://opencollective.com/fastify"}],"devDependencies":{"@fastify/pre-commit":"^2.1.0","airtap":"^5.0.0","airtap-playwright":"^1.0.1","eslint":"^9.17.0","neostandard":"^0.12.0","nyc":"^17.0.0","playwright":"^1.43.1","tape":"^5.7.5","tsd":"^0.31.0"},"_id":"secure-json-parse@3.0.2","gitHead":"370ca288e38279050b5578586066327944b940db","_nodeVersion":"20.18.1","_npmVersion":"10.8.2","dist":{"shasum":"255b03bb0627ba5805f64f384b0a7691d8cb021b","size":8764,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-3.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-3.0.2.tgz"},"_npmUser":{"name":"fdawgs","email":"frazer.dev@icloud.com"},"directories":{},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/secure-json-parse_3.0.2_1735895635215_0.09824219116774868"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-03T09:13:55.389Z","publish_time":1735895635389,"_source_registry_name":"default","_cnpm_publish_time":1735895635389},"3.0.1":{"name":"secure-json-parse","version":"3.0.1","description":"JSON parse with prototype poisoning protection","main":"index.js","type":"commonjs","types":"types/index.d.ts","scripts":{"benchmark":"cd benchmarks && npm install && npm run all","lint":"standard","test":"nyc npm run test:unit && npm run test:typescript","test:unit":"tape \"test/*.test.js\"","test:typescript":"tsd","test:browser":"airtap test/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","devDependencies":{"@fastify/pre-commit":"^2.1.0","airtap":"^4.0.4","airtap-playwright":"^1.0.1","nyc":"^17.0.0","playwright":"^1.43.1","standard":"^17.1.0","tape":"^5.7.5","tsd":"^0.31.0"},"_id":"secure-json-parse@3.0.1","gitHead":"8525a0b8ffa392e50f1005d9e58be9d4137387cc","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"shasum":"78987844ea1f0cfe9c5f9f723cdf031f542e7b5f","size":8384,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-3.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-3.0.1.tgz"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"directories":{},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secure-json-parse_3.0.1_1731938480378_0.33834780298556466"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-11-18T14:01:20.553Z","publish_time":1731938480553,"_source_registry_name":"default","_cnpm_publish_time":1731938480553},"3.0.0":{"name":"secure-json-parse","version":"3.0.0","description":"JSON parse with prototype poisoning protection","main":"index.js","type":"commonjs","types":"types/index.d.ts","scripts":{"benchmark":"cd benchmarks && npm install && npm run all","lint":"standard","test":"nyc npm run test:unit && npm run test:typescript","test:unit":"tape \"test/*.test.js\"","test:typescript":"tsd","test:browser":"airtap test/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","devDependencies":{"@fastify/pre-commit":"^2.1.0","airtap":"^4.0.4","airtap-playwright":"^1.0.1","nyc":"^17.0.0","playwright":"^1.43.1","standard":"^17.1.0","tape":"^5.7.5","tsd":"^0.31.0"},"_id":"secure-json-parse@3.0.0","readmeFilename":"README.md","gitHead":"b5ce73e2ccf08926bdcbf94e2e10f774828bc8da","_nodeVersion":"20.16.0","_npmVersion":"10.8.1","dist":{"shasum":"dd07ba7a455501f3ca19ecfcd38ec40001cd7536","size":8385,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-3.0.0.tgz"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"directories":{},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secure-json-parse_3.0.0_1725383988447_0.4789450088305687"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-09-03T17:19:48.637Z","publish_time":1725383988637,"_source_registry_name":"default","_cnpm_publish_time":1725383988637},"2.7.0":{"name":"secure-json-parse","version":"2.7.0","description":"JSON parse with prototype poisoning protection","main":"index.js","types":"types/index.d.ts","scripts":{"benchmark":"cd benchmarks && npm install && npm run all","lint":"standard","test":"nyc npm run test:unit && npm run test:typescript","test:unit":"tape \"test/*.test.js\"","test:typescript":"tsd","test:browser":"airtap test/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","devDependencies":{"airtap":"^4.0.1","airtap-playwright":"^1.0.1","nyc":"^14.1.1","playwright":"^1.7.1","standard":"^17.0.0","tape":"^5.1.1","tsd":"^0.25.0"},"gitHead":"448277710dddfe4e87a8d529e82645d78974bc07","_id":"secure-json-parse@2.7.0","_nodeVersion":"16.19.0","_npmVersion":"9.2.0","dist":{"shasum":"5a5f9cd6ae47df23dba3151edd06855d47e09862","size":8124,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-2.7.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-2.7.0.tgz"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"directories":{},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secure-json-parse_2.7.0_1673360849958_0.9545636492287337"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-01-10T14:27:30.112Z","publish_time":1673360850112,"_cnpm_publish_time":1673360850112},"2.6.0":{"name":"secure-json-parse","version":"2.6.0","description":"JSON parse with prototype poisoning protection","main":"index.js","types":"types/index.d.ts","scripts":{"benchmark":"cd benchmarks && npm install && npm run all","lint":"standard","test":"nyc npm run test:unit && npm run test:typescript","test:unit":"tape \"test/*.test.js\"","test:typescript":"tsd","test:browser":"airtap test/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","devDependencies":{"airtap":"^4.0.1","airtap-playwright":"^1.0.1","nyc":"^14.1.1","playwright":"^1.7.1","standard":"^17.0.0","tape":"^5.1.1","tsd":"^0.24.1"},"gitHead":"f940b0708ad84c899ee7170a6a247b6c2aa5be8f","_id":"secure-json-parse@2.6.0","_nodeVersion":"16.17.0","_npmVersion":"9.1.2","dist":{"shasum":"95d89f84adf32d76ff7800e68a673b129fe918b0","size":8003,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-2.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-2.6.0.tgz"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"directories":{},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secure-json-parse_2.6.0_1670199632592_0.8901891497650507"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-12-05T00:20:40.285Z","publish_time":1670199632818,"_cnpm_publish_time":1670199632818},"2.5.0":{"name":"secure-json-parse","version":"2.5.0","description":"JSON parse with prototype poisoning protection","main":"index.js","types":"types/index.d.ts","scripts":{"benchmark":"cd benchmarks && npm install && npm run all","lint":"standard","test":"nyc npm run test:unit && npm run test:typescript","test:unit":"tape \"test/*.test.js\"","test:typescript":"tsd","test:browser":"airtap test/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","devDependencies":{"airtap":"^4.0.1","airtap-playwright":"^1.0.1","nyc":"^14.1.1","playwright":"^1.7.1","standard":"^17.0.0","tape":"^5.1.1","tsd":"^0.22.0"},"gitHead":"316ad1e001f5bb0eaba2854e7a282404c73faeab","_id":"secure-json-parse@2.5.0","_nodeVersion":"16.15.1","_npmVersion":"8.14.0","dist":{"shasum":"f929829df2adc7ccfb53703569894d051493a6ac","size":7784,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-2.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-2.5.0.tgz"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"directories":{},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secure-json-parse_2.5.0_1659134269406_0.4383433710619653"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-07-29T22:37:52.501Z","publish_time":1659134269600,"_cnpm_publish_time":1659134269600},"2.4.0":{"name":"secure-json-parse","version":"2.4.0","description":"JSON parse with prototype poisoning protection","main":"index.js","types":"index.d.ts","scripts":{"benchmark":"cd benchmarks && npm install && npm run all","test-legacy":"nyc tape test.js","test":"standard && tsd && nyc tape test.js","test-in-browsers":"airtap test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","devDependencies":{"airtap":"^4.0.1","airtap-playwright":"^1.0.1","nyc":"^14.1.1","playwright":"^1.7.1","standard":"^16.0.0","tape":"^5.1.1","tsd":"^0.14.0"},"gitHead":"29fb755d602c9b4d62bfd6766c143f246b48d30f","_id":"secure-json-parse@2.4.0","_nodeVersion":"14.15.4","_npmVersion":"7.7.6","dist":{"shasum":"5aaeaaef85c7a417f76271a4f5b0cc3315ddca85","size":7138,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-2.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-2.4.0.tgz"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"directories":{},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secure-json-parse_2.4.0_1617701575800_0.3495364798080518"},"_hasShrinkwrap":false,"publish_time":1617701576047,"_cnpm_publish_time":1617701576047},"2.3.2":{"name":"secure-json-parse","version":"2.3.2","description":"JSON parse with prototype poisoning protection","main":"index.js","scripts":{"benchmark":"cd benchmarks && npm install && npm run all","test":"standard && nyc tape test.js","test-in-browsers":"airtap test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","devDependencies":{"airtap":"^4.0.1","airtap-playwright":"^1.0.1","nyc":"^14.1.1","playwright":"^1.7.1","standard":"^16.0.0","tape":"^5.1.1"},"gitHead":"cdd4a22ba21b137b810194611f1a8246741710e7","_id":"secure-json-parse@2.3.2","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"shasum":"0284c9525c6f24d38774f13727addff80634c2e9","size":6583,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-2.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-2.3.2.tgz"},"_npmUser":{"name":"delvedor","email":"tommydelved@gmail.com"},"directories":{},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secure-json-parse_2.3.2_1615802646101_0.4239325355996988"},"_hasShrinkwrap":false,"publish_time":1615802646271,"_cnpm_publish_time":1615802646271},"2.3.1":{"name":"secure-json-parse","version":"2.3.1","description":"JSON parse with prototype poisoning protection","main":"index.js","scripts":{"benchmark":"cd benchmarks && npm install && npm run all","test":"standard && nyc tape test.js","test-in-browsers":"airtap test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","devDependencies":{"airtap":"^4.0.1","airtap-playwright":"^1.0.1","nyc":"^14.1.1","playwright":"^1.7.1","standard":"^16.0.0","tape":"^5.1.1"},"gitHead":"d65152e2067b5e6a73037b574ca9c90bddb3fc45","_id":"secure-json-parse@2.3.1","_nodeVersion":"14.15.4","_npmVersion":"6.14.11","_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"dist":{"shasum":"908aa5e806e223ff8d179d37ad95c2433f5f147d","size":6437,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-2.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-2.3.1.tgz"},"directories":{},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secure-json-parse_2.3.1_1613579890181_0.8418180586070794"},"_hasShrinkwrap":false,"publish_time":1613579890299,"_cnpm_publish_time":1613579890299},"2.3.0":{"name":"secure-json-parse","version":"2.3.0","description":"JSON parse with prototype poisoning protection","main":"index.js","scripts":{"benchmark":"cd benchmarks && npm install && npm run all","test":"standard && tap test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","devDependencies":{"standard":"^16.0.0","tap":"^12.7.0"},"gitHead":"d124635cab2689ea9efa0ab46032f9843f21b369","_id":"secure-json-parse@2.3.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"dist":{"shasum":"9b56e825c43f61eb692f3eb095767752b6a63532","size":3761,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-2.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-2.3.0.tgz"},"directories":{},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secure-json-parse_2.3.0_1611694636489_0.06368992397016915"},"_hasShrinkwrap":false,"publish_time":1611694636639,"_cnpm_publish_time":1611694636639},"2.2.0":{"name":"secure-json-parse","version":"2.2.0","description":"JSON parse with prototype poisoning protection","main":"index.js","scripts":{"test":"standard && tap test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","devDependencies":{"standard":"^16.0.0","tap":"^12.7.0"},"gitHead":"e7bed7ec70f44455e388eb97ca09a7b1c139d78a","_id":"secure-json-parse@2.2.0","_nodeVersion":"12.20.0","_npmVersion":"6.14.10","_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"dist":{"shasum":"cc53338a0c59667d22ef5847b11dbfffcb4b8a37","size":3711,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-2.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-2.2.0.tgz"},"directories":{},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secure-json-parse_2.2.0_1610359156491_0.69793903889641"},"_hasShrinkwrap":false,"publish_time":1610359156614,"_cnpm_publish_time":1610359156614},"2.1.0":{"name":"secure-json-parse","version":"2.1.0","description":"JSON parse with prototype poisoning protection","main":"index.js","scripts":{"test":"standard && tap test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","devDependencies":{"standard":"^14.3.1","tap":"^12.7.0"},"gitHead":"475c33e6985cbe97b2153d517836a6215a64902b","_id":"secure-json-parse@2.1.0","_nodeVersion":"12.13.0","_npmVersion":"6.13.6","dist":{"shasum":"ae76f5624256b5c497af887090a5d9e156c9fb20","size":3444,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-2.1.0.tgz"},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secure-json-parse_2.1.0_1579105199726_0.8204426451714006"},"_hasShrinkwrap":false,"publish_time":1579105199929,"_cnpm_publish_time":1579105199929},"2.0.0":{"name":"secure-json-parse","version":"2.0.0","description":"JSON parse with prototype poisoning protection","main":"index.js","scripts":{"test":"standard && tap test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"keywords":["JSON","parse","safe","security","prototype","pollution"],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","devDependencies":{"standard":"^14.3.1","tap":"^12.7.0"},"gitHead":"7e3df95ec382d2628ac8c58e631d37821bf06422","_id":"secure-json-parse@2.0.0","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"shasum":"cff348d01d49a3aaf52b9caa4ddbefd7e2aa8f57","size":3394,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-2.0.0.tgz"},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmUser":{"name":"delvedor","email":"tommydelved@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secure-json-parse_2.0.0_1571848354418_0.31283145013156166"},"_hasShrinkwrap":false,"publish_time":1571848354533,"_cnpm_publish_time":1571848354533},"1.0.0":{"name":"secure-json-parse","version":"1.0.0","description":"JSON parse with prototype poisoning protection","main":"index.js","scripts":{"test":"tap test.js"},"repository":{"type":"git","url":"git+https://github.com/fastify/secure-json-parse.git"},"keywords":[],"license":"BSD-3-Clause","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"homepage":"https://github.com/fastify/secure-json-parse#readme","dependencies":{},"devDependencies":{"standard":"^12.0.1","tap":"^12.7.0"},"gitHead":"0c7b41eb8635106020a6e1f267300a47ee5cdbef","_id":"secure-json-parse@1.0.0","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"shasum":"fa32c6778166b783cf6315db967944e63f7747d0","size":2929,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-1.0.0.tgz"},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmUser":{"name":"delvedor","email":"tommydelved@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secure-json-parse_1.0.0_1556609513752_0.030544955872865875"},"_hasShrinkwrap":false,"publish_time":1556609514015,"_cnpm_publish_time":1556609514015},"0.1.0":{"name":"secure-json-parse","version":"0.1.0","description":"","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":[],"author":{"name":"Tomas Della Vedova"},"license":"ISC","_id":"secure-json-parse@0.1.0","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"shasum":"76203e20d085ea6de5d2ae5f5876b3f5558a7c53","size":274,"noattachment":false,"key":"/secure-json-parse/-/secure-json-parse-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/secure-json-parse/download/secure-json-parse-0.1.0.tgz"},"maintainers":[{"name":"climba03003","email":"kaka@kakawebsitedemo.com"},{"name":"delvedor","email":""},{"name":"eomm","email":"behemoth89@gmail.com"},{"name":"fdawgs","email":""},{"name":"gurgunday","email":""},{"name":"ivan-tymoshenko","email":""},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"matteo.collina","email":""},{"name":"metcoder95","email":""},{"name":"simoneb","email":"simone.busoli@gmail.com"},{"name":"zekth","email":"vince.legoff@gmail.com"}],"_npmUser":{"name":"delvedor","email":"tommydelved@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/secure-json-parse_0.1.0_1556548536964_0.00294161155257755"},"_hasShrinkwrap":false,"publish_time":1556548537048,"_cnpm_publish_time":1556548537048}},"readme":"# secure-json-parse\n\n[![CI](https://github.com/fastify/secure-json-parse/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/fastify/secure-json-parse/actions/workflows/ci.yml)\n[![NPM version](https://img.shields.io/npm/v/secure-json-parse.svg?style=flat)](https://www.npmjs.com/package/secure-json-parse)\n[![neostandard javascript style](https://img.shields.io/badge/code_style-neostandard-brightgreen?style=flat)](https://github.com/neostandard/neostandard)\n\n`JSON.parse()` drop-in replacement with prototype poisoning protection.\n\n## Introduction\n\nConsider this:\n\n```js\n> const a = '{\"__proto__\":{ \"b\":5}}';\n'{\"__proto__\":{ \"b\":5}}'\n\n> const b = JSON.parse(a);\n{ __proto__: { b: 5 } }\n\n> b.b;\nundefined\n\n> const c = Object.assign({}, b);\n{}\n\n> c.b\n5\n```\n\nThe problem is that `JSON.parse()` retains the `__proto__` property as a plain object key. By\nitself, this is not a security issue. However, as soon as that object is assigned to another or\niterated on and values copied, the `__proto__` property leaks and becomes the object's prototype.\n\n## Install\n```\nnpm i secure-json-parse\n```\n\n## Usage\n\nPass the option object as a second (or third) parameter for configuring the action to take in case of a bad JSON, if nothing is configured, the default is to throw a `SyntaxError`.<br/>\nYou can choose which action to perform in case `__proto__` is present, and in case `constructor.prototype` is present.\n\n```js\nconst sjson = require('secure-json-parse')\n\nconst goodJson = '{ \"a\": 5, \"b\": 6 }'\nconst badJson = '{ \"a\": 5, \"b\": 6, \"__proto__\": { \"x\": 7 }, \"constructor\": {\"prototype\": {\"bar\": \"baz\"} } }'\n\nconsole.log(JSON.parse(goodJson), sjson.parse(goodJson, undefined, { protoAction: 'remove', constructorAction: 'remove' }))\nconsole.log(JSON.parse(badJson), sjson.parse(badJson, undefined, { protoAction: 'remove', constructorAction: 'remove' }))\n```\n\n## API\n\n### `sjson.parse(text, [reviver], [options])`\n\nParses a given JSON-formatted text into an object where:\n- `text` - the JSON text string.\n- `reviver` - the `JSON.parse()` optional `reviver` argument.\n- `options` - optional configuration object where:\n    - `protoAction` - optional string with one of:\n        - `'error'` - throw a `SyntaxError` when a `__proto__` key is found. This is the default value.\n        - `'remove'` - deletes any `__proto__` keys from the result object.\n        - `'ignore'` - skips all validation (same as calling `JSON.parse()` directly).\n    - `constructorAction` - optional string with one of:\n        - `'error'` - throw a `SyntaxError` when a `constructor.prototype` key is found. This is the default value.\n        - `'remove'` - deletes any `constructor` keys from the result object.\n        - `'ignore'` - skips all validation (same as calling `JSON.parse()` directly).\n    - `safe` - optional boolean:\n        - `true` - returns `null` instead of throwing when a forbidden prototype property is found.\n        - `false` - default behavior (throws or removes based on `protoAction`/`constructorAction`).\n\n### `sjson.scan(obj, [options])`\n\nScans a given object for prototype properties where:\n- `obj` - the object being scanned.\n- `options` - optional configuration object where:\n    - `protoAction` - optional string with one of:\n        - `'error'` - throw a `SyntaxError` when a `__proto__` key is found. This is the default value.\n        - `'remove'` - deletes any `__proto__` keys from the input `obj`.\n    - `constructorAction` - optional string with one of:\n        - `'error'` - throw a `SyntaxError` when a `constructor.prototype` key is found. This is the default value.\n        - `'remove'` - deletes any `constructor` keys from the input `obj`.\n    - `safe` - optional boolean:\n        - `true` - returns `null` instead of throwing when a forbidden prototype property is found.\n        - `false` - default behavior (throws or removes based on `protoAction`/`constructorAction`).\n\n## Benchmarks\n\nMachine: 2,7 GHz Quad-Core Intel Core i7\n\n```\nv14.8.0\n\n> node ignore.js\n\nJSON.parse x 679,376 ops/sec ±1.15% (84 runs sampled)\nsecure-json-parse x 649,605 ops/sec ±0.58% (87 runs sampled)\nreviver x 244,414 ops/sec ±1.05% (88 runs sampled)\nFastest is JSON.parse\n\n> node no__proto__.js\n\nJSON.parse x 652,190 ops/sec ±0.67% (86 runs sampled)\nsecure-json-parse x 589,785 ops/sec ±1.01% (88 runs sampled)\nreviver x 218,075 ops/sec ±1.58% (87 runs sampled)\nFastest is JSON.parse\n\n> node remove.js\n\nJSON.parse x 683,527 ops/sec ±0.62% (88 runs sampled)\nsecure-json-parse x 316,926 ops/sec ±0.63% (87 runs sampled)\nreviver x 214,167 ops/sec ±0.63% (86 runs sampled)\nFastest is JSON.parse\n\n> node throw.js\n\nJSON.parse x 682,548 ops/sec ±0.60% (88 runs sampled)\nJSON.parse error x 170,716 ops/sec ±0.93% (87 runs sampled)\nsecure-json-parse x 104,483 ops/sec ±0.62% (87 runs sampled)\nreviver x 114,197 ops/sec ±0.63% (87 runs sampled)\nFastest is JSON.parse\n```\n\n## Acknowledgments\nThis project has been forked from [hapijs/bourne](https://github.com/hapijs/bourne).\nAll credit before commit [4690682](https://github.com/hapijs/bourne/commit/4690682c6cdaa06590da7b2485d5df91c09da889) goes to the hapijs/bourne project contributors.\nAfter, the project will be maintained by the Fastify team.\n\n## License\nLicensed under [BSD-3-Clause](./LICENSE).\n","_attachments":{},"homepage":"https://github.com/fastify/secure-json-parse#readme","bugs":{"url":"https://github.com/fastify/secure-json-parse/issues"},"license":"BSD-3-Clause"}