atlpm
v3.1.2
Published
ATProtocol Lexicon Package Manager
Downloads
28
Readme
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.
Usage
pnpm add atlpm
atlpm init
atlpm install
atlpm add app.bsky.feed.post com.atproto.sync.subscribeRepos
atlpm publish com.example.instance
atlpm add -y \
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コマンドの説明
publishに関して
atlpm publish <nsid>で、localで読み込める状態のlexiconをPDSにrecordとして書き込み、世界中の人があなたのlexiconを(nsidさえ知っていれば)このようなツールを使って読み込むことができるようにします。
lexicon schemaが必要なのはもちろんのこと、アカウントは何でもいいのでApp Passwordを使ってログインできる環境であることと、DNSのレコードを設定できる状況にあることが必須です。(既にDNSレコードを設定できている場合はログイン情報のみで大丈夫です。)
読み込みに関して
<nsid>で読み込むと、pds->github->localの優先順に対応しているregistryを自動的に探して設定します。
local:<nsid>で読み込むと、schemaDirで設定されているディレクトリ下のschemaを読み込むように設定します。
pds:<nsid>で読み込むと、こちらに書かれた方法でpdsから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, skyblur.ukに対応しています。対応してほしいTLDがありましたら、お手数ですが作成者にお知らせください。
<url>:<nsid>で読み込むと、指定されたURLからschemaを読み込むように設定します。nsidのドットがそのままスラッシュに置き換わっているタイプのURLであれば、lexiconsディレクトリをURLに指定することでも読み込め、その場合依存関係を読み込む際にもそのURLが使われるようになります。
依存関係に関して
依存関係の読み込みに関しては、一度atlpm.jsonのlexiconsに書かれているnsidのschemaをそこで指定されたregistryから全て読み込み、その後それらの依存関係を全てpds->github->依存関係が書かれた元のschemaを読み込んだURL->その他のURL->localの優先順(URLがschemaそのものを指定している場合そのURLはスキップされます)で読み込んでいます。
もし自動で読み込まれない依存関係が存在した場合は${nsid} could not be loaded in any registry!と表示されるようになっているので、そのようなschemaに関してはそれぞれatlpm.jsonのlexiconsに追記してください。
将来的には...
読み込み時のnsidのワイルドカード表記に関しては、依存関係を別ディレクトリで管理できるようになってから対応させるつもりです。
