@comms-id /慈善机构
为通信键入的客户端。ID慈善API (https://api.comms.id/acnc-charity-lookup/v1): ACNC注册记录和澳大利亚慈善机构的详细信息,由ABN查询。
src/ 是由慈善合约(packages/acnc-register/openapi/acnc-charity-lookup.v1.json) @comms-id/forge-transformers. 不要编辑它:更改合同并运行 pnpm --filter @comms-id/forge-transformers generate.
import { createAcncCharityLookupClient } from "@comms-id/acnc-charity-lookup/server";
const client = createAcncCharityLookupClient({
clientId: process.env.COMMS_ID_CLIENT_ID!,
privateJwk: JSON.parse(process.env.COMMS_ID_PRIVATE_JWK!),
});
const reply = await client.lookup({"abn": "51824753556", "mode": "register"});
操作
lookup:通过ABN查找澳大利亚慈善机构:ACNC注册记录和慈善机构的详细信息,每个都有其来源和出处。
每个操作都是读操作,可以安全地重复,并在可重试失败后重试。不匹配的应答是应答约定的结果之一:错误 outcomeOf(error) 的 no-match, source-unavailable 或者 failed;中断永远不是“不匹配”。
先测试一下
createAcncCharityLookupFixtureClient() 从 @comms-id/acnc-charity-lookup/fixtures 从合同本身的例子中得到答案,没有网络,并说(fixture: true). 要调用TEST服务(合成回复,您的开发应用程序的键),请通过 environment: "test";上线只会改变环境和钥匙。
COMMS_ID_PRIVATE_JWK 是一架ML-DSA-87私人JWK (kty AKP, priv 和 pub). 服务器入口需要Node.js 24.7或更高版本,或者带有兼容性标志的Cloudflare Worker webcrypto_modern_algorithms.
条目: . (类型和错误,在浏览器中是安全的) ./server (每次呼叫都签名), ./browser (你的接力路线;从不签名), ./fixtures (本地装置,无网络), ./descriptor ( @comms-id/relay 可能向前)。
LICENSE 是消费者客户牌照。
领域
@comms-id/acnc-charity-lookup/controller 是慈善ABN字段的无头控制器:输入、解析、建议、标识符检查、选择和错误,具有WAI-ARIA组合框属性和键处理程序。它没有框架,也没有DOM。 @comms-id/acnc-charity-lookup-react (一个钩子和一个组件) <comms-id-acnc-charity-lookup> (一个web元素)可以在上面运行,你自己的UI也可以。
import { createAcncCharityLookupController } from "@comms-id/acnc-charity-lookup/controller";
const controller = createAcncCharityLookupController({ client, onSelect: (record, timing) => console.log(record, timing.ms) });
controller.subscribe(() => render(controller.getState()));
controller.setQuery("…");
src/local/profile.ts 是唯一特定于产品的部分:它读取输入的文本,调用客户端并减少对ui显示的文本和记录的每个回复 onSelect 接收。其他一切都生成了。