开发者社区> 镜像站> NPM> ssb-ref
ssb-ref
test wether a string is a valid ssb reference type
Last updated 3 months ago by arj03 .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install ssb-ref 
SYNC missed versions from official npm registry.

ssb-ref

check if a string is a valid ssb-reference, also parses addresses

var ref = require('ssb-ref')

//check if a string is a link (sigil ++ base64, 44 chars ++ algo tag)
ref.isLink('%Lihvp+fMdt5CihjbOY6eZc0qCe0eKsrN2wfgXV2E3PM=.sha25s')

//check if a string is a feed id
ref.isFeed('@nUtgCIpqOsv6k5mnWKA4JeJVkJTd9Oz2gmv6rojQeXU=.ed25519')

//check if a string is a message id
ref.isMsg('%MPB9vxHO0pvi2ve2wh6Do05ZrV7P6ZjUQ+IEYnzLfTs=.sha256')

//check if a string is a blob id
ref.isBlob('&Pe5kTo/V/w4MToasp1IuyMrMcCkQwDOdyzbyD5fy4ac=.sha256')

//extract a ref out of a url
ref.extract('http://localhost:7777/#/msg/%pGzeEydYdHjKW1iIchR0Yumydsr3QSp8+FuYcwVwi8Q=.sha256?foo=bar')
 == '%pGzeEydYdHjKW1iIchR0Yumydsr3QSp8+FuYcwVwi8Q=.sha256'
//url-encoding is supported
ref.extract('http://localhost:7777/#/msg/%25pGzeEydYdHjKW1iIchR0Yumydsr3QSp8%2BFuYcwVwi8Q%3D.sha256?foo=bar')
 == '%pGzeEydYdHjKW1iIchR0Yumydsr3QSp8+FuYcwVwi8Q=.sha256'

api

isLink(string)

returns true if string is a either a feed, message, or blob reference. it may also include a query string at the end.

isFeed (string), isMsg(string), isCloakedMsg(string), isBlob(string)

returns true if string is a feed id, a message id or a blob id, respectively. id must not have a query string.

isFeedId (string), isMsgId(string), isCloakedMsgId(string), isBlobId(string)

Aliases to isFeed, isMsg, isCloakedMsg, isBlob

isBlobLink (string), isMsgLink(string)

return true is a link, but may also have a query string.

normalizeChannel (string)

removes punctuation to make a standard channel name

isAddress (string | object)

returns true if string is a multiserver address, or a legacy address, or if object is a parsed legacy address (with {host, port, key} properties).

getKeyFromAddress (addr)

returns a feed id of the address in this key. (assumes there is a shs: protocol in the address, including accepts future version of shs)

isInvite(invite)

returns true if invite is a valid invite, either legacy or multiserver style.

type (string)

if string is one of the formats understood by ssb-ref, then return the name of the type. otherwise return false. output may be "feed", "msg", "blob", "address", "invite" or false.

extract (string)

if string contains a ref, return just the ref, ignoring anything else.

toMultiServerAddress

convert a legacy address object to a valid multiserver address. note, because toLegacyAddress may throw away portions of the multiserver address, toMultiServerAddress(toLegacyAddress(addr)) might not equal addr

deprecated

toLegacyAddress(string)

convert a multiserver address to a legacy address object.

parseLegacyInvite (string)

return the components of a legacy invite, same output as parseInvite

parseMultiServerInvite (string)

return the components of a multiserver invite, same output as parseInvite

parseInvite(invite)

returns an object of data in the invite, returning {invite,remote,key,redirect}.

note, the invite in the output is the invite as a multiserver address.

parseAddress(string)

takes a multiserver address and returns {host,port,key} if it is a websockets address, ws: is included in host, or wss: if it's a secure websocket.

License

MIT

Current Tags

  • 2.14.2                                ...           latest (3 months ago)

37 Versions

  • 2.14.2                                ...           3 months ago
  • 2.14.1                                ...           3 months ago
  • 2.14.0                                ...           6 months ago
  • 2.13.9                                ...           2 years ago
  • 2.13.8                                ...           2 years ago
  • 2.13.7                                ...           2 years ago
  • 2.13.6                                ...           2 years ago
  • 2.13.5                                ...           2 years ago
  • 2.13.4                                ...           2 years ago
  • 2.13.3                                ...           2 years ago
  • 2.13.1                                ...           2 years ago
  • 2.13.0                                ...           2 years ago
  • 2.12.2                                ...           2 years ago
  • 2.12.0                                ...           2 years ago
  • 2.11.2                                ...           2 years ago
  • 2.11.1                                ...           3 years ago
  • 2.11.0                                ...           3 years ago
  • 2.9.1                                ...           3 years ago
  • 2.9.0                                ...           3 years ago
  • 2.8.1                                ...           3 years ago
  • 2.8.0                                ...           3 years ago
  • 2.7.1                                ...           4 years ago
  • 2.7.0                                ...           4 years ago
  • 2.6.2                                ...           4 years ago
  • 2.6.1                                ...           4 years ago
  • 2.6.0                                ...           4 years ago
  • 2.5.0                                ...           4 years ago
  • 2.4.0                                ...           4 years ago
  • 2.3.2                                ...           4 years ago
  • 2.3.0                                ...           5 years ago
  • 2.2.2                                ...           5 years ago
  • 2.2.1                                ...           5 years ago
  • 2.2.0                                ...           5 years ago
  • 2.1.0                                ...           5 years ago
  • 2.0.0                                ...           5 years ago
  • 1.0.0                                ...           5 years ago
  • 0.0.0                                ...           5 years ago
Downloads
Today 0
This Week 2
This Month 2
Last Day 0
Last Week 0
Last Month 3
Dependencies (4)
Dev Dependencies (2)
Dependents (182)