UNPKG

@updating-secrets/1password-adapter

Version:

1password adapter for the updating-secrets package.

51 lines (50 loc) 1.68 kB
import { type Item, type Client as OnePasswordClient } from '@1password/sdk'; import { type SelectFrom } from '@augment-vir/common'; import { BaseSecretsAdapter, type ProcessedSecretDefinitions, type RawSecrets } from 'updating-secrets'; /** * The necessary subset of the 1Password `Client` API that {@link OnePasswordAdapter} requires. * * @category Internal */ export type NeededOnePasswordClient = SelectFrom<OnePasswordClient, { items: { get: true; }; }>; /** * Loads secrets from 1Password. A 1Password `Client` must be created and authorized before passing * it into here. * * @category Adapters */ export declare class OnePasswordAdapter extends BaseSecretsAdapter { protected readonly onePasswordClient: Readonly<NeededOnePasswordClient>; constructor(onePasswordClient: Readonly<NeededOnePasswordClient>); /** Load secrets from the provided 1Password `Client`. */ loadSecrets(secrets: ProcessedSecretDefinitions): RawSecrets; /** Load an individual secret from the given URL. */ loadSingleSecret(secretUrl: string): Promise<Record<string, string>>; } /** * Required 1Password `Item` for proper processing. * * @category Internal */ export type NeededOnePasswordItem = SelectFrom<Item, { fields: { title: true; value: true; }; }>; /** * Extract the needed parameters for fetching an item from 1Password from an item URL. * * You can find the item URL by navigating to an item in 1Password, expanding the three dots menu, * and clicking "Copy Private Link". * * @category Internal */ export declare function extract1PasswordIds(url: string): { itemId: string; vaultId: string; };