@atproto/lex-installer (英语)
软件包管理器 语法 文档。 这是背后的引擎 lex install 命令:它通过 国家统计数据库,将其写入本地目录,并跟踪其版本(CID) lexicons.json 显出.
import { install } from '@atproto/lex-installer'
await install({
lexicons: './lexicons',
manifest: './lexicons.json',
add: ['app.bsky.feed.post'],
save: true,
})
多数项目应使用 lex install 来自CLI @atproto/lex 而不是直接调用这个包.
分辨率来源
按优先顺序排列,每个Lexicon的解析方式如下:
-
明确
at://URI 资源 ——从该回购中取出(并核实). -
明确的本地文件 作为添加而通过 —— 作为
file://URI 或 微调 内有斜线( a)./app.bsky.feed.post.json, (中文(简体) ),file://../shared/my.json从磁盘中读取 (与cwd有关);其NSID取自文档的id。 。 。 . -
名单
resolvers- 已订购的当地压倒性战略清单 网络之前的每个依赖 NSID 。 目前仅directory已支持:{ "version": 1, "lexicons": ["com.example.foo"], "resolvers": [ { "type": "directory", "path": "../../lexicons", // relative to this lexicons.json "include": ["com.example.*"], // optional NSID globs (default: all) "exclude": [], // optional NSID globs this resolver never answers for }, ], "resolutions": { "com.example.foo": { "uri": "file://../../lexicons/com/example/foo.json", "cid": "...", }, }, }解析器是优先排序的(第一次比赛获胜),并且是 没有 按显示顺序重排 正常化。 A 类
directory解析器映射 NSID 到<path>/<a>/<b>/<c>.json。 。 。 . -
网络 ——总是最后的倒计时:NSID DNS
_lexicon.<authority>- 签了com.atproto.lexicon.schema记录.
[注] 一个未来
{ "type": "repo", ... }解析器(从特定 DDE 而不是 DNS 解析) 已计划但尚未执行.
连线
从 a 解析出表单 本地文件 (上文来源2和3) 链接 输入输出
lexicons/ 目录而不是复制,所以编辑到源文件时不反映
重新开始。 符号链接是相对于其可移植性目的地所写. 作为例外,
如果已解析的目的地路径等于源路径,则文件将保持不变。 他们的仪表
锁定 uri 是一个 file:// 与清单相对的路径,保持其可移植的通关.
网络解析的 Lexicons 被写成普通的 JSON 文件并用其锁定 at:// URI (英语).
许可证
根据麻省理工学院和Apache 2.0条款,这个项目具有双重许可证:
- 麻省理工学院许可证LICENSE-MIT.txt (英语) 或者说 http://opensource.org/licenses/MIT 互联网档案馆的存檔,存档日期2013-12-02(中文(简体) )
- Apache 许可证,2.0版本, ((原始内容存档于2017-09-31) (英语). LICENSE-APACHE.txt 或者说 http://www.apache.org/licenses/LICENSE-2.0 (中文(简体) )(中文(简体) )
下游项目和终端用户可自行选择单独或共同发放许可证。 这种双重许可的动机是Apache 2.0提供的额外软件专利保证.