@lit-protocol/auth-helpers
Version:
This submodule manages permissions and capabilities related to accessing specific resources on the blockchain. It utilizes features from the 'siwe' and 'siwe-recap' libraries to verify and handle data, allowing users to encode and decode session capabilit
46 lines (45 loc) • 2.04 kB
TypeScript
/**
* @module AuthConfigBuilder
* This module provides a builder for creating AuthConfig objects in a fluent manner.
* It simplifies the process of constructing authentication configurations and defining
* resource capabilities directly within a single builder.
*
* @example
* // import { createAuthConfigBuilder } from './auth-config-builder';
*
* // async function setupAuth() {
* // const authConfig = createAuthConfigBuilder()
* // .addStatement('This is a custom statement for authentication.')
* // .addDomain('myapp.example.com')
* // .addPKPSigningRequest('*') // Directly add resource capabilities
* // .addLitActionExecutionRequest('my-lit-action-ipfs-id') // Example Lit Action IPFS ID
* // .build();
* // console.log('Constructed AuthConfig:', authConfig);
* // }
* // setupAuth();
*/
import { AuthConfigSchema } from '@lit-protocol/schemas';
import { AuthSig } from '@lit-protocol/types';
import { z } from 'zod';
type AuthConfig = z.infer<typeof AuthConfigSchema>;
/**
* Interface for the AuthConfigBuilder.
* Defines the fluent API for constructing an AuthConfig object and its associated resources.
*/
interface IAuthConfigBuilder {
addCapabilityAuthSigs: (sigs: AuthSig[]) => IAuthConfigBuilder;
addExpiration: (expiration: string | Date) => IAuthConfigBuilder;
addStatement: (statement: string) => IAuthConfigBuilder;
addDomain: (domain: string) => IAuthConfigBuilder;
addPKPSigningRequest: (resourceId: string) => IAuthConfigBuilder;
addLitActionExecutionRequest: (resourceId: string) => IAuthConfigBuilder;
addAccessControlConditionSigningRequest: (resourceId: string) => IAuthConfigBuilder;
addAccessControlConditionDecryptionRequest: (resourceId: string) => IAuthConfigBuilder;
addPaymentDelegationRequest: (resourceId: string) => IAuthConfigBuilder;
build: () => AuthConfig;
}
/**
* Creates and returns a new instance of the AuthConfigBuilder.
*/
export declare const createAuthConfigBuilder: () => IAuthConfigBuilder;
export {};