@100mslive/hms-video-store 0.14.3-alpha.1 → 0.14.4-alpha.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 CHANGED
@@ -1,4 +1,4 @@
1
- # 100ms Reactive Store
1
+ # 100ms Web SDK
2
2
 
3
3
  [![NPM](https://badgen.net/npm/v/@100mslive/hms-video-store?color=green)](https://www.npmjs.com/package/@100mslive/hms-video-store)
4
4
  [![Lint, Test and Build](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml/badge.svg)](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml)
@@ -8,7 +8,7 @@
8
8
 
9
9
  ![Architecture](images/architecture.png)
10
10
 
11
- This is an addon to the core sdk provided by 100ms. It abstracts away the
11
+ This is the core sdk helping you power your live interactions using 100ms. It abstracts away the
12
12
  intricacies of data management and provides
13
13
  a flux based reactive data store where data flows in only one direction.
14
14
 
@@ -20,10 +20,7 @@ participant. Local states and improper handling of actions or missing corner cas
20
20
  state duplication etc. have a high potential to make the data mutually inconsistent
21
21
  and out of sync with the source of truth.
22
22
 
23
- This is an opinionated reactive layer on top of our core sdk which takes some
24
- control in order to provide an even easier usability and integration experience.
25
- Your UI components can forget about local states, and tracking what actions are happening,
26
- instead focusing only on giving the best possible experience to the end users.
23
+ Check the [SDK Mental Model](https://www.100ms.live/docs/javascript/v2/quickstart/mental-model) to build a mental model of how everything works and what all the SDK abstracts away.
27
24
 
28
25
  There are two important pieces, store for what you want to show and actions for what
29
26
  you want to do -
@@ -72,8 +69,7 @@ hmsStore.subscribe(onSpeakerUpdate, selectDominantSpeaker);
72
69
  ## Framework specific wrappers
73
70
 
74
71
  Most of the popular javascript frameworks are reactive in nature and have some
75
- kind of associated concept which can simplify development further. We plan to
76
- provide a few framework specific wrappers as well for smoother integration.
72
+ kind of associated concept which can simplify development further.
77
73
 
78
74
  ### React
79
75
 
@@ -95,6 +91,8 @@ function join() {
95
91
  }
96
92
  ```
97
93
 
94
+ Check more over at [react-sdk](https://github.com/100mslive/web-sdks/tree/main/packages/react-sdk) and the [docs](https://www.100ms.live/docs/javascript/v2/quickstart/react-quickstart).
95
+
98
96
 
99
97
  ## Out of Box Support for [Redux Devtools Extension](https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd?hl=en)
100
98
 
@@ -104,4 +102,4 @@ function join() {
104
102
  ### Store Graph
105
103
  ![Store State](images/store-graph.png)
106
104
 
107
- Refer to [docs](https://www.100ms.live/docs/javascript/v2/quickstart/javascript-quickstart) for more detailed guide
105
+ Refer to [docs](https://www.100ms.live/docs/javascript/v2/quickstart/javascript-quickstart) for more detailed guide
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var so=Object.create;var bt=Object.defineProperty,ao=Object.defineProperties,no=Object.getOwnPropertyDescriptor,oo=Object.getOwnPropertyDescriptors,co=Object.getOwnPropertyNames,gi=Object.getOwnPropertySymbols,ea=Object.getPrototypeOf,Gr=Object.prototype.hasOwnProperty,ta=Object.prototype.propertyIsEnumerable,lo=Reflect.get;var Zs=(a,e,t)=>e in a?bt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,m=(a,e)=>{for(var t in e||(e={}))Gr.call(e,t)&&Zs(a,t,e[t]);if(gi)for(var t of gi(e))ta.call(e,t)&&Zs(a,t,e[t]);return a},M=(a,e)=>ao(a,oo(e));var Wr=(a,e)=>{var t={};for(var i in a)Gr.call(a,i)&&e.indexOf(i)<0&&(t[i]=a[i]);if(a!=null&&gi)for(var i of gi(a))e.indexOf(i)<0&&ta.call(a,i)&&(t[i]=a[i]);return t};var uo=(a,e)=>()=>{try{return e||a((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},po=(a,e)=>{for(var t in e)bt(a,t,{get:e[t],enumerable:!0})},ia=(a,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of co(e))!Gr.call(a,r)&&r!==t&&bt(a,r,{get:()=>e[r],enumerable:!(i=no(e,r))||i.enumerable});return a};var $e=(a,e,t)=>(t=a!=null?so(ea(a)):{},ia(e||!a||!a.__esModule?bt(t,"default",{value:a,enumerable:!0}):t,a)),ho=a=>ia(bt({},"__esModule",{value:!0}),a);var pe=(a,e,t)=>lo(ea(a),t,e);var c=(a,e,t)=>new Promise((i,r)=>{var s=d=>{try{o(t.next(d))}catch(u){r(u)}},n=d=>{try{o(t.throw(d))}catch(u){r(u)}},o=d=>d.done?i(d.value):Promise.resolve(d.value).then(s,n);o((t=t.apply(a,e)).next())});var Zr=uo((tu,vo)=>{vo.exports={version:"0.14.3-alpha.1",license:"MIT",repository:{type:"git",url:"https://github.com/100mslive/web-sdks.git",directory:"packages/hms-video-store"},main:"dist/index.cjs.js",module:"dist/index.js",typings:"dist/index.d.ts",files:["dist"],engines:{node:">=12"},exports:{".":{require:"./dist/index.cjs.js",import:"./dist/index.js",default:"./dist/index.js"}},sideEffects:!1,scripts:{prestart:"rm -rf dist && yarn types:build",start:'concurrently "yarn dev" "yarn types"',dev:"node ../../scripts/dev","build:only":"node ../../scripts/build",build:"yarn build:only && yarn types:build",types:"tsc -w","types:build":"tsc -p tsconfig.json",format:"prettier --write src/**/*.ts",test:"jest --maxWorkers=1","test:watch":"jest --watch","test:coverage":"jest --coverage",lint:"eslint -c ../../.eslintrc .","lint:fix":"yarn lint --fix",prepare:"yarn build",size:"size-limit",analyze:"size-limit --why",docs:"rm -rf ./docs && typedoc && rm -f ./docs/README.md && mkdir ./docs/home &&mv ./docs/modules.md ./docs/home/content.md && node ../../scripts/docs-store && npx prettier --write './docs/**/*'"},name:"@100mslive/hms-video-store",author:"100ms",dependencies:{eventemitter2:"^6.4.9",immer:"^9.0.6","lodash.isequal":"^4.5.0",reselect:"4.0.0","sdp-transform":"^2.14.1","ua-parser-js":"^2.0.6",uuid:"^11.1.1","webrtc-adapter":"^8.0.0",zustand:"3.5.7"},devDependencies:{"@types/dom-screen-wake-lock":"^1.0.1","@types/lodash.isequal":"^4.5.8","@types/sdp-transform":"^2.4.4","@types/ua-parser-js":"^0.7.39","@types/uuid":"^8.3.0","jest-canvas-mock":"^2.3.1","jsdom-worker":"^0.3.0",tslib:"^2.2.0"},description:"@100mslive Core SDK which abstracts the complexities of webRTC while providing a reactive store for data management with a unidirectional data flow",keywords:["video","webrtc","conferencing","100ms"],gitHead:"89f8bf64edd02c8a685dbc53ae4687d10ba29589"}});var ml={};po(ml,{ConnectivityState:()=>Dn,DeviceType:()=>cs,Diagnostics:()=>gt,DomainCategory:()=>Jr,EventBus:()=>Tt,HLSPlaylistType:()=>ss,HLSStreamType:()=>as,HMSAudioDeviceCategory:()=>Ri,HMSAudioMode:()=>Ai,HMSAudioPluginType:()=>ki,HMSLogLevel:()=>qr,HMSMessageType:()=>ra,HMSNotificationSeverity:()=>$r,HMSNotificationTypes:()=>fi,HMSPeerType:()=>Ii,HMSPlaylistType:()=>Kr,HMSPluginUnsupportedTypes:()=>Ei,HMSReactiveStore:()=>et,HMSRecordingState:()=>rs,HMSRoomState:()=>Ti,HMSStats:()=>kt,HMSTrackExceptionTrackType:()=>zr,HMSTranscriptionMode:()=>os,HMSTranscriptionState:()=>ns,HMSVideoPluginCanvasContextType:()=>Ni,HMSVideoPluginType:()=>_i,createDefaultStatsStore:()=>At,createDefaultStoreState:()=>It,getAudioDeviceCategory:()=>Hi,parsedUserAgent:()=>he,selectAppData:()=>_c,selectAppDataByPath:()=>Oc,selectAudioPlaylist:()=>Cs,selectAudioPlaylistTrackByPeerID:()=>Yc,selectAudioTrackByID:()=>Bc,selectAudioTrackByPeerID:()=>Tn,selectAudioTrackVolume:()=>Us,selectAudioVolumeByPeerID:()=>rd,selectAuxiliaryAudioByPeerID:()=>Qc,selectAuxiliaryTracksByPeerID:()=>Wc,selectAvailableRoleNames:()=>dc,selectBroadcastMessages:()=>yn,selectBroadcastMessagesUnreadCount:()=>cd,selectCameraStreamByPeerID:()=>Gc,selectConnectionQualities:()=>Go,selectConnectionQualityByPeerID:()=>jc,selectDegradedTracks:()=>rc,selectDevices:()=>Fo,selectDidIJoinWithin:()=>wd,selectDominantSpeaker:()=>zo,selectEffectsKey:()=>yc,selectErrors:()=>tn,selectFullAppData:()=>Ki,selectHLSState:()=>hc,selectHMSBroadcastMessages:()=>an,selectHMSMessages:()=>mt,selectHMSMessagesCount:()=>sc,selectHMSStats:()=>ro,selectHandRaisedPeers:()=>bc,selectHasPeerHandRaised:()=>gd,selectIsAllowedToPreviewMedia:()=>Pd,selectIsAllowedToPublish:()=>Ed,selectIsAllowedToSubscribe:()=>lc,selectIsAudioLocallyMuted:()=>xs,selectIsConnectedToRoom:()=>He,selectIsEffectsEnabled:()=>vc,selectIsInPreview:()=>Ps,selectIsLargeRoom:()=>fc,selectIsLocalAudioEnabled:()=>Yo,selectIsLocalAudioPluginPresent:()=>Hd,selectIsLocalScreenShared:()=>ji,selectIsLocalVideoDisplayEnabled:()=>Es,selectIsLocalVideoEnabled:()=>qi,selectIsLocalVideoPluginPresent:()=>Rd,selectIsLocallyMutedByPeerID:()=>td,selectIsPeerAudioEnabled:()=>Zc,selectIsPeerVideoEnabled:()=>ed,selectIsRoleAllowedToPublish:()=>bd,selectIsScreenShareLocallyMutedByPeerID:()=>id,selectIsSomeoneScreenSharing:()=>Xo,selectIsTranscriptionAllowedByMode:()=>vd,selectIsTranscriptionEnabled:()=>cc,selectIsVBEnabled:()=>Mc,selectLocalAudioTrackID:()=>de,selectLocalMediaSettings:()=>ys,selectLocalPeer:()=>se,selectLocalPeerID:()=>be,selectLocalPeerName:()=>qo,selectLocalPeerRole:()=>ze,selectLocalPeerRoleName:()=>jo,selectLocalTrackIDs:()=>ks,selectLocalVideoTrackID:()=>ee,selectMessageByMessageID:()=>fd,selectMessageIDsInOrder:()=>Ms,selectMessagesByPeerID:()=>dd,selectMessagesByRole:()=>ld,selectMessagesMap:()=>$t,selectMessagesUnreadCountByPeerID:()=>pd,selectMessagesUnreadCountByRole:()=>ud,selectPeerAudioByID:()=>qc,selectPeerByCondition:()=>Cd,selectPeerByID:()=>ie,selectPeerCount:()=>Wo,selectPeerMetadata:()=>Sd,selectPeerName:()=>Td,selectPeerNameByID:()=>xc,selectPeerScreenSharing:()=>sn,selectPeerSharingAudio:()=>Zo,selectPeerSharingAudioPlaylist:()=>ic,selectPeerSharingVideoPlaylist:()=>tc,selectPeerTypeByID:()=>Uc,selectPeers:()=>ve,selectPeersByCondition:()=>Ld,selectPeersByRole:()=>hd,selectPeersByRoles:()=>md,selectPeersMap:()=>z,selectPeersScreenSharing:()=>ec,selectPeersWithAudioStatus:()=>Md,selectPermissions:()=>Is,selectPollByID:()=>Bs,selectPolls:()=>Pc,selectPollsMap:()=>As,selectPreviewRole:()=>bs,selectPreviewRoleName:()=>nn,selectRTMPState:()=>pc,selectRecentError:()=>Bo,selectRecordingState:()=>uc,selectRemotePeers:()=>Jo,selectRoleByRoleName:()=>kn,selectRoleChangeRequest:()=>kd,selectRolesMap:()=>Me,selectRoom:()=>V,selectRoomID:()=>Vo,selectRoomStartTime:()=>Tc,selectRoomStarted:()=>oc,selectRoomState:()=>ae,selectScreenAudioTrackByID:()=>Vc,selectScreenShareAudioByPeerID:()=>Os,selectScreenShareByPeerID:()=>Xc,selectScreenSharesByPeerId:()=>Ns,selectScreenVideoTrackByID:()=>Fc,selectScreenshareAudioVolumeByPeerID:()=>sd,selectSessionId:()=>gc,selectSessionMetadata:()=>Ec,selectSessionStore:()=>Nc,selectSimulcastLayerByTrack:()=>ad,selectSpeakers:()=>rn,selectTemplateAppData:()=>kc,selectTrackAudioByID:()=>$c,selectTrackByID:()=>jt,selectTracksMap:()=>_,selectTranscriptionsState:()=>mc,selectTranslationState:()=>Sc,selectUnreadHMSBroadcastMessagesCount:()=>nc,selectUnreadHMSMessagesCount:()=>ac,selectVideoPlaylist:()=>Ls,selectVideoPlaylistAudioTrackByPeerID:()=>zc,selectVideoPlaylistVideoTrackByPeerID:()=>Jc,selectVideoTrackByID:()=>_s,selectVideoTrackByPeerID:()=>gn,selectWhiteboard:()=>Ic,selectWhiteboards:()=>on,simulcastMapping:()=>Ue});module.exports=ho(ml);var Ti=(o=>(o.Disconnected="Disconnected",o.Preview="Preview",o.Connecting="Connecting",o.Connected="Connected",o.Reconnecting="Reconnecting",o.Disconnecting="Disconnecting",o.Failed="Failed",o))(Ti||{});var It=()=>({room:{id:"",isConnected:!1,name:"",peers:[],localPeer:"",roomState:"Disconnected",recording:{browser:{running:!1},server:{running:!1},hls:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},connectionQualities:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[],sessionStore:{},templateAppData:{},polls:{},whiteboards:{},hideLocalPeer:!1}),At=()=>({peerStats:{},remoteTrackStats:{},localTrackStats:{},localPeer:{id:""}});var ra=(e=>(e.CHAT="chat",e))(ra||{});var $r=(t=>(t.INFO="info",t.ERROR="error",t))($r||{}),fi=(D=>(D.PEER_JOINED="PEER_JOINED",D.PEER_LEFT="PEER_LEFT",D.PEER_LIST="PEER_LIST",D.NEW_MESSAGE="NEW_MESSAGE",D.ERROR="ERROR",D.RECONNECTING="RECONNECTING",D.RECONNECTED="RECONNECTED",D.TRACK_ADDED="TRACK_ADDED",D.TRACK_REMOVED="TRACK_REMOVED",D.TRACK_MUTED="TRACK_MUTED",D.TRACK_UNMUTED="TRACK_UNMUTED",D.TRACK_DEGRADED="TRACK_DEGRADED",D.TRACK_RESTORED="TRACK_RESTORED",D.TRACK_DESCRIPTION_CHANGED="TRACK_DESCRIPTION_CHANGED",D.ROLE_UPDATED="ROLE_UPDATED",D.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",D.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",D.ROOM_ENDED="ROOM_ENDED",D.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",D.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",D.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",D.NAME_UPDATED="NAME_UPDATED",D.METADATA_UPDATED="METADATA_UPDATED",D.POLL_CREATED="POLL_CREATED",D.POLL_STARTED="POLL_STARTED",D.POLL_STOPPED="POLL_STOPPED",D.POLL_VOTES_UPDATED="POLL_VOTES_UPDATED",D.POLLS_LIST="POLLS_LIST",D.HAND_RAISE_CHANGED="HAND_RAISE_CHANGED",D.TRANSCRIPTION_STATE_UPDATED="TRANSCRIPTION_STATE_UPDATED",D))(fi||{});var Kr=(t=>(t.audio="audio",t.video="video",t))(Kr||{});var I=require("reselect");function Ke(a,e){let t,i;if(e)for(let r of e.auxiliaryTracks){let s=a[r];mo(s)&&(i=Rt(s)?s:i,t=Ht(s)?s:t)}return{video:t,audio:i}}function Rt(a){return a&&a.type==="audio"}function Ht(a){return a&&a.type==="video"}function mo(a){return a&&a.source==="screen"}function vi(a){return a&&a.source==="audioplaylist"}function Ct(a){return a&&a.source==="videoplaylist"}function sa(a){return a?!!(a!=null&&a.degraded):!1}function tt(a,e){return e&&a.tracks[e]?a.tracks[e].enabled:!1}function aa(a,e){return e&&a.tracks[e]?a.tracks[e].displayEnabled:!1}function Lt(a){var r;let e=!1,t=!1,i=!1;return(r=a==null?void 0:a.publishParams)!=null&&r.allowed&&(e=a.publishParams.allowed.includes("video"),t=a.publishParams.allowed.includes("audio"),i=a.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:i}}var qr=(d=>(d[d.VERBOSE=0]="VERBOSE",d[d.DEBUG=1]="DEBUG",d[d.INFO=2]="INFO",d[d.WARN=3]="WARN",d[d.TIME=4]="TIME",d[d.TIMEEND=5]="TIMEEND",d[d.ERROR=6]="ERROR",d[d.NONE=7]="NONE",d))(qr||{}),So=typeof window!="undefined"&&typeof window.expect!="undefined",l=class{static v(e,...t){this.log(0,e,...t)}static d(e,...t){this.log(1,e,...t)}static i(e,...t){this.log(2,e,...t)}static w(e,...t){this.log(3,e,...t)}static e(e,...t){this.log(6,e,...t)}static time(e){this.log(4,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(5,"[HMSPerformanceTiming]",e,e)}static cleanup(){performance.clearMarks(),performance.clearMeasures()}static log(e,t,...i){if(!(this.level.valueOf()>e.valueOf()))switch(e){case 0:{console.log(t,...i);break}case 1:{console.debug(t,...i);break}case 2:{console.info(t,...i);break}case 3:{console.warn(t,...i);break}case 6:{console.error(t,...i);break}case 4:{performance.mark(i[0]);break}case 5:{let r=i[0];try{let s=performance.measure(r,r);this.log(1,t,r,s==null?void 0:s.duration),performance.clearMarks(r),performance.clearMeasures(r)}catch(s){this.log(1,t,r,s)}break}}}};l.level=So?7:0;var it=class{constructor(e){this.tracks=new Array;this.nativeStream=e,this.id=e.id}updateId(e){this.id=e}};var ha=require("ua-parser-js");var jr=new ha.UAParser,wt=null,Qr=null,B=typeof window!="undefined";if(B)try{let a=jr.getResult(),e=a.withClientHints();e&&typeof e.then=="function"?(Qr=e,Qr.then(t=>{wt=t}).catch(()=>{wt=a})):(l.d("UAParser","Client Hints not supported, using standard UA parsing"),wt=e)}catch(a){wt=jr.getResult()}var _e=()=>wt||jr.getResult(),he={getBrowser:()=>_e().browser,getOS:()=>_e().os,getDevice:()=>_e().device,getCPU:()=>_e().cpu,getEngine:()=>_e().engine,getUA:()=>_e().ua,getResult:_e,withClientHints:()=>Qr||Promise.resolve(_e())},na,qe=typeof window=="undefined"&&!((na=he.getBrowser().name)!=null&&na.toLowerCase().includes("electron"));var go=()=>!qe,bl=go(),Dt=()=>he.getDevice().type==="mobile",ma=()=>typeof document!="undefined"&&document.hidden,Sa=()=>{var a;return((a=he.getOS().name)==null?void 0:a.toLowerCase())==="ios"},oa,ca,ga=(ca=(oa=he.getBrowser())==null?void 0:oa.name)==null?void 0:ca.toLowerCase().includes("safari"),da,la,Ta=((la=(da=he.getBrowser())==null?void 0:da.name)==null?void 0:la.toLowerCase())==="firefox",ua,pa,fa=((pa=(ua=he.getEngine())==null?void 0:ua.name)==null?void 0:pa.toLowerCase())==="blink";var ba=require("uuid");var Jr=(i=>(i.CUSTOM="CUSTOM",i.LOCAL="LOCAL",i.HMS="HMS",i))(Jr||{});function To(){if(B&&window){let a=window.location.hostname;return a==="localhost"||a==="127.0.0.1"?"LOCAL":a.includes("app.100ms.live")?"HMS":"CUSTOM"}return"CUSTOM"}var rt=To();var Ma=require("uuid");var k={WebSocketConnectionErrors:{FAILED_TO_CONNECT:1e3,WEBSOCKET_CONNECTION_LOST:1003,ABNORMAL_CLOSE:1006},APIErrors:{SERVER_ERRORS:2e3,INIT_CONFIG_NOT_AVAILABLE:2002,ENDPOINT_UNREACHABLE:2003,INVALID_TOKEN_FORMAT:2004},TracksErrors:{GENERIC_TRACK:3e3,CANT_ACCESS_CAPTURE_DEVICE:3001,DEVICE_NOT_AVAILABLE:3002,DEVICE_IN_USE:3003,DEVICE_LOST_MIDWAY:3004,NOTHING_TO_RETURN:3005,INVALID_VIDEO_SETTINGS:3006,CODEC_CHANGE_NOT_PERMITTED:3007,AUTOPLAY_ERROR:3008,OVER_CONSTRAINED:3009,NO_AUDIO_DETECTED:3010,SYSTEM_DENIED_PERMISSION:3011,CURRENT_TAB_NOT_SHARED:3012,AUDIO_PLAYBACK_ERROR:3013,SELECTED_DEVICE_MISSING:3014,NO_DATA:3015},WebrtcErrors:{CREATE_OFFER_FAILED:4001,CREATE_ANSWER_FAILED:4002,SET_LOCAL_DESCRIPTION_FAILED:4003,SET_REMOTE_DESCRIPTION_FAILED:4004,ICE_FAILURE:4005,ICE_DISCONNECTED:4006,STATS_FAILED:4007},WebsocketMethodErrors:{SERVER_ERRORS:5e3,ALREADY_JOINED:5001,CANNOT_JOIN_PREVIEW_IN_PROGRESS:5002},GenericErrors:{NOT_CONNECTED:6e3,SIGNALLING:6001,UNKNOWN:6002,NOT_READY:6003,JSON_PARSING_FAILED:6004,TRACK_METADATA_MISSING:6005,RTC_TRACK_MISSING:6006,PEER_METADATA_MISSING:6007,INVALID_ROLE:6008,PREVIEW_IN_PROGRESS:6009,MISSING_MEDIADEVICES:6010,MISSING_RTCPEERCONNECTION:6011,LOCAL_STORAGE_ACCESS_DENIED:6012,VALIDATION_FAILED:6013},PlaylistErrors:{NO_ENTRY_TO_PLAY:8001,NO_ENTRY_IS_PLAYING:8002}};var E=class a extends Error{constructor(t,i,r,s,n,o=!1){super(s);this.code=t;this.name=i;this.message=s;this.description=n;this.isTerminal=o;Object.setPrototypeOf(this,a.prototype),this.action=r.toString()}toAnalyticsProperties(){return{error_name:this.name,error_code:this.code,error_message:this.message,error_description:this.description,action:this.action,is_terminal:this.isTerminal}}addNativeError(t){this.nativeError=t}toString(){var t;return`{
1
+ "use strict";var so=Object.create;var bt=Object.defineProperty,ao=Object.defineProperties,no=Object.getOwnPropertyDescriptor,oo=Object.getOwnPropertyDescriptors,co=Object.getOwnPropertyNames,gi=Object.getOwnPropertySymbols,ea=Object.getPrototypeOf,Gr=Object.prototype.hasOwnProperty,ta=Object.prototype.propertyIsEnumerable,lo=Reflect.get;var Zs=(a,e,t)=>e in a?bt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,m=(a,e)=>{for(var t in e||(e={}))Gr.call(e,t)&&Zs(a,t,e[t]);if(gi)for(var t of gi(e))ta.call(e,t)&&Zs(a,t,e[t]);return a},M=(a,e)=>ao(a,oo(e));var Wr=(a,e)=>{var t={};for(var i in a)Gr.call(a,i)&&e.indexOf(i)<0&&(t[i]=a[i]);if(a!=null&&gi)for(var i of gi(a))e.indexOf(i)<0&&ta.call(a,i)&&(t[i]=a[i]);return t};var uo=(a,e)=>()=>{try{return e||a((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},po=(a,e)=>{for(var t in e)bt(a,t,{get:e[t],enumerable:!0})},ia=(a,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of co(e))!Gr.call(a,r)&&r!==t&&bt(a,r,{get:()=>e[r],enumerable:!(i=no(e,r))||i.enumerable});return a};var $e=(a,e,t)=>(t=a!=null?so(ea(a)):{},ia(e||!a||!a.__esModule?bt(t,"default",{value:a,enumerable:!0}):t,a)),ho=a=>ia(bt({},"__esModule",{value:!0}),a);var pe=(a,e,t)=>lo(ea(a),t,e);var c=(a,e,t)=>new Promise((i,r)=>{var s=d=>{try{o(t.next(d))}catch(u){r(u)}},n=d=>{try{o(t.throw(d))}catch(u){r(u)}},o=d=>d.done?i(d.value):Promise.resolve(d.value).then(s,n);o((t=t.apply(a,e)).next())});var Zr=uo((tu,vo)=>{vo.exports={version:"0.14.4-alpha.0",license:"MIT",repository:{type:"git",url:"https://github.com/100mslive/web-sdks.git",directory:"packages/hms-video-store"},main:"dist/index.cjs.js",module:"dist/index.js",typings:"dist/index.d.ts",files:["dist"],engines:{node:">=12"},exports:{".":{require:"./dist/index.cjs.js",import:"./dist/index.js",default:"./dist/index.js"}},sideEffects:!1,scripts:{prestart:"rm -rf dist && yarn types:build",start:'concurrently "yarn dev" "yarn types"',dev:"node ../../scripts/dev","build:only":"node ../../scripts/build",build:"yarn build:only && yarn types:build",types:"tsc -w","types:build":"tsc -p tsconfig.json",format:"prettier --write src/**/*.ts",test:"jest --maxWorkers=1","test:watch":"jest --watch","test:coverage":"jest --coverage",lint:"eslint -c ../../.eslintrc .","lint:fix":"yarn lint --fix",prepare:"yarn build",size:"size-limit",analyze:"size-limit --why",docs:"rm -rf ./docs && typedoc && rm -f ./docs/README.md && mkdir ./docs/home &&mv ./docs/modules.md ./docs/home/content.md && node ../../scripts/docs-store && npx prettier --write './docs/**/*'"},name:"@100mslive/hms-video-store",author:"100ms",dependencies:{eventemitter2:"^6.4.9",immer:"^9.0.6","lodash.isequal":"^4.5.0",reselect:"4.0.0","sdp-transform":"^2.14.1","ua-parser-js":"^2.0.6",uuid:"^11.1.1","webrtc-adapter":"^8.0.0",zustand:"3.5.7"},devDependencies:{"@types/dom-screen-wake-lock":"^1.0.1","@types/lodash.isequal":"^4.5.8","@types/sdp-transform":"^2.4.4","@types/ua-parser-js":"^0.7.39","@types/uuid":"^8.3.0","jest-canvas-mock":"^2.3.1","jsdom-worker":"^0.3.0",tslib:"^2.2.0"},description:"@100mslive Core SDK which abstracts the complexities of webRTC while providing a reactive store for data management with a unidirectional data flow",keywords:["video","webrtc","conferencing","100ms"],gitHead:"cd2fdc0ba38f921c60d1b633678a1b51e772df77"}});var ml={};po(ml,{ConnectivityState:()=>Dn,DeviceType:()=>cs,Diagnostics:()=>gt,DomainCategory:()=>Jr,EventBus:()=>Tt,HLSPlaylistType:()=>ss,HLSStreamType:()=>as,HMSAudioDeviceCategory:()=>Ri,HMSAudioMode:()=>Ai,HMSAudioPluginType:()=>ki,HMSLogLevel:()=>qr,HMSMessageType:()=>ra,HMSNotificationSeverity:()=>$r,HMSNotificationTypes:()=>fi,HMSPeerType:()=>Ii,HMSPlaylistType:()=>Kr,HMSPluginUnsupportedTypes:()=>Ei,HMSReactiveStore:()=>et,HMSRecordingState:()=>rs,HMSRoomState:()=>Ti,HMSStats:()=>kt,HMSTrackExceptionTrackType:()=>zr,HMSTranscriptionMode:()=>os,HMSTranscriptionState:()=>ns,HMSVideoPluginCanvasContextType:()=>Ni,HMSVideoPluginType:()=>_i,createDefaultStatsStore:()=>At,createDefaultStoreState:()=>It,getAudioDeviceCategory:()=>Hi,parsedUserAgent:()=>he,selectAppData:()=>_c,selectAppDataByPath:()=>Oc,selectAudioPlaylist:()=>Cs,selectAudioPlaylistTrackByPeerID:()=>Yc,selectAudioTrackByID:()=>Bc,selectAudioTrackByPeerID:()=>Tn,selectAudioTrackVolume:()=>Us,selectAudioVolumeByPeerID:()=>rd,selectAuxiliaryAudioByPeerID:()=>Qc,selectAuxiliaryTracksByPeerID:()=>Wc,selectAvailableRoleNames:()=>dc,selectBroadcastMessages:()=>yn,selectBroadcastMessagesUnreadCount:()=>cd,selectCameraStreamByPeerID:()=>Gc,selectConnectionQualities:()=>Go,selectConnectionQualityByPeerID:()=>jc,selectDegradedTracks:()=>rc,selectDevices:()=>Fo,selectDidIJoinWithin:()=>wd,selectDominantSpeaker:()=>zo,selectEffectsKey:()=>yc,selectErrors:()=>tn,selectFullAppData:()=>Ki,selectHLSState:()=>hc,selectHMSBroadcastMessages:()=>an,selectHMSMessages:()=>mt,selectHMSMessagesCount:()=>sc,selectHMSStats:()=>ro,selectHandRaisedPeers:()=>bc,selectHasPeerHandRaised:()=>gd,selectIsAllowedToPreviewMedia:()=>Pd,selectIsAllowedToPublish:()=>Ed,selectIsAllowedToSubscribe:()=>lc,selectIsAudioLocallyMuted:()=>xs,selectIsConnectedToRoom:()=>He,selectIsEffectsEnabled:()=>vc,selectIsInPreview:()=>Ps,selectIsLargeRoom:()=>fc,selectIsLocalAudioEnabled:()=>Yo,selectIsLocalAudioPluginPresent:()=>Hd,selectIsLocalScreenShared:()=>ji,selectIsLocalVideoDisplayEnabled:()=>Es,selectIsLocalVideoEnabled:()=>qi,selectIsLocalVideoPluginPresent:()=>Rd,selectIsLocallyMutedByPeerID:()=>td,selectIsPeerAudioEnabled:()=>Zc,selectIsPeerVideoEnabled:()=>ed,selectIsRoleAllowedToPublish:()=>bd,selectIsScreenShareLocallyMutedByPeerID:()=>id,selectIsSomeoneScreenSharing:()=>Xo,selectIsTranscriptionAllowedByMode:()=>vd,selectIsTranscriptionEnabled:()=>cc,selectIsVBEnabled:()=>Mc,selectLocalAudioTrackID:()=>de,selectLocalMediaSettings:()=>ys,selectLocalPeer:()=>se,selectLocalPeerID:()=>be,selectLocalPeerName:()=>qo,selectLocalPeerRole:()=>ze,selectLocalPeerRoleName:()=>jo,selectLocalTrackIDs:()=>ks,selectLocalVideoTrackID:()=>ee,selectMessageByMessageID:()=>fd,selectMessageIDsInOrder:()=>Ms,selectMessagesByPeerID:()=>dd,selectMessagesByRole:()=>ld,selectMessagesMap:()=>$t,selectMessagesUnreadCountByPeerID:()=>pd,selectMessagesUnreadCountByRole:()=>ud,selectPeerAudioByID:()=>qc,selectPeerByCondition:()=>Cd,selectPeerByID:()=>ie,selectPeerCount:()=>Wo,selectPeerMetadata:()=>Sd,selectPeerName:()=>Td,selectPeerNameByID:()=>xc,selectPeerScreenSharing:()=>sn,selectPeerSharingAudio:()=>Zo,selectPeerSharingAudioPlaylist:()=>ic,selectPeerSharingVideoPlaylist:()=>tc,selectPeerTypeByID:()=>Uc,selectPeers:()=>ve,selectPeersByCondition:()=>Ld,selectPeersByRole:()=>hd,selectPeersByRoles:()=>md,selectPeersMap:()=>z,selectPeersScreenSharing:()=>ec,selectPeersWithAudioStatus:()=>Md,selectPermissions:()=>Is,selectPollByID:()=>Bs,selectPolls:()=>Pc,selectPollsMap:()=>As,selectPreviewRole:()=>bs,selectPreviewRoleName:()=>nn,selectRTMPState:()=>pc,selectRecentError:()=>Bo,selectRecordingState:()=>uc,selectRemotePeers:()=>Jo,selectRoleByRoleName:()=>kn,selectRoleChangeRequest:()=>kd,selectRolesMap:()=>Me,selectRoom:()=>V,selectRoomID:()=>Vo,selectRoomStartTime:()=>Tc,selectRoomStarted:()=>oc,selectRoomState:()=>ae,selectScreenAudioTrackByID:()=>Vc,selectScreenShareAudioByPeerID:()=>Os,selectScreenShareByPeerID:()=>Xc,selectScreenSharesByPeerId:()=>Ns,selectScreenVideoTrackByID:()=>Fc,selectScreenshareAudioVolumeByPeerID:()=>sd,selectSessionId:()=>gc,selectSessionMetadata:()=>Ec,selectSessionStore:()=>Nc,selectSimulcastLayerByTrack:()=>ad,selectSpeakers:()=>rn,selectTemplateAppData:()=>kc,selectTrackAudioByID:()=>$c,selectTrackByID:()=>jt,selectTracksMap:()=>_,selectTranscriptionsState:()=>mc,selectTranslationState:()=>Sc,selectUnreadHMSBroadcastMessagesCount:()=>nc,selectUnreadHMSMessagesCount:()=>ac,selectVideoPlaylist:()=>Ls,selectVideoPlaylistAudioTrackByPeerID:()=>zc,selectVideoPlaylistVideoTrackByPeerID:()=>Jc,selectVideoTrackByID:()=>_s,selectVideoTrackByPeerID:()=>gn,selectWhiteboard:()=>Ic,selectWhiteboards:()=>on,simulcastMapping:()=>Ue});module.exports=ho(ml);var Ti=(o=>(o.Disconnected="Disconnected",o.Preview="Preview",o.Connecting="Connecting",o.Connected="Connected",o.Reconnecting="Reconnecting",o.Disconnecting="Disconnecting",o.Failed="Failed",o))(Ti||{});var It=()=>({room:{id:"",isConnected:!1,name:"",peers:[],localPeer:"",roomState:"Disconnected",recording:{browser:{running:!1},server:{running:!1},hls:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},connectionQualities:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[],sessionStore:{},templateAppData:{},polls:{},whiteboards:{},hideLocalPeer:!1}),At=()=>({peerStats:{},remoteTrackStats:{},localTrackStats:{},localPeer:{id:""}});var ra=(e=>(e.CHAT="chat",e))(ra||{});var $r=(t=>(t.INFO="info",t.ERROR="error",t))($r||{}),fi=(D=>(D.PEER_JOINED="PEER_JOINED",D.PEER_LEFT="PEER_LEFT",D.PEER_LIST="PEER_LIST",D.NEW_MESSAGE="NEW_MESSAGE",D.ERROR="ERROR",D.RECONNECTING="RECONNECTING",D.RECONNECTED="RECONNECTED",D.TRACK_ADDED="TRACK_ADDED",D.TRACK_REMOVED="TRACK_REMOVED",D.TRACK_MUTED="TRACK_MUTED",D.TRACK_UNMUTED="TRACK_UNMUTED",D.TRACK_DEGRADED="TRACK_DEGRADED",D.TRACK_RESTORED="TRACK_RESTORED",D.TRACK_DESCRIPTION_CHANGED="TRACK_DESCRIPTION_CHANGED",D.ROLE_UPDATED="ROLE_UPDATED",D.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",D.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",D.ROOM_ENDED="ROOM_ENDED",D.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",D.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",D.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",D.NAME_UPDATED="NAME_UPDATED",D.METADATA_UPDATED="METADATA_UPDATED",D.POLL_CREATED="POLL_CREATED",D.POLL_STARTED="POLL_STARTED",D.POLL_STOPPED="POLL_STOPPED",D.POLL_VOTES_UPDATED="POLL_VOTES_UPDATED",D.POLLS_LIST="POLLS_LIST",D.HAND_RAISE_CHANGED="HAND_RAISE_CHANGED",D.TRANSCRIPTION_STATE_UPDATED="TRANSCRIPTION_STATE_UPDATED",D))(fi||{});var Kr=(t=>(t.audio="audio",t.video="video",t))(Kr||{});var I=require("reselect");function Ke(a,e){let t,i;if(e)for(let r of e.auxiliaryTracks){let s=a[r];mo(s)&&(i=Rt(s)?s:i,t=Ht(s)?s:t)}return{video:t,audio:i}}function Rt(a){return a&&a.type==="audio"}function Ht(a){return a&&a.type==="video"}function mo(a){return a&&a.source==="screen"}function vi(a){return a&&a.source==="audioplaylist"}function Ct(a){return a&&a.source==="videoplaylist"}function sa(a){return a?!!(a!=null&&a.degraded):!1}function tt(a,e){return e&&a.tracks[e]?a.tracks[e].enabled:!1}function aa(a,e){return e&&a.tracks[e]?a.tracks[e].displayEnabled:!1}function Lt(a){var r;let e=!1,t=!1,i=!1;return(r=a==null?void 0:a.publishParams)!=null&&r.allowed&&(e=a.publishParams.allowed.includes("video"),t=a.publishParams.allowed.includes("audio"),i=a.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:i}}var qr=(d=>(d[d.VERBOSE=0]="VERBOSE",d[d.DEBUG=1]="DEBUG",d[d.INFO=2]="INFO",d[d.WARN=3]="WARN",d[d.TIME=4]="TIME",d[d.TIMEEND=5]="TIMEEND",d[d.ERROR=6]="ERROR",d[d.NONE=7]="NONE",d))(qr||{}),So=typeof window!="undefined"&&typeof window.expect!="undefined",l=class{static v(e,...t){this.log(0,e,...t)}static d(e,...t){this.log(1,e,...t)}static i(e,...t){this.log(2,e,...t)}static w(e,...t){this.log(3,e,...t)}static e(e,...t){this.log(6,e,...t)}static time(e){this.log(4,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(5,"[HMSPerformanceTiming]",e,e)}static cleanup(){performance.clearMarks(),performance.clearMeasures()}static log(e,t,...i){if(!(this.level.valueOf()>e.valueOf()))switch(e){case 0:{console.log(t,...i);break}case 1:{console.debug(t,...i);break}case 2:{console.info(t,...i);break}case 3:{console.warn(t,...i);break}case 6:{console.error(t,...i);break}case 4:{performance.mark(i[0]);break}case 5:{let r=i[0];try{let s=performance.measure(r,r);this.log(1,t,r,s==null?void 0:s.duration),performance.clearMarks(r),performance.clearMeasures(r)}catch(s){this.log(1,t,r,s)}break}}}};l.level=So?7:0;var it=class{constructor(e){this.tracks=new Array;this.nativeStream=e,this.id=e.id}updateId(e){this.id=e}};var ha=require("ua-parser-js");var jr=new ha.UAParser,wt=null,Qr=null,B=typeof window!="undefined";if(B)try{let a=jr.getResult(),e=a.withClientHints();e&&typeof e.then=="function"?(Qr=e,Qr.then(t=>{wt=t}).catch(()=>{wt=a})):(l.d("UAParser","Client Hints not supported, using standard UA parsing"),wt=e)}catch(a){wt=jr.getResult()}var _e=()=>wt||jr.getResult(),he={getBrowser:()=>_e().browser,getOS:()=>_e().os,getDevice:()=>_e().device,getCPU:()=>_e().cpu,getEngine:()=>_e().engine,getUA:()=>_e().ua,getResult:_e,withClientHints:()=>Qr||Promise.resolve(_e())},na,qe=typeof window=="undefined"&&!((na=he.getBrowser().name)!=null&&na.toLowerCase().includes("electron"));var go=()=>!qe,bl=go(),Dt=()=>he.getDevice().type==="mobile",ma=()=>typeof document!="undefined"&&document.hidden,Sa=()=>{var a;return((a=he.getOS().name)==null?void 0:a.toLowerCase())==="ios"},oa,ca,ga=(ca=(oa=he.getBrowser())==null?void 0:oa.name)==null?void 0:ca.toLowerCase().includes("safari"),da,la,Ta=((la=(da=he.getBrowser())==null?void 0:da.name)==null?void 0:la.toLowerCase())==="firefox",ua,pa,fa=((pa=(ua=he.getEngine())==null?void 0:ua.name)==null?void 0:pa.toLowerCase())==="blink";var ba=require("uuid");var Jr=(i=>(i.CUSTOM="CUSTOM",i.LOCAL="LOCAL",i.HMS="HMS",i))(Jr||{});function To(){if(B&&window){let a=window.location.hostname;return a==="localhost"||a==="127.0.0.1"?"LOCAL":a.includes("app.100ms.live")?"HMS":"CUSTOM"}return"CUSTOM"}var rt=To();var Ma=require("uuid");var k={WebSocketConnectionErrors:{FAILED_TO_CONNECT:1e3,WEBSOCKET_CONNECTION_LOST:1003,ABNORMAL_CLOSE:1006},APIErrors:{SERVER_ERRORS:2e3,INIT_CONFIG_NOT_AVAILABLE:2002,ENDPOINT_UNREACHABLE:2003,INVALID_TOKEN_FORMAT:2004},TracksErrors:{GENERIC_TRACK:3e3,CANT_ACCESS_CAPTURE_DEVICE:3001,DEVICE_NOT_AVAILABLE:3002,DEVICE_IN_USE:3003,DEVICE_LOST_MIDWAY:3004,NOTHING_TO_RETURN:3005,INVALID_VIDEO_SETTINGS:3006,CODEC_CHANGE_NOT_PERMITTED:3007,AUTOPLAY_ERROR:3008,OVER_CONSTRAINED:3009,NO_AUDIO_DETECTED:3010,SYSTEM_DENIED_PERMISSION:3011,CURRENT_TAB_NOT_SHARED:3012,AUDIO_PLAYBACK_ERROR:3013,SELECTED_DEVICE_MISSING:3014,NO_DATA:3015},WebrtcErrors:{CREATE_OFFER_FAILED:4001,CREATE_ANSWER_FAILED:4002,SET_LOCAL_DESCRIPTION_FAILED:4003,SET_REMOTE_DESCRIPTION_FAILED:4004,ICE_FAILURE:4005,ICE_DISCONNECTED:4006,STATS_FAILED:4007},WebsocketMethodErrors:{SERVER_ERRORS:5e3,ALREADY_JOINED:5001,CANNOT_JOIN_PREVIEW_IN_PROGRESS:5002},GenericErrors:{NOT_CONNECTED:6e3,SIGNALLING:6001,UNKNOWN:6002,NOT_READY:6003,JSON_PARSING_FAILED:6004,TRACK_METADATA_MISSING:6005,RTC_TRACK_MISSING:6006,PEER_METADATA_MISSING:6007,INVALID_ROLE:6008,PREVIEW_IN_PROGRESS:6009,MISSING_MEDIADEVICES:6010,MISSING_RTCPEERCONNECTION:6011,LOCAL_STORAGE_ACCESS_DENIED:6012,VALIDATION_FAILED:6013},PlaylistErrors:{NO_ENTRY_TO_PLAY:8001,NO_ENTRY_IS_PLAYING:8002}};var E=class a extends Error{constructor(t,i,r,s,n,o=!1){super(s);this.code=t;this.name=i;this.message=s;this.description=n;this.isTerminal=o;Object.setPrototypeOf(this,a.prototype),this.action=r.toString()}toAnalyticsProperties(){return{error_name:this.name,error_code:this.code,error_message:this.message,error_description:this.description,action:this.action,is_terminal:this.isTerminal}}addNativeError(t){this.nativeError=t}toString(){var t;return`{
2
2
  code: ${this.code};
3
3
  name: ${this.name};
4
4
  action: ${this.action};