npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@phoenix-wing/cad-contracts

v0.5.1

Published

Phoenix CAD 跨宿主 JSON 契约、协议版本与 DTO

Readme

@phoenix-wing/cad-contracts

Phoenix CAD 跨宿主、跨语言的 JSON 协议与 DTO。包内不依赖 Vue、Node、VS Code、Tauri 或数据库驱动。

  • 当前先冻结 Desk Tools 已发布行为:desk-tools-v0FcstdDocument
  • legacy 字段混用 typeIdisValidBomItemroot_names,这是兼容事实,不是新命名规范。
  • schemas/fixtures/ 共同锁定 legacy 输出;Rust 等价迁入不得顺带改字段。
  • phoenix-cad-native v1 提供 snake_case 成功/错误 envelope,以及 --protocol-version 能力查询。
  • v1 首期只开放无写盘的 fcstd-read/readfcstd-xlink/scan;legacy 入口保持不变。
  • pnwQueryCadWorkspaceSummaryV1 提供无数据库驱动的 Schema v13 BOM/引用只读查询核心;VS Code 可接 node:sqlite,Desk 可接 db-node,Rust CLI 继续用同一 fixture 验证结果契约。

本基线只冻结 fcstd-read 成功读取时输出的裸 FcstdDocumentwrite-bomfcstd-xlink 的 scan/patch 命令、错误文本和退出码仍是未版本化 legacy 行为;PNW_CAD_LEGACY_NATIVE_TOOLS 只列出来源中已有的 native tools,不表示这些命令都已有稳定契约。

v1 跨语言 JSON 统一使用 snake_case;兼容的 minor 版本可增加可选字段,因此 Schema 和 runtime guard 会保留未知字段。删除字段、修改含义或改变必填性必须提升协议主版本。

native-provider-v1 统一 Desk Tools 安装资源与 thin CAD 插件之间的发现清单:除 native tool 路径、哈希和能力外,还必须声明 Wing workspace Schema ID、版本、DDL SHA-256 和数据库文件名。生成端与消费端都必须运行同一个 pnwIsCadNativeProviderManifestV1 guard,宿主再额外校验平台和自己支持的精确 Schema。

fcstd-read --protocol-version
fcstd-read --protocol 1 read <file.fcstd>
fcstd-xlink --protocol 1 scan <Document.xml|-> <target_basename>

消费者先读取 --protocol-version,确认 protocol === "phoenix-cad-native",再从自身支持集合与 supported_protocol_majors 的交集中选择主版本。protocol_version 是工具当前首选版本,不代表它只支持这个版本;能力以返回的 capabilities 为准,不能仅凭二进制文件名猜测。