A CLI tool for Statically Defined PDSes — ship an atproto account & your lexicons with your wisp.place static site.

feat: resolve $strongRef and $atUri paths in records #1

Merged byjp.me
targeting main from record-refs
Merged opened by and assigned to byjp.me
targeting main from record-refs

A strongRef's cid is a hash of its target, so it changes every time the target is edited and can't be kept up to date by hand. at-sdp already knows each record's at-uri and cid at build time, so a record can now name its target by a path relative to its own file:

  • {"$strongRef": "../b.json"} becomes {"uri": "at://…", "cid": "…"}. Other keys in the object are kept, so a union field can carry $type.
  • {"$atUri": "../b.json"} becomes the target's at-uri string.

Strong refs resolve depth-first. A cycle is an error that names its files, since a CID can't contain itself. Weak refs may form cycles. Records resolve in walk order, so error output is the same on every run.

records now owns the did:web derivation and the record CID prefix, and site and repogen use them from there, so a ref's uri and cid always match what the repo serves.

Bean: SDP-tusi

Commits 0