{"_id":"hollerith","_rev":"39-9414d63f9278163c0615c7fe678c033b","name":"hollerith","dist-tags":{"latest":"12.0.1"},"versions":{"0.0.0":{"name":"hollerith","version":"0.0.0","keywords":["level","leveldb","db","hollerith","punchcard"],"author":"","license":"MIT","_id":"hollerith@0.0.0","maintainers":[{"name":"loveencounterflow","email":"paragate@gmx.net"}],"homepage":"https://github.com/loveencounterflow/hollerith","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"ad418ea2b717e8d31734605ad140564739a293de","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-0.0.0.tgz","integrity":"sha512-XGKPiCGQ2j8k63wJAjYFLhAI0jCWQrQXGD727cMe3Qc7ga1ZUNaMegWLQ5/wXOxhADaIQSAgQdiN8a1e9RXjig==","signatures":[{"sig":"MEUCIDCXIM48HCYcDkEmkYRkWF09r0Im4PJbB4nVJpe1T/rgAiEAzzzMtXW1Dfwbd682EcbE0KwY2vdPTirc6gRtH1CjXsQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/main.js","_from":".","_shasum":"ad418ea2b717e8d31734605ad140564739a293de","gitHead":"dc5477bc3e7569d3f9ac95429486718c710a48bf","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"loveencounterflow","email":"paragate@gmx.net"},"deprecated":"see https://github.com/loveencounterflow/hollerith/blob/master/README-transition.md","repository":{"url":"https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"1.4.21","description":"use LevelDB like 1969","directories":{}},"0.0.1":{"name":"hollerith","version":"0.0.1","keywords":["level","leveldb","db","hollerith","punchcard"],"author":"","license":"MIT","_id":"hollerith@0.0.1","maintainers":[{"name":"loveencounterflow","email":"paragate@gmx.net"}],"homepage":"https://github.com/loveencounterflow/hollerith","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"eae0056643d877cb5195e11d3673ce186afc128a","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-0.0.1.tgz","integrity":"sha512-fh5u4O88h20JvThELJxtaHuoCM+TImFg0h21SrVDYZxjz8eRfZVkldiVs+eZGnj7Ywq7qlUjbNWeU5fC33wtcg==","signatures":[{"sig":"MEQCIF1x90YiANpDYaJ0wyNU1AR9ykhgutZPHtya5S/FQsuKAiBKkOfKClMOZow/Z2aOu7r8FoQVkyKCC+oQUDsU7mRGiQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/main.js","_from":".","_shasum":"eae0056643d877cb5195e11d3673ce186afc128a","gitHead":"0f62f5e3ade86231ca66cb8180a3dc7ef47ce4ff","scripts":{"test":"./node_modules/coffee-script/bin/coffee -o lib -c src && ./node_modules/coffee-script/bin/coffee -o . -c options.coffee && node lib/test.js"},"_npmUser":{"name":"loveencounterflow","email":"paragate@gmx.net"},"deprecated":"see https://github.com/loveencounterflow/hollerith/blob/master/README-transition.md","repository":{"url":"https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"1.4.21","description":"use LevelDB like 1969","directories":{},"dependencies":{"level":"^0.18.0","pipedreams":"0.0.11","coffeenode-trm":"^0.1.20","coffeenode-diff":"^0.1.1","coffeenode-text":"^0.1.7","coffeenode-bitsnpieces":"0.0.23"},"devDependencies":{"coffee-script":"^1.7.1"}},"0.0.2":{"name":"hollerith","version":"0.0.2","keywords":["level","leveldb","db","hollerith","punchcard"],"author":"","license":"MIT","_id":"hollerith@0.0.2","maintainers":[{"name":"loveencounterflow","email":"paragate@gmx.net"}],"homepage":"https://github.com/loveencounterflow/hollerith","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"d30aba8e51411939a5f3d20893bfa90292129439","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-0.0.2.tgz","integrity":"sha512-0eF3om67ZYYChmj9zigUn1s5XBVu+NZi+y1dw1rjYgKlo92jF6APFZGzpnYxGza9XGTKS++lLUgUUvgELJGnPg==","signatures":[{"sig":"MEUCIDD2q+aJI39SEHshM3QIhvV+7yD03gUP8bSYvTlbsDu4AiEAuQy33HfgISVaRHZrJS42fUDTVySgWiUHQzrz6acFpDo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/main.js","_from":".","_shasum":"d30aba8e51411939a5f3d20893bfa90292129439","gitHead":"c40c253fc04dfe10aefeddfef20898c16c392023","scripts":{"test":"./node_modules/coffee-script/bin/coffee -o lib -c src && ./node_modules/coffee-script/bin/coffee -o . -c options.coffee && node lib/test.js"},"_npmUser":{"name":"loveencounterflow","email":"paragate@gmx.net"},"deprecated":"see https://github.com/loveencounterflow/hollerith/blob/master/README-transition.md","repository":{"url":"https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"1.4.21","description":"use LevelDB like 1969","directories":{},"dependencies":{"level":">=0.18.0","pipedreams":"0.0.11","coffeenode-trm":"^0.1.20","coffeenode-diff":"^0.1.1","coffeenode-text":"^0.1.7","coffeenode-bitsnpieces":"0.0.23"},"devDependencies":{"coffee-script":"^1.7.1"}},"0.0.3":{"name":"hollerith","version":"0.0.3","keywords":["level","leveldb","db","hollerith","punchcard"],"author":"","license":"MIT","_id":"hollerith@0.0.3","maintainers":[{"name":"loveencounterflow","email":"paragate@gmx.net"}],"homepage":"https://github.com/loveencounterflow/hollerith","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"daf19ac79ea8a7e0fe91efd2eb582ba0a58655d8","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-0.0.3.tgz","integrity":"sha512-kPwPA2/nCiq1/MD3xOEY+s/mMpJjKSbiFhaY5XxxN60CA9hY89E/GR4MmWrtex16fPRlA3C+ffgkfZ8tHMIbIg==","signatures":[{"sig":"MEYCIQDh4xUee92HWzmsObgxICDkrXeX7uWitUMyavrci0p++wIhAOLZQ4+CjFLpvXb5rShKfd299K83bZnPVTahci7laRyY","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/main.js","_from":".","_shasum":"daf19ac79ea8a7e0fe91efd2eb582ba0a58655d8","gitHead":"9e75fa01d8e2eca99e1f9beb256eded8dcc00753","scripts":{"test":"./node_modules/coffee-script/bin/coffee -o lib -c src && ./node_modules/coffee-script/bin/coffee -o . -c options.coffee && node lib/test.js"},"_npmUser":{"name":"loveencounterflow","email":"paragate@gmx.net"},"deprecated":"see https://github.com/loveencounterflow/hollerith/blob/master/README-transition.md","repository":{"url":"https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"1.4.21","description":"use LevelDB like 1969","directories":{},"dependencies":{"level":">=0.18.0","pipedreams":"0.0.11","coffeenode-trm":"^0.1.20","coffeenode-diff":"^0.1.1","coffeenode-text":"^0.1.7","coffeenode-bitsnpieces":"0.0.23"},"devDependencies":{"coffee-script":"^1.7.1"}},"0.1.1":{"name":"hollerith","version":"0.1.1","keywords":["level","leveldb","db","hollerith","punchcard"],"author":"","license":"MIT","_id":"hollerith@0.1.1","maintainers":[{"name":"loveencounterflow","email":"paragate@gmx.net"}],"homepage":"https://github.com/loveencounterflow/hollerith","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"df1beb002816d51ca2b92a777d6fb95264a801c9","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-0.1.1.tgz","integrity":"sha512-1x7dQqa7myk2Bkc3eW0mJLgwT5VoHBaeUtY45+4hiux4+NLvLMtg5QlnrktaPZICM63iiFffGny/NTwZkIO3Iw==","signatures":[{"sig":"MEQCIH66szmgC2p8nbtmPAhu6AxIw93uKIm0yk3UxUg50sJ8AiAuplitpSIETOiffCh6p6uO0MMrWVnzYpzM10plWB5cfA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/main.js","_from":".","_shasum":"df1beb002816d51ca2b92a777d6fb95264a801c9","gitHead":"d49fedbd73a5b9e2d390f68e95d867f5d591001d","scripts":{"test":"./node_modules/coffee-script/bin/coffee -o lib -c src && ./node_modules/coffee-script/bin/coffee -o . -c options.coffee && node lib/test.js"},"_npmUser":{"name":"loveencounterflow","email":"paragate@gmx.net"},"deprecated":"see https://github.com/loveencounterflow/hollerith/blob/master/README-transition.md","repository":{"url":"https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"1.4.21","description":"use LevelDB like 1969","directories":{},"dependencies":{"coffeenode-text":"^0.1.9","coffeenode-bitsnpieces":"^0.1.5"}},"1.0.1":{"name":"hollerith","version":"1.0.1","keywords":["level","leveldb","sublevel","db"],"author":"","license":"MIT","_id":"hollerith@1.0.1","maintainers":[{"name":"loveencounterflow","email":"paragate@gmx.net"}],"homepage":"https://github.com/loveencounterflow/hollerith#readme","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"d7ac38515ec0d61f987fb54c120da10fa670c6a4","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-1.0.1.tgz","integrity":"sha512-fYb3k6Rk5H419YqZH+9Nl2HDQIIqhxtsyY4GHZGypsAL/kOif1Fjhb2Yx1007k6ECtxjYl80dvQ4aGEmLEzVog==","signatures":[{"sig":"MEQCIB2Yy2FrBKv7Ec1bs4TXo5aA44siUveomk0i+x8YdnVZAiAG/7RxHjM4AGOqIJtWI6vJI6c/agXLFH+0ihpsXpx39g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/main.js","_from":".","_shasum":"d7ac38515ec0d61f987fb54c120da10fa670c6a4","gitHead":"48d8ab0b3a659ac52cbec086e24ca2955707c07b","scripts":{"test":"gulp --harmony build && node --harmony lib/tests.js"},"_npmUser":{"name":"loveencounterflow","email":"paragate@gmx.net"},"deprecated":"see https://github.com/loveencounterflow/hollerith/blob/master/README-transition.md","repository":{"url":"git+https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"3.2.2","description":"Next version of hollerith, the Binary Phrase DB","directories":{},"_nodeVersion":"0.12.7","dependencies":{"cnd":"^1.0.8","gulp":"^3.9.0","kwic":"^1.0.7","async":"^1.3.0","level":"^1.2.0","lodash":"^3.10.0","mkdirp":"^0.5.1","guy-test":"^1.0.5","pipedreams":"^0.2.24","hollerith-codec":"^1.0.17","segfault-handler":"^0.2.4","coffeenode-suspend":"^0.1.11"},"devDependencies":{"gulp":"^3.9.0","guy-test":"^1.0.2","gulp-coffee":"^2.3.1","coffee-script":"^1.9.2","coffeenode-chr":"^0.1.6","gulp-sourcemaps":"^1.5.2","coffeenode-passphrase":"^0.1.7","coffeelint-variable-scope":"0.0.3"}},"1.0.2":{"name":"hollerith","version":"1.0.2","keywords":["level","leveldb","sublevel","db"],"author":"","license":"MIT","_id":"hollerith@1.0.2","maintainers":[{"name":"loveencounterflow","email":"paragate@gmx.net"}],"homepage":"https://github.com/loveencounterflow/hollerith#readme","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"5c4319d323830076d0e5b0bcec9706172bd408e2","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-1.0.2.tgz","integrity":"sha512-Z4gIAOp9g46DzLx7yY195KVMWr4D4SLKA4kLPhWofLGphWbaHT7LulAzW2WQ+VszVfnC/zarT+oF+Uj3s0htPw==","signatures":[{"sig":"MEQCIG/5ICxdvO5Pp1KQijmHoHE1vY7WGNiTHj5naGkQuhkQAiAOBj2UENnQHopTsddEEuoZAjHmVDLcboMrjYGDAFKZqg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/main.js","_from":".","_shasum":"5c4319d323830076d0e5b0bcec9706172bd408e2","gitHead":"01c996f71a184cd617742ce6cc477945d839368d","scripts":{"test":"gulp --harmony build && node --harmony lib/tests.js"},"_npmUser":{"name":"loveencounterflow","email":"paragate@gmx.net"},"deprecated":"see https://github.com/loveencounterflow/hollerith/blob/master/README-transition.md","repository":{"url":"git+https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"3.2.2","description":"Next version of hollerith, the Binary Phrase DB","directories":{},"_nodeVersion":"0.12.7","dependencies":{"cnd":"^1.0.8","gulp":"^3.9.0","kwic":"^1.0.7","async":"^1.3.0","level":"^1.2.0","lodash":"^3.10.0","mkdirp":"^0.5.1","guy-test":"^1.0.5","pipedreams":"^0.2.24","hollerith-codec":"^1.0.17","segfault-handler":"^0.2.4","coffeenode-suspend":"^0.1.11"},"devDependencies":{"gulp":"^3.9.0","guy-test":"^1.0.2","gulp-coffee":"^2.3.1","coffee-script":"^1.9.2","coffeenode-chr":"^0.1.6","gulp-sourcemaps":"^1.5.2","coffeenode-passphrase":"^0.1.7","coffeelint-variable-scope":"0.0.3"}},"1.0.5":{"name":"hollerith","version":"1.0.5","keywords":["level","leveldb","sublevel","db"],"author":"","license":"MIT","_id":"hollerith@1.0.5","maintainers":[{"name":"loveencounterflow","email":"paragate@gmx.net"}],"homepage":"https://github.com/loveencounterflow/hollerith#readme","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"12c38660aee610aeeafff54635968deb2aa59ad8","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-1.0.5.tgz","integrity":"sha512-DqMaQT8gQu57mt0u/HrCZAUN/GXq1jbxGJlSIQJJnWcgnxuZbaU7V0U8FmUkSEUc2rhDthKU7CIXHZZzVq+eBQ==","signatures":[{"sig":"MEUCICVb2iyT45pe0kUvIi7lW3n8QqEPfaMVZ2kBoQLlByqZAiEAqLENWLFO8Yb32ku1PIklkkB0ta7n9m7exOJi6THGy7w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/main.js","_from":".","_shasum":"12c38660aee610aeeafff54635968deb2aa59ad8","gitHead":"93d4f63da1e78e5a96a1ddd42cc16ec21cb7fd1f","scripts":{"test":"gulp --harmony build && node --harmony lib/tests.js"},"_npmUser":{"name":"loveencounterflow","email":"paragate@gmx.net"},"deprecated":"see https://github.com/loveencounterflow/hollerith/blob/master/README-transition.md","repository":{"url":"git+https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"3.3.12","description":"Next version of hollerith, the Binary Phrase DB","directories":{},"_nodeVersion":"5.2.0","dependencies":{"cnd":"^1.0.9","kwic":"^1.0.7","async":"^1.5.0","level":"^1.3.0","lodash":"^3.10.1","mkdirp":"^0.5.1","leveldown":"^1.4.2","pipedreams":"^1.0.6","hollerith-codec":"^1.0.24","segfault-handler":"^1.0.0","coffeenode-docopt":"^0.1.1","coffeenode-suspend":"^0.1.11"},"devDependencies":{"gulp":"^3.9.0","guy-test":"^1.1.2","gulp-coffee":"^2.3.1","coffee-script":"^1.10.0","coffeenode-chr":"^1.0.2","gulp-sourcemaps":"^1.6.0","coffeenode-passphrase":"^0.1.7","coffeelint-variable-scope":"0.0.3"}},"1.0.6":{"name":"hollerith","version":"1.0.6","keywords":["level","leveldb","sublevel","db"],"author":"","license":"MIT","_id":"hollerith@1.0.6","maintainers":[{"name":"loveencounterflow","email":"paragate@gmx.net"}],"homepage":"https://github.com/loveencounterflow/hollerith#readme","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"027cda0ac527ddd328cb02f0168dae6fd2435b49","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-1.0.6.tgz","integrity":"sha512-kdYxNpyPE4fr9OctXxVWYRQplfKjp7kZtlZbqJhxgG3hwYovhS171KV/Hn7SIHPOcaWaChkMa+Y2Kplgo2+8Kg==","signatures":[{"sig":"MEUCIQDdaI8JlXz0ia4UVCl4jlU2Ex9DoqBMtWm1Rjwqma3IZwIgKL/utSbb+84Z3hJtl1dqTFxV9Qco27k66/Dj56gYrGk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/main.js","_from":".","_shasum":"027cda0ac527ddd328cb02f0168dae6fd2435b49","gitHead":"e1ae94750378b45a0254be5849357ea3337149b5","scripts":{"test":"gulp --harmony build && node --harmony lib/tests.js"},"_npmUser":{"name":"loveencounterflow","email":"paragate@gmx.net"},"deprecated":"see https://github.com/loveencounterflow/hollerith/blob/master/README-transition.md","repository":{"url":"git+https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"3.3.12","description":"Next version of hollerith, the Binary Phrase DB","directories":{},"_nodeVersion":"5.2.0","dependencies":{"cnd":"^1.0.9","kwic":"^1.0.7","async":"^1.5.0","level":"^1.3.0","lodash":"^3.10.1","mkdirp":"^0.5.1","leveldown":"^1.4.2","pipedreams":"^1.0.6","hollerith-codec":"^1.0.24","segfault-handler":"^1.0.0","coffeenode-docopt":"^0.1.1","coffeenode-suspend":"^0.1.11"},"devDependencies":{"gulp":"^3.9.0","guy-test":"^1.1.2","gulp-coffee":"^2.3.1","coffee-script":"^1.10.0","coffeenode-chr":"^1.0.2","gulp-sourcemaps":"^1.6.0","coffeenode-passphrase":"^0.1.7","coffeelint-variable-scope":"0.0.3"}},"1.0.7":{"name":"hollerith","version":"1.0.7","keywords":["level","leveldb","sublevel","db"],"author":"","license":"MIT","_id":"hollerith@1.0.7","maintainers":[{"name":"loveencounterflow","email":"paragate@gmx.net"}],"homepage":"https://github.com/loveencounterflow/hollerith#readme","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"17592f7250319ac82741a275b24bd6c087b6c5e5","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-1.0.7.tgz","integrity":"sha512-UWO28ApnxAXZCXYvhaXbQWD+Iaev8+haYivCbKeUKc/vxyOKAcIJNhTCNFDHVf4V33wDrEoDtZ5hNgKA+DRJfg==","signatures":[{"sig":"MEQCICYaSi8TU+UX1hlYRAxGoSMgVayMgHWEyqWA6zeZPBdRAiBSejl661FsgDbotdeB1Rz7vizBybsfad8g34kObZfuiA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/main.js","_from":".","_shasum":"17592f7250319ac82741a275b24bd6c087b6c5e5","gitHead":"f47a94b756c87fd9001589b3f695ddec94274641","scripts":{"test":"gulp --harmony build && node --harmony lib/tests.js"},"_npmUser":{"name":"loveencounterflow","email":"paragate@gmx.net"},"deprecated":"see https://github.com/loveencounterflow/hollerith/blob/master/README-transition.md","repository":{"url":"git+https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"3.3.12","description":"Next version of hollerith, the Binary Phrase DB","directories":{},"_nodeVersion":"5.2.0","dependencies":{"cnd":"^1.0.9","kwic":"^1.0.7","async":"^1.5.0","level":"^1.3.0","lodash":"^3.10.1","mkdirp":"^0.5.1","leveldown":"^1.4.2","pipedreams":"^1.0.6","hollerith-codec":"^1.0.24","segfault-handler":"^1.0.0","coffeenode-docopt":"^0.1.1","coffeenode-suspend":"^0.1.11"},"devDependencies":{"gulp":"^3.9.0","guy-test":"^1.1.2","gulp-coffee":"^2.3.1","coffee-script":"^1.10.0","coffeenode-chr":"^1.0.2","gulp-sourcemaps":"^1.6.0","coffeenode-passphrase":"^0.1.7","coffeelint-variable-scope":"0.0.3"}},"1.2.5":{"name":"hollerith","version":"1.2.5","keywords":["level","leveldb","sublevel","db"],"author":"","license":"MIT","_id":"hollerith@1.2.5","maintainers":[{"name":"loveencounterflow","email":"paragate@gmx.net"}],"homepage":"https://github.com/loveencounterflow/hollerith#readme","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"43c25b74d50619b1c68bc474cf3601de4926ea7a","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-1.2.5.tgz","integrity":"sha512-yS9N/p89AiF6zX4hZN2h9EVy717n2fLSed4GyIKETDhaS5KihghwAjSiYTn3fZasgnkwA+qugAQm8xot46g7vw==","signatures":[{"sig":"MEUCIGVb8THz/j1nVmArhA4jsZI1Vu2JWziJwCaiB11l+ZifAiEA7OBuYA2Shs/Nvme5AxNtxw5/71bs4mNOYmiInVsJ/d0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/main.js","_from":".","_shasum":"43c25b74d50619b1c68bc474cf3601de4926ea7a","gitHead":"2cfe3c2db694ae3ddcf50a5b13017f745299d537","scripts":{"pub":"npm run build && npm run push && npm version patch && npm publish","push":"git add . && git commit -m'update' && git push -u origin master","test":"npm run build && node lib/tests.js","build":"coffee --map -o lib -c src"},"_npmUser":{"name":"loveencounterflow","email":"paragate@gmx.net"},"deprecated":"see https://github.com/loveencounterflow/hollerith/blob/master/README-transition.md","repository":{"url":"git+https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"3.6.0","description":"Next version of hollerith, the Binary Phrase DB","directories":{},"_nodeVersion":"5.7.0","dependencies":{"cnd":"^3.0.4","ncr":"^1.0.0","kwic":"^1.0.17","async":"^1.5.2","level":"^1.4.0","mkdirp":"^0.5.1","commander":"^2.9.0","leveldown":"^1.4.6","pipedreams":"^3.0.9","hollerith-codec":"^1.2.3","coffeenode-suspend":"^0.1.11"},"devDependencies":{"guy-test":"^1.2.1","coffeenode-chr":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/hollerith-1.2.5.tgz_1465347048076_0.9898785033728927","host":"packages-12-west.internal.npmjs.com"}},"4.0.6":{"name":"hollerith","version":"4.0.6","keywords":["level","leveldb","sublevel","db"],"author":"","license":"MIT","_id":"hollerith@4.0.6","maintainers":[{"name":"loveencounterflow","email":"paragate@gmx.net"}],"homepage":"https://github.com/loveencounterflow/hollerith#readme","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"66d0eb1eb98882bdfcbca2110d818ee14013fa9e","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-4.0.6.tgz","integrity":"sha512-HeIPeyGIPnLvN+xnRpBHrBRw3SDhb3L+P2T1zrJGLzqQDySYYeJy7L1Job1BPfFd+DTEy5Hf953fLvU5O4rwhA==","signatures":[{"sig":"MEUCIQD1cVX3FHJHtEI0t8Mw/JPSQbChLIqs1XwJUdo4QCjLLwIgdyX7UbNTFE09h7yCItF1zKJGYi2OwmJTK/KapgbvOkM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/main.js","_from":".","_shasum":"66d0eb1eb98882bdfcbca2110d818ee14013fa9e","gitHead":"d792dbba1d8619f057773b83feaef8282a049ab3","scripts":{"pub":"npm run build && npm run push && npm version patch && npm publish","push":"git add . && git commit -m'update' && git push","test":"npm run build && node lib/tests.js","build":"coffee --map -o lib -c src"},"_npmUser":{"name":"loveencounterflow","email":"paragate@gmx.net"},"deprecated":"see https://github.com/loveencounterflow/hollerith/blob/master/README-transition.md","repository":{"url":"git+https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"3.7.3","description":"Next version of hollerith, the Binary Phrase DB","directories":{},"_nodeVersion":"5.9.1","dependencies":{"cnd":"^4.1.1","ncr":"^1.0.0","kwic":"^1.0.17","async":"^2.0.0","level":"^1.4.0","mkdirp":"^0.5.1","commander":"^2.9.0","leveldown":"^1.4.6","pipedreams":"^4.2.0","hollerith-codec":"^1.2.4","coffeenode-suspend":"^0.1.11"},"devDependencies":{"guy-test":"^1.2.3","coffeenode-chr":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/hollerith-4.0.6.tgz_1468842900252_0.2496565063484013","host":"packages-12-west.internal.npmjs.com"}},"4.0.8":{"name":"hollerith","version":"4.0.8","keywords":["level","leveldb","sublevel","db"],"author":"","license":"MIT","_id":"hollerith@4.0.8","maintainers":[{"name":"loveencounterflow","email":"paragate@gmx.net"}],"homepage":"https://github.com/loveencounterflow/hollerith#readme","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"94d2d2ee8cdf6544f619f8a5df4be4f387ba1770","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-4.0.8.tgz","integrity":"sha512-NugP8JAAeATksdcX0LoFu5gU9e/xYP14WsRpmytaIJ6Jk1HhxU7I8oLgcb79r1JFWW5QJ+Gx+x5/YNxvvua/0w==","signatures":[{"sig":"MEUCIGcJNouwVpqsgtR7G7vabJdsqE+RMmLuogGp2bZ0nQceAiEAke8m+AlHwTqBM4bnxYZT1Wpl3aFrJwkyuwggRfJP8UY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/main.js","_from":".","_shasum":"94d2d2ee8cdf6544f619f8a5df4be4f387ba1770","gitHead":"286b535d0f8df5dd010407cafbd936ef347432c5","scripts":{"pub":"npm run build && npm run push && npm version patch && npm publish","push":"git add . && git commit -m'update' && git push","test":"npm run build && node lib/tests.js","build":"coffee --map -o lib -c src","test-travis":"node lib/tests.js"},"_npmUser":{"name":"loveencounterflow","email":"paragate@gmx.net"},"deprecated":"see https://github.com/loveencounterflow/hollerith/blob/master/README-transition.md","repository":{"url":"git+https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"3.10.3","description":"Next version of hollerith, the Binary Phrase DB","directories":{},"_nodeVersion":"6.4.0","dependencies":{"cnd":"^4.1.1","ncr":"^1.0.0","kwic":"^1.0.17","async":"^2.0.0","level":"^1.4.0","mkdirp":"^0.5.1","commander":"^2.9.0","leveldown":"^1.4.6","pipedreams":"^4.2.0","hollerith-codec":"^1.2.4","coffeenode-suspend":"^0.1.11"},"devDependencies":{"guy-test":"^1.2.3","coffeenode-chr":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/hollerith-4.0.8.tgz_1474123202301_0.3062887096311897","host":"packages-16-east.internal.npmjs.com"}},"10.0.1":{"name":"hollerith","version":"10.0.1","keywords":["vectorial numbers","vnr"],"author":"","license":"MIT","_id":"hollerith@10.0.1","maintainers":[{"name":"loveencounterflow","email":"johnfrazer783@gmail.com"}],"homepage":"https://github.com/loveencounterflow/hollerith#readme","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"198844804c93be60ea87c711dcb119e8b0de5467","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-10.0.1.tgz","fileCount":7,"integrity":"sha512-FRMlEbv3kuWVTiZE0wPZLu5f0tf9YC8t3jrbssCUsEly33O0+jYJMqNEvR6ofb95GeR9WvIs//zvn3HvfN2akQ==","signatures":[{"sig":"MEUCIGNbIvJmz0TowW31q/RTkpy7tOUvrpnl2oDs5u5LcTbxAiEAz9nEU2gENDDR7E7zYRpucGb1HDhGyP3UP0cbBnC9VSM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47529,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJ5FECRA9TVsSAnZWagAAVvcQAJCX7kUR3iXajDxhI6ME\nk0sfSyFc6CtrybAKxZoSEnrh9Aqw6RpNyiolrwWiXpAEVF2p6y2unk4iSyoB\nADPg/c/p4vO6DI3MWyCMbYN+rgqR80AOuFfv3jYBEazO21fOEvCigmgy9cEj\nIj0a/5GlzfKsusUKkVIWzm8/Ju+lJvrnvEfOFLX2r/fYP46wUqbo0g0vFJEY\nNmk683Irbr+7SO57V1IVAvL3bz7smj652c4TKhrwoQ0UUXP9/5IyrhW30Y+p\nNjzB6brhevfjs4VmflknaVtoDr+KkoP6wchN7Dhf/3iOSIEDXFWdHv36G0Qz\nQn6EFen1gFvTjjQ+6V3IaZhM8sP7TKPUfflB0kbfLqzNxaaS7FWUIfWQorIK\n/7JX6oyBbWP622IpckhgRPyCwo6kuRYP9iObRvDwVbyLsEYhN/2K7aOF5HDb\nNIhBpHMKhG1UbTjzpDpuE0gT20COqrp6MK/4tQUxgXj9PuLGuk5WULry+acX\nc+7vpl80fpImjcuNGHwlaYJg6hzpJk7AxcQv3BilRfXDwmYEygznd351c3h9\nWYh1tDdhbod3VGK8xYy8tHTMW53E4XwFZgaP/b5OCATGuIfLKBToqkkCNmZ6\nNllmTfvKJtEBEna8DU44aIv+PK4xUWcXcZOV0lSp4bw6MSvDUeUL9EsTQ1ux\n11hu\r\n=yVqq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/main.js","_from":"file:hollerith-10.0.1.tgz","scripts":{"test":"echo see 'https://github.com/loveencounterflow/hengist/tree/master/dev/hollerith'"},"_npmUser":{"name":"loveencounterflow","email":"johnfrazer783@gmail.com"},"_resolved":"/home/flow/jzr/hollerith/hollerith-10.0.1.tgz","_integrity":"sha512-FRMlEbv3kuWVTiZE0wPZLu5f0tf9YC8t3jrbssCUsEly33O0+jYJMqNEvR6ofb95GeR9WvIs//zvn3HvfN2akQ==","repository":{"url":"git+https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"7.21.0","description":"vectorial numbers (VNRs) that allow for arbitrary many interstitial elements with a binary sortable representation","directories":{"lib":"lib"},"_nodeVersion":"16.6.2","dependencies":{"cnd":"^9.2.2","intertype":"^7.6.7","letsfreezethat":"^3.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hollerith_10.0.1_1629983044355_0.14702693465643146","host":"s3://npm-registry-packages"}},"11.0.0":{"name":"hollerith","version":"11.0.0","keywords":["vectorial numbers","vnr"],"author":"","license":"MIT","_id":"hollerith@11.0.0","maintainers":[{"name":"loveencounterflow","email":"johnfrazer783@gmail.com"}],"homepage":"https://github.com/loveencounterflow/hollerith#readme","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"22b0d328552af1a3f7e72524231ee4849194e673","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-11.0.0.tgz","fileCount":7,"integrity":"sha512-BqitG6WFzHgioEFC9TRkbwLgkw38+1PC3pjaCTab9sDGs0VepYaple7J1iYwQRQCgWMU+d52ragNjkjLc9F8cA==","signatures":[{"sig":"MEYCIQDMOZ36Zn0iGSm4yYRLOgYO0C/wE5SwwuPIYsOpoaQB0wIhANqZbkN31ZOONCUyvtlPVXtdYmFoLGJ7HmhelaR2XrwE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":48332,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhKKCqCRA9TVsSAnZWagAAM0YQAJz4+I+Jglc9wOg7Rsu5\ngS9cMw4zZ/PDcZh5t0KGfwLp+9Gzvk++xLui/kYHTtbAL57q3CFmo7wF0VS+\n+ZsN3sfTAT0pbeTlk4f95Kv4osRhPUoQu5IhFkElHZKOhshUbsmwGNRNAlsI\ndCCz8qJFej8P1eherWyDZ1RYTjRypvPM7s24q8ELcwZfkvlujNRGEyNVB3YA\nvvfVHN7NJASyp+HftSmdv5PnLdQOIjMaHDmYXipVyqHRCJ3F3Qe754Qtommj\nheZb2fJkqEGTBhgr7Y9NyQNUvbdySSjLzknGH3J/4jKEMYDIFYgrTZbmmt/i\n+Cd1X+XXlCX6hvdMpPhHH5pXfnC76n2buZvKkPqjzu/c7xAYPFdZ+de9KNJ7\nYLnw2tYFLiPQYK6pUYPfRaz3W9CJb8fwz8pL6J6biT9ogrL5NztVFBqFni3r\nY8SGYrRpbRMOYBmd2p5RuiQYjcEcl60TyHM23+i/z8PECeWZSslnW2Up0PRD\n5ScHHHodR4PPfntDPQR7UClu8YGjHPoC0PonU2pIw5ZNjfhcgUPeFYptLNaN\n4TIlxxF2EYZQGfMsYx0OhZiWomAxMefsOPKreBv5PERKD4qlDfio1gedhwHi\n7HLtkuss5Ui3AwuJ1tk3WbZs6SWixQ+nphDlapNrV1rNgsDYxtnMJ+hlItSf\nLGC6\r\n=G39L\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/main.js","_from":"file:hollerith-11.0.0.tgz","scripts":{"test":"echo see 'https://github.com/loveencounterflow/hengist/tree/master/dev/hollerith'"},"_npmUser":{"name":"loveencounterflow","email":"johnfrazer783@gmail.com"},"_resolved":"/home/flow/jzr/hollerith/hollerith-11.0.0.tgz","_integrity":"sha512-BqitG6WFzHgioEFC9TRkbwLgkw38+1PC3pjaCTab9sDGs0VepYaple7J1iYwQRQCgWMU+d52ragNjkjLc9F8cA==","repository":{"url":"git+https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"7.21.0","description":"vectorial numbers (VNRs) that allow for arbitrary many interstitial elements with a binary sortable representation","directories":{"lib":"lib"},"_nodeVersion":"16.6.2","dependencies":{"cnd":"^9.2.2","intertype":"^7.6.7","letsfreezethat":"^3.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hollerith_11.0.0_1630052521907_0.773059592564662","host":"s3://npm-registry-packages"}},"12.0.0":{"name":"hollerith","version":"12.0.0","keywords":["vectorial indices","vdx"],"author":"","license":"MIT","_id":"hollerith@12.0.0","maintainers":[{"name":"loveencounterflow","email":"johnfrazer783@gmail.com"}],"homepage":"https://github.com/loveencounterflow/hollerith#readme","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"dist":{"shasum":"ad04b3a209abf8580ab6da633577976f906a82c3","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-12.0.0.tgz","fileCount":12,"integrity":"sha512-wHoZnCSjw/7cOyPO75xo26KzEkeBFAutRFls0JHr+F9Bzk/zelgOzJB2NIroPiSjzL/QG77Lfg/QOvaL25BQjg==","signatures":[{"sig":"MEUCIQDx65QDnNxOd2BaGUgpm7ROFG9mQFfm5XyggSLQrbfj+AIgOgT+ZMSgsT0tmzRPSXuS3qE56h+cpAfDmAKZ49vsWyM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260036},"main":"lib/main.js","_from":"file:hollerith-12.0.0.tgz","scripts":{"test":"echo see 'https://github.com/loveencounterflow/hengist/tree/master/dev/hollerith'"},"_npmUser":{"name":"loveencounterflow","email":"johnfrazer783@gmail.com"},"_resolved":"/tmp/068b995face80b848a4663dc9fc0da47/hollerith-12.0.0.tgz","_integrity":"sha512-wHoZnCSjw/7cOyPO75xo26KzEkeBFAutRFls0JHr+F9Bzk/zelgOzJB2NIroPiSjzL/QG77Lfg/QOvaL25BQjg==","repository":{"url":"git+https://github.com/loveencounterflow/hollerith.git","type":"git"},"_npmVersion":"11.5.1","description":"vectorial indices (VDXs) that allow for arbitrary many interstitial elements with a binary sortable representation","directories":{"lib":"lib"},"_nodeVersion":"24.6.0","dependencies":{"regex":"^6.0.1","interlex":"^0.13.1","bricabrac-single-file-modules":"^0.12.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hollerith_12.0.0_1758010846697_0.99083026453146","host":"s3://npm-registry-packages-npm-production"}},"12.0.1":{"name":"hollerith","version":"12.0.1","description":"vectorial indices (VDXs) that allow for arbitrary many interstitial elements with a binary sortable representation","main":"lib/main.js","directories":{"lib":"lib"},"repository":{"type":"git","url":"git+https://github.com/loveencounterflow/hollerith.git"},"keywords":["vectorial indices","vdx"],"author":"","license":"MIT","bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"homepage":"https://github.com/loveencounterflow/hollerith#readme","dependencies":{"bricabrac-single-file-modules":"^0.14.0","interlex":"^0.13.1","regex":"^6.0.1"},"scripts":{"test":"echo see 'https://github.com/loveencounterflow/hengist/tree/master/dev/hollerith'"},"_id":"hollerith@12.0.1","_integrity":"sha512-QhHTmsD+VptznivgeHtuJsNUjurw8Dv/2LJ2WrQXk65eQ/9tAQeQ7UtXxsrvzoa4ppO2IUFI6n5r56bCkFKehA==","_resolved":"/tmp/15a9a878a4e3bb8fc48019902873f5e8/hollerith-12.0.1.tgz","_from":"file:hollerith-12.0.1.tgz","_nodeVersion":"24.6.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-QhHTmsD+VptznivgeHtuJsNUjurw8Dv/2LJ2WrQXk65eQ/9tAQeQ7UtXxsrvzoa4ppO2IUFI6n5r56bCkFKehA==","shasum":"b880d41d8899b3db6b48212f3a8b6f591239644a","tarball":"https://registry.npmjs.org/hollerith/-/hollerith-12.0.1.tgz","fileCount":12,"unpackedSize":259996,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGPvrqZLtkfRFGXbfNbHv4FEdJtG8KMegirYu+QDoCSWAiBmVkrKQFCXdv7PJP7UrF93n96xEPAJjMpPHAebuRhTPw=="}]},"_npmUser":{"name":"loveencounterflow","email":"johnfrazer783@gmail.com"},"maintainers":[{"name":"loveencounterflow","email":"johnfrazer783@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hollerith_12.0.1_1758011252253_0.8525862080481632"},"_hasShrinkwrap":false}},"time":{"created":"2014-08-21T14:50:21.524Z","modified":"2025-09-16T08:27:32.609Z","0.0.0":"2014-08-21T14:50:21.524Z","0.0.1":"2014-08-21T21:25:35.197Z","0.0.2":"2014-11-15T14:50:29.467Z","0.0.3":"2015-01-11T22:51:18.507Z","0.1.1":"2015-01-16T10:40:16.294Z","1.0.1":"2015-08-14T12:10:13.410Z","1.0.2":"2015-08-14T13:00:54.423Z","1.0.5":"2015-12-17T21:06:42.097Z","1.0.6":"2015-12-17T21:17:49.083Z","1.0.7":"2015-12-17T21:23:15.685Z","1.2.5":"2016-06-08T00:50:51.061Z","4.0.6":"2016-07-18T11:55:02.899Z","4.0.8":"2016-09-17T14:40:04.420Z","10.0.1":"2021-08-26T13:04:04.508Z","11.0.0":"2021-08-27T08:22:02.104Z","12.0.0":"2025-09-16T08:20:46.882Z","12.0.1":"2025-09-16T08:27:32.443Z"},"bugs":{"url":"https://github.com/loveencounterflow/hollerith/issues"},"license":"MIT","homepage":"https://github.com/loveencounterflow/hollerith#readme","keywords":["vectorial indices","vdx"],"repository":{"type":"git","url":"git+https://github.com/loveencounterflow/hollerith.git"},"description":"vectorial indices (VDXs) that allow for arbitrary many interstitial elements with a binary sortable representation","maintainers":[{"name":"loveencounterflow","email":"johnfrazer783@gmail.com"}],"readme":"\n\n# Hollerith\n\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*\n\n- [Hollerith](#hollerith)\n  - [Compact Encoding](#compact-encoding)\n  - [Motivation](#motivation)\n  - [Invariants](#invariants)\n  - [See Also](#see-also)\n  - [To Do](#to-do)\n    - [Digits Needed to Represent an 'All-9s Number' Less Than Max Safe Integer](#digits-needed-to-represent-an-all-9s-number-less-than-max-safe-integer)\n    - [Why not VarInts, LEB128?](#why-not-varints-leb128)\n    - [Configuration](#configuration)\n    - [Other](#other)\n  - [Is Done](#is-done)\n  - [Don't](#dont)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n# Hollerith\n\nvectorial indices ('vindices' or VDXs) that allow for arbitrary many interstitial elements with a binary\nsortable representation\n\n## Compact Encoding\n\n## Motivation\n\n\n\n\n\n\n| +A       | +B   | +C       |     | −A                | −B   | −C       |\n| -------: | ---: | ---:     | --- | ---:              | ---: | ---:     |\n| +001     | 1    | **o1**   |     | 1000 + −999 = 1   | 001  | **k001** |\n| +002     | 2    | **o2**   |     | 1000 + −998 = 2   | 002  | **k002** |\n| +003     | 3    | **o3**   |     | 1000 + −997 = 3   | 003  | **k003** |\n| +004     | 4    | **o4**   |     | 1000 + −996 = 4   | 004  | **k004** |\n| +005     | 5    | **o5**   |     | 1000 + −995 = 5   | 005  | **k005** |\n| +006     | 6    | **o6**   |     | 1000 + −994 = 6   | 006  | **k006** |\n| +007     | 7    | **o7**   |     | 1000 + −993 = 7   | 007  | **k007** |\n| +008     | 8    | **o8**   |     | 1000 + −992 = 8   | 008  | **k008** |\n| +009     | 9    | **o9**   |     | 1000 + −991 = 9   | 009  | **k009** |\n| +010     | 10   | **p10**  |     | 1000 + −990 = 10  | 010  | **k010** |\n| +011     | 11   | **p11**  |     | 1000 + −989 = 11  | 011  | **k011** |\n| +012     | 12   | **p12**  |     | 1000 + −988 = 12  | 012  | **k012** |\n| +013     | 13   | **p13**  |     | 1000 + −987 = 13  | 013  | **k013** |\n| +014     | 14   | **p14**  |     | 1000 + −986 = 14  | 014  | **k014** |\n| +015     | 15   | **p15**  |     | 1000 + −985 = 15  | 015  | **k015** |\n| ...      | ...  | ...      |     | ...         ...   | ...  | ...      |\n| +985     | 985  | **q985** |     | 1000 + −015 = 985 | 85   | **l85**  |\n| +986     | 986  | **q986** |     | 1000 + −014 = 986 | 86   | **l86**  |\n| +987     | 987  | **q987** |     | 1000 + −013 = 987 | 87   | **l87**  |\n| +988     | 988  | **q988** |     | 1000 + −012 = 988 | 88   | **l88**  |\n| +989     | 989  | **q989** |     | 1000 + −011 = 989 | 89   | **l89**  |\n| +990     | 990  | **q990** |     | 1000 + −010 = 990 | 0    | **m0**   |\n| +991     | 991  | **q991** |     | 1000 + −009 = 991 | 1    | **m1**   |\n| +992     | 992  | **q992** |     | 1000 + −008 = 992 | 2    | **m2**   |\n| +993     | 993  | **q993** |     | 1000 + −007 = 993 | 3    | **m3**   |\n| +994     | 994  | **q994** |     | 1000 + −006 = 994 | 4    | **m4**   |\n| +995     | 995  | **q995** |     | 1000 + −005 = 995 | 5    | **m5**   |\n| +996     | 996  | **q996** |     | 1000 + −004 = 996 | 6    | **m6**   |\n| +997     | 997  | **q997** |     | 1000 + −003 = 997 | 7    | **m7**   |\n| +998     | 998  | **q998** |     | 1000 + −002 = 998 | 8    | **m8**   |\n| +999     | 999  | **q999** |     | 1000 + −001 = 999 | 9    | **m9**   |\n\n* For positive numbers greater than zero as in **+A**:\n  * **+B**: Remove leading zeroes, if any.\n  * **+C**: Prepend a magnifier corresponding to the number of digits; longer numbers get a\n    lexicographically bigger magnifier.\n\n* For negative numbers greater than zero:\n  * **−A**: Add `_max_integer` plus one; this 'lifts' −999 to +1\n  * **−B**: Do two things:\n    * pad with leading zeroes up to the length of `_max_integer` and\n    * remove leading nines.\n  * **−C**: ; Now absolutely small negative integers have few digits again while absolutely large ones have\n    many digits again. Prepend a magnifier corresponding to the number of digits; numbers with more digits\n    get a prefix that lexicographically precedes ones with fewer digits.\n\n+000      0   n\n\n## Invariants\n\n* **`blank`**:        `' '`                     # separator used in `magnifiers` and `uniliterals`\n* **`alphabet`**:     `'0123456789'`            # digits; length of `alphabet` is the `base`\n* **`magnifiers`**:   `'ABC XYZ'`               #\n* **`uniliterals`**:  `'EFGHIJKLM N OPQRSTUVW'` # negative uniliterals, blank, zero uniliteral, blank, positive uniliterals\n* **`dimension`**:     `3`                      # number of indices supported\n\n* **`zpuns`**:              `'NOPQRSTUVW'`    # DERIVED # zero and positive uniliteral numbers\n* **`nuns`**:               `'EFGHIJKLM'`     # DERIVED # negative          uniliteral numbers\n* **`_max_integer`**:        `+999`            # DERIVED\n* **`_min_integer`**:        `-999`            # DERIVED\n* **`zpun_max`**:           `+9`              # DERIVED # biggest   number representable as uniliteral\n* **`nun_min`**:            `-9`              # DERIVED # smallest  number representable as uniliteral\n* **`base`**:               `10`              # DERIVED from length of alphabet\n* **`nmag_chrs_reversed`**: `'ABC'`           # DERIVED from first part of `magnifiers`\n* **`pmag_chrs`**:          `'XYZ'`           # DERIVED from latter part of `magnifiers`\n* **`pmag`**:               `'  XYZ'`         # DERIVED from magnifiers  # positive 'magnifier' for 1 to 3 positive digits\n* **`nmag`**:               `'  CBA'`         # DERIVED from magnifiers  # negative 'magnifier' for 1 to 3 negative digits\n* **`leading_niners_re`**:  `/// ^ (?: 9 )*? (?= . $ ) ///gv`  # DERIVED # 'negative leader', discardable leading highest digits ('niners') of lifted negative numbers\n* **`_max_digits_per_idx`**:    `3`           # DERIVED # maximum number of digits of a single index in this system; must be at least 1, at most number of positive magnifiers\n\n* no codepoint is repeated\n* only codepoints between U+0000 and U+10ffff are supported;\n  * **NOTE** this needs re-writing string index access to array index access\n* all codepoints must be be given in monotonically ascending order, both individually and when concatenated\n  as `alphabet + nmag_chrs_reversed + nuns + zpuns` (with `blank`s elided)\n\n\n\n## See Also\n\ninspired by & thx to https://stately.cloud/blog/encoding-sortable-binary-database-keys/\n\n\n## To Do\n\n### Digits Needed to Represent an 'All-9s Number' Less Than Max Safe Integer\n\n\n```\n| from base | to base | max_niners |\n| -------:  | ------: | ---------: |\n|        2  |         |       52   |\n|        3  |         |       33   |\n|        4  |         |       26   |\n|        5  |         |       22   |\n|        6  |         |       20   |\n|        7  |         |       18   |\n|        8  |         |       17   |\n|        9  |         |       16   |\n|       10  |     11  |       15   |\n|       12  |     13  |       14   |\n|       14  |     16  |       13   |\n|       17  |     21  |       12   |\n|       22  |     28  |       11   |\n|       29  |     39  |       10   |\n|       40  |     59  |        9   |\n|       60  |     98  |        8   |\n|       99  |    128  |        7   |\n```\n\n*Ex. for digits `01234` i.e. base 5 you can write out at most 22 'Niners' (in the sense of 'highest\nsingle-digit number in that base'; that's a `4`) before getting an integer that is greater than\n`Number.MAX_SAFE_INTEGER`; adding a 23rd digit `4` will cross that limit.*\n\n*The largest base supported by JS (in `parseInt( s, base )` and `Number::toString( base )`) is 36 which has\n`z` for its 'niner' (biggest digit). As per the above table, you can have integers of up to 10 `z`s, so\n`zzzzzzzzzz` (3,656,158,440,062,975) is the largest 'all-Niners' safe integer in that system. All bases from\n29 up to and including 39 have that same 10-digit limit.*\n\n*Bases 14, 15, and 16 all have a limit of 15 'Niners', so their biggest safe 'all-Niners' are\n`ddddddddddddddd`, `eeeeeeeeeeeeeee`, and `fffffffffffffff`, respectively.*\n\n*These numbers are calculated with the following formulas / functions:*\n\n* *Logarithm to a given `base` of a given number `n`:*\n\n  ```coffee\n  log_to_base = ( n, base ) -> ( Math.log n ) / ( Math.log base )\n  ```\n\n* *Number of digits required to write a given number `n` in a positional system with a given `base`:*\n\n  ```coffee\n  get_required_digits = ( n, base ) -> Math.ceil log_to_base n, base\n  ```\n\n* *Maximum number of highest-value digits (i.e. `base - 1`) to write a number that does not exceed a given\n  number `n`:*\n\n  ```coffee\n  get_max_niner_digit_count  = ( n, base ) -> ( required_digits n, base ) - 1\n  ```\n\n### Why not VarInts, LEB128?\n\nUsing https://github.com/joeltg/big-varint, we can easily see that, with Signed BigInt VarInts, negative\nnumbers get interspersed as odd byte values in between the positive integers, which get represented as even\nbyte values such that, for the numbers `-3` to `+3`, you get the single-byte encodings `[ 5, 3, 1, 0, 2, 4,\n6, ]`, in that order. This entails that encoded values will be sorted according to their absolute value, not\ntheir signed value, with each negative number (like `-3`) directly preceding its positive counterpart\n(`+3`). This runs counter the properties we need for Vectorial Indexes.\n\nOther than that, VarInt is also an explicitly binary encoding in the sense that it uses sequences of bytes\nwith intentional disregard for how those bytes could be turned into manageable chunks of printable text.\nThat's great for some situations, but if you want to have textual (a.k.a. 'human-readable') input and\noutput, there's always some extra encoding-decoding step necessary *in addition* to the necessity to encode\nand decode between index arrays and their sortable version.\n\n```coffee\n{ encode,\n  decode,     } = ( require 'big-varint' ).signed\n#...........................................................................................................\nnumbers = [ -3 .. +3 ]\nvarints = ( encode ( BigInt n ) for n in numbers )\n#...........................................................................................................\nnumbers.sort ( a, b ) ->\n  return +1 if a > b\n  return -1 if a < b\n  return  0\n#...........................................................................................................\nvarints.sort ( a, b ) ->\n  return +1 if a[ 0 ] > b[ 0 ]\n  return -1 if a[ 0 ] < b[ 0 ]\n  return  0\n```\n\n```\n| numbers | varints |\n| ------: | ------: |\n|      -3 |      0n |\n|      -2 |     -1n |\n|      -1 |      1n |\n|       0 |     -2n |\n|      +1 |      2n |\n|      +2 |     -3n |\n|      +3 |      3n |\n```\n\nUsing [LEB128]() is similarly unsuited; sorting the LEB128 encodings of the BigInt sequence `[ -127n, -3,\n-2, -1, 0, 1, 2, 3, 127n ]` yields `[ 0n, 1n, 2n, 3n, -3n, -2n, -1n, -127n, 127n, ]`, which is not conducive\nto VDX sorting as described here.\n\n### Configuration\n\n* **`[—]`** validate that `_max_digits_per_idx` and `_max_integer`, when both set, don't contradict each other\n\n* **`[—]`** devise terminology to distinguish uniliteral for zero (`constants_10mvp2`: `N`) and digit for\n  zero (`constants_10mvp2`: `0`, intermittingly call `_digit_zero`)\n  * **`[—]`** digit nine ('novenary digit'): 'nova'\n  * **`[—]`** digit zero: 'nought'\n  * **`[—]`** uniliteral zero: 'cipher'\n  * **`[—]`** add settings to retrieve both\n\n* **`[—]`** `_max_idx_width` is derived as `max_idx_digits + 1`; `dimension` is the (maximum) count of\n  indexes per vector(ial index); `_sortkey_width` is number of code units (i.e. string length, *not* number\n  of characters) of all sortkeys produced by `Hollerith::encode_vdx()`, derived as `_max_idx_width *\n  dimension`\n\n* **`[—]`** `Hollerith::encode()` resolves to `encode_idx()` or `encode_vdx()`, depending on whether input\n    is number or list\n  * **`[—]`** `Hollerith::encode_idx()` encodes a single integer between inclusive `cfg._min_integer` and\n    `cfg._max_integer` without zero-padding; the maximum length of the returned value is given by\n    `_max_idx_width` (one uniliteral / magnifier plus `max_idx_digits`)\n  * **`[—]`** `Hollerith::encode_vdx()`\n  * **`[—]`** depending on use case, there's a case to be made for `_idx_width` both to exclude and to\n    include the magnifier, so `constants_10mvp2._idx_width` is `3` (because its longest representable\n    numbers are `-999` and `+999`) and `4` (because its longest representable numbers are written out as\n    `A000` and `Z999`, respectively).\n\n### Other\n\n* **`[—]`** support codepoints beyond `U+ffff`; this needs re-writing string index access to frozen array\n  index access\n\n* **`[—]`** in `compile_sortkey_lexer`, fix derivation of `nuns_letters`, `puns_letters`, `nmag_letters`,\n  `pmag_letters`, `zero_letters` to work for non-BMP codepoints\n\n* **`[—]`** in `Hollerith_typespace.magnifiers`, `nmag_bare_reversed` and `pmag_bare` are derived as\n  `x.split @[CFG].blank` where a RegEx compiled from `@[CFG].blank` (roughly as `new RegExp\n  \"(?:#{RegExp.escape @[CFG].blank})+\", 'v'`) should be used\n\n* **`[—]`** remove restriction that negative and positive magnifiers must have same length\n\n* **`[—]`** replace `Hollerith_typespace.incremental_text()`, `Hollerith_typespace.decremental_text()` with\n  `Hollerith_typespace.incremental()`, `Hollerith_typespace.decremental()` that\n  * accept texts (to be turned into lists) and lists-of-characters\n  * skip over `Hollerith_typespace[CFG].blank`s\n\n* **`[—]`** avoid padding and reversing of character lists, rather, use appropriate indexes\n\n* **`[—]`** avoid having to declare magnifiers that are entirely covered by uniliterals\n\n* **`[—]`** re-implement `unstable-anybase-brics.coffee#encode()`, `unstable-anybase-brics.coffee#decode()`\n  to avoid building intermediate values\n\n* **`[—]`** re-name `Hollerith_typespace[CFG].alphabet` to `digits`, which frees `alphabet` to signify the\n  complete, ordered, `blank`-separated list of characters used to define a given Hollerith number format\n\n* **`[—]`** (-> Bric-A-Brac) implement a character analyzer that, given a string (or list, or set) of\n  characters, returns a set of (RegEx-compatible) Unicode attributes that is common to all the characters in\n  the input\n\n* **`[—]`** implement a way to declare alphabets with **Unicode ranges**. A range is declared as `[a-z]`,\n  with a lower and a higher single codepoint embedded in between `[`, `-`, `]` (there's no clash with `-`\n  being used literally in an alphabet because `-` (U+002d) comes before `[` (U+005b), and the only character\n  between `[` and `]` (U+005d) is `\\\\` (U+005c), thus `XYZ[\\\\-]]^_` can only be taken to mean `XYZ\\\\]^_`,\n  `XYZ[[-]]^_` can only be taken to mean `XYZ[\\\\]^_`, and so on).\n\n* **`[—]`** implement a way to declare RegExes...\n\n  * **`[—]`** ... that should apply to *all* declared Hollerith letters and cause errors where not matched\n\n  * **`[—]`** ... that cause non-conformant letters from the declared sets are silently skipped (such that a\n    declaration of `'[\\x00-\\x7f]'` in conjunction with `{ skip_unless: /\\p{L}/v, }`) gives the set of US\n    7bit ASCII letters, how many there may ever be\n\n* **`[—]`** since integers beyond `Number.MAX_SAFE_INTEGER` can not be reliably used to count in steps of\n  one, both the inclusion of `_max_integer` and `_min_integer` in a Hollerith numbering alphabet and the\n  derivation of `_max_integer` and `_min_integer` from the base and the declared magnifiers must take this\n  limit into account\n\n* **`[—]`** Allow composite VDXs, especially allow high-capacity encoder for first index, low-capacity\n  encoder for trailing digits (as those are used for revisions)\n  * a typical setup would have a cardinals-only codec allowing big positive line numbers in the first\n    position; since cardinals-only codecs start at zero, insertions before the first line are still possible,\n    line number zero being used for anything going to the top of a document\n\n## Is Done\n\n* **`[+]`** why are there two zeroes? necessary?\n\n* **`[+]`** clarify, rename `_max_digits_per_idx` -> `max_idx_digits`\n\n* **`[+]`** regularize settings (CFG) keys:\n  * keys that start with a letter are user-settable\n  * keys that start with an `_` underscore are treated as implementation details; unless mentioned in the\n    documentation, setting them has undefined effects (normally they will just be overwritten)\n  * <del>so are keys starting with an `_` underscore, which are considered 'pro' or 'advanced' level ('know\n    what you're doing')</del>\n  * <del>keys that start with a `$` dollar sign are not to be set by users but are to be derived or\n    otherwise set by the app; when they are encountered while compiling the CFG object, they cause an\n    error</del>\n\n\n## Don't\n\n* **`[🚫]`** <del>implement a way to declare alphabets with Unicode ranges as in `a..z` or `[a..z]`, e.g. `{\n  digits: 'A..DF..Z', }` is equivalent to uppercase ASCII `A` thru `Z` with `E` excluded (this still\n  leaves room for doubt how to interpret `&...5`: is it `/[[&-.]5]/v` i.e. `\"&'()*+,-.5\"` or is it\n  `/[&[.-5]]/v` i.e. `\"&./012345\"`?)</del>","readmeFilename":"README.md"}