{"_id":"base32","_rev":"27-4f48dedaa0a07bd84bd6c2ab3078bb4a","name":"base32","description":"Base32 encoding and decoding","dist-tags":{"latest":"0.0.7"},"versions":{"0.0.1":{"name":"base32","description":"Base32 encoding and decoding, using a variant of Douglas Crockford's Base32","version":"0.0.1","repository":{},"author":{"name":"Isaac Wolkerstorfer","email":"agnoster@gmail.com","url":"http://agnoster.net/"},"main":"lib/base32","directories":{"lib":"lib"},"scripts":{"test":"coffee test/*.coffee"},"engines":{"node":"*"},"devDependencies":{"coffee-script":">=1.0.0","vows":">=0.5.6"},"_id":"base32@0.0.1","_engineSupported":true,"_npmVersion":"0.2.17","_nodeVersion":"v0.3.8","files":[""],"_defaultsLoaded":true,"dist":{"shasum":"484432bb96e7e3616e7c585b2286cb3ea6b162ef","tarball":"https://registry.npmjs.org/base32/-/base32-0.0.1.tgz","integrity":"sha512-fy376HxtnRRESe7Nkq1/wi34q5YAzGXRZTlypG58w8Zw3eJCiGFS8gMFJ/ukvC1P3x/KN4UOPB1X6lS16P/BAQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF6z8vtBHhaSvFE90RlMj4MCmOV6ivsB/Ub12Sh7ZNE/AiA6fxrPAeeHgtDMV5oQjyFLaLMgwmsYyR0vQ4U9fK5gqQ=="}]}},"0.0.2":{"name":"base32","description":"Base32 encoding and decoding","version":"0.0.2","author":{"name":"Isaac Wolkerstorfer","email":"agnoster@gmail.com","url":"http://agnoster.net/"},"homepage":"https://github.com/agnoster/base32-js","repository":{"type":"git","url":"git://github.com/agnoster/base32-js.git"},"main":"./lib/base32","directories":{"lib":"./lib","bin":"./bin"},"scripts":{"test":"coffee test/*-test.coffee"},"engines":{"node":"*"},"dependencies":{"optimist":">=0.1.0"},"devDependencies":{"coffee-script":">=1.0.0","vows":">=0.5.6"},"_id":"base32@0.0.2","_engineSupported":true,"_npmVersion":"0.2.17","_nodeVersion":"v0.3.8","bin":{"base32":"bin/base32.js"},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"c59012b89f1901fc626a87639bec41cd957dc857","tarball":"https://registry.npmjs.org/base32/-/base32-0.0.2.tgz","integrity":"sha512-EaQ0gH3pjtDM3gSWta9hE0Cv84corQer+HByLz2JxBPci3OJfJRRvigPb8jKmFpEdR6VR3K/lSMRCh/aHhnh1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0qzrlpWrktkiBT0D1trR4fQaoDL0J4K8xdCZgk6dOLwIgKMKCs517/u3+LiZVbgJWEAD6FO4Wc0DWfLi8rUv9fCc="}]}},"0.0.3":{"name":"base32","description":"Base32 encoding and decoding","version":"0.0.3","author":{"name":"Isaac Wolkerstorfer","email":"agnoster@gmail.com","url":"http://agnoster.net/"},"homepage":"https://github.com/agnoster/base32-js","repository":{"type":"git","url":"git://github.com/agnoster/base32-js.git"},"main":"./lib/base32","directories":{"lib":"./lib","bin":"./bin"},"scripts":{"test":"coffee test/*-test.coffee"},"engines":{"node":"*"},"dependencies":{"optimist":">=0.1.0"},"devDependencies":{"coffee-script":">=1.0.0","vows":">=0.5.6"},"_id":"base32@0.0.3","_engineSupported":true,"_npmVersion":"0.2.17","_nodeVersion":"v0.3.8","bin":{"base32":"bin/base32.js"},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"78936a4d69b6cc4377560d1100388f07040aca2d","tarball":"https://registry.npmjs.org/base32/-/base32-0.0.3.tgz","integrity":"sha512-ABzUDsNeveSyHFM+DyQSeeUO8tV2gsqfZV3jRUXfU90VD93HPrXW2wYb921l3E0DxR4LnGE0h50njSpdcSPlKg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFspOft6o+jccNVLgzP83nPClZwIQxzt9bih2wzD4ZFAAiEAjl+Oik/scuCJmVVRQRIuiMiPZdnv1gi7KbtUdkWFKsY="}]}},"0.0.5":{"name":"base32","description":"Base32 encoding and decoding","version":"0.0.5","author":{"name":"Isaac Wolkerstorfer","email":"agnoster@gmail.com","url":"http://agnoster.net/"},"homepage":"https://github.com/agnoster/base32-js","repository":{"type":"git","url":"git://github.com/agnoster/base32-js.git"},"main":"./lib/base32","bin":{"base32":"./bin/base32.js"},"scripts":{"test":"./node_modules/.bin/coffee test/*-test.coffee"},"engines":{"node":">0.4"},"dependencies":{"optimist":">=0.1.0"},"devDependencies":{"coffee-script":">=1.0.0","vows":">=0.5.6"},"_id":"base32@0.0.5","dist":{"shasum":"41b312bd74fa3a123e53e15b5a292a10472f70e3","tarball":"https://registry.npmjs.org/base32/-/base32-0.0.5.tgz","integrity":"sha512-SVQoLeMdjEsJDzRnRULo5jtEDEB5H7KWJ6jRNZyx9xbNwEVfNS63RdLSXbJ0I2MurvnYe6plpqmPv9p5imnxQA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5mQpMrPDktLBWQvNTHTcCNQfYPz5M5TwRQisM37VCuQIgevu/SlTwZXaBkPRbUx4IWhCG2vTnpYbhyatuXWC0C6I="}]},"maintainers":[{"name":"agnoster","email":"agnoster@gmail.com"}],"directories":{}},"0.0.6":{"name":"base32","description":"Base32 encoding and decoding","version":"0.0.6","author":{"name":"Isaac Wolkerstorfer","email":"agnoster@gmail.com","url":"http://agnoster.net/"},"homepage":"https://github.com/agnoster/base32-js","repository":{"type":"git","url":"git://github.com/agnoster/base32-js.git"},"main":"./lib/base32","bin":{"base32":"./bin/base32.js"},"scripts":{"test":"./node_modules/.bin/coffee test/*-test.coffee"},"engines":{"node":">0.4"},"dependencies":{"optimist":">=0.1.0"},"devDependencies":{"coffee-script":">=1.0.0","vows":">=0.5.6"},"bugs":{"url":"https://github.com/agnoster/base32-js/issues"},"_id":"base32@0.0.6","dist":{"shasum":"79038bcb5aec2d8f22bcc1c28402924f50a6d2ac","tarball":"https://registry.npmjs.org/base32/-/base32-0.0.6.tgz","integrity":"sha512-yLx6Siu9YOKpGvJx3aD/EIEfnpqDkPSm3DG2NbMyra/3wjWVO5D15UBA3jzIWBnxABkcpN+5WUG2sSPuz+8Pgw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCh+QskP4buDVAn633g+4e4laxhfZXzLXLqYooc4nu2OQIhAJlIVSNBZUpPR1zhge1T5PobypKP+bfFUpGqizef0OKk"}]},"_from":".","_npmVersion":"1.3.17","_npmUser":{"name":"agnoster","email":"i@agnoster.net"},"maintainers":[{"name":"agnoster","email":"agnoster@gmail.com"}],"directories":{}},"0.0.7":{"name":"base32","description":"Base32 encoding and decoding","version":"0.0.7","author":{"name":"Isaac Wolkerstorfer","email":"agnoster@gmail.com","url":"http://agnoster.net/"},"homepage":"https://github.com/agnoster/base32-js","repository":{"type":"git","url":"git://github.com/agnoster/base32-js.git"},"main":"./lib/base32","bin":{"base32":"bin/base32.js"},"scripts":{"test":"coffee test/*-test.coffee","bin":"$npm_package_bin_base32"},"engines":{"node":">0.10"},"dependencies":{"minimist":"^1.2.6"},"devDependencies":{"coffee-script":">=1.0.0","gulp":"^3.9.1","gulp-rename":"^1.2.0","gulp-uglify":"^3.0.2","vows":">=0.5.6"},"gitHead":"2b9c85176ebede6b8fb937c63324ec5163ad992a","bugs":{"url":"https://github.com/agnoster/base32-js/issues"},"_id":"base32@0.0.7","_nodeVersion":"18.9.1","_npmVersion":"8.19.1","dist":{"integrity":"sha512-ire9Jmh+BsUk4Idu0wu6aKeJJr/2j28Mlu0qqJBd1SyOGxW/VRotkfwAv3/KE/entVlNwCefs9bxi7kBeCIxTQ==","shasum":"9d3c21de7efde73086fa0164d57ffcb1120c68ea","tarball":"https://registry.npmjs.org/base32/-/base32-0.0.7.tgz","fileCount":14,"unpackedSize":29120,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGZqdppmClC19c+S6MuFSY9onEGnvU3elD/a5we1O3W4AiEA5ImdzD/7meKcyghTxV0IV91wBxpFhKiYr6iNsaTmjvM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjMmELACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoXGhAAkRhpo6y4J04cOstTRHGaGXX/51T6vHcV7fWQNNwUMrRcP2VT\r\nxy7nnVxw16oFlF3aB9OTfZbegHbyaD/bsKf0JodSiRprQPNYMg8bhXZ7+DAd\r\nby+cwfJ9VQK2fCiTGyQNdLa9eO/6KMbO+1PwDmdth5qWVnMUn2SW3+2C9Ngx\r\noYhXLrvC1WZX/fGvv6F8ijjpkzkwVv3c2V4dUAE7bFw1PQHLbDELDOWYfM9T\r\nS0K9awIQS2cgRswzCI1PazQ4ilepyg0yQE+1mBTBqX7DWksmyuYxFTN725cx\r\nRHf/eclrDlmTX0TGKYd02xXDT93TcKC6byo+F4Tu3fTfESJjFpJWXVaqesHc\r\noEPmf9vm+cawK5sBh6l9OumxwVysHqbekxQ2HRIFKXB65U6XKjS74oP6t5fB\r\nHBX14alZMdw0pxO+SSdtL2E7FQk97OMQxJiBJYM9aN7562jehFhwJBRKzyEh\r\n0JE521qt9+6XtWeHUY02rtffZIAJAkgjfO40Bv11C2pOByFmLZz8GKJzRCC8\r\nf23o2mD4xyng9Y7H1FcvMtHgEX1BY5t0llnJfUfpYIJ6L+LwnRHNEmkbPebX\r\ndizGmJPYtq0zJY6LTQ7PdKgpB9fIAkzC/72lxmc3zGp8EEW2JYJGbe9M60T4\r\n6itLlvLhBWkjzBaJSe+YKFY7AF3SKtOFUpo=\r\n=ULdI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"agnoster","email":"i@agnoster.net"},"directories":{},"maintainers":[{"name":"agnoster","email":"i@agnoster.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/base32_0.0.7_1664246026937_0.5196123905328514"},"_hasShrinkwrap":false}},"maintainers":[{"name":"agnoster","email":"i@agnoster.net"}],"time":{"modified":"2022-09-27T02:33:47.178Z","created":"2011-02-09T08:51:05.694Z","0.0.1":"2011-02-09T08:51:06.109Z","0.0.2":"2011-02-09T14:26:28.888Z","0.0.3":"2011-02-09T18:45:00.733Z","0.0.5":"2012-08-14T20:05:19.063Z","0.0.6":"2014-02-20T00:48:30.035Z","0.0.7":"2022-09-27T02:33:47.109Z"},"author":{"name":"Isaac Wolkerstorfer","email":"agnoster@gmail.com","url":"http://agnoster.net/"},"repository":{"type":"git","url":"git://github.com/agnoster/base32-js.git"},"readme":"# Base 32 encoding/decoding for JavaScript [![build status](https://secure.travis-ci.org/agnoster/base32-js.png?branch=master)](http://travis-ci.org/agnoster/base32-js)\n\nBase 32 is between hexadecimal notation and Base 64 encoding. It's intended to be a **human-friendly** -- you don't have to worry about punctuation, capitalization, or letters/numbers that are easy to confuse, making it easier to transmit in handwriting or over the phone.\n\nOne of the primary purposes is to have aesthetically pleasing SHA1 hashes. Compare:\n\n - Hex: `17O57684bea1f9331418b633a8f373119d765fd4`\n - B64: `xE_ptB5SeclHm8JEsD0-ST1mTBM`\n - B32: `2w2qd15ym7wk650rprtuh4vk26eqcqym`\n\nTry giving out the Base 64 hash over the phone! \"lowercase 'x', capital 'E', underscore, lowercase 'p', ...\" Base 32 will work the same with upper- or lowercase, you can mistake a number for a similar-looking letter, and it will *still* decode to the same data.\n\n## Getting started\n\nIn your shell, install with npm:\n\n```sh\nnpm install base32\n```\n\nIn your code:\n\n```javascript\nvar base32 = require('base32')\n\n// simple api\n\nvar encoded = base32.encode('some data to encode')\nvar decoded = base32.decode(encoded)\n\n// streaming api\nthis.encoder = new Base32.encoder()\nthis.dataCallback = function(chunk) {\n    this.emit(this.encoder(chunk))\n}\nthis.closeCallback = function(chunk) {\n    this.emit(this.finish()) // flush any remaining bits\n}\n\n// easy sha1 hash\nvar hash = base32.sha1(some_data_to_hash) // DONE.\n```\n\nOn the command-line (to install system-wide, use `npm install -g base32`):\n\n```sh\nbase32 -h\n#> Usage: base32 [input_file] [-o output_file] [-d|--decode] [-s|--sha]\necho \"Hello World\" | base32\n#> 91jprv3f41bpywkccg50\necho 'axqqeb10d5u20wk5c5p6ry90exqq4uvk44' | base32 -d\n#> Wow, it really works!\nbase32 -s test/*\n#> ky2t1raumjn9cghne773petngx3zz3q7  test/base32-test.coffee\n#> 6b4bkjaveddmg5jh7hnyw132yht20g6e  test/compare.coffee\n```\n\n## Warning: this is *a* Base 32 implementation, not *the* Base 32 implementation\n\nThere are about (128 choose 32) different specifications of something called \"Base 32\" - see [Wikipedia](http://en.wikipedia.org/wiki/Base_32) for some of them.\n\nThis is just one that should be simple, less error-prone, and streamable (for [Node](http://nodejs.org)).\n\n## Minispec\n\n- The *encoding* alphabet consists of the numerals 0-9 and the letters a-z, excluding a few letters that might look like numbers, which we simply interpret as follows:\n\n  - I -> 1\n  - L -> 1\n  - O -> 0\n  - S -> 5\n\n- When *decoding*, capital letters are converted to lowercase and the \"ambiguous\" letters mentioned above converted to their numeric counterparts.\n- Each character corresponds to 5 bits of input.\n- Lexicographic order of strings is preserved through Base 32 encoding.\n\n## Formalia\n\nUnder MIT License.\n\nFork as much as you like, I'm more than amenable to pull requests. I'm trying to keep it reasonably node-ish, so bear that in mind.\n","readmeFilename":"README.md","homepage":"https://github.com/agnoster/base32-js","bugs":{"url":"https://github.com/agnoster/base32-js/issues"},"users":{"forbeslindesay":true,"joris-van-der-wel":true,"joakimbeng":true,"kevin-foster":true}}