/** * Consumer-strict smoke for `@shade/key-transparency`. * * The package was the source of the 4 noUnusedLocals + the IndexProofWire * privacy bug in 4.0.0. This smoke imports every public type and * exercises the witness-fetcher contract that the SDK plugs into. */ import { LightWitness, type SignedTreeHead, type STHWire, type WitnessFetcher, } from '@shade/key-transparency'; declare const crypto: import('@shade/core').CryptoProvider; declare const logPublicKey: Uint8Array; async function smoke(): Promise { const fetcher: WitnessFetcher = { async fetchLatestSTH(): Promise { const res = await fetch('https://shade.example.com/v1/kt/sth'); return (await res.json()) as STHWire; }, async fetchConsistencyProof( from: number, to: number, ): Promise<{ proof: string[] }> { const res = await fetch( `https://shade.example.com/v1/kt/consistency?from=${from}&to=${to}`, ); return (await res.json()) as { proof: string[] }; }, }; const witness = new LightWitness({ crypto, logPublicKey, fetcher }); void witness; } void smoke; // Verify the type is reachable with no `any` leak. declare const sth: SignedTreeHead; void sth.treeSize;