@eqtylab/integrity-js
v0.0.2
Published
JavaScript bindings for the Integrity library (commit: 322b905)
Downloads
283
Readme
integrity-js
Client-side verification library for the Integrity framework, compiled from Rust to WebAssembly and published as an npm package (@eqtylab/integrity-js).
Used in the VerifyLabel component of the lineage-explorer package to verify lineage graph nodes entirely in the browser.
Verification Functions
verify_statement(statement, contexts?) -> bool
Verifies a JSON-LD statement by recomputing its content identifier and comparing it to the embedded @id. The process:
- Parses the JSON-LD statement and extracts the
@id - Converts the statement to N-Quads and canonicalizes using RDFC 1.0
- Computes a BLAKE3 CID over the canonicalized output
- Returns
trueif the computed CID matches the@id
Optional contexts parameter allows passing additional JSON-LD context documents as { uri: contextObject } pairs (useful when contexts can't be fetched at runtime due to CORS).
verify_vc(vc, statement_id) -> bool
Verifies a W3C Verifiable Credential:
- Checks that the credential subject ID matches the given
statement_id - Verifies the VC proof using the DID Key method
- Returns
trueif both checks pass
Development
Using Nix (recommended)
The project includes a Nix flake that provides all development dependencies:
nix developManual Setup
Install the following dependencies:
- Rust (cargo, rustc, rustfmt, clippy)
- wasm-pack
- wasm-bindgen-cli
- just
- present-cli
- Node.js
- lld
- pkg-config and OpenSSL
Just Commands
The project uses Just for common development tasks.
Available recipes:
build # Build the WASM package for npm
ci # Run all CI checks (formatting, readme, lints, tests)
clean # Remove build artifacts
fix # Auto-fix clippy warnings where possible
fmt # Format code with rustfmt
fmt-check # Check code formatting without modifying files
lint # Run clippy lints
lint-docs # Check that all public items have documentation
readme-check # Verify README.md is up to date
readme-update # Regenerate README.md in place
test *args # Run wasm-bindgen integration tests in a headless browserPublishing
To publish a new version to npm, create a new release on GitHub with a semantic version tag (e.g., v1.0.0). The package will be automatically built and published to npm via GitHub Actions.
