@discoveryjs/discovery
Advanced tools
Comparing version 1.0.0-beta.76 to 1.0.0-beta.77
@@ -1,1 +0,1 @@ | ||
var K=Object.create;var U=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var Z=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var A=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Q=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of G(t))!X.call(e,s)&&s!==n&&U(e,s,{get:()=>t[s],enumerable:!(r=W(t,s))||r.enumerable});return e};var ee=(e,t,n)=>(n=e!=null?K(Z(e)):{},Q(t||!e||!e.__esModule?U(n,"default",{value:e,enumerable:!0}):n,e));var F=A((tt,O)=>{var te={8:"\\b",9:"\\t",10:"\\n",12:"\\f",13:"\\r",34:'\\"',92:"\\\\"};function ne(e){return e>=55296&&e<=56319}function se(e){return e>=56320&&e<=57343}function C(e){return typeof e.pipe=="function"&&typeof e._read=="function"&&typeof e._readableState=="object"&&e._readableState!==null}function re(e,t,n,r){switch(n&&typeof n.toJSON=="function"&&(n=n.toJSON()),r!==null&&(n=r.call(e,String(t),n)),typeof n){case"function":case"symbol":n=void 0;break;case"object":if(n!==null){let s=n.constructor;(s===String||s===Number||s===Boolean)&&(n=n.valueOf())}break}return n}function ae(e){return e===null||typeof e!="object"?1:Array.isArray(e)?3:2}function ie(e){return e===null||typeof e!="object"?1:typeof e.then=="function"?4:C(e)?e._readableState.objectMode?6:5:Array.isArray(e)?3:2}function oe(e){return typeof e=="function"?e:Array.isArray(e)?[...new Set(e.map(n=>{let r=n&&n.constructor;return r===String||r===Number?String(n):null}).filter(n=>typeof n=="string"))]:null}function le(e){return typeof e=="number"?!Number.isFinite(e)||e<1?!1:" ".repeat(Math.min(e,10)):typeof e=="string"&&e.slice(0,10)||!1}O.exports={escapableCharCodeSubstitution:te,isLeadingSurrogate:ne,isTrailingSurrogate:se,type:{PRIMITIVE:1,PROMISE:4,ARRAY:3,OBJECT:2,STRING_STREAM:5,OBJECT_STREAM:6},isReadableStream:C,replaceValue:re,getTypeNative:ae,getTypeAsync:ie,normalizeReplacer:oe,normalizeSpace:le}});var M=A((nt,N)=>{N.exports=TextDecoder});var j=A((st,L)=>{var{isReadableStream:ce}=F(),ue=M(),x=1,he=2,de=new ue;function B(e){return e!==null&&typeof e=="object"}function D(e,t){return e.name==="SyntaxError"&&t.jsonParseOffset&&(e.message=e.message.replace(/at position (\d+)/,(n,r)=>"at position "+(Number(r)+t.jsonParseOffset))),e}function fe(e,t){let n=e.length;e.length+=t.length;for(let r=0;r<t.length;r++)e[n+r]=t[r]}L.exports=function(e){let t=new R;if(B(e)&&ce(e))return new Promise((n,r)=>{e.on("data",s=>{try{t.push(s)}catch(a){r(D(a,t)),t=null}}).on("error",s=>{t=null,r(s)}).on("end",()=>{try{n(t.finish())}catch(s){r(D(s,t))}finally{t=null}})});if(typeof e=="function"){let n=e();if(B(n)&&(Symbol.iterator in n||Symbol.asyncIterator in n))return new Promise(async(r,s)=>{try{for await(let a of n)t.push(a);r(t.finish())}catch(a){s(D(a,t))}finally{t=null}})}throw new Error("Chunk emitter should be readable stream, generator, async generator or function returning an iterable object")};var R=class{constructor(){this.value=void 0,this.valueStack=null,this.stack=new Array(100),this.lastFlushDepth=0,this.flushDepth=0,this.stateString=!1,this.stateStringEscape=!1,this.pendingByteSeq=null,this.pendingChunk=null,this.chunkOffset=0,this.jsonParseOffset=0}parseAndAppend(t,n){this.stack[this.lastFlushDepth-1]===x?(n&&(this.jsonParseOffset--,t="{"+t+"}"),Object.assign(this.valueStack.value,JSON.parse(t))):(n&&(this.jsonParseOffset--,t="["+t+"]"),fe(this.valueStack.value,JSON.parse(t)))}prepareAddition(t){let{value:n}=this.valueStack;if(Array.isArray(n)?n.length!==0:Object.keys(n).length!==0){if(t[0]===",")return this.jsonParseOffset++,t.slice(1);if(t[0]!=="}"&&t[0]!=="]")return this.jsonParseOffset-=3,"[[]"+t}return t}flush(t,n,r){let s=t.slice(n,r);if(this.jsonParseOffset=this.chunkOffset+n,this.pendingChunk!==null&&(s=this.pendingChunk+s,this.jsonParseOffset-=this.pendingChunk.length,this.pendingChunk=null),this.flushDepth===this.lastFlushDepth)this.flushDepth>0?this.parseAndAppend(this.prepareAddition(s),!0):(this.value=JSON.parse(s),this.valueStack={value:this.value,prev:null});else if(this.flushDepth>this.lastFlushDepth){for(let a=this.flushDepth-1;a>=this.lastFlushDepth;a--)s+=this.stack[a]===x?"}":"]";this.lastFlushDepth===0?(this.value=JSON.parse(s),this.valueStack={value:this.value,prev:null}):this.parseAndAppend(this.prepareAddition(s),!0);for(let a=this.lastFlushDepth||1;a<this.flushDepth;a++){let o=this.valueStack.value;if(this.stack[a-1]===x){let l;for(l in o);o=o[l]}else o=o[o.length-1];this.valueStack={value:o,prev:this.valueStack}}}else{s=this.prepareAddition(s);for(let a=this.lastFlushDepth-1;a>=this.flushDepth;a--)this.jsonParseOffset--,s=(this.stack[a]===x?"{":"[")+s;this.parseAndAppend(s,!1);for(let a=this.lastFlushDepth-1;a>=this.flushDepth;a--)this.valueStack=this.valueStack.prev}this.lastFlushDepth=this.flushDepth}push(t){if(typeof t!="string"){if(this.pendingByteSeq!==null){let a=t;t=new Uint8Array(this.pendingByteSeq.length+a.length),t.set(this.pendingByteSeq),t.set(a,this.pendingByteSeq.length),this.pendingByteSeq=null}if(t[t.length-1]>127)for(let a=0;a<t.length;a++){let o=t[t.length-1-a];if(o>>6===3){a++,(a!==4&&o>>3===30||a!==3&&o>>4===14||a!==2&&o>>5===6)&&(this.pendingByteSeq=t.slice(t.length-a),t=t.slice(0,-a));break}}t=de.decode(t)}let n=t.length,r=0,s=0;e:for(let a=0;a<n;a++){if(this.stateString){for(;a<n;a++)if(this.stateStringEscape)this.stateStringEscape=!1;else switch(t.charCodeAt(a)){case 34:this.stateString=!1;continue e;case 92:this.stateStringEscape=!0}break}switch(t.charCodeAt(a)){case 34:this.stateString=!0,this.stateStringEscape=!1;break;case 44:s=a;break;case 123:s=a+1,this.stack[this.flushDepth++]=x;break;case 91:s=a+1,this.stack[this.flushDepth++]=he;break;case 93:case 125:s=a+1,this.flushDepth--,this.flushDepth<this.lastFlushDepth&&(this.flush(t,r,s),r=s);break;case 9:case 10:case 13:case 32:r===a&&r++,s===a&&s++;break}}s>r&&this.flush(t,r,s),s<n&&(this.pendingChunk!==null?this.pendingChunk+=t:this.pendingChunk=t.slice(s,n)),this.chunkOffset+=n}finish(){return this.pendingChunk!==null&&(this.flush("",0,0),this.pendingChunk=null),this.value}}});var k=class{constructor(){this.listeners=Object.create(null)}on(t,n){return this.listeners[t]={callback:n,next:this.listeners[t]||null},this}once(t,n){return this.on(t,function r(...s){n.apply(this,s),this.off(t,r)})}off(t,n){let r=this.listeners[t]||null,s=null;for(;r!==null;){if(r.callback===n){r.callback=null,s?s.next=r.next:this.listeners[t]=r.next;break}s=r,r=r.next}return this}emit(t,...n){let r=this.listeners[t]||null,s=!1;for(;r!==null;)typeof r.callback=="function"&&r.callback.apply(this,n),s=!0,r=r.next;return s}};var y=class{static setValue(t,n){if(!t.shouldPublish(n,t.value))return!1;let r=[],s=t.subscriber;for(t.value=n;s!==null;){let{callback:a,thisArg:o}=s;a!==null&&r.push(a.call(o,n,()=>t.unsubscribe(a,o))),s=s.subscriber}return r}constructor(t,n){this.value=t,this.shouldPublish=typeof n=="function"?n:this.shouldPublish,this.subscriber=null}get readonly(){let t=this;return{subscribe:this.subscribe.bind(this),subscribeSync:this.subscribeSync.bind(this),unsubscribe:this.unsubscribe.bind(this),get value(){return t.value}}}subscribe(t,n){return this.subscriber={callback:t,thisArg:n,subscriber:this.subscriber},()=>this.unsubscribe(t,n)}subscribeSync(t,n){let r=this.subscribe(t,n);return t.call(n,this.value,r),r}unsubscribe(t,n){let r=this,s=this.subscriber;for(;s!==null;){if(s.callback===t&&s.thisArg===n){s.callback=null,s.thisArg=null,r.subscriber=s.subscriber;break}r=s,s=s.subscriber}}shouldPublish(t,n){return t!==n}set(t){return this.constructor.setValue(this,t)!==!1}asyncSet(t){let n=this.constructor.setValue(this,t);return n===!1?Promise.resolve(!1):Promise.all(n).then(r=>r!==!1)}};function T(){return[parseInt(performance.timeOrigin,10).toString(16),parseInt(1e4*performance.now(),10).toString(16),String(Math.random().toString(16).slice(2))].join("-")}var _e=ee(j(),1);var _=typeof new Blob().stream=="function"?e=>e.stream():pe();function pe(){try{return new ReadableStream({type:"bytes"}),ge}catch{try{return new ReadableStream({}),ye}catch{try{return new Response(new Blob).body.getReader(),be}catch{}}}return me}function q(e){return typeof e.arrayBuffer=="function"?e.arrayBuffer():new Promise((t,n)=>{let r=new FileReader;r.readAsArrayBuffer(e),r.onload=r.onerror=({type:s})=>{r.onload=r.onerror=null,s==="load"?t(r.result||r):n(new Error("Failed to read the blob/file"))}})}function ge(e){let t=0;return new ReadableStream({type:"bytes",autoAllocateChunkSize:512*1024,pull(n){let r=n.byobRequest.view,s=e.slice(t,t+r.byteLength);return q(s).then(a=>{let o=new Uint8Array(a),l=o.byteLength;t+=l,r.set(o),n.byobRequest.respond(l),t>=e.size&&n.close()})}})}function ye(e){let t=0;return new ReadableStream({pull(n){let r=e.slice(t,t+524288);return q(r).then(s=>{t+=s.byteLength,n.enqueue(new Uint8Array(s)),t==e.size&&n.close()})}})}function be(e){return new Response(e).body}function me(){throw new Error("Blob#stream() is not supported and no fallback can be applied, include https://github.com/MattiasBuelens/web-streams-polyfill")}var at=new Uint8Array([0,0,74,83,79,78,88,76]);var we=1<<0,V=1<<1,Se=1<<2,ve=1<<3,z=1<<4,J=1<<5,H=1<<6,ke=1<<7,xe=0,Ae=1,Te=2,De=3,Re=4,Pe=5,Ee=6,Ie=7,Ue=8,Ce=9,Oe=10,Fe=11,Ne=12,Me=31,it=~Me,Be=224,ot=~Be,Le=7936,lt=~Le;var ct=~z,ut=V|J|H,je=new Uint8Array(256),ht=new Uint8Array(8).map((e,t)=>(je[1<<t]=t,1<<t)),dt=new Uint8Array(256).map((e,t)=>{for(let n=0;n<8;n++)e+=t>>n&1;return e}),ft=Object.fromEntries(Object.entries({TYPE_UNDEF:we,TYPE_TRUE:J,TYPE_FALSE:H,TYPE_NULL:V,TYPE_NUMBER:Se,TYPE_STRING:ve,TYPE_OBJECT:z,TYPE_ARRAY:ke}).map(([e,t])=>[t,e])),pt=Object.fromEntries(Object.entries({UINT_8:xe,UINT_16:Ae,UINT_24:Te,UINT_32:De,UINT_32_VAR:Re,INT_8:Ue,INT_16:Ce,INT_24:Oe,INT_32:Fe,INT_32_VAR:Ne,FLOAT_32:Pe,FLOAT_64:Ee,DECIMAL:Ie}).map(([e,t])=>[t,e])),gt=new Uint8Array(32);var yt=new TextDecoder("utf8",{ignoreBOM:!0});function qe(e){return e!==null&&typeof e=="object"}function Ve(e){try{return new URL(e,location.origin).origin===location.origin}catch{return!1}}function ze(e){return e.ok}function Je(e){return e.headers.get("x-file-encoded-size")||e.headers.get("content-length")}function He(e){return e.headers.get("x-file-size")||(Ve(e.url)&&!e.headers.get("content-encoding")?e.headers.get("content-length"):void 0)}function $e(e){return e.headers.get("x-file-created-at")||e.headers.get("last-modified")}function $(e,t){if(e instanceof Response){let n=t?.isResponseOk||ze,r=t?.getContentSize||He,s=t?.getContentEncodedSize||Je,a=t?.getContentSize||$e;if(n(e))return{type:"url",name:e.url,size:Number(r(e))||null,encodedSize:Number(s(e)),createdAt:a(e)}}if(e instanceof File)return{type:"file",name:e.name,size:e.size,createdAt:e.lastModified};if(e instanceof Blob)return{size:e.size};if(ArrayBuffer.isView(e))return{size:e.byteLength};if(typeof e=="string")return{size:e.length}}function Ye(e){if(typeof e=="string"||DataView.isView(e))return function*(){yield new TextEncoder().encode(e)};if(!(Array.isArray(e)&&e.some(t=>typeof t!="string"))&&qe(e)){if(Symbol.asyncIterator in e)return e[Symbol.asyncIterator];if(Symbol.iterator in e)return e[Symbol.iterator]}}function Y(e){return e instanceof ReadableStream?e:e instanceof Response?e.body:e instanceof Blob?_(e):new ReadableStream({start(){let t=Ye(e);if(!t)throw new Error("Bad value type (can't convert to a generator)");this.iterator=t()},async pull(t){let{value:n,done:r}=await this.iterator.next();r?(this.iterator=null,t.close()):t.enqueue(n)},cancel(){this.iterator=null}})}var Ke=(()=>{let e=!1;try{let t={get passive(){return e=!0,!1}};window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch{}return e})(),xt=Ke?Object.freeze({passive:!0,capture:!0}):!0;var P={request:{value:0,title:"Awaiting data"},receive:{value:.1,title:"Receiving data"},received:{value:.9,title:"Await app ready"},prepare:{value:.925,title:"Processing data (prepare)"},initui:{value:.975,title:"Rendering UI"},done:{value:1,title:"Done!"}};Object.values(P).forEach((e,t,n)=>{e.duration=(t!==n.length-1?n[t+1].value:0)-e.value});function We(e,t){let{value:n,title:r,duration:s}=P[e],a=0,o=null;if(t){let{done:l,elapsed:p,units:m,completed:w,total:v}=t;v?(a=l?1:w/v,o=m==="bytes"?Math.round(a*100)+"%":`${w}/${v}`):(a=l?1:.1+Math.min(.9,p/2e4),o=m==="bytes"?(w/(1024*1024)).toFixed(1)+"MB":w)}return{stageTitle:r,progressValue:n+a*s,progressText:o,title:o?`${r} (${o})...`:e!=="done"?`${r}...`:r}}var Ge=(()=>{try{let e=new ReadableStream;return new MessageChannel().port1.postMessage(e,[e]),!0}catch{return!1}})();function Ft(e,t,n){class r extends k{constructor(i,u){super(),this.window=i,this.id=u,this.publicApi=Object.freeze({})}sendMessage(i,u,f){this.window.postMessage({id:this.id,type:i,payload:u||null},"*",f)}destroy(){this.window=null,this.sendMessage=()=>{}}}class s extends r{constructor(i,u,f){super(i,u),this.actions=f,this.publicApi=Object.freeze({on:this.on.bind(this),once:this.once.bind(this),off:this.off.bind(this),defineAction:(d,c)=>{this.actions.set(d,c),this.sendMessage("defineAction",d)},setPageHash:(d,c)=>{this.sendMessage("setPageHash",{hash:d,replace:c})},setRouterPreventLocationUpdate:(d=!0)=>{this.sendMessage("setRouterPreventLocationUpdate",d)}})}processMessage(i){switch(i.type){case"loadingState":{this.emit("loadingStateChanged",i.payload);break}}}}class a extends r{constructor(i,u,f){super(i,u),this.actions=f,this.commandMap=new Map,this.requestDataLoadToken=void 0,this.requestDataLoader=void 0,this.pageHash=new y(""),this.pageId=new y(""),this.pageRef=new y(""),this.pageParams=new y({}),this.darkmode=new y({mode:"unknown",value:"unknown"},(c,h)=>c.mode!==h.mode||c.value!==h.value);let d={primary:E("primary",this.sendMessage.bind(this),this.commandMap),secondary:E("secondary",this.sendMessage.bind(this),this.commandMap),menu:E("menu",this.sendMessage.bind(this),this.commandMap)};this.publicApi=Object.freeze({pageHash:this.pageHash.readonly,pageId:this.pageId.readonly,pageRef:this.pageRef.readonly,pageParams:this.pageParams.readonly,darkmode:this.darkmode.readonly,on:this.on.bind(this),once:this.once.bind(this),off:this.off.bind(this),nav:Object.assign(d.secondary,d),defineAction:(c,h)=>{this.actions.set(c,h),this.sendMessage("defineAction",c)},setPageHash:(c,h)=>{this.sendMessage("setPageHash",{hash:c,replace:h})},setPage:(c,h,S,b)=>{this.sendMessage("setPage",{id:c,ref:h,params:S,replace:b})},setPageRef:(c,h)=>{this.sendMessage("setPageRef",{ref:c,replace:h})},setPageParams:(c,h)=>{this.sendMessage("setPageParams",{params:c,replace:h})},setDarkmode:c=>{this.sendMessage("setDarkmode",c)},setRouterPreventLocationUpdate:(c=!0)=>{this.sendMessage("setRouterPreventLocationUpdate",c)},unloadData:()=>{this.sendMessage("unloadData")},uploadData:(c,h)=>{let S=T();return this.dataLoadToken=S,v(c,h).finally(()=>{this.dataLoadToken===S&&(this.dataLoadToken=null)})}})}async processMessage(i){switch(i.type){case"destroy":{m();break}case"action":{let{callId:u,name:f,args:d}=i.payload,c=this.actions.get(f);if(typeof c=="function")try{this.sendMessage("actionResult",{callId:u,value:await c(...d)})}catch(h){this.sendMessage("actionResult",{callId:u,error:h})}else console.warn(`Action "${f}" was not found`);break}case"navMethod":{let u=this.commandMap.get(i.payload);typeof u=="function"?u():console.warn(`Nav command "${i.payload}" was not found`);break}case"pageHashChanged":{let{replace:u,hash:f,id:d,ref:c,params:h}=i.payload||{};this.pageHash.set(f),this.pageId.set(d),this.pageRef.set(c),this.pageParams.set(h),this.emit("pageHashChanged",f,u);break}case"darkmodeChanged":{let u=i.payload;this.darkmode.set(u),this.emit("darkmodeChanged",u);break}case"unloadData":{this.emit("unloadData");break}case"data":{this.emit("data");break}case"loadingState":{this.emit("loadingStateChanged",i.payload);break}default:console.error(`[Discovery.js] Unknown embed message type "${i.type}"`)}}destroy(){super.destroy(),this.requestDataLoadToken=void 0,this.requestDataLoader=void 0}}let o=new Map,l=null,p=null;return typeof n!="function"&&(n=t,t=null),addEventListener("message",w),()=>{removeEventListener("message",w),m()};function m(){l!==null&&(l.destroy(),typeof p=="function"&&p(),l=null,p=null)}async function w(g){let i=g.data||{};if(g.isTrusted&&(g.source===e.contentWindow||g.source===null)&&i.from==="discoveryjs-app"){if(i.type==="ready"){m(),o.id!==i.id&&(o.clear(),o.id=i.id),l=new a(e.contentWindow,i.id,o),l.pageHash.set(i.payload.page.hash),l.pageId.set(i.payload.page.id),l.pageRef.set(i.payload.page.ref),l.pageParams.set(i.payload.page.params),l.darkmode.set(i.payload.darkmode),p=n(l.publicApi);return}if(i.type==="preinit"){m(),typeof t=="function"&&(o.id!==i.id&&(o.clear(),o.id=i.id),l=new s(e.contentWindow,i.id,o),p=t(l.publicApi));return}if(l?.id===i.id){l.processMessage(i);return}}}async function v(g,i=$){let u=l.dataLoadToken,f=()=>{if(l?.dataLoadToken!==u)throw new Error("Data upload aborted")},d=typeof g=="function"?await g():await g;f();let c=typeof i=="function"?i(d)||{}:{},h=Y(d);if(Ge)l.sendMessage("dataStream",{stream:h,resource:c},[h]);else{let S=h.getReader();l.sendMessage("startChunkedDataUpload",{acceptToken:u,resource:c});try{for(;;){let{value:b,done:I}=await S.read();if(l.sendMessage("dataChunk",{acceptToken:u,value:b,done:I},b?.buffer?[b.buffer]:void 0),f(),I)break}}catch(b){throw l.sendMessage("cancelChunkedDataUpload",{acceptToken:u,error:b}),b}finally{S.releaseLock()}}}}function E(e,t,n){function r(s){let a=[];return{commands:a,config:JSON.parse(JSON.stringify(s,(o,l)=>{if(typeof l=="function"){let p="nav-command-"+T();return a.push(p),n.set(p,l),p}return l}))}}return{insert(s,a,o){t("changeNavButtons",{section:e,action:"insert",name:o,position:a,...r(s)})},prepend(s){t("changeNavButtons",{section:e,action:"prepend",...r(s)})},append(s){t("changeNavButtons",{section:e,action:"append",...r(s)})},before(s,a){t("changeNavButtons",{section:e,action:"before",name:s,...r(a)})},after(s,a){t("changeNavButtons",{section:e,action:"after",name:s,...r(a)})},replace(s,a){t("changeNavButtons",{section:e,action:"replace",name:s,...r(a)})},remove(s){t("changeNavButtons",{section:e,action:"remove",name:s})}}}export{Ft as connectToEmbedApp,We as decodeStageProgress,P as loadStages}; | ||
var W=Object.create;var C=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var X=Object.getPrototypeOf,Q=Object.prototype.hasOwnProperty;var A=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ee=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Z(t))!Q.call(e,s)&&s!==n&&C(e,s,{get:()=>t[s],enumerable:!(r=G(t,s))||r.enumerable});return e};var te=(e,t,n)=>(n=e!=null?W(X(e)):{},ee(t||!e||!e.__esModule?C(n,"default",{value:e,enumerable:!0}):n,e));var N=A((nt,F)=>{var ne={8:"\\b",9:"\\t",10:"\\n",12:"\\f",13:"\\r",34:'\\"',92:"\\\\"};function se(e){return e>=55296&&e<=56319}function re(e){return e>=56320&&e<=57343}function O(e){return typeof e.pipe=="function"&&typeof e._read=="function"&&typeof e._readableState=="object"&&e._readableState!==null}function ae(e,t,n,r){switch(n&&typeof n.toJSON=="function"&&(n=n.toJSON()),r!==null&&(n=r.call(e,String(t),n)),typeof n){case"function":case"symbol":n=void 0;break;case"object":if(n!==null){let s=n.constructor;(s===String||s===Number||s===Boolean)&&(n=n.valueOf())}break}return n}function ie(e){return e===null||typeof e!="object"?1:Array.isArray(e)?3:2}function oe(e){return e===null||typeof e!="object"?1:typeof e.then=="function"?4:O(e)?e._readableState.objectMode?6:5:Array.isArray(e)?3:2}function le(e){return typeof e=="function"?e:Array.isArray(e)?[...new Set(e.map(n=>{let r=n&&n.constructor;return r===String||r===Number?String(n):null}).filter(n=>typeof n=="string"))]:null}function ce(e){return typeof e=="number"?!Number.isFinite(e)||e<1?!1:" ".repeat(Math.min(e,10)):typeof e=="string"&&e.slice(0,10)||!1}F.exports={escapableCharCodeSubstitution:ne,isLeadingSurrogate:se,isTrailingSurrogate:re,type:{PRIMITIVE:1,PROMISE:4,ARRAY:3,OBJECT:2,STRING_STREAM:5,OBJECT_STREAM:6},isReadableStream:O,replaceValue:ae,getTypeNative:ie,getTypeAsync:oe,normalizeReplacer:le,normalizeSpace:ce}});var B=A((st,M)=>{M.exports=TextDecoder});var _=A((rt,j)=>{var{isReadableStream:ue}=N(),he=B(),k=1,de=2,fe=new he;function L(e){return e!==null&&typeof e=="object"}function D(e,t){return e.name==="SyntaxError"&&t.jsonParseOffset&&(e.message=e.message.replace(/at position (\d+)/,(n,r)=>"at position "+(Number(r)+t.jsonParseOffset))),e}function pe(e,t){let n=e.length;e.length+=t.length;for(let r=0;r<t.length;r++)e[n+r]=t[r]}j.exports=function(e){let t=new R;if(L(e)&&ue(e))return new Promise((n,r)=>{e.on("data",s=>{try{t.push(s)}catch(a){r(D(a,t)),t=null}}).on("error",s=>{t=null,r(s)}).on("end",()=>{try{n(t.finish())}catch(s){r(D(s,t))}finally{t=null}})});if(typeof e=="function"){let n=e();if(L(n)&&(Symbol.iterator in n||Symbol.asyncIterator in n))return new Promise(async(r,s)=>{try{for await(let a of n)t.push(a);r(t.finish())}catch(a){s(D(a,t))}finally{t=null}})}throw new Error("Chunk emitter should be readable stream, generator, async generator or function returning an iterable object")};var R=class{constructor(){this.value=void 0,this.valueStack=null,this.stack=new Array(100),this.lastFlushDepth=0,this.flushDepth=0,this.stateString=!1,this.stateStringEscape=!1,this.pendingByteSeq=null,this.pendingChunk=null,this.chunkOffset=0,this.jsonParseOffset=0}parseAndAppend(t,n){this.stack[this.lastFlushDepth-1]===k?(n&&(this.jsonParseOffset--,t="{"+t+"}"),Object.assign(this.valueStack.value,JSON.parse(t))):(n&&(this.jsonParseOffset--,t="["+t+"]"),pe(this.valueStack.value,JSON.parse(t)))}prepareAddition(t){let{value:n}=this.valueStack;if(Array.isArray(n)?n.length!==0:Object.keys(n).length!==0){if(t[0]===",")return this.jsonParseOffset++,t.slice(1);if(t[0]!=="}"&&t[0]!=="]")return this.jsonParseOffset-=3,"[[]"+t}return t}flush(t,n,r){let s=t.slice(n,r);if(this.jsonParseOffset=this.chunkOffset+n,this.pendingChunk!==null&&(s=this.pendingChunk+s,this.jsonParseOffset-=this.pendingChunk.length,this.pendingChunk=null),this.flushDepth===this.lastFlushDepth)this.flushDepth>0?this.parseAndAppend(this.prepareAddition(s),!0):(this.value=JSON.parse(s),this.valueStack={value:this.value,prev:null});else if(this.flushDepth>this.lastFlushDepth){for(let a=this.flushDepth-1;a>=this.lastFlushDepth;a--)s+=this.stack[a]===k?"}":"]";this.lastFlushDepth===0?(this.value=JSON.parse(s),this.valueStack={value:this.value,prev:null}):this.parseAndAppend(this.prepareAddition(s),!0);for(let a=this.lastFlushDepth||1;a<this.flushDepth;a++){let o=this.valueStack.value;if(this.stack[a-1]===k){let l;for(l in o);o=o[l]}else o=o[o.length-1];this.valueStack={value:o,prev:this.valueStack}}}else{s=this.prepareAddition(s);for(let a=this.lastFlushDepth-1;a>=this.flushDepth;a--)this.jsonParseOffset--,s=(this.stack[a]===k?"{":"[")+s;this.parseAndAppend(s,!1);for(let a=this.lastFlushDepth-1;a>=this.flushDepth;a--)this.valueStack=this.valueStack.prev}this.lastFlushDepth=this.flushDepth}push(t){if(typeof t!="string"){if(this.pendingByteSeq!==null){let a=t;t=new Uint8Array(this.pendingByteSeq.length+a.length),t.set(this.pendingByteSeq),t.set(a,this.pendingByteSeq.length),this.pendingByteSeq=null}if(t[t.length-1]>127)for(let a=0;a<t.length;a++){let o=t[t.length-1-a];if(o>>6===3){a++,(a!==4&&o>>3===30||a!==3&&o>>4===14||a!==2&&o>>5===6)&&(this.pendingByteSeq=t.slice(t.length-a),t=t.slice(0,-a));break}}t=fe.decode(t)}let n=t.length,r=0,s=0;e:for(let a=0;a<n;a++){if(this.stateString){for(;a<n;a++)if(this.stateStringEscape)this.stateStringEscape=!1;else switch(t.charCodeAt(a)){case 34:this.stateString=!1;continue e;case 92:this.stateStringEscape=!0}break}switch(t.charCodeAt(a)){case 34:this.stateString=!0,this.stateStringEscape=!1;break;case 44:s=a;break;case 123:s=a+1,this.stack[this.flushDepth++]=k;break;case 91:s=a+1,this.stack[this.flushDepth++]=de;break;case 93:case 125:s=a+1,this.flushDepth--,this.flushDepth<this.lastFlushDepth&&(this.flush(t,r,s),r=s);break;case 9:case 10:case 13:case 32:r===a&&r++,s===a&&s++;break}}s>r&&this.flush(t,r,s),s<n&&(this.pendingChunk!==null?this.pendingChunk+=t:this.pendingChunk=t.slice(s,n)),this.chunkOffset+=n}finish(){return this.pendingChunk!==null&&(this.flush("",0,0),this.pendingChunk=null),this.value}}});var x=class{constructor(){this.listeners=Object.create(null)}on(t,n){return this.listeners[t]={callback:n,next:this.listeners[t]||null},this}once(t,n){return this.on(t,function r(...s){n.apply(this,s),this.off(t,r)})}off(t,n){let r=this.listeners[t]||null,s=null;for(;r!==null;){if(r.callback===n){r.callback=null,s?s.next=r.next:this.listeners[t]=r.next;break}s=r,r=r.next}return this}emit(t,...n){let r=this.listeners[t]||null,s=!1;for(;r!==null;)typeof r.callback=="function"&&r.callback.apply(this,n),s=!0,r=r.next;return s}};var y=class{static setValue(t,n){if(!t.shouldPublish(n,t.value))return!1;let r=[],s=t.subscriber;for(t.value=n;s!==null;){let{callback:a,thisArg:o}=s;a!==null&&r.push(a.call(o,n,()=>t.unsubscribe(a,o))),s=s.subscriber}return r}constructor(t,n){this.value=t,this.shouldPublish=typeof n=="function"?n:this.shouldPublish,this.subscriber=null}get readonly(){let t=this;return{subscribe:this.subscribe.bind(this),subscribeSync:this.subscribeSync.bind(this),unsubscribe:this.unsubscribe.bind(this),get value(){return t.value}}}subscribe(t,n){return this.subscriber={callback:t,thisArg:n,subscriber:this.subscriber},()=>this.unsubscribe(t,n)}subscribeSync(t,n){let r=this.subscribe(t,n);return t.call(n,this.value,r),r}unsubscribe(t,n){let r=this,s=this.subscriber;for(;s!==null;){if(s.callback===t&&s.thisArg===n){s.callback=null,s.thisArg=null,r.subscriber=s.subscriber;break}r=s,s=s.subscriber}}shouldPublish(t,n){return t!==n}set(t){return this.constructor.setValue(this,t)!==!1}asyncSet(t){let n=this.constructor.setValue(this,t);return n===!1?Promise.resolve(!1):Promise.all(n).then(r=>r!==!1)}};function T(){return[parseInt(performance.timeOrigin,10).toString(16),parseInt(1e4*performance.now(),10).toString(16),String(Math.random().toString(16).slice(2))].join("-")}var qe=te(_(),1);var q=typeof new Blob().stream=="function"?e=>e.stream():ge();function ge(){try{return new ReadableStream({type:"bytes"}),ye}catch{try{return new ReadableStream({}),me}catch{try{return new Response(new Blob).body.getReader(),be}catch{}}}return we}function V(e){return typeof e.arrayBuffer=="function"?e.arrayBuffer():new Promise((t,n)=>{let r=new FileReader;r.readAsArrayBuffer(e),r.onload=r.onerror=({type:s})=>{r.onload=r.onerror=null,s==="load"?t(r.result||r):n(new Error("Failed to read the blob/file"))}})}function ye(e){let t=0;return new ReadableStream({type:"bytes",autoAllocateChunkSize:512*1024,pull(n){let r=n.byobRequest.view,s=e.slice(t,t+r.byteLength);return V(s).then(a=>{let o=new Uint8Array(a),l=o.byteLength;t+=l,r.set(o),n.byobRequest.respond(l),t>=e.size&&n.close()})}})}function me(e){let t=0;return new ReadableStream({pull(n){let r=e.slice(t,t+524288);return V(r).then(s=>{t+=s.byteLength,n.enqueue(new Uint8Array(s)),t==e.size&&n.close()})}})}function be(e){return new Response(e).body}function we(){throw new Error("Blob#stream() is not supported and no fallback can be applied, include https://github.com/MattiasBuelens/web-streams-polyfill")}var it=new Uint8Array([0,0,74,83,79,78,88,76]);var Se=1<<0,z=1<<1,ve=1<<2,xe=1<<3,J=1<<4,H=1<<5,$=1<<6,ke=1<<7,Ae=0,Te=1,De=2,Re=3,Pe=4,Ee=5,Ie=6,Ue=7,Ce=8,Oe=9,Fe=10,Ne=11,Me=12,Be=31,ot=~Be,Le=224,lt=~Le,je=7936,ct=~je;var ut=~J,ht=z|H|$,_e=new Uint8Array(256),dt=new Uint8Array(8).map((e,t)=>(_e[1<<t]=t,1<<t)),ft=new Uint8Array(256).map((e,t)=>{for(let n=0;n<8;n++)e+=t>>n&1;return e}),pt=Object.fromEntries(Object.entries({TYPE_UNDEF:Se,TYPE_TRUE:H,TYPE_FALSE:$,TYPE_NULL:z,TYPE_NUMBER:ve,TYPE_STRING:xe,TYPE_OBJECT:J,TYPE_ARRAY:ke}).map(([e,t])=>[t,e])),gt=Object.fromEntries(Object.entries({UINT_8:Ae,UINT_16:Te,UINT_24:De,UINT_32:Re,UINT_32_VAR:Pe,INT_8:Ce,INT_16:Oe,INT_24:Fe,INT_32:Ne,INT_32_VAR:Me,FLOAT_32:Ee,FLOAT_64:Ie,DECIMAL:Ue}).map(([e,t])=>[t,e])),yt=new Uint8Array(32);var mt=new TextDecoder("utf8",{ignoreBOM:!0});function Ve(e){return e!==null&&typeof e=="object"}function ze(e){try{return new URL(e,location.origin).origin===location.origin}catch{return!1}}function Je(e){return e.ok}function He(e){return e.headers.get("x-file-encoded-size")||e.headers.get("content-length")}function $e(e){return e.headers.get("x-file-size")||(ze(e.url)&&!e.headers.get("content-encoding")?e.headers.get("content-length"):void 0)}function Ye(e){return e.headers.get("x-file-created-at")||e.headers.get("last-modified")}function Y(e,t){if(e instanceof Response){let n=t?.isResponseOk||Je,r=t?.getContentSize||$e,s=t?.getContentEncodedSize||He,a=t?.getContentSize||Ye;if(n(e))return{type:"url",name:e.url,size:Number(r(e))||null,encodedSize:Number(s(e)),createdAt:a(e)}}if(e instanceof File)return{type:"file",name:e.name,size:e.size,createdAt:e.lastModified};if(e instanceof Blob)return{size:e.size};if(ArrayBuffer.isView(e))return{size:e.byteLength};if(typeof e=="string")return{size:e.length}}function Ke(e){if(typeof e=="string"||DataView.isView(e))return function*(){yield new TextEncoder().encode(e)};if(!(Array.isArray(e)&&e.some(t=>typeof t!="string"))&&Ve(e)){if(Symbol.asyncIterator in e)return e[Symbol.asyncIterator];if(Symbol.iterator in e)return e[Symbol.iterator]}}function K(e){return e instanceof ReadableStream?e:e instanceof Response?e.body:e instanceof Blob?q(e):new ReadableStream({start(){let t=Ke(e);if(!t)throw new Error("Bad value type (can't convert to a generator)");this.iterator=t()},async pull(t){let{value:n,done:r}=await this.iterator.next();r?(this.iterator=null,t.close()):t.enqueue(n)},cancel(){this.iterator=null}})}var We=(()=>{let e=!1;try{let t={get passive(){return e=!0,!1}};window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch{}return e})(),At=We?Object.freeze({passive:!0,capture:!0}):!0;var P={request:{value:0,title:"Awaiting data"},receive:{value:.1,title:"Receiving data"},received:{value:.9,title:"Await app ready"},prepare:{value:.925,title:"Processing data (prepare)"},initui:{value:.975,title:"Rendering UI"},done:{value:1,title:"Done!"},error:{value:1,title:"Error!"}};Object.values(P).forEach((e,t,n)=>{e.duration=(t!==n.length-1?n[t+1].value:0)-e.value});function Ge(e,t){let{value:n,title:r,duration:s}=P[e],a=0,o=null;if(t){let{done:l,elapsed:p,units:b,completed:w,total:v}=t;v?(a=l?1:w/v,o=b==="bytes"?Math.round(a*100)+"%":`${w}/${v}`):(a=l?1:.1+Math.min(.9,p/2e4),o=b==="bytes"?(w/(1024*1024)).toFixed(1)+"MB":w)}return{stageTitle:r,progressValue:n+a*s,progressText:o,title:o?`${r} (${o})...`:e!=="done"?`${r}...`:r}}var E="[Discovery/embed-host]",Ze=(()=>{try{let e=new ReadableStream;return new MessageChannel().port1.postMessage(e,[e]),!0}catch{return!1}})();function Nt(e,t,n){class r extends x{constructor(i,u){super(),this.window=i,this.id=u,this.publicApi=Object.freeze({})}sendMessage(i,u,f){this.window.postMessage({id:this.id,type:i,payload:u||null},"*",f)}destroy(){this.window=null,this.sendMessage=()=>{}}}class s extends r{constructor(i,u,f){super(i,u),this.actions=f,this.publicApi=Object.freeze({on:this.on.bind(this),once:this.once.bind(this),off:this.off.bind(this),defineAction:(d,c)=>{this.actions.set(d,c),this.sendMessage("defineAction",d)},setPageHash:(d,c)=>{this.sendMessage("setPageHash",{hash:d,replace:c})},setRouterPreventLocationUpdate:(d=!0)=>{this.sendMessage("setRouterPreventLocationUpdate",d)}})}processMessage(i){switch(i.type){case"loadingState":{this.emit("loadingStateChanged",i.payload);break}}}}class a extends r{constructor(i,u,f){super(i,u),this.actions=f,this.commandMap=new Map,this.requestDataLoadToken=void 0,this.requestDataLoader=void 0,this.pageHash=new y(""),this.pageId=new y(""),this.pageRef=new y(""),this.pageParams=new y({}),this.darkmode=new y({mode:"unknown",value:"unknown"},(c,h)=>c.mode!==h.mode||c.value!==h.value);let d={primary:I("primary",this.sendMessage.bind(this),this.commandMap),secondary:I("secondary",this.sendMessage.bind(this),this.commandMap),menu:I("menu",this.sendMessage.bind(this),this.commandMap)};this.publicApi=Object.freeze({pageHash:this.pageHash.readonly,pageId:this.pageId.readonly,pageRef:this.pageRef.readonly,pageParams:this.pageParams.readonly,darkmode:this.darkmode.readonly,on:this.on.bind(this),once:this.once.bind(this),off:this.off.bind(this),nav:Object.assign(d.secondary,d),defineAction:(c,h)=>{this.actions.set(c,h),this.sendMessage("defineAction",c)},setPageHash:(c,h)=>{this.sendMessage("setPageHash",{hash:c,replace:h})},setPage:(c,h,S,m)=>{this.sendMessage("setPage",{id:c,ref:h,params:S,replace:m})},setPageRef:(c,h)=>{this.sendMessage("setPageRef",{ref:c,replace:h})},setPageParams:(c,h)=>{this.sendMessage("setPageParams",{params:c,replace:h})},setDarkmode:c=>{this.sendMessage("setDarkmode",c)},setRouterPreventLocationUpdate:(c=!0)=>{this.sendMessage("setRouterPreventLocationUpdate",c)},unloadData:()=>{this.sendMessage("unloadData")},uploadData:(c,h)=>{let S=T();return this.dataLoadToken=S,v(c,h).finally(()=>{this.dataLoadToken===S&&(this.dataLoadToken=null)})}})}async processMessage(i){switch(i.type){case"destroy":{b();break}case"action":{let{callId:u,name:f,args:d}=i.payload,c=this.actions.get(f);if(typeof c=="function")try{this.sendMessage("actionResult",{callId:u,value:await c(...d)})}catch(h){this.sendMessage("actionResult",{callId:u,error:h})}else console.warn(`${E} Action "${f}" was not found`);break}case"navMethod":{let u=this.commandMap.get(i.payload);typeof u=="function"?u():console.warn(`${E} Nav command "${i.payload}" was not found`);break}case"pageHashChanged":{let{replace:u,hash:f,id:d,ref:c,params:h}=i.payload||{};this.pageHash.set(f),this.pageId.set(d),this.pageRef.set(c),this.pageParams.set(h),this.emit("pageHashChanged",f,u);break}case"darkmodeChanged":{let u=i.payload;this.darkmode.set(u),this.emit("darkmodeChanged",u);break}case"unloadData":{this.emit("unloadData");break}case"data":{this.emit("data");break}case"loadingState":{this.emit("loadingStateChanged",i.payload);break}default:console.error(`${E} Unknown embed message type "${i.type}"`)}}destroy(){super.destroy(),this.requestDataLoadToken=void 0,this.requestDataLoader=void 0}}let o=new Map,l=null,p=null;return typeof n!="function"&&(n=t,t=null),addEventListener("message",w),()=>{removeEventListener("message",w),b()};function b(){l!==null&&(l.destroy(),typeof p=="function"&&p(),l=null,p=null)}async function w(g){let i=g.data||{};if(g.isTrusted&&(g.source===e.contentWindow||g.source===null)&&i.from==="discoveryjs-app"){if(i.type==="ready"){b(),o.id!==i.id&&(o.clear(),o.id=i.id),l=new a(e.contentWindow,i.id,o),l.pageHash.set(i.payload.page.hash),l.pageId.set(i.payload.page.id),l.pageRef.set(i.payload.page.ref),l.pageParams.set(i.payload.page.params),l.darkmode.set(i.payload.darkmode),p=n(l.publicApi);return}if(i.type==="preinit"){b(),typeof t=="function"&&(o.id!==i.id&&(o.clear(),o.id=i.id),l=new s(e.contentWindow,i.id,o),p=t(l.publicApi));return}if(l?.id===i.id){l.processMessage(i);return}}}async function v(g,i=Y){let u=l.dataLoadToken,f=()=>{if(l?.dataLoadToken!==u)throw new Error("Data upload aborted")},d=typeof g=="function"?await g():await g;f();let c=typeof i=="function"?i(d)||{}:{},h=K(d);if(Ze)l.sendMessage("dataStream",{stream:h,resource:c},[h]);else{let S=h.getReader();l.sendMessage("startChunkedDataUpload",{acceptToken:u,resource:c});try{for(;;){let{value:m,done:U}=await S.read();if(l.sendMessage("dataChunk",{acceptToken:u,value:m,done:U},m?.buffer?[m.buffer]:void 0),f(),U)break}}catch(m){throw l.sendMessage("cancelChunkedDataUpload",{acceptToken:u,error:m}),m}finally{S.releaseLock()}}}}function I(e,t,n){function r(s){let a=[];return{commands:a,config:JSON.parse(JSON.stringify(s,(o,l)=>{if(typeof l=="function"){let p="nav-command-"+T();return a.push(p),n.set(p,l),p}return l}))}}return{insert(s,a,o){t("changeNavButtons",{section:e,action:"insert",name:o,position:a,...r(s)})},prepend(s){t("changeNavButtons",{section:e,action:"prepend",...r(s)})},append(s){t("changeNavButtons",{section:e,action:"append",...r(s)})},before(s,a){t("changeNavButtons",{section:e,action:"before",name:s,...r(a)})},after(s,a){t("changeNavButtons",{section:e,action:"after",name:s,...r(a)})},replace(s,a){t("changeNavButtons",{section:e,action:"replace",name:s,...r(a)})},remove(s){t("changeNavButtons",{section:e,action:"remove",name:s})}}}export{Nt as connectToEmbedApp,Ge as decodeStageProgress,P as loadStages}; |
@@ -1,1 +0,1 @@ | ||
var nt=Object.create;var re=Object.defineProperty;var st=Object.getOwnPropertyDescriptor;var it=Object.getOwnPropertyNames;var at=Object.getPrototypeOf,ot=Object.prototype.hasOwnProperty;var J=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var lt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of it(t))!ot.call(e,s)&&s!==r&&re(e,s,{get:()=>t[s],enumerable:!(n=st(t,s))||n.enumerable});return e};var ct=(e,t,r)=>(r=e!=null?nt(at(e)):{},lt(t||!e||!e.__esModule?re(r,"default",{value:e,enumerable:!0}):r,e));var oe=J((Ir,ae)=>{var pt={8:"\\b",9:"\\t",10:"\\n",12:"\\f",13:"\\r",34:'\\"',92:"\\\\"};function yt(e){return e>=55296&&e<=56319}function gt(e){return e>=56320&&e<=57343}function ie(e){return typeof e.pipe=="function"&&typeof e._read=="function"&&typeof e._readableState=="object"&&e._readableState!==null}function mt(e,t,r,n){switch(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),n!==null&&(r=n.call(e,String(t),r)),typeof r){case"function":case"symbol":r=void 0;break;case"object":if(r!==null){let s=r.constructor;(s===String||s===Number||s===Boolean)&&(r=r.valueOf())}break}return r}function bt(e){return e===null||typeof e!="object"?1:Array.isArray(e)?3:2}function St(e){return e===null||typeof e!="object"?1:typeof e.then=="function"?4:ie(e)?e._readableState.objectMode?6:5:Array.isArray(e)?3:2}function wt(e){return typeof e=="function"?e:Array.isArray(e)?[...new Set(e.map(r=>{let n=r&&r.constructor;return n===String||n===Number?String(r):null}).filter(r=>typeof r=="string"))]:null}function vt(e){return typeof e=="number"?!Number.isFinite(e)||e<1?!1:" ".repeat(Math.min(e,10)):typeof e=="string"&&e.slice(0,10)||!1}ae.exports={escapableCharCodeSubstitution:pt,isLeadingSurrogate:yt,isTrailingSurrogate:gt,type:{PRIMITIVE:1,PROMISE:4,ARRAY:3,OBJECT:2,STRING_STREAM:5,OBJECT_STREAM:6},isReadableStream:ie,replaceValue:mt,getTypeNative:bt,getTypeAsync:St,normalizeReplacer:wt,normalizeSpace:vt}});var ce=J((Rr,le)=>{le.exports=TextDecoder});var de=J((Cr,fe)=>{var{isReadableStream:xt}=oe(),kt=ce(),U=1,At=2,Tt=new kt;function ue(e){return e!==null&&typeof e=="object"}function Y(e,t){return e.name==="SyntaxError"&&t.jsonParseOffset&&(e.message=e.message.replace(/at position (\d+)/,(r,n)=>"at position "+(Number(n)+t.jsonParseOffset))),e}function Et(e,t){let r=e.length;e.length+=t.length;for(let n=0;n<t.length;n++)e[r+n]=t[n]}fe.exports=function(e){let t=new K;if(ue(e)&&xt(e))return new Promise((r,n)=>{e.on("data",s=>{try{t.push(s)}catch(i){n(Y(i,t)),t=null}}).on("error",s=>{t=null,n(s)}).on("end",()=>{try{r(t.finish())}catch(s){n(Y(s,t))}finally{t=null}})});if(typeof e=="function"){let r=e();if(ue(r)&&(Symbol.iterator in r||Symbol.asyncIterator in r))return new Promise(async(n,s)=>{try{for await(let i of r)t.push(i);n(t.finish())}catch(i){s(Y(i,t))}finally{t=null}})}throw new Error("Chunk emitter should be readable stream, generator, async generator or function returning an iterable object")};var K=class{constructor(){this.value=void 0,this.valueStack=null,this.stack=new Array(100),this.lastFlushDepth=0,this.flushDepth=0,this.stateString=!1,this.stateStringEscape=!1,this.pendingByteSeq=null,this.pendingChunk=null,this.chunkOffset=0,this.jsonParseOffset=0}parseAndAppend(t,r){this.stack[this.lastFlushDepth-1]===U?(r&&(this.jsonParseOffset--,t="{"+t+"}"),Object.assign(this.valueStack.value,JSON.parse(t))):(r&&(this.jsonParseOffset--,t="["+t+"]"),Et(this.valueStack.value,JSON.parse(t)))}prepareAddition(t){let{value:r}=this.valueStack;if(Array.isArray(r)?r.length!==0:Object.keys(r).length!==0){if(t[0]===",")return this.jsonParseOffset++,t.slice(1);if(t[0]!=="}"&&t[0]!=="]")return this.jsonParseOffset-=3,"[[]"+t}return t}flush(t,r,n){let s=t.slice(r,n);if(this.jsonParseOffset=this.chunkOffset+r,this.pendingChunk!==null&&(s=this.pendingChunk+s,this.jsonParseOffset-=this.pendingChunk.length,this.pendingChunk=null),this.flushDepth===this.lastFlushDepth)this.flushDepth>0?this.parseAndAppend(this.prepareAddition(s),!0):(this.value=JSON.parse(s),this.valueStack={value:this.value,prev:null});else if(this.flushDepth>this.lastFlushDepth){for(let i=this.flushDepth-1;i>=this.lastFlushDepth;i--)s+=this.stack[i]===U?"}":"]";this.lastFlushDepth===0?(this.value=JSON.parse(s),this.valueStack={value:this.value,prev:null}):this.parseAndAppend(this.prepareAddition(s),!0);for(let i=this.lastFlushDepth||1;i<this.flushDepth;i++){let a=this.valueStack.value;if(this.stack[i-1]===U){let l;for(l in a);a=a[l]}else a=a[a.length-1];this.valueStack={value:a,prev:this.valueStack}}}else{s=this.prepareAddition(s);for(let i=this.lastFlushDepth-1;i>=this.flushDepth;i--)this.jsonParseOffset--,s=(this.stack[i]===U?"{":"[")+s;this.parseAndAppend(s,!1);for(let i=this.lastFlushDepth-1;i>=this.flushDepth;i--)this.valueStack=this.valueStack.prev}this.lastFlushDepth=this.flushDepth}push(t){if(typeof t!="string"){if(this.pendingByteSeq!==null){let i=t;t=new Uint8Array(this.pendingByteSeq.length+i.length),t.set(this.pendingByteSeq),t.set(i,this.pendingByteSeq.length),this.pendingByteSeq=null}if(t[t.length-1]>127)for(let i=0;i<t.length;i++){let a=t[t.length-1-i];if(a>>6===3){i++,(i!==4&&a>>3===30||i!==3&&a>>4===14||i!==2&&a>>5===6)&&(this.pendingByteSeq=t.slice(t.length-i),t=t.slice(0,-i));break}}t=Tt.decode(t)}let r=t.length,n=0,s=0;e:for(let i=0;i<r;i++){if(this.stateString){for(;i<r;i++)if(this.stateStringEscape)this.stateStringEscape=!1;else switch(t.charCodeAt(i)){case 34:this.stateString=!1;continue e;case 92:this.stateStringEscape=!0}break}switch(t.charCodeAt(i)){case 34:this.stateString=!0,this.stateStringEscape=!1;break;case 44:s=i;break;case 123:s=i+1,this.stack[this.flushDepth++]=U;break;case 91:s=i+1,this.stack[this.flushDepth++]=At;break;case 93:case 125:s=i+1,this.flushDepth--,this.flushDepth<this.lastFlushDepth&&(this.flush(t,n,s),n=s);break;case 9:case 10:case 13:case 32:n===i&&n++,s===i&&s++;break}}s>n&&this.flush(t,n,s),s<r&&(this.pendingChunk!==null?this.pendingChunk+=t:this.pendingChunk=t.slice(s,r)),this.chunkOffset+=r}finish(){return this.pendingChunk!==null&&(this.flush("",0,0),this.pendingChunk=null),this.value}}});var T=class{static setValue(t,r){if(!t.shouldPublish(r,t.value))return!1;let n=[],s=t.subscriber;for(t.value=r;s!==null;){let{callback:i,thisArg:a}=s;i!==null&&n.push(i.call(a,r,()=>t.unsubscribe(i,a))),s=s.subscriber}return n}constructor(t,r){this.value=t,this.shouldPublish=typeof r=="function"?r:this.shouldPublish,this.subscriber=null}get readonly(){let t=this;return{subscribe:this.subscribe.bind(this),subscribeSync:this.subscribeSync.bind(this),unsubscribe:this.unsubscribe.bind(this),get value(){return t.value}}}subscribe(t,r){return this.subscriber={callback:t,thisArg:r,subscriber:this.subscriber},()=>this.unsubscribe(t,r)}subscribeSync(t,r){let n=this.subscribe(t,r);return t.call(r,this.value,n),n}unsubscribe(t,r){let n=this,s=this.subscriber;for(;s!==null;){if(s.callback===t&&s.thisArg===r){s.callback=null,s.thisArg=null,n.subscriber=s.subscriber;break}n=s,s=s.subscriber}}shouldPublish(t,r){return t!==r}set(t){return this.constructor.setValue(this,t)!==!1}asyncSet(t){let r=this.constructor.setValue(this,t);return r===!1?Promise.resolve(!1):Promise.all(r).then(n=>n!==!1)}};function A(e,t,r){let n=document.createElement(e);typeof t=="string"&&(t={class:t});for(let s in t)if(hasOwnProperty.call(t,s)){if(t[s]===void 0)continue;s.startsWith("on")?n.addEventListener(s.substr(2),t[s]):n.setAttribute(s,t[s])}return Array.isArray(r)?r.forEach(s=>n.appendChild(s instanceof Node?s:ut(s))):typeof r=="string"&&(n.innerHTML=r),n}function ut(e){return document.createTextNode(String(e))}var ft=(()=>{let e=!1;try{let t={get passive(){return e=!0,!1}};window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch{}return e})(),Tr=ft?Object.freeze({passive:!0,capture:!0}):!0;var $={request:{value:0,title:"Awaiting data"},receive:{value:.1,title:"Receiving data"},received:{value:.9,title:"Await app ready"},prepare:{value:.925,title:"Processing data (prepare)"},initui:{value:.975,title:"Rendering UI"},done:{value:1,title:"Done!"}};Object.values($).forEach((e,t,r)=>{e.duration=(t!==r.length-1?r[t+1].value:0)-e.value});var ne=e=>e|0,se=e=>typeof e=="function"?e:()=>{},dt=async()=>{if(await new Promise(e=>setTimeout(e,1)),!document.hidden)return Promise.race([new Promise(requestAnimationFrame),new Promise(e=>setTimeout(e,8))])};function ht(e,t){let{value:r,title:n,duration:s}=$[e],i=0,a=null;if(t){let{done:l,elapsed:u,units:o,completed:c,total:f}=t;f?(i=l?1:c/f,a=o==="bytes"?Math.round(i*100)+"%":`${c}/${f}`):(i=l?1:.1+Math.min(.9,u/2e4),a=o==="bytes"?(c/(1024*1024)).toFixed(1)+"MB":c)}return{stageTitle:n,progressValue:r+i*s,progressText:a,title:a?`${n} (${a})...`:e!=="done"?`${n}...`:n}}var C=class extends T{constructor({onTiming:t,onFinish:r,delay:n,domReady:s}){super({stage:null,progress:null,error:null}),this.finished=!1,this.awaitRepaint=null,this.lastStage="created",this.lastStageStart=null,this.timings=[],this.onTiming=se(t),this.onFinish=se(r),this.appearanceDelay=n===!0?200:Number(n)||0,this.domReady=s||Promise.resolve(),this.el=A("div","view-progress init",[A("div","title"),A("div","progress")])}recordTiming(t,r,n=performance.now()){let s={stage:t,title:$[t].title,duration:ne(n-r)};this.timings.push(s),this.onTiming(s)}async setState(t){let{stage:r,progress:n,error:s}=t;if(this.finished)return;if(s){this.set("stage"in t?{stage:r,progress:n,error:s}:{...this.value,error:s});return}this.set(t);let i=r!==this.lastStage,a=performance.now();this.lastStage==="created"&&(this.startTime=a,this.domReady.then(()=>{let o=Math.max(0,this.appearanceDelay-ne(performance.now()-a));o&&this.el.style.setProperty("--appearance-delay",`${o}ms`),getComputedStyle(this.el).opacity,this.el.classList.remove("init")})),i&&(this.lastStageStart!==null&&this.recordTiming(this.lastStage,this.lastStageStart,a),this.lastStage=r,this.lastStageStart=a,this.awaitRepaint=a);let{title:l,progressValue:u}=ht(r,n);this.el.querySelector(".title").textContent=l,this.el.style.setProperty("--progress",u),(i||a-this.awaitRepaint>65&&a-this.lastStageStart>200)&&(await dt(),this.awaitRepaint=performance.now())}finish(){this.finished||(this.finished=!0,this.lastStageStart!==null&&this.recordTiming(this.lastStage,this.lastStageStart),this.recordTiming("done",this.startTime),this.onFinish(this.timings),this.set({stage:"done"}))}dispose(){this.finish(),this.el.remove()}};var Me=ct(de(),1);var he=typeof new Blob().stream=="function"?e=>e.stream():Dt();function Dt(){try{return new ReadableStream({type:"bytes"}),Ot}catch{try{return new ReadableStream({}),Pt}catch{try{return new Response(new Blob).body.getReader(),It}catch{}}}return Rt}function pe(e){return typeof e.arrayBuffer=="function"?e.arrayBuffer():new Promise((t,r)=>{let n=new FileReader;n.readAsArrayBuffer(e),n.onload=n.onerror=({type:s})=>{n.onload=n.onerror=null,s==="load"?t(n.result||n):r(new Error("Failed to read the blob/file"))}})}function Ot(e){let t=0;return new ReadableStream({type:"bytes",autoAllocateChunkSize:512*1024,pull(r){let n=r.byobRequest.view,s=e.slice(t,t+n.byteLength);return pe(s).then(i=>{let a=new Uint8Array(i),l=a.byteLength;t+=l,n.set(a),r.byobRequest.respond(l),t>=e.size&&r.close()})}})}function Pt(e){let t=0;return new ReadableStream({pull(r){let n=e.slice(t,t+524288);return pe(n).then(s=>{t+=s.byteLength,r.enqueue(new Uint8Array(s)),t==e.size&&r.close()})}})}function It(e){return new Response(e).body}function Rt(){throw new Error("Blob#stream() is not supported and no fallback can be applied, include https://github.com/MattiasBuelens/web-streams-polyfill")}var Ct=new Uint8Array([0,0,74,83,79,78,88,76]),ye=9,Ut=268435455,Ft=4294967295,we=1<<0,V=1<<1,O=1<<2,F=1<<3,P=1<<4,B=1<<5,L=1<<6,E=1<<7,ve=0,xe=1,ke=2,Ae=3,Te=4,Ee=5,De=6,jt=7,Oe=8,Pe=9,Ie=10,Re=11,Ce=12,_t=31,Fr=~_t,Ue=224,jr=~Ue,Fe=7936,_r=~Fe,je=0,H=1,Nt=2,Vt=3,Bt=4,Lt=5,_e=6,Ne=7,Mt=8,ge=16,me=32,Nr=~P,be=V|B|L,zt=new Uint8Array(256),Ve=new Uint8Array(8).map((e,t)=>(zt[1<<t]=t,1<<t)),Be=new Uint8Array(256).map((e,t)=>{for(let r=0;r<8;r++)e+=t>>r&1;return e}),Vr=Object.fromEntries(Object.entries({TYPE_UNDEF:we,TYPE_TRUE:B,TYPE_FALSE:L,TYPE_NULL:V,TYPE_NUMBER:O,TYPE_STRING:F,TYPE_OBJECT:P,TYPE_ARRAY:E}).map(([e,t])=>[t,e])),Br=Object.fromEntries(Object.entries({UINT_8:ve,UINT_16:xe,UINT_24:ke,UINT_32:Ae,UINT_32_VAR:Te,INT_8:Oe,INT_16:Pe,INT_24:Ie,INT_32:Re,INT_32_VAR:Ce,FLOAT_32:Ee,FLOAT_64:De,DECIMAL:jt}).map(([e,t])=>[t,e])),W=new Uint8Array(32),qt=class{constructor(e){this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.bytes=e,this.pos=0}readBytes(e){return this.bytes.subarray(this.pos,this.pos+=e)}readTypeIndex(e,t,r){let n=0,s=0;for(;t>0;)t&1&&(W[n++]=s),s++,t>>=1;let i=new Uint8Array(e),a=32-Math.clz32(n-1),l=(1<<a)-1,u=this.readBytes(Math.ceil(a*e/8)),o=0,c=0,f=0;for(let d=0;d<e;d++)c<a&&(f|=u[o]<<c,c+=8,o++),i[d]=r?Ve[W[f&l]]:W[f&l],f>>=a,c-=a;return i}readVlq(){let e=this.view.getUint8(this.pos);if((e&1)===0)e=e>>1,this.pos+=1;else if((e&2)===0)e=this.view.getUint8(this.pos+1)<<6|e>>2,this.pos+=2;else if((e&4)===0)e=this.view.getUint16(this.pos+1,!0)<<5|e>>3,this.pos+=3;else{let t=this.view.getUint32(this.pos,!0);e=t>>>3&Ut,this.pos+=4,t>>>31&&(e+=this.readUintVar()*(1<<28))}return e}readUintVar(){let e=this.view.getUint8(this.pos++),t=e&127,r=128;for(;e&128;)e=this.view.getUint8(this.pos++),t+=(e&127)*r,r*=128;return t}readIntVar(){let e=this.readUintVar();return e&1?-(e-1)/2:e<=Ft?e>>>1:e/2}readUint8(){let e=this.view.getUint8(this.pos);return this.pos++,e}readInt8(){let e=this.view.getInt8(this.pos);return this.pos++,e}readUint16(){let e=this.view.getUint16(this.pos,!0);return this.pos+=2,e}readInt16(){let e=this.view.getInt16(this.pos,!0);return this.pos+=2,e}readUint24(){let e=this.view.getUint16(this.pos,!0)|this.view.getUint8(this.pos+2)<<16;return this.pos+=3,e}readInt24(){let e=this.view.getUint16(this.pos,!0),t=this.view.getUint8(this.pos+2),r=t&128?-(16777215-(e|t<<16)+1):e|t<<16;return this.pos+=3,r}readUint32(){let e=this.view.getUint32(this.pos,!0);return this.pos+=4,e}readInt32(){let e=this.view.getInt32(this.pos,!0);return this.pos+=4,e}readFloat32(){let e=this.view.getFloat32(this.pos);return this.pos+=4,e}readFloat64(){let e=this.view.getFloat64(this.pos);return this.pos+=8,e}};function G(e,t){switch(t){case ve:return e.readUint8();case xe:return e.readUint16();case ke:return e.readUint24();case Ae:return e.readUint32();case Te:return e.readUintVar();case Oe:return e.readInt8();case Pe:return e.readInt16();case Ie:return e.readInt24();case Re:return e.readInt32();case Ce:return e.readIntVar();case Ee:return e.readFloat32();case De:return e.readFloat64()}}function Jt(e){let t=e.readUint8();switch(t&15){case je:case H:case _e:case Ne:t|=e.readUint8()<<8;break}return t}function k(e,t=e.readVlq()){let r=Jt(e);return Z(e,r,t)}function Z(e,t,r,n=new Array(r)){let s=t&15,i=t&48,a=r,l=0,u=0;switch(i){case ge:{l=n[0]=e.readIntVar(),a--,u=1;break}case me:{l=e.readIntVar();break}}switch(s){case Nt:{for(let o=0;o<a;o++)n[u+o]=e.readVlq();break}case Vt:{for(let o=0;o<a;o++)n[u+o]=e.readIntVar();break}case Bt:{let o=e.readBytes(Math.ceil(a/2));for(let c=0,f=0;c<a;c++)f=c&1?f>>4:o[c>>1],n[u+c]=f&8?e.readVlq()*8+(f&7):f&7;break}case Lt:{let o=e.readBytes(Math.ceil(a/2));for(let c=0,f=0;c<a;c++){f=c&1?f>>4:o[c>>1];let d=f&4?-1:1;n[u+c]=f&8?d*(e.readVlq()*4+(f&3)):d*(f&3)}break}case _e:{let o=t>>8,c=(1<<o)-1,f=e.readBytes(Math.ceil(a*o/8)),d=0,h=0,p=0;for(let g=0;g<a;g++){for(;h<o;)p|=f[d]<<h,h+=8,d++;n[u+g]=p&c,p>>=o,h-=o}break}case Ne:{let o=t>>8,c=(1<<o)-1,f=e.readBytes(Math.ceil(a*o/8)),d=0,h=0,p=0;for(let g=0;g<a;g++){for(;h<o;)p|=f[d]<<h,h+=8,d++;n[u+g]=p&1?-((p&c)>>1):(p&c)>>1,p>>=o,h-=o}break}case Mt:{let o=n[0]=e.readIntVar(),c=e.readIntVar();for(let f=1;f<r;f++)o=n[f]=o+c;break}case je:case H:{let o=s===H,c=t>>8,f=o?t&Fe|c&Ue:c;if(Be[c]>1){let d=e.readTypeIndex(a,f);for(let h=0;h<a;h++)n[u+h]=G(e,d[h])}else{let d=31-Math.clz32(f);for(let h=0;h<a;h++)n[u+h]=G(e,d)}break}default:throw new Error(`Unknown numeric array encoding method: ${s}`)}switch(i){case ge:{n[0]=l;for(let o=1;o<r;o++)n[o]+=n[o-1];break}case me:{for(let o=0;o<r;o++)n[o]+=l;break}}return n}var $t=new TextDecoder("utf8",{ignoreBOM:!0});function Yt(e){if(e.readBytes(8).some((n,s)=>n!==Ct[s]))throw new Error("Bad magic number");let t=e.readUint16();if(t!==ye)throw new Error(`Unsupported jsonxl version "${t}", expected "${ye}"`);let r=e.readUint16();return{version:t,flags:r}}function Kt(e){let t=$t.decode(e.readBytes(e.readVlq())),r=k(e),n=k(e),s=k(e),i=k(e),a=new Array(r),l=0;for(let u=0,o=0,c=0,f=0,d="";u<r.length;u++){let h=r[u],p=t.slice(o,o+=h>>2);h&2&&(p=d.slice(0,n[c++])+p),h&1&&(p=p+d.slice(-s[f++])),a[u]=p,d=p}return{readStrings(u,o){return i.slice(u,o).map(c=>a[c])},readString(){return a[i[l++]]}}}function Wt(e){let t=k(e),r=0;return function(){return t[r++]}}function Ht(e){let t=k(e),r=k(e),n=0;return function(){return t[r[n++]]}}function Gt(e,t){let r=e.readVlq(),n=e.readVlq();if(r===0)return()=>null;let s=n?t(-n):[],i=new Array(r);for(let a=0;a<r;a++)i[a]={dict:k(e),refs:k(e),index:0};return function(a){let l=i[a],u=l.refs[l.index++],o=l.dict[u];return o===0?null:{key:s[o>>8],type:o&255}}}function Se(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function Le(e){function t(d={}){let h=0,p;for(;p=c(h++);)d[p.key]=s(p.type);return d}function r(d=u()){if(d===0)return[];let h=o(),p=h>>16,g=h&65535,D=p&1,_=p>>5&1,N=p>>9&1,w=p>>1&255|(p&1)<<4,v=new Array(d),m=Be[w]>1?i.readTypeIndex(d,w,!0):null;if(w&be)if(m===null)v.fill(n(w));else for(let y=0;y<d;y++)m[y]&be&&(v[y]=n(m[y]));if(w&F)for(let y=0;y<d;y++)(m===null||m[y]===F)&&(v[y]=l());if(w&O)if(w===O)Z(i,g,d,v);else{let y=Se(m,O),b=Z(i,g,y);for(let x=0,S=0;x<d;x++)m[x]===O&&(v[x]=b[S++])}if(w&E)if(N){let y=w===E?d:Se(m,E),b=k(i,y),x=r();for(let S=0,q=0,I=0;S<d;S++)(m===null||m[S]===E)&&(v[S]=x.slice(I,I+=b[q++]))}else for(let y=0;y<d;y++)(m===null||m[y]===E)&&(v[y]=r());if(w&P){let y=w===P?v:[];for(let b=0,x=0;b<d;b++)(m===null||m[b]===P)&&(v[b]=y[x++]={});if(_){let b=i.readVlq(),x=new Array(b);for(let S=0;S<b;S++)x[S]=l();for(let S=0;S<b;S++){let q=x[S],I=r(y.length);for(let R=0;R<y.length;R++)I[R]!==void 0&&(y[R][q]=I[R])}}if(D)for(let b=0;b<y.length;b++)t(y[b])}return v}function n(d){switch(d){default:return;case V:return null;case F:return l();case B:return!0;case L:return!1}}function s(d){switch(Ve[d&7]){case we:return;case V:return null;case F:return l();case O:return G(i,d>>3);case P:return t();case B:return!0;case L:return!1;case E:return r()}}let i=new qt(e);Yt(i);let{readStrings:a,readString:l}=Kt(i),u=Wt(i),o=Ht(i),c=Gt(i,a),f=s(i.readUint8());if(i.pos!==e.byteLength)throw new Error("End of input not reached");return f}var Q={stream:cr,event:ur,file:ze,url:fr,push:dr};function Zt(e){try{return new URL(e,location.origin).origin===location.origin}catch{return!1}}function Qt(e){return e.ok}function Xt(e){return e.headers.get("x-file-encoded-size")||e.headers.get("content-length")}function er(e){return e.headers.get("x-file-size")||(Zt(e.url)&&!e.headers.get("content-encoding")?e.headers.get("content-length"):void 0)}function tr(e){return e.headers.get("x-file-created-at")||e.headers.get("last-modified")}function rr(e){let t=e?Object.keys(e):[],r=["name","createdAt","elapsedTime","data"];return!(t.length!==4||t.some(n=>!r.includes(n)))}function nr(e,t,r,{encoding:n,size:s}){if(rr(e)){let{data:g,...D}=e;e=g,t={...t,createdAt:g.createdAt},r=D}let i=e,a=r||{},{type:l,name:u,encoding:o,size:c,encodedSize:f,createdAt:d,...h}=t;return{resource:{type:l||"unknown",name:u||"unknown",encoding:n,size:s,...f?{encodedSize:f}:null,createdAt:new Date(Date.parse(d)||Date.now()),...h},meta:a,data:i}}var sr=[0,0,74,83,79,78,88,76];function ir(e){return sr.every((t,r)=>t===e[r])}async function ar(e){let t=[],r=0;for await(let i of e)t.push(i),r+=i.byteLength;let n=new Uint8Array(r),s=0;for(let i of t)n.set(i,s),s+=i.length;return Le(n)}function or(e,t,r){let s=e.getReader(),i=Date.now(),a="json",l=0;return s.read().then(u=>{let o=async function*(){try{for(;;){let{done:c,value:f}=u||await s.read();if(u=void 0,c){await r({done:!0,elapsed:Date.now()-i,units:"bytes",completed:l,total:t});break}for(let d=0;d<f.length;d+=1048576){let h=d===0&&f.length-d<1048576?f:f.slice(d,d+1048576);l+=h.length,yield h,await r({done:!1,elapsed:Date.now()-i,units:"bytes",completed:l,total:t})}}}finally{s.releaseLock()}};return ir(u.value)?(a="jsonxl/snapshot9",ar(o())):(0,Me.default)(o)}).then(u=>({data:u,encoding:a,size:l}))}async function lr(e,t){let r=async(n,s)=>(await t.asyncSet({stage:n}),await s());try{let n=new Date,{method:s,stream:i,resource:a,options:l,data:u}=await r("request",e),o=new Date,c=a?.size,{validateData:f}=l||{},{data:d,encoding:h,size:p}=u?{data:u}:await r("receive",()=>or(i,Number(c)||0,m=>t.asyncSet({stage:"receive",progress:m}))),g=new Date;typeof f=="function"&&f(N);let D=new Date;await t.asyncSet({stage:"received"});let _=new Date,{data:N,resource:w,meta:v}=nr(d,a,null,{size:p,encoding:h});return{loadMethod:s,resource:w,meta:v,data:N,timing:{time:_-n,start:n,end:_,requestTime:o-n,requestStart:n,requestEnd:o,responseTime:g-o,responseStart:o,responseEnd:g,validateTime:D-g,validationStart:g,validationEnd:D}}}catch(n){throw console.error("[Discovery] Error loading data:",n),await t.asyncSet({stage:"error",error:n}),n}}function M(e,t){let r=new T;return{state:r,result:lr(e,r),...t}}function cr(e,t){return M(()=>({method:"stream",stream:e,resource:t?.resource,options:t}))}function ze(e,t){let r=Je(e);return M(()=>({method:"file",stream:he(e),resource:t?.resource||r,options:t}),{title:"Load data from file: "+(r.name||"unknown")})}function ur(e,t){let r=e.dataTransfer||e.target,n=r&&r.files&&r.files[0];if(e.stopPropagation(),e.preventDefault(),!n)throw new Error("Can't extract a file from an event object");return ze(n,t)}function fr(e,t){return t=t||{},M(async()=>{let r=await fetch(e,t.fetch),n=Je(r,t);if(n)return{method:"fetch",stream:r.body,resource:t.resource||n,options:t};let s=r.headers.get("content-type")||"",i=await r.text();if(s.toLowerCase().startsWith("application/json"))try{let a=JSON.parse(i);i=a.error||a}catch{}throw i=new Error(i),i.stack=null,i},{title:`Load data from url: ${e}`})}function dr(e){let t,r=new ReadableStream({start(a){t=a},cancel(){t=null}}),n,s,i=new Promise(a=>{n=l=>a({method:"push",stream:r,resource:(s=l)||e.resource,options:e})||(n=()=>{})});return e=e||{},M(()=>i,{start(a){n(a)},push(a){n(),t.enqueue(a)},finish(a){t.close(),t=null,isFinite(a)&&s&&(s.encodedSize=Number(a))}})}function qe({result:e,state:t},r){return new Promise((n,s)=>{let i=t.subscribeSync(({stage:a,progress:l,error:u})=>{if(u){i(),s(u);return}return a==="received"&&(i(),n(e)),r.setState({stage:a,progress:l})})})}function Je(e,t){if(e instanceof Response){let r=t?.isResponseOk||Qt,n=t?.getContentSize||er,s=t?.getContentEncodedSize||Xt,i=t?.getContentSize||tr;if(r(e))return{type:"url",name:e.url,size:Number(n(e))||null,encodedSize:Number(s(e)),createdAt:i(e)}}if(e instanceof File)return{type:"file",name:e.name,size:e.size,createdAt:e.lastModified};if(e instanceof Blob)return{size:e.size};if(ArrayBuffer.isView(e))return{size:e.byteLength};if(typeof e=="string")return{size:e.length}}var j=class{constructor(){this.listeners=Object.create(null)}on(t,r){return this.listeners[t]={callback:r,next:this.listeners[t]||null},this}once(t,r){return this.on(t,function n(...s){r.apply(this,s),this.off(t,n)})}off(t,r){let n=this.listeners[t]||null,s=null;for(;n!==null;){if(n.callback===r){n.callback=null,s?s.next=n.next:this.listeners[t]=n.next;break}s=n,n=n.next}return this}emit(t,...r){let n=this.listeners[t]||null,s=!1;for(;n!==null;)typeof n.callback=="function"&&n.callback.apply(this,r),s=!0,n=n.next;return s}};function hr(e){let t="__storage_test__"+Math.random(),r;try{r=window[e]}catch{return null}try{r.setItem(t,t),r.removeItem(t)}catch(n){if(!(n instanceof DOMException&&(n.code===22||n.code===1014||n.name==="QuotaExceededError"||n.name==="NS_ERROR_DOM_QUOTA_REACHED")&&r.length!==0))return null}return r}function $e(e){let t=new Map;return t.storage=hr(e),t.getOrCreate=r=>t.get(r)||pr(r,t),t.getOrCreate.available=t.storage!==null,t}var X=new Map([["session",$e("sessionStorage")],["local",$e("localStorage")]]),Wr=X.get("session").getOrCreate,Ye=X.get("local").getOrCreate;addEventListener("storage",e=>{for(let[,t]of X)t.storage===e.storageArea&&t.has(e.key)&&t.get(e.key).forceSync()});function pr(e,t){let r=null,n=new j,s=(a=t.storage.getItem(e))=>{r!==a&&n.emit("change",r=a)},i={get value(){return this.get()},get(){return r},set(a){t.storage&&(t.storage.setItem(e,a),s())},delete(){t.storage&&(t.storage.removeItem(e),s())},forceSync(){return t.storage&&s(),this.get()},on(a,l){return n.on("change",a),l&&a(r),()=>n.off("change",a)},off(a){n.off("change",a)}};return t.set(e,i),i.forceSync(),i}var yr=new Set([!0,!1,"auto","disabled"]),We=new Set,He=matchMedia("(prefers-color-scheme:dark)"),Ge=Ye("discoveryjs:darkmode"),Ke=new Map([["true",!0],["false",!1],["auto","auto"]]),z=null;function gr(){for(let e of We)e.mode==="auto"&&e.set("auto")}function Ze(e){let t=Ke.has(e)?Ke.get(e):null;if(z!==t){z=t;for(let r of We)r.persistent&&r.mode!=="disabled"&&r.set(t!==null?t:"auto")}}Ze(Ge.value);Ge.on(Ze);He.addListener(gr);function mr(e,t){return(e==="off"||e==="disable")&&(e="disabled"),e!=="disabled"&&t&&z!==null&&(e=z),e}function br(e){return yr.has(e)||(e="disabled"),e==="auto"?He.matches:e===!0}function Qe(e,t){return br(mr(e,t))}var Sr={"font-family":"Tahoma, Verdana, Arial, sans-serif","font-size":"16px","line-height":"1.6","-webkit-text-size-adjust":"none","text-size-adjust":"none","background-color":"var(--discovery-background-color, white)",color:"var(--discovery-color, black)","transition-property":"background-color, color","transition-duration":".25s","transition-timing-function":"ease-in"},wr={"--discovery-background-color":"#242424","--discovery-color":"#cccccc"},Xe=new WeakSet,ee=new WeakMap;function et(e,t,r){t in r||(r[t]=[e.style.getPropertyValue(t),e.style.getPropertyPriority(t)])}function tt(e,t){t=t||{},ee.has(e)||ee.set(e,Object.create(null));let r=Qe(t.darkmode,t.darkmodePersistent),n=ee.get(e);for(let[s,i]of Object.entries(Sr))(Xe.has(e)||!/^transition/.test(s))&&(et(e,s,n),e.style.setProperty(s,i));for(let[s,i]of Object.entries(wr))et(e,s,n),r?e.style.setProperty(s,i):e.style.removeProperty(s);return Xe.add(e),r}function te(e,t){let r=A("style",null,":host{display:none}"),n=new Set,s=Promise.resolve();return Array.isArray(t)&&(e.append(...t.map(i=>{switch(typeof i=="string"&&(i={type:"style",content:i}),i.type){case"style":case"inline":return A("style",{media:i.media},i.content);case"link":case"external":{let a,l,u=new Promise((c,f)=>{a=c,l=f});return n.add(u),A("link",{rel:"stylesheet",href:i.href,media:i.media,onerror(c){n.delete(u),l(c),n.size||r.remove()},onload(){n.delete(u),a(),n.size||r.remove()}})}default:throw new Error(`Unknown type "${i.type}" for a style descriptor`)}})),n.size&&(s=Promise.all(n),e.append(r))),s}function rt(){return[parseInt(performance.timeOrigin,10).toString(16),parseInt(1e4*performance.now(),10).toString(16),String(Math.random().toString(16).slice(2))].join("-")}function vr(e,t){return new C({delay:300,domReady:e,title:t,onTiming:({title:r,duration:n})=>console.log(`[Discovery/loader] ${r} \u2013 ${n}ms`)})}function cn(e){e=e||{};let t=e.dataSource;if(t&&!Q.hasOwnProperty(t))throw new Error(`dataSource "${t}" is not supported`);let r=e.container||document.body,n=document.createElement("div"),s=n.attachShadow({mode:"open"});tt(r,e)&&n.setAttribute("darkmode","");let a=Q[t||"url"],l=e.data?t==="push"?a(e.loadDataOptions):a(e.data,e.loadDataOptions):{result:Promise.resolve()};l.push&&(window.discoveryLoader={start:l.start,push:l.push,finish(...f){delete window.discoveryLoader,l.finish(...f)}});let u=te(s,e.styles),o=e.progressbar||vr(u,l.title),c=e.embed?xr(l):()=>{};return l.state&&qe(l,o),s.append(o.el),r.append(n),Object.assign(l.result,{el:n,shadowRoot:s,progressbar:o,disposeEmbed:c})}function xr(e){let t=rt(),r=window.parent,n=[],s=(u,o=null)=>{r.postMessage({from:"discoveryjs-app",id:t,type:u,payload:o},"*")},i=()=>s("destroy"),a=u=>{let{id:o,type:c}=u.data||{};if(o===t)switch(c){case"defineAction":case"setPageHash":case"setRouterPreventLocationUpdate":{n.push(u.data);break}default:console.error(`[Discovery/loader] Unknown preload message type "${c}"`)}};if(r===window)return;addEventListener("message",a,!1),addEventListener("unload",i,!1),s("preinit",{page:{hash:location.hash||"#"}});let l=e.state?e.state.subscribeSync(({stage:u,progress:o,error:c})=>((c||u==="received")&&l(),s("loadingState",{stage:u,progress:o,error:c}))):()=>{};return()=>(removeEventListener("message",a,!1),removeEventListener("unload",i,!1),l(),i(),{hostId:t,postponeMessages:n})}export{cn as preloader}; | ||
var nt=Object.create;var re=Object.defineProperty;var st=Object.getOwnPropertyDescriptor;var it=Object.getOwnPropertyNames;var at=Object.getPrototypeOf,ot=Object.prototype.hasOwnProperty;var J=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var lt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of it(t))!ot.call(e,s)&&s!==r&&re(e,s,{get:()=>t[s],enumerable:!(n=st(t,s))||n.enumerable});return e};var ct=(e,t,r)=>(r=e!=null?nt(at(e)):{},lt(t||!e||!e.__esModule?re(r,"default",{value:e,enumerable:!0}):r,e));var oe=J((Ir,ae)=>{var pt={8:"\\b",9:"\\t",10:"\\n",12:"\\f",13:"\\r",34:'\\"',92:"\\\\"};function yt(e){return e>=55296&&e<=56319}function gt(e){return e>=56320&&e<=57343}function ie(e){return typeof e.pipe=="function"&&typeof e._read=="function"&&typeof e._readableState=="object"&&e._readableState!==null}function mt(e,t,r,n){switch(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),n!==null&&(r=n.call(e,String(t),r)),typeof r){case"function":case"symbol":r=void 0;break;case"object":if(r!==null){let s=r.constructor;(s===String||s===Number||s===Boolean)&&(r=r.valueOf())}break}return r}function bt(e){return e===null||typeof e!="object"?1:Array.isArray(e)?3:2}function St(e){return e===null||typeof e!="object"?1:typeof e.then=="function"?4:ie(e)?e._readableState.objectMode?6:5:Array.isArray(e)?3:2}function wt(e){return typeof e=="function"?e:Array.isArray(e)?[...new Set(e.map(r=>{let n=r&&r.constructor;return n===String||n===Number?String(r):null}).filter(r=>typeof r=="string"))]:null}function vt(e){return typeof e=="number"?!Number.isFinite(e)||e<1?!1:" ".repeat(Math.min(e,10)):typeof e=="string"&&e.slice(0,10)||!1}ae.exports={escapableCharCodeSubstitution:pt,isLeadingSurrogate:yt,isTrailingSurrogate:gt,type:{PRIMITIVE:1,PROMISE:4,ARRAY:3,OBJECT:2,STRING_STREAM:5,OBJECT_STREAM:6},isReadableStream:ie,replaceValue:mt,getTypeNative:bt,getTypeAsync:St,normalizeReplacer:wt,normalizeSpace:vt}});var ce=J((Rr,le)=>{le.exports=TextDecoder});var he=J((Cr,fe)=>{var{isReadableStream:xt}=oe(),kt=ce(),U=1,At=2,Tt=new kt;function ue(e){return e!==null&&typeof e=="object"}function Y(e,t){return e.name==="SyntaxError"&&t.jsonParseOffset&&(e.message=e.message.replace(/at position (\d+)/,(r,n)=>"at position "+(Number(n)+t.jsonParseOffset))),e}function Et(e,t){let r=e.length;e.length+=t.length;for(let n=0;n<t.length;n++)e[r+n]=t[n]}fe.exports=function(e){let t=new K;if(ue(e)&&xt(e))return new Promise((r,n)=>{e.on("data",s=>{try{t.push(s)}catch(i){n(Y(i,t)),t=null}}).on("error",s=>{t=null,n(s)}).on("end",()=>{try{r(t.finish())}catch(s){n(Y(s,t))}finally{t=null}})});if(typeof e=="function"){let r=e();if(ue(r)&&(Symbol.iterator in r||Symbol.asyncIterator in r))return new Promise(async(n,s)=>{try{for await(let i of r)t.push(i);n(t.finish())}catch(i){s(Y(i,t))}finally{t=null}})}throw new Error("Chunk emitter should be readable stream, generator, async generator or function returning an iterable object")};var K=class{constructor(){this.value=void 0,this.valueStack=null,this.stack=new Array(100),this.lastFlushDepth=0,this.flushDepth=0,this.stateString=!1,this.stateStringEscape=!1,this.pendingByteSeq=null,this.pendingChunk=null,this.chunkOffset=0,this.jsonParseOffset=0}parseAndAppend(t,r){this.stack[this.lastFlushDepth-1]===U?(r&&(this.jsonParseOffset--,t="{"+t+"}"),Object.assign(this.valueStack.value,JSON.parse(t))):(r&&(this.jsonParseOffset--,t="["+t+"]"),Et(this.valueStack.value,JSON.parse(t)))}prepareAddition(t){let{value:r}=this.valueStack;if(Array.isArray(r)?r.length!==0:Object.keys(r).length!==0){if(t[0]===",")return this.jsonParseOffset++,t.slice(1);if(t[0]!=="}"&&t[0]!=="]")return this.jsonParseOffset-=3,"[[]"+t}return t}flush(t,r,n){let s=t.slice(r,n);if(this.jsonParseOffset=this.chunkOffset+r,this.pendingChunk!==null&&(s=this.pendingChunk+s,this.jsonParseOffset-=this.pendingChunk.length,this.pendingChunk=null),this.flushDepth===this.lastFlushDepth)this.flushDepth>0?this.parseAndAppend(this.prepareAddition(s),!0):(this.value=JSON.parse(s),this.valueStack={value:this.value,prev:null});else if(this.flushDepth>this.lastFlushDepth){for(let i=this.flushDepth-1;i>=this.lastFlushDepth;i--)s+=this.stack[i]===U?"}":"]";this.lastFlushDepth===0?(this.value=JSON.parse(s),this.valueStack={value:this.value,prev:null}):this.parseAndAppend(this.prepareAddition(s),!0);for(let i=this.lastFlushDepth||1;i<this.flushDepth;i++){let a=this.valueStack.value;if(this.stack[i-1]===U){let l;for(l in a);a=a[l]}else a=a[a.length-1];this.valueStack={value:a,prev:this.valueStack}}}else{s=this.prepareAddition(s);for(let i=this.lastFlushDepth-1;i>=this.flushDepth;i--)this.jsonParseOffset--,s=(this.stack[i]===U?"{":"[")+s;this.parseAndAppend(s,!1);for(let i=this.lastFlushDepth-1;i>=this.flushDepth;i--)this.valueStack=this.valueStack.prev}this.lastFlushDepth=this.flushDepth}push(t){if(typeof t!="string"){if(this.pendingByteSeq!==null){let i=t;t=new Uint8Array(this.pendingByteSeq.length+i.length),t.set(this.pendingByteSeq),t.set(i,this.pendingByteSeq.length),this.pendingByteSeq=null}if(t[t.length-1]>127)for(let i=0;i<t.length;i++){let a=t[t.length-1-i];if(a>>6===3){i++,(i!==4&&a>>3===30||i!==3&&a>>4===14||i!==2&&a>>5===6)&&(this.pendingByteSeq=t.slice(t.length-i),t=t.slice(0,-i));break}}t=Tt.decode(t)}let r=t.length,n=0,s=0;e:for(let i=0;i<r;i++){if(this.stateString){for(;i<r;i++)if(this.stateStringEscape)this.stateStringEscape=!1;else switch(t.charCodeAt(i)){case 34:this.stateString=!1;continue e;case 92:this.stateStringEscape=!0}break}switch(t.charCodeAt(i)){case 34:this.stateString=!0,this.stateStringEscape=!1;break;case 44:s=i;break;case 123:s=i+1,this.stack[this.flushDepth++]=U;break;case 91:s=i+1,this.stack[this.flushDepth++]=At;break;case 93:case 125:s=i+1,this.flushDepth--,this.flushDepth<this.lastFlushDepth&&(this.flush(t,n,s),n=s);break;case 9:case 10:case 13:case 32:n===i&&n++,s===i&&s++;break}}s>n&&this.flush(t,n,s),s<r&&(this.pendingChunk!==null?this.pendingChunk+=t:this.pendingChunk=t.slice(s,r)),this.chunkOffset+=r}finish(){return this.pendingChunk!==null&&(this.flush("",0,0),this.pendingChunk=null),this.value}}});var T=class{static setValue(t,r){if(!t.shouldPublish(r,t.value))return!1;let n=[],s=t.subscriber;for(t.value=r;s!==null;){let{callback:i,thisArg:a}=s;i!==null&&n.push(i.call(a,r,()=>t.unsubscribe(i,a))),s=s.subscriber}return n}constructor(t,r){this.value=t,this.shouldPublish=typeof r=="function"?r:this.shouldPublish,this.subscriber=null}get readonly(){let t=this;return{subscribe:this.subscribe.bind(this),subscribeSync:this.subscribeSync.bind(this),unsubscribe:this.unsubscribe.bind(this),get value(){return t.value}}}subscribe(t,r){return this.subscriber={callback:t,thisArg:r,subscriber:this.subscriber},()=>this.unsubscribe(t,r)}subscribeSync(t,r){let n=this.subscribe(t,r);return t.call(r,this.value,n),n}unsubscribe(t,r){let n=this,s=this.subscriber;for(;s!==null;){if(s.callback===t&&s.thisArg===r){s.callback=null,s.thisArg=null,n.subscriber=s.subscriber;break}n=s,s=s.subscriber}}shouldPublish(t,r){return t!==r}set(t){return this.constructor.setValue(this,t)!==!1}asyncSet(t){let r=this.constructor.setValue(this,t);return r===!1?Promise.resolve(!1):Promise.all(r).then(n=>n!==!1)}};function A(e,t,r){let n=document.createElement(e);typeof t=="string"&&(t={class:t});for(let s in t)if(hasOwnProperty.call(t,s)){if(t[s]===void 0)continue;s.startsWith("on")?n.addEventListener(s.substr(2),t[s]):n.setAttribute(s,t[s])}return Array.isArray(r)?r.forEach(s=>n.appendChild(s instanceof Node?s:ut(s))):typeof r=="string"&&(n.innerHTML=r),n}function ut(e){return document.createTextNode(String(e))}var ft=(()=>{let e=!1;try{let t={get passive(){return e=!0,!1}};window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch{}return e})(),Tr=ft?Object.freeze({passive:!0,capture:!0}):!0;var $={request:{value:0,title:"Awaiting data"},receive:{value:.1,title:"Receiving data"},received:{value:.9,title:"Await app ready"},prepare:{value:.925,title:"Processing data (prepare)"},initui:{value:.975,title:"Rendering UI"},done:{value:1,title:"Done!"},error:{value:1,title:"Error!"}};Object.values($).forEach((e,t,r)=>{e.duration=(t!==r.length-1?r[t+1].value:0)-e.value});var ne=e=>e|0,se=e=>typeof e=="function"?e:()=>{},ht=async()=>{if(await new Promise(e=>setTimeout(e,1)),!document.hidden)return Promise.race([new Promise(requestAnimationFrame),new Promise(e=>setTimeout(e,8))])};function dt(e,t){let{value:r,title:n,duration:s}=$[e],i=0,a=null;if(t){let{done:l,elapsed:u,units:o,completed:c,total:f}=t;f?(i=l?1:c/f,a=o==="bytes"?Math.round(i*100)+"%":`${c}/${f}`):(i=l?1:.1+Math.min(.9,u/2e4),a=o==="bytes"?(c/(1024*1024)).toFixed(1)+"MB":c)}return{stageTitle:n,progressValue:r+i*s,progressText:a,title:a?`${n} (${a})...`:e!=="done"?`${n}...`:n}}var C=class extends T{constructor({onTiming:t,onFinish:r,delay:n,domReady:s}){super({stage:null,progress:null,error:null}),this.finished=!1,this.awaitRepaint=null,this.lastStage="created",this.lastStageStart=null,this.timings=[],this.onTiming=se(t),this.onFinish=se(r),this.appearanceDelay=n===!0?200:Number(n)||0,this.domReady=s||Promise.resolve(),this.el=A("div","view-progress init",[A("div","title"),A("div","progress")])}recordTiming(t,r,n=performance.now()){let s={stage:t,title:$[t].title,duration:ne(n-r)};this.timings.push(s),this.onTiming(s)}async setState(t){let{stage:r,progress:n,error:s}=t;if(this.finished)return;if(s){this.set("stage"in t?{stage:r,progress:n,error:s}:{...this.value,error:s}),this.finish(s);return}this.set(t);let i=r!==this.lastStage,a=performance.now();this.lastStage==="created"&&(this.startTime=a,this.domReady.then(()=>{let o=Math.max(0,this.appearanceDelay-ne(performance.now()-a));o&&this.el.style.setProperty("--appearance-delay",`${o}ms`),getComputedStyle(this.el).opacity,this.el.classList.remove("init")})),i&&(this.lastStageStart!==null&&this.recordTiming(this.lastStage,this.lastStageStart,a),this.lastStage=r,this.lastStageStart=a,this.awaitRepaint=a);let{title:l,progressValue:u}=dt(r,n);this.el.querySelector(".title").textContent=l,this.el.style.setProperty("--progress",u),(i||a-this.awaitRepaint>65&&a-this.lastStageStart>200)&&(await ht(),this.awaitRepaint=performance.now())}finish(t){this.finished||(this.finished=!0,this.lastStageStart!==null&&this.recordTiming(this.lastStage,this.lastStageStart),this.recordTiming(t?"error":"done",this.startTime),this.onFinish(this.timings),this.set({stage:"done"}))}dispose(){this.finish(),this.el.remove()}};var Le=ct(he(),1);var de=typeof new Blob().stream=="function"?e=>e.stream():Dt();function Dt(){try{return new ReadableStream({type:"bytes"}),Ot}catch{try{return new ReadableStream({}),Pt}catch{try{return new Response(new Blob).body.getReader(),It}catch{}}}return Rt}function pe(e){return typeof e.arrayBuffer=="function"?e.arrayBuffer():new Promise((t,r)=>{let n=new FileReader;n.readAsArrayBuffer(e),n.onload=n.onerror=({type:s})=>{n.onload=n.onerror=null,s==="load"?t(n.result||n):r(new Error("Failed to read the blob/file"))}})}function Ot(e){let t=0;return new ReadableStream({type:"bytes",autoAllocateChunkSize:512*1024,pull(r){let n=r.byobRequest.view,s=e.slice(t,t+n.byteLength);return pe(s).then(i=>{let a=new Uint8Array(i),l=a.byteLength;t+=l,n.set(a),r.byobRequest.respond(l),t>=e.size&&r.close()})}})}function Pt(e){let t=0;return new ReadableStream({pull(r){let n=e.slice(t,t+524288);return pe(n).then(s=>{t+=s.byteLength,r.enqueue(new Uint8Array(s)),t==e.size&&r.close()})}})}function It(e){return new Response(e).body}function Rt(){throw new Error("Blob#stream() is not supported and no fallback can be applied, include https://github.com/MattiasBuelens/web-streams-polyfill")}var Ct=new Uint8Array([0,0,74,83,79,78,88,76]),ye=9,Ut=268435455,Ft=4294967295,we=1<<0,V=1<<1,O=1<<2,F=1<<3,P=1<<4,B=1<<5,M=1<<6,E=1<<7,ve=0,xe=1,ke=2,Ae=3,Te=4,Ee=5,De=6,jt=7,Oe=8,Pe=9,Ie=10,Re=11,Ce=12,_t=31,Fr=~_t,Ue=224,jr=~Ue,Fe=7936,_r=~Fe,je=0,H=1,Nt=2,Vt=3,Bt=4,Mt=5,_e=6,Ne=7,Lt=8,ge=16,me=32,Nr=~P,be=V|B|M,zt=new Uint8Array(256),Ve=new Uint8Array(8).map((e,t)=>(zt[1<<t]=t,1<<t)),Be=new Uint8Array(256).map((e,t)=>{for(let r=0;r<8;r++)e+=t>>r&1;return e}),Vr=Object.fromEntries(Object.entries({TYPE_UNDEF:we,TYPE_TRUE:B,TYPE_FALSE:M,TYPE_NULL:V,TYPE_NUMBER:O,TYPE_STRING:F,TYPE_OBJECT:P,TYPE_ARRAY:E}).map(([e,t])=>[t,e])),Br=Object.fromEntries(Object.entries({UINT_8:ve,UINT_16:xe,UINT_24:ke,UINT_32:Ae,UINT_32_VAR:Te,INT_8:Oe,INT_16:Pe,INT_24:Ie,INT_32:Re,INT_32_VAR:Ce,FLOAT_32:Ee,FLOAT_64:De,DECIMAL:jt}).map(([e,t])=>[t,e])),W=new Uint8Array(32),qt=class{constructor(e){this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.bytes=e,this.pos=0}readBytes(e){return this.bytes.subarray(this.pos,this.pos+=e)}readTypeIndex(e,t,r){let n=0,s=0;for(;t>0;)t&1&&(W[n++]=s),s++,t>>=1;let i=new Uint8Array(e),a=32-Math.clz32(n-1),l=(1<<a)-1,u=this.readBytes(Math.ceil(a*e/8)),o=0,c=0,f=0;for(let h=0;h<e;h++)c<a&&(f|=u[o]<<c,c+=8,o++),i[h]=r?Ve[W[f&l]]:W[f&l],f>>=a,c-=a;return i}readVlq(){let e=this.view.getUint8(this.pos);if((e&1)===0)e=e>>1,this.pos+=1;else if((e&2)===0)e=this.view.getUint8(this.pos+1)<<6|e>>2,this.pos+=2;else if((e&4)===0)e=this.view.getUint16(this.pos+1,!0)<<5|e>>3,this.pos+=3;else{let t=this.view.getUint32(this.pos,!0);e=t>>>3&Ut,this.pos+=4,t>>>31&&(e+=this.readUintVar()*(1<<28))}return e}readUintVar(){let e=this.view.getUint8(this.pos++),t=e&127,r=128;for(;e&128;)e=this.view.getUint8(this.pos++),t+=(e&127)*r,r*=128;return t}readIntVar(){let e=this.readUintVar();return e&1?-(e-1)/2:e<=Ft?e>>>1:e/2}readUint8(){let e=this.view.getUint8(this.pos);return this.pos++,e}readInt8(){let e=this.view.getInt8(this.pos);return this.pos++,e}readUint16(){let e=this.view.getUint16(this.pos,!0);return this.pos+=2,e}readInt16(){let e=this.view.getInt16(this.pos,!0);return this.pos+=2,e}readUint24(){let e=this.view.getUint16(this.pos,!0)|this.view.getUint8(this.pos+2)<<16;return this.pos+=3,e}readInt24(){let e=this.view.getUint16(this.pos,!0),t=this.view.getUint8(this.pos+2),r=t&128?-(16777215-(e|t<<16)+1):e|t<<16;return this.pos+=3,r}readUint32(){let e=this.view.getUint32(this.pos,!0);return this.pos+=4,e}readInt32(){let e=this.view.getInt32(this.pos,!0);return this.pos+=4,e}readFloat32(){let e=this.view.getFloat32(this.pos);return this.pos+=4,e}readFloat64(){let e=this.view.getFloat64(this.pos);return this.pos+=8,e}};function G(e,t){switch(t){case ve:return e.readUint8();case xe:return e.readUint16();case ke:return e.readUint24();case Ae:return e.readUint32();case Te:return e.readUintVar();case Oe:return e.readInt8();case Pe:return e.readInt16();case Ie:return e.readInt24();case Re:return e.readInt32();case Ce:return e.readIntVar();case Ee:return e.readFloat32();case De:return e.readFloat64()}}function Jt(e){let t=e.readUint8();switch(t&15){case je:case H:case _e:case Ne:t|=e.readUint8()<<8;break}return t}function k(e,t=e.readVlq()){let r=Jt(e);return Z(e,r,t)}function Z(e,t,r,n=new Array(r)){let s=t&15,i=t&48,a=r,l=0,u=0;switch(i){case ge:{l=n[0]=e.readIntVar(),a--,u=1;break}case me:{l=e.readIntVar();break}}switch(s){case Nt:{for(let o=0;o<a;o++)n[u+o]=e.readVlq();break}case Vt:{for(let o=0;o<a;o++)n[u+o]=e.readIntVar();break}case Bt:{let o=e.readBytes(Math.ceil(a/2));for(let c=0,f=0;c<a;c++)f=c&1?f>>4:o[c>>1],n[u+c]=f&8?e.readVlq()*8+(f&7):f&7;break}case Mt:{let o=e.readBytes(Math.ceil(a/2));for(let c=0,f=0;c<a;c++){f=c&1?f>>4:o[c>>1];let h=f&4?-1:1;n[u+c]=f&8?h*(e.readVlq()*4+(f&3)):h*(f&3)}break}case _e:{let o=t>>8,c=(1<<o)-1,f=e.readBytes(Math.ceil(a*o/8)),h=0,d=0,p=0;for(let g=0;g<a;g++){for(;d<o;)p|=f[h]<<d,d+=8,h++;n[u+g]=p&c,p>>=o,d-=o}break}case Ne:{let o=t>>8,c=(1<<o)-1,f=e.readBytes(Math.ceil(a*o/8)),h=0,d=0,p=0;for(let g=0;g<a;g++){for(;d<o;)p|=f[h]<<d,d+=8,h++;n[u+g]=p&1?-((p&c)>>1):(p&c)>>1,p>>=o,d-=o}break}case Lt:{let o=n[0]=e.readIntVar(),c=e.readIntVar();for(let f=1;f<r;f++)o=n[f]=o+c;break}case je:case H:{let o=s===H,c=t>>8,f=o?t&Fe|c&Ue:c;if(Be[c]>1){let h=e.readTypeIndex(a,f);for(let d=0;d<a;d++)n[u+d]=G(e,h[d])}else{let h=31-Math.clz32(f);for(let d=0;d<a;d++)n[u+d]=G(e,h)}break}default:throw new Error(`Unknown numeric array encoding method: ${s}`)}switch(i){case ge:{n[0]=l;for(let o=1;o<r;o++)n[o]+=n[o-1];break}case me:{for(let o=0;o<r;o++)n[o]+=l;break}}return n}var $t=new TextDecoder("utf8",{ignoreBOM:!0});function Yt(e){if(e.readBytes(8).some((n,s)=>n!==Ct[s]))throw new Error("Bad magic number");let t=e.readUint16();if(t!==ye)throw new Error(`Unsupported jsonxl version "${t}", expected "${ye}"`);let r=e.readUint16();return{version:t,flags:r}}function Kt(e){let t=$t.decode(e.readBytes(e.readVlq())),r=k(e),n=k(e),s=k(e),i=k(e),a=new Array(r),l=0;for(let u=0,o=0,c=0,f=0,h="";u<r.length;u++){let d=r[u],p=t.slice(o,o+=d>>2);d&2&&(p=h.slice(0,n[c++])+p),d&1&&(p=p+h.slice(-s[f++])),a[u]=p,h=p}return{readStrings(u,o){return i.slice(u,o).map(c=>a[c])},readString(){return a[i[l++]]}}}function Wt(e){let t=k(e),r=0;return function(){return t[r++]}}function Ht(e){let t=k(e),r=k(e),n=0;return function(){return t[r[n++]]}}function Gt(e,t){let r=e.readVlq(),n=e.readVlq();if(r===0)return()=>null;let s=n?t(-n):[],i=new Array(r);for(let a=0;a<r;a++)i[a]={dict:k(e),refs:k(e),index:0};return function(a){let l=i[a],u=l.refs[l.index++],o=l.dict[u];return o===0?null:{key:s[o>>8],type:o&255}}}function Se(e,t){let r=0;for(let n=0;n<e.length;n++)e[n]===t&&r++;return r}function Me(e){function t(h={}){let d=0,p;for(;p=c(d++);)h[p.key]=s(p.type);return h}function r(h=u()){if(h===0)return[];let d=o(),p=d>>16,g=d&65535,D=p&1,_=p>>5&1,N=p>>9&1,w=p>>1&255|(p&1)<<4,v=new Array(h),m=Be[w]>1?i.readTypeIndex(h,w,!0):null;if(w&be)if(m===null)v.fill(n(w));else for(let y=0;y<h;y++)m[y]&be&&(v[y]=n(m[y]));if(w&F)for(let y=0;y<h;y++)(m===null||m[y]===F)&&(v[y]=l());if(w&O)if(w===O)Z(i,g,h,v);else{let y=Se(m,O),b=Z(i,g,y);for(let x=0,S=0;x<h;x++)m[x]===O&&(v[x]=b[S++])}if(w&E)if(N){let y=w===E?h:Se(m,E),b=k(i,y),x=r();for(let S=0,q=0,I=0;S<h;S++)(m===null||m[S]===E)&&(v[S]=x.slice(I,I+=b[q++]))}else for(let y=0;y<h;y++)(m===null||m[y]===E)&&(v[y]=r());if(w&P){let y=w===P?v:[];for(let b=0,x=0;b<h;b++)(m===null||m[b]===P)&&(v[b]=y[x++]={});if(_){let b=i.readVlq(),x=new Array(b);for(let S=0;S<b;S++)x[S]=l();for(let S=0;S<b;S++){let q=x[S],I=r(y.length);for(let R=0;R<y.length;R++)I[R]!==void 0&&(y[R][q]=I[R])}}if(D)for(let b=0;b<y.length;b++)t(y[b])}return v}function n(h){switch(h){default:return;case V:return null;case F:return l();case B:return!0;case M:return!1}}function s(h){switch(Ve[h&7]){case we:return;case V:return null;case F:return l();case O:return G(i,h>>3);case P:return t();case B:return!0;case M:return!1;case E:return r()}}let i=new qt(e);Yt(i);let{readStrings:a,readString:l}=Kt(i),u=Wt(i),o=Ht(i),c=Gt(i,a),f=s(i.readUint8());if(i.pos!==e.byteLength)throw new Error("End of input not reached");return f}var Q={stream:cr,event:ur,file:ze,url:fr,push:hr};function Zt(e){try{return new URL(e,location.origin).origin===location.origin}catch{return!1}}function Qt(e){return e.ok}function Xt(e){return e.headers.get("x-file-encoded-size")||e.headers.get("content-length")}function er(e){return e.headers.get("x-file-size")||(Zt(e.url)&&!e.headers.get("content-encoding")?e.headers.get("content-length"):void 0)}function tr(e){return e.headers.get("x-file-created-at")||e.headers.get("last-modified")}function rr(e){let t=e?Object.keys(e):[],r=["name","createdAt","elapsedTime","data"];return!(t.length!==4||t.some(n=>!r.includes(n)))}function nr(e,t,r,{encoding:n,size:s}){if(rr(e)){let{data:g,...D}=e;e=g,t={...t,createdAt:g.createdAt},r=D}let i=e,a=r||{},{type:l,name:u,encoding:o,size:c,encodedSize:f,createdAt:h,...d}=t;return{resource:{type:l||"unknown",name:u||"unknown",encoding:n,size:s,...f?{encodedSize:f}:null,createdAt:new Date(Date.parse(h)||Date.now()),...d},meta:a,data:i}}var sr=[0,0,74,83,79,78,88,76];function ir(e){return sr.every((t,r)=>t===e[r])}async function ar(e){let t=[],r=0;for await(let i of e)t.push(i),r+=i.byteLength;let n=new Uint8Array(r),s=0;for(let i of t)n.set(i,s),s+=i.length;return Me(n)}function or(e,t,r){let s=e.getReader(),i=Date.now(),a="json",l=0;return s.read().then(u=>{let o=async function*(){try{for(;;){let{done:c,value:f}=u||await s.read();if(u=void 0,c){await r({done:!0,elapsed:Date.now()-i,units:"bytes",completed:l,total:t});break}for(let h=0;h<f.length;h+=1048576){let d=h===0&&f.length-h<1048576?f:f.slice(h,h+1048576);l+=d.length,yield d,await r({done:!1,elapsed:Date.now()-i,units:"bytes",completed:l,total:t})}}}finally{s.releaseLock()}};return ir(u.value)?(a="jsonxl/snapshot9",ar(o())):(0,Le.default)(o)}).then(u=>({data:u,encoding:a,size:l}))}async function lr(e,t){let r=async(n,s)=>(await t.asyncSet({stage:n}),await s());try{let n=new Date,{method:s,stream:i,resource:a,options:l,data:u}=await r("request",e),o=new Date,c=a?.size,{validateData:f}=l||{},{data:h,encoding:d,size:p}=u?{data:u}:await r("receive",()=>or(i,Number(c)||0,m=>t.asyncSet({stage:"receive",progress:m}))),g=new Date;typeof f=="function"&&f(N);let D=new Date;await t.asyncSet({stage:"received"});let _=new Date,{data:N,resource:w,meta:v}=nr(h,a,null,{size:p,encoding:d});return{loadMethod:s,resource:w,meta:v,data:N,timing:{time:_-n,start:n,end:_,requestTime:o-n,requestStart:n,requestEnd:o,responseTime:g-o,responseStart:o,responseEnd:g,validateTime:D-g,validationStart:g,validationEnd:D}}}catch(n){throw console.error("[Discovery] Error loading data:",n),await t.asyncSet({stage:"error",error:n}),n}}function L(e,t){let r=new T;return{state:r,result:lr(e,r),...t}}function cr(e,t){return L(()=>({method:"stream",stream:e,resource:t?.resource,options:t}))}function ze(e,t){let r=Je(e);return L(()=>({method:"file",stream:de(e),resource:t?.resource||r,options:t}),{title:"Load data from file: "+(r.name||"unknown")})}function ur(e,t){let r=e.dataTransfer||e.target,n=r&&r.files&&r.files[0];if(e.stopPropagation(),e.preventDefault(),!n)throw new Error("Can't extract a file from an event object");return ze(n,t)}function fr(e,t){return t=t||{},L(async()=>{let r=await fetch(e,t.fetch),n=Je(r,t);if(n)return{method:"fetch",stream:r.body,resource:t.resource||n,options:t};let s=r.headers.get("content-type")||"",i=await r.text();if(s.toLowerCase().startsWith("application/json"))try{let a=JSON.parse(i);i=a.error||a}catch{}throw i=new Error(i),i.stack=null,i},{title:`Load data from url: ${e}`})}function hr(e){let t,r=new ReadableStream({start(a){t=a},cancel(){t=null}}),n,s,i=new Promise(a=>{n=l=>a({method:"push",stream:r,resource:(s=l)||e.resource,options:e})||(n=()=>{})});return e=e||{},L(()=>i,{start(a){n(a)},push(a){n(),t.enqueue(a)},finish(a){t.close(),t=null,isFinite(a)&&s&&(s.encodedSize=Number(a))}})}function qe({result:e,state:t},r){return new Promise((n,s)=>t.subscribeSync(({stage:i,progress:a,error:l},u)=>{if(l){u(),s(l);return}return i==="received"&&(u(),n(e)),r.setState({stage:i,progress:a})}))}function Je(e,t){if(e instanceof Response){let r=t?.isResponseOk||Qt,n=t?.getContentSize||er,s=t?.getContentEncodedSize||Xt,i=t?.getContentSize||tr;if(r(e))return{type:"url",name:e.url,size:Number(n(e))||null,encodedSize:Number(s(e)),createdAt:i(e)}}if(e instanceof File)return{type:"file",name:e.name,size:e.size,createdAt:e.lastModified};if(e instanceof Blob)return{size:e.size};if(ArrayBuffer.isView(e))return{size:e.byteLength};if(typeof e=="string")return{size:e.length}}var j=class{constructor(){this.listeners=Object.create(null)}on(t,r){return this.listeners[t]={callback:r,next:this.listeners[t]||null},this}once(t,r){return this.on(t,function n(...s){r.apply(this,s),this.off(t,n)})}off(t,r){let n=this.listeners[t]||null,s=null;for(;n!==null;){if(n.callback===r){n.callback=null,s?s.next=n.next:this.listeners[t]=n.next;break}s=n,n=n.next}return this}emit(t,...r){let n=this.listeners[t]||null,s=!1;for(;n!==null;)typeof n.callback=="function"&&n.callback.apply(this,r),s=!0,n=n.next;return s}};function dr(e){let t="__storage_test__"+Math.random(),r;try{r=window[e]}catch{return null}try{r.setItem(t,t),r.removeItem(t)}catch(n){if(!(n instanceof DOMException&&(n.code===22||n.code===1014||n.name==="QuotaExceededError"||n.name==="NS_ERROR_DOM_QUOTA_REACHED")&&r.length!==0))return null}return r}function $e(e){let t=new Map;return t.storage=dr(e),t.getOrCreate=r=>t.get(r)||pr(r,t),t.getOrCreate.available=t.storage!==null,t}var X=new Map([["session",$e("sessionStorage")],["local",$e("localStorage")]]),Wr=X.get("session").getOrCreate,Ye=X.get("local").getOrCreate;addEventListener("storage",e=>{for(let[,t]of X)t.storage===e.storageArea&&t.has(e.key)&&t.get(e.key).forceSync()});function pr(e,t){let r=null,n=new j,s=(a=t.storage.getItem(e))=>{r!==a&&n.emit("change",r=a)},i={get value(){return this.get()},get(){return r},set(a){t.storage&&(t.storage.setItem(e,a),s())},delete(){t.storage&&(t.storage.removeItem(e),s())},forceSync(){return t.storage&&s(),this.get()},on(a,l){return n.on("change",a),l&&a(r),()=>n.off("change",a)},off(a){n.off("change",a)}};return t.set(e,i),i.forceSync(),i}var yr=new Set([!0,!1,"auto","disabled"]),We=new Set,He=matchMedia("(prefers-color-scheme:dark)"),Ge=Ye("discoveryjs:darkmode"),Ke=new Map([["true",!0],["false",!1],["auto","auto"]]),z=null;function gr(){for(let e of We)e.mode==="auto"&&e.set("auto")}function Ze(e){let t=Ke.has(e)?Ke.get(e):null;if(z!==t){z=t;for(let r of We)r.persistent&&r.mode!=="disabled"&&r.set(t!==null?t:"auto")}}Ze(Ge.value);Ge.on(Ze);He.addListener(gr);function mr(e,t){return(e==="off"||e==="disable")&&(e="disabled"),e!=="disabled"&&t&&z!==null&&(e=z),e}function br(e){return yr.has(e)||(e="disabled"),e==="auto"?He.matches:e===!0}function Qe(e,t){return br(mr(e,t))}var Sr={"font-family":"Tahoma, Verdana, Arial, sans-serif","font-size":"16px","line-height":"1.6","-webkit-text-size-adjust":"none","text-size-adjust":"none","background-color":"var(--discovery-background-color, white)",color:"var(--discovery-color, black)","transition-property":"background-color, color","transition-duration":".25s","transition-timing-function":"ease-in"},wr={"--discovery-background-color":"#242424","--discovery-color":"#cccccc"},Xe=new WeakSet,ee=new WeakMap;function et(e,t,r){t in r||(r[t]=[e.style.getPropertyValue(t),e.style.getPropertyPriority(t)])}function tt(e,t){t=t||{},ee.has(e)||ee.set(e,Object.create(null));let r=Qe(t.darkmode,t.darkmodePersistent),n=ee.get(e);for(let[s,i]of Object.entries(Sr))(Xe.has(e)||!/^transition/.test(s))&&(et(e,s,n),e.style.setProperty(s,i));for(let[s,i]of Object.entries(wr))et(e,s,n),r?e.style.setProperty(s,i):e.style.removeProperty(s);return Xe.add(e),r}function te(e,t){let r=A("style",null,":host{display:none}"),n=new Set,s=Promise.resolve();return Array.isArray(t)&&(e.append(...t.map(i=>{switch(typeof i=="string"&&(i={type:"style",content:i}),i.type){case"style":case"inline":return A("style",{media:i.media},i.content);case"link":case"external":{let a,l,u=new Promise((c,f)=>{a=c,l=f});return n.add(u),A("link",{rel:"stylesheet",href:i.href,media:i.media,onerror(c){n.delete(u),l(c),n.size||r.remove()},onload(){n.delete(u),a(),n.size||r.remove()}})}default:throw new Error(`Unknown type "${i.type}" for a style descriptor`)}})),n.size&&(s=Promise.all(n),e.append(r))),s}function rt(){return[parseInt(performance.timeOrigin,10).toString(16),parseInt(1e4*performance.now(),10).toString(16),String(Math.random().toString(16).slice(2))].join("-")}function vr(e,t){return new C({delay:300,domReady:e,title:t,onTiming:({title:r,duration:n})=>console.log(`[Discovery/preloader] ${r} \u2013 ${n}ms`)})}function cn(e){e=e||{};let t=e.dataSource;if(t&&!Q.hasOwnProperty(t))throw new Error(`dataSource "${t}" is not supported`);let r=e.container||document.body,n=document.createElement("div"),s=n.attachShadow({mode:"open"});tt(r,e)&&n.setAttribute("darkmode","");let a=Q[t||"url"],l=e.data?t==="push"?a(e.loadDataOptions):a(e.data,e.loadDataOptions):{result:Promise.resolve()};l.push&&(window.discoveryLoader={start:l.start,push:l.push,finish(...f){delete window.discoveryLoader,l.finish(...f)}});let u=te(s,e.styles),o=e.progressbar||vr(u,l.title),c=e.embed?xr(l):()=>{};return l.state&&qe(l,o).catch(()=>{}),s.append(o.el),r.append(n),Object.assign(l.result,{el:n,shadowRoot:s,progressbar:o,disposeEmbed:c})}function xr(e){let t=rt(),r=window.parent,n=[],s=(u,o=null)=>{r.postMessage({from:"discoveryjs-app",id:t,type:u,payload:o},"*")},i=()=>s("destroy"),a=u=>{let{id:o,type:c}=u.data||{};if(o===t)switch(c){case"defineAction":case"setPageHash":case"setRouterPreventLocationUpdate":{n.push(u.data);break}default:console.error(`[Discovery/preloader] Unknown preload message type "${c}"`)}};if(r===window)return;addEventListener("message",a,!1),addEventListener("unload",i,!1),s("preinit",{page:{hash:location.hash||"#"}});let l=e.state?e.state.subscribeSync(({stage:u,progress:o,error:c})=>((c||u==="received")&&l(),s("loadingState",{stage:u,progress:o,error:c}))):()=>{};return()=>(removeEventListener("message",a,!1),removeEventListener("unload",i,!1),l(),i(),{hostId:t,postponeMessages:n})}export{cn as preloader}; |
{ | ||
"name": "@discoveryjs/discovery", | ||
"version": "1.0.0-beta.76", | ||
"version": "1.0.0-beta.77", | ||
"description": "Frontend framework for rapid data (JSON) analysis, shareable serverless reports and dashboards", | ||
@@ -5,0 +5,0 @@ "author": "Roman Dvornov <rdvornov@gmail.com> (https://github.com/lahmatiy)", |
@@ -120,3 +120,3 @@ /* eslint-env browser */ | ||
}).then(() => { | ||
console.error(error); | ||
this.log('error', error); | ||
progressbar?.setState({ error }); | ||
@@ -147,15 +147,7 @@ }); | ||
domReady: this.dom.ready, | ||
onFinish(timings) { | ||
console.groupCollapsed(`[Discovery] ${ | ||
options.title || 'Load data' | ||
} (${ | ||
timings[timings.length - 1].duration | ||
}ms)`); | ||
for (const timing of timings) { | ||
console.log(`${timing.title}: ${timing.duration}ms`); | ||
} | ||
console.groupEnd(); | ||
}, | ||
onFinish: (timings) => this.log({ | ||
level: 'perf', | ||
message: `${options.title || 'Load data'} (${timings[timings.length - 1].duration}ms)`, | ||
collapsed: () => timings.map(timing => `${timing.title}: ${timing.duration}ms`) | ||
}), | ||
...options | ||
@@ -162,0 +154,0 @@ }); |
@@ -20,3 +20,3 @@ /* eslint-env browser */ | ||
this.view = host.view; | ||
this.host = host; | ||
this.lastPage = null; | ||
@@ -66,4 +66,4 @@ this.lastPageId = null; | ||
render: typeof render === 'function' | ||
? render.bind(this.view) | ||
: (el, data, context) => this.view.render(el, render, data, context), | ||
? render.bind(this.host.view) | ||
: (el, data, context) => this.host.view.render(el, render, data, context), | ||
options: Object.freeze({ ...options }), | ||
@@ -104,4 +104,4 @@ [CONFIG]: render | ||
// FIXME: Should not to use a view (alert-danger) since it may to be undefined. Replace render with onError hook? | ||
rendered = this.view.render(newPageEl, 'alert-danger', String(e) + ' (see details in console)'); | ||
console.error(e); | ||
rendered = this.host.view.render(newPageEl, 'alert-danger', String(e) + ' (see details in console)'); | ||
this.host.log('error', 'Page render error:', e); | ||
} | ||
@@ -121,7 +121,9 @@ | ||
config: page[CONFIG], | ||
renderState: Promise.resolve(rendered).then(() => | ||
console.log('[Discovery] Page `' + page.name + '` rendered in ' + (Date.now() - renderStartTime) + 'ms') | ||
) | ||
renderState: Promise.resolve(rendered) | ||
.finally(() => this.host.log( | ||
'perf', | ||
`Page "${page.name}" rendered in ${(Date.now() - renderStartTime)}ms` | ||
)) | ||
}; | ||
} | ||
} |
@@ -249,3 +249,3 @@ import parseChunked from '@discoveryjs/json-ext/src/parse-chunked'; | ||
function createLoadDataState(request, extra) { | ||
export function createLoadDataState(request, extra) { | ||
const state = new Publisher(); | ||
@@ -389,6 +389,6 @@ | ||
export function syncLoaderWithProgressbar({ result, state }, progressbar) { | ||
return new Promise((resolve, reject) => { | ||
const unsubscribeLoader = state.subscribeSync(({ stage, progress, error }) => { | ||
return new Promise((resolve, reject) => | ||
state.subscribeSync(({ stage, progress, error }, unsubscribe) => { | ||
if (error) { | ||
unsubscribeLoader(); | ||
unsubscribe(); | ||
reject(error); | ||
@@ -399,3 +399,3 @@ return; | ||
if (stage === 'received') { | ||
unsubscribeLoader(); | ||
unsubscribe(); | ||
resolve(result); | ||
@@ -405,4 +405,4 @@ } | ||
return progressbar.setState({ stage, progress }); | ||
}); | ||
}); | ||
}) | ||
); | ||
} | ||
@@ -409,0 +409,0 @@ |
@@ -28,2 +28,6 @@ import Publisher from '../publisher.js'; | ||
title: 'Done!' | ||
}, | ||
error: { | ||
value: 1.0, | ||
title: 'Error!' | ||
} | ||
@@ -135,2 +139,3 @@ }; | ||
); | ||
this.finish(error); | ||
return; | ||
@@ -183,3 +188,3 @@ } | ||
finish() { | ||
finish(error) { | ||
if (!this.finished) { | ||
@@ -195,3 +200,3 @@ this.finished = true; | ||
this.recordTiming('done', this.startTime); | ||
this.recordTiming(error ? 'error' : 'done', this.startTime); | ||
this.onFinish(this.timings); | ||
@@ -198,0 +203,0 @@ this.set({ stage: 'done' }); |
@@ -229,3 +229,3 @@ /* eslint-env browser */ | ||
} else { | ||
console.warn('A tooltip can be attached to a HTML element only'); | ||
viewRenderer.host.log('warn', 'A tooltip can be attached to a HTML element only'); | ||
} | ||
@@ -356,3 +356,3 @@ } | ||
console.error(errorMsg, config); | ||
viewRenderer.host.log('error', errorMsg, config); | ||
@@ -398,3 +398,3 @@ renderer = viewRenderer.defaultRenderErrorRenderer; | ||
}); | ||
console.error(e); | ||
viewRenderer.host.log('error', 'View render error:', e); | ||
}); | ||
@@ -475,3 +475,3 @@ } | ||
console.error(errorMsg, { config, error }); | ||
this.host.log('error', errorMsg, { config, error }); | ||
@@ -478,0 +478,0 @@ return { |
@@ -37,3 +37,2 @@ import { randomId } from '../core/utils/id.js'; | ||
const sendMessage = (type, payload = null) => { | ||
// console.log('[post-message]', type, payload); | ||
parentWindow.postMessage({ | ||
@@ -91,3 +90,3 @@ from: 'discoveryjs-app', | ||
if (!actionCalls.has(callId)) { | ||
console.error(`[Discovery.js] Unknown action call id "${callId}"`); | ||
host.log('error', `[Discovery.js] Unknown action call id "${callId}"`); | ||
break; | ||
@@ -132,3 +131,3 @@ } | ||
if (!supportedValues.includes(mode)) { | ||
console.warn(`[Discovery.js] Wrong value for darkmode "${mode}", supported values: ${supportedValues.map(value => JSON.stringify(value)).join(', ')}`); | ||
host.log('warn', `Wrong value for darkmode "${mode}", supported values: ${supportedValues.map(value => JSON.stringify(value)).join(', ')}`); | ||
break; | ||
@@ -158,3 +157,3 @@ } | ||
if (!navSection.includes(section)) { | ||
console.warn(`[Discovery.js] Wrong value for nav button place "${section}", supported values: ${navSection.map(value => JSON.stringify(value)).join(', ')}`); | ||
host.log('warn', `Wrong value for nav button place "${section}", supported values: ${navSection.map(value => JSON.stringify(value)).join(', ')}`); | ||
break; | ||
@@ -190,3 +189,3 @@ } | ||
default: | ||
console.warn(`[Discovery.js] Wrong value for nav button action "${action}", supported values: ${navAction.map(value => JSON.stringify(value)).join(', ')}`); | ||
host.log('warn', `Wrong value for nav button action "${action}", supported values: ${navAction.map(value => JSON.stringify(value)).join(', ')}`); | ||
} | ||
@@ -235,3 +234,3 @@ | ||
if (loadChunkedDataStatus === null) { | ||
console.warn('[Discovery.js] Loading data is not inited'); | ||
host.log('warn', 'Loading data is not inited'); | ||
break; | ||
@@ -241,3 +240,3 @@ } | ||
if (loadChunkedDataStatus.acceptToken !== acceptToken) { | ||
console.warn('[Discovery.js] Bad accept token'); | ||
host.log('warn', 'Bad accept token'); | ||
break; | ||
@@ -258,3 +257,3 @@ } | ||
default: | ||
console.warn(`[Discovery.js] Got a post-message addressed to discovery app but with unknown "${type}" type`); | ||
host.log('warn', `Got a post-message addressed to discovery app but with unknown "${type}" type`); | ||
} | ||
@@ -261,0 +260,0 @@ } |
@@ -69,2 +69,3 @@ export type EmitterEventMap = { | ||
setDarkmode: (value: string) => void; | ||
setRouterPreventLocationUpdate: (allow: boolean) => void; | ||
unloadData: () => void; | ||
@@ -80,2 +81,4 @@ uploadData: (source: () => DataSource | Promise<DataSource>, extractResourceMetadata?: (source: DataSource) => unknown) => void; | ||
defineAction: (name: string, fn: (...args: any[]) => any) => void; | ||
setPageHash: (hash: string, replace?: boolean) => void; | ||
setRouterPreventLocationUpdate: (allow: boolean) => void; | ||
} | ||
@@ -82,0 +85,0 @@ |
@@ -7,2 +7,3 @@ import Emitter from '../core/emitter.js'; | ||
const logPrefix = '[Discovery/embed-host]'; | ||
const isStreamTransferable = (() => { | ||
@@ -168,3 +169,3 @@ try { | ||
} else { | ||
console.warn(`Action "${name}" was not found`); | ||
console.warn(`${logPrefix} Action "${name}" was not found`); | ||
} | ||
@@ -176,3 +177,2 @@ | ||
case 'navMethod': { | ||
// console.log('navMethod', data); | ||
const fn = this.commandMap.get(message.payload); | ||
@@ -183,3 +183,3 @@ | ||
} else { | ||
console.warn(`Nav command "${message.payload}" was not found`); | ||
console.warn(`${logPrefix} Nav command "${message.payload}" was not found`); | ||
} | ||
@@ -227,3 +227,3 @@ | ||
default: | ||
console.error(`[Discovery.js] Unknown embed message type "${message.type}"`); | ||
console.error(`${logPrefix} Unknown embed message type "${message.type}"`); | ||
} | ||
@@ -230,0 +230,0 @@ } |
@@ -92,3 +92,3 @@ import debounce from '../../core/utils/debounce.js'; | ||
} catch (e) { | ||
console.error('[Discovery] Prettify failed', e); | ||
host.log('error', 'View editor prettify failed:', e); | ||
} | ||
@@ -201,3 +201,3 @@ } | ||
el.innerHTML = escapeHtml(String(e)) + '<br>(see details in console)'; | ||
console.error(e); | ||
host.log('error', e); | ||
}); | ||
@@ -204,0 +204,0 @@ } |
@@ -13,3 +13,3 @@ import Progressbar from './core/utils/progressbar.js'; | ||
onTiming: ({ title, duration }) => | ||
console.log(`[Discovery/loader] ${title} – ${duration}ms`) | ||
console.log(`[Discovery/preloader] ${title} – ${duration}ms`) | ||
}); | ||
@@ -61,3 +61,3 @@ } | ||
if (loading.state) { | ||
syncLoaderWithProgressbar(loading, progressbar); | ||
syncLoaderWithProgressbar(loading, progressbar).catch(() => {}); | ||
} | ||
@@ -102,3 +102,3 @@ | ||
default: | ||
console.error(`[Discovery/loader] Unknown preload message type "${type}"`); | ||
console.error(`[Discovery/preloader] Unknown preload message type "${type}"`); | ||
} | ||
@@ -105,0 +105,0 @@ } |
@@ -1,1 +0,1 @@ | ||
export const version = "1.0.0-beta.76"; | ||
export const version = "1.0.0-beta.77"; |
@@ -216,2 +216,3 @@ /* eslint-env browser */ | ||
data: 'examples', | ||
whenData: true, | ||
itemConfig: { | ||
@@ -218,0 +219,0 @@ className: 'usage-section' |
@@ -26,7 +26,2 @@ /* eslint-env browser */ | ||
if (!header && config.title) { | ||
header = config.title; | ||
console.warn('expand.title is deprecated, use expand.header instead'); | ||
} | ||
expanded = host.queryBool(expanded, data, context); | ||
@@ -33,0 +28,0 @@ headerEl.appendChild(createElement('div', 'trigger')); |
@@ -170,3 +170,3 @@ /* eslint-env browser */ | ||
} catch (e) { | ||
console.error('Interpolation query error: ' + e.message); | ||
host.log('error', 'Interpolation query error in markdown:', e); | ||
} | ||
@@ -173,0 +173,0 @@ } |
@@ -163,3 +163,3 @@ /* eslint-env browser */ | ||
if (!hoverPinModes.includes(this.options.hoverPin)) { | ||
console.warn(`Bad value for \`Popup#options.hoverPin\` (should be ${hoverPinModes.join(', ')}):`, this.options.hoverPin); | ||
host.log('warn', `Bad value for \`Popup#options.hoverPin\` (should be ${hoverPinModes.join(', ')}):`, this.options.hoverPin); | ||
this.options.hoverPin = false; | ||
@@ -166,0 +166,0 @@ } |
@@ -259,3 +259,4 @@ /* eslint-env browser */ | ||
if (debug) { | ||
console.info( | ||
host.log( | ||
'info', | ||
`Compute struct view annotation${typeof debug === 'string' ? ` "${debug}"` : ''}:`, | ||
@@ -280,3 +281,3 @@ { data: value, context: queryContext, query, queryResult: config } | ||
} catch (e) { | ||
console.error(e); | ||
host.log('error', e); | ||
} | ||
@@ -283,0 +284,0 @@ } |
@@ -74,3 +74,3 @@ /* eslint-env browser */ | ||
function getOrder(data, sorting) { | ||
function getOrder(host, data, sorting) { | ||
if (typeof sorting !== 'function') { | ||
@@ -95,3 +95,3 @@ return false; | ||
} catch (e) { | ||
console.error('[Discovery] Error on column order detection in table view', e); | ||
host.log('error', 'Error on column order detection in table view', e); | ||
return 0; | ||
@@ -129,3 +129,3 @@ } | ||
for (const headerCell of headerCells) { | ||
const order = getOrder(orderedData, headerCell.sorting); | ||
const order = getOrder(host, orderedData, headerCell.sorting); | ||
headerCell.el.classList.toggle('asc', order === 1); | ||
@@ -225,3 +225,3 @@ headerCell.el.classList.toggle('desc', order === -1); | ||
const defaultOrder = typeof sorting === 'function' | ||
? getOrder(data, sorting) // getOrder() returns 0 when all values are equal, it's the same as absence of sorting | ||
? getOrder(host, data, sorting) // getOrder() returns 0 when all values are equal, it's the same as absence of sorting | ||
: 0; | ||
@@ -228,0 +228,0 @@ |
import ObjectMarker from '../core/object-marker.js'; | ||
import jora from 'jora'; | ||
export function createDataExtensionApi(instance) { | ||
export function createDataExtensionApi(host) { | ||
const objectMarkers = new ObjectMarker(); | ||
const linkResolvers = []; | ||
const annotations = []; | ||
const lookupObjectMarker = (value, type) => objectMarkers.lookup(value, type); | ||
const lookupObjectMarkerAll = (value) => objectMarkers.lookupAll(value); | ||
const addValueAnnotation = (query, options = false) => { | ||
const methods = { | ||
rejectData(message, renderContent) { | ||
throw Object.assign(new Error(message), { renderContent }); | ||
}, | ||
defineObjectMarker, | ||
lookupObjectMarker, | ||
lookupObjectMarkerAll, | ||
resolveValueLinks, | ||
addValueAnnotation, | ||
addQueryHelpers(helpers) { | ||
joraSetup = jora.setup(queryCustomMethods = { | ||
...queryCustomMethods, | ||
...helpers | ||
}); | ||
}, | ||
query(query, ...args) { | ||
return host.queryFn.call({ queryFnFromString: joraSetup }, query)(...args); | ||
} | ||
}; | ||
let queryCustomMethods = { | ||
query: (...args) => host.query(...args), | ||
pageLink: (pageRef, pageId, pageParams) => | ||
host.encodePageHash(pageId, pageRef, pageParams), | ||
marker: lookupObjectMarker, | ||
markerAll: lookupObjectMarkerAll, | ||
callAction, | ||
actionHandler: (actionName, ...args) => host.action.has(actionName) | ||
? () => callAction(actionName, ...args) | ||
: undefined | ||
}; | ||
let joraSetup = jora.setup(queryCustomMethods); | ||
return Object.assign(host => Object.assign(host, { | ||
objectMarkers, | ||
linkResolvers, | ||
resolveValueLinks, | ||
annotations, | ||
queryFnFromString: joraSetup | ||
}), { methods: methods }); | ||
// | ||
// Helpers | ||
// | ||
function defineObjectMarker(name, options) { | ||
const { page, mark, lookup } = objectMarkers.define(name, options) || {}; | ||
if (!lookup) { | ||
return () => {}; | ||
} | ||
if (page !== null) { | ||
if (!host.page.isDefined(options.page)) { | ||
host.log('error', `Page reference "${options.page}" doesn't exist`); | ||
return; | ||
} | ||
linkResolvers.push(value => { | ||
const marker = lookup(value); | ||
if (marker !== null) { | ||
return { | ||
type: page, | ||
text: marker.title, | ||
href: marker.href, | ||
entity: marker.object | ||
}; | ||
} | ||
}); | ||
addValueAnnotation((value, context) => { | ||
const marker = lookup(value); | ||
if (marker && marker.object !== context.host) { | ||
return { | ||
place: 'before', | ||
style: 'badge', | ||
text: page, | ||
href: marker.href | ||
}; | ||
} | ||
}); | ||
} else { | ||
addValueAnnotation((value, context) => { | ||
const marker = lookup(value); | ||
if (marker && marker.object !== context.host) { | ||
return { | ||
place: 'before', | ||
style: 'badge', | ||
text: name | ||
}; | ||
} | ||
}); | ||
} | ||
return mark; | ||
} | ||
function lookupObjectMarker(value, type) { | ||
return objectMarkers.lookup(value, type); | ||
} | ||
function lookupObjectMarkerAll(value) { | ||
return objectMarkers.lookupAll(value); | ||
} | ||
function addValueAnnotation(query, options = false) { | ||
if (typeof options === 'boolean') { | ||
@@ -21,4 +126,5 @@ options = { | ||
}); | ||
}; | ||
const resolveValueLinks = (value) => { | ||
} | ||
function resolveValueLinks(value) { | ||
const result = []; | ||
@@ -38,3 +144,4 @@ const type = typeof value; | ||
return result.length ? result : null; | ||
}; | ||
} | ||
function callAction(actionName, ...args) { | ||
@@ -47,3 +154,3 @@ let callback = null; | ||
const ret = instance.action.call(actionName, ...args); | ||
const ret = host.action.call(actionName, ...args); | ||
@@ -56,99 +163,2 @@ if (ret && callback && typeof ret.then === 'function') { | ||
} | ||
let queryCustomMethods = { | ||
query: (...args) => instance.query(...args), | ||
pageLink: (pageRef, pageId, pageParams) => | ||
instance.encodePageHash(pageId, pageRef, pageParams), | ||
marker: lookupObjectMarker, | ||
markerAll: lookupObjectMarkerAll, | ||
callAction, | ||
actionHandler: (actionName, ...args) => instance.action.has(actionName) | ||
? () => callAction(actionName, ...args) | ||
: undefined | ||
}; | ||
let joraSetup = jora.setup(queryCustomMethods); | ||
return { | ||
apply() { | ||
Object.assign(instance, { | ||
objectMarkers, | ||
linkResolvers, | ||
resolveValueLinks, | ||
annotations, | ||
queryFnFromString: joraSetup | ||
}); | ||
}, | ||
methods: { | ||
rejectData(message, renderContent) { | ||
throw Object.assign(new Error(message), { renderContent }); | ||
}, | ||
lookupObjectMarker, | ||
lookupObjectMarkerAll, | ||
resolveValueLinks, | ||
defineObjectMarker(name, options) { | ||
const { page, mark, lookup } = objectMarkers.define(name, options) || {}; | ||
if (!lookup) { | ||
return () => {}; | ||
} | ||
if (page !== null) { | ||
if (!instance.page.isDefined(options.page)) { | ||
console.error(`[Discovery] Page reference "${options.page}" doesn't exist`); | ||
return; | ||
} | ||
linkResolvers.push(value => { | ||
const marker = lookup(value); | ||
if (marker !== null) { | ||
return { | ||
type: page, | ||
text: marker.title, | ||
href: marker.href, | ||
entity: marker.object | ||
}; | ||
} | ||
}); | ||
addValueAnnotation((value, context) => { | ||
const marker = lookup(value); | ||
if (marker && marker.object !== context.host) { | ||
return { | ||
place: 'before', | ||
style: 'badge', | ||
text: page, | ||
href: marker.href | ||
}; | ||
} | ||
}); | ||
} else { | ||
addValueAnnotation((value, context) => { | ||
const marker = lookup(value); | ||
if (marker && marker.object !== context.host) { | ||
return { | ||
place: 'before', | ||
style: 'badge', | ||
text: name | ||
}; | ||
} | ||
}); | ||
} | ||
return mark; | ||
}, | ||
addValueAnnotation, | ||
addQueryHelpers(helpers) { | ||
joraSetup = jora.setup(queryCustomMethods = { | ||
...queryCustomMethods, | ||
...helpers | ||
}); | ||
}, | ||
query(query, ...args) { | ||
return instance.queryFn.call({ queryFnFromString: joraSetup }, query)(...args); | ||
} | ||
} | ||
}; | ||
} |
@@ -23,2 +23,5 @@ /* eslint-env browser */ | ||
const renderScheduler = new WeakMap(); | ||
const logLevels = ['silent', 'error', 'warn', 'info', 'perf', 'debug']; | ||
const logPrefix = '[Discovery]'; | ||
const noopLogger = new Proxy({}, { get: () => () => {} }); | ||
@@ -58,4 +61,7 @@ const defaultEncodeParams = (params) => params; | ||
const { | ||
logLevel, | ||
logger = console, | ||
darkmode = 'disabled', | ||
darkmodePersistent = false, | ||
defaultPage, | ||
defaultPageId, | ||
@@ -67,2 +73,5 @@ reportPageId, | ||
this.logger = logger || noopLogger; | ||
this.logLevel = logLevels.includes(logLevel) ? logLevel : 'perf'; | ||
this.darkmode = new DarkModeController(darkmode, darkmodePersistent); | ||
@@ -90,9 +99,3 @@ this.inspectMode = new Publisher(false); | ||
this.preset = new PresetRenderer(this.view); | ||
this.page = new PageRenderer(this).on('define', (pageId, page) => { | ||
const { resolveLink } = page.options; | ||
if (typeof resolveLink !== 'undefined') { | ||
console.warn('"resolveLink" in "page.define()" options is deprecated, use "page" option for "defineObjectMarker()" method in prepare function'); | ||
} | ||
this.page = new PageRenderer(this).on('define', (pageId) => { | ||
// FIXME: temporary solution to avoid missed custom page's `decodeParams` method call on initial render | ||
@@ -112,3 +115,2 @@ if (this.pageId === pageId && this.pageHash !== '#') { | ||
this.prepare = data => data; | ||
createDataExtensionApi(this).apply(); | ||
@@ -122,9 +124,10 @@ this.defaultPageId = defaultPageId || 'default'; | ||
if (defaultPage) { | ||
this.page.define(this.defaultPageId, defaultPage); | ||
} | ||
this.apply(createDataExtensionApi(this)); | ||
this.apply(views); | ||
this.apply(pages); | ||
if (this.options.defaultPage) { | ||
this.page.define(this.defaultPageId, this.options.defaultPage); | ||
} | ||
if (extensions) { | ||
@@ -146,10 +149,31 @@ this.apply(extensions); | ||
} else if (typeof extensions === 'function') { | ||
extensions.call(window, this); | ||
extensions.call(null, this); | ||
} else if (extensions) { | ||
this.apply(Object.values(extensions)); | ||
} else { | ||
console.error('Bad type of extension:', extensions); | ||
} | ||
} | ||
log(levelOrOpts, ...args) { | ||
const { level, lazy, message, collapsed } = levelOrOpts && typeof levelOrOpts === 'object' ? levelOrOpts : { level: levelOrOpts }; | ||
const levelIndex = logLevels.indexOf(level); | ||
if (levelIndex > 0 && levelIndex <= logLevels.indexOf(this.logLevel)) { | ||
const method = level === 'perf' ? 'log' : level; | ||
if (collapsed) { | ||
this.logger.groupCollapsed(`${logPrefix} ${message || args?.[0]}`); | ||
for (const entry of typeof collapsed === 'function' ? collapsed() : collapsed) { | ||
this.logger[method](...Array.isArray(entry) ? entry : [entry]); | ||
} | ||
this.logger.groupEnd(); | ||
} else { | ||
this.logger[method](logPrefix, ...typeof lazy === 'function' ? lazy() : args); | ||
} | ||
} else if (levelIndex === -1) { | ||
this.logger.error(`${logPrefix} Bad log level "${level}", supported: ${logLevels.slice(1).join(', ')}`); | ||
} | ||
} | ||
// | ||
@@ -171,3 +195,3 @@ // Data | ||
const startTime = Date.now(); | ||
const dataExtension = createDataExtensionApi(this); | ||
const prepareExtension = createDataExtensionApi(this); | ||
const checkIsNotPrevented = () => { | ||
@@ -185,3 +209,3 @@ const lastPromise = lastSetDataPromise.get(this); | ||
return this.prepare(data, dataExtension.methods) || data; | ||
return this.prepare(data, prepareExtension.methods) || data; | ||
}) | ||
@@ -194,6 +218,6 @@ .then((data) => { | ||
this.context = context; | ||
dataExtension.apply(); | ||
this.apply(prepareExtension); | ||
this.emit('data'); | ||
console.log(`[Discovery] Data prepared in ${Date.now() - startTime}ms`); | ||
this.log('perf', `Data prepared in ${Date.now() - startTime}ms`); | ||
}); | ||
@@ -541,10 +565,6 @@ | ||
this.view.setViewRoot(this.dom.sidebar, 'sidebar', { data, context }); | ||
this.dom.sidebar.innerHTML = ''; | ||
this.dom.sidebar.innerHTML = ''; | ||
return this.view.render( | ||
this.dom.sidebar, | ||
'sidebar', | ||
data, | ||
context | ||
).then(() => console.log(`[Discovery] Sidebar rendered in ${Date.now() - renderStartTime}ms`)); | ||
return this.view.render(this.dom.sidebar, 'sidebar', data, context) | ||
.finally(() => this.log('perf', `Sidebar rendered in ${Date.now() - renderStartTime}ms`)); | ||
} | ||
@@ -551,0 +571,0 @@ } |
@@ -125,7 +125,9 @@ const lastQuerySuggestionsStat = new WeakMap(); | ||
} catch (e) { | ||
console.groupCollapsed('[Discovery] Error on getting suggestions for query'); | ||
console.error(e); | ||
console.groupEnd(); | ||
host.log({ | ||
level: 'error', | ||
message: 'Error while attempting to retrieve suggestions for the query', | ||
collapsed: e | ||
}); | ||
return; | ||
} | ||
} |
Sorry, the diff of this file is too big to display
19597
1326173