dweb-link-resolve
v1.0.0
Published
Library for resolving dWeb links.
Downloads
7
Readme
dweb-link-resolve
resolve urls, links to a dweb key using common methods
Supports
- Common dweb key representations (
dweb://
, etc.) - URLs with keys in them (
dwebx.org/6161616161616161616161616161616161616161616161616161616161616161
) dwebfs-key
ordweb-key
headers- Url to JSON http request that returns
{key: <dweb-key>}
- DWeb-DNS resolution (via dweb-dns)
Install
npm install dweb-link-resolve
Usage
var datResolve = require('dweb-link-resolve')
datResolve(link, function (err, key) {
console.log('found key', key)
})
API
datResolve(link, callback(err, key))
Link can be string or buffer.
Resolution order:
- Validate buffers or any strings with 64 character hashes in them via dweb-encoding
- Check headers in http request
- Check JSON request response for
key
- DWeb-DNS resolution via dweb-dns
Refering to dwebs
Trying to tighten up a bit dweb-link-resolve (and its dependencies dweb-dns and dweb-decode). I am noticing a few inconsistencies as I'm writing dweb-shell.
Ideally, I'd like to launch dweb-shell like this:
$ dweb-shell dweb://40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9+5/path4
and have it open the dweb at version 5 and change directory to /path4.
Currently dweb-shell google-fonts-kewitz.hashbase.io/fonts/
fails somewhere in dweb-link-resolve.
Examples
Note that dweb-link-resolve also supports other methods, such as detection of dweb keys in paths and http headers.
Simplest
- Plain: 40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9
- DNS: dbrowser.com
With version
- Plain: 40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9+5
- DNS: dbrowser.com+5
With scheme
- https: https://40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9/
- dweb: dweb://dbrowser.com
With path
- https: 40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9/path1
- dweb: dbrowser.com/path2
Combinations
- 40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9+5/path3
- dweb://40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9+5/path4
- https://40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755896cdeb80bd2f9/path5 (^1)
- https://dbrowser.com+5/path6 (^2)
Notes
- browsers expect http and https schemes with traditional hostname, not a dweb key
- browsers expect http and https schemes with traditional hostname, no +5 (version) support
Contributing
Contributions welcome! Please read the contributing guidelines first.