New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@discoveryjs/discovery

Package Overview
Dependencies
Maintainers
3
Versions
93
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@discoveryjs/discovery - npm Package Compare versions

Comparing version 1.0.0-beta.76 to 1.0.0-beta.77

dist/discovery-embed-host.d.ts

2

dist/discovery-embed-host.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc