{"_id":"hash","_rev":"9-cc58e461ae4094fea72809f521e254b8","name":"hash","description":"Safely use a JavaScript object as hash","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"hash","version":"0.1.0","description":"The minimal way to safely use JavaScript objects as hashes","homepage":"https://github.com/akidee/hash.js","author":{"name":"Andreas Kalsch","email":"mail@akidee.de","url":"http://akidee.de/"},"engine":{"node":"0"},"dependencies":{},"devDependencies":{},"keywords":["hash","hashing","object","associative array","associative","safe","simple","minimal"],"scripts":{"test":"node test.js"},"_npmUser":{"name":"akidee","email":"mail@akidee.de"},"_id":"hash@0.1.0","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"13b93e7538b59b89c0d579e605a1fa8fa37ca563","tarball":"https://registry.npmjs.org/hash/-/hash-0.1.0.tgz","integrity":"sha512-TYk9QhMhVakdaq7SbofKXndtn0+QwU9F1Z1w9VJdo4uMwNtu6ahlVorXBSGtlDvnOwFAS7eIJVB9n0Wkk08+1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgw0o/Kvb4f0fTtE1XeB7gzTKJjeuDsP5ncX9KWT/VYwIhAOhox/IUQ93Y/CvIUJnIYf7/Q6vs2fPMu3hBHOfIEPet"}]},"maintainers":[{"name":"akidee","email":"mail@akidee.de"}],"directories":{}},"0.2.0":{"name":"hash","version":"0.2.0","description":"Safely use a JavaScript object as hash","homepage":"https://github.com/akidee/hash.js","author":{"name":"Andreas Kalsch","email":"mail@akidee.de","url":"http://akidee.de/"},"engine":{"node":"0"},"dependencies":{},"devDependencies":{},"keywords":["hash","hashing","object","associative array","associative","safe","simple","minimal"],"scripts":{"test":"node test.js"},"_npmUser":{"name":"akidee","email":"mail@akidee.de"},"_id":"hash@0.2.0","engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"978654fa723b1252eea844e560c3931dad27289b","tarball":"https://registry.npmjs.org/hash/-/hash-0.2.0.tgz","integrity":"sha512-jZpflD61A65qPsOfzMdSpJJvNIQeOtdyJb90PEgZRiE70i9UUKzFIYRcYDL0CRl16Ufp/mrw6w8rHpyXKe4j8w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7etJ9Y0cCMUtHPz3QytMXy2MJDEAeD3pxpmq2T/67XwIgD6A4iU2OrwoHFMWzYl/rwyWeBsAQoymdEyqfw+g0pqs="}]},"maintainers":[{"name":"akidee","email":"mail@akidee.de"}],"directories":{}},"0.2.1":{"name":"hash","version":"0.2.1","description":"Safely use a JavaScript object as hash","homepage":"https://github.com/akidee/hash.js","author":{"name":"Andreas Kalsch","email":"mail@akidee.de","url":"http://akidee.de/"},"engine":{"node":"0"},"license":"MIT","dependencies":{},"devDependencies":{},"keywords":["hash","hashing","object","associative array","associative","safe","simple","minimal"],"scripts":{"test":"node test.js"},"gitHead":"d479a2012bafd79371a27349ab4232d499166822","_id":"hash@0.2.1","_shasum":"a719d789397c5637f02043c0c180f431fdf9a6ec","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.1","_npmUser":{"name":"akidee","email":"mail@akidee.de"},"maintainers":[{"name":"akidee","email":"mail@akidee.de"}],"dist":{"shasum":"a719d789397c5637f02043c0c180f431fdf9a6ec","tarball":"https://registry.npmjs.org/hash/-/hash-0.2.1.tgz","fileCount":9,"unpackedSize":6942,"integrity":"sha512-yUBu1BNORmIBcz6XsuSIs0mUCnYTb3rsgEWE87d7giQYUCxqtxiVRkokV9mXH3xBKVfPqML+21ruSOQinnTqtg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA3LuU8ziV/aY2CFNeSe+JUiRFujEVWyfeOP269IyE/wAiEAzFu1Ssf9nCbdoU2Ey+XZ+wCOFj0RS4w54lbKAaQIxTA="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hash_0.2.1_1530565261399_0.15198758850983984"},"_hasShrinkwrap":false}},"readme":"    __               __        _\n   / /_  ____ ______/ /_      (_)____\n  / __ \\/ __ `/ ___/ __ \\    / / ___/\n / / / / /_/ (__  ) / / /   / (__  )\n/_/ /_/\\__,_/____/_/ /_(_)_/ /____/  v0.2.1\n                        /___/\n\n\n\n\nhash.js is a simple way to safely use a JavaScript object as hash.\n\nFast: Usage of a regular object as the hash\n\nSafe: Any key can be used. Keys with names that start with \"__\" are internally escaped to circumvent the mess that JS implementations induce with \"magic\" properties like __proto__, __count__, __parent__\n\n\n\n\nInstallation\n\nnpm install hash\n\n\n\n\nExample in node.js\n\nvar hash = require('hash')\n\nvar existingDataWithEscapedKeys = { __: 1, b: 2, '__parent__%': 3 }\n\nvar myHash = new hash(existingDataWithEscapedKeys /* optional */)\n\nmyHash.set('a', 123)\nmyHash.set('__proto__', 'value')\n\nmyHash.get('__parent__') // 3\nmyHash.get('a') // 123\nmyHash.get('__proto__') // 'value'\n\nmyHash.has('constructor') // false\n\nmyHash.del('a')\n\nmyHash.get('a') // undefined\n\nmyHash.del('__parent__')\n\nmyHash.getData() // { __: 1, b: 2, '__proto__%': 'value' }\n\nmyHash.forEach(function iterator (value, key) {\n\n\t// ...\n} /*, optionalThisArg */)\n\n\n\n\nTested in\n\nnode.js\nIE 5.5+, FF 3+, Chrome 1+, Opera 10+, Safari 4+\nMobile Safari 4.0\n\n\n\n\nFurther reads\n\nhttp://www.devthought.com/2012/01/18/an-object-is-not-a-hash/\nhttp://www.2ality.com/2012/01/objects-as-maps.html\n","maintainers":[{"name":"akidee","email":"mail@akidee.de"}],"time":{"modified":"2022-06-18T19:27:02.382Z","created":"2012-01-25T05:26:54.577Z","0.1.0":"2012-01-25T05:26:56.597Z","0.2.0":"2012-01-27T16:33:28.910Z","0.2.1":"2018-07-02T21:01:01.540Z"},"author":{"name":"Andreas Kalsch","email":"mail@akidee.de","url":"http://akidee.de/"},"users":{"zuizuihao":true},"homepage":"https://github.com/akidee/hash.js","keywords":["hash","hashing","object","associative array","associative","safe","simple","minimal"],"license":"MIT","readmeFilename":"README"}