Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

@venndr/public-key-fetcher

Package Overview
Dependencies
Maintainers
0
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@venndr/public-key-fetcher

latest
npmnpm
Version
1.0.4
Version published
Weekly downloads
0
-100%
Maintainers
0
Weekly downloads
 
Created
Source

Caching public key downloader for the Venndr Node SDK

This library is a basic version of the key fetcher used by utilities in the Venndr Node SDK.

For most cases the defaults should be all you need, but for more advanced usage the fetcher's initialiser optionally takes a configuration object. See KeyFetcherOptions below.

Fetch API

The fetcher uses the Fetch API to download keys. If for any reason you wish to provide your own agent, any compatible implementation can be passed as an option to the initialiser.

Caching

Caching the keys is strongly recommended for production deployments to avoid repeatedly fetching identical data.

By default, the bundled key fetcher uses an in-memory Map to store successfully fetched keys. Should you want something more robust, the cache implementation is pluggable and can be passed as an option to the initialiser. The cache implementation should match the KeyCache interface, which you can find below.

TypeScript types for the key fetcher

// KeyFetcher is what the utilities in the Node SDK expect to receive.
type KeyFetcher = (version: string) => Promise<crypto.KeyObject>;

// KeyCache<KT, VT> is the cache interface for the key fetcher
interface KeyCache<KT extends string = string, VT extends crypto.KeyObject = crypto.KeyObject> {
  get(k: KT): Promise<VT | null | undefined> | VT | null | undefined;
  set(k: KT, v: VT): void;
}

// KeyFetcherOptions is pluggable functionality for the key fetcher
interface KeyFetcherOptions {
  baseURL?: string; // base URL for fetching public keys
  cache?: KeyCache; // any compatible cache implementation, see KeyCache<KT, VT>
  fetch?: Fetch;    // any Fetch API compatible agent
}

Keywords

venndr

FAQs

Package last updated on 14 Feb 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts