lecodes-cli 2.2.6 → 2.2.9
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/index.js +234 -37
- package/package.json +8 -8
- package/runtime/sdk-types.json +1 -1
- package/runtime/web/VERSION.json +3 -3
- package/runtime/web/assets/browser-BpFb50ko.js +1 -0
- package/runtime/web/assets/webrtc-CbCltXvl.js +1 -0
- package/runtime/web/player.js +6 -6
- package/runtime/web-lite/lite.js +1 -1
- package/runtime/web-lite/plugins/browser/index-BpFb50ko.js +1 -0
- package/runtime/web-lite/plugins/webrtc/index-CbCltXvl.js +1 -0
- package/runtime/web-lite/plugins.json +3 -1
- package/src/commands/app/android.ts +30 -3
- package/src/commands/app/desktop.ts +3 -2
- package/src/commands/app/index.ts +4 -4
- package/src/commands/app/shared.ts +19 -2
- package/src/commands/app/templates/android.ts +14 -2
- package/src/commands/app/templates/ios.ts +35 -3
- package/src/commands/plugin.ts +8 -2
- package/src/plugin/emitPackage.ts +98 -0
- package/src/plugin/generate.ts +51 -16
package/runtime/web/VERSION.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const l={present:e=>e!=null,f64:e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,i32:e=>typeof e=="number"&&Number.isInteger(e)&&e>=-2147483648&&e<=2147483647?e:void 0,bool:e=>typeof e=="boolean"?e:void 0,string:e=>typeof e=="string"?e:void 0,json:e=>e,bytes:e=>Object.prototype.toString.call(e)==="[object Uint8Array]"?e.slice():void 0,object:e=>typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0,array:(e,t)=>Array.isArray(e)&&(t===void 0||e.length===t)?e:void 0,list:(e,t)=>{if(!Array.isArray(e))return;const c=[];for(const s of e){const d=t(s);if(d===void 0)return;c.push(d)}return c},map:(e,t)=>{if(typeof e!="object"||e===null||Array.isArray(e))return;const c={};for(const[s,d]of Object.entries(e)){const a=t(d);if(a===void 0)return;c[s]=a}return c}},L=e=>!l.present(e)||l.object(e)?{}:void 0,x=e=>{const t=l.object(e);if(!t)return;let c;if(l.present(t.callbackScheme)){const i=l.string(t.callbackScheme);if(i===void 0)return;c=i}let s;if(l.present(t.ephemeral)){const i=l.bool(t.ephemeral);if(i===void 0)return;s=i}let d;if(l.present(t.color)){const i=l.string(t.color);if(i===void 0)return;d=i}const a={};return c!==void 0&&(a.callbackScheme=c),s!==void 0&&(a.ephemeral=s),d!==void 0&&(a.color=d),a},M=e=>e==="open"||e==="block"?e:void 0,O=e=>{const t=l.object(e);if(!t)return;let c;if(l.present(t.url)){const n=l.string(t.url);if(n===void 0)return;c=n}let s;if(l.present(t.stops)){const n=l.list(t.stops,u=>l.string(u));if(n===void 0)return;s=n}let d;if(l.present(t.bridge)){const n=l.bool(t.bridge);if(n===void 0)return;d=n}let a;if(l.present(t.externalLinks)){const n=M(t.externalLinks);if(n===void 0)return;a=n}let i;if(l.present(t.userAgent)){const n=l.string(t.userAgent);if(n===void 0)return;i=n}let p;if(l.present(t.ephemeral)){const n=l.bool(t.ephemeral);if(n===void 0)return;p=n}const o={};return c!==void 0&&(o.url=c),s!==void 0&&(o.stops=s),d!==void 0&&(o.bridge=d),a!==void 0&&(o.externalLinks=a),i!==void 0&&(o.userAgent=i),p!==void 0&&(o.ephemeral=p),o};class m extends Error{constructor(t){super(t),this.code=t}}const E={name:"browser",version:1},H=(e,t)=>{e.registerService(E.name,(c,s)=>{const d={closed:()=>s.emit("closed")},a=t(L(c)??{},d);return{call:async(p,o)=>{switch(p){case"show":{const n=l.string(o[0]);if(n===void 0)throw new Error("bad arguments — Browser.show: url");let u;if(l.present(o[1])){const f=x(o[1]);if(f===void 0)throw new Error("bad arguments — Browser.show: options");u=f}return await a.show(n,u)}case"dismiss":{await a.dismiss();return}default:throw new Error(`Unknown method: ${p}`)}},close:()=>{var p;return(p=a.close)==null?void 0:p.call(a)}}},E.version)};class W extends Error{constructor(t){super(t),this.code=t}}const B={name:"webView",version:1},U=(e,t)=>{e.registerView(B.name,(c,s,d)=>{const a={navigate:o=>s.emit("navigate",o),load:o=>s.emit("load",o),error:o=>s.emit("error",o),stop:o=>s.emit("stop",o),message:o=>s.emit("message",o),exit:()=>s.emit("exit")},i=t(O(c)??{},a,d),p=async(o,n)=>{switch(o){case"load":{const u=l.string(n[0]);if(u===void 0)throw new Error("bad arguments — WebView.load: url");let f;if(l.present(n[1])){const v=l.map(n[1],h=>l.string(h));if(v===void 0)throw new Error("bad arguments — WebView.load: headers");f=v}await i.load(u,f);return}case"loadHtml":{const u=l.string(n[0]);if(u===void 0)throw new Error("bad arguments — WebView.loadHtml: html");let f;if(l.present(n[1])){const v=l.string(n[1]);if(v===void 0)throw new Error("bad arguments — WebView.loadHtml: baseUrl");f=v}await i.loadHtml(u,f);return}case"setStops":{const u=l.list(n[0],f=>l.string(f));if(u===void 0)throw new Error("bad arguments — WebView.setStops: stops");await i.setStops(u);return}case"reload":{await i.reload();return}case"stopLoading":{await i.stopLoading();return}case"goBack":{await i.goBack();return}case"goForward":{await i.goForward();return}case"canGoBack":return await i.canGoBack();case"evaluate":{const u=l.string(n[0]);if(u===void 0)throw new Error("bad arguments — WebView.evaluate: js");return await i.evaluate(u)}case"postMessage":{const u=l.json(n[0]);if(u===void 0)throw new Error("bad arguments — WebView.postMessage: data");await i.postMessage(u);return}case"clearData":{await i.clearData();return}default:throw new Error(`Unknown method: ${o}`)}};return{el:i.el,call:p,destroy:()=>{var o;return(o=i.destroy)==null?void 0:o.call(i)}}},B.version)},C=new Set(["http:","https:","about:","data:","blob:"]),S=(e,t)=>{try{return new URL(e,t)}catch{return null}},V=(e,t)=>{try{const c=e==null?void 0:e.location.href;return c&&new URL(c).origin===t?c:null}catch{return null}},F=e=>{typeof window>"u"||typeof document>"u"||(H(e,(t,c)=>{let s=null,d=null,a=null;const i=p=>{d!==null&&(clearInterval(d),d=null);const o=a;a=null,s=null,o==null||o(p===void 0?{}:{url:p}),o&&c.closed()};return{show:p=>new Promise(o=>{if(a)throw new m("busy");const n=S(p);if(!n||n.protocol!=="http:"&&n.protocol!=="https:")throw new m("invalid");const u=window.open(n.href,"_blank","popup,noopener=0,width=480,height=720");if(!u)throw new m("invalid");s=u,a=o;const f=window.location.origin;d=setInterval(()=>{if(!s||s.closed)return i();const v=V(s,f);v&&v!=="about:blank"&&(s.close(),i(v))},250)}),dismiss:()=>{s==null||s.close(),i()},close:()=>{s==null||s.close(),i()}}}),U(e,(t,c,s)=>{const d=s.createElement("div");d.style.cssText="background:#fff;overflow:hidden";const a=s.createElement("iframe");a.style.cssText="position:absolute;inset:0;width:100%;height:100%;border:0",a.setAttribute("allow","payment *; camera; microphone; geolocation"),d.appendChild(a);let i=t.stops??[];const p=t.bridge===!0;let o=t.url??"about:blank";const n=window.location.origin;let u=!1;const f=()=>a.contentWindow,v=()=>V(f(),n),h=r=>{if(r.source!==f())return;const w=r.data;w&&typeof w=="object"&&"lecodes"in w&&c.message({data:w.lecodes})};window.addEventListener("message",h);const j=()=>{const r=f();!p||!r||v()===null||r.lecodes||(r.lecodes={postMessage:w=>c.message({data:w}),onMessage:null})};a.addEventListener("load",()=>{var w;if(u)return;const r=v();if(r!==null){if(i.find(A=>r.startsWith(A))){a.src="about:blank",c.stop({url:r});return}j();let b="";try{b=((w=f())==null?void 0:w.document.title)??""}catch{}c.load({url:r,title:b})}else c.load({url:o,title:""})});const y=r=>{const w=S(r,s.baseURI);if(!w||!C.has(w.protocol))throw new W("invalid");if(o=w.href,i.find(b=>o.startsWith(b))){c.stop({url:o});return}c.navigate({url:o}),a.src=o};t.url&&y(t.url);const k=()=>{const r=f();if(!r||v()===null)throw new W("failed");return r};return{el:d,load:r=>{y(r)},loadHtml:(r,w)=>{o=w??"about:blank",a.srcdoc=w?`<base href="${w.replace(/"/g,""")}">${r}`:r},setStops:r=>{i=r},reload:()=>{const r=f();r&&v()!==null?r.location.reload():a.src=o},stopLoading:()=>{var r;try{(r=f())==null||r.stop()}catch{}},goBack:()=>{var r;try{(r=f())==null||r.history.back()}catch{}},goForward:()=>{var r;try{(r=f())==null||r.history.forward()}catch{}},canGoBack:()=>{var r;try{return(((r=f())==null?void 0:r.history.length)??0)>1}catch{return!1}},evaluate:r=>{const w=k().eval(r);return w===void 0?null:JSON.parse(JSON.stringify(w))},postMessage:r=>{var g,b;(b=(g=k().lecodes)==null?void 0:g.onMessage)==null||b.call(g,r)},clearData:()=>{},destroy:()=>{u=!0,window.removeEventListener("message",h),a.src="about:blank",d.remove()}}}))};export{F as register};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const i={present:e=>e!=null,f64:e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,i32:e=>typeof e=="number"&&Number.isInteger(e)&&e>=-2147483648&&e<=2147483647?e:void 0,bool:e=>typeof e=="boolean"?e:void 0,string:e=>typeof e=="string"?e:void 0,json:e=>e,bytes:e=>Object.prototype.toString.call(e)==="[object Uint8Array]"?e.slice():void 0,object:e=>typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0,array:(e,t)=>Array.isArray(e)&&(t===void 0||e.length===t)?e:void 0,list:(e,t)=>{if(!Array.isArray(e))return;const v=[];for(const s of e){const l=t(s);if(l===void 0)return;v.push(l)}return v},map:(e,t)=>{if(typeof e!="object"||e===null||Array.isArray(e))return;const v={};for(const[s,l]of Object.entries(e)){const a=t(l);if(a===void 0)return;v[s]=a}return v}},Y=e=>!i.present(e)||i.object(e)?{}:void 0,Z=e=>{const t=i.object(e);if(!t)return;let v;if(i.present(t.deviceId)){const r=i.string(t.deviceId);if(r===void 0)return;v=r}let s;if(i.present(t.echoCancellation)){const r=i.bool(t.echoCancellation);if(r===void 0)return;s=r}let l;if(i.present(t.noiseSuppression)){const r=i.bool(t.noiseSuppression);if(r===void 0)return;l=r}let a;if(i.present(t.autoGainControl)){const r=i.bool(t.autoGainControl);if(r===void 0)return;a=r}const f={};return v!==void 0&&(f.deviceId=v),s!==void 0&&(f.echoCancellation=s),l!==void 0&&(f.noiseSuppression=l),a!==void 0&&(f.autoGainControl=a),f},ee=e=>e==="user"||e==="environment"?e:void 0,K=e=>{const t=i.object(e);if(!t)return;let v;if(i.present(t.deviceId)){const n=i.string(t.deviceId);if(n===void 0)return;v=n}let s;if(i.present(t.facingMode)){const n=ee(t.facingMode);if(n===void 0)return;s=n}let l;if(i.present(t.width)){const n=i.i32(t.width);if(n===void 0)return;l=n}let a;if(i.present(t.height)){const n=i.i32(t.height);if(n===void 0)return;a=n}let f;if(i.present(t.frameRate)){const n=i.f64(t.frameRate);if(n===void 0)return;f=n}const r={};return v!==void 0&&(r.deviceId=v),s!==void 0&&(r.facingMode=s),l!==void 0&&(r.width=l),a!==void 0&&(r.height=a),f!==void 0&&(r.frameRate=f),r},te=e=>{const t=i.object(e);if(!t)return;let v;if(i.present(t.audio)){const a=Z(t.audio);if(a===void 0)return;v=a}let s;if(i.present(t.video)){const a=K(t.video);if(a===void 0)return;s=a}const l={};return v!==void 0&&(l.audio=v),s!==void 0&&(l.video=s),l},re=e=>e==="audio"||e==="video"?e:void 0,ne=e=>e==="earpiece"||e==="speaker"?e:void 0,ie=e=>{const t=i.object(e);if(!t)return;const v=i.list(t.urls,f=>i.string(f));if(v===void 0)return;let s;if(i.present(t.username)){const f=i.string(t.username);if(f===void 0)return;s=f}let l;if(i.present(t.credential)){const f=i.string(t.credential);if(f===void 0)return;l=f}const a={urls:v};return s!==void 0&&(a.username=s),l!==void 0&&(a.credential=l),a},oe=e=>e==="all"||e==="relay"?e:void 0,ae=e=>e==="balanced"||e==="max-compat"||e==="max-bundle"?e:void 0,U=e=>{const t=i.object(e);if(!t)return;let v;if(i.present(t.iceServers)){const r=i.list(t.iceServers,n=>ie(n));if(r===void 0)return;v=r}let s;if(i.present(t.iceTransportPolicy)){const r=oe(t.iceTransportPolicy);if(r===void 0)return;s=r}let l;if(i.present(t.bundlePolicy)){const r=ae(t.bundlePolicy);if(r===void 0)return;l=r}let a;if(i.present(t.iceCandidatePoolSize)){const r=i.i32(t.iceCandidatePoolSize);if(r===void 0)return;a=r}const f={};return v!==void 0&&(f.iceServers=v),s!==void 0&&(f.iceTransportPolicy=s),l!==void 0&&(f.bundlePolicy=l),a!==void 0&&(f.iceCandidatePoolSize=a),f},de=e=>{const t=i.object(e);if(!t)return;let v;if(i.present(t.iceRestart)){const f=i.bool(t.iceRestart);if(f===void 0)return;v=f}let s;if(i.present(t.offerToReceiveAudio)){const f=i.bool(t.offerToReceiveAudio);if(f===void 0)return;s=f}let l;if(i.present(t.offerToReceiveVideo)){const f=i.bool(t.offerToReceiveVideo);if(f===void 0)return;l=f}const a={};return v!==void 0&&(a.iceRestart=v),s!==void 0&&(a.offerToReceiveAudio=s),l!==void 0&&(a.offerToReceiveVideo=l),a},se=e=>e==="offer"||e==="answer"||e==="pranswer"||e==="rollback"?e:void 0,z=e=>{const t=i.object(e);if(!t)return;const v=se(t.type);if(v===void 0)return;const s=i.string(t.sdp);return s===void 0?void 0:{type:v,sdp:s}},ce=e=>{const t=i.object(e);if(!t)return;const v=i.string(t.candidate);if(v===void 0)return;let s=null;if(i.present(t.sdpMid)){const r=i.string(t.sdpMid);if(r===void 0)return;s=r}let l=null;if(i.present(t.sdpMLineIndex)){const r=i.i32(t.sdpMLineIndex);if(r===void 0)return;l=r}let a;if(i.present(t.usernameFragment)){const r=i.string(t.usernameFragment);if(r===void 0)return;a=r}const f={candidate:v,sdpMid:s,sdpMLineIndex:l};return a!==void 0&&(f.usernameFragment=a),f},X=e=>{const t=i.object(e);if(!t)return;let v;if(i.present(t.rid)){const n=i.string(t.rid);if(n===void 0)return;v=n}let s;if(i.present(t.active)){const n=i.bool(t.active);if(n===void 0)return;s=n}let l;if(i.present(t.maxBitrate)){const n=i.i32(t.maxBitrate);if(n===void 0)return;l=n}let a;if(i.present(t.maxFramerate)){const n=i.f64(t.maxFramerate);if(n===void 0)return;a=n}let f;if(i.present(t.scaleResolutionDownBy)){const n=i.f64(t.scaleResolutionDownBy);if(n===void 0)return;f=n}const r={};return v!==void 0&&(r.rid=v),s!==void 0&&(r.active=s),l!==void 0&&(r.maxBitrate=l),a!==void 0&&(r.maxFramerate=a),f!==void 0&&(r.scaleResolutionDownBy=f),r},fe=e=>{const t=i.object(e);if(!t)return;const v=i.list(t.encodings,l=>X(l));return v===void 0?void 0:{encodings:v}},_=e=>e==="sendrecv"||e==="sendonly"||e==="recvonly"||e==="inactive"||e==="stopped"?e:void 0,ue=e=>{const t=i.object(e);if(!t)return;let v;if(i.present(t.direction)){const r=_(t.direction);if(r===void 0)return;v=r}let s;if(i.present(t.trackId)){const r=i.string(t.trackId);if(r===void 0)return;s=r}let l;if(i.present(t.streamIds)){const r=i.list(t.streamIds,n=>i.string(n));if(r===void 0)return;l=r}let a;if(i.present(t.sendEncodings)){const r=i.list(t.sendEncodings,n=>X(n));if(r===void 0)return;a=r}const f={};return v!==void 0&&(f.direction=v),s!==void 0&&(f.trackId=s),l!==void 0&&(f.streamIds=l),a!==void 0&&(f.sendEncodings=a),f},ve=e=>{const t=i.object(e);if(!t)return;let v;if(i.present(t.ordered)){const o=i.bool(t.ordered);if(o===void 0)return;v=o}let s;if(i.present(t.maxPacketLifeTime)){const o=i.i32(t.maxPacketLifeTime);if(o===void 0)return;s=o}let l;if(i.present(t.maxRetransmits)){const o=i.i32(t.maxRetransmits);if(o===void 0)return;l=o}let a;if(i.present(t.protocol)){const o=i.string(t.protocol);if(o===void 0)return;a=o}let f;if(i.present(t.negotiated)){const o=i.bool(t.negotiated);if(o===void 0)return;f=o}let r;if(i.present(t.id)){const o=i.i32(t.id);if(o===void 0)return;r=o}const n={};return v!==void 0&&(n.ordered=v),s!==void 0&&(n.maxPacketLifeTime=s),l!==void 0&&(n.maxRetransmits=l),a!==void 0&&(n.protocol=a),f!==void 0&&(n.negotiated=f),r!==void 0&&(n.id=r),n},q=e=>e==="cover"||e==="contain"?e:void 0,le=e=>{const t=i.object(e);if(!t)return;let v;if(i.present(t.trackId)){const f=i.string(t.trackId);if(f===void 0)return;v=f}let s;if(i.present(t.objectFit)){const f=q(t.objectFit);if(f===void 0)return;s=f}let l;if(i.present(t.mirror)){const f=i.bool(t.mirror);if(f===void 0)return;l=f}const a={};return v!==void 0&&(a.trackId=v),s!==void 0&&(a.objectFit=s),l!==void 0&&(a.mirror=l),a};class T extends Error{constructor(t){super(t),this.code=t}}const G={name:"rtcMedia",version:1},me=(e,t)=>{e.registerService(G.name,(v,s)=>{const l={deviceChange:()=>s.emit("deviceChange"),trackEnded:r=>s.emit("trackEnded",r)},a=t(Y(v)??{},l);return{call:async(r,n)=>{switch(r){case"getUserMedia":{const o=te(n[0]);if(o===void 0)throw new Error("bad arguments — RtcMedia.getUserMedia: constraints");return await a.getUserMedia(o)}case"enumerateDevices":return await a.enumerateDevices();case"setTrackEnabled":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcMedia.setTrackEnabled: trackId");const u=i.bool(n[1]);if(u===void 0)throw new Error("bad arguments — RtcMedia.setTrackEnabled: enabled");await a.setTrackEnabled(o,u);return}case"applyConstraints":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcMedia.applyConstraints: trackId");const u=K(n[1]);if(u===void 0)throw new Error("bad arguments — RtcMedia.applyConstraints: constraints");await a.applyConstraints(o,u);return}case"getTrackSettings":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcMedia.getTrackSettings: trackId");return await a.getTrackSettings(o)}case"stopTrack":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcMedia.stopTrack: trackId");await a.stopTrack(o);return}case"setAudioOutput":{const o=ne(n[0]);if(o===void 0)throw new Error("bad arguments — RtcMedia.setAudioOutput: output");await a.setAudioOutput(o);return}default:throw new Error(`Unknown method: ${r}`)}},close:()=>{var r;return(r=a.close)==null?void 0:r.call(a)}}},G.version)};class E extends Error{constructor(t){super(t),this.code=t}}const N={name:"rtcPeerConnection",version:1},we=(e,t)=>{e.registerService(N.name,(v,s)=>{const l={negotiationNeeded:()=>s.emit("negotiationNeeded"),iceCandidate:r=>s.emit("iceCandidate",r),signalingStateChange:r=>s.emit("signalingStateChange",r),iceGatheringStateChange:r=>s.emit("iceGatheringStateChange",r),iceConnectionStateChange:r=>s.emit("iceConnectionStateChange",r),connectionStateChange:r=>s.emit("connectionStateChange",r),track:r=>s.emit("track",r),trackMute:r=>s.emit("trackMute",r),trackEnded:r=>s.emit("trackEnded",r),dataChannel:r=>s.emit("dataChannel",r),dataChannelStateChange:r=>s.emit("dataChannelStateChange",r),dataChannelMessage:r=>s.emit("dataChannelMessage",r),dataChannelError:r=>s.emit("dataChannelError",r),dataChannelBufferedAmountLow:r=>s.emit("dataChannelBufferedAmountLow",r)},a=t(U(v)??{},l);return{call:async(r,n)=>{switch(r){case"createOffer":{let o;if(i.present(n[0])){const u=de(n[0]);if(u===void 0)throw new Error("bad arguments — RtcPeerConnection.createOffer: options");o=u}return await a.createOffer(o)}case"createAnswer":return await a.createAnswer();case"setLocalDescription":{let o;if(i.present(n[0])){const u=z(n[0]);if(u===void 0)throw new Error("bad arguments — RtcPeerConnection.setLocalDescription: description");o=u}return await a.setLocalDescription(o)}case"setRemoteDescription":{const o=z(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.setRemoteDescription: description");await a.setRemoteDescription(o);return}case"addIceCandidate":{let o;if(i.present(n[0])){const u=ce(n[0]);if(u===void 0)throw new Error("bad arguments — RtcPeerConnection.addIceCandidate: candidate");o=u}await a.addIceCandidate(o);return}case"restartIce":{await a.restartIce();return}case"setConfiguration":{const o=U(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.setConfiguration: configuration");await a.setConfiguration(o);return}case"addTrack":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.addTrack: trackId");let u;if(i.present(n[1])){const w=i.list(n[1],R=>i.string(R));if(w===void 0)throw new Error("bad arguments — RtcPeerConnection.addTrack: streamIds");u=w}return await a.addTrack(o,u)}case"removeTrack":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.removeTrack: senderId");await a.removeTrack(o);return}case"replaceTrack":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.replaceTrack: senderId");let u=null;if(i.present(n[1])){const w=i.string(n[1]);if(w===void 0)throw new Error("bad arguments — RtcPeerConnection.replaceTrack: trackId");u=w}await a.replaceTrack(o,u);return}case"getSenderParameters":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.getSenderParameters: senderId");return await a.getSenderParameters(o)}case"setSenderParameters":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.setSenderParameters: senderId");const u=fe(n[1]);if(u===void 0)throw new Error("bad arguments — RtcPeerConnection.setSenderParameters: parameters");await a.setSenderParameters(o,u);return}case"addTransceiver":{const o=re(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.addTransceiver: kind");let u;if(i.present(n[1])){const w=ue(n[1]);if(w===void 0)throw new Error("bad arguments — RtcPeerConnection.addTransceiver: options");u=w}return await a.addTransceiver(o,u)}case"getTransceivers":return await a.getTransceivers();case"setTransceiverDirection":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.setTransceiverDirection: transceiverId");const u=_(n[1]);if(u===void 0)throw new Error("bad arguments — RtcPeerConnection.setTransceiverDirection: direction");await a.setTransceiverDirection(o,u);return}case"stopTransceiver":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.stopTransceiver: transceiverId");await a.stopTransceiver(o);return}case"getStats":{let o;if(i.present(n[0])){const u=i.string(n[0]);if(u===void 0)throw new Error("bad arguments — RtcPeerConnection.getStats: trackId");o=u}return await a.getStats(o)}case"createDataChannel":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.createDataChannel: label");let u;if(i.present(n[1])){const w=ve(n[1]);if(w===void 0)throw new Error("bad arguments — RtcPeerConnection.createDataChannel: options");u=w}return await a.createDataChannel(o,u)}case"sendText":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.sendText: channelId");const u=i.string(n[1]);if(u===void 0)throw new Error("bad arguments — RtcPeerConnection.sendText: text");await a.sendText(o,u);return}case"sendBinary":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.sendBinary: channelId");const u=i.bytes(n[1]);if(u===void 0)throw new Error("bad arguments — RtcPeerConnection.sendBinary: data");await a.sendBinary(o,u);return}case"getBufferedAmount":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.getBufferedAmount: channelId");return await a.getBufferedAmount(o)}case"setBufferedAmountLowThreshold":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.setBufferedAmountLowThreshold: channelId");const u=i.f64(n[1]);if(u===void 0)throw new Error("bad arguments — RtcPeerConnection.setBufferedAmountLowThreshold: threshold");await a.setBufferedAmountLowThreshold(o,u);return}case"closeDataChannel":{const o=i.string(n[0]);if(o===void 0)throw new Error("bad arguments — RtcPeerConnection.closeDataChannel: channelId");await a.closeDataChannel(o);return}default:throw new Error(`Unknown method: ${r}`)}},close:()=>{var r;return(r=a.close)==null?void 0:r.call(a)}}},N.version)};class ge extends Error{constructor(t){super(t),this.code=t}}const $={name:"rtcVideo",version:1},he=(e,t)=>{e.registerView($.name,(v,s,l)=>{const a={resize:n=>s.emit("resize",n)},f=t(le(v)??{},a,l),r=async(n,o)=>{switch(n){case"setTrack":{let u=null;if(i.present(o[0])){const w=i.string(o[0]);if(w===void 0)throw new Error("bad arguments — RtcVideo.setTrack: trackId");u=w}await f.setTrack(u);return}case"setObjectFit":{const u=q(o[0]);if(u===void 0)throw new Error("bad arguments — RtcVideo.setObjectFit: fit");await f.setObjectFit(u);return}case"setMirror":{const u=i.bool(o[0]);if(u===void 0)throw new Error("bad arguments — RtcVideo.setMirror: mirror");await f.setMirror(u);return}default:throw new Error(`Unknown method: ${n}`)}};return{el:f.el,call:r,destroy:()=>{var n;return(n=f.destroy)==null?void 0:n.call(f)}}},$.version)},p=new Map,M=new Map,S=new Map;let pe=1;const P=e=>`${e}${pe++}`,L=e=>({id:e.id,kind:e.kind,label:e.label,enabled:e.enabled,muted:e.muted}),J=e=>{let t=M.get(e);return t||M.set(e,t=new MediaStream),t},Ce=e=>e instanceof Error?e.message:String(e),W=e=>{const t={};return e.deviceId?t.deviceId={exact:e.deviceId}:e.facingMode&&(t.facingMode=e.facingMode),e.width&&(t.width={ideal:e.width}),e.height&&(t.height={ideal:e.height}),e.frameRate&&(t.frameRate={ideal:e.frameRate}),t},be=e=>{const t=e instanceof DOMException?e.name:"";return t==="NotAllowedError"||t==="SecurityError"?new T("denied"):t==="NotFoundError"||t==="OverconstrainedError"||t==="NotReadableError"?new T("notFound"):new T("failed")},ye=e=>{me(e,(t,v)=>{var l,a;const s=()=>v.deviceChange();return(a=(l=navigator.mediaDevices).addEventListener)==null||a.call(l,"devicechange",s),{async getUserMedia(f){var o;const r={};if(f.audio){const u=f.audio,w={};u.deviceId&&(w.deviceId={exact:u.deviceId}),u.echoCancellation!==void 0&&(w.echoCancellation=u.echoCancellation),u.noiseSuppression!==void 0&&(w.noiseSuppression=u.noiseSuppression),u.autoGainControl!==void 0&&(w.autoGainControl=u.autoGainControl),r.audio=Object.keys(w).length?w:!0}if(f.video){const u=W(f.video);!f.video.deviceId&&!f.video.facingMode&&(u.facingMode="user"),r.video=u}let n;try{n=await navigator.mediaDevices.getUserMedia(r)}catch(u){throw be(u)}for(const u of n.getTracks())p.set(u.id,u),u.kind==="video"&&S.set(u.id,((o=f.video)==null?void 0:o.facingMode)??"user"),u.addEventListener("ended",()=>{p.get(u.id)===u&&(p.delete(u.id),v.trackEnded({trackId:u.id}))});return M.set(n.id,n),{id:n.id,tracks:n.getTracks().map(L)}},async enumerateDevices(){return(await navigator.mediaDevices.enumerateDevices()).map(r=>({deviceId:r.deviceId,kind:r.kind,label:r.label}))},setTrackEnabled(f,r){const n=p.get(f);if(!n)throw new T("notFound");n.enabled=r},async applyConstraints(f,r){const n=p.get(f);if(!n||n.kind!=="video")throw new T("notFound");try{await n.applyConstraints(W(r))}catch{throw new T("failed")}r.facingMode&&S.set(f,r.facingMode)},getTrackSettings(f){const r=p.get(f);if(!r)throw new T("notFound");const n=r.getSettings(),o={};n.deviceId&&(o.deviceId=n.deviceId);const u=n.facingMode??S.get(f);return u&&(o.facingMode=u),n.width&&(o.width=n.width),n.height&&(o.height=n.height),n.frameRate&&(o.frameRate=n.frameRate),o},stopTrack(f){const r=p.get(f);r&&(p.delete(f),S.delete(f),r.stop())},setAudioOutput(){},close(){var f,r;(r=(f=navigator.mediaDevices).removeEventListener)==null||r.call(f,"devicechange",s)}}})},H=e=>{const t={};return e.iceServers&&(t.iceServers=e.iceServers.map(v=>({urls:v.urls,...v.username!==void 0?{username:v.username}:{},...v.credential!==void 0?{credential:v.credential}:{}}))),e.iceTransportPolicy&&(t.iceTransportPolicy=e.iceTransportPolicy),e.bundlePolicy&&(t.bundlePolicy=e.bundlePolicy),e.iceCandidatePoolSize!==void 0&&(t.iceCandidatePoolSize=e.iceCandidatePoolSize),t},C=e=>new E(e instanceof DOMException&&e.name==="InvalidStateError"&&/closed/i.test(e.message)?"closed":"failed"),D=e=>({type:(e==null?void 0:e.type)??"offer",sdp:(e==null?void 0:e.sdp)??""}),Ee=e=>{we(e,(t,v)=>{const s=new RTCPeerConnection(H(t)),l=new Map,a=new Map,f=new Map,r=new Map,n=new Map,o=new Set;let u=!1;const w=d=>{let c=a.get(d);return c||(c=P("sender"),a.set(d,c),l.set(c,d)),c},R=d=>{let c=r.get(d);return c||(c=P("transceiver"),r.set(d,c),f.set(c,d)),c},A=d=>{var c;return{id:w(d),trackId:((c=d.track)==null?void 0:c.id)??null}},F=d=>{o.has(d.id)||(o.add(d.id),p.set(d.id,d),d.addEventListener("mute",()=>v.trackMute({trackId:d.id,muted:!0})),d.addEventListener("unmute",()=>v.trackMute({trackId:d.id,muted:!1})),d.addEventListener("ended",()=>{p.get(d.id)===d&&p.delete(d.id),v.trackEnded({trackId:d.id})}))},B=d=>(F(d.receiver.track),{id:R(d),mid:d.mid,direction:d.direction,currentDirection:d.currentDirection??null,sender:A(d.sender),receiverTrack:L(d.receiver.track),stopped:d.direction==="stopped"}),j=(d,c)=>({id:d,label:c.label,ordered:c.ordered,maxPacketLifeTime:c.maxPacketLifeTime??null,maxRetransmits:c.maxRetransmits??null,protocol:c.protocol,negotiated:c.negotiated,streamId:c.id??null,readyState:c.readyState}),O=(d,c)=>{n.set(d,c),c.binaryType="arraybuffer",c.addEventListener("open",()=>v.dataChannelStateChange({id:d,state:"open"})),c.addEventListener("closing",()=>v.dataChannelStateChange({id:d,state:"closing"})),c.addEventListener("close",()=>{n.delete(d),v.dataChannelStateChange({id:d,state:"closed"})}),c.addEventListener("error",m=>v.dataChannelError({id:d,message:Ce(m.error??"error")})),c.addEventListener("bufferedamountlow",()=>v.dataChannelBufferedAmountLow({id:d})),c.addEventListener("message",m=>{const g=m.data;typeof g=="string"?v.dataChannelMessage({id:d,text:g}):v.dataChannelMessage({id:d,binary:new Uint8Array(g)})})},k=d=>{const c=n.get(d);if(!c)throw new E("notFound");return c},I=d=>{const c=l.get(d);if(!c)throw new E("notFound");return c},x=d=>{const c=p.get(d);if(!c)throw new E("notFound");return c},b=()=>{if(u)throw new E("closed")};return s.addEventListener("negotiationneeded",()=>v.negotiationNeeded()),s.addEventListener("icecandidate",d=>{const c=d.candidate,m=c&&c.candidate?{candidate:c.candidate,sdpMid:c.sdpMid,sdpMLineIndex:c.sdpMLineIndex,...c.usernameFragment?{usernameFragment:c.usernameFragment}:{}}:null;v.iceCandidate({candidate:m})}),s.addEventListener("signalingstatechange",()=>v.signalingStateChange({state:s.signalingState})),s.addEventListener("icegatheringstatechange",()=>v.iceGatheringStateChange({state:s.iceGatheringState})),s.addEventListener("iceconnectionstatechange",()=>v.iceConnectionStateChange({state:s.iceConnectionState})),s.addEventListener("connectionstatechange",()=>v.connectionStateChange({state:s.connectionState})),s.addEventListener("track",d=>{F(d.track);for(const c of d.streams)M.set(c.id,c);v.track({track:L(d.track),streamIds:d.streams.map(c=>c.id),transceiverId:R(d.transceiver)})}),s.addEventListener("datachannel",d=>{const c=P("channel");O(c,d.channel),v.dataChannel(j(c,d.channel))}),{async createOffer(d){b();try{return D(await s.createOffer(d??{}))}catch(c){throw C(c)}},async createAnswer(){b();try{return D(await s.createAnswer())}catch(d){throw C(d)}},async setLocalDescription(d){b();try{d?await s.setLocalDescription(d):await s.setLocalDescription()}catch(c){throw C(c)}return D(s.localDescription)},async setRemoteDescription(d){b();try{await s.setRemoteDescription(d)}catch(c){throw C(c)}},async addIceCandidate(d){b();try{await s.addIceCandidate(d??void 0)}catch(c){throw C(c)}},restartIce(){s.restartIce()},setConfiguration(d){try{s.setConfiguration(H(d))}catch(c){throw C(c)}},addTrack(d,c=[]){b();const m=x(d);try{return A(s.addTrack(m,...c.map(J)))}catch(g){throw C(g)}},removeTrack(d){b();try{s.removeTrack(I(d))}catch(c){throw C(c)}},async replaceTrack(d,c){b();const m=c===null?null:x(c);try{await I(d).replaceTrack(m)}catch(g){throw C(g)}},getSenderParameters(d){return{encodings:(I(d).getParameters().encodings??[]).map(m=>({...m.rid!==void 0?{rid:m.rid}:{},...m.active!==void 0?{active:m.active}:{},...m.maxBitrate!==void 0?{maxBitrate:m.maxBitrate}:{},...m.maxFramerate!==void 0?{maxFramerate:m.maxFramerate}:{},...m.scaleResolutionDownBy!==void 0?{scaleResolutionDownBy:m.scaleResolutionDownBy}:{}}))}},async setSenderParameters(d,c){const m=I(d),g=m.getParameters();g.encodings=(g.encodings??[]).map((h,Q)=>{const y=c.encodings.find(V=>V.rid&&V.rid===h.rid)??c.encodings[Q];return y&&(y.active!==void 0&&(h.active=y.active),y.maxBitrate!==void 0&&(h.maxBitrate=y.maxBitrate),y.maxFramerate!==void 0&&(h.maxFramerate=y.maxFramerate),y.scaleResolutionDownBy!==void 0&&(h.scaleResolutionDownBy=y.scaleResolutionDownBy)),h});try{await m.setParameters(g)}catch(h){throw C(h)}},addTransceiver(d,c={}){b();const m={};c.direction&&(m.direction=c.direction),c.streamIds&&(m.streams=c.streamIds.map(J)),c.sendEncodings&&(m.sendEncodings=c.sendEncodings.map(h=>({...h})));const g=c.trackId?x(c.trackId):d;try{return B(s.addTransceiver(g,m))}catch(h){throw C(h)}},getTransceivers(){return s.getTransceivers().map(B)},setTransceiverDirection(d,c){const m=f.get(d);if(!m)throw new E("notFound");try{m.direction=c}catch(g){throw C(g)}},stopTransceiver(d){const c=f.get(d);if(!c)throw new E("notFound");c.stop()},async getStats(d){const c=await s.getStats(d?p.get(d)??null:null),m={};return c.forEach((g,h)=>{m[h]=JSON.parse(JSON.stringify(g))}),m},createDataChannel(d,c={}){b();let m;try{m=s.createDataChannel(d,c)}catch(h){throw C(h)}const g=P("channel");return O(g,m),j(g,m)},sendText(d,c){const m=k(d);if(m.readyState!=="open")throw new E("closed");m.send(c)},sendBinary(d,c){const m=k(d);if(m.readyState!=="open")throw new E("closed");m.send(c)},getBufferedAmount(d){return k(d).bufferedAmount},setBufferedAmountLowThreshold(d,c){k(d).bufferedAmountLowThreshold=c},closeDataChannel(d){var c;(c=n.get(d))==null||c.close()},close(){if(!u){u=!0,s.close();for(const d of n.values())d.close();n.clear()}}}})},Te=e=>{he(e,(t,v,s)=>{const l=s.createElement("div");l.style.cssText="background:#000;overflow:hidden";const a=s.createElement("video");a.autoplay=!0,a.muted=!0,a.playsInline=!0,a.setAttribute("playsinline",""),a.style.cssText="position:absolute;inset:0;width:100%;height:100%",l.appendChild(a);let f=t.objectFit??"cover",r=t.mirror??!1;const n=()=>{a.style.objectFit=f,a.style.transform=r?"scaleX(-1)":""};n(),a.addEventListener("resize",()=>{a.videoWidth&&v.resize({width:a.videoWidth,height:a.videoHeight})});const o=u=>{if(u===null){a.srcObject=null;return}const w=p.get(u);if(!w)throw new ge("notFound");a.srcObject=new MediaStream([w]),a.play().catch(()=>{})};try{o(t.trackId??null)}catch{}return{el:l,setTrack:u=>{o(u)},setObjectFit:u=>{f=u,n()},setMirror:u=>{r=u,n()},destroy:()=>{a.srcObject=null,l.remove()}}})},Re=e=>{var t;typeof navigator>"u"||typeof RTCPeerConnection>"u"||typeof((t=navigator.mediaDevices)==null?void 0:t.getUserMedia)!="function"||(ye(e),Ee(e),Te(e))};export{Re as register};
|