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

antifraud-portal-components-react

v0.2.2

Published

Reusable React components for neutral antifraud verification and attestation journeys

Readme

Antifraud Portal Components React

Reusable, product-neutral React components for identity verification, attestation, wallet presentation, and provider-issued credential journeys.

Status

Public implementation foundation. No package has been published and no production readiness is claimed yet.

Component boundary

Components render state and emit typed user intentions. They do not contain tenant hosts, product names, secrets, signing code, trust decisions, or hidden network calls.

Applications supply adapters and localized content. This keeps the same components reusable in different portals while each backend preserves its own authorization and session boundary.

The component set covers:

  • verification-method selection;
  • wallet QR and deep-link presentation;
  • presentation status and recoverable errors;
  • subject and relationship attestation review;
  • authoritative-provider handoff confirmation;
  • credential issuance status and receipt;
  • accessible audit-event summaries without exposing personal data;
  • collapsible employee assignment panels;
  • optional department and group proposals during invitation;
  • current-group selectors with explicit add and remove intentions;
  • assignment-change notification previews and delivery status;
  • awarding-organization lookup by legal identifier and jurisdiction;
  • employee identity and qualification evidence review with clearly separated employer and source-issuer proofs.
  • professional qualification cards with independent employer, awarding-body, professional-body and licence status badges plus authoritative proof details.
  • a controlled identity-evidence editor for subject evidence, relationships and configurable age-over predicates, without browser-authored actor or authorization fields.
  • a future controlled attachment panel for Schema.org DigitalDocument and MediaObject records whose PDF, spreadsheet, Word, image, video or other governed bytes are transported by the host through DIDComm attachments[].
  • a controlled environment selector that labels Demo as a simulated blockchain and keeps Test Network and Production disabled unless the host supplies trusted server state. It never reads browser storage, query strings, collection prefixes, hosts or network configuration.
  • a sector-neutral shell, Personal Trust workspace and Professional operations home shared by independently deployed portals;
  • a neutral catalog surface for Places, public Services and Products whose publisher, jurisdiction, sector and DCAT distribution remain backend-owned.

The shared shell exposes a header slot so consuming apps directly compose the same neutral PortalHeader used by Connect Health. They therefore share Inter typography, light/dark/system preferences, text-size controls and the established navy/turquoise semantic palette instead of maintaining a second header implementation.

Protocol boundary

The interface starts an OpenID for Verifiable Presentations journey and displays the result reported by a trusted verifier. It must not label that result as a newly issued credential.

A separate step asks an authorized index provider to read its authoritative source and issue a signed credential. Issuance may use OpenID for Verifiable Credential Issuance or another explicit provider protocol. The component never signs and never receives a provider signing key.

Reuse rules

  • React is a peer dependency.
  • Network and storage behavior are supplied through typed adapters.
  • Components are independently importable to avoid unnecessary bundle cost.
  • Long-running work is started by user actions, not by rendering.
  • Personal claims and wallet responses are not persisted by components.
  • Accessibility and keyboard operation are acceptance criteria.
  • Web and supported native wrappers require separate executable tests.

Workforce component contract

Workforce components receive employee, department, group, membership, authorization-summary, and notification state as controlled properties. They emit typed intentions such as invite, add to group, remove from group, suspend, reactivate, or resend notification.

They do not create Consent, infer authority from a selected organization, or call a gateway. The consuming portal and its trusted backend verify controller authority, persist membership changes, preserve the reusable authorization for the group, and create any required Communication notice. A subject or lawful representative authorization is displayed separately when the use case needs one.

Organization administration belongs to a controller portal. Sector-specific employee journeys belong to professional portals. Both may reuse these neutral components. Every consuming application owns its navigation, localization, authentication, capability resolution and persistence.

Qualification UI must never infer a university from display text. It emits a lookup intention containing legal identifier and jurisdiction, then renders the authoritative organization result returned by the host. When no source-issued credential exists, it labels the action as an employer attestation and identifies the employer signature separately.

ProfessionalQualificationCard is controlled: it renders qualification and proof state supplied by the host, exposes proof-selection intentions, and shows the legal identifier, jurisdiction, verification time and status of the selected authority. It does not decide whether the user may work, access a subject, or perform a professional action.

QualificationEvidenceEditor lets a controller select an active employee, describe a qualification, resolve the claimed issuer by legal identifier and jurisdiction, and select a scanned PDF, PNG, JPEG or TIFF. The host owns upload, SHA3-384 CID calculation, authorization, persistence, signing and notification. The component submits an explicit employer-attestation intention and never labels it as issuer verification.

Attachment presentation is Schema.org-native. Components must never label or serialize an item as FHIR DocumentReference; they render controlled DigitalDocument/MediaObject metadata while the host owns DIDComm transport, binary retrieval and authorization. The reusable panel task is GitHub issue #5.

IdentityEvidenceEditor is used by an already authenticated workforce member. The host supplies opaque subject references and labels. The component emits a subject, relationship or age-over intention, but the trusted host supplies the actor, assignment, organization, group authorization, subject authorization, time and authoritative readback. Only threshold 18 may be projected as the standardized EUDI PID age_over_18 element; other thresholds remain governed predicates.

Intended dependency direction

antifraud-data-utils-ts
          ↓
antifraud-sdk-core-ts
          ↓
antifraud-portal-components-react
          ↓
portal applications

Implementation gate

Each visual increment is test-driven against the shared flow states. Storybook or screenshots may document appearance, but only interaction tests and a real application journey prove behavior.

License

Apache-2.0.