bin/lib/keeper.js — JS keeper-store reader (libdog+abc)
Read keeper objects/refs/trees in pure JS over git.pack + abc.index + ULOG — no keeper dog linked. Part of JS-027. Method: Issues.
NNNNN.keeper pack-logs (git.pack) + .idx wh128 LSM
(abc.index) + refs ULOG. So object/ref/tree read is reimplementable in JS, sharing zero code with the keeper dog.
getObject(sha) -> {type, bytes} (idx lookup → pack seek → inflate → delta chase).resolveRef(?branch) -> sha, eachTip(cb), eachRemote(cb) over the refs ULOG.readTree(sha) (via JS-028 git.tree), commitTree(sha)/commitParents(sha)
(via JS-028 git.parseCommit).
abc ONLY. Map pack-logs via git.pack.mmap; wh128 lookup via abc.index.
Read-only; shard located via JS-029 be.js.
test/bin/): getObject of a known commit/tree/blob sha re-hashes
to that sha (codec.sha1); resolveRef('?') == trunk tip; readTree entry set vs a fixture; commitParents vs be log:.