feat(core): update plugin with generic polling support and monorepo structure
- Update package.json with workspaces configuration for monorepo structure - Add test:workspaces script for running tests across all packages - Update src/definitions.ts with enhanced type definitions for generic polling - Improve src/callback-registry.ts with better error handling and logging - Enhance src/observability.ts with telemetry budgets and PII redaction - Update src/typescript/SecurityManager.ts with JWT validation improvements - Add support for @timesafari/polling-contracts package integration - Include backward compatibility with existing plugin interfaces - Improve TypeScript type safety across all core modules - Add comprehensive error handling and logging throughout Establishes the foundation for generic polling while maintaining existing functionality.
This commit is contained in:
@@ -242,7 +242,7 @@ export class CallbackRegistryImpl implements CallbackRegistry {
|
||||
callback.retryCount = 0; // Reset retry count for activeDid change
|
||||
}
|
||||
|
||||
let actualRetryCount = callback.retryCount || 0;
|
||||
const actualRetryCount = callback.retryCount || 0;
|
||||
|
||||
const backoffMs = Math.min(1000 * Math.pow(2, actualRetryCount), 60000); // Cap at 1 minute
|
||||
const retryEvent = { ...event, retryCount: actualRetryCount + 1 };
|
||||
|
||||
@@ -478,7 +478,7 @@ export interface PlanSummary {
|
||||
locLat?: number;
|
||||
locLon?: number;
|
||||
url?: string;
|
||||
};
|
||||
}
|
||||
|
||||
// Phase 2: Detailed TimeSafari Notification Types
|
||||
export interface TimeSafariNotificationBundle {
|
||||
@@ -595,13 +595,13 @@ export interface ActiveDidIntegrationConfig {
|
||||
storageType: 'plugin-managed' | 'host-managed';
|
||||
jwtExpirationSeconds?: number;
|
||||
apiServer?: string;
|
||||
};
|
||||
}
|
||||
|
||||
export interface ActiveDidChangeEvent {
|
||||
activeDid: string;
|
||||
timestamp: number;
|
||||
source: 'host' | 'plugin';
|
||||
};
|
||||
}
|
||||
|
||||
// MARK: - Phase 3: TimeSafari Background Coordination Interfaces
|
||||
|
||||
|
||||
@@ -178,7 +178,7 @@ export class ObservabilityManager {
|
||||
/**
|
||||
* Get recent event logs
|
||||
*/
|
||||
getRecentLogs(limit: number = 50): EventLog[] {
|
||||
getRecentLogs(limit = 50): EventLog[] {
|
||||
return this.eventLogs.slice(0, limit);
|
||||
}
|
||||
|
||||
|
||||
@@ -266,7 +266,7 @@ export class SecurityManager {
|
||||
/**
|
||||
* Generate JWT token for authentication
|
||||
*/
|
||||
async generateJWT(claims: Partial<JWTClaims>, audience: string = 'endorser-api'): Promise<string | null> {
|
||||
async generateJWT(claims: Partial<JWTClaims>, audience = 'endorser-api'): Promise<string | null> {
|
||||
try {
|
||||
if (!this.activeDid || !this.activeCredentials) {
|
||||
throw new Error('No active DID or credentials available');
|
||||
|
||||
Reference in New Issue
Block a user