@sgnl-ai/secevent
Version:
A comprehensive JavaScript/TypeScript library for Security Event Tokens (SET) implementing RFC 8417, CAEP, and SSF standards
70 lines (62 loc) • 1.78 kB
text/typescript
/**
* @sgnl-ai/secevent - Security Event Token Library
* A comprehensive JavaScript/TypeScript implementation of RFC 8417, CAEP, and SSF
*
* Copyright (c) 2024 SGNL.ai
* Licensed under the MIT License
*/
// Core types
export * from './types/subject';
export * from './types/events';
export * from './types/secevent';
// Builder
export { SecEventBuilder, createBuilder } from './builder/builder';
export type { BuilderOptions } from './builder/builder';
// Parser
export { SecEventParser, createParser } from './parser/parser';
export type { ParserOptions } from './parser/parser';
// ID Generation
export {
UuidGenerator,
TimestampGenerator,
PrefixedGenerator,
CustomGenerator,
defaultIdGenerator,
} from './id/generator';
// Signing
export { KeyManager, SigningUtils, Algorithm, defaultKeyManager } from './signing/signer';
// Re-export commonly used functions
export { SubjectIdentifiers } from './types/subject';
export { Events } from './types/events';
export { EVENT_TYPES, CAEP_EVENT_TYPES, SSF_EVENT_TYPES, RISC_EVENT_TYPES } from './types/events';
/**
* Quick start example:
*
* ```typescript
* import {
* createBuilder,
* SubjectIdentifiers,
* Events,
* SigningUtils,
* Algorithm
* } from '@sgnl-ai/secevent';
*
* // Create a signing key
* const signingKey = SigningUtils.createSymmetricKey('your-secret', Algorithm.HS256);
*
* // Build and sign a SET
* const secEvent = await createBuilder()
* .withIssuer('https://example.com')
* .withAudience('https://app.example.com')
* .withEvent(
* Events.sessionRevoked(
* SubjectIdentifiers.email('user@example.com'),
* Date.now() / 1000,
* 'suspicious_activity'
* )
* )
* .sign(signingKey);
*
* console.log(secEvent.jwt);
* ```
*/