@minicode-dev/chat 0.1.11 → 0.1.13

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.
Files changed (33) hide show
  1. package/README.md +102 -6
  2. package/assets/sounds/effects/avalanche.mp3 +0 -0
  3. package/dist/chunks/{TanksGameCard-B47ZQcSr.js → TanksGameCard-GrqmdwJ7.js} +2 -2
  4. package/dist/chunks/{TanksGameCard-B47ZQcSr.js.map → TanksGameCard-GrqmdwJ7.js.map} +1 -1
  5. package/dist/chunks/TanksLiveGameCard-DSmQcUMh.js +1225 -0
  6. package/dist/chunks/TanksLiveGameCard-DSmQcUMh.js.map +1 -0
  7. package/dist/chunks/{WebRtcLab-lijo_Rta.js → WebRtcLab-ClRSYt4E.js} +2 -2
  8. package/dist/chunks/{WebRtcLab-lijo_Rta.js.map → WebRtcLab-ClRSYt4E.js.map} +1 -1
  9. package/dist/chunks/avalancheScene3d-Dnl2E3EA.js +1878 -0
  10. package/dist/chunks/avalancheScene3d-Dnl2E3EA.js.map +1 -0
  11. package/dist/chunks/createLiveScene-819NWv84.js +365 -0
  12. package/dist/chunks/createLiveScene-819NWv84.js.map +1 -0
  13. package/dist/chunks/createPeerLink-DBVs_yvQ.js +1136 -0
  14. package/dist/chunks/createPeerLink-DBVs_yvQ.js.map +1 -0
  15. package/dist/chunks/{createTankScene-CV7Brxmt.js → createTankScene-6asWHKFf.js} +120 -119
  16. package/dist/chunks/{createTankScene-CV7Brxmt.js.map → createTankScene-6asWHKFf.js.map} +1 -1
  17. package/dist/chunks/fx-BNJvJYOu.js +871 -0
  18. package/dist/chunks/fx-BNJvJYOu.js.map +1 -0
  19. package/dist/chunks/tank-DIn6Jyt8.js +605 -0
  20. package/dist/chunks/tank-DIn6Jyt8.js.map +1 -0
  21. package/dist/index.js +1581 -1184
  22. package/dist/index.js.map +1 -1
  23. package/dist/styles.css +1 -1
  24. package/index.d.ts +23 -3
  25. package/package.json +1 -1
  26. package/dist/chunks/TanksLiveGameCard-BNJqWt1z.js +0 -915
  27. package/dist/chunks/TanksLiveGameCard-BNJqWt1z.js.map +0 -1
  28. package/dist/chunks/createLiveScene-CJQtq54t.js +0 -364
  29. package/dist/chunks/createLiveScene-CJQtq54t.js.map +0 -1
  30. package/dist/chunks/createPeerLink-CL7VZuHS.js +0 -480
  31. package/dist/chunks/createPeerLink-CL7VZuHS.js.map +0 -1
  32. package/dist/chunks/fx-BHsl4S_J.js +0 -1470
  33. package/dist/chunks/fx-BHsl4S_J.js.map +0 -1
package/index.d.ts CHANGED
@@ -121,7 +121,7 @@ export interface ChatCustomEmoji {
121
121
  [key: string]: any;
122
122
  }
123
123
 
124
- export type ChatEffectId = 'nudge' | 'pig-disco' | 'confetti';
124
+ export type ChatEffectId = 'nudge' | 'pig-disco' | 'confetti' | 'avalanche';
125
125
  export interface ChatEffectEvent { effectId: ChatEffectId; id: string; sentAt: number; /** Countdown deadline, at most 24 hours after sentAt. */ endsAt?: number; sound?: boolean; }
126
126
  export interface ChatEffectDefinition {
127
127
  id: ChatEffectId;
@@ -526,14 +526,29 @@ export interface PeerSignaling {
526
526
  dispose?(): void;
527
527
  }
528
528
  export type PeerLinkPhase = 'idle' | 'listening' | 'calling' | 'negotiating' | 'connected' | 'restarting' | 'reconnecting' | 'failed';
529
+ export interface ManualTurnOptions {
530
+ /** Remaining validity in seconds; omit when the provider response has no known expiry. */
531
+ ttlSeconds?: number;
532
+ /** Default all. Use relay only to diagnose TURN connectivity. */
533
+ iceTransportPolicy?: RTCIceTransportPolicy;
534
+ }
535
+ export interface ManualTurnState {
536
+ status: 'idle' | 'waiting_peer' | 'sharing' | 'applying' | 'synchronized' | 'failed';
537
+ shared: boolean; received: boolean; expiresAt: number | null; error: string | null;
538
+ }
529
539
  export interface PeerLinkState {
530
540
  phase: PeerLinkPhase; role: 'caller' | 'answerer' | null; sid: string | null; gen: number;
531
541
  tabId: string; peerTab: string | null; ice: string; connection: string; signalingState: string; gathering: string;
532
- route: { local: string | null; remote: string | null; protocol: string | null; relay: boolean; label: string } | null;
542
+ route: { local: string | null; remote: string | null; protocol: string | null; relayProtocol?: string | null; relay: boolean; label: string } | null;
533
543
  rtt: number | null; statsRtt: number | null; reconnects: number; restarts: number; error: string | null;
534
544
  move: { sent: number; dropped: number; received: number; outOfOrder: number; lossPct: number; hzIn: number; hzOut: number };
535
545
  signals: { sent: number; received: number; sendFailures: number; retransmits: number; duplicates: number; ignored: number; invalid: number; tooLarge: number; maxLength: number };
536
546
  events: { sent: number; received: number };
547
+ turnConfigured?: boolean; manualTurn?: ManualTurnState;
548
+ candidates?: { local: number; remote: number; accepted: number; rejected: number; localRelay: number; remoteRelay: number };
549
+ iceErrors?: { code: number; stage: 'gathering' | 'remote_candidate' }[];
550
+ channels?: { move: string; events: string };
551
+ startedAt?: number | null; connectedAt?: number | null; elapsedMs?: number;
537
552
  }
538
553
  export interface PeerLink {
539
554
  tabId: string;
@@ -542,13 +557,18 @@ export interface PeerLink {
542
557
  sendMove(payload: unknown): boolean;
543
558
  sendEvent(payload: unknown): boolean;
544
559
  restartIce(): void;
560
+ /** Shares temporary ICE credentials with the bound peer. Requires HTTPS/Web Crypto. */
561
+ configureTurn(input: string | { iceServers: RTCIceServer[]; expiresAt?: number | string | null; expiresIn?: number; ttl?: number } | { result: { iceServers: RTCIceServer[] } }, options?: ManualTurnOptions): Promise<{ expiresAt: number | null }>;
562
+ /** Requests recovery through the configured authority without creating competing calls. */
563
+ requestReconnect(): void;
564
+ clearManualTurn(): void;
545
565
  getState(): PeerLinkState;
546
566
  hangup(): void;
547
567
  destroy(): void;
548
568
  }
549
569
  export function createPeerLink(options: {
550
570
  signaling: PeerSignaling; selfId: string; peerId: string; roomId?: string | null; tabId?: string;
551
- iceServers?: RTCIceServer[]; iceTransportPolicy?: RTCIceTransportPolicy; autoReconnect?: boolean; listen?: boolean;
571
+ iceServers?: RTCIceServer[]; iceTransportPolicy?: RTCIceTransportPolicy; autoReconnect?: boolean; listen?: boolean; configurationAuthority?: boolean;
552
572
  RTCPeerConnectionImpl?: typeof RTCPeerConnection;
553
573
  onChange?: (state: PeerLinkState) => void; onMove?: (payload: any, meta: { seq: number }) => void;
554
574
  onEvent?: (payload: any) => void; log?: (line: string) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minicode-dev/chat",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "private": false,
5
5
  "description": "LIRA real-time chat (WebSocket, media, games) as a React package.",
6
6
  "author": "Minicode",