@aether-stack-dev/client-sdk 1.2.4 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +152 -0
- package/dist/avatar/VRMAvatar.d.ts +36 -2
- package/dist/avatar/compatibility.d.ts +12 -0
- package/dist/avatar/constants.d.ts +3 -0
- package/dist/avatar/environment.d.ts +6 -0
- package/dist/avatar/index.d.ts +2 -2
- package/dist/avatar/postProcessing.d.ts +20 -0
- package/dist/index.esm.js +3 -0
- package/dist/index.js +3 -0
- package/dist/react/index.d.ts +3 -2
- package/dist/react/useAStackCSR.d.ts +9 -0
- package/dist/react.esm.js +3975 -166
- package/dist/react.js +3973 -164
- package/package.json +3 -2
- package/dist/AnalyticsCollector.d.ts +0 -62
- package/dist/BillingMonitor.d.ts +0 -36
- package/dist/ConnectionStateManager.d.ts +0 -49
- package/dist/MediaManager.d.ts +0 -21
- package/dist/PerformanceMonitor.d.ts +0 -33
- package/dist/SecurityLogger.d.ts +0 -26
- package/dist/SessionManager.d.ts +0 -20
- package/dist/UsageTracker.d.ts +0 -21
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aether-stack-dev/client-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "JavaScript/TypeScript SDK for AStack video-to-video AI conversations",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -43,7 +43,8 @@
|
|
|
43
43
|
"author": "AStack Team",
|
|
44
44
|
"license": "MIT",
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@pixiv/three-vrm": "^3.
|
|
46
|
+
"@pixiv/three-vrm": "^3.5.1",
|
|
47
|
+
"@pixiv/three-vrm-animation": "^3.5.1",
|
|
47
48
|
"@supabase/supabase-js": "^2.100.0",
|
|
48
49
|
"eventemitter3": "^5.0.1",
|
|
49
50
|
"three": "^0.181.2",
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'eventemitter3';
|
|
2
|
-
export interface AnalyticsEvent {
|
|
3
|
-
eventType: string;
|
|
4
|
-
timestamp: Date;
|
|
5
|
-
sessionId?: string;
|
|
6
|
-
userId?: string;
|
|
7
|
-
organizationId?: string;
|
|
8
|
-
metadata: Record<string, any>;
|
|
9
|
-
}
|
|
10
|
-
export interface SessionAnalytics {
|
|
11
|
-
sessionId: string;
|
|
12
|
-
startTime: Date;
|
|
13
|
-
endTime?: Date;
|
|
14
|
-
duration: number;
|
|
15
|
-
eventsCount: number;
|
|
16
|
-
errorCount: number;
|
|
17
|
-
mediaTypes: string[];
|
|
18
|
-
connectionQuality: number;
|
|
19
|
-
dataTransferred: {
|
|
20
|
-
audio: {
|
|
21
|
-
sent: number;
|
|
22
|
-
received: number;
|
|
23
|
-
};
|
|
24
|
-
video: {
|
|
25
|
-
sent: number;
|
|
26
|
-
received: number;
|
|
27
|
-
};
|
|
28
|
-
text: {
|
|
29
|
-
sent: number;
|
|
30
|
-
received: number;
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
export interface AnalyticsCollectorConfig {
|
|
35
|
-
enableAutoFlush?: boolean;
|
|
36
|
-
flushInterval?: number;
|
|
37
|
-
batchSize?: number;
|
|
38
|
-
apiEndpoint: string;
|
|
39
|
-
sessionToken: string;
|
|
40
|
-
sessionId?: string;
|
|
41
|
-
userId?: string;
|
|
42
|
-
organizationId?: string;
|
|
43
|
-
}
|
|
44
|
-
export declare class AnalyticsCollector extends EventEmitter {
|
|
45
|
-
private config;
|
|
46
|
-
private events;
|
|
47
|
-
private sessionAnalytics;
|
|
48
|
-
private flushTimer?;
|
|
49
|
-
private isCollecting;
|
|
50
|
-
constructor(config: AnalyticsCollectorConfig);
|
|
51
|
-
startSession(sessionId: string): void;
|
|
52
|
-
endSession(): void;
|
|
53
|
-
trackEvent(eventType: string, metadata?: Record<string, any>): void;
|
|
54
|
-
updateMediaTypes(mediaTypes: string[]): void;
|
|
55
|
-
updateConnectionQuality(quality: number): void;
|
|
56
|
-
updateDataTransferred(type: 'audio' | 'video' | 'text', direction: 'sent' | 'received', bytes: number): void;
|
|
57
|
-
getSessionAnalytics(): SessionAnalytics | null;
|
|
58
|
-
getEvents(): AnalyticsEvent[];
|
|
59
|
-
flush(): Promise<void>;
|
|
60
|
-
private sendSessionAnalytics;
|
|
61
|
-
destroy(): void;
|
|
62
|
-
}
|
package/dist/BillingMonitor.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { BillingInfo } from './types';
|
|
2
|
-
export interface BillingUpdateCallback {
|
|
3
|
-
(info: BillingInfo): void;
|
|
4
|
-
}
|
|
5
|
-
export interface BillingAlertCallback {
|
|
6
|
-
(alert: {
|
|
7
|
-
type: 'low_balance' | 'limit_exceeded' | 'billing_unavailable';
|
|
8
|
-
details: any;
|
|
9
|
-
}): void;
|
|
10
|
-
}
|
|
11
|
-
export declare class BillingMonitor {
|
|
12
|
-
private apiEndpoint;
|
|
13
|
-
private sessionToken;
|
|
14
|
-
private billingInfo?;
|
|
15
|
-
private updateCallbacks;
|
|
16
|
-
private alertCallbacks;
|
|
17
|
-
private checkInterval?;
|
|
18
|
-
private consecutiveFailures;
|
|
19
|
-
private warningThresholds;
|
|
20
|
-
constructor(apiEndpoint: string, sessionToken: string);
|
|
21
|
-
fetchBillingInfo(): Promise<BillingInfo>;
|
|
22
|
-
private updateBillingInfo;
|
|
23
|
-
private checkForAlerts;
|
|
24
|
-
private triggerAlert;
|
|
25
|
-
private handleFetchFailure;
|
|
26
|
-
startMonitoring(intervalMs?: number): void;
|
|
27
|
-
stopMonitoring(): void;
|
|
28
|
-
onUpdate(callback: BillingUpdateCallback): void;
|
|
29
|
-
onAlert(callback: BillingAlertCallback): void;
|
|
30
|
-
removeUpdateCallback(callback: BillingUpdateCallback): void;
|
|
31
|
-
removeAlertCallback(callback: BillingAlertCallback): void;
|
|
32
|
-
getCurrentBillingInfo(): BillingInfo | undefined;
|
|
33
|
-
setWarningThresholds(thresholds: Partial<typeof this.warningThresholds>): void;
|
|
34
|
-
checkRateLimit(): Promise<boolean>;
|
|
35
|
-
destroy(): void;
|
|
36
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'eventemitter3';
|
|
2
|
-
export interface ConnectionState {
|
|
3
|
-
signaling: 'disconnected' | 'connecting' | 'connected' | 'reconnecting';
|
|
4
|
-
websocket: 'new' | 'connecting' | 'connected' | 'disconnected' | 'failed' | 'closed';
|
|
5
|
-
workerWs: 'disconnected' | 'connecting' | 'connected' | 'reconnecting';
|
|
6
|
-
overall: 'disconnected' | 'connecting' | 'connected' | 'degraded' | 'error';
|
|
7
|
-
lastActivity: Date;
|
|
8
|
-
reconnectAttempts: number;
|
|
9
|
-
workerReconnectAttempts: number;
|
|
10
|
-
errors: Error[];
|
|
11
|
-
}
|
|
12
|
-
export interface ConnectionQuality {
|
|
13
|
-
latency?: number;
|
|
14
|
-
jitter?: number;
|
|
15
|
-
packetLoss?: number;
|
|
16
|
-
bandwidth?: number;
|
|
17
|
-
qualityScore: number;
|
|
18
|
-
}
|
|
19
|
-
export declare class ConnectionStateManager extends EventEmitter {
|
|
20
|
-
private state;
|
|
21
|
-
private quality;
|
|
22
|
-
private healthCheckInterval?;
|
|
23
|
-
private stateHistory;
|
|
24
|
-
private maxHistorySize;
|
|
25
|
-
constructor();
|
|
26
|
-
updateWorkerWsState(state: ConnectionState['workerWs']): void;
|
|
27
|
-
updateSignalingState(state: ConnectionState['signaling']): void;
|
|
28
|
-
updateWebSocketState(state: ConnectionState['websocket']): void;
|
|
29
|
-
updateWebSocketStateCompat(state: string): void;
|
|
30
|
-
private updateOverallState;
|
|
31
|
-
addError(error: Error): void;
|
|
32
|
-
clearErrors(): void;
|
|
33
|
-
updateConnectionQuality(stats: Partial<ConnectionQuality>): void;
|
|
34
|
-
private calculateQualityScore;
|
|
35
|
-
startHealthCheck(intervalMs?: number): void;
|
|
36
|
-
stopHealthCheck(): void;
|
|
37
|
-
private addToHistory;
|
|
38
|
-
getState(): ConnectionState;
|
|
39
|
-
getQuality(): ConnectionQuality;
|
|
40
|
-
getStateHistory(): Array<{
|
|
41
|
-
state: ConnectionState;
|
|
42
|
-
timestamp: Date;
|
|
43
|
-
}>;
|
|
44
|
-
isConnected(): boolean;
|
|
45
|
-
isHealthy(): boolean;
|
|
46
|
-
getReconnectAttempts(): number;
|
|
47
|
-
reset(): void;
|
|
48
|
-
destroy(): void;
|
|
49
|
-
}
|
package/dist/MediaManager.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'eventemitter3';
|
|
2
|
-
import { AStackConfig, MediaStreamInfo } from './types';
|
|
3
|
-
export declare class MediaManager extends EventEmitter {
|
|
4
|
-
private config;
|
|
5
|
-
private localStream;
|
|
6
|
-
constructor(config: AStackConfig);
|
|
7
|
-
initialize(): Promise<void>;
|
|
8
|
-
getStats(): Promise<any>;
|
|
9
|
-
getUserMedia(): Promise<MediaStream>;
|
|
10
|
-
addLocalStream(stream: MediaStream): Promise<void>;
|
|
11
|
-
removeLocalStream(streamId: string): void;
|
|
12
|
-
getLocalStreams(): MediaStreamInfo[];
|
|
13
|
-
getRemoteStreams(): MediaStreamInfo[];
|
|
14
|
-
getMediaDevices(): Promise<MediaDeviceInfo[]>;
|
|
15
|
-
switchAudioInput(deviceId: string): Promise<void>;
|
|
16
|
-
muteAudio(): void;
|
|
17
|
-
unmuteAudio(): void;
|
|
18
|
-
muteVideo(): void;
|
|
19
|
-
unmuteVideo(): void;
|
|
20
|
-
close(): Promise<void>;
|
|
21
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'eventemitter3';
|
|
2
|
-
import { PerformanceMetrics, PerformanceBenchmark } from './types';
|
|
3
|
-
export interface PerformanceMonitorConfig {
|
|
4
|
-
collectionInterval?: number;
|
|
5
|
-
apiEndpoint: string;
|
|
6
|
-
sessionId?: string;
|
|
7
|
-
enableAutoReport?: boolean;
|
|
8
|
-
reportingInterval?: number;
|
|
9
|
-
}
|
|
10
|
-
export declare class PerformanceMonitor extends EventEmitter {
|
|
11
|
-
private config;
|
|
12
|
-
private metrics;
|
|
13
|
-
private collectionTimer?;
|
|
14
|
-
private reportingTimer?;
|
|
15
|
-
private startTime;
|
|
16
|
-
private benchmarks;
|
|
17
|
-
private isCollecting;
|
|
18
|
-
constructor(config: PerformanceMonitorConfig);
|
|
19
|
-
private initializeMetrics;
|
|
20
|
-
startCollection(sessionId?: string): void;
|
|
21
|
-
stopCollection(): void;
|
|
22
|
-
recordLatency(type: 'signaling' | 'websocket' | 'audio' | 'video', latency: number): void;
|
|
23
|
-
updateThroughput(type: 'audio' | 'video' | 'data', direction: 'inbound' | 'outbound', bytesPerSecond: number): void;
|
|
24
|
-
updateQuality(quality: Partial<PerformanceMetrics['quality']>): void;
|
|
25
|
-
updateResources(resources: Partial<PerformanceMetrics['resources']>): void;
|
|
26
|
-
recordBenchmark(benchmark: Omit<PerformanceBenchmark, 'timestamp'>): void;
|
|
27
|
-
getMetrics(): PerformanceMetrics;
|
|
28
|
-
getBenchmarks(): PerformanceBenchmark[];
|
|
29
|
-
getLatencyStats(type?: 'signaling' | 'websocket' | 'audio' | 'video'): any;
|
|
30
|
-
reportMetrics(): Promise<void>;
|
|
31
|
-
private collectMetrics;
|
|
32
|
-
destroy(): void;
|
|
33
|
-
}
|
package/dist/SecurityLogger.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { SecurityEvent } from './types';
|
|
2
|
-
export interface SecurityLoggerConfig {
|
|
3
|
-
apiEndpoint: string;
|
|
4
|
-
sessionToken: string;
|
|
5
|
-
sessionId?: string;
|
|
6
|
-
organizationId?: string;
|
|
7
|
-
batchSize?: number;
|
|
8
|
-
flushInterval?: number;
|
|
9
|
-
}
|
|
10
|
-
export declare class SecurityLogger {
|
|
11
|
-
private eventQueue;
|
|
12
|
-
private flushInterval?;
|
|
13
|
-
private config;
|
|
14
|
-
constructor(config: SecurityLoggerConfig);
|
|
15
|
-
setSessionId(sessionId: string): void;
|
|
16
|
-
logEvent(eventType: SecurityEvent['eventType'], severity: SecurityEvent['severity'], details: Record<string, any>): void;
|
|
17
|
-
logAuthFailure(reason: string, details?: Record<string, any>): void;
|
|
18
|
-
logRateLimit(limit: number, current: number, endpoint?: string): void;
|
|
19
|
-
logInvalidRequest(reason: string, request?: any): void;
|
|
20
|
-
logSessionHijackAttempt(details: Record<string, any>): void;
|
|
21
|
-
private sanitizeRequest;
|
|
22
|
-
flush(): Promise<void>;
|
|
23
|
-
private startAutoFlush;
|
|
24
|
-
private stopAutoFlush;
|
|
25
|
-
destroy(): Promise<void>;
|
|
26
|
-
}
|
package/dist/SessionManager.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { SessionCredentials, SessionCreateRequest, WorkerInfo } from './types';
|
|
2
|
-
export declare class SessionManager {
|
|
3
|
-
private apiEndpoint;
|
|
4
|
-
private sessionCredentials;
|
|
5
|
-
private workerInfo;
|
|
6
|
-
private expirationTimer;
|
|
7
|
-
private onSessionExpiring?;
|
|
8
|
-
private sessionExpirationWarning;
|
|
9
|
-
constructor(apiEndpoint: string, sessionExpirationWarning?: number, onSessionExpiring?: (minutesRemaining: number) => void);
|
|
10
|
-
createSession(request: SessionCreateRequest): Promise<SessionCredentials>;
|
|
11
|
-
renewSession(apiKey: string): Promise<SessionCredentials>;
|
|
12
|
-
private scheduleExpirationWarning;
|
|
13
|
-
getCredentials(): SessionCredentials | null;
|
|
14
|
-
isSessionValid(): boolean;
|
|
15
|
-
getTimeUntilExpiration(): number;
|
|
16
|
-
clearSession(): void;
|
|
17
|
-
getWorkerInfo(): WorkerInfo | null;
|
|
18
|
-
destroy(): void;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=SessionManager.d.ts.map
|
package/dist/UsageTracker.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { UsageMetrics } from './types';
|
|
2
|
-
export declare class UsageTracker {
|
|
3
|
-
private sessionId;
|
|
4
|
-
private startTime;
|
|
5
|
-
private endTime?;
|
|
6
|
-
private inputTokens;
|
|
7
|
-
private outputTokens;
|
|
8
|
-
private errorCount;
|
|
9
|
-
private qualityScores;
|
|
10
|
-
constructor(sessionId: string);
|
|
11
|
-
start(): void;
|
|
12
|
-
stop(): void;
|
|
13
|
-
trackInputTokens(tokens: number): void;
|
|
14
|
-
trackOutputTokens(tokens: number): void;
|
|
15
|
-
trackError(): void;
|
|
16
|
-
trackQualityScore(score: number): void;
|
|
17
|
-
getDuration(): number;
|
|
18
|
-
getAverageQualityScore(): number | undefined;
|
|
19
|
-
getMetrics(): UsageMetrics;
|
|
20
|
-
reset(): void;
|
|
21
|
-
}
|