A lean TypeScript implementation of DIF Presentation Exchange v1 and v2, built along the lines of dcql-ts: pure functions, structured results, and no credential parsing.
| Package | |
|---|---|
dif-pex/ |
@animo-id/dif-pex — the library. Usage docs. |
parity/ |
Temporary harness diffing against the deprecated @animo-id/pex. Findings. Delete after migration. |
It replaces @animo-id/pex, which decodes credentials itself and therefore depends on SD-JWT,
mdoc, W3C credential, JSON Schema and JSONPath libraries. Here you pass already-decoded claims,
which leaves one runtime dependency (zod).
PLAN.md records the design and — in §15 — every deviation made while implementing it, with the
reasoning.
pnpm install
pnpm test # vitest, all packages
pnpm build # tsdown, ESM + types
pnpm types:check # tsc --noEmit, all packages
pnpm style # biome
pnpm style:fixThe examples in dif-pex/README.md are executed by dif-pex/src/readme.test.ts, so the
documentation cannot drift from the API. Update both together.
Apache-2.0