@agentuity/frontend 1.0.0 → 1.0.2

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/AGENTS.md CHANGED
@@ -2,80 +2,80 @@
2
2
 
3
3
  ## Package Overview
4
4
 
5
- Generic web utilities for building Agentuity frontend applications. Provides framework-agnostic utilities that can be used across React, Svelte, Vue, and other frontend frameworks.
5
+ Framework-agnostic web utilities for building Agentuity frontend applications. Works across React, Svelte, Vue, and other frameworks without any framework dependencies.
6
6
 
7
7
  ## Commands
8
8
 
9
9
  - **Build**: `bun run build` (compiles for browser target)
10
- - **Typecheck**: `bun run typecheck` (runs TypeScript type checking)
11
- - **Clean**: `bun run clean` (removes dist/)
10
+ - **Typecheck**: `bun run typecheck`
11
+ - **Clean**: `bun run clean`
12
12
 
13
13
  ## Architecture
14
14
 
15
- - **Runtime**: Browser only (uses browser APIs like fetch, WebSocket, EventSource)
15
+ - **Runtime**: Browser only (uses fetch, WebSocket, EventSource)
16
16
  - **Build target**: Browser with ESNext
17
- - **Dependencies**: Requires `@agentuity/core` (workspace dependency)
18
- - **No framework dependencies**: Pure JavaScript/TypeScript with no React/Svelte/Vue dependencies
17
+ - **Dependencies**: `@agentuity/core` only
18
+ - **No framework dependencies**: Pure TypeScript
19
19
 
20
20
  ## Structure
21
21
 
22
22
  ```text
23
23
  src/
24
- ├── index.ts # Main entry point
25
- ├── env.ts # Environment variable helpers
26
- ├── url.ts # URL building utilities
27
- ├── serialization.ts # JSON serialization helpers
28
- ├── reconnect.ts # Exponential backoff reconnection logic
29
- ├── types.ts # Type definitions for route registries
30
- └── memo.ts # JSON equality utilities
24
+ ├── index.ts # Main exports
25
+ ├── types.ts # RouteRegistry, WebSocketRouteRegistry, SSERouteRegistry, RPCRouteRegistry
26
+ ├── url.ts # buildUrl, defaultBaseUrl
27
+ ├── reconnect.ts # createReconnectManager (exponential backoff)
28
+ ├── websocket-manager.ts # WebSocketManager class
29
+ ├── eventstream-manager.ts # EventStreamManager class (SSE)
30
+ ├── client/ # Type-safe API client (createClient)
31
+ └── analytics/ # getAnalytics, track, getVisitorId, isOptedOut
31
32
  ```
32
33
 
33
- ## Code Style
34
+ ## Code Conventions
34
35
 
35
- - **Framework-agnostic** - No framework-specific dependencies (React, Svelte, etc.)
36
+ - **Framework-agnostic** - No React/Svelte/Vue dependencies
36
37
  - **TypeScript generics** - Heavy use of generics for type safety
37
38
  - **Pure functions** - All utilities are pure functions where possible
38
- - **Browser APIs** - Uses standard browser APIs (fetch, WebSocket, EventSource)
39
-
40
- ## Important Conventions
41
-
42
- - **No framework dependencies** - This package must remain framework-agnostic
43
- - **Type inference** - Route types are inferred from generated types (RouteRegistry)
44
- - **Base URL** - Defaults to current origin if not provided
45
- - **WebSocket protocol** - Auto-converts http:// to ws:// and https:// to wss://
46
- - **Serialization** - Automatically handles JSON serialization/deserialization
47
-
48
- ## Utilities
49
-
50
- ### URL Building
51
-
52
- - `buildUrl()` - Construct URLs with paths, subpaths, and query parameters
53
- - `defaultBaseUrl` - Default base URL from environment or window.location.origin
54
-
55
- ### Reconnection Manager
56
-
57
- - `createReconnectManager()` - Exponential backoff reconnection logic with jitter
58
- - Configurable threshold, delays, and retry strategies
59
-
60
- ### Environment
61
-
62
- - `getProcessEnv()` - Cross-platform environment variable access (process.env, import.meta.env)
39
+ - **Browser APIs** - Uses standard browser APIs only
40
+
41
+ ## Important Patterns
42
+
43
+ ### Route Registries
44
+
45
+ Types are augmented by generated code:
46
+
47
+ ```typescript
48
+ declare module '@agentuity/frontend' {
49
+ export interface RouteRegistry {
50
+ 'GET /users': { outputSchema: typeof usersSchema };
51
+ }
52
+ export interface WebSocketRouteRegistry {
53
+ /* ... */
54
+ }
55
+ export interface SSERouteRegistry {
56
+ /* ... */
57
+ }
58
+ export interface RPCRouteRegistry {
59
+ /* ... */
60
+ }
61
+ }
62
+ ```
63
63
 
64
- ### Serialization
64
+ ### Connection Managers
65
65
 
66
- - `deserializeData()` - Safe JSON deserialization with fallback
67
- - `jsonEqual()` - JSON-based equality check for memoization
66
+ `WebSocketManager` and `EventStreamManager` provide auto-reconnection with exponential backoff. Used internally by `@agentuity/react` hooks.
68
67
 
69
- ## Testing
68
+ ## Key Exports
70
69
 
71
- - Test with Bun test runner
72
- - Mock browser APIs where needed (fetch, WebSocket, EventSource)
73
- - Ensure all utilities work without framework dependencies
74
- - When running tests, prefer using a subagent (Task tool) to avoid context bloat from test output
70
+ - **URL**: `buildUrl`, `defaultBaseUrl`
71
+ - **Reconnect**: `createReconnectManager`
72
+ - **Managers**: `WebSocketManager`, `EventStreamManager`
73
+ - **Client**: `createClient`
74
+ - **Analytics**: `getAnalytics`, `track`, `getVisitorId`, `isOptedOut`, `setOptOut`
75
+ - **Types**: `RouteRegistry`, `WebSocketRouteRegistry`, `SSERouteRegistry`, `RPCRouteRegistry`
75
76
 
76
- ## Publishing Checklist
77
+ ## Publishing
77
78
 
78
- 1. Run `bun run build` to compile for browser
79
- 2. Verify `dist/` contains browser-compatible code (no Node.js APIs)
80
- 3. Ensure no framework-specific dependencies are added
81
- 4. Must publish **after** @agentuity/core
79
+ 1. Run `bun run build`
80
+ 2. Verify no Node.js APIs in output
81
+ 3. Must publish **after** @agentuity/core
package/README.md CHANGED
@@ -18,6 +18,7 @@ npm install @agentuity/frontend
18
18
  - **Reconnection Logic**: Exponential backoff reconnection manager for WebSockets and SSE
19
19
  - **Type Definitions**: Shared TypeScript types for route registries
20
20
  - **Memoization**: JSON-based equality checking
21
+ - **WebRTC**: Multi-peer connections with data channels, screen sharing, and recording
21
22
 
22
23
  ## Usage
23
24
 
@@ -60,6 +61,36 @@ import { deserializeData } from '@agentuity/frontend';
60
61
  const data = deserializeData<MyType>('{"key":"value"}');
61
62
  ```
62
63
 
64
+ ### WebRTC
65
+
66
+ Multi-peer WebRTC connections with auto-reconnection and data channels:
67
+
68
+ ```typescript
69
+ import { WebRTCManager } from '@agentuity/frontend';
70
+
71
+ const manager = new WebRTCManager({
72
+ signalUrl: 'ws://localhost:3500/api/webrtc/signal',
73
+ roomId: 'my-room',
74
+ autoReconnect: true,
75
+ });
76
+
77
+ manager.on('peerConnected', (peerId) => console.log('Peer joined:', peerId));
78
+ manager.on('dataChannelMessage', ({ channel, data }) => console.log(channel, data));
79
+
80
+ await manager.connect();
81
+ manager.sendJSON('chat', { message: 'Hello!' });
82
+ ```
83
+
84
+ Key features:
85
+ - Multi-peer mesh networking
86
+ - Auto-reconnection with exponential backoff
87
+ - Data channels (JSON, binary, ArrayBuffer)
88
+ - Screen sharing and recording
89
+ - ICE/connection timeout detection
90
+ - Connection quality stats API
91
+
92
+ For detailed architecture, see [docs/webrtc-architecture.md](../../docs/webrtc-architecture.md).
93
+
63
94
  ## License
64
95
 
65
96
  Apache-2.0
@@ -1,6 +1,6 @@
1
1
  // Auto-generated - do not edit
2
2
  // Minified analytics beacon script (overwrites TypeScript output)
3
- export const BEACON_SCRIPT = "/* @agentuity/frontend v1.0.0 */\n(()=>{function A(X){if(X===void 0||X===null)return\"\";try{let V=new WeakSet;return JSON.stringify(X,(Y,Z)=>{if(typeof Z===\"object\"&&Z!==null){if(V.has(Z))return\"[Circular]\";V.add(Z)}return Z})}catch(V){let Y=V instanceof Error?V.message:String(V);return console.warn(\"[Agentuity Analytics] Failed to stringify properties:\",Y),`[unserializable: ${Y}]`}}(function(){let X=window,V=document,Y=X.__AGENTUITY_ANALYTICS__;if(!Y||!Y.enabled)return;let Z=X;if(Y.isDevmode)console.debug(\"[Agentuity Analytics] Script loaded, init flag:\",Z.__AGENTUITY_BEACON_INIT__,\"path:\",location.pathname);if(Z.__AGENTUITY_BEACON_INIT__){if(Y.isDevmode)console.debug(\"[Agentuity Analytics] Already initialized, skipping\");return}Z.__AGENTUITY_BEACON_INIT__=!0;let J=Y,K=null,z=!1,C=Date.now(),Q=\"\",M={},q={id:\"\",timestamp:0,timezone_offset:0,url:\"\",path:\"\",referrer:\"\",title:\"\",screen_width:0,screen_height:0,viewport_width:0,viewport_height:0,device_pixel_ratio:1,user_agent:\"\",language:\"\",scroll_depth:0,time_on_page:0,scroll_events:[],custom_events:[]};function O(){return crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function T(){let x=new URLSearchParams(location.search),B={};return[\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_term\",\"utm_content\"].forEach((G)=>{let W=x.get(G);if(W)B[G]=W}),B}function F(x){if(!x)return\"\";try{let B=new URL(x);return B.origin+B.pathname}catch{return x.split(\"?\")[0]??x}}function U(){q.id=O(),q.timestamp=Date.now(),q.timezone_offset=new Date().getTimezoneOffset(),q.url=F(location.href),q.path=location.pathname,q.referrer=F(V.referrer),q.title=V.title||\"\",q.screen_width=screen.width||0,q.screen_height=screen.height||0,q.viewport_width=innerWidth||0,q.viewport_height=innerHeight||0,q.device_pixel_ratio=devicePixelRatio||1,q.user_agent=navigator.userAgent||\"\",q.language=navigator.language||\"\";let x=T();for(let B in x)q[B]=x[B];if(q.scroll_events=[],q.custom_events=[],q.scroll_depth=0,z=!1,C=Date.now(),typeof performance<\"u\"&&performance.getEntriesByType){let B=performance.getEntriesByType(\"navigation\")[0];if(B)if(q.dom_ready=Math.round(B.domContentLoadedEventEnd-B.startTime),q.ttfb=Math.round(B.responseStart-B.requestStart),B.loadEventEnd>0)q.load_time=Math.round(B.loadEventEnd-B.startTime);else setTimeout(()=>{let G=performance.getEntriesByType(\"navigation\")[0];if(G&&G.loadEventEnd>0)q.load_time=Math.round(G.loadEventEnd-G.startTime)},0)}if(J.isDevmode)console.debug(\"[Agentuity Analytics] Session started (full init):\",q.id)}function j(){if(q.id=O(),q.timestamp=Date.now(),q.scroll_events=[],q.custom_events=[],q.scroll_depth=0,q.time_on_page=0,z=!1,C=Date.now(),J.isDevmode)console.debug(\"[Agentuity Analytics] Session started (soft reset):\",q.id)}fetch(\"https://agentuity.sh/location\").then((x)=>x.json()).then((x)=>{K=x;try{sessionStorage.setItem(\"agentuity_geo\",JSON.stringify(x))}catch{}}).catch(()=>{try{let x=sessionStorage.getItem(\"agentuity_geo\");if(x)K=JSON.parse(x)}catch{}});try{let x=sessionStorage.getItem(\"agentuity_geo\");if(x)K=JSON.parse(x)}catch{}function N(){return X.__AGENTUITY_SESSION__}function L(x=!1){if(z&&!x){if(J.isDevmode)console.debug(\"[Agentuity Analytics] send() skipped - already sent\");return}if(J.sampleRate!==void 0&&J.sampleRate<1&&Math.random()>J.sampleRate)return;if(z=!0,q.time_on_page=Date.now()-C,K){if(q.country=K.country||\"\",K.country_latitude)q.country_latitude=parseFloat(String(K.country_latitude));if(K.country_longitude)q.country_longitude=parseFloat(String(K.country_longitude));if(q.region=K.region||\"\",K.region_latitude)q.region_latitude=parseFloat(String(K.region_latitude));if(K.region_longitude)q.region_longitude=parseFloat(String(K.region_longitude));if(q.city=K.city||\"\",K.city_latitude)q.city_latitude=parseFloat(String(K.city_latitude));if(K.city_longitude)q.city_longitude=parseFloat(String(K.city_longitude));if(q.timezone=K.timezone||\"\",K.latitude)q.latitude=parseFloat(String(K.latitude));if(K.longitude)q.longitude=parseFloat(String(K.longitude))}if(q.cls)q.cls=Math.round(q.cls*1000)/1000;let B=N(),G=localStorage.getItem(\"agentuity_visitor_id\")||\"vid_\"+O();try{localStorage.setItem(\"agentuity_visitor_id\",G)}catch{}let W={org_id:J.orgId,project_id:J.projectId,thread_id:B?.threadId||\"\",visitor_id:G,user_id:Q,user_traits:M,is_devmode:J.isDevmode,pageview:q};try{sessionStorage.removeItem(\"agentuity_pending_pageview\")}catch{}if(J.isDevmode){console.debug(\"[Agentuity Analytics]\",JSON.stringify(W,null,2));return}let _=JSON.stringify(W);if(navigator.sendBeacon)navigator.sendBeacon(\"/_agentuity/webanalytics/collect\",_);else fetch(\"/_agentuity/webanalytics/collect\",{method:\"POST\",body:_,keepalive:!0}).catch(()=>{})}if(V.addEventListener(\"visibilitychange\",()=>{if(J.isDevmode)console.debug(\"[Agentuity Analytics] visibilitychange:\",V.visibilityState,\"sent:\",z);if(V.visibilityState===\"hidden\")L();else if(V.visibilityState===\"visible\")j()}),X.addEventListener(\"pagehide\",()=>{if(J.isDevmode){console.debug(\"[Agentuity Analytics] pagehide event\");try{sessionStorage.setItem(\"agentuity_last_event\",`pagehide:${Date.now()}:${q.path}`)}catch{}}L()}),X.addEventListener(\"beforeunload\",()=>{if(J.isDevmode){console.debug(\"[Agentuity Analytics] beforeunload event\");try{sessionStorage.setItem(\"agentuity_last_event\",`beforeunload:${Date.now()}:${q.path}`)}catch{}}L()}),J.isDevmode)try{let x=sessionStorage.getItem(\"agentuity_last_event\");if(x)console.debug(\"[Agentuity Analytics] Previous page event:\",x),sessionStorage.removeItem(\"agentuity_last_event\")}catch{}try{let x=sessionStorage.getItem(\"agentuity_pending_pageview\");if(x){sessionStorage.removeItem(\"agentuity_pending_pageview\");let B=JSON.parse(x);if(B.pageview?.path!==location.pathname)if(J.isDevmode)console.debug(\"[Agentuity Analytics] Sending unsent data from previous page:\",B.pageview?.path),console.debug(\"[Agentuity Analytics]\",JSON.stringify(B,null,2));else{let G=JSON.stringify(B);if(navigator.sendBeacon)navigator.sendBeacon(\"/_agentuity/webanalytics/collect\",G)}}}catch{}function H(){try{q.time_on_page=Date.now()-C;let x=N(),B=localStorage.getItem(\"agentuity_visitor_id\")||\"vid_\"+O(),G={org_id:J.orgId,project_id:J.projectId,thread_id:x?.threadId||\"\",visitor_id:B,user_id:Q,user_traits:M,is_devmode:J.isDevmode,pageview:{...q}};sessionStorage.setItem(\"agentuity_pending_pageview\",JSON.stringify(G))}catch{}}if(setInterval(H,2000),V.addEventListener(\"click\",H,{passive:!0}),V.addEventListener(\"scroll\",H,{passive:!0,once:!0}),J.isDevmode)console.debug(\"[Agentuity Analytics] Beacon initialized, visibility:\",V.visibilityState);if(J.trackScroll!==!1){let B=function(){let G=X.scrollY||V.documentElement.scrollTop,W=V.documentElement.scrollHeight-V.documentElement.clientHeight;return W<=0?100:Math.min(100,Math.round(G/W*100))};var D=B;let x=new Set;X.addEventListener(\"scroll\",()=>{let G=B();if(G>q.scroll_depth)q.scroll_depth=G;[25,50,75,100].forEach((W)=>{if(G>=W&&!x.has(W))x.add(W),q.scroll_events.push({depth:W,timestamp:Date.now()-C})})},{passive:!0})}if(J.trackWebVitals!==!1&&typeof PerformanceObserver<\"u\"){try{let x=new PerformanceObserver((B)=>{B.getEntries().forEach((G)=>{if(G.name===\"first-contentful-paint\")q.fcp=Math.round(G.startTime),x.disconnect()})});x.observe({type:\"paint\",buffered:!0})}catch{}try{new PerformanceObserver((x)=>{let B=x.getEntries(),G=B[B.length-1];if(G)q.lcp=Math.round(G.startTime)}).observe({type:\"largest-contentful-paint\",buffered:!0})}catch{}try{new PerformanceObserver((x)=>{x.getEntries().forEach((B)=>{let G=B;if(!G.hadRecentInput&&G.value)q.cls=(q.cls||0)+G.value})}).observe({type:\"layout-shift\",buffered:!0})}catch{}try{new PerformanceObserver((x)=>{x.getEntries().forEach((B)=>{let G=B;if(G.duration&&G.duration>(q.inp||0))q.inp=Math.round(G.duration)})}).observe({type:\"event\",buffered:!0})}catch{}}if(J.trackSPANavigation!==!1){let _=function(){let $=location.pathname+location.search;if($!==G){if(J.isDevmode)console.debug(\"[Agentuity Analytics] SPA navigation:\",G,\"->\",$);L(!0),G=$,W=location.href,U()}};var R=_;let{pushState:x,replaceState:B}=history,G=location.pathname+location.search,W=location.href;if(J.isDevmode)console.debug(\"[Agentuity Analytics] SPA tracking enabled, initial path:\",G);history.pushState=function(...$){x.apply(this,$),setTimeout(_,0)},history.replaceState=function(...$){B.apply(this,$),setTimeout(_,0)},X.addEventListener(\"popstate\",_),setInterval(()=>{if(location.href!==W)W=location.href,_()},200)}if(J.trackClicks!==!1)V.addEventListener(\"click\",(x)=>{let B=x.target;if(!B)return;let G=B.closest(\"[data-analytics]\");if(!G)return;if(q.custom_events.length<1000)q.custom_events.push({timestamp:Date.now(),name:\"click:\"+G.getAttribute(\"data-analytics\"),data:\"\"})},!0);if(J.trackErrors!==!1)X.addEventListener(\"error\",(x)=>{if(q.custom_events.length<1000)q.custom_events.push({timestamp:Date.now(),name:\"error:js_error\",data:JSON.stringify({message:x.message||\"Unknown\",filename:x.filename||\"\",lineno:x.lineno||0})})}),X.addEventListener(\"unhandledrejection\",(x)=>{if(q.custom_events.length<1000)q.custom_events.push({timestamp:Date.now(),name:\"error:unhandled_rejection\",data:JSON.stringify({message:x.reason instanceof Error?x.reason.message:String(x.reason)})})});if(V.readyState===\"complete\")U();else X.addEventListener(\"load\",U);X.agentuityAnalytics={track(x,B){if(q.custom_events.length<1000)q.custom_events.push({timestamp:Date.now(),name:x,data:A(B)})},identify(x,B){if(Q=x,B){M={};for(let[G,W]of Object.entries(B))M[G]=String(W)}},flush:()=>L(!0)}})();})();\n";
3
+ export const BEACON_SCRIPT = "/* @agentuity/frontend v1.0.2 */\n(()=>{function A(X){if(X===void 0||X===null)return\"\";try{let V=new WeakSet;return JSON.stringify(X,(Y,Z)=>{if(typeof Z===\"object\"&&Z!==null){if(V.has(Z))return\"[Circular]\";V.add(Z)}return Z})}catch(V){let Y=V instanceof Error?V.message:String(V);return console.warn(\"[Agentuity Analytics] Failed to stringify properties:\",Y),`[unserializable: ${Y}]`}}(function(){let X=window,V=document,Y=X.__AGENTUITY_ANALYTICS__;if(!Y||!Y.enabled)return;let Z=X;if(Y.isDevmode)console.debug(\"[Agentuity Analytics] Script loaded, init flag:\",Z.__AGENTUITY_BEACON_INIT__,\"path:\",location.pathname);if(Z.__AGENTUITY_BEACON_INIT__){if(Y.isDevmode)console.debug(\"[Agentuity Analytics] Already initialized, skipping\");return}Z.__AGENTUITY_BEACON_INIT__=!0;let J=Y,K=null,z=!1,C=Date.now(),Q=\"\",M={},q={id:\"\",timestamp:0,timezone_offset:0,url:\"\",path:\"\",referrer:\"\",title:\"\",screen_width:0,screen_height:0,viewport_width:0,viewport_height:0,device_pixel_ratio:1,user_agent:\"\",language:\"\",scroll_depth:0,time_on_page:0,scroll_events:[],custom_events:[]};function O(){return crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function T(){let x=new URLSearchParams(location.search),B={};return[\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_term\",\"utm_content\"].forEach((G)=>{let W=x.get(G);if(W)B[G]=W}),B}function F(x){if(!x)return\"\";try{let B=new URL(x);return B.origin+B.pathname}catch{return x.split(\"?\")[0]??x}}function U(){q.id=O(),q.timestamp=Date.now(),q.timezone_offset=new Date().getTimezoneOffset(),q.url=F(location.href),q.path=location.pathname,q.referrer=F(V.referrer),q.title=V.title||\"\",q.screen_width=screen.width||0,q.screen_height=screen.height||0,q.viewport_width=innerWidth||0,q.viewport_height=innerHeight||0,q.device_pixel_ratio=devicePixelRatio||1,q.user_agent=navigator.userAgent||\"\",q.language=navigator.language||\"\";let x=T();for(let B in x)q[B]=x[B];if(q.scroll_events=[],q.custom_events=[],q.scroll_depth=0,z=!1,C=Date.now(),typeof performance<\"u\"&&performance.getEntriesByType){let B=performance.getEntriesByType(\"navigation\")[0];if(B)if(q.dom_ready=Math.round(B.domContentLoadedEventEnd-B.startTime),q.ttfb=Math.round(B.responseStart-B.requestStart),B.loadEventEnd>0)q.load_time=Math.round(B.loadEventEnd-B.startTime);else setTimeout(()=>{let G=performance.getEntriesByType(\"navigation\")[0];if(G&&G.loadEventEnd>0)q.load_time=Math.round(G.loadEventEnd-G.startTime)},0)}if(J.isDevmode)console.debug(\"[Agentuity Analytics] Session started (full init):\",q.id)}function j(){if(q.id=O(),q.timestamp=Date.now(),q.scroll_events=[],q.custom_events=[],q.scroll_depth=0,q.time_on_page=0,z=!1,C=Date.now(),J.isDevmode)console.debug(\"[Agentuity Analytics] Session started (soft reset):\",q.id)}fetch(\"https://agentuity.sh/location\").then((x)=>x.json()).then((x)=>{K=x;try{sessionStorage.setItem(\"agentuity_geo\",JSON.stringify(x))}catch{}}).catch(()=>{try{let x=sessionStorage.getItem(\"agentuity_geo\");if(x)K=JSON.parse(x)}catch{}});try{let x=sessionStorage.getItem(\"agentuity_geo\");if(x)K=JSON.parse(x)}catch{}function N(){return X.__AGENTUITY_SESSION__}function L(x=!1){if(z&&!x){if(J.isDevmode)console.debug(\"[Agentuity Analytics] send() skipped - already sent\");return}if(J.sampleRate!==void 0&&J.sampleRate<1&&Math.random()>J.sampleRate)return;if(z=!0,q.time_on_page=Date.now()-C,K){if(q.country=K.country||\"\",K.country_latitude)q.country_latitude=parseFloat(String(K.country_latitude));if(K.country_longitude)q.country_longitude=parseFloat(String(K.country_longitude));if(q.region=K.region||\"\",K.region_latitude)q.region_latitude=parseFloat(String(K.region_latitude));if(K.region_longitude)q.region_longitude=parseFloat(String(K.region_longitude));if(q.city=K.city||\"\",K.city_latitude)q.city_latitude=parseFloat(String(K.city_latitude));if(K.city_longitude)q.city_longitude=parseFloat(String(K.city_longitude));if(q.timezone=K.timezone||\"\",K.latitude)q.latitude=parseFloat(String(K.latitude));if(K.longitude)q.longitude=parseFloat(String(K.longitude))}if(q.cls)q.cls=Math.round(q.cls*1000)/1000;let B=N(),G=localStorage.getItem(\"agentuity_visitor_id\")||\"vid_\"+O();try{localStorage.setItem(\"agentuity_visitor_id\",G)}catch{}let W={org_id:J.orgId,project_id:J.projectId,thread_id:B?.threadId||\"\",visitor_id:G,user_id:Q,user_traits:M,is_devmode:J.isDevmode,pageview:q};try{sessionStorage.removeItem(\"agentuity_pending_pageview\")}catch{}if(J.isDevmode){console.debug(\"[Agentuity Analytics]\",JSON.stringify(W,null,2));return}let _=JSON.stringify(W);if(navigator.sendBeacon)navigator.sendBeacon(\"/_agentuity/webanalytics/collect\",_);else fetch(\"/_agentuity/webanalytics/collect\",{method:\"POST\",body:_,keepalive:!0}).catch(()=>{})}if(V.addEventListener(\"visibilitychange\",()=>{if(J.isDevmode)console.debug(\"[Agentuity Analytics] visibilitychange:\",V.visibilityState,\"sent:\",z);if(V.visibilityState===\"hidden\")L();else if(V.visibilityState===\"visible\")j()}),X.addEventListener(\"pagehide\",()=>{if(J.isDevmode){console.debug(\"[Agentuity Analytics] pagehide event\");try{sessionStorage.setItem(\"agentuity_last_event\",`pagehide:${Date.now()}:${q.path}`)}catch{}}L()}),X.addEventListener(\"beforeunload\",()=>{if(J.isDevmode){console.debug(\"[Agentuity Analytics] beforeunload event\");try{sessionStorage.setItem(\"agentuity_last_event\",`beforeunload:${Date.now()}:${q.path}`)}catch{}}L()}),J.isDevmode)try{let x=sessionStorage.getItem(\"agentuity_last_event\");if(x)console.debug(\"[Agentuity Analytics] Previous page event:\",x),sessionStorage.removeItem(\"agentuity_last_event\")}catch{}try{let x=sessionStorage.getItem(\"agentuity_pending_pageview\");if(x){sessionStorage.removeItem(\"agentuity_pending_pageview\");let B=JSON.parse(x);if(B.pageview?.path!==location.pathname)if(J.isDevmode)console.debug(\"[Agentuity Analytics] Sending unsent data from previous page:\",B.pageview?.path),console.debug(\"[Agentuity Analytics]\",JSON.stringify(B,null,2));else{let G=JSON.stringify(B);if(navigator.sendBeacon)navigator.sendBeacon(\"/_agentuity/webanalytics/collect\",G)}}}catch{}function H(){try{q.time_on_page=Date.now()-C;let x=N(),B=localStorage.getItem(\"agentuity_visitor_id\")||\"vid_\"+O(),G={org_id:J.orgId,project_id:J.projectId,thread_id:x?.threadId||\"\",visitor_id:B,user_id:Q,user_traits:M,is_devmode:J.isDevmode,pageview:{...q}};sessionStorage.setItem(\"agentuity_pending_pageview\",JSON.stringify(G))}catch{}}if(setInterval(H,2000),V.addEventListener(\"click\",H,{passive:!0}),V.addEventListener(\"scroll\",H,{passive:!0,once:!0}),J.isDevmode)console.debug(\"[Agentuity Analytics] Beacon initialized, visibility:\",V.visibilityState);if(J.trackScroll!==!1){let B=function(){let G=X.scrollY||V.documentElement.scrollTop,W=V.documentElement.scrollHeight-V.documentElement.clientHeight;return W<=0?100:Math.min(100,Math.round(G/W*100))};var D=B;let x=new Set;X.addEventListener(\"scroll\",()=>{let G=B();if(G>q.scroll_depth)q.scroll_depth=G;[25,50,75,100].forEach((W)=>{if(G>=W&&!x.has(W))x.add(W),q.scroll_events.push({depth:W,timestamp:Date.now()-C})})},{passive:!0})}if(J.trackWebVitals!==!1&&typeof PerformanceObserver<\"u\"){try{let x=new PerformanceObserver((B)=>{B.getEntries().forEach((G)=>{if(G.name===\"first-contentful-paint\")q.fcp=Math.round(G.startTime),x.disconnect()})});x.observe({type:\"paint\",buffered:!0})}catch{}try{new PerformanceObserver((x)=>{let B=x.getEntries(),G=B[B.length-1];if(G)q.lcp=Math.round(G.startTime)}).observe({type:\"largest-contentful-paint\",buffered:!0})}catch{}try{new PerformanceObserver((x)=>{x.getEntries().forEach((B)=>{let G=B;if(!G.hadRecentInput&&G.value)q.cls=(q.cls||0)+G.value})}).observe({type:\"layout-shift\",buffered:!0})}catch{}try{new PerformanceObserver((x)=>{x.getEntries().forEach((B)=>{let G=B;if(G.duration&&G.duration>(q.inp||0))q.inp=Math.round(G.duration)})}).observe({type:\"event\",buffered:!0})}catch{}}if(J.trackSPANavigation!==!1){let _=function(){let $=location.pathname+location.search;if($!==G){if(J.isDevmode)console.debug(\"[Agentuity Analytics] SPA navigation:\",G,\"->\",$);L(!0),G=$,W=location.href,U()}};var R=_;let{pushState:x,replaceState:B}=history,G=location.pathname+location.search,W=location.href;if(J.isDevmode)console.debug(\"[Agentuity Analytics] SPA tracking enabled, initial path:\",G);history.pushState=function(...$){x.apply(this,$),setTimeout(_,0)},history.replaceState=function(...$){B.apply(this,$),setTimeout(_,0)},X.addEventListener(\"popstate\",_),setInterval(()=>{if(location.href!==W)W=location.href,_()},200)}if(J.trackClicks!==!1)V.addEventListener(\"click\",(x)=>{let B=x.target;if(!B)return;let G=B.closest(\"[data-analytics]\");if(!G)return;if(q.custom_events.length<1000)q.custom_events.push({timestamp:Date.now(),name:\"click:\"+G.getAttribute(\"data-analytics\"),data:\"\"})},!0);if(J.trackErrors!==!1)X.addEventListener(\"error\",(x)=>{if(q.custom_events.length<1000)q.custom_events.push({timestamp:Date.now(),name:\"error:js_error\",data:JSON.stringify({message:x.message||\"Unknown\",filename:x.filename||\"\",lineno:x.lineno||0})})}),X.addEventListener(\"unhandledrejection\",(x)=>{if(q.custom_events.length<1000)q.custom_events.push({timestamp:Date.now(),name:\"error:unhandled_rejection\",data:JSON.stringify({message:x.reason instanceof Error?x.reason.message:String(x.reason)})})});if(V.readyState===\"complete\")U();else X.addEventListener(\"load\",U);X.agentuityAnalytics={track(x,B){if(q.custom_events.length<1000)q.custom_events.push({timestamp:Date.now(),name:x,data:A(B)})},identify(x,B){if(Q=x,B){M={};for(let[G,W]of Object.entries(B))M[G]=String(W)}},flush:()=>L(!0)}})();})();\n";
4
4
 
5
5
  export function validateBeaconScript() {
6
6
  if (!BEACON_SCRIPT || BEACON_SCRIPT.length === 0) {
package/dist/beacon.js CHANGED
@@ -1,2 +1,2 @@
1
- /* @agentuity/frontend v1.0.0 */
1
+ /* @agentuity/frontend v1.0.2 */
2
2
  (()=>{function A(X){if(X===void 0||X===null)return"";try{let V=new WeakSet;return JSON.stringify(X,(Y,Z)=>{if(typeof Z==="object"&&Z!==null){if(V.has(Z))return"[Circular]";V.add(Z)}return Z})}catch(V){let Y=V instanceof Error?V.message:String(V);return console.warn("[Agentuity Analytics] Failed to stringify properties:",Y),`[unserializable: ${Y}]`}}(function(){let X=window,V=document,Y=X.__AGENTUITY_ANALYTICS__;if(!Y||!Y.enabled)return;let Z=X;if(Y.isDevmode)console.debug("[Agentuity Analytics] Script loaded, init flag:",Z.__AGENTUITY_BEACON_INIT__,"path:",location.pathname);if(Z.__AGENTUITY_BEACON_INIT__){if(Y.isDevmode)console.debug("[Agentuity Analytics] Already initialized, skipping");return}Z.__AGENTUITY_BEACON_INIT__=!0;let J=Y,K=null,z=!1,C=Date.now(),Q="",M={},q={id:"",timestamp:0,timezone_offset:0,url:"",path:"",referrer:"",title:"",screen_width:0,screen_height:0,viewport_width:0,viewport_height:0,device_pixel_ratio:1,user_agent:"",language:"",scroll_depth:0,time_on_page:0,scroll_events:[],custom_events:[]};function O(){return crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function T(){let x=new URLSearchParams(location.search),B={};return["utm_source","utm_medium","utm_campaign","utm_term","utm_content"].forEach((G)=>{let W=x.get(G);if(W)B[G]=W}),B}function F(x){if(!x)return"";try{let B=new URL(x);return B.origin+B.pathname}catch{return x.split("?")[0]??x}}function U(){q.id=O(),q.timestamp=Date.now(),q.timezone_offset=new Date().getTimezoneOffset(),q.url=F(location.href),q.path=location.pathname,q.referrer=F(V.referrer),q.title=V.title||"",q.screen_width=screen.width||0,q.screen_height=screen.height||0,q.viewport_width=innerWidth||0,q.viewport_height=innerHeight||0,q.device_pixel_ratio=devicePixelRatio||1,q.user_agent=navigator.userAgent||"",q.language=navigator.language||"";let x=T();for(let B in x)q[B]=x[B];if(q.scroll_events=[],q.custom_events=[],q.scroll_depth=0,z=!1,C=Date.now(),typeof performance<"u"&&performance.getEntriesByType){let B=performance.getEntriesByType("navigation")[0];if(B)if(q.dom_ready=Math.round(B.domContentLoadedEventEnd-B.startTime),q.ttfb=Math.round(B.responseStart-B.requestStart),B.loadEventEnd>0)q.load_time=Math.round(B.loadEventEnd-B.startTime);else setTimeout(()=>{let G=performance.getEntriesByType("navigation")[0];if(G&&G.loadEventEnd>0)q.load_time=Math.round(G.loadEventEnd-G.startTime)},0)}if(J.isDevmode)console.debug("[Agentuity Analytics] Session started (full init):",q.id)}function j(){if(q.id=O(),q.timestamp=Date.now(),q.scroll_events=[],q.custom_events=[],q.scroll_depth=0,q.time_on_page=0,z=!1,C=Date.now(),J.isDevmode)console.debug("[Agentuity Analytics] Session started (soft reset):",q.id)}fetch("https://agentuity.sh/location").then((x)=>x.json()).then((x)=>{K=x;try{sessionStorage.setItem("agentuity_geo",JSON.stringify(x))}catch{}}).catch(()=>{try{let x=sessionStorage.getItem("agentuity_geo");if(x)K=JSON.parse(x)}catch{}});try{let x=sessionStorage.getItem("agentuity_geo");if(x)K=JSON.parse(x)}catch{}function N(){return X.__AGENTUITY_SESSION__}function L(x=!1){if(z&&!x){if(J.isDevmode)console.debug("[Agentuity Analytics] send() skipped - already sent");return}if(J.sampleRate!==void 0&&J.sampleRate<1&&Math.random()>J.sampleRate)return;if(z=!0,q.time_on_page=Date.now()-C,K){if(q.country=K.country||"",K.country_latitude)q.country_latitude=parseFloat(String(K.country_latitude));if(K.country_longitude)q.country_longitude=parseFloat(String(K.country_longitude));if(q.region=K.region||"",K.region_latitude)q.region_latitude=parseFloat(String(K.region_latitude));if(K.region_longitude)q.region_longitude=parseFloat(String(K.region_longitude));if(q.city=K.city||"",K.city_latitude)q.city_latitude=parseFloat(String(K.city_latitude));if(K.city_longitude)q.city_longitude=parseFloat(String(K.city_longitude));if(q.timezone=K.timezone||"",K.latitude)q.latitude=parseFloat(String(K.latitude));if(K.longitude)q.longitude=parseFloat(String(K.longitude))}if(q.cls)q.cls=Math.round(q.cls*1000)/1000;let B=N(),G=localStorage.getItem("agentuity_visitor_id")||"vid_"+O();try{localStorage.setItem("agentuity_visitor_id",G)}catch{}let W={org_id:J.orgId,project_id:J.projectId,thread_id:B?.threadId||"",visitor_id:G,user_id:Q,user_traits:M,is_devmode:J.isDevmode,pageview:q};try{sessionStorage.removeItem("agentuity_pending_pageview")}catch{}if(J.isDevmode){console.debug("[Agentuity Analytics]",JSON.stringify(W,null,2));return}let _=JSON.stringify(W);if(navigator.sendBeacon)navigator.sendBeacon("/_agentuity/webanalytics/collect",_);else fetch("/_agentuity/webanalytics/collect",{method:"POST",body:_,keepalive:!0}).catch(()=>{})}if(V.addEventListener("visibilitychange",()=>{if(J.isDevmode)console.debug("[Agentuity Analytics] visibilitychange:",V.visibilityState,"sent:",z);if(V.visibilityState==="hidden")L();else if(V.visibilityState==="visible")j()}),X.addEventListener("pagehide",()=>{if(J.isDevmode){console.debug("[Agentuity Analytics] pagehide event");try{sessionStorage.setItem("agentuity_last_event",`pagehide:${Date.now()}:${q.path}`)}catch{}}L()}),X.addEventListener("beforeunload",()=>{if(J.isDevmode){console.debug("[Agentuity Analytics] beforeunload event");try{sessionStorage.setItem("agentuity_last_event",`beforeunload:${Date.now()}:${q.path}`)}catch{}}L()}),J.isDevmode)try{let x=sessionStorage.getItem("agentuity_last_event");if(x)console.debug("[Agentuity Analytics] Previous page event:",x),sessionStorage.removeItem("agentuity_last_event")}catch{}try{let x=sessionStorage.getItem("agentuity_pending_pageview");if(x){sessionStorage.removeItem("agentuity_pending_pageview");let B=JSON.parse(x);if(B.pageview?.path!==location.pathname)if(J.isDevmode)console.debug("[Agentuity Analytics] Sending unsent data from previous page:",B.pageview?.path),console.debug("[Agentuity Analytics]",JSON.stringify(B,null,2));else{let G=JSON.stringify(B);if(navigator.sendBeacon)navigator.sendBeacon("/_agentuity/webanalytics/collect",G)}}}catch{}function H(){try{q.time_on_page=Date.now()-C;let x=N(),B=localStorage.getItem("agentuity_visitor_id")||"vid_"+O(),G={org_id:J.orgId,project_id:J.projectId,thread_id:x?.threadId||"",visitor_id:B,user_id:Q,user_traits:M,is_devmode:J.isDevmode,pageview:{...q}};sessionStorage.setItem("agentuity_pending_pageview",JSON.stringify(G))}catch{}}if(setInterval(H,2000),V.addEventListener("click",H,{passive:!0}),V.addEventListener("scroll",H,{passive:!0,once:!0}),J.isDevmode)console.debug("[Agentuity Analytics] Beacon initialized, visibility:",V.visibilityState);if(J.trackScroll!==!1){let B=function(){let G=X.scrollY||V.documentElement.scrollTop,W=V.documentElement.scrollHeight-V.documentElement.clientHeight;return W<=0?100:Math.min(100,Math.round(G/W*100))};var D=B;let x=new Set;X.addEventListener("scroll",()=>{let G=B();if(G>q.scroll_depth)q.scroll_depth=G;[25,50,75,100].forEach((W)=>{if(G>=W&&!x.has(W))x.add(W),q.scroll_events.push({depth:W,timestamp:Date.now()-C})})},{passive:!0})}if(J.trackWebVitals!==!1&&typeof PerformanceObserver<"u"){try{let x=new PerformanceObserver((B)=>{B.getEntries().forEach((G)=>{if(G.name==="first-contentful-paint")q.fcp=Math.round(G.startTime),x.disconnect()})});x.observe({type:"paint",buffered:!0})}catch{}try{new PerformanceObserver((x)=>{let B=x.getEntries(),G=B[B.length-1];if(G)q.lcp=Math.round(G.startTime)}).observe({type:"largest-contentful-paint",buffered:!0})}catch{}try{new PerformanceObserver((x)=>{x.getEntries().forEach((B)=>{let G=B;if(!G.hadRecentInput&&G.value)q.cls=(q.cls||0)+G.value})}).observe({type:"layout-shift",buffered:!0})}catch{}try{new PerformanceObserver((x)=>{x.getEntries().forEach((B)=>{let G=B;if(G.duration&&G.duration>(q.inp||0))q.inp=Math.round(G.duration)})}).observe({type:"event",buffered:!0})}catch{}}if(J.trackSPANavigation!==!1){let _=function(){let $=location.pathname+location.search;if($!==G){if(J.isDevmode)console.debug("[Agentuity Analytics] SPA navigation:",G,"->",$);L(!0),G=$,W=location.href,U()}};var R=_;let{pushState:x,replaceState:B}=history,G=location.pathname+location.search,W=location.href;if(J.isDevmode)console.debug("[Agentuity Analytics] SPA tracking enabled, initial path:",G);history.pushState=function(...$){x.apply(this,$),setTimeout(_,0)},history.replaceState=function(...$){B.apply(this,$),setTimeout(_,0)},X.addEventListener("popstate",_),setInterval(()=>{if(location.href!==W)W=location.href,_()},200)}if(J.trackClicks!==!1)V.addEventListener("click",(x)=>{let B=x.target;if(!B)return;let G=B.closest("[data-analytics]");if(!G)return;if(q.custom_events.length<1000)q.custom_events.push({timestamp:Date.now(),name:"click:"+G.getAttribute("data-analytics"),data:""})},!0);if(J.trackErrors!==!1)X.addEventListener("error",(x)=>{if(q.custom_events.length<1000)q.custom_events.push({timestamp:Date.now(),name:"error:js_error",data:JSON.stringify({message:x.message||"Unknown",filename:x.filename||"",lineno:x.lineno||0})})}),X.addEventListener("unhandledrejection",(x)=>{if(q.custom_events.length<1000)q.custom_events.push({timestamp:Date.now(),name:"error:unhandled_rejection",data:JSON.stringify({message:x.reason instanceof Error?x.reason.message:String(x.reason)})})});if(V.readyState==="complete")U();else X.addEventListener("load",U);X.agentuityAnalytics={track(x,B){if(q.custom_events.length<1000)q.custom_events.push({timestamp:Date.now(),name:x,data:A(B)})},identify(x,B){if(Q=x,B){M={};for(let[G,W]of Object.entries(B))M[G]=String(W)}},flush:()=>L(!0)}})();})();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,8 @@ export { type RouteRegistry, type WebSocketRouteRegistry, type SSERouteRegistry,
6
6
  export { jsonEqual } from './memo';
7
7
  export { WebSocketManager, type MessageHandler as WebSocketMessageHandler, type WebSocketCallbacks, type WebSocketManagerOptions, type WebSocketManagerState, } from './websocket-manager';
8
8
  export { EventStreamManager, type MessageHandler as EventStreamMessageHandler, type EventStreamCallbacks, type EventStreamManagerOptions, type EventStreamManagerState, } from './eventstream-manager';
9
+ export { WebRTCManager, UserMediaSource, DisplayMediaSource, CustomStreamSource, type WebRTCManagerOptions, type WebRTCManagerState, type WebRTCClientCallbacks, type TrackSource, } from './webrtc-manager';
10
+ export type { WebRTCConnectionState, WebRTCDisconnectReason, DataChannelConfig, DataChannelMessage, DataChannelState, ConnectionQualitySummary, RecordingOptions, RecordingHandle, RecordingState, } from '@agentuity/core';
9
11
  export { createClient } from './client/index';
10
12
  export type { Client, ClientOptions, RouteEndpoint, WebSocketClient, EventStreamClient, StreamClient, EventHandler, } from './client/types';
11
13
  export { getAnalytics, track, getVisitorId, isOptedOut, setOptOut, getUTMParams, type AnalyticsClient, type AnalyticsPayload, type AnalyticsPageConfig, type PageViewPayload, type ScrollEvent, type AnalyticsCustomEvent, type GeoLocation, } from './analytics';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EACN,gBAAgB,EAChB,KAAK,cAAc,IAAI,uBAAuB,EAC9C,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,kBAAkB,EAClB,KAAK,cAAc,IAAI,yBAAyB,EAChD,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,GAC5B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACX,MAAM,EACN,aAAa,EACb,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,GACZ,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACN,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,WAAW,GAChB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EACN,gBAAgB,EAChB,KAAK,cAAc,IAAI,uBAAuB,EAC9C,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,kBAAkB,EAClB,KAAK,cAAc,IAAI,yBAAyB,EAChD,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,GAChB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACX,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,cAAc,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACX,MAAM,EACN,aAAa,EACb,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,GACZ,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACN,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,WAAW,GAChB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ export { createReconnectManager } from './reconnect';
5
5
  export { jsonEqual } from './memo';
6
6
  export { WebSocketManager, } from './websocket-manager';
7
7
  export { EventStreamManager, } from './eventstream-manager';
8
+ export { WebRTCManager, UserMediaSource, DisplayMediaSource, CustomStreamSource, } from './webrtc-manager';
8
9
  // Export client implementation (local to this package)
9
10
  export { createClient } from './client/index';
10
11
  // Export analytics (beacon is bundled separately via beacon-standalone.ts)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAgD,MAAM,aAAa,CAAC;AAOnG,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EACN,gBAAgB,GAKhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,kBAAkB,GAKlB,MAAM,uBAAuB,CAAC;AAE/B,uDAAuD;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAW9C,2EAA2E;AAC3E,OAAO,EACN,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,YAAY,GAQZ,MAAM,aAAa,CAAC;AAErB,8CAA8C;AAC9C,wEAAwE;AACxE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAgD,MAAM,aAAa,CAAC;AAOnG,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EACN,gBAAgB,GAKhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,kBAAkB,GAKlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GAKlB,MAAM,kBAAkB,CAAC;AAe1B,uDAAuD;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAW9C,2EAA2E;AAC3E,OAAO,EACN,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,YAAY,GAQZ,MAAM,aAAa,CAAC;AAErB,8CAA8C;AAC9C,wEAAwE;AACxE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC"}