@protobase/ui 0.62.3 → 0.62.5
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/dist/account/account-page.js +3 -0
- package/dist/account/blocks/connected-accounts-block.js +1 -1
- package/dist/account/blocks/personal-mail-block.js +36 -0
- package/dist/account/messages.js +4 -0
- package/dist/account/sign-in-providers-section.js +3 -3
- package/dist/app/pages/render-node.js +2 -0
- package/dist/auth/auth-provider.js +7 -0
- package/dist/package.js +1 -1
- package/dist/shell/assets/app-z3__9x3P.js +9 -0
- package/dist/shell/assets/calls-C63xSTRj.js +2 -0
- package/dist/shell/assets/{index-C-RfkRTE.js → index-C6bDRZz0.js} +2 -2
- package/dist/shell/assets/{records-map-C5LoYF8K.js → records-map-B5MPNRQc.js} +2 -2
- package/dist/shell/assets/{shared-protobase-ui-DC02tB2e.js → shared-protobase-ui-COFhNI_R.js} +2 -2
- package/dist/shell/index.html +3 -3
- package/dist/shell/protobase.shell.json +2 -2
- package/dist/shell/protobase.sw.js +2 -2
- package/dist/shell-source-maps/assets/app-z3__9x3P.js.map +1 -0
- package/dist/shell-source-maps/assets/calls-C63xSTRj.js.map +1 -0
- package/dist/shell-source-maps/assets/{index-C-RfkRTE.js.map → index-C6bDRZz0.js.map} +1 -1
- package/dist/shell-source-maps/assets/{records-map-C5LoYF8K.js.map → records-map-B5MPNRQc.js.map} +1 -1
- package/dist/shell-source-maps/assets/{shared-protobase-ui-DC02tB2e.js.map → shared-protobase-ui-COFhNI_R.js.map} +1 -1
- package/package.json +4 -4
- package/dist/shell/assets/app-C5MP7OgJ.js +0 -9
- package/dist/shell/assets/calls-DwVdIhNM.js +0 -2
- package/dist/shell-source-maps/assets/app-C5MP7OgJ.js.map +0 -1
- package/dist/shell-source-maps/assets/calls-DwVdIhNM.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e=class extends Error{constructor(e){super(e),this.name=`PublishRefused`}},t=e=>new RTCPeerConnection(e),n=e=>{let t=[...e],n=t.find(e=>e.type===`transport`&&typeof e.selectedCandidatePairId==`string`),r=t.find(e=>e.type===`candidate-pair`&&(e.id===n?.selectedCandidatePairId||!n&&e.selected===!0||!n&&e.nominated===!0&&e.state===`succeeded`)),i=0,a=0;for(let e of t)e.type===`inbound-rtp`&&(i+=Math.max(0,Number(e.packetsLost??0)),a+=Number(e.packetsReceived??0));let o=typeof r?.currentRoundTripTime==`number`?r.currentRoundTripTime*1e3:void 0;return{...o!==void 0&&{roundTripMs:o},...i+a>0&&{lostRatio:i/(i+a)}}},r=async(e,t)=>{let r=e.connectionState,i=r===`connected`?n((await e.getStats()).values()):{};return{...t!==void 0&&{member:t},state:r,...i}},i=e=>{let t=new Map;for(let n of e.split(/\r?\nm=/).slice(1)){let e=/^a=mid:(\S+)/m.exec(n)?.[1],r=/^a=msid:(\S+) \S+/m.exec(n)?.[1];e!==void 0&&r!==void 0&&r!==`-`&&t.set(r,e)}return t},a=e=>/^o=mozilla/m.test(e),o=typeof navigator<`u`&&/Firefox\//.test(navigator.userAgent),s=(e,t)=>o===a(t)?e.polite:o,c=(n,{iceServers:a,send:o,onTracks:c,createPeerConnection:l=t})=>{let u=new Map,d=new Map,f=[],p,m=Promise.resolve(),h=(e,{track:t,stream:n})=>e.addTransceiver(t,{direction:`sendonly`,streams:[n]}).sender,g=({member:e,sid:t})=>{let n=u.get(e)?.pc,r=n?.remoteDescription&&i(n.remoteDescription.sdp).get(t);return r===void 0?void 0:n.getTransceivers().find(e=>e.mid===r)?.receiver.track},_=()=>c(f.map(e=>({...e,...g(e)&&{track:g(e)}}))),v=e=>{let t=l({iceServers:a}),r={pc:t,polite:n<e,makingOffer:!1,ignoreOffer:!1,senders:new Map};u.set(e,r),t.onnegotiationneeded=async()=>{r.makingOffer=!0;try{await t.setLocalDescription(),o({type:`signal`,to:e,description:t.localDescription.toJSON()})}finally{r.makingOffer=!1}},t.onicecandidate=t=>{t.candidate&&o({type:`signal`,to:e,candidate:t.candidate.toJSON()})},t.oniceconnectionstatechange=()=>{t.iceConnectionState===`failed`&&t.restartIce()},t.ontrack=()=>_();for(let[e,n]of d)r.senders.set(e,h(t,n));return r},y=e=>{u.get(e)?.pc.close(),u.delete(e)},b=async(e,t,n)=>{let r=u.get(e)??v(e),{pc:i}=r;if(t){let n=t.type===`offer`&&(r.makingOffer||i.signalingState!==`stable`);if(r.ignoreOffer=!s(r,t.sdp)&&n,r.ignoreOffer)return;await i.setRemoteDescription(t),t.type===`offer`&&(await i.setLocalDescription(),o({type:`signal`,to:e,description:i.localDescription.toJSON()})),_()}n&&await i.addIceCandidate(n).catch(e=>{if(!r.ignoreOffer)throw e})},x=async t=>{switch(t.type){case`peers`:{let e=new Set(t.members);for(let t of u.keys())e.has(t)||y(t);for(let t of e)u.has(t)||v(t);return}case`signal`:return b(t.from,t.description,t.candidate);case`tracks`:f=t.tracks,_();return;case`published`:p?.resolve();return;case`publish-refused`:p?.reject(new e(t.reason));return}},S=async e=>{let t=Object.entries(e);for(let[e]of t)if(d.has(e))throw Error(`The call already sends a ${e} track: unpublish it first`);if(t.length===0)return;let n=t.map(([e,t])=>{let n=new MediaStream([t]);return[e,{track:t,sid:n.id,stream:n}]}),r=new Promise((e,t)=>p={resolve:e,reject:t});o({type:`publish`,tracks:n.map(([e,{track:t,sid:n}])=>({cid:n,kind:t.kind,source:e}))});try{await r}finally{p=void 0}for(let[e,t]of n){d.set(e,t);for(let n of u.values())n.senders.set(e,h(n.pc,t))}};return{receive:x,publish:e=>{let t=m.then(()=>S(e));return m=t.catch(()=>{}),t},unpublish:async e=>{let t=d.get(e);if(t){d.delete(e);for(let t of u.values()){let n=t.senders.get(e);n&&t.pc.signalingState!==`closed`&&t.pc.removeTrack(n),t.senders.delete(e)}o({type:`unpublish`,sid:t.sid})}},mute:(e,t)=>{let n=d.get(e);n&&(n.track.enabled=!t,o({type:`mute`,sid:n.sid,muted:t}))},restartIce:async()=>{for(let e of u.values())e.pc.restartIce()},resumeState:async e=>({participant:e,tracks:[...d].map(([e,{track:t,sid:n}])=>({cid:n,sid:n,kind:t.kind,source:e}))}),resumed:async()=>{},sending:()=>new Map([...d].map(([e,{track:t}])=>[e,{track:t,simulcast:!1}])),connections:()=>Promise.all([...u].map(([e,t])=>r(t.pc,e))),close:()=>{p?.reject(Error(`The call ended`));for(let e of[...u.keys()])y(e)}}},l=e=>{let t=!1,n=!1,r=[],i=async()=>{t=!0,n=!1,await e()},a=()=>{for(let e of r.splice(0))e()};return{request:async()=>{if(t){n=!0;return}await i()},answered:async()=>{if(t=!1,n)return i();a()},abandon:()=>{t&&(n=!0),t=!1},get pending(){return n},settled:()=>t||n?new Promise(e=>r.push(e)):Promise.resolve(),reset:()=>{t=!1,n=!1,a()}}},u=[{rid:`q`,quality:`low`,scale:4,maxBitrate:15e4},{rid:`h`,quality:`medium`,scale:2,maxBitrate:5e5},{rid:`f`,quality:`high`,scale:1,maxBitrate:12e5}],d=12e5,f=(e,t,n)=>{if(t.kind===`audio`)return{cid:t.id,kind:`audio`,source:e};let{width:r=0,height:i=0}=t.getSettings(),a=n?u.map(e=>({quality:e.quality,width:Math.round(r/e.scale),height:Math.round(i/e.scale),bitrate:e.maxBitrate})):[];return{cid:t.id,kind:`video`,source:e,width:r,height:i,...n&&{layers:a}}},p=(e,t)=>{if(e.kind!==`audio`)return t?u.map(e=>({rid:e.rid,scaleResolutionDownBy:e.scale,maxBitrate:e.maxBitrate})):[{maxBitrate:d}]},m=({iceServers:n,send:i,onTracks:a,onUnpublished:o,createPeerConnection:s=t})=>{let c=s({iceServers:n,bundlePolicy:`max-bundle`}),u=new Map,d=[],m={},h=[],g=0,_,v=Promise.resolve(),y=l(async()=>{let e=await c.createOffer();await c.setLocalDescription(e),i({type:`offer`,sdp:e.sdp,id:++g})}),b=async()=>{c.getTransceivers().length>0&&await y.request()},x=async()=>{await b(),await y.settled()},S=e=>{let t=Object.keys(m).find(t=>m[t]===e);return t===void 0?void 0:c.getTransceivers().find(e=>e.mid===t)?.receiver.track},C=()=>a(h.map(e=>({...e,...S(e.sid)&&{track:S(e.sid)}})));c.onicecandidate=e=>{e.candidate&&i({type:`candidate`,candidate:e.candidate.toJSON()})},c.oniceconnectionstatechange=()=>{c.iceConnectionState===`failed`&&w()},c.ontrack=()=>C();let w=async()=>{c.restartIce(),await x()},T=e=>{let t=u.get(e);return t?(u.delete(e),c.signalingState!==`closed`&&c.removeTrack(t.transceiver.sender),!0):!1},E=async t=>{switch(t.type){case`answer`:if(t.id!==g)return;m={...m,...t.mids},await c.setRemoteDescription({type:`answer`,sdp:t.sdp});for(let e of d.splice(0))await c.addIceCandidate(e);C(),await y.answered();return;case`candidate`:c.remoteDescription?await c.addIceCandidate(t.candidate):d.push(t.candidate);return;case`sections`:for(let e=0;e<t.audio;e++)c.addTransceiver(`audio`,{direction:`recvonly`});for(let e=0;e<t.video;e++)c.addTransceiver(`video`,{direction:`recvonly`});await b();return;case`tracks`:h=t.tracks,C();return;case`unpublished`:{let e=[...u.values()].find(e=>e.sid===t.sid);if(!e)return;T(e.source),await b(),o(e.source);return}case`published`:_?.resolve(t.tracks);return;case`publish-refused`:_?.reject(new e(t.reason));return}},D=async(e,t)=>{let n=Object.entries(e).map(([e,n])=>{if(u.has(e))throw Error(`The call already sends a ${e} track: unpublish it first`);let r=n.kind===`video`&&!!t.simulcast,i=p(n,r);return{source:e,track:n,transceiver:c.addTransceiver(n,{direction:`sendonly`,...i&&{sendEncodings:i}}),simulcast:r}});if(n.length===0)return;let r=new Promise((e,t)=>_={resolve:e,reject:t});i({type:`publish`,tracks:n.map(e=>f(e.source,e.track,e.simulcast))});try{let e=await r;for(let t of n)u.set(t.source,{...t,sid:e.find(e=>e.cid===t.track.id).sid})}catch(e){for(let e of n)e.transceiver.stop();throw e}finally{_=void 0}await x()};return{receive:E,publish:(e,t={})=>{let n=v.then(()=>D(e,t));return v=n.catch(()=>{}),n},unpublish:async e=>{T(e)&&await x()},mute:(e,t)=>{let n=u.get(e);n?.sid&&(n.track.enabled=!t,i({type:`mute`,sid:n.sid,muted:t}))},restartIce:w,resumeState:async e=>{if(c.signalingState===`have-local-offer`&&(await c.setLocalDescription({type:`rollback`}),y.abandon()),!c.localDescription||!c.remoteDescription)return;let t=[...u.values()].flatMap(e=>e.sid?[{cid:e.track.id,sid:e.sid,kind:e.track.kind,source:e.source}]:[]);return{participant:e,offer:c.localDescription.sdp,answer:c.remoteDescription.sdp,tracks:t}},resumed:async()=>{y.pending&&await b()},sending:()=>new Map([...u.values()].map(e=>[e.source,{track:e.track,simulcast:e.simulcast}])),connections:async()=>[await r(c)],close:()=>{_?.reject(Error(`The call ended`)),y.reset(),c.close()}}},h=e=>Math.min(1e4,500*2**e),g=e=>{let t=new URL(e,globalThis.location?.href);return t.protocol=t.protocol.replace(/^http/,`ws`),t.href},_={1e3:`ended`,1008:`removed`},v=new Set([1011,1013]),y=e=>{let t=e.WebSocket??WebSocket,n=e.retryDelayMs??h,r=e.maxRetries??8,i=g(e.url),a,o,s=``,l=``,u=[],d=[],f=!1,p=!1,y=!1,b=!1,x=0,S=Promise.resolve(),C,w=new Promise((e,t)=>C={resolve:e,reject:t}),T=e=>{a.readyState===t.OPEN&&a.send(JSON.stringify(e))},E=t=>e.onState?.(t),D=(e,n)=>{f||(f=!0,o?.close(),o=void 0,(a.readyState===t.OPEN||a.readyState===t.CONNECTING)&&a.close(1e3),C.reject(n??Error(`The call was left: ${e}`)),E({state:`left`,reason:e,...n!==void 0&&{error:n}}))},O=t=>{let n={iceServers:t.iceServers,send:T,onTracks:t=>{d=t,e.onTracks?.(t)},onUnpublished:t=>e.onUnpublished?.(t),...e.createPeerConnection&&{createPeerConnection:e.createPeerConnection}};return t.mode===`peer`?c(t.participant,n):m(n)},k=async t=>{switch(t.type){case`joined`:{let e=o?.sending();o?.close(),s=t.participant,l=t.call,o=O(t),x=0,E({state:`joined`}),C.resolve(M);for(let[t,{track:n,simulcast:r}]of e??[])M.publish({[t]:n},{simulcast:r}).catch(e=>D(`ended`,e));return}case`resumed`:b=!0,x=0,E({state:`joined`}),await o?.resumed();return;case`speakers`:e.onSpeakers?.(t.speakers);return;case`members`:u=t.members,e.onMembers?.(u);return;case`left`:t.reason===`rejoin`?p=!0:D(t.reason);return;default:await o?.receive(t)}},A=e=>{y=!1,b=!1,a=new t(i),a.onopen=()=>{y=!0,S=S.then(async()=>{let t=e===`resume`&&o?await o.resumeState(s):void 0;T(t?{type:`resume`,call:l,...t}:{type:`join`})})},a.onmessage=e=>{let t=JSON.parse(String(e.data));S=S.then(()=>k(t)).catch(e=>D(`ended`,e))},a.onclose=t=>{S=S.then(()=>j(e,t.code))}},j=(e,t)=>{if(f)return;if(p)return p=!1,A(`join`);let i=_[t];if(i)return D(i);if(!s&&!v.has(t))return D(`refused`);if(x++,x>r)return D(s?`ended`:`unavailable`);E(s?{state:`resuming`}:{state:`connecting`});let a=e===`resume`&&y&&!b?`join`:`resume`;setTimeout(()=>{f||A(a)},n(x-1))},M={get id(){return l},get participant(){return s},members:()=>u,publish:async(e,t)=>{if(!o)throw Error(`The call was left`);await o.publish(e,t)},unpublish:async e=>{await o?.unpublish(e)},mute:(e,t)=>o?.mute(e,t),view:(e,t)=>T(t===`hidden`?{type:`view`,sids:e,width:0,height:0,hidden:!0}:{type:`view`,sids:e,...t}),restartIce:async()=>{await o?.restartIce()},leave:()=>{f||(T({type:`leave`}),D(`ended`))},tracks:()=>d,connections:async()=>o?o.connections():[]};return E({state:`connecting`}),A(`join`),w};export{e as PublishRefused,y as joinCall};
|
|
2
|
-
//# debugId=f055d221-34c7-470e-abbe-8e574a023803
|