|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [Unreleased] |
| 9 | + |
| 10 | +### Added |
| 11 | + |
| 12 | +- **resolver:** Auto-resolve identity and attestation data from a repository URL via new `repo` attribute. No more manual JSON — `<auths-verify repo="https://github.com/user/repo">` just works. |
| 13 | +- **resolver:** `forge` attribute to override auto-detection of forge type (`github`, `gitea`, `gitlab`). |
| 14 | +- **resolver:** `identity` attribute to filter to a specific DID when a repository has multiple identities. |
| 15 | +- **resolver:** GitHub adapter — resolves `refs/auths/identity` and `refs/auths/devices/nodes/*/` via GitHub REST API, extracts public key from `did:key:z...`, reads attestation chain. |
| 16 | +- **resolver:** Gitea adapter — mirrors GitHub adapter with `/api/v1/` prefix and configurable base URL for self-hosted instances. |
| 17 | +- **resolver:** GitLab stub — returns descriptive error explaining GitLab does not expose custom Git refs via its REST API. |
| 18 | +- **resolver:** Pure TypeScript `did:key:z...` to Ed25519 public key hex extraction (inline base58btc decoder, multicodec prefix stripping). Runs before WASM loads. |
| 19 | +- **resolver:** URL parser with auto-detection: `github.com` → GitHub, `gitlab.com` → GitLab, unknown hosts → Gitea. |
| 20 | +- **resolver:** In-memory cache with 5-minute TTL prevents redundant API calls when multiple widgets point to the same repo. |
| 21 | +- **resolver:** Dynamic import (`import('./resolvers/index')`) — zero bundle size impact when `repo` attribute is not used. |
| 22 | +- **resolver:** DID sanitization helper matching Rust `layout.rs` (`replace(/[^a-zA-Z0-9]/g, '_')`). |
| 23 | +- **tests:** 29 new resolver tests — `detect.test.ts` (10), `did-utils.test.ts` (7), `github.test.ts` (7), `gitea.test.ts` (5). |
| 24 | +- **examples:** `auto-resolve.html` demonstrating the `repo` attribute with GitHub, Gitea, forge hints, and identity filters. |
| 25 | + |
| 26 | +### Changed |
| 27 | + |
| 28 | +- **widget:** `#hasInput()` now returns `true` when `repo` is set, even without manual `attestation`/`public-key` data. |
| 29 | +- **widget:** `verify()` resolves from forge before loading WASM when `repo` is set but attestation data is missing. |
| 30 | +- **README:** Updated quick start to recommend `repo` attribute. Added new attributes to the attribute table. |
| 31 | + |
| 32 | +## [0.1.0] - 2026-02-16 |
| 33 | + |
| 34 | +### Added |
| 35 | + |
| 36 | +- Initial release of `<auths-verify>` web component. |
| 37 | +- Three display modes: `badge` (default), `detail` (expandable chain table), `tooltip` (hover summary). |
| 38 | +- Three badge sizes: `sm`, `md`, `lg`. |
| 39 | +- WASM-powered Ed25519 attestation chain verification via `@auths/verifier`. |
| 40 | +- Dual build outputs: full bundle (WASM base64-inlined) and slim bundle (separate WASM file). |
| 41 | +- Singleton WASM initialization with coalesced loading. |
| 42 | +- CSS custom property theming for all states and typography. |
| 43 | +- Accessibility: `role="status"`, `aria-live="polite"`, `aria-expanded`, focus-visible outlines, forced-colors support. |
| 44 | +- Custom events: `auths-verified`, `auths-error`. |
| 45 | +- JavaScript API: `verify()`, `getReport()`. |
| 46 | +- Auto-verify on connect and attribute change (debounced). |
| 47 | +- SVG icons for all 7 component states. |
0 commit comments