{"_id":"hamt","_rev":"49-77d95c5d6cdb82f94c6a436fe972b681","name":"hamt","description":"Hash Array Mapped Trie","dist-tags":{"latest":"2.2.2"},"versions":{"0.0.0":{"name":"hamt","version":"0.0.0","description":"Hash Array Mapped Trie","keywords":["trie","map","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"https://github.com/mattbierner/hamt.git"},"main":"dist_node/hamt.js","directories":{"lib":"dist_node"},"files":["dist_node/","lib","test","test.js","index.js"],"dependencies":{},"devDependencies":{"nodeunit":"0.8.x"},"scripts":{"test":"node test.js"},"bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"_id":"hamt@0.0.0","dist":{"shasum":"3c3cf22cab281497e4383ca566384e5a4a444411","tarball":"https://registry.npmjs.org/hamt/-/hamt-0.0.0.tgz","integrity":"sha512-Oj/6BAvPYe5f9Lqw7ilsmCMlFK93MXmEWMGeHBQZh1uK/W8lYY2Kkzd42e/Cw+xGgWAt1egWhebl9Tc0nTuLKw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF0jLjktiAh3prMhkukRuHYI+6DOrsncCRDnzsRsaneUAiAfX73emCTrjP5ofFoEwqjxcsmhkHGXCv8FzQIW7MuD4A=="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}]},"0.1.0":{"name":"hamt","version":"0.1.0","description":"Hash Array Mapped Trie","keywords":["trie","map","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"https://github.com/mattbierner/hamt.git"},"main":"dist_node/hamt.js","directories":{"lib":"dist_node"},"files":["dist_node/","lib","test","test.js","index.js"],"dependencies":{},"devDependencies":{"nodeunit":"0.8.x"},"scripts":{"test":"node test.js"},"bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"_id":"hamt@0.1.0","dist":{"shasum":"38f2a4c71773196e7ce983cfb5d337b4e82b7d6c","tarball":"https://registry.npmjs.org/hamt/-/hamt-0.1.0.tgz","integrity":"sha512-fHw9f7xRgFIlzTrNcAcC68AbjH92Lpnn4bXv0qvJkRc4JZ3v4YghWjs7m96K5uRnLyqQZIbK4PdOOg0hIH5pUw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+PxZMG9RlOQXJVlwaBHuiLJZjzZiqLG7mRLhQ4L75hQIhAI0GFy/R4+9auURD9csAlZ4I9Y1a5VIv1l4GTybdXhKu"}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}]},"0.1.1":{"name":"hamt","version":"0.1.1","description":"Hash Array Mapped Trie","keywords":["trie","map","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"https://github.com/mattbierner/hamt.git"},"main":"dist_node/hamt.js","directories":{"lib":"dist_node"},"files":["dist_node/","lib","test","test.js","index.js"],"dependencies":{},"devDependencies":{"nodeunit":"0.8.x"},"scripts":{"test":"node test.js"},"bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"_id":"hamt@0.1.1","dist":{"shasum":"e1c8fd51693c70420a95c4ccafbf98179aa59118","tarball":"https://registry.npmjs.org/hamt/-/hamt-0.1.1.tgz","integrity":"sha512-kYkYt5mJtrwPealoWXt4IPvrDAnLojMA6utZIivSdGHuXKRVNA/vDJhA4oq6pEYfh1PkqxlSnUVCvkJ7Z5uIAg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrhUNFhkdE3EnUwZS2hZFex1i7njv79Pr5S9Tp4G/K8AIgZ9LHE2e4UNiC7USyaYMyDbfHP17kW/1I3rfIymdX1E0="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}]},"0.1.3":{"name":"hamt","version":"0.1.3","description":"Hash Array Mapped Trie","keywords":["trie","map","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"https://github.com/mattbierner/hamt.git"},"main":"dist_node/hamt.js","directories":{"lib":"dist_node"},"files":["dist_node/","lib","test","test.js","index.js"],"dependencies":{},"devDependencies":{"nodeunit":"0.8.x"},"scripts":{"test":"node test.js"},"bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"_id":"hamt@0.1.3","dist":{"shasum":"75d29bdff948ea1aca47320562427a6213416d62","tarball":"https://registry.npmjs.org/hamt/-/hamt-0.1.3.tgz","integrity":"sha512-2e6WVhkzn/9ogE3PcKX0FOG8fn1WnMPH7ojf2XoZHooD/494wIlthEL2j4GzULHM7jn+2BvneUCbiY7GK7fvdw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHEaaD6RynEjoDAd/kV94dEeL2QQbPpVM8UHGAX1HyshAiEAuj61VqErxEhrQWV8qQhQ1aOWP6/Os6z7V72Vcj0P/gA="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}]},"0.1.4":{"name":"hamt","version":"0.1.4","description":"Hash Array Mapped Trie","keywords":["trie","map","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"https://github.com/mattbierner/hamt.git"},"main":"dist_node/hamt.js","directories":{"lib":"dist_node"},"files":["dist_node/","lib","test","test.js","index.js"],"dependencies":{},"devDependencies":{"nodeunit":"0.8.x"},"scripts":{"test":"node test.js"},"bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt","_id":"hamt@0.1.4","dist":{"shasum":"4e9527691ca574b6a80b332922c441c6e69cad3d","tarball":"https://registry.npmjs.org/hamt/-/hamt-0.1.4.tgz","integrity":"sha512-h0gm9VKJjlr9dQ0cas1eN7btqRBxMBwenzkfUavaNR3kvsDv7METTMi1Ov7gNF+gOAd3FHZvAk+dbu6jT4+31A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDRuzscBgDaOVOBwRrHTbC/5Vc5UjisWNtw1dZkbBt7AIgQmheYiz/SDymQ0Zfc6YplNjrSjZVqd36t/a7Q3af7+w="}]},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}]},"0.1.5":{"name":"hamt","version":"0.1.5","description":"Hash Array Mapped Trie","keywords":["trie","map","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"https://github.com/mattbierner/hamt.git"},"main":"dist_node/hamt.js","directories":{"lib":"dist_node"},"files":["dist_node/","lib","test","test.js","index.js"],"dependencies":{},"devDependencies":{"nodeunit":"0.8.x"},"scripts":{"test":"node test.js"},"bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt","_id":"hamt@0.1.5","dist":{"shasum":"d7494ddd9390b160a5830056bb0b3609f29f08fe","tarball":"https://registry.npmjs.org/hamt/-/hamt-0.1.5.tgz","integrity":"sha512-Ltzd/NyFiWB0eDnuRmbJuG/bTlhursaOjXItGNbi0019UwnHEy4mwP1AejdRSi21I7OsHf/+3fMNaziogM5UIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF/WQBiH5e/FJNQW1FRAnyGPZnxXuJqU898xoc/2OgEvAiAY0zJ9tOpWGz6dzckHye4Q4v47RWE1OTIWmBE+gbNfuA=="}]},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}]},"0.1.6":{"name":"hamt","version":"0.1.6","description":"Hash Array Mapped Trie","keywords":["trie","map","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"https://github.com/mattbierner/hamt.git"},"main":"dist_node/hamt.js","directories":{"lib":"dist_node"},"files":["dist_node/","lib","test","test.js","index.js"],"dependencies":{},"devDependencies":{"nodeunit":"0.8.x"},"scripts":{"test":"node test.js"},"bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt","_id":"hamt@0.1.6","dist":{"shasum":"af4abd864a80dd0a4776486b722f90f8a1f9baf5","tarball":"https://registry.npmjs.org/hamt/-/hamt-0.1.6.tgz","integrity":"sha512-dn2yPzy0oJstKm+eMNDr2wK3Q6RIUL8DmVrLgVSkab1cKAchi2k0Ky6iJEng0rIi5yPXptzSy5MhuW5FFYvvUw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGlI7SWHfdyvOVIVpIG/GCpe9JOv4Oo1yEsUAT3lKoyKAiEA5e2J3wnDD5WM3JOfj9Bg/EBczwfxg1fidCmiZMXLaso="}]},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}]},"0.1.7":{"name":"hamt","version":"0.1.7","description":"Hash Array Mapped Trie","keywords":["trie","map","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"https://github.com/mattbierner/hamt.git"},"main":"dist_node/hamt.js","directories":{"lib":"dist_node"},"files":["dist_node/","lib","test","test.js","index.js"],"dependencies":{},"devDependencies":{"nodeunit":"0.8.x"},"scripts":{"test":"node test.js"},"bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt","_id":"hamt@0.1.7","dist":{"shasum":"4a4a80748fa3955cf127eb57ac4fb374dc8ac4d4","tarball":"https://registry.npmjs.org/hamt/-/hamt-0.1.7.tgz","integrity":"sha512-snN2Tk059FN6O62427BAWx27yxkdQ5XBve5aUZhTRKoP7oCZtsKZrvUIV0haiGOdMbghCyNc6kUbAYJptlpjZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBgHdA7UX26PD8SG9fy8o671+kCOj4wmzoS3JaNoMpHiAiEAjLCJw8GdC8yZ7J8/2OEYRNrLgTcJ8tWlhUdKc7xaGCw="}]},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}]},"0.1.8":{"name":"hamt","version":"0.1.8","description":"Hash Array Mapped Trie","keywords":["trie","map","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"https://github.com/mattbierner/hamt.git"},"main":"dist_node/hamt.js","directories":{"lib":"dist_node"},"files":["dist_node/","lib","test","test.js","index.js"],"dependencies":{},"devDependencies":{"nodeunit":"0.8.x"},"scripts":{"test":"node test.js"},"bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt","_id":"hamt@0.1.8","dist":{"shasum":"908b63563076dd8c40bd773768c792d74852d836","tarball":"https://registry.npmjs.org/hamt/-/hamt-0.1.8.tgz","integrity":"sha512-+y4rRTrgb74Qlra+2mIoCJ4SJS86XGlg7auf3qRMHpMgsfGw4w+KeifQnZxRgi0UwIWYYkm/d9gCg2MnQG3+4Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBR9QgeupL2LqrjI1ET6L5lk3gqrL3tj9L5MlD4BisMAIgPUfzb7ffENWWxOsToN43mBA2eHFYiW0OQwCNhZUFUA4="}]},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}]},"0.1.9":{"name":"hamt","version":"0.1.9","description":"Hash Array Mapped Trie","keywords":["trie","map","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/mattbierner/hamt.git"},"main":"dist_node/hamt.js","directories":{"lib":"dist_node"},"files":["dist_node/","lib","test","test.js","index.js"],"dependencies":{},"devDependencies":{"nodeunit":"0.8.x"},"scripts":{"test":"node test.js"},"gitHead":"ae7563331b43c08f82558190bf135711730aa1cf","bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt#readme","_id":"hamt@0.1.9","_shasum":"3a9d73f9514248d9e9227e0613e9da430bcd38db","_from":".","_npmVersion":"3.3.9","_nodeVersion":"5.0.0","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}],"dist":{"shasum":"3a9d73f9514248d9e9227e0613e9da430bcd38db","tarball":"https://registry.npmjs.org/hamt/-/hamt-0.1.9.tgz","integrity":"sha512-ZkHZW0fzflyVktBBWGaemBlGUHkyzchcQ2kBl1TWfik0vUFI7g/kxFIoD38+dxnqjg4tNbL+T2+YKTQaPnkIeA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2a9zuaaKCBBAJO7c7EJ77Ts2cxYZXz8++t2W3QyXCNQIgeDQ7nZCmTTOpUHFqdyvy12q+Cx4T13gy0LeN/Tgvwdk="}]}},"1.0.0":{"name":"hamt","version":"1.0.0","description":"Hash Array Mapped Trie","keywords":["trie","map","immutable","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/mattbierner/hamt.git"},"main":"hamt.js","files":["hamt.js","hamt.js.map"],"dependencies":{},"devDependencies":{"gulp":"^3.9.0","gulp-babel":"^6.1.0","gulp-plumber":"^1.0.0","gulp-sourcemaps":"^1.6.0","chai":"*","mocha":"*"},"scripts":{"test":"mocha tests"},"gitHead":"51738ace0e909ae7b75fbe9a84aac474d26a8568","bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt#readme","_id":"hamt@1.0.0","_shasum":"540efd5a16397900b45ce975c008d2e4ae138db1","_from":".","_npmVersion":"3.3.9","_nodeVersion":"5.0.0","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}],"dist":{"shasum":"540efd5a16397900b45ce975c008d2e4ae138db1","tarball":"https://registry.npmjs.org/hamt/-/hamt-1.0.0.tgz","integrity":"sha512-R00PmjzEzV2orunlCK676EdemIO6BPsX7CYBcaPX+U3HPy2p/68UbBqxSl7TRt8yh4C/3uz36+MNH2ukIl5A0g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBv/gQ7dULYHopsPeOFmuvylNjz2BXBPMy8uAJ8sm9pSAiEAxvHGULew47AyDlu2G3uki75ZXP2YfUykoLEo/PYx7kw="}]}},"1.1.0":{"name":"hamt","version":"1.1.0","description":"Hash Array Mapped Trie","keywords":["trie","map","immutable","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/mattbierner/hamt.git"},"main":"hamt.js","files":["hamt.js","hamt.js.map"],"dependencies":{},"devDependencies":{"gulp":"^3.9.0","gulp-babel":"^6.1.0","gulp-plumber":"^1.0.0","gulp-sourcemaps":"^1.6.0","chai":"*","mocha":"*"},"scripts":{"test":"mocha tests"},"gitHead":"b718baa165319c8690a635cfd76c0185a5166b89","bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt#readme","_id":"hamt@1.1.0","_shasum":"2d62e0ad09bc559aeb1e9653fe9fb90705367fe8","_from":".","_npmVersion":"3.3.9","_nodeVersion":"5.0.0","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}],"dist":{"shasum":"2d62e0ad09bc559aeb1e9653fe9fb90705367fe8","tarball":"https://registry.npmjs.org/hamt/-/hamt-1.1.0.tgz","integrity":"sha512-Os/uSDfCciwOQX+JWZzkpq5wLcXu3OA7UdNNyYTdnl5TIixRhZZKKHoXKLKswt2qjpocgJItXwvbrIfzl9GVRw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHn/oW/KNdDAO4MRYnSXb6XiPmSN6P76WHtErP1mG6qtAiEAyHVXc6oY5wepgzaAPDPZ9A4Pu0Peh7MzX1f3VULEgVs="}]}},"1.1.1":{"name":"hamt","version":"1.1.1","description":"Hash Array Mapped Trie","keywords":["trie","map","immutable","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/mattbierner/hamt.git"},"main":"hamt.js","files":["hamt.js","hamt.js.map"],"dependencies":{},"devDependencies":{"gulp":"^3.9.0","gulp-babel":"^6.1.0","gulp-plumber":"^1.0.0","gulp-sourcemaps":"^1.6.0","chai":"*","mocha":"*"},"scripts":{"test":"mocha tests"},"gitHead":"b4cc44b99f7c2553fe2c506600c90e8b845b99f0","bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt#readme","_id":"hamt@1.1.1","_shasum":"11ebc14a4c2ee125fe76867f822f07e83bffb93a","_from":".","_npmVersion":"3.3.9","_nodeVersion":"5.0.0","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}],"dist":{"shasum":"11ebc14a4c2ee125fe76867f822f07e83bffb93a","tarball":"https://registry.npmjs.org/hamt/-/hamt-1.1.1.tgz","integrity":"sha512-uUXtJOem5eZe4n/wDLJRVdEPYATqdo4ZpxWsRQ/1mErAS+uh6E+mS1HeS6ItjBQ2XjBzw1Y8PUmprqdMCVjerQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCX/zyTI8ViTNrnnoDP27sX/VXB7qr4y8QVR7KhG/l82AIgRNKu+3wfWyoE0nnjujVWnu33uVInKZYb/hmYin+TwPo="}]}},"2.0.0":{"name":"hamt","version":"2.0.0","description":"Hash Array Mapped Trie","keywords":["trie","map","immutable","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/mattbierner/hamt.git"},"main":"hamt.js","files":["hamt.js","hamt.js.map"],"dependencies":{},"devDependencies":{"gulp":"^3.9.0","gulp-babel":"^6.1.0","gulp-plumber":"^1.0.0","gulp-sourcemaps":"^1.6.0","chai":"*","mocha":"*"},"scripts":{"test":"mocha tests"},"gitHead":"f25556e576ed5a18c62bea4207494fb8056f1400","bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt#readme","_id":"hamt@2.0.0","_shasum":"2fbd4f3f1ab938a0ce02759476254b24b79db8e0","_from":".","_npmVersion":"3.3.9","_nodeVersion":"5.0.0","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}],"dist":{"shasum":"2fbd4f3f1ab938a0ce02759476254b24b79db8e0","tarball":"https://registry.npmjs.org/hamt/-/hamt-2.0.0.tgz","integrity":"sha512-SyJK9Aru4sbXLq9QtpCnDMJn/Sxzy/uMhxGpH1ZmyrHhZIIwP8922+5JYVm9ttk3r7bLxdiALrvfTlZ4XeKvKw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDghsckDVifrETibk+zmJoBGAPen0u+Y1xDpTlf/+Ry+AIgfSKPgm2zpkAXJWy4lRkRsM0MpMlOZnHg+3xaYC7laiA="}]}},"2.0.1":{"name":"hamt","version":"2.0.1","description":"Hash Array Mapped Trie","keywords":["trie","map","immutable","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/mattbierner/hamt.git"},"main":"hamt.js","files":["hamt.js","hamt.js.map"],"dependencies":{},"devDependencies":{"gulp":"^3.9.0","gulp-babel":"^6.1.0","gulp-plumber":"^1.0.0","gulp-sourcemaps":"^1.6.0","chai":"*","mocha":"*"},"scripts":{"test":"mocha tests"},"gitHead":"faa548bd491a6d13dffea4fd8ba090c37a2b50a2","bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt#readme","_id":"hamt@2.0.1","_shasum":"b8731ca6448683113bda04be7a88336dadd8a0a6","_from":".","_npmVersion":"3.3.9","_nodeVersion":"5.0.0","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}],"dist":{"shasum":"b8731ca6448683113bda04be7a88336dadd8a0a6","tarball":"https://registry.npmjs.org/hamt/-/hamt-2.0.1.tgz","integrity":"sha512-iIe04+P7erkEjDZxc+02n043klU0Rzl25LdTRLL9pZE97TYp7rCwZb9H5d5o46rAlRGT6qM2NW/AVJfQzDLV3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAibSis1Iu1HLXJtfLFacgZuANjEL6ZRi6QHlVkUKkzBAiEAm7/ipTOCS7zhoOjZRivzbD0r8JBxD54qx7NhGdvwdCk="}]}},"2.0.2":{"name":"hamt","version":"2.0.2","description":"Hash Array Mapped Trie","keywords":["trie","map","immutable","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/mattbierner/hamt.git"},"main":"hamt.js","files":["hamt.js","hamt.js.map"],"dependencies":{},"devDependencies":{"gulp":"^3.9.0","gulp-babel":"^6.1.0","gulp-plumber":"^1.0.0","gulp-sourcemaps":"^1.6.0","chai":"*","mocha":"*"},"scripts":{"test":"mocha tests"},"gitHead":"dcc7433d346a6c4d8f4c2f3c859a8dbba783ad4f","bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt#readme","_id":"hamt@2.0.2","_shasum":"f925d5c005a79b5769f7171e2f2dd216aaacca7f","_from":".","_npmVersion":"3.3.9","_nodeVersion":"5.0.0","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}],"dist":{"shasum":"f925d5c005a79b5769f7171e2f2dd216aaacca7f","tarball":"https://registry.npmjs.org/hamt/-/hamt-2.0.2.tgz","integrity":"sha512-10EtwJvV2BGGNl9Tq/xlXo7vl3yJsrq/X4J3Q27bXG61mKu5B3LV3TXhoo3apSSabPl2DhhzoDbPoMO3kJizRQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcw2HPy6Mqnt5/C2UZd4hH2KIoeF/yqIAG2XCTZvP4xAIhAI22EbzFn1wdGyx27xOBUXmdRX+i83VWIzI5Md3ufndW"}]}},"2.1.0":{"name":"hamt","version":"2.1.0","description":"Hash Array Mapped Trie","keywords":["trie","map","immutable","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/mattbierner/hamt.git"},"main":"hamt.js","files":["hamt.js","hamt.js.map"],"dependencies":{},"devDependencies":{"babel-preset-es2015":"^6.3.0","gulp":"^3.9.0","gulp-babel":"^6.1.0","gulp-plumber":"^1.0.0","gulp-sourcemaps":"^1.6.0","chai":"*","mocha":"*"},"scripts":{"test":"mocha tests"},"gitHead":"8b45ae3e343fa178f1bb89b821f3450222454963","bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt#readme","_id":"hamt@2.1.0","_shasum":"20f35af3498d9eb7fed32290ba3d2102d3856434","_from":".","_npmVersion":"3.3.9","_nodeVersion":"5.0.0","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}],"dist":{"shasum":"20f35af3498d9eb7fed32290ba3d2102d3856434","tarball":"https://registry.npmjs.org/hamt/-/hamt-2.1.0.tgz","integrity":"sha512-lToDvqPsVlD+S4IE8YDTRP9AMad3tEB7uGivz7pSa06uWAfb9MM+GO4P6P/gPOK9fq0dTnqVVULzrNQTTc6wig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCOgSjG0eJcLV4kJfjOOLdGPjrkcAcHUCNHJJeTEBDy5wIhAOD3kmMa7q4pXgCNZlUye0A5hXZqihvYTS2pce+157C7"}]}},"2.1.1":{"name":"hamt","version":"2.1.1","description":"Hash Array Mapped Trie","keywords":["trie","map","immutable","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/mattbierner/hamt.git"},"main":"hamt.js","files":["hamt.js","hamt.js.map"],"dependencies":{},"devDependencies":{"babel-preset-es2015":"^6.3.0","gulp":"^3.9.0","gulp-babel":"^6.1.0","gulp-plumber":"^1.0.0","gulp-sourcemaps":"^1.6.0","chai":"*","mocha":"*"},"scripts":{"test":"mocha tests"},"gitHead":"36e3dffff622d24aba949d7892f2f5d00de65821","bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt#readme","_id":"hamt@2.1.1","_shasum":"ae5caef79830099e1781f0107d72d0eb97d78601","_from":".","_npmVersion":"3.3.9","_nodeVersion":"5.0.0","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}],"dist":{"shasum":"ae5caef79830099e1781f0107d72d0eb97d78601","tarball":"https://registry.npmjs.org/hamt/-/hamt-2.1.1.tgz","integrity":"sha512-hhN4SCNF6nvDlC0bFo/hDlmu+h/yxlhXDGqRARztwjKm049pLBazqrRNigSqLaztvNDCfnrzKFtRKUfnH44KBQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChygusuIau5BInx2c91oyJhN9y0vwoDFcCjhC+2x1BcwIhAKgLfHkRHx6LiQcsAA3HUC2ZZaarN2mPmKVrS1AwFUkt"}]}},"2.2.0":{"name":"hamt","version":"2.2.0","description":"Hash Array Mapped Trie","keywords":["trie","map","immutable","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/mattbierner/hamt.git"},"main":"hamt.js","files":["hamt.js","hamt.js.map"],"dependencies":{},"devDependencies":{"babel-preset-es2015":"^6.3.0","gulp":"^3.9.0","gulp-babel":"^6.1.0","gulp-plumber":"^1.0.0","gulp-sourcemaps":"^1.6.0","chai":"*","mocha":"*"},"scripts":{"test":"mocha tests"},"gitHead":"450d5b831c78835eb8eba9ccd80491bc4e46af71","bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt#readme","_id":"hamt@2.2.0","_shasum":"29be1ca9e9fca19b53172ebe5095caf4093889bb","_from":".","_npmVersion":"3.3.9","_nodeVersion":"5.0.0","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}],"dist":{"shasum":"29be1ca9e9fca19b53172ebe5095caf4093889bb","tarball":"https://registry.npmjs.org/hamt/-/hamt-2.2.0.tgz","integrity":"sha512-Mgf/gXBffPcbpeh3Ci4y2ztChf8uMs0kk3u1IhzI8gdKiIcNib03z0n1u1ioXllyVdmTckNvf+KRLkqYvYqpXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFHVih93FjFen6X2cIo0ohA6SP9bvonIBhqN+wwtqVK/AiEA+t7Dm3LqlwtkHUMfgradD5NYbbmOjAtGp/9e335lcOQ="}]}},"2.2.1":{"name":"hamt","version":"2.2.1","description":"Hash Array Mapped Trie","keywords":["trie","map","immutable","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/mattbierner/hamt.git"},"main":"hamt.js","files":["hamt.js","hamt.js.map"],"dependencies":{},"devDependencies":{"babel-preset-es2015":"^6.3.0","gulp":"^3.9.0","gulp-babel":"^6.1.0","gulp-plumber":"^1.0.0","gulp-sourcemaps":"^1.6.0","chai":"*","mocha":"*"},"scripts":{"test":"mocha tests"},"gitHead":"039f64255d71c488d8b3c665fc378b4f48b2d890","bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt#readme","_id":"hamt@2.2.1","_npmVersion":"5.3.0","_nodeVersion":"8.1.2","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"dist":{"integrity":"sha512-frDU+f949xlJNKWcNlu5k30vmySTm6sHtzKMyL9hP/OdCNwgc3ogH2jNwfQ2aVZwu5BOuAN5vDZ0/zY+lq+upQ==","shasum":"bebe41044ff1e9d0f24a101e75b65cf94e749aa2","tarball":"https://registry.npmjs.org/hamt/-/hamt-2.2.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdLy4cJRGksKkQhK6NX4hQ6iSFjNqtKSOsmbAqGO1quAIgEU+18Sfq5cxaCOrbCGc9Ba/+Qrn4o+KOEHaUp8gujgg="}]},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hamt-2.2.1.tgz_1506295896143_0.8606130015105009"}},"2.2.2":{"name":"hamt","version":"2.2.2","description":"Hash Array Mapped Trie","keywords":["trie","map","immutable","persistent","data structure","hash"],"author":{"name":"Matt Bierner"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/mattbierner/hamt.git"},"main":"hamt.js","files":["hamt.js"],"dependencies":{},"devDependencies":{"babel-core":"^6.26.0","babel-preset-env":"^1.6.0","chai":"*","gulp":"^3.9.0","gulp-babel":"^7.0.0","gulp-plumber":"^1.1.0","gulp-sourcemaps":"^2.6.1","mocha":"*"},"scripts":{"test":"mocha tests"},"gitHead":"9e28464d3bf684c8e712fba75d9993209d7f8307","bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"homepage":"https://github.com/mattbierner/hamt#readme","_id":"hamt@2.2.2","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"mattbierner","email":"mattbierner@gmail.com"},"dist":{"integrity":"sha512-4V67NW9SuDo5xqyLiSEIxITsEjOMHZB3JqS/I2ZhzWdjDx8NRJtf6lGqt8RP+nCFZDf8t+XNa5l29z4p2hUFcQ==","shasum":"ef0e9f0526bbaadcb13d264a7684bead1cc5d578","tarball":"https://registry.npmjs.org/hamt/-/hamt-2.2.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHc8jVnBr/qUdTUh9R9TbDgrcM4rcIbnvf2sFD7cmWO1AiBd3KRtJEuuuuWGMFrr6l8MW79Gb0bjk08kLEVyL0WSzw=="}]},"maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hamt-2.2.2.tgz_1506569670760_0.8049770083744079"}}},"readme":"<div align=\"center\" >\n    <img src=\"https://raw.githubusercontent.com/mattbierner/hamt/master/documentation/hamt-logo.png\" alt=\"H.A.M.T.\" />\n</div>\n\n<p align=\"center\">Javascript Hash Array Mapped Trie</p>\n\n[![Build Status](https://travis-ci.org/mattbierner/hamt.svg?branch=master)](https://travis-ci.org/mattbierner/hamt)\n\n### Overview\nThe [hash array mapped trie][hash-array-mapped-trie] is a [persistent][persistent] map data structure with good lookup and update performance. This library provides an immutable map with an API that resembles [ES6's `Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map).\n\n```javascript\nvar hamt = require('hamt');\n\n// Keys can be any string and the map can store any value.\nvar h = hamt.empty\n    .set('key', 'value')\n    .set('object', { prop: 1 })\n    .set('falsy', null);\n\nh.size === 0\nh.has('key') === true\nh.has('falsy') === true\nh.get('key') === 'value'\n\n// Iteration\nfor (let [key, value] of h)\n    console.log(key, value);\n\nArray.from(h.values()) === [{ prop: 1 }, 'value'], null];\n\n// The data structure is fully immutable\nvar h2 = h.delete('key');\nh2.get('key') === undefined\nh.get('key') === 'value'\n```\n\n[Benchmarks][benchmarks] show that this library performs well, even as the size of the map becomes very large. [Check out Hamt+][hamt_plus] if you want support for additional features such as custom key types and transient mutation.\n\n## Install\nSource code is in `hamt.js` and generated from `lib/hamt.js`. The library supports node, AMD, and use as a global.\n\n### Node\n``` sh\n$ npm install hamt\n```\n\n``` javascript\nvar hamt = require('hamt');\n\nvar h = hamt.empty.set('key', 'value');\n\n...\n```\n\n\n### AMD\n``` javascript\nrequirejs.config({\n    paths: {\n        'hamt': 'path/to/hamt/lib/hamt'\n    }\n});\n\nrequire(['hamt'], function(hamt) {\n    var h = hamt.empty.set('key', 'value');\n    ...\n});\n```\n\n\n# Usage\nHamt provides a method chaining interface and free functions for updating and querying the map. Both APIs provide identical functionality, but the free functions are designed for binding and composition, while the method chaining API is more legible and more Javascripty.\n\nHAMTs are is persistent, so operations always return a modified copy of the map instead of alterting the original.\n\n## Custom Hash Values\nMost update and lookup methods have two versions: one that takes a key and uses an internal hash function to compute its hash, and a version that takes a custom computed hash value.\n\n\n``` javascript\nvar h = hamt.empty.set('key', 'value');\nvar h2 = hamt.empty.setHash(5, 'key', 'value');\n\n\nh.get('key') === 'value'\nh2.getHash(5, 'key') === 'value'\n```\n\nIf using a custom hash, you must only use the `*Hash` variant of functions to interact with the map.\n\n\n``` javascript\n// Because the internally computed hash of `key` is not `5`, a direct\n// look will not work.\nh2.get('key') === undefined\n\n// You must use `getHash` with the same hash value originally passed in.\nh2.getHash(5, 'key') === 'value'\n```\n\n\n## API\n* [Basic](#basics) – Basic map operations.\n* [Lookup](#lookup) – Looking up values in a map.\n* [Modify](#modify) – Updating a map.\n* [Iteration](#iteration) – Looping and folding over a map.\n\n### Basics\n\n#### `hamt.empty`\nAn empty map.\n\n----\n\n#### `hamt.isMap(value)`\nIs `value` a map?\n\n----\n\n#### `hamt.isEmpty(map)`\n#### `map.isEmpty()`\nIs a map empty?\n\nThis is the correct method to check if a map is empty. Direct comparisons to `hamt.empty` will not work.\n\nReturns `false` if `map` is not a map.\n\n#### `hamt.count(map)`\n#### `map.count()`\n#### `map.size`\nGet number of elements in `map`.\n\n* `map` - Hamt map.\n\n\n``` javascript\nhamt.empty.count() === 0;\nhamt.empty.set('a', 3).count() === 1;\nhamt.empty.set('a', 3).set('b', 3).size === 2;\n```\n\n### Lookup\n\n#### `hamt.get(key, map)`\n#### `map.get(key)`\nLookup the value for `key` in `map`.\n\n* `key` - String key.\n* `map` - Hamt map.\n\n``` javascript\nvar h = hamt.empty.set('key', 'value');\n\nh.get('key') === 'value'\nhamt.get('key', k) === 'value'\n\nh.get('no such key') === undefined\n```\n\n----\n\n#### `hamt.getHash(hash, key, map)`\n#### `map.getHash(hash, key)`\nSame as `get` but uses a custom hash value.\n\n----\n\n#### `hamt.tryGet(alt, key, map)`\n#### `map.tryGet(alt, key)`\nSame as `get` but returns `alt` if no value for `key` exists.\n\n* `alt` - Value returned if no such key exists in the map.\n* `key` - String key.\n* `map` - Hamt map.\n\n----\n\n#### `hamt.has(key, map)`\n#### `map.has(key)`\nDoes an entry for `key` exist in `map`?\n\n* `key` - String key.\n* `map` - Hamt map.\n\n``` javascript\nvar h = hamt.empty.set('key', 'value');\n\nh.has('key') === true\nh.has('no such key') === false\n```\n\n----\n\n#### `hamt.tryGetHash(alt, hash, key, map)`\n#### `map.tryGetHash(alt, hash, key)`\nSame as `tryGet` but uses a custom hash value.\n\n----\n\n#### `hamt.set(key, value, map)`\n#### `map.set(key, value)`\nSet the value for `key` in `map`.\n\n* `value` - Value to store. Hamt supports all value types, including: literals, objects, falsy values, null, and undefined. Keep in mind that only the map data structure itself is guaranteed to be immutable. Using immutable values is recommended but not required.\n* `key` - String key.\n* `map` - Hamt map.\n\nReturns a new map with the value set. Does not alter the original.\n\n``` javascript\nvar h = hamt.empty\n    .set('key', 'value');\n    .set('key2', 'value2');\n\nvar h2 = h.set('key3', 'value3');\n\nh2.get('key') === 'value'\nh2.get('key2') === 'value2'\nh2.get('key3') === 'value3'\n\n// original `h` was not modified\nh.get('key') === 'value'\nh.get('key2') === 'value2'\nh.get('key3') === undefined\n```\n\n----\n\n#### `hamt.setHash(hash, key, value, map)`\n#### `map.setHash(hash, key, value)`\nSame as `set` but uses a custom hash value.\n\n### Modify\n\n#### `hamt.modify(f, key, map)`\n#### `map.modify(key, f)`\nUpdate the value stored for `key` in `map`.\n\n* `f` - Function mapping current value to new value. If no current value exists, `f` is invoked with no arguments.\n* `key` - String key.\n* `map` - Hamt map.\n\nReturns a new map with the modified value. Does not alter the original.\n\n``` javascript\nvar h = hamt.empty\n    .set('i', 2);\n\nvar h2 = h.modify('i', x => x * x);\n\nh2.get('i') === 4\nh.get('i') === 2\nh2.count() === 1\nh.count() === 1\n\n// Operate on value that does not exist\nvar h3 = h.modify('new', x => {\n    if (x === undefined) {\n        return 10;\n    }\n    return -x;\n});\n\nh3.get('new') === 10\nh3.count() === 2\n```\n\n----\n\n#### `hamt.modifyHash(f, hash, key, map)`\n#### `map.modifyHash(hash, key, f)`\nSame as `modify` but uses a custom hash value.\n\n----\n\n#### `hamt.modifyValue(f, defaultValue, key, map)`\n#### `map.modifyValue(key, f, defaultValue)`\nSimilar to `modify`, but invokes `f` with  `defaultValue` if no value exists in `map` for `key`.\n\n----\n\n#### `hamt.modifyValueHash(f, defaultValue, hash, key, map)`\n#### `map.modifyValueHash(hash, key, f, defaultValue)`\nSame as `modifyValue` but uses a custom hash value.\n\n----\n\n#### `hamt.remove(key, map)`\n#### `map.remove(key)`\n#### `map.delete(key)`\nRemove `key` from `map`.\n\n* `key` - String key.\n* `map` - Hamt map.\n\nReturns a new map with the value removed. Does not alter the original.\n\n``` javascript\nvar h = hamt.empty\n    .set('a', 1)\n    .set('b', 2)\n    .set('c', 3);\n\nvar h2 = h.remove('b');\n\nh2.count() === 2;\nh2.get('a') === 1\nh2.get('b') === undefined\nh2.get('c') === 3\n```\n\n----\n\n#### `hamt.removeHash(hash, key, map)`\n#### `map.removeHash(hash, key)`\n#### `map.deleteHash(hash, key)`\nSame as `remove` but uses a custom hash value.\n\n----\n\n### Iteration\n\n#### `hamt.fold(f, z, map)`\n#### `map.fold(f, z)`\nFold over the map, accumulating result value.\n\n* `f` - Function invoked with accumulated value, current value, and current key.\n* `z` - Initial value.\n* `map` - Hamt map.\n\nOrder is not guaranteed.\n\n``` javascript\nvar max = hamt.fold.bind(null,\n    (acc, value, key) => Math.max(acc, value),\n    0);\n\nmax(hamt.empty.set('key', 3).set('key', 4)) === 4;\n```\n\n----\n\n#### `hamt.entries(map)`\n#### `map.entries()`\nGet a Javascript iterator to all key value pairs in `map`.\n\n* `map` - Hamt map.\n\nOrder is not guaranteed.\n\n``` javascript\nArray.from(hamt.empty.entries()) === [];\nArray.from(hamt.empty.set('a', 3).entries()) === [['a', 3]];\nArray.from(hamt.empty.set('a', 3).set('b', 3).entries()) === [['a', 3], ['b', 3]];\n```\n\nYou can also iterated directly over a map with ES6:\n\n```javascript\nconst h = hamt.empty.set('a', 3).set('b', 3);\n\nfor (let [key, value] of h)\n    ...\n\nArray.from(h) === [['a', 3], ['b', 3]];\n```\n\n----\n\n#### `hamt.key(map)`\n#### `map.keys()`\nGet a Javascript iterator to all keys in `map`.\n\n* `map` - Hamt map.\n\nOrder is not guaranteed.\n\n``` javascript\nArray.from(hamt.empty.keys()) === [];\nArray.from(hamt.empty.set('a', 3).keys()) === ['a'];\nArray.from(hamt.empty.set('a', 3).set('b', 3).keys()) === ['a', 'b'];\n```\n\n----\n\n#### `hamt.values(map)`\n#### `map.values()`\nGet a Javascript iterator to all values in `map`.\n\n* `map` - Hamt map.\n\nOrder is not guaranteed. Duplicate entries may exist.\n\n``` javascript\nArray.from(hamt.empty.values()) === [];\nArray.from(hamt.empty.set('a', 3).values()) === [3];\nArray.from(hamt.empty.set('a', 3).values('b', 3).values()) === [3, 3];\n```\n\n----\n\n#### `hamt.forEach(f, map)`\n#### `map.forEach(f)`\nInvoke function `f` for each value in the map.\n\n* `f` - Function invoked with `(value, key, map)`.\n* `map` - Hamt map.\n\nOrder is not guaranteed.\n\n\n## Development\nAny contributions to Hamt are welcome. Feel free to open an [issue](https://github.com/mattbierner/hamt/issues) if you run into problems or have a suggested improvement.\n\nTo develop Hamt, fork the repo and install the development node packages:\n\n```bash\ncd hamt\n$ npm install\n```\n\nThe source is written in ES6 and lives in `lib/hamt.js`. Gulp and Bable are used to translate the ES6 code to an ES5 distribution found in `hamt.js`. To start the compiler:\n\n```bash\n$ gulp default\n```\n\nTests are written in Mocha and found in `tests\\*`. To run the tests:\n\n```js\n$ mocha tests\n```\n\n## Credits\nCode originally based on [exclipy's Haskell port][pdata].\n\n[hamt_plus]: https://github.com/mattbierner/hamt_plus\n[hashtrie]: https://github.com/mattbierner/hashtrie\n[benchmarks]: http://github.com/mattbierner/js-hashtrie-benchmark\n[pdata]: https://github.com/exclipy/pdata\n[hash-array-mapped-trie]: http://en.wikipedia.org/wiki/Hash_array_mapped_trie\n[persistent]: http://en.wikipedia.org/wiki/Persistent_data_structure\n\n[mori]: https://github.com/swannodette/mori\n[persistent-hash-trie]: https://github.com/hughfdjackson/persistent-hash-trie\n","maintainers":[{"name":"mattbierner","email":"mattbierner@gmail.com"}],"time":{"modified":"2022-06-18T18:49:43.811Z","created":"2014-02-18T05:22:55.344Z","0.0.0":"2014-02-18T05:22:56.364Z","0.1.0":"2014-02-21T06:20:12.350Z","0.1.1":"2014-02-21T17:38:27.814Z","0.1.2":"2014-02-24T19:44:45.658Z","0.1.3":"2014-02-25T00:10:25.152Z","0.1.4":"2014-04-10T20:18:12.656Z","0.1.5":"2014-08-19T06:40:00.368Z","0.1.6":"2014-08-19T07:20:00.746Z","0.1.7":"2014-08-22T12:38:18.508Z","0.1.8":"2014-09-27T20:28:11.809Z","0.1.9":"2016-01-03T01:27:02.223Z","1.0.0":"2016-01-03T08:51:13.548Z","1.1.0":"2016-01-03T20:09:58.611Z","1.1.1":"2016-01-03T23:40:38.406Z","2.0.0":"2016-01-05T06:25:39.950Z","2.0.1":"2016-01-05T06:33:47.822Z","2.0.2":"2016-01-05T06:48:10.934Z","2.1.0":"2016-01-28T03:23:21.545Z","2.1.1":"2016-01-28T03:42:57.329Z","2.2.0":"2016-01-30T19:51:31.409Z","2.2.1":"2017-09-24T23:31:36.237Z","2.2.2":"2017-09-28T03:34:30.858Z"},"readmeFilename":"README.md","author":{"name":"Matt Bierner"},"repository":{"type":"git","url":"git+https://github.com/mattbierner/hamt.git"},"keywords":["trie","map","immutable","persistent","data structure","hash"],"bugs":{"url":"https://github.com/mattbierner/hamt/issues"},"license":"MIT","homepage":"https://github.com/mattbierner/hamt#readme"}