@coreyburns/node-fdd
v1.2.0
Published
Server-side utility for OpenFDD signing, packing, and did:web identity management
Downloads
489
Readme
@coreyburns/node-fdd
Official CLI & API toolchain for the OpenFDD (.fdd) format — zero-dependency, Node 18+.
Installation
npm install -g @coreyburns/node-fddCLI Commands
# Generate an Ed25519 keypair
fdd-identity keygen [./outDir]
# Generate a did.json for /.well-known/did.json hosting
fdd-identity did <public.pem> <domain>
# Pack + sign an .fdd container in one step
fdd-sign pack <template.html> <data.json> <private.pem> <did:web:domain> [output.fdd]
# Extract structured data from an .fdd (no OCR, no DOM)
fdd-sign parse <file.fdd>
# Verify an .fdd signature against its did:web issuer
fdd-sign verify <file.fdd>
# Legacy: sign a raw JSON file only
fdd-sign sign <data.json> <private.pem> [output.json]
# Legacy: pack without signing
fdd-pack <template.html> <data.json> [mutable.json] [output.fdd]API — did:web Workflow
import { generateIdentity, createDidDocument } from '@coreyburns/node-fdd/identity';
import { signFdd, parse, verify } from '@coreyburns/node-fdd';
// 1. One-time setup
const identity = generateIdentity();
const didDoc = createDidDocument(identity.publicKeyBase64, 'bank.com');
// Host didDoc at https://bank.com/.well-known/did.json
// 2. Issue a document
const fddString = signFdd(transactionData, htmlTemplate, identity.privateKeyPem, 'did:web:bank.com');
// 3. Consume (recipient server)
const { valid, issuer } = await verify(fddString);
if (valid) {
const { vc, mutable } = parse(fddString);
}