dweb-link-resolve

1.0.0 • Public • Published

dweb-link-resolve

resolve urls, links to a dweb key using common methods

npm travis standard

Supports

  • Common dweb key representations (dweb://, etc.)
  • URLs with keys in them (dwebx.org/6161616161616161616161616161616161616161616161616161616161616161)
  • dwebfs-key or dweb-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:

  1. Validate buffers or any strings with 64 character hashes in them via dweb-encoding
  2. Check headers in http request
  3. Check JSON request response for key
  4. 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

  1. browsers expect http and https schemes with traditional hostname, not a dweb key
  2. browsers expect http and https schemes with traditional hostname, no +5 (version) support

Contributing

Contributions welcome! Please read the contributing guidelines first.

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i dweb-link-resolve

Weekly Downloads

2

Version

1.0.0

License

MIT

Unpacked Size

10.2 kB

Total Files

6

Last publish

Collaborators

  • shikhars3711