learning_ai_common_plat/packages/diagnostics-client/src/index.ts
saravanakumardb1 b9e37bb8b4 feat(telemetry-client,diagnostics-client): add createWebTelemetry + createWebDiagnostics convenience factories
- telemetry-client: createWebTelemetry() wraps createTelemetryClient() with web defaults
- diagnostics-client: createWebDiagnostics() wraps DiagnosticsClient with install ID + web defaults
- Eliminates ~70 lines of boilerplate per web app
- 11/11 telemetry tests pass, 21/21 diagnostics tests pass
2026-03-20 18:47:18 -07:00

62 lines
1.6 KiB
TypeScript

/**
* @bytelyst/diagnostics-client
*
* Remote diagnostics and debug tracing client for the ByteLyst ecosystem.
* Provides polling, logging, tracing, network capture, and breadcrumbs.
*
* @example
* ```typescript
* import { DiagnosticsClient } from '@bytelyst/diagnostics-client';
*
* const client = DiagnosticsClient.getInstance({
* productId: 'myapp',
* anonymousInstallId: 'install_123',
* platform: 'web',
* channel: 'web_app',
* osFamily: 'macos',
* appVersion: '1.0.0',
* buildNumber: '100',
* releaseChannel: 'stable',
* serverUrl: 'https://api.bytelyst.com',
* });
*
* await client.start();
*
* // Auto-instrumented trace
* const result = await client.trace('fetchUser', async () => {
* return await fetch('/api/user').then(r => r.json());
* });
*
* // Manual breadcrumb
* client.breadcrumb('user', 'Clicked submit button', { formId: 'signup' });
*
* // Manual log
* client.log('info', 'User signed up', { userId: '123' });
* ```
*/
export { DiagnosticsClient, type DiagnosticsClientOptions } from './client.js';
export { createWebDiagnostics, type WebDiagnosticsConfig } from './web.js';
export { BreadcrumbTrail, type BreadcrumbTrailOptions } from './breadcrumbs.js';
export { NetworkInterceptor, type NetworkInterceptorOptions } from './network.js';
export { collectDeviceState, subscribeToConnectivity } from './device.js';
export type {
LogLevel,
SessionStatus,
CollectionLevel,
DiagnosticsSession,
TraceSpan,
LogEntry,
Breadcrumb,
NetworkRequest,
DeviceState,
DiagnosticsConfig,
ClientState,
IngestBatch,
} from './types.js';