@4players/odin-common 9.2.0 → 9.3.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.
@@ -3,14 +3,14 @@ export type RpcValue = Uint8Array | string | number | boolean | null | RpcValue[
3
3
  [key: string]: RpcValue;
4
4
  };
5
5
  export type RpcSchema = z.ZodType<RpcValue, unknown>;
6
- export declare const ByteArraySchema: any;
6
+ export declare const ByteArraySchema: z.ZodCustom<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>>;
7
7
  export type ByteArray = z.infer<typeof ByteArraySchema>;
8
- declare const LiteralSchema: any;
8
+ declare const LiteralSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
9
9
  type Literal = z.infer<typeof LiteralSchema>;
10
10
  export type JsonValue = Literal | {
11
11
  [key: string]: JsonValue;
12
12
  } | JsonValue[];
13
13
  export declare const JsonSchema: z.ZodType<JsonValue>;
14
- export declare const MessagePackRpcSchema: any;
14
+ export declare const MessagePackRpcSchema: z.ZodUnion<readonly [z.ZodTuple<[z.ZodLiteral<0>, z.ZodNumber, z.ZodString, z.ZodUnknown], null>, z.ZodTuple<[z.ZodLiteral<1>, z.ZodNumber, z.ZodNullable<z.ZodString>, z.ZodUnknown], null>, z.ZodTuple<[z.ZodLiteral<2>, z.ZodString, z.ZodUnknown], null>]>;
15
15
  export type MessagePackRpc = z.infer<typeof MessagePackRpcSchema>;
16
16
  export {};
package/cjs/mod.js CHANGED
@@ -1 +1 @@
1
- var x=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var _=(e,t)=>{for(var r in t)x(e,r,{get:t[r],enumerable:!0})},$=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of M(t))!j.call(e,s)&&s!==r&&x(e,s,{get:()=>t[s],enumerable:!(n=N(t,s))||n.enumerable});return e};var G=e=>$(x({},"__esModule",{value:!0}),e);var Fe={};_(Fe,{APM_DEFAULTS:()=>H,Backend:()=>P,CONNECTION_STATS_INITIAL:()=>J,ConsoleSink:()=>g,Formatter:()=>B,GLOBAL_LOGGER:()=>l,InteractiveConsoleSink:()=>S,JITTER_STATS_INITIAL:()=>W,LogFilter:()=>y,LogLevel:()=>b,LogSymbols:()=>A,Logger:()=>p,MinDBFS:()=>Me,Selector:()=>R,Strand:()=>T,VAD_DEFAULTS:()=>z,VideoCodec:()=>h,abortableSleep:()=>ue,assert:()=>d,debug:()=>Be,error:()=>Ie,extendUrl:()=>le,fail:()=>v,failure:()=>c,find:()=>ee,fromBase64:()=>q,fromBase64Url:()=>Y,fromBytes:()=>K,generateUUID:()=>ge,info:()=>Ee,isAudioCapable:()=>te,isBlinkBrowser:()=>w,isElectronBrowser:()=>ne,isFailure:()=>Te,isFirefoxBrowser:()=>oe,isFunction:()=>ye,isNull:()=>be,isNumber:()=>xe,isObject:()=>ve,isProperty:()=>me,isSafariBrowser:()=>ie,isSharedArrayBufferCapable:()=>re,isString:()=>he,isSuccess:()=>ke,isUndefined:()=>Re,log:()=>Ue,nextTick:()=>ce,normalizeUrl:()=>pe,sleep:()=>ae,success:()=>o,toBytes:()=>X,toRaw:()=>se,tryParseLogFilter:()=>we,unwrap:()=>Z,unwrapOr:()=>f,validateUUID:()=>fe,warn:()=>De});module.exports=G(Fe);var Me=-758.596,P;(t=>{let e;(u=>(u[u.InvalidPassword=-1]="InvalidPassword",u[u.Unknown=0]="Unknown",u[u.Unencrypted=1]="Unencrypted",u[u.Encrypted=2]="Encrypted"))(e=t.PeerCipherStatus||={})})(P||={});var J={bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0,rtt:0,packetLoss:0},W={packetsBuffered:0,packetsSeen:0,packetsProcessed:0,packetsTooEarly:0,packetsTooLate:0,packetsDropped:0,packetsInvalid:0,packetsRepeated:0,packetsLost:0},z={voiceActivity:{attackThreshold:.9,releaseThreshold:.8},volumeGate:{attackThreshold:-30,releaseThreshold:-40}},H={echoCanceller:!0,highPassFilter:!1,noiseSuppression:"Moderate",transientSuppressor:!1,gainController:!0};function d(e,t){e||v(t)}function v(e){throw new Error(e)}function o(e){return{type:"Success",value:e}}function c(e){return{type:"Failure",reason:e}}function Z(e){return e.type==="Failure"&&v(e.reason),e.value}function f(e,t){return e.type==="Success"?e.value:t}function q(e){try{let t=atob(e),r=Uint8Array.from(t,s=>s.codePointAt(0)),n=new TextDecoder("utf8");return o(n.decode(r))}catch(t){return c(String(t))}}function Y(e){try{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),r=Uint8Array.from(t,s=>s.codePointAt(0)),n=new TextDecoder("utf8");return o(n.decode(r))}catch(t){return c(String(t))}}function X(e){try{d(e!==void 0,"undefined cannot be converted to byte array"),d(e!==null,"null cannot be converted to byte array");let t=JSON.stringify(e),r=new TextEncoder;return o(r.encode(t))}catch(t){return c(String(t))}}function K(e){try{d(e.length>0,"empty byte array cannot be converted to value");let t=new TextDecoder().decode(e),r=JSON.parse(t);return o(r)}catch(t){return c(String(t))}}var Q=["VP8","VP9","AV1","H264"],h=class{constructor(t){this.codec=t}channels=0;clockRate=9e4;isValid(){return Q.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let t=f(this.getMimeType(),"").toLowerCase(),r=new Set(f(this.getSdpFmtpLine(),"").split(";").map(n=>n.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(n=>{let s=n.mimeType.toLowerCase(),i=new Set((n.sdpFmtpLine??"").split(";").map(u=>u.trim().toLowerCase()));if(t!==s||r.size!==i.size)return!1;for(let u of r)if(!i.has(u))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return o(96);case"VP9":return o(98);case"AV1":return o(41);case"H264":return o(102);default:return c("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return o("video/VP8");case"VP9":return o("video/VP9");case"AV1":return o("video/AV1");case"H264":return o("video/H264");default:return c("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return o("");case"VP9":return o("profile-id=2");case"AV1":return o("level-idx=5;profile=0;tier=0");case"H264":return o("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return c("invalid video codec")}}};function ee(e,t){for(let r of e)if(t(r))return r}function te(){return typeof AudioContext<"u"&&typeof Worker<"u"}function re(){return typeof SharedArrayBuffer<"u"}function w(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function ne(){return/electron/i.test(globalThis.navigator.userAgent)}function oe(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function ie(){return w()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function se(e){return JSON.parse(JSON.stringify(e))}var R=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 ae(e,t){return e<=0?Promise.resolve(t):new Promise(r=>setTimeout(()=>r(t),e))}function ue(e,t){return t.aborted?Promise.resolve("aborted"):new Promise(r=>{let n=()=>r("aborted");t.addEventListener("abort",n,{once:!0}),setTimeout(()=>{t.removeEventListener("abort",n),r(void 0)},e)})}function ce(){return new Promise(e=>setTimeout(e,0))}var T=class{_Tasks=[];_Running=!1;_Values;constructor(...t){this._Values=t}enqueue(t){return new Promise((r,n)=>{let s=async()=>{try{let i=await t(...this._Values);r(i)}catch(i){n(i)}};this._Tasks.push(s),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 pe(e){let t=e.trim();e.indexOf("://")===-1&&(t=`https://${t}`);try{return o(new URL(t))}catch(r){return c(String(r))}}function le(e,t){let r=e.pathname;r.endsWith("/")===!1&&(r+="/");try{return o(new URL(r+t,e))}catch(n){return c(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 ge(){return crypto.randomUUID()}function fe(e){return de.test(e)}function me(e,t){return t in e}function ye(e){return typeof e=="function"}function be(e){return typeof e=="object"&&e===null}function xe(e){return typeof e=="number"}function ve(e){return typeof e=="object"}function he(e){return typeof e=="string"}function Re(e){return typeof e>"u"}function Te(e){return e.type==="Failure"}function ke(e){return e.type==="Success"}var{Deno:V}=globalThis,Ce=typeof V?.noColor=="boolean"?V.noColor:!1,Le=!Ce;function k(e,t){return{open:`\x1B[${e.join(";")}m`,close:`\x1B[${t}m`,regexp:new RegExp(`\\x1b\\[${t}m`,"g")}}function C(e,t){return Le?`${t.open}${e.replace(t.regexp,t.open)}${t.close}`:e}function m(e){return C(e,k([0],0))}function L(e){return C(e,k([1],22))}function O(e){return C(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 y=(a=>(a[a.Nothing=0]="Nothing",a[a.CRITICAL=1]="CRITICAL",a[a.ERROR=2]="ERROR",a[a.WARN=3]="WARN",a[a.INFO=4]="INFO",a[a.DEBUG=5]="DEBUG",a[a.Everything=6]="Everything",a))(y||{}),Ae=new Date,b=(i=>(i[i.CRITICAL=1]="CRITICAL",i[i.ERROR=2]="ERROR",i[i.WARN=3]="WARN",i[i.INFO=4]="INFO",i[i.DEBUG=5]="DEBUG",i))(b||{}),A={1:"\u{1F4A5}",2:"\u{1F534}",3:"\u{1F7E1}",4:"\u{1F535}",5:"\u{1F7E3}"},Pe={5:O,4:m,3:m,2:L,1:L};function we(e){for(let t of Object.keys(y))if(isNaN(Number(t))!==!1&&t.localeCompare(e,void 0,{sensitivity:"accent"})===0)return y[t]}function Ve({message:e}){return String(e)}function I(e){return JSON.stringify({timestamp:e.date.toISOString(),level:b[e.level],message:e.message,extra:e.extra})}function D(e){function t(u,a){return[Math.floor(u/a),u%a]}function r(){let u,a=e.date.valueOf()-Ae.valueOf();[a,u]=t(a,1e3);let[U,F]=t(a,60);return`${U.toString().padStart(4,"0")}:${F.toString().padStart(2,"0")}.${u.toString().padStart(4,"0")}`}function n(){return e.extra===void 0?"":"Deno"in globalThis?" "+Deno.inspect(e.extra,{compact:!1,colors:!0,trailingComma:!0}).trimStart():" "+JSON.stringify(e.extra)}let s=A[e.level],i=e.logger.name!==void 0?`@${e.logger}`:"";return`${m(r())}${i} ${s} ${Pe[e.level](String(e.message))}${n()}`}function Oe(e){let t=`[${e.date.toISOString()}]`,r=`[${b[e.level]}]`,n=e.logger.name!==void 0?`[${e.logger.name}] `:"",s=A[e.level];return`${t} ${s} ${r.padEnd(7," ")} ${n}${e.message}`}var B={sparse:Ve,json:I,pretty:D,structured:Oe,default:"Deno"in globalThis&&Deno.stdout.isTerminal()?D:I},g=class{formatter;consoleObject;filter;constructor(t=B.default,r=6,n=console){this.filter=r,this.formatter=t,this.consoleObject=n}handle(t){let r=this.formatter(t);switch(t.level){case 2:this.consoleObject.error(r);break;case 3:this.consoleObject.warn(r);break;case 4:this.consoleObject.info(r);break;case 5:this.consoleObject.debug(r);break}}},S=class extends g{handle(t){let r=this.formatter(t),n=t.extra!==void 0?[r,t.extra]:[r];switch(t.level){case 1:case 2:this.consoleObject.error(...n);break;case 3:this.consoleObject.warn(...n);break;case 4:this.consoleObject.info(...n);break;case 5:this.consoleObject.debug(...n);break}}},p=class{#e;sinks;filter;get name(){return this.#e}constructor(t,r=void 0,n=[new g]){this.#e=r,this.sinks=n,this.filter=t}log(t,r,n=void 0){if(this.filter<t)return;let s=E;for(let i of this.sinks)i.filter<t||(s===E&&(s={date:new Date,level:t,logger:this,message:typeof r=="function"?r():r,extra:n}),i.handle(s))}error=this.log.bind(this,2);warn=this.log.bind(this,3);info=this.log.bind(this,4);debug=this.log.bind(this,5)},l=new p(4),Ie=p.prototype.log.bind(l,2),De=p.prototype.log.bind(l,3),Ee=p.prototype.log.bind(l,4),Be=p.prototype.log.bind(l,5),Ue=p.prototype.log.bind(l),E=Symbol();0&&(module.exports={APM_DEFAULTS,Backend,CONNECTION_STATS_INITIAL,ConsoleSink,Formatter,GLOBAL_LOGGER,InteractiveConsoleSink,JITTER_STATS_INITIAL,LogFilter,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,tryParseLogFilter,unwrap,unwrapOr,validateUUID,warn});
1
+ var y=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var N=Object.prototype.hasOwnProperty;var M=(e,t)=>{for(var r in t)y(e,r,{get:t[r],enumerable:!0})},j=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of U(t))!N.call(e,s)&&s!==r&&y(e,s,{get:()=>t[s],enumerable:!(n=F(t,s))||n.enumerable});return e};var _=e=>j(y({},"__esModule",{value:!0}),e);var Ee={};M(Ee,{APM_DEFAULTS:()=>W,Backend:()=>P,CONNECTION_STATS_INITIAL:()=>$,ConsoleSink:()=>f,Formatter:()=>B,GLOBAL_LOGGER:()=>d,InteractiveConsoleSink:()=>C,JITTER_STATS_INITIAL:()=>J,LogLevel:()=>p,LogSymbols:()=>S,Logger:()=>c,MinDBFS:()=>Ue,Selector:()=>h,Strand:()=>L,VAD_DEFAULTS:()=>G,VideoCodec:()=>v,abortableSleep:()=>se,assert:()=>g,debug:()=>Be,error:()=>Ve,extendUrl:()=>ce,fail:()=>x,failure:()=>u,find:()=>K,fromBase64:()=>z,fromBase64Url:()=>Z,fromBytes:()=>Y,generateUUID:()=>pe,info:()=>De,isAudioCapable:()=>Q,isBlinkBrowser:()=>A,isElectronBrowser:()=>te,isFailure:()=>he,isFirefoxBrowser:()=>re,isFunction:()=>fe,isNull:()=>me,isNumber:()=>be,isObject:()=>ye,isProperty:()=>ge,isSafariBrowser:()=>ne,isSharedArrayBufferCapable:()=>ee,isString:()=>xe,isSuccess:()=>Le,isUndefined:()=>ve,log:()=>Ie,nextTick:()=>ae,normalizeUrl:()=>ue,sleep:()=>ie,success:()=>o,toBytes:()=>q,toRaw:()=>oe,tryParseLogLevel:()=>Pe,unwrap:()=>H,unwrapOr:()=>m,validateUUID:()=>de,warn:()=>Oe});module.exports=_(Ee);var Ue=-758.596,P;(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||={})})(P||={});var $={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},G={voiceActivity:{attackThreshold:.9,releaseThreshold:.8},volumeGate:{attackThreshold:-30,releaseThreshold:-40}},W={echoCanceller:!0,highPassFilter:!1,noiseSuppression:"Moderate",transientSuppressor:!1,gainController:!0};function g(e,t){e||x(t)}function x(e){throw new Error(e)}function o(e){return{type:"Success",value:e}}function u(e){return{type:"Failure",reason:e}}function H(e){return e.type==="Failure"&&x(e.reason),e.value}function m(e,t){return e.type==="Success"?e.value:t}function z(e){try{let t=atob(e),r=Uint8Array.from(t,s=>s.codePointAt(0)),n=new TextDecoder("utf8");return o(n.decode(r))}catch(t){return u(String(t))}}function Z(e){try{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),r=Uint8Array.from(t,s=>s.codePointAt(0)),n=new TextDecoder("utf8");return o(n.decode(r))}catch(t){return u(String(t))}}function q(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 o(r.encode(t))}catch(t){return u(String(t))}}function Y(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 o(r)}catch(t){return u(String(t))}}var X=["VP8","VP9","AV1","H264"],v=class{constructor(t){this.codec=t}channels=0;clockRate=9e4;isValid(){return X.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let t=m(this.getMimeType(),"").toLowerCase(),r=new Set(m(this.getSdpFmtpLine(),"").split(";").map(n=>n.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(n=>{let s=n.mimeType.toLowerCase(),i=new Set((n.sdpFmtpLine??"").split(";").map(a=>a.trim().toLowerCase()));if(t!==s||r.size!==i.size)return!1;for(let a of r)if(!i.has(a))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return o(96);case"VP9":return o(98);case"AV1":return o(41);case"H264":return o(102);default:return u("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return o("video/VP8");case"VP9":return o("video/VP9");case"AV1":return o("video/AV1");case"H264":return o("video/H264");default:return u("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return o("");case"VP9":return o("profile-id=2");case"AV1":return o("level-idx=5;profile=0;tier=0");case"H264":return o("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return u("invalid video codec")}}};function K(e,t){for(let r of e)if(t(r))return r}function Q(){return typeof AudioContext<"u"&&typeof Worker<"u"}function ee(){return typeof SharedArrayBuffer<"u"}function A(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function te(){return/electron/i.test(globalThis.navigator.userAgent)}function re(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function ne(){return A()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function oe(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 ie(e,t){return e<=0?Promise.resolve(t):new Promise(r=>setTimeout(()=>r(t),e))}function se(e,t){return t.aborted?Promise.resolve("aborted"):new Promise(r=>{let n=()=>r("aborted");t.addEventListener("abort",n,{once:!0}),setTimeout(()=>{t.removeEventListener("abort",n),r(void 0)},e)})}function ae(){return new Promise(e=>setTimeout(e,0))}var L=class{_Tasks=[];_Running=!1;_Values;constructor(...t){this._Values=t}enqueue(t){return new Promise((r,n)=>{let s=async()=>{try{let i=await t(...this._Values);r(i)}catch(i){n(i)}};this._Tasks.push(s),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 ue(e){let t=e.trim();e.indexOf("://")===-1&&(t=`https://${t}`);try{return o(new URL(t))}catch(r){return u(String(r))}}function ce(e,t){let r=e.pathname;r.endsWith("/")===!1&&(r+="/");try{return o(new URL(r+t,e))}catch(n){return u(String(n))}}var le=/^[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 de(e){return le.test(e)}function ge(e,t){return t in e}function fe(e){return typeof e=="function"}function me(e){return typeof e=="object"&&e===null}function be(e){return typeof e=="number"}function ye(e){return typeof e=="object"}function xe(e){return typeof e=="string"}function ve(e){return typeof e>"u"}function he(e){return e.type==="Failure"}function Le(e){return e.type==="Success"}var{Deno:w}=globalThis,Re=typeof w?.noColor=="boolean"?w.noColor:!1,Te=!Re;function R(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 b(e){return T(e,R([0],0))}function k(e){return T(e,R([1],22))}function V(e){return T(e,R([2],22))}var rt=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 Ce=new Date,p=(i=>(i[i.CRITICAL=0]="CRITICAL",i[i.ERROR=1]="ERROR",i[i.WARN=2]="WARN",i[i.INFO=3]="INFO",i[i.DEBUG=4]="DEBUG",i))(p||{}),S={0:"\u{1F4A5}",1:"\u{1F534}",2:"\u{1F7E1}",3:"\u{1F535}",4:"\u{1F7E3}"},Se={4:V,3:b,2:b,1:k,0:k};function Pe(e){for(let t of Object.keys(p))if(isNaN(Number(t))!==!1&&t.localeCompare(e,void 0,{sensitivity:"accent"})===0)return p[t]}function Ae({message:e}){return String(e)}function O(e){return JSON.stringify({timestamp:e.date.toISOString(),level:p[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()-Ce.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(4,"0")}`}function n(){return e.extra===void 0?"":"Deno"in globalThis?" "+Deno.inspect(e.extra,{compact:!1,colors:!0,trailingComma:!0}).trimStart():" "+JSON.stringify(e.extra)}let s=S[e.level],i=e.logger.name!==void 0?`@${e.logger}`:"";return`${b(r())}${i} ${s} ${Se[e.level](String(e.message))}${n()}`}function we(e){let t=`[${e.date.toISOString()}]`,r=`[${p[e.level]}]`,n=e.logger.name!==void 0?`[${e.logger.name}] `:"",s=S[e.level];return`${t} ${s} ${r.padEnd(7," ")} ${n}${e.message}`}var B={sparse:Ae,json:O,pretty:D,structured:we,default:"Deno"in globalThis&&Deno.stdout.isTerminal()?D:O},f=class{formatter;consoleObject;filter;constructor(t=B.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 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}}},C=class extends f{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}}},c=class{#e;sinks;filter;parent;get name(){return this.#e}constructor(t,r=void 0,n=[],s=void 0){this.#e=r,this.sinks=n,this.filter=t,this.parent=s}log(t,r,n=void 0){let i={date:new Date,level:t,logger:this,message:r,extra:n};this.filter<t||this.insert(i)}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)},d=new c(3,void 0,[new f]),Ve=c.prototype.log.bind(d,1),Oe=c.prototype.log.bind(d,2),De=c.prototype.log.bind(d,3),Be=c.prototype.log.bind(d,4),Ie=c.prototype.log.bind(d);0&&(module.exports={APM_DEFAULTS,Backend,CONNECTION_STATS_INITIAL,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});
package/esm/mod.js CHANGED
@@ -1 +1 @@
1
- var z=-758.596,E;(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||={})})(E||={});var H={bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0,rtt:0,packetLoss:0},Z={packetsBuffered:0,packetsSeen:0,packetsProcessed:0,packetsTooEarly:0,packetsTooLate:0,packetsDropped:0,packetsInvalid:0,packetsRepeated:0,packetsLost:0},q={voiceActivity:{attackThreshold:.9,releaseThreshold:.8},volumeGate:{attackThreshold:-30,releaseThreshold:-40}},Y={echoCanceller:!0,highPassFilter:!1,noiseSuppression:"Moderate",transientSuppressor:!1,gainController:!0};function d(e,t){e||R(t)}function R(e){throw new Error(e)}function i(e){return{type:"Success",value:e}}function c(e){return{type:"Failure",reason:e}}function K(e){return e.type==="Failure"&&R(e.reason),e.value}function m(e,t){return e.type==="Success"?e.value:t}function te(e){try{let t=atob(e),r=Uint8Array.from(t,u=>u.codePointAt(0)),n=new TextDecoder("utf8");return i(n.decode(r))}catch(t){return c(String(t))}}function re(e){try{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),r=Uint8Array.from(t,u=>u.codePointAt(0)),n=new TextDecoder("utf8");return i(n.decode(r))}catch(t){return c(String(t))}}function ie(e){try{d(e!==void 0,"undefined cannot be converted to byte array"),d(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 c(String(t))}}function se(e){try{d(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 c(String(t))}}var B=["VP8","VP9","AV1","H264"],T=class{constructor(t){this.codec=t}channels=0;clockRate=9e4;isValid(){return B.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let t=m(this.getMimeType(),"").toLowerCase(),r=new Set(m(this.getSdpFmtpLine(),"").split(";").map(n=>n.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(n=>{let u=n.mimeType.toLowerCase(),o=new Set((n.sdpFmtpLine??"").split(";").map(a=>a.trim().toLowerCase()));if(t!==u||r.size!==o.size)return!1;for(let a of r)if(!o.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 c("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 c("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return i("");case"VP9":return i("profile-id=2");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 c("invalid video codec")}}};function pe(e,t){for(let r of e)if(t(r))return r}function de(){return typeof AudioContext<"u"&&typeof Worker<"u"}function ge(){return typeof SharedArrayBuffer<"u"}function U(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function fe(){return/electron/i.test(globalThis.navigator.userAgent)}function me(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function ye(){return U()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function xe(e){return JSON.parse(JSON.stringify(e))}var k=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 Re(e,t){return e<=0?Promise.resolve(t):new Promise(r=>setTimeout(()=>r(t),e))}function Te(e,t){return t.aborted?Promise.resolve("aborted"):new Promise(r=>{let n=()=>r("aborted");t.addEventListener("abort",n,{once:!0}),setTimeout(()=>{t.removeEventListener("abort",n),r(void 0)},e)})}function ke(){return new Promise(e=>setTimeout(e,0))}var C=class{_Tasks=[];_Running=!1;_Values;constructor(...t){this._Values=t}enqueue(t){return new Promise((r,n)=>{let u=async()=>{try{let o=await t(...this._Values);r(o)}catch(o){n(o)}};this._Tasks.push(u),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 Ae(e){let t=e.trim();e.indexOf("://")===-1&&(t=`https://${t}`);try{return i(new URL(t))}catch(r){return c(String(r))}}function Pe(e,t){let r=e.pathname;r.endsWith("/")===!1&&(r+="/");try{return i(new URL(r+t,e))}catch(n){return c(String(n))}}var F=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Ve(){return crypto.randomUUID()}function Oe(e){return F.test(e)}function De(e,t){return t in e}function Ee(e){return typeof e=="function"}function Be(e){return typeof e=="object"&&e===null}function Ue(e){return typeof e=="number"}function Fe(e){return typeof e=="object"}function Ne(e){return typeof e=="string"}function Me(e){return typeof e>"u"}function je(e){return e.type==="Failure"}function _e(e){return e.type==="Success"}var{Deno:L}=globalThis,N=typeof L?.noColor=="boolean"?L.noColor:!1,M=!N;function y(e,t){return{open:`\x1B[${e.join(";")}m`,close:`\x1B[${t}m`,regexp:new RegExp(`\\x1b\\[${t}m`,"g")}}function b(e,t){return M?`${t.open}${e.replace(t.regexp,t.open)}${t.close}`:e}function g(e){return b(e,y([0],0))}function x(e){return b(e,y([1],22))}function S(e){return b(e,y([2],22))}var Ge=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 v=(s=>(s[s.Nothing=0]="Nothing",s[s.CRITICAL=1]="CRITICAL",s[s.ERROR=2]="ERROR",s[s.WARN=3]="WARN",s[s.INFO=4]="INFO",s[s.DEBUG=5]="DEBUG",s[s.Everything=6]="Everything",s))(v||{}),_=new Date,h=(o=>(o[o.CRITICAL=1]="CRITICAL",o[o.ERROR=2]="ERROR",o[o.WARN=3]="WARN",o[o.INFO=4]="INFO",o[o.DEBUG=5]="DEBUG",o))(h||{}),O={1:"\u{1F4A5}",2:"\u{1F534}",3:"\u{1F7E1}",4:"\u{1F535}",5:"\u{1F7E3}"},$={5:S,4:g,3:g,2:x,1:x};function Je(e){for(let t of Object.keys(v))if(isNaN(Number(t))!==!1&&t.localeCompare(e,void 0,{sensitivity:"accent"})===0)return v[t]}function G({message:e}){return String(e)}function A(e){return JSON.stringify({timestamp:e.date.toISOString(),level:h[e.level],message:e.message,extra:e.extra})}function P(e){function t(a,s){return[Math.floor(a/s),a%s]}function r(){let a,s=e.date.valueOf()-_.valueOf();[s,a]=t(s,1e3);let[I,D]=t(s,60);return`${I.toString().padStart(4,"0")}:${D.toString().padStart(2,"0")}.${a.toString().padStart(4,"0")}`}function n(){return e.extra===void 0?"":"Deno"in globalThis?" "+Deno.inspect(e.extra,{compact:!1,colors:!0,trailingComma:!0}).trimStart():" "+JSON.stringify(e.extra)}let u=O[e.level],o=e.logger.name!==void 0?`@${e.logger}`:"";return`${g(r())}${o} ${u} ${$[e.level](String(e.message))}${n()}`}function J(e){let t=`[${e.date.toISOString()}]`,r=`[${h[e.level]}]`,n=e.logger.name!==void 0?`[${e.logger.name}] `:"",u=O[e.level];return`${t} ${u} ${r.padEnd(7," ")} ${n}${e.message}`}var W={sparse:G,json:A,pretty:P,structured:J,default:"Deno"in globalThis&&Deno.stdout.isTerminal()?P:A},f=class{formatter;consoleObject;filter;constructor(t=W.default,r=6,n=console){this.filter=r,this.formatter=t,this.consoleObject=n}handle(t){let r=this.formatter(t);switch(t.level){case 2:this.consoleObject.error(r);break;case 3:this.consoleObject.warn(r);break;case 4:this.consoleObject.info(r);break;case 5:this.consoleObject.debug(r);break}}},w=class extends f{handle(t){let r=this.formatter(t),n=t.extra!==void 0?[r,t.extra]:[r];switch(t.level){case 1:case 2:this.consoleObject.error(...n);break;case 3:this.consoleObject.warn(...n);break;case 4:this.consoleObject.info(...n);break;case 5:this.consoleObject.debug(...n);break}}},p=class{#e;sinks;filter;get name(){return this.#e}constructor(t,r=void 0,n=[new f]){this.#e=r,this.sinks=n,this.filter=t}log(t,r,n=void 0){if(this.filter<t)return;let u=V;for(let o of this.sinks)o.filter<t||(u===V&&(u={date:new Date,level:t,logger:this,message:typeof r=="function"?r():r,extra:n}),o.handle(u))}error=this.log.bind(this,2);warn=this.log.bind(this,3);info=this.log.bind(this,4);debug=this.log.bind(this,5)},l=new p(4),We=p.prototype.log.bind(l,2),ze=p.prototype.log.bind(l,3),He=p.prototype.log.bind(l,4),Ze=p.prototype.log.bind(l,5),qe=p.prototype.log.bind(l),V=Symbol();export{Y as APM_DEFAULTS,E as Backend,H as CONNECTION_STATS_INITIAL,f as ConsoleSink,W as Formatter,l as GLOBAL_LOGGER,w as InteractiveConsoleSink,Z as JITTER_STATS_INITIAL,v as LogFilter,h as LogLevel,O as LogSymbols,p as Logger,z as MinDBFS,k as Selector,C as Strand,q as VAD_DEFAULTS,T as VideoCodec,Te as abortableSleep,d as assert,Ze as debug,We as error,Pe as extendUrl,R as fail,c as failure,pe as find,te as fromBase64,re as fromBase64Url,se as fromBytes,Ve as generateUUID,He as info,de as isAudioCapable,U as isBlinkBrowser,fe as isElectronBrowser,je as isFailure,me as isFirefoxBrowser,Ee as isFunction,Be as isNull,Ue as isNumber,Fe as isObject,De as isProperty,ye as isSafariBrowser,ge as isSharedArrayBufferCapable,Ne as isString,_e as isSuccess,Me as isUndefined,qe as log,ke as nextTick,Ae as normalizeUrl,Re as sleep,i as success,ie as toBytes,xe as toRaw,Je as tryParseLogFilter,K as unwrap,m as unwrapOr,Oe as validateUUID,ze as warn};
1
+ var G=-758.596,D;(t=>{let e;(s=>(s[s.InvalidPassword=-1]="InvalidPassword",s[s.Unknown=0]="Unknown",s[s.Unencrypted=1]="Unencrypted",s[s.Encrypted=2]="Encrypted"))(e=t.PeerCipherStatus||={})})(D||={});var W={bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0,rtt:0,packetLoss:0},H={packetsBuffered:0,packetsSeen:0,packetsProcessed:0,packetsTooEarly:0,packetsTooLate:0,packetsDropped:0,packetsInvalid:0,packetsRepeated:0,packetsLost:0},z={voiceActivity:{attackThreshold:.9,releaseThreshold:.8},volumeGate:{attackThreshold:-30,releaseThreshold:-40}},Z={echoCanceller:!0,highPassFilter:!1,noiseSuppression:"Moderate",transientSuppressor:!1,gainController:!0};function g(e,t){e||h(t)}function h(e){throw new Error(e)}function o(e){return{type:"Success",value:e}}function u(e){return{type:"Failure",reason:e}}function Y(e){return e.type==="Failure"&&h(e.reason),e.value}function b(e,t){return e.type==="Success"?e.value:t}function Q(e){try{let t=atob(e),r=Uint8Array.from(t,a=>a.codePointAt(0)),n=new TextDecoder("utf8");return o(n.decode(r))}catch(t){return u(String(t))}}function ee(e){try{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),r=Uint8Array.from(t,a=>a.codePointAt(0)),n=new TextDecoder("utf8");return o(n.decode(r))}catch(t){return u(String(t))}}function ne(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 o(r.encode(t))}catch(t){return u(String(t))}}function oe(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 o(r)}catch(t){return u(String(t))}}var B=["VP8","VP9","AV1","H264"],L=class{constructor(t){this.codec=t}channels=0;clockRate=9e4;isValid(){return B.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let t=b(this.getMimeType(),"").toLowerCase(),r=new Set(b(this.getSdpFmtpLine(),"").split(";").map(n=>n.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(n=>{let a=n.mimeType.toLowerCase(),i=new Set((n.sdpFmtpLine??"").split(";").map(s=>s.trim().toLowerCase()));if(t!==a||r.size!==i.size)return!1;for(let s of r)if(!i.has(s))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return o(96);case"VP9":return o(98);case"AV1":return o(41);case"H264":return o(102);default:return u("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return o("video/VP8");case"VP9":return o("video/VP9");case"AV1":return o("video/AV1");case"H264":return o("video/H264");default:return u("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return o("");case"VP9":return o("profile-id=2");case"AV1":return o("level-idx=5;profile=0;tier=0");case"H264":return o("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return u("invalid video codec")}}};function ue(e,t){for(let r of e)if(t(r))return r}function le(){return typeof AudioContext<"u"&&typeof Worker<"u"}function pe(){return typeof SharedArrayBuffer<"u"}function I(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function de(){return/electron/i.test(globalThis.navigator.userAgent)}function ge(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function fe(){return I()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function be(e){return JSON.parse(JSON.stringify(e))}var R=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 ve(e,t){return e<=0?Promise.resolve(t):new Promise(r=>setTimeout(()=>r(t),e))}function he(e,t){return t.aborted?Promise.resolve("aborted"):new Promise(r=>{let n=()=>r("aborted");t.addEventListener("abort",n,{once:!0}),setTimeout(()=>{t.removeEventListener("abort",n),r(void 0)},e)})}function Le(){return new Promise(e=>setTimeout(e,0))}var T=class{_Tasks=[];_Running=!1;_Values;constructor(...t){this._Values=t}enqueue(t){return new Promise((r,n)=>{let a=async()=>{try{let i=await t(...this._Values);r(i)}catch(i){n(i)}};this._Tasks.push(a),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();e.indexOf("://")===-1&&(t=`https://${t}`);try{return o(new URL(t))}catch(r){return u(String(r))}}function Se(e,t){let r=e.pathname;r.endsWith("/")===!1&&(r+="/");try{return o(new URL(r+t,e))}catch(n){return u(String(n))}}var E=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Ae(){return crypto.randomUUID()}function we(e){return E.test(e)}function Oe(e,t){return t in e}function De(e){return typeof e=="function"}function Be(e){return typeof e=="object"&&e===null}function Ie(e){return typeof e=="number"}function Ee(e){return typeof e=="object"}function Fe(e){return typeof e=="string"}function Ue(e){return typeof e>"u"}function Ne(e){return e.type==="Failure"}function Me(e){return e.type==="Success"}var{Deno:k}=globalThis,F=typeof k?.noColor=="boolean"?k.noColor:!1,U=!F;function y(e,t){return{open:`\x1B[${e.join(";")}m`,close:`\x1B[${t}m`,regexp:new RegExp(`\\x1b\\[${t}m`,"g")}}function x(e,t){return U?`${t.open}${e.replace(t.regexp,t.open)}${t.close}`:e}function f(e){return x(e,y([0],0))}function v(e){return x(e,y([1],22))}function C(e){return x(e,y([2],22))}var _e=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 M=new Date,p=(i=>(i[i.CRITICAL=0]="CRITICAL",i[i.ERROR=1]="ERROR",i[i.WARN=2]="WARN",i[i.INFO=3]="INFO",i[i.DEBUG=4]="DEBUG",i))(p||{}),w={0:"\u{1F4A5}",1:"\u{1F534}",2:"\u{1F7E1}",3:"\u{1F535}",4:"\u{1F7E3}"},j={4:C,3:f,2:f,1:v,0:v};function $e(e){for(let t of Object.keys(p))if(isNaN(Number(t))!==!1&&t.localeCompare(e,void 0,{sensitivity:"accent"})===0)return p[t]}function _({message:e}){return String(e)}function S(e){return JSON.stringify({timestamp:e.date.toISOString(),level:p[e.level],message:e.message,extra:e.extra})}function P(e){function t(s,l){return[Math.floor(s/l),s%l]}function r(){let s,l=e.date.valueOf()-M.valueOf();[l,s]=t(l,1e3);let[V,O]=t(l,60);return`${V.toString().padStart(4,"0")}:${O.toString().padStart(2,"0")}.${s.toString().padStart(4,"0")}`}function n(){return e.extra===void 0?"":"Deno"in globalThis?" "+Deno.inspect(e.extra,{compact:!1,colors:!0,trailingComma:!0}).trimStart():" "+JSON.stringify(e.extra)}let a=w[e.level],i=e.logger.name!==void 0?`@${e.logger}`:"";return`${f(r())}${i} ${a} ${j[e.level](String(e.message))}${n()}`}function $(e){let t=`[${e.date.toISOString()}]`,r=`[${p[e.level]}]`,n=e.logger.name!==void 0?`[${e.logger.name}] `:"",a=w[e.level];return`${t} ${a} ${r.padEnd(7," ")} ${n}${e.message}`}var J={sparse:_,json:S,pretty:P,structured:$,default:"Deno"in globalThis&&Deno.stdout.isTerminal()?P:S},m=class{formatter;consoleObject;filter;constructor(t=J.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 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}}},A=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}}},c=class{#e;sinks;filter;parent;get name(){return this.#e}constructor(t,r=void 0,n=[],a=void 0){this.#e=r,this.sinks=n,this.filter=t,this.parent=a}log(t,r,n=void 0){let i={date:new Date,level:t,logger:this,message:r,extra:n};this.filter<t||this.insert(i)}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)},d=new c(3,void 0,[new m]),Je=c.prototype.log.bind(d,1),Ge=c.prototype.log.bind(d,2),We=c.prototype.log.bind(d,3),He=c.prototype.log.bind(d,4),ze=c.prototype.log.bind(d);export{Z as APM_DEFAULTS,D as Backend,W as CONNECTION_STATS_INITIAL,m as ConsoleSink,J as Formatter,d as GLOBAL_LOGGER,A as InteractiveConsoleSink,H as JITTER_STATS_INITIAL,p as LogLevel,w as LogSymbols,c as Logger,G as MinDBFS,R as Selector,T as Strand,z as VAD_DEFAULTS,L as VideoCodec,he as abortableSleep,g as assert,He as debug,Je as error,Se as extendUrl,h as fail,u as failure,ue as find,Q as fromBase64,ee as fromBase64Url,oe as fromBytes,Ae as generateUUID,We as info,le as isAudioCapable,I as isBlinkBrowser,de as isElectronBrowser,Ne as isFailure,ge as isFirefoxBrowser,De as isFunction,Be as isNull,Ie as isNumber,Ee as isObject,Oe as isProperty,fe as isSafariBrowser,pe as isSharedArrayBufferCapable,Fe as isString,Me as isSuccess,Ue as isUndefined,ze as log,Le as nextTick,Ce as normalizeUrl,ve as sleep,o as success,ne as toBytes,be as toRaw,$e as tryParseLogLevel,Y as unwrap,b as unwrapOr,we as validateUUID,Ge as warn};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@4players/odin-common",
3
- "version": "9.2.0",
3
+ "version": "9.3.0",
4
4
  "description": "A collection of commonly used type definitions and utility functions across ODIN web projects",
5
5
  "author": "Josho Bleicker <josho.bleicker@4players.io> (https://www.4players.io)",
6
6
  "homepage": "https://www.4players.io",
@@ -42,6 +42,6 @@
42
42
  }
43
43
  },
44
44
  "dependencies": {
45
- "@zod/zod": "~4.3.0"
45
+ "zod": "~4.3.0"
46
46
  }
47
47
  }
package/utility/log.d.ts CHANGED
@@ -1,25 +1,16 @@
1
- export declare enum LogFilter {
2
- Nothing = 0,
3
- CRITICAL = 1,
4
- ERROR = 2,
5
- WARN = 3,
6
- INFO = 4,
7
- DEBUG = 5,
8
- Everything = 6
9
- }
10
1
  export declare enum LogLevel {
11
- CRITICAL = 1,
12
- ERROR = 2,
13
- WARN = 3,
14
- INFO = 4,
15
- DEBUG = 5
2
+ CRITICAL = 0,
3
+ ERROR = 1,
4
+ WARN = 2,
5
+ INFO = 3,
6
+ DEBUG = 4
16
7
  }
17
8
  export declare const LogSymbols: {
18
9
  [Level in LogLevel]: string;
19
10
  };
20
- export declare function tryParseLogFilter(text: string): LogFilter | undefined;
11
+ export declare function tryParseLogLevel(text: string): LogLevel | undefined;
21
12
  export interface LogSink {
22
- filter: LogFilter;
13
+ filter: LogLevel;
23
14
  handle(record: LogRecord): void;
24
15
  }
25
16
  export type ConsoleObject = Pick<typeof console, 'error' | 'warn' | 'info' | 'debug'>;
@@ -38,8 +29,8 @@ export declare const Formatter: {
38
29
  export declare class ConsoleSink implements LogSink {
39
30
  protected formatter: LogFormatter;
40
31
  protected consoleObject: ConsoleObject;
41
- filter: LogFilter;
42
- constructor(formatter?: LogFormatter, filter?: LogFilter, consoleObject?: ConsoleObject);
32
+ filter: LogLevel;
33
+ constructor(formatter?: LogFormatter, filter?: LogLevel, consoleObject?: ConsoleObject);
43
34
  handle(record: LogRecord): void;
44
35
  }
45
36
  export declare class InteractiveConsoleSink extends ConsoleSink {
@@ -48,27 +39,28 @@ export declare class InteractiveConsoleSink extends ConsoleSink {
48
39
  export declare class Logger {
49
40
  #private;
50
41
  sinks: LogSink[];
51
- filter: LogFilter;
42
+ filter: LogLevel;
43
+ parent: Logger | undefined;
52
44
  get name(): string | undefined;
53
- constructor(filter: LogFilter, name?: string | undefined, sinks?: LogSink[]);
54
- log(level: LogLevel, message: LogMessage, extra?: Record<string, unknown> | undefined): void;
55
- readonly error: (message: LogMessage, extra?: Record<string, unknown> | undefined) => void;
56
- readonly warn: (message: LogMessage, extra?: Record<string, unknown> | undefined) => void;
57
- readonly info: (message: LogMessage, extra?: Record<string, unknown> | undefined) => void;
58
- readonly debug: (message: LogMessage, extra?: Record<string, unknown> | undefined) => void;
45
+ constructor(filter: LogLevel, name?: string | undefined, sinks?: LogSink[], parent?: Logger | undefined);
46
+ log(level: LogLevel, message: string, extra?: Record<string, unknown> | undefined): void;
47
+ insert(record: LogRecord): void;
48
+ readonly error: (message: string, extra?: Record<string, unknown> | undefined) => void;
49
+ readonly warn: (message: string, extra?: Record<string, unknown> | undefined) => void;
50
+ readonly info: (message: string, extra?: Record<string, unknown> | undefined) => void;
51
+ readonly debug: (message: string, extra?: Record<string, unknown> | undefined) => void;
59
52
  }
60
53
  export declare const GLOBAL_LOGGER: Logger;
61
- export type LogMessage = string | (() => unknown);
62
- export declare const error: (message: LogMessage, extra?: Record<string, unknown> | undefined) => void;
63
- export declare const warn: (message: LogMessage, extra?: Record<string, unknown> | undefined) => void;
64
- export declare const info: (message: LogMessage, extra?: Record<string, unknown> | undefined) => void;
65
- export declare const debug: (message: LogMessage, extra?: Record<string, unknown> | undefined) => void;
66
- export declare const log: (level: LogLevel, message: LogMessage, extra?: Record<string, unknown> | undefined) => void;
54
+ export declare const error: (message: string, extra?: Record<string, unknown> | undefined) => void;
55
+ export declare const warn: (message: string, extra?: Record<string, unknown> | undefined) => void;
56
+ export declare const info: (message: string, extra?: Record<string, unknown> | undefined) => void;
57
+ export declare const debug: (message: string, extra?: Record<string, unknown> | undefined) => void;
58
+ export declare const log: (level: LogLevel, message: string, extra?: Record<string, unknown> | undefined) => void;
67
59
  export interface LogRecord {
68
60
  readonly date: Date;
69
61
  readonly level: LogLevel;
70
62
  readonly logger: Logger;
71
- readonly message: unknown;
63
+ readonly message: string;
72
64
  readonly extra: Record<string, unknown> | undefined;
73
65
  }
74
66
  export {};