arc provider は provider パッケージ自体(AFS provider を実装する npm パッケージ)に対する操作を扱います。これは、provider がマウントされた後に公開するものを操作する arc afs とは対照的です。
arc provider <subcommand> [options]グローバルフラグ(概要 を参照):--json、--view、--instance / -i(どのローカル ARC インスタンスか;省略すると default)、および --home(インスタンスのルート;どのインスタンスにするかを選ぶには --instance を使う)。
arc provider publish-resources
provider パッケージの aup/ ツリーを、/_providers/<name>@<version>/ の下に CF Pages へ公開します。これによって、provider の付随リソース(AUP から参照される UI スニペットなど)が URL で取得可能になります。
使用法
arc provider publish-resources <package> [options]package(必須):npm パッケージ名。例:@aigne/afs-ocap、またはパッケージディレクトリへのパス--cloud <fs|cf|none>:デプロイ先:fsはローカルの Pages ディレクトリに書き込み、cfは Cloudflare Pages にプッシュし、noneはプッシュせずに~/.afs/blocklets-stagingに stage するだけ。バッチデプロイで最後のコマンドだけがプッシュすべき場合に使う(デフォルトfs)--pages-root <path>:ローカル Pages ストアのルート、--cloud fsのときのみ有効(デフォルト~/.arc/pages)--cf-account-id <id>:Cloudflare アカウント ID。--cloud cfの読み取り操作で使う--cf-api-token <token>:Cloudflare API トークン。--cloud cfの読み取り操作で使う--deployment <id>:Cloudflare デプロイメント id(staging/prod/...)。runtimes/cloudflare/instances.jsonからpagesProjectを解決する;--projectと排他--project <name>:Pages プロジェクト名。instances.jsonに載っていないプロジェクト向けの逃げ道;--deploymentと排他;どちらも指定しない場合はafsd-blockletsがデフォルト
--deployment/--project の排他は、ドキュメントに書いてあるだけでなく、宣言され強制されています:
$ arc provider publish-resources @aigne/afs-ocap --deployment foo --project bar
ERROR: Arguments deployment and project are mutually exclusive実際のパッケージは、どちらのフラグもなしで --cloud fs に公開できます(cumulative staging の数はそのストアへの公開ごとに増え続けるので、実際に手元で出る数字はここと異なります):
$ arc provider publish-resources ./providers/runtime/ocap --cloud fs --pages-root /tmp/pages
Published 23 file(s) to /_providers/ocap@2.0.0-beta.48/
package: ./providers/runtime/ocap
provider: ocap@2.0.0-beta.48
bytes: 170952
target: local Pages store (cumulative staging: 1983 file(s))
deploy: deploy-1789005081569-e83ray