UNPKG

@lit-protocol/auth-helpers

Version:

Advanced authentication utilities for managing blockchain resource permissions and capabilities within the Lit Protocol ecosystem. Built on top of SIWE (Sign-In with Ethereum) and SIWE-RECAP for robust authentication flows.

97 lines (93 loc) 3.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ResourceAbilityRequestBuilder = void 0; const constants_1 = require("@lit-protocol/constants"); const resources_1 = require("../resources"); /** * Lit resrouce ability request builder for creating resource ability requests. * * @example * import { ResourceAbilityRequestBuilder } from '@lit-protocol/auth-helpers'; const builder = new ResourceAbilityRequestBuilder(); builder .addPKPSigningRequest('*') // PKP Signing .addLitActionExecutionRequest('*') // Lit Action Execution .addAccessControlConditionSigningRequest('*') // ACC Signing .addAccessControlConditionDecryptionRequest('*') // ACC Decryption .addRateLimitIncreaseAuthRequest('*'); // RLI Authentication const requests = builder.build(); */ class ResourceAbilityRequestBuilder { constructor() { this.requests = []; } /** * Adds a PKP signing request to the builder. * @param resourceId - The ID of the resource. * @returns The builder instance. */ addPKPSigningRequest(resourceId) { this.requests.push({ resource: new resources_1.LitPKPResource(resourceId), ability: constants_1.LIT_ABILITY.PKPSigning, }); return this; } /** * Adds a Lit action execution request to the builder. * @param resourceId - The ID of the resource. * @returns The builder instance. */ addLitActionExecutionRequest(resourceId) { this.requests.push({ resource: new resources_1.LitActionResource(resourceId), ability: constants_1.LIT_ABILITY.LitActionExecution, }); return this; } /** * Adds an access control condition signing request to the builder. * @param resourceId - The ID of the resource. * @returns The builder instance. */ addAccessControlConditionSigningRequest(resourceId) { this.requests.push({ resource: new resources_1.LitAccessControlConditionResource(resourceId), ability: constants_1.LIT_ABILITY.AccessControlConditionSigning, }); return this; } /** * Adds an access control condition decryption request to the builder. * @param resourceId - The ID of the resource. * @returns The builder instance. */ addAccessControlConditionDecryptionRequest(resourceId) { this.requests.push({ resource: new resources_1.LitAccessControlConditionResource(resourceId), ability: constants_1.LIT_ABILITY.AccessControlConditionDecryption, }); return this; } /** * Adds a rate limit increase authentication request to the builder. * @param resourceId - The ID of the resource. * @returns The builder instance. */ addRateLimitIncreaseAuthRequest(resourceId) { this.requests.push({ resource: new resources_1.LitRLIResource(resourceId), ability: constants_1.LIT_ABILITY.RateLimitIncreaseAuth, }); return this; } /** * Builds the array of resource ability requests. * @returns The array of resource ability requests. */ build() { return this.requests; } } exports.ResourceAbilityRequestBuilder = ResourceAbilityRequestBuilder; //# sourceMappingURL=resource-builder.js.map