atlpm v2.1.4
ATProtocol Lexicon Package Manager
Concept Inspiration from lpm Forked from @atproto/lex-cli
This is a ATProto ...
- Lexicon: A schema definition language for ATProto.
- API: Programs can refer to the schema.
- TypeScript Client API: for Client in TypeScript.
- TypeScript Server API: for Server in TypeScript.
... Package Manager.
How to use
atlpm init
atlpm install
atlpm add github:app.bsky.feed.post local:com.example.test https://raw.githubusercontent.com/bluesky-social/atproto/refs/heads/main/lexicons/:app.bsky.feed.like https://raw.githubusercontent.com/bluesky-social/statusphere-example-app/refs/heads/main/lexicons/status.json:xyz.statusphere.status
コマンドの説明
読み込みに関して
local:<nsid>
で読み込むと、schemaDirで設定されているディレクトリ下のschemaを読み込みます。
github:<nsid>
で読み込むと、githubから自動でschemaを読み込みます。今のところbsky.app, bsky.chat, atproto.com, ozone.tools, linkat.blue, whtwnd.com, unravel.fyi, smokesignal.events, pastesphere.link, psky.social, moji.blue, stellar.maril.blue, evex.land
に対応しています。
<url>:<nsid>
で読み込むと、指定されたURLからschemaを読み込みます。nsidのドットがそのままスラッシュに置き換わっているタイプのURLであれば、lexiconsディレクトリをURLに指定することでも読み込め、その場合依存関係を読み込む際にもそのURLが使われるようになります。
依存関係に関して
依存関係の読み込みに関しては、一度atlpm.json
のlexicons
に書かれているnsidのschemaをそこで指定されたregistryから全て読み込み、その後それらの依存関係を全てgithub->URL->localの優先順(URLがschemaそのものを指定している場合そのURLはスキップされ、schemaを読み込んだregistryが一番優先度が高い状態)で読み込んでいます。
もし自動で読み込まれない依存関係が存在した場合は${nsid} could not be loaded in any registry!
と表示されるようになっているので、そのようなschemaに関してはそれぞれatlpm.json
のlexicons
に追記してください。
将来的には...
将来的にはPDSなどによるlexicon解決やpublishに対応する計画です。※nsidのワイルドカード表記は今のところ対応する計画はありません。