@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
JavaScript
;
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