@4players/odin-common
Version:
Commonly used type definitions and utility functions across ODIN web projects
2 lines (1 loc) • 10.8 kB
JavaScript
var b=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var j=(e,t)=>{for(var r in t)b(e,r,{get:t[r],enumerable:!0})},_=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of N(t))!M.call(e,o)&&o!==r&&b(e,o,{get:()=>t[o],enumerable:!(n=U(t,o))||n.enumerable});return e};var $=e=>_(b({},"__esModule",{value:!0}),e);var Ue={};j(Ue,{APM_DEFAULTS:()=>H,Backend:()=>A,CONNECTION_STATS_INITIAL:()=>G,CallbackSink:()=>w,ConsoleSink:()=>m,Formatter:()=>f,GLOBAL_LOGGER:()=>p,InteractiveConsoleSink:()=>S,JITTER_STATS_INITIAL:()=>J,LogLevel:()=>d,LogSymbols:()=>P,Logger:()=>c,MinDBFS:()=>Me,Selector:()=>h,Strand:()=>R,VAD_DEFAULTS:()=>W,VideoCodec:()=>L,abortableSleep:()=>ae,assert:()=>g,debug:()=>Ie,error:()=>Fe,extendUrl:()=>le,fail:()=>v,failure:()=>u,find:()=>Q,fromBase64:()=>Z,fromBase64Url:()=>q,fromBytes:()=>X,generateUUID:()=>pe,info:()=>De,isAudioCapable:()=>ee,isBlinkBrowser:()=>V,isElectronBrowser:()=>re,isFailure:()=>he,isFirefoxBrowser:()=>ne,isFunction:()=>me,isNull:()=>ye,isNumber:()=>xe,isObject:()=>be,isProperty:()=>fe,isSafariBrowser:()=>oe,isSharedArrayBufferCapable:()=>te,isString:()=>ve,isSuccess:()=>Re,isUndefined:()=>Le,log:()=>Ee,nextTick:()=>ue,normalizeUrl:()=>ce,sleep:()=>se,success:()=>i,toBytes:()=>Y,toRaw:()=>ie,tryParseLogLevel:()=>Pe,unwrap:()=>z,unwrapOr:()=>y,validateUUID:()=>ge,warn:()=>Be});module.exports=$(Ue);var Me=-758.596,A;(t=>{let e;(a=>(a[a.InvalidPassword=-1]="InvalidPassword",a[a.Unknown=0]="Unknown",a[a.Unencrypted=1]="Unencrypted",a[a.Encrypted=2]="Encrypted"))(e=t.PeerCipherStatus||={})})(A||={});var G={bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0,rtt:0,packetLoss:0},J={packetsBuffered:0,packetsSeen:0,packetsProcessed:0,packetsTooEarly:0,packetsTooLate:0,packetsDropped:0,packetsInvalid:0,packetsRepeated:0,packetsLost:0},W={voiceActivity:{attackThreshold:.9,releaseThreshold:.8},volumeGate:{attackThreshold:-30,releaseThreshold:-40}},H={echoCanceller:!0,highPassFilter:!1,noiseSuppression:"Moderate",transientSuppressor:!1,gainController:!0};function g(e,t){e||v(t)}function v(e){throw new Error(e)}function i(e){return{type:"Success",value:e}}function u(e){return{type:"Failure",reason:e}}function z(e){return e.type==="Failure"&&v(e.reason),e.value}function y(e,t){return e.type==="Success"?e.value:t}function Z(e){try{let t=atob(e),r=Uint8Array.from(t,o=>o.codePointAt(0)),n=new TextDecoder("utf8");return i(n.decode(r))}catch(t){return u(String(t))}}function q(e){try{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),r=Uint8Array.from(t,o=>o.codePointAt(0)),n=new TextDecoder("utf8");return i(n.decode(r))}catch(t){return u(String(t))}}function Y(e){try{g(e!==void 0,"undefined cannot be converted to byte array"),g(e!==null,"null cannot be converted to byte array");let t=JSON.stringify(e),r=new TextEncoder;return i(r.encode(t))}catch(t){return u(String(t))}}function X(e){try{g(e.length>0,"empty byte array cannot be converted to value");let t=new TextDecoder().decode(e),r=JSON.parse(t);return i(r)}catch(t){return u(String(t))}}var K=["VP8","VP9","AV1","H264"],L=class{constructor(t){this.codec=t}channels=0;clockRate=9e4;isValid(){return K.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let t=y(this.getMimeType(),"").toLowerCase(),r=new Set(y(this.getSdpFmtpLine(),"").split(";").map(n=>n.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(n=>{let o=n.mimeType.toLowerCase(),s=new Set((n.sdpFmtpLine??"").split(";").map(a=>a.trim().toLowerCase()));if(t!==o||r.size!==s.size)return!1;for(let a of r)if(!s.has(a))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return i(96);case"VP9":return i(98);case"AV1":return i(41);case"H264":return i(102);default:return u("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return i("video/VP8");case"VP9":return i("video/VP9");case"AV1":return i("video/AV1");case"H264":return i("video/H264");default:return u("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return i("");case"VP9":return i("profile-id=0");case"AV1":return i("level-idx=5;profile=0;tier=0");case"H264":return i("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return u("invalid video codec")}}};function Q(e,t){for(let r of e)if(t(r))return r}function ee(){return typeof AudioContext<"u"&&typeof Worker<"u"}function te(){return typeof SharedArrayBuffer<"u"}function V(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function re(){return/electron/i.test(globalThis.navigator.userAgent)}function ne(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function oe(){return V()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function ie(e){return JSON.parse(JSON.stringify(e))}var h=class e{constructor(t){this._Generators=t;this._Futures=t.map(e.addIndex)}_Futures;async next(){let[t,r]=await Promise.race(this._Futures);return this._Futures[r]=e.addIndex(this._Generators[r],r),t}static async addIndex(t,r){return[await t(),r]}};function se(e,t){return e<=0?Promise.resolve(t):new Promise(r=>setTimeout(()=>r(t),e))}function ae(e,t){return t.aborted?Promise.resolve("aborted"):new Promise(r=>{let n=setTimeout(()=>{t.removeEventListener("abort",o),r(void 0)},e),o=()=>{clearTimeout(n),r("aborted")};t.addEventListener("abort",o,{once:!0})})}function ue(){return new Promise(e=>setTimeout(e,0))}var R=class{_Tasks=[];_Running=!1;_Values;constructor(...t){this._Values=t}enqueue(t){return new Promise((r,n)=>{let o=async()=>{try{let s=await t(...this._Values);r(s)}catch(s){n(s)}};this._Tasks.push(o),this._Running||this.execute()})}async execute(){for(this._Running=!0;;){let t=this._Tasks.shift();if(t===void 0)break;await t()}this._Running=!1}};function ce(e){let t=e.trim();t.indexOf("://")===-1&&(t=`https://${t}`);try{return i(new URL(t))}catch(r){return u(String(r))}}function le(e,t){let r=e.pathname;r.endsWith("/")===!1&&(r+="/");try{return i(new URL(r+t,e))}catch(n){return u(String(n))}}var de=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function pe(){return crypto.randomUUID()}function ge(e){return de.test(e)}function fe(e,t){return t in e}function me(e){return typeof e=="function"}function ye(e){return typeof e=="object"&&e===null}function xe(e){return typeof e=="number"}function be(e){return typeof e=="object"}function ve(e){return typeof e=="string"}function Le(e){return typeof e>"u"}function he(e){return e.type==="Failure"}function Re(e){return e.type==="Success"}var{Deno:O}=globalThis,ke=typeof O?.noColor=="boolean"?O.noColor:!1,Te=!ke;function k(e,t){return{open:`\x1B[${e.join(";")}m`,close:`\x1B[${t}m`,regexp:new RegExp(`\\x1b\\[${t}m`,"g")}}function T(e,t){return Te?`${t.open}${e.replace(t.regexp,t.open)}${t.close}`:e}function x(e){return T(e,k([0],0))}function C(e){return T(e,k([1],22))}function F(e){return T(e,k([2],22))}var ot=new RegExp(["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TXZcf-nq-uy=><~]))"].join("|"),"g");var Se=new Date,d=(s=>(s[s.CRITICAL=0]="CRITICAL",s[s.ERROR=1]="ERROR",s[s.WARN=2]="WARN",s[s.INFO=3]="INFO",s[s.DEBUG=4]="DEBUG",s))(d||{}),P={0:"\u{1F4A5}",1:"\u{1F534}",2:"\u{1F7E1}",3:"\u{1F535}",4:"\u{1F7E3}"},we={4:F,3:x,2:x,1:C,0:C};function Pe(e){for(let t of Object.keys(d))if(isNaN(Number(t))!==!1&&t.localeCompare(e,void 0,{sensitivity:"accent"})===0)return d[t]}function Ae({message:e}){return String(e)}function B(e){return JSON.stringify({timestamp:e.date.toISOString(),level:d[e.level],message:e.message,extra:e.extra})}function D(e){function t(a,l){return[Math.floor(a/l),a%l]}function r(){let a,l=e.date.valueOf()-Se.valueOf();[l,a]=t(l,1e3);let[I,E]=t(l,60);return`${I.toString().padStart(4,"0")}:${E.toString().padStart(2,"0")}.${a.toString().padStart(3,"0")}`}function n(){return e.extra===void 0?"":typeof Deno=="object"?" "+Deno.inspect(e.extra,{compact:!1,colors:!0,trailingComma:!0}).trimStart():" "+JSON.stringify(e.extra)}let o=P[e.level],s=e.logger.name!==void 0?`@${e.logger.name}`:"";return`${x(r())}${s} ${o} ${we[e.level](String(e.message))}${n()}`}function Ve(e){let t=`[${e.date.toISOString()}]`,r=`[${d[e.level]}]`,n=e.logger.name!==void 0?`[${e.logger.name}] `:"",o=P[e.level];return`${t} ${o} ${r.padEnd(7," ")} ${n}${e.message}`}function Oe(){return typeof Deno=="object"&&Deno.stdout.isTerminal()}var f=class{static sparse=Ae;static json=B;static pretty=D;static structured=Ve;static default=Oe()?D:B;constructor(){}},m=class{formatter;consoleObject;filter;constructor(t=f.default,r=4,n=console){this.filter=r,this.formatter=t,this.consoleObject=n}handle(t){let r=this.formatter(t);switch(t.level){case 0:case 1:this.consoleObject.error(r);break;case 2:this.consoleObject.warn(r);break;case 3:this.consoleObject.info(r);break;case 4:this.consoleObject.debug(r);break}}},S=class extends m{handle(t){let r=this.formatter(t),n=t.extra!==void 0?[r,t.extra]:[r];switch(t.level){case 0:case 1:this.consoleObject.error(...n);break;case 2:this.consoleObject.warn(...n);break;case 3:this.consoleObject.info(...n);break;case 4:this.consoleObject.debug(...n);break}}},w=class{formatter;cb;filter;constructor(t,r=f.default,n=4){this.cb=t,this.formatter=r,this.filter=n}handle(t){let r=this.formatter(t);this.cb(r,t)}},c=class{#e;sinks;filter;parent;get name(){return this.#e}constructor(t,r=void 0,n=[],o=void 0){this.#e=r,this.sinks=n,this.filter=t,this.parent=o}log(t,r,n=void 0){let s={date:new Date,level:t,logger:this,message:r,extra:n};this.filter<t||this.insert(s)}insert(t){if(!(this.filter<t.level)){for(let r of this.sinks)r.filter>=t.level&&r.handle(t);this.parent!==void 0&&this.parent.insert(t)}}error=this.log.bind(this,1);warn=this.log.bind(this,2);info=this.log.bind(this,3);debug=this.log.bind(this,4)},p=new c(3,void 0,[new m]),Fe=c.prototype.log.bind(p,1),Be=c.prototype.log.bind(p,2),De=c.prototype.log.bind(p,3),Ie=c.prototype.log.bind(p,4),Ee=c.prototype.log.bind(p);0&&(module.exports={APM_DEFAULTS,Backend,CONNECTION_STATS_INITIAL,CallbackSink,ConsoleSink,Formatter,GLOBAL_LOGGER,InteractiveConsoleSink,JITTER_STATS_INITIAL,LogLevel,LogSymbols,Logger,MinDBFS,Selector,Strand,VAD_DEFAULTS,VideoCodec,abortableSleep,assert,debug,error,extendUrl,fail,failure,find,fromBase64,fromBase64Url,fromBytes,generateUUID,info,isAudioCapable,isBlinkBrowser,isElectronBrowser,isFailure,isFirefoxBrowser,isFunction,isNull,isNumber,isObject,isProperty,isSafariBrowser,isSharedArrayBufferCapable,isString,isSuccess,isUndefined,log,nextTick,normalizeUrl,sleep,success,toBytes,toRaw,tryParseLogLevel,unwrap,unwrapOr,validateUUID,warn});