@milaboratories/pl-middle-layer 1.37.7 → 1.37.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
- "use strict";var Is=Object.defineProperty;var Yt=(s,e)=>(e=Symbol[s])?e:Symbol.for("Symbol."+s),Qt=s=>{throw TypeError(s)};var Fs=(s,e,t)=>e in s?Is(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var P=(s,e,t)=>Fs(s,typeof e!="symbol"?e+"":e,t);var Zt=(s,e,t)=>{if(e!=null){typeof e!="object"&&typeof e!="function"&&Qt("Object expected");var r;t&&(r=e[Yt("asyncDispose")]),r===void 0&&(r=e[Yt("dispose")]),typeof r!="function"&&Qt("Object not disposable"),s.push([t,r,e])}else t&&s.push([t]);return e},er=(s,e,t)=>{var r=typeof SuppressedError=="function"?SuppressedError:function(i,c,a,l){return l=Error(a),l.name="SuppressedError",l.error=i,l.suppressed=c,l},o=i=>e=t?new r(i,e,"An error was suppressed during disposal"):(t=!0,i),n=i=>{for(;i=s.pop();)try{var c=i[1]&&i[1].call(i[2]);if(i[0])return Promise.resolve(c).then(n,a=>(o(a),n()))}catch(a){o(a)}if(t)throw e};return n()};Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("@platforma-sdk/model"),Y=require("@milaboratories/pl-model-middle-layer"),tr=require("@milaboratories/pl-deployments"),tt=require("undici"),Q=require("@platforma-sdk/block-tools"),se=require("node:fs"),J=require("node:path"),As=require("yaml"),S=require("@milaboratories/ts-helpers"),Ie=require("node:fs/promises"),Ds=require("@milaboratories/resolve-helper"),g=require("@milaboratories/pl-client"),Qe=require("@milaboratories/pl-tree"),x=require("@milaboratories/computable"),re=require("node:crypto"),O=require("@milaboratories/pl-model-backend"),Tt=require("lru-cache"),Ls=require("node:worker_threads"),Mr=require("denque"),we=require("@platforma-sdk/workflow-tengo"),G=require("canonicalize"),Ns=require("node:assert"),fe=require("quickjs-emscripten"),Bs=require("@milaboratories/pl-errors"),js=require("remeda"),_r=require("node:timers/promises"),K=require("@milaboratories/pl-drivers"),Vs=require("@milaboratories/pframes-rs-node"),xs=require("node:diagnostics_channel"),Us=require("node:stream/consumers"),Kr=require("node:os");function $t(s){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const t in s)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>s[t]})}}return e.default=s,Object.freeze(e)}const Gs=$t(J),Hr=$t(Ie),rr=$t(js);async function sr(s){try{return await Hr.stat(s,{bigint:!0})}catch(e){if(e.code==="ENOENT")return;throw e}}const Js=[Q.RegistryV1.PlPackageYamlConfigFile],Ms=[Q.RegistryV1.PlPackageJsonConfigFile],It=["backend","dist","tengo","tpl","main.plj.gz"],Ft=["config","dist","config.json"],qr=["frontend","dist"],or="block-model/dist/config.json",_s="block-ui/package.json",Ks=[It,Ft,Js,Ms,qr];async function Hs(s){return await sr(J.join(s,...Ft))!==void 0||await sr(J.join(s,...It))!==void 0}function dt(s,e){const t=Ds.tryResolve(s,e);if(t===void 0)throw new Error(`Can't resolve ${e} against ${s}`);return t}async function nr(s,e){if(J.isAbsolute(s)||(s=J.resolve(s)),await Hs(s))return{workflow:J.join(s,...It),config:J.join(s,...Ft),ui:J.join(s,...qr)};{const t=dt(s,or),r=dt(s,or),o=dt(s,_s);return{workflow:t,config:r,ui:J.resolve(o,"..","dist")}}}async function qs(s){try{return await se.promises.readFile(s,"utf8")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")return;throw e}}async function Ws(s){try{return await se.promises.stat(s,{bigint:!0})}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")return;throw e}}async function At(s){let e=0n;for(const t of Ks){const r=J.join(s,...t),o=await Ws(r);o!==void 0&&e<o.mtimeNs&&(e=o.mtimeNs)}return e.toString()}async function rt(s){const e=await se.promises.stat(s.components.workflow.main.file,{bigint:!0}),t=await se.promises.stat(s.components.model.file,{bigint:!0});return(e.mtimeNs>t.mtimeNs?e.mtimeNs:t.mtimeNs).toString()}class zs{constructor(e,t,r){this.v2Provider=e,this.registries=t,this.http=r}async getPackagesForRoot(e){const t=[],r=e.spec;switch(r.type){case"remote-v1":{const o=this.http!==void 0?{dispatcher:this.http}:{},i=await(await tt.request(`${r.url}/${Q.RegistryV1.GlobalOverviewPath}`,o)).body.json();for(const c of i){const{organization:a,package:l,latestMeta:u,latestVersion:d}=c,p={organization:a,name:l,version:d},f={id:p,meta:{title:u.title??"No title",description:u.description??"No Description",organization:{name:a,url:"https://unknown.com"}},spec:{type:"from-registry-v1",id:p,registryUrl:r.url}};t.push({registryId:e.id,id:p,latestByChannel:{[Y.AnyChannel]:f,[Y.StableChannel]:f},allVersions:c.allVersions.map(k=>({version:k,channels:[]}))})}return t}case"remote-v2":return(await this.v2Provider.getRegistry(r.url).listBlockPacks()).map(o=>({...o,registryId:e.id}));case"local-dev":for(const o of await se.promises.readdir(r.path,{withFileTypes:!0})){if(!o.isDirectory())continue;const n=J.join(r.path,o.name),i=await qs(J.join(n,Q.RegistryV1.PlPackageYamlConfigFile));if(i!==void 0){const c=Q.RegistryV1.PlPackageConfigData.parse(As.parse(i)),a=await At(n),l={organization:c.organization,name:c.package,version:"DEV"},u={id:l,meta:{title:c.meta.title??"No title",description:c.meta.description??"No Description",organization:{name:c.organization,url:"https://unknown.com"}},spec:{type:"dev-v2",folder:n,mtime:a}};t.push({registryId:e.id,id:l,latestByChannel:{[Y.AnyChannel]:u,[Y.StableChannel]:u},allVersions:[]})}else{let c=n,a=await Q.tryLoadPackDescription(c);if(a===void 0){for(const l of["block","meta"])if(c=J.join(n,l),a=await Q.tryLoadPackDescription(c),a!==void 0)break}if(a!==void 0){const l=await rt(a),u={id:a.id,meta:await Q.BlockPackMetaEmbedAbsoluteBytes.parseAsync(a.meta),spec:{type:"dev-v2",folder:c,mtime:l}};t.push({registryId:e.id,id:a.id,latestByChannel:{[Y.AnyChannel]:u,[Y.StableChannel]:u},allVersions:[]})}}}return t;default:return S.assertNever(r)}}async listBlockPacks(){const e=[],t=[];for(const r of this.registries)t.push({...r,status:"online"}),e.push(...await this.getPackagesForRoot(r));return{registries:t,blockPacks:e}}async getOverview(e,t,r){var i;const o=(i=this.registries.find(c=>c.id===e))==null?void 0:i.spec;if(!o)throw new Error(`Registry with id "${e}" not found`);if(o.type!=="remote-v2")throw new Error('Only "remote-v2" registries support specific package version overview retrieval.');return await this.v2Provider.getRegistry(o.url).getSpecificOverview(t,r)}}class Wr{constructor(e){P(this,"registries",new Map);this.http=e}getRegistry(e){const t=this.registries.get(e);if(t)return t;const r=new Q.RegistryV2Reader(Q.folderReaderByUrl(e,this.http));return this.registries.set(e,r),r}}const Xs={type:"remote-v2",url:"https://blocks.pl-open.science/"},Ys={type:"remote-v1",url:"https://block.registry.platforma.bio/releases"},Qs={type:"remote-v1",url:"https://block.registry.platforma.bio/dev"},Zs={groups:[{id:"default",label:"Default",blocks:[]}]},eo={stagingRefreshTimestamp:0,blocksInLimbo:[]},to={label:"New Project"},ro={name:"UserProject",version:"2"},zr="SchemaVersion",Xr="1",Dt="ProjectCreated",Fe="ProjectLastModified",Ae="ProjectMeta",ge="ProjectStructure",Ze="BlockRenderingState",so="BlockFrontendState/",oo=/^BlockFrontendState\/(?<blockid>.*)$/;function bt(s){return`${so}${s}`}const no="BlockArgsAuthor/";function St(s){return`${no}${s}`}const kt="ProjectStructureAuthor";function io(s){const e=s.match(oo);if(e!==null)return e.groups.blockid}const ao="__serviceTemplate_";function Pt(s){return`${ao}${s}`}function H(s,e){return`${s}-${e}`}const co=/^(?<blockId>.*)-(?<fieldName>blockPack|blockSettings|prodArgs|currentArgs|prodCtx|prodUiCtx|prodOutput|prodCtxPrevious|prodUiCtxPrevious|prodOutputPrevious|stagingCtx|stagingUiCtx|stagingOutput|stagingCtxPrevious|stagingUiCtxPrevious|stagingOutputPrevious)$/;function lo(s){const e=s.match(co);if(e===null)return;const{blockId:t,fieldName:r}=e.groups;return{blockId:t,fieldName:r}}const uo="projects",Yr={name:"Projects",version:"1"},po=s=>g.resourceTypesEqual(s.type,Yr)?s.fields:[];async function fo(s,e,t,r){const o=await Qe.SynchronizedTreeState.init(s,e,{...r.ops.defaultTreeOptions,pruning:po},r.logger);return{computable:x.Computable.make(i=>{const c=i.accessor(o.entry()).node(),a=t.getValue(i);if(c===void 0)return;const l=[];for(const u of c.listDynamicFields()){const d=c.traverse(u);if(d===void 0)continue;const p=S.notEmpty(d.getKeyValueAsJson(Ae)),f=S.notEmpty(d.getKeyValueAsJson(Dt)),k=S.notEmpty(d.getKeyValueAsJson(Fe));l.push({id:u,rid:d.id,created:new Date(f),lastModified:new Date(k),opened:a.indexOf(d.id)>=0,meta:p})}return l.sort(u=>-u.lastModified.valueOf()),l}).withStableType(),tree:o}}const go={name:"EphRenderTemplate",version:"1"},ho={name:"RenderTemplate",version:"1"};function st(s,e,t,r,o){if(o.length===0)throw new Error("Zero output names provided");const n=t?s.createEphemeral(go):s.createStruct(ho),i=g.field(n,"template"),c=g.field(n,"inputs");return s.createField(i,"Input",e),s.createField(c,"Input",g.Pl.createPlMap(s,r,t)),s.lockInputs(n),g.Pl.futureRecord(s,n,o,"Output","outputs/")}const mo={name:"BContextEnd",version:"1"},yo={name:"BContext",version:"1"},vo="id",wo="parent/",bo=["context","result"];function ir(s,e,t){return st(s,e,!0,t,bo)}function So(s){const e=s.createEphemeral(mo);return s.lock(e),e}function ar(s,e){if(e.length===0)return So(s);if(e.length===1)return e[0];const t=s.createEphemeral(yo);s.createField(g.field(t,vo),"Input",g.Pl.createPlString(s,re.randomUUID()));for(let r=0;r<e.length;r++)s.createField(g.field(t,`${wo}${r}`),"Input",e[r]);return s.lock(t),t}function Qr(s,e){const t=new Map,r=(o,n,i)=>{const c=re.createHash("sha256");n.updateCacheKey(o,c,i);const a=c.digest("hex");if(!t.has(a)){const l=n.render(o,s,r,i);t.set(a,l)}return t.get(a)};return r(e.template,Zr,e.hashToSource)}const cr={updateCacheKey(s,e,t){e.update(O.PlTemplateLibV1.type.name).update(O.PlTemplateLibV1.type.version).update(s.name).update(s.version).update(ve(s.name,t,s.sourceHash))},render(s,e,t,r){return e.createValue(O.PlTemplateLibV1.type,JSON.stringify(O.PlTemplateLibV1.fromV3Data(s,ve(s.name,r,s.sourceHash)).data))}},Ue={updateCacheKey(s,e,t){e.update(O.PlTemplateSoftwareV1.type.name).update(O.PlTemplateSoftwareV1.type.version).update(s.name).update(s.version).update(ve(s.name,t,s.sourceHash))},render(s,e,t,r){const o=O.PlTemplateSoftwareV1.fromV3Data(s,ve(s.name,r,s.sourceHash)),n=e.createStruct(O.PlTemplateSoftwareV1.type,o.data);return e.setKValue(n,O.PlTemplateSoftwareV1.metaNameKey,JSON.stringify(o.name)),e.lock(n),n}},Zr={updateCacheKey(s,e,t){e.update(O.PlTemplateV1.type.name).update(O.PlTemplateV1.type.version).update(s.hashOverride??"no-override").update(s.name).update(s.version).update(ve(s.name,t,s.sourceHash));const r=o=>(o.sort((n,i)=>n[0]===i[0]?0:n[0]<i[0]?-1:1),o);for(const[o,n]of r(Object.entries(s.libs??{})))e.update("lib:"+o),cr.updateCacheKey(n,e,t);for(const[o,n]of r(Object.entries(s.software??{})))e.update("soft:"+o),Ue.updateCacheKey(n,e,t);for(const[o,n]of r(Object.entries(s.assets??{})))e.update("asset:"+o),Ue.updateCacheKey(n,e,t);for(const[o,n]of r(Object.entries(s.templates??{})))e.update("tpl:"+o),this.updateCacheKey(n,e,t)},render(s,e,t,r){const o=e.createStruct(O.PlTemplateV1.type,JSON.stringify(O.PlTemplateV1.fromV3Data(s,ve(s.name,r,s.sourceHash)).data));for(const[c,a]of Object.entries(s.libs??{})){const l=O.PlTemplateV1.libField(o,c);e.createField(l,"Input"),e.setField(l,t(a,cr,r))}for(const[c,a]of Object.entries(s.software??{})){const l=O.PlTemplateV1.swField(o,c);e.createField(l,"Input"),e.setField(l,t(a,Ue,r))}for(const[c,a]of Object.entries(s.assets??{})){const l=O.PlTemplateV1.swField(o,c);e.createField(l,"Input"),e.setField(l,t(a,Ue,r))}for(const[c,a]of Object.entries(s.templates??{})){const l=O.PlTemplateV1.tplField(o,c);e.createField(l,"Input"),e.setField(l,t(a,Zr,r))}if(e.lock(o),!s.hashOverride)return o;const n=e.createStruct(O.PlTemplateOverrideV1.type,JSON.stringify(O.PlTemplateOverrideV1.fromV3Data(s))),i=O.PlTemplateOverrideV1.tplField(n);return e.createField(i,"Service"),e.setField(i,o),e.lock(n),n}};function ve(s,e,t){return S.notEmpty(e[t],`trying to get "${s}" source: sources map doesn't contain source hash ${t}`)}function ko(s,e){const t=O.parseTemplate(e.content),r=t.type;switch(r){case"pl.tengo-template.v2":return ts(s,t);case"pl.tengo-template.v3":return Qr(s,t);default:S.assertNever(r)}}function Po(s,e){const t=e.data,r=t.type;switch(r){case"pl.tengo-template.v2":return ts(s,t);case"pl.tengo-template.v3":return Qr(s,t);default:S.assertNever(r)}}const lr={hash(s,e){e.update(O.PlTemplateLibV1.type.name).update(O.PlTemplateLibV1.type.version).update(s.name).update(s.version).update(s.src)},render(s,e,t){return e.createValue(O.PlTemplateLibV1.type,JSON.stringify(O.PlTemplateLibV1.fromV2Data(s).data))}},Ge={hash(s,e){e.update(O.PlTemplateSoftwareV1.type.name).update(O.PlTemplateSoftwareV1.type.version).update(s.name).update(s.version).update(s.src)},render(s,e,t){const r=O.PlTemplateSoftwareV1.fromV2Data(s),o=e.createStruct(O.PlTemplateSoftwareV1.type,r.data);return e.setKValue(o,O.PlTemplateSoftwareV1.metaNameKey,JSON.stringify(r.name)),e.lock(o),o}},es={hash(s,e){e.update(O.PlTemplateV1.type.name).update(O.PlTemplateV1.type.version).update(s.hashOverride??"no-override").update(s.name).update(s.version).update(s.src);const t=r=>(r.sort((o,n)=>o[0]===n[0]?0:o[0]<n[0]?-1:1),r);for(const[r,o]of t(Object.entries(s.libs??{})))e.update("lib:"+r),lr.hash(o,e);for(const[r,o]of t(Object.entries(s.software??{})))e.update("soft:"+r),Ge.hash(o,e);for(const[r,o]of t(Object.entries(s.assets??{})))e.update("asset:"+r),Ge.hash(o,e);for(const[r,o]of t(Object.entries(s.templates??{})))e.update("tpl:"+r),this.hash(o,e)},render(s,e,t){const r=e.createStruct(O.PlTemplateV1.type,JSON.stringify(O.PlTemplateV1.fromV2Data(s).data));for(const[i,c]of Object.entries(s.libs??{})){const a=O.PlTemplateV1.libField(r,i);e.createField(a,"Input"),e.setField(a,t(c,lr))}for(const[i,c]of Object.entries(s.software??{})){const a=O.PlTemplateV1.swField(r,i);e.createField(a,"Input"),e.setField(a,t(c,Ge))}for(const[i,c]of Object.entries(s.assets??{})){const a=O.PlTemplateV1.swField(r,i);e.createField(a,"Input"),e.setField(a,t(c,Ge))}for(const[i,c]of Object.entries(s.templates??{})){const a=O.PlTemplateV1.tplField(r,i);e.createField(a,"Input"),e.setField(a,t(c,es))}if(e.lock(r),!s.hashOverride)return r;const o=e.createStruct(O.PlTemplateOverrideV1.type,JSON.stringify(O.PlTemplateOverrideV1.fromV2Data(s))),n=O.PlTemplateOverrideV1.tplField(o);return e.createField(n,"Service"),e.setField(n,r),e.lock(o),o}};function ts(s,e){const t=new Map,r=(o,n)=>{const i=re.createHash("sha256");n.hash(o,i);const c=i.digest("hex");if(!t.has(c)){const a=n.render(o,s,r);t.set(c,a)}return t.get(c)};return r(e,es)}const rs={name:"TengoTemplateGet",version:"1"},ss="registry",os="templateURI",ns="template",Co={name:"TengoTemplatePack",version:"1"},Ro={name:"TengoTemplatePackConvert",version:"1"},Eo="templatePack",Oo="template";async function Lt(s){switch(s.type){case"from-file":return{type:"explicit",content:await se.promises.readFile(s.path)};case"from-registry":case"explicit":return s;case"prepared":return s;default:return S.assertNever(s)}}function To(s,e){const t=s.createStruct(rs),r=g.field(t,ss),o=g.field(t,os),n=g.field(t,ns);return s.setField(r,s.createValue(g.Pl.JsonString,Buffer.from(JSON.stringify(e.registry)))),s.setField(o,s.createValue(g.Pl.JsonString,Buffer.from(JSON.stringify(e.path)))),n}function Ne(s,e){switch(e.type){case"from-registry":return To(s,e);case"explicit":return ko(s,e);case"prepared":return Po(s,e);default:return S.assertNever(e)}}const Nt={name:"Frontend/FromUrl",version:"1"},Bt={name:"Frontend/FromFolder",version:"1"};function $o(s,e){switch(e.type){case"url":return s.createValue(Nt,JSON.stringify({url:e.url}));case"local":return s.createValue(Bt,JSON.stringify({path:e.path,signature:e.signature}));default:return S.assertNever(e)}}class Io{constructor(){P(this,"nextMessageId",0);P(this,"worker");P(this,"pendingRequests",new Map);const e=typeof global<"u"&&"__WORKER_PATH__"in global?global.__WORKER_PATH__:J.resolve(void 0,"worker.js"),t=this.worker=new Ls.Worker(e,{workerData:{}});t.on("message",({id:r,data:o,error:n})=>{const{resolve:i,reject:c}=this.pendingRequests.get(r);this.pendingRequests.delete(r),n?c(new Error(n)):i(o)}),t.on("error",r=>{console.error("Worker error",r),this.rejectAllPendingRequests(r)})}rejectAllPendingRequests(e){Array.from(this.pendingRequests.values()).map(({reject:t})=>{t(e)})}async process(e,...t){return new Promise((r,o)=>{const n=++this.nextMessageId;this.pendingRequests.set(n,{resolve:r,reject:o}),this.worker.postMessage({id:n,type:e,args:t})})}async terminate(){this.rejectAllPendingRequests(new Error("Worker terminated")),await this.worker.terminate()}[Symbol.asyncDispose](){return this.terminate()}}const Fo={name:"BlockPackCustom",version:"1"},is="template",as="frontend";function ur(s){return s.endsWith("/")?s:`${s}/`}function Ao(s){return Buffer.from(s).toString("utf8")}function Je(s){return JSON.parse(Ao(s))}class Do{constructor(e,t,r){P(this,"remoteContentCache",new Tt.LRUCache({max:500,maxSize:128*1024*1024,fetchMethod:async e=>{const t=this.http!==void 0?{dispatcher:this.http}:{};return await(await tt.request(e,t)).body.arrayBuffer()},sizeCalculation:e=>e.byteLength}));this.v2RegistryProvider=e,this.signer=t,this.http=r}async getBlockConfigContainer(e){switch(e.type){case"explicit":return e.config;case"prepared":return e.config;case"dev-v1":{const t=await nr(e.folder),r=await se.promises.readFile(t.config,{encoding:"utf-8"});return JSON.parse(r)}case"dev-v2":{const t=await Q.loadPackDescription(e.folder),r=await se.promises.readFile(t.components.model.file,{encoding:"utf-8"});return JSON.parse(r)}case"from-registry-v1":{const t=`${ur(e.registryUrl)}${Q.RegistryV1.packageContentPrefix({organization:e.id.organization,package:e.id.name,version:e.id.version})}`,r=await this.remoteContentCache.forceFetch(`${t}/config.json`);return Je(r)}case"from-registry-v2":{const r=await this.v2RegistryProvider.getRegistry(e.registryUrl).getComponents(e.id),o=await this.remoteContentCache.forceFetch(r.model.url);return Je(o)}default:return S.assertNever(e)}}async prepare(e){var o=[];try{if(e.type==="prepared")return e;const t=await this.prepareWithoutUnpacking(e);const r=Zt(o,new Io,!0);return{...t,type:"prepared",template:{type:"prepared",data:await r.process("parseTemplate",t.template.content)}}}catch(n){var i=n,c=!0}finally{var a=er(o,i,c);a&&await a}}async prepareWithoutUnpacking(e){switch(e.type){case"explicit":return e;case"dev-v1":{const t=await nr(e.folder),r=await se.promises.readFile(t.workflow),o=JSON.parse(await se.promises.readFile(t.config,"utf-8")),n=t.ui;return{type:"explicit",template:{type:"explicit",content:r},config:o,frontend:{type:"local",path:n,signature:this.signer.sign(n)},source:e}}case"dev-v2":{const t=await Q.loadPackDescription(e.folder),r=JSON.parse(await se.promises.readFile(t.components.model.file,{encoding:"utf-8"})),o=await se.promises.readFile(t.components.workflow.main.file),n=t.components.ui.folder,i={...e};return e.mtime===void 0&&(i.mtime=await rt(t)),{type:"explicit",template:{type:"explicit",content:o},config:r,frontend:{type:"local",path:n,signature:this.signer.sign(n)},source:i}}case"from-registry-v1":{const t=`${ur(e.registryUrl)}${Q.RegistryV1.packageContentPrefix({organization:e.id.organization,package:e.id.name,version:e.id.version})}`,r=`${t}/template.plj.gz`,o=await this.remoteContentCache.forceFetch(r),n=new Uint8Array(o),i=await this.remoteContentCache.forceFetch(`${t}/config.json`),c=Je(i);return{type:"explicit",template:{type:"explicit",content:n},config:c,frontend:{type:"url",url:`${t}/frontend.tgz`},source:e}}case"from-registry-v2":{const r=await this.v2RegistryProvider.getRegistry(e.registryUrl).getComponents(e.id),o=async()=>Je(await this.remoteContentCache.forceFetch(r.model.url)),n=async()=>await this.remoteContentCache.forceFetch(r.workflow.main.url),[i,c]=await Promise.all([o(),n()]);return{type:"explicit",template:{type:"explicit",content:Buffer.from(c)},config:i,frontend:{type:"url",url:r.ui.url},source:e}}default:return S.assertNever(e)}}}function Lo(s,e){const t={config:e.config,source:e.source},r=s.createStruct(Fo,JSON.stringify(t));return s.createField(g.field(r,is),"Input",Ne(s,e.template)),s.createField(g.field(r,as),"Input",$o(s,e.frontend)),s.lock(r),r}function dr(s,e){switch(e.type){case"prepared":return Lo(s,e);default:return S.assertNever(e.type)}}function Me(s,e,t){return{__isRef:!0,blockId:s,name:e}}function No(s){return typeof s=="object"&&s!==null&&"__isRef"in s&&s.__isRef===!0&&"blockId"in s&&"name"in s}function Ct(s,e,t){const r=typeof e;switch(r){case"function":case"bigint":case"number":case"string":case"boolean":case"symbol":case"undefined":return;case"object":if(e===null)return;if(No(e))t===void 0||t.has(e.blockId)?(s.upstreams.add(e.blockId),e.requireEnrichments&&s.upstreamsRequiringEnrichments.add(e.blockId)):s.missingReferences=!0;else if(Array.isArray(e))for(const o of e)Ct(s,o,t);else for(const[,o]of Object.entries(e))Ct(s,o,t);return;default:S.assertNever(r)}}function Bo(s,e){const t={upstreams:new Set,upstreamsRequiringEnrichments:new Set,missingReferences:!1};return Ct(t,s,e),t}function ae(s){return{*[Symbol.iterator](){for(const e of s.groups)for(const t of e.blocks)yield t}}}class cs{constructor(e){P(this,"nodes");this.nodes=e}traverseIds(e,...t){const r=new Set;return this.traverse(e,t,o=>r.add(o.id)),r}traverseIdsExcludingRoots(e,...t){const r=this.traverseIds(e,...t);for(const o of t)r.delete(o);return r}traverse(e,t,r){let o=[...t];const n=new Set(o);for(;o.length>0;){const i=[];for(const c of o){const a=this.nodes.get(c);r(a),a[e].forEach(l=>{n.has(l)||(n.add(l),i.push(l))})}o=i}}}function Rt(s){const e=new Map;let t;for(const{id:r}of ae(s)){const o={id:r,missingReferences:!1};e.set(r,o),t===void 0?(o.directUpstream=o.upstream=new Set,o.enrichments=o.enrichmentTargets=new Set):(o.directUpstream=o.upstream=new Set([t.id]),t.directDownstream=t.downstream=new Set([o.id]),t.enrichments=t.enrichmentTargets=new Set),t=o}return t!==void 0&&(t.directDownstream=t.downstream=new Set),new cs(e)}function Ye(s,e){const t=new Map,r=new cs(t),o=new Set;for(const{id:n}of ae(s)){const i=e(n);if(i===void 0)continue;const c=Bo(i.args,o),a=new Set([...c.upstreams,...r.traverseIds("enrichments",...c.upstreamsRequiringEnrichments)]),l=new Set;for(const{id:p}of ae(s)){if(p===n)break;if(a.has(p)){l.add(p);for(const f of r.traverseIdsExcludingRoots("upstream",p))l.delete(f)}}const u=i.enrichmentTargets===void 0?new Set(c.upstreams):new Set(i.enrichmentTargets.map(p=>p.blockId)),d={id:n,missingReferences:c.missingReferences,upstream:l,directUpstream:c.upstreams,enrichmentTargets:u,downstream:new Set,directDownstream:new Set,enrichments:new Set};t.set(n,d),c.upstreams.forEach(p=>t.get(p).directDownstream.add(n)),l.forEach(p=>t.get(p).downstream.add(n)),u.forEach(p=>{var f;return(f=t.get(p))==null?void 0:f.enrichments.add(n)}),o.add(n)}return r}function jo(s,e){if(s.size!==e.size)return!1;for(const t of s)if(!e.has(t))return!1;return!0}function Et(s,e){if(s.size>e.size)return Et(e,s);for(const t of s)if(e.has(t))return!0;return!1}function pr(s,e){const t=new Set,r=new Set,o=new Set;return s.nodes.forEach(n=>{const i=e.nodes.get(n.id);i===void 0?t.add(n.id):(!jo(n.upstream,i.upstream)||Et(n.upstream,o))&&o.add(n.id)}),e.nodes.forEach(n=>{s.nodes.has(n.id)?Et(n.upstream,o)&&o.add(n.id):r.add(n.id)}),{onlyInA:t,onlyInB:r,different:o}}let pt;async function ls(){if(pt===void 0){const s=await Lt(we.Templates["pframes.export-pframe-for-ui"]);if(s.type!=="explicit")throw new Error("Unexpected prepared template type.");const e=re.createHash("sha256").update(s.content).digest("hex");pt={spec:s,hash:e}}return pt}function Vo(s,e,t){return st(s,e,!0,{pf:t},["result"]).result}function ft(s,e){let t=!1,r,o;return()=>{if(!t)return t=!0,r=s(),o=e(),o;const n=s();return r!==n&&(r=n,o=e()),e()}}class fr{constructor(e,t,r,o){P(this,"currentArgsC",ft(()=>this.fields.currentArgs.modCount,()=>S.cachedDeserialize(this.fields.currentArgs.value)));P(this,"prodArgsC",ft(()=>{var e;return(e=this.fields.prodArgs)==null?void 0:e.modCount},()=>{var t;const e=(t=this.fields.prodArgs)==null?void 0:t.value;if(e!==void 0)return S.cachedDeserialize(e)}));P(this,"productionStaleC",ft(()=>{var e;return`${this.fields.currentArgs.modCount}_${(e=this.fields.prodArgs)==null?void 0:e.modCount}`},()=>this.fields.prodArgs===void 0||Buffer.compare(this.fields.currentArgs.value,this.fields.prodArgs.value)!==0));this.id=e,this.fields=t,this.config=r,this.source=o}check(){if(this.fields.prodOutput===void 0!=(this.fields.prodCtx===void 0))throw new Error("inconsistent prod fields");if(this.fields.stagingOutput===void 0!=(this.fields.stagingCtx===void 0))throw new Error("inconsistent stage fields");if(this.fields.prodOutputPrevious===void 0!=(this.fields.prodCtxPrevious===void 0))throw new Error("inconsistent prod cache fields");if(this.fields.stagingOutputPrevious===void 0!=(this.fields.stagingCtxPrevious===void 0))throw new Error("inconsistent stage cache fields");if(this.fields.blockPack===void 0)throw new Error("no block pack field");if(this.fields.currentArgs===void 0)throw new Error("no current args field")}get currentArgs(){return this.currentArgsC()}get stagingRendered(){return this.fields.stagingCtx!==void 0}get productionRendered(){return this.fields.prodCtx!==void 0}get productionHasErrors(){var e;return((e=this.fields.prodUiCtx)==null?void 0:e.status)==="Error"}get requireProductionRendering(){return!this.productionRendered||this.productionStaleC()||this.productionHasErrors}get prodArgs(){return this.prodArgsC()}getTemplate(e){return e.getFutureFieldValue(g.Pl.unwrapHolder(e,this.fields.blockPack.ref),is,"Input")}}const xo=s=>{throw new Error(`No new block info for ${s}`)};class et{constructor(e,t,r,o,n,i,c,a,l,u,d,p,f){P(this,"globalModCount",0);P(this,"fieldsChanged",!1);P(this,"lastModifiedChanged",!1);P(this,"structureChanged",!1);P(this,"metaChanged",!1);P(this,"renderingStateChanged",!1);P(this,"changedBlockFrontendStates",new Set);P(this,"blocksWithChangedInputs",new Set);P(this,"stagingGraph");P(this,"pendingProductionGraph");P(this,"actualProductionGraph");this.rid=e,this.tx=t,this.author=r,this.schema=o,this.lastModified=n,this.meta=i,this.struct=c,this.renderingState=a,this.blocksInLimbo=l,this.blockInfos=u,this.blockFrontendStates=d,this.ctxExportTplHolder=p,this.projectHelper=f}fixProblemsAndMigrate(){this.blockInfos.forEach(t=>{(t.fields.prodArgs===void 0||t.fields.prodOutput===void 0||t.fields.prodCtx===void 0)&&this.deleteBlockFields(t.id,"prodArgs","prodOutput","prodCtx")});let e;this.blockInfos.forEach(t=>{t.fields.blockSettings===void 0&&(e===void 0&&(e=this.createJsonFieldValue(Y.InitialBlockSettings)),this.setBlockFieldObj(t.id,"blockSettings",e))})}get wasModified(){return this.lastModifiedChanged||this.structureChanged||this.fieldsChanged||this.metaChanged||this.renderingStateChanged||this.changedBlockFrontendStates.size>0}get structure(){return JSON.parse(JSON.stringify(this.struct))}getStagingGraph(){return this.stagingGraph===void 0&&(this.stagingGraph=Rt(this.struct)),this.stagingGraph}getProductionGraphBlockInfo(e,t){const r=this.getBlockInfo(e);let o,n;if(t){if(r.fields.prodArgs===void 0)return;o=r.fields.prodArgs,n=r.prodArgs}else o=S.notEmpty(r.fields.currentArgs),n=r.currentArgs;const i=S.notEmpty(r.fields.blockPack);return g.isResourceId(o.ref)&&g.isResourceId(i.ref)?{args:n,enrichmentTargets:this.projectHelper.getEnrichmentTargets(()=>r.config,()=>n,{argsRid:o.ref,blockPackRid:i.ref})}:{args:n,enrichmentTargets:this.projectHelper.getEnrichmentTargets(()=>r.config,()=>n)}}getPendingProductionGraph(){return this.pendingProductionGraph===void 0&&(this.pendingProductionGraph=Ye(this.struct,e=>this.getProductionGraphBlockInfo(e,!1))),this.pendingProductionGraph}getActualProductionGraph(){return this.actualProductionGraph===void 0&&(this.actualProductionGraph=Ye(this.struct,e=>this.getProductionGraphBlockInfo(e,!0))),this.actualProductionGraph}getBlockInfo(e){const t=this.blockInfos.get(e);if(t===void 0)throw new Error(`No such block: ${e}`);return t}createJsonFieldValueByContent(e){const t=Buffer.from(e);return{ref:this.tx.createValue(g.Pl.JsonObject,t),value:t,status:"Ready"}}createJsonFieldValue(e){return this.createJsonFieldValueByContent(JSON.stringify(e))}getBlock(e){for(const t of ae(this.struct))if(t.id===e)return t;throw new Error("block not found")}setBlockFieldObj(e,t,r){const o=g.field(this.rid,H(e,t));if(r.ref===void 0)throw new Error("Can't set value with empty ref");this.getBlockInfo(e).fields[t]===void 0?this.tx.createField(o,"Dynamic",r.ref):this.tx.setField(o,r.ref),this.getBlockInfo(e).fields[t]={modCount:this.globalModCount++,...r},this.fieldsChanged=!0}setBlockField(e,t,r,o,n){this.setBlockFieldObj(e,t,{ref:r,status:o,value:n})}deleteBlockFields(e,...t){let r=!1;const o=this.getBlockInfo(e);for(const n of t){const i=o.fields;n in i&&(this.tx.removeField(g.field(this.rid,H(e,n))),delete i[n],this.fieldsChanged=!0,r=!0)}return r}updateLastModified(){this.lastModified=Date.now(),this.lastModifiedChanged=!0}resetStagingRefreshTimestamp(){this.renderingState.stagingRefreshTimestamp=Date.now(),this.renderingStateChanged=!0}resetStaging(e){var r,o,n;const t=this.getBlockInfo(e).fields;((r=t.stagingOutput)==null?void 0:r.status)==="Ready"&&((o=t.stagingCtx)==null?void 0:o.status)==="Ready"&&((n=t.stagingUiCtx)==null?void 0:n.status)==="Ready"&&(this.setBlockFieldObj(e,"stagingOutputPrevious",t.stagingOutput),this.setBlockFieldObj(e,"stagingCtxPrevious",t.stagingCtx),this.setBlockFieldObj(e,"stagingUiCtxPrevious",t.stagingUiCtx)),this.deleteBlockFields(e,"stagingOutput","stagingCtx","stagingUiCtx")&&this.resetStagingRefreshTimestamp()}resetProduction(e){var r,o,n;const t=this.getBlockInfo(e).fields;((r=t.prodOutput)==null?void 0:r.status)==="Ready"&&((o=t.prodCtx)==null?void 0:o.status)==="Ready"&&((n=t.prodUiCtx)==null?void 0:n.status)==="Ready"&&(this.setBlockFieldObj(e,"prodOutputPrevious",t.prodOutput),this.setBlockFieldObj(e,"prodCtxPrevious",t.prodCtx),this.setBlockFieldObj(e,"prodUiCtxPrevious",t.prodUiCtx)),this.deleteBlockFields(e,"prodOutput","prodCtx","prodUiCtx","prodArgs")}resetOrLimboProduction(e){var r,o;const t=this.getBlockInfo(e).fields;return((r=t.prodOutput)==null?void 0:r.status)==="Ready"&&((o=t.prodCtx)==null?void 0:o.status)==="Ready"?this.blocksInLimbo.has(e)?!1:(this.blocksInLimbo.add(e),this.renderingStateChanged=!0,this.deleteBlockFields(e,"prodOutputPrevious","prodCtxPrevious","prodUiCtxPrevious"),!0):this.deleteBlockFields(e,"prodOutput","prodCtx","prodUiCtx","prodArgs")}setArgs(e){const t=[];for(const{blockId:r,args:o}of e){const n=this.getBlockInfo(r);JSON.parse(o);const i=Buffer.from(o);if(Buffer.compare(n.fields.currentArgs.value,i)===0)continue;const c=this.tx.createValue(g.Pl.JsonObject,i);this.setBlockField(r,"currentArgs",c,"Ready",i),this.blocksWithChangedInputs.add(r),t.push(r)}this.getStagingGraph().traverse("downstream",t,({id:r})=>this.resetStaging(r)),t.length>0&&this.updateLastModified()}setUiState(e,t){if(this.blockInfos.get(e)===void 0)throw new Error("no such block");this.blockFrontendStates.get(e)!==t&&(t===void 0?this.blockFrontendStates.delete(e):this.blockFrontendStates.set(e,t),this.changedBlockFrontendStates.add(e),this.blocksWithChangedInputs.add(e),this.updateLastModified())}setBlockSettings(e,t){this.setBlockFieldObj(e,"blockSettings",this.createJsonFieldValue(t)),this.updateLastModified()}createProdCtx(e){const t=[];return e.forEach(r=>{var n;const o=this.getBlockInfo(r);if(((n=o.fields.prodCtx)==null?void 0:n.ref)===void 0)throw new Error("One of the upstreams staging is not rendered.");t.push(g.Pl.unwrapHolder(this.tx,o.fields.prodCtx.ref))}),ar(this.tx,t)}createStagingCtx(e){const t=[];return e.forEach(r=>{var n,i;const o=this.getBlockInfo(r);if(((n=o.fields.stagingCtx)==null?void 0:n.ref)===void 0)throw new Error("One of the upstreams staging is not rendered.");t.push(g.Pl.unwrapHolder(this.tx,o.fields.stagingCtx.ref)),((i=o.fields.prodCtx)==null?void 0:i.ref)!==void 0&&t.push(g.Pl.unwrapHolder(this.tx,o.fields.prodCtx.ref))}),ar(this.tx,t)}exportCtx(e){return Vo(this.tx,g.Pl.unwrapHolder(this.tx,this.ctxExportTplHolder),e)}renderStagingFor(e){this.resetStaging(e);const t=this.getBlockInfo(e),r=this.createStagingCtx(this.getStagingGraph().nodes.get(e).upstream);if(this.getBlock(e).renderingMode!=="Heavy")throw new Error("not supported yet");const o=t.getTemplate(this.tx),n=ir(this.tx,o,{args:t.fields.currentArgs.ref,blockId:this.tx.createValue(g.Pl.JsonString,JSON.stringify(e)),isProduction:this.tx.createValue(g.Pl.JsonBool,JSON.stringify(!1)),context:r});this.setBlockField(e,"stagingCtx",g.Pl.wrapInEphHolder(this.tx,n.context),"NotReady"),this.setBlockField(e,"stagingUiCtx",this.exportCtx(n.context),"NotReady"),this.setBlockField(e,"stagingOutput",n.result,"NotReady")}renderProductionFor(e){this.resetProduction(e);const t=this.getBlockInfo(e),r=this.createProdCtx(this.getPendingProductionGraph().nodes.get(e).upstream);if(this.getBlock(e).renderingMode==="Light")throw new Error("Can't render production for light block.");const o=t.getTemplate(this.tx),n=ir(this.tx,o,{args:t.fields.currentArgs.ref,blockId:this.tx.createValue(g.Pl.JsonString,JSON.stringify(e)),isProduction:this.tx.createValue(g.Pl.JsonBool,JSON.stringify(!0)),context:r});this.setBlockField(e,"prodCtx",g.Pl.wrapInEphHolder(this.tx,n.context),"NotReady"),this.setBlockField(e,"prodUiCtx",this.exportCtx(n.context),"NotReady"),this.setBlockField(e,"prodOutput",n.result,"NotReady"),this.setBlockFieldObj(e,"prodArgs",t.fields.currentArgs),this.blocksInLimbo.delete(e)&&(this.renderingStateChanged=!0)}updateStructure(e,t=xo){const r=this.getStagingGraph(),o=this.getActualProductionGraph(),n=Rt(e),i=pr(r,n);for(const l of i.onlyInA){const{fields:u}=this.getBlockInfo(l);this.deleteBlockFields(l,...Object.keys(u)),this.blockInfos.delete(l),this.blocksInLimbo.delete(l)&&(this.renderingStateChanged=!0),this.blockFrontendStates.delete(l)&&this.changedBlockFrontendStates.add(l)}for(const l of i.onlyInB){const u=t(l),d=new fr(l,{},A.extractConfig(u.blockPack.config),u.blockPack.source);this.blockInfos.set(l,d);const p=dr(this.tx,u.blockPack);this.setBlockField(l,"blockPack",g.Pl.wrapInHolder(this.tx,p),"NotReady"),this.setBlockFieldObj(l,"blockSettings",this.createJsonFieldValue(Y.InitialBlockSettings)),this.setBlockFieldObj(l,"currentArgs",this.createJsonFieldValueByContent(u.args)),u.uiState&&(this.blockFrontendStates.set(l,u.uiState),this.changedBlockFrontendStates.add(l)),d.check()}for(const l of i.different)this.resetStaging(l);const c=Ye(e,l=>this.getProductionGraphBlockInfo(l,!0)),a=pr(o,c);o.traverse("downstream",[...a.different],l=>{this.resetOrLimboProduction(l.id)}),(i.onlyInB.size>0||i.onlyInA.size>0||i.different.size>0)&&this.resetStagingRefreshTimestamp(),this.struct=e,this.structureChanged=!0,this.stagingGraph=void 0,this.pendingProductionGraph=void 0,this.actualProductionGraph=void 0,this.updateLastModified()}addBlock(e,t,r){const o=this.structure;if(r===void 0)o.groups[o.groups.length-1].blocks.push(e);else{let n=!1;for(const i of o.groups){const c=i.blocks.findIndex(a=>a.id===r);if(!(c<0)){i.blocks.splice(c,0,e),n=!0;break}}if(!n)throw new Error(`Can't find element with id: ${r}`)}this.updateStructure(o,n=>{if(n!==e.id)throw new Error("Unexpected");return t})}deleteBlock(e){const t=this.structure;let r=!1;for(const o of t.groups){const n=o.blocks.findIndex(i=>i.id===e);if(!(n<0)){o.blocks.splice(n,1),r=!0;break}}if(!r)throw new Error(`Can't find element with id: ${e}`);this.updateStructure(t)}migrateBlockPack(e,t,r){const o=this.getBlockInfo(e);this.setBlockField(e,"blockPack",g.Pl.wrapInHolder(this.tx,dr(this.tx,t)),"NotReady"),r!==void 0?(this.setArgs([{blockId:e,args:r.args}]),this.setUiState(e,r.uiState)):this.getStagingGraph().traverse("downstream",[e],({id:n})=>this.resetStaging(n)),o.productionRendered&&this.getActualProductionGraph().traverse("downstream",[e],({id:n})=>this.resetOrLimboProduction(n)),this.updateLastModified()}renderProduction(e,t=!1){const r=new Set(e),o=this.getPendingProductionGraph();if(t)o.traverse("upstream",e,c=>{r.add(c.id)});else for(const c of r){const a=o.nodes.get(c);if(a===void 0)throw new Error(`Can't find block with id: ${c}`);for(const l of a.upstream)if(!r.has(l))throw new Error("Can't render blocks not including all upstreams.")}const n=new Set;for(const c of ae(this.structure)){if(!r.has(c.id))continue;let a=this.getBlockInfo(c.id).requireProductionRendering||this.blocksInLimbo.has(c.id);if(!a){for(const l of o.nodes.get(c.id).upstream)if(n.has(l)){a=!0;break}}a&&(this.renderProductionFor(c.id),n.add(c.id))}const i=[...n];return o.traverse("downstream",i,c=>{n.has(c.id)||this.resetOrLimboProduction(c.id)}),this.getStagingGraph().traverse("downstream",i,({id:c})=>{i[0]!==c&&this.resetStaging(c)}),n.size>0&&this.updateLastModified(),n}stopProduction(...e){var i,c;const t=this.getActualProductionGraph(),r=new Mr(e),o=new Set(e),n=[];for(;!r.isEmpty();){const a=r.shift(),l=this.getBlockInfo(a).fields;if(!(((i=l.prodOutput)==null?void 0:i.status)==="Ready"&&((c=l.prodCtx)==null?void 0:c.status)==="Ready")&&this.deleteBlockFields(a,"prodOutput","prodCtx","prodUiCtx","prodArgs")){n.push(a);for(const u of t.traverseIdsExcludingRoots("downstream",a))o.has(u)||(r.push(u),o.add(u))}}for(const a of t.traverseIdsExcludingRoots("downstream",...n))this.resetOrLimboProduction(a)}traverseWithStagingLag(e){const t=new Map;this.getStagingGraph().nodes.forEach(o=>{let i=this.getBlockInfo(o.id).stagingRendered?0:1;o.upstream.forEach(c=>{const a=t.get(c);a!==0&&(i=Math.max(a+1,i))}),e(o.id,i),t.set(o.id,i)})}refreshStagings(e){const t=Date.now()-this.renderingState.stagingRefreshTimestamp,r=e===void 0?void 0:1+Math.max(0,t*e/1e3);let o=0;this.traverseWithStagingLag((n,i)=>{i!==0&&(r===void 0||i<=r)&&(this.renderStagingFor(n),o++)}),o>0&&this.resetStagingRefreshTimestamp()}setMeta(e){this.meta=e,this.metaChanged=!0,this.updateLastModified()}doRefresh(e){this.refreshStagings(e),this.blockInfos.forEach(t=>{var r,o,n,i;((r=t.fields.prodCtx)==null?void 0:r.status)==="Ready"&&((o=t.fields.prodOutput)==null?void 0:o.status)==="Ready"&&this.deleteBlockFields(t.id,"prodOutputPrevious","prodCtxPrevious","prodUiCtxPrevious"),((n=t.fields.stagingCtx)==null?void 0:n.status)==="Ready"&&((i=t.fields.stagingOutput)==null?void 0:i.status)==="Ready"&&this.deleteBlockFields(t.id,"stagingOutputPrevious","stagingCtxPrevious","stagingUiCtxPrevious")})}assignAuthorMarkers(){const e=this.author?JSON.stringify(this.author):void 0;for(const t of this.blocksWithChangedInputs)e===void 0?this.tx.deleteKValue(this.rid,St(t)):this.tx.setKValue(this.rid,St(t),e);(this.metaChanged||this.structureChanged)&&(e===void 0?this.tx.deleteKValue(this.rid,kt):this.tx.setKValue(this.rid,kt,e))}save(){if(this.wasModified){this.lastModifiedChanged&&this.tx.setKValue(this.rid,Fe,JSON.stringify(this.lastModified)),this.structureChanged&&this.tx.setKValue(this.rid,ge,JSON.stringify(this.struct)),this.renderingStateChanged&&this.tx.setKValue(this.rid,Ze,JSON.stringify({...this.renderingState,blocksInLimbo:[...this.blocksInLimbo]})),this.metaChanged&&this.tx.setKValue(this.rid,Ae,JSON.stringify(this.meta));for(const e of this.changedBlockFrontendStates){const t=this.blockFrontendStates.get(e);t===void 0?this.tx.deleteKValue(this.rid,bt(e)):this.tx.setKValue(this.rid,bt(e),t)}this.assignAuthorMarkers()}}static async load(e,t,r,o){const n=t.getResourceData(r,!0),i=t.getKValueJson(r,zr),c=t.getKValueJson(r,Fe),a=t.getKValueJson(r,Ae),l=t.getKValueJson(r,ge),u=t.getKValueJson(r,Ze),d=t.listKeyValuesString(r),p=await n,f=new Map;for(const h of p.fields){const b=lo(h.name);if(b===void 0)continue;let y=f.get(b.blockId);y===void 0&&(y={id:b.blockId,fields:{}},f.set(b.blockId,y)),y.fields[b.fieldName]=g.isNullResourceId(h.value)?{modCount:0}:{modCount:0,ref:h.value}}const k=[];f.forEach(h=>{const b=h.fields;for(const[y,C]of Object.entries(b)){if(C.ref===void 0)continue;if(!g.isResource(C.ref)||g.isResourceRef(C.ref))throw new Error("unexpected behaviour");const T=y;k.push([h,T,C,t.getResourceData(C.ref,T=="blockPack")])}});const[v,j,N,U,{stagingRefreshTimestamp:F,blocksInLimbo:q},V]=await Promise.all([i,c,a,l,u,d]);if(v!==Xr)throw new Error(`Can't act on this project resource because it has a wrong schema version: ${v}`);const B=[];for(const[h,b,y,C]of k){const T=await C;if(y.value=T.data,g.isNotNullResourceId(T.error)?y.status="Error":T.resourceReady||g.isNotNullResourceId(T.originalResourceId)?y.status="Ready":y.status="NotReady",b==="blockPack"){const E=T.fields.find(D=>D.name===g.Pl.HolderRefField);if(E===void 0)throw new Error("Block pack ref field is missing");B.push([h,t.getResourceData(g.ensureResourceIdNotNull(E.value),!1)])}}for(const[h,b]of B){const y=await b,C=S.cachedDeserialize(S.notEmpty(y.data));h.blockConfig=A.extractConfig(C.config),h.blockPack=C.source}const W=await ls(),ee=Pt(W.hash),z=p.fields.find(h=>h.name===ee);let oe;z!==void 0?oe=g.ensureResourceIdNotNull(z.value):(oe=g.Pl.wrapInHolder(t,Ne(t,W.spec)),t.createField(g.field(r,Pt(W.hash)),"Dynamic",oe));const ne={stagingRefreshTimestamp:F},_=new Set(q),X=new Map;for(const h of V){const b=io(h.key);b!==void 0&&X.set(b,h.value)}const w=new Map;f.forEach(({id:h,fields:b,blockConfig:y,blockPack:C})=>w.set(h,new fr(h,b,S.notEmpty(y),S.notEmpty(C))));const m=new Set;for(const h of ae(U)){if(!w.has(h.id))throw new Error(`Inconsistent project structure: no inputs for ${h.id}`);m.add(h.id)}w.forEach(h=>{if(!m.has(h.id))throw new Error(`Inconsistent project structure: no structure entry for ${h.id}`);h.check()});const R=new et(r,t,o,v,j,N,U,ne,_,w,X,oe,e);return R.fixProblemsAndMigrate(),R}}async function Uo(s,e=to){const t=s.createEphemeral(ro);s.lock(t);const r=String(Date.now());s.setKValue(t,zr,JSON.stringify(Xr)),s.setKValue(t,Dt,r),s.setKValue(t,Fe,r),s.setKValue(t,Ae,JSON.stringify(e)),s.setKValue(t,ge,JSON.stringify(Zs)),s.setKValue(t,Ze,JSON.stringify(eo));const o=await ls();return s.createField(g.field(t,Pt(o.hash)),"Dynamic",g.Pl.wrapInHolder(s,Ne(s,o.spec))),t}async function _e(s,e,t,r){return ie(s,e,t,void 0,r)}async function ie(s,e,t,r,o){if(e instanceof g.PlClient)return await e.withWriteTx("ProjectAction",async n=>{const i=await et.load(s,n,t,r),c=await o(i);return i.wasModified&&(i.save(),await n.commit()),c});{const n=await et.load(s,e,t,r),i=await o(n);return n.save(),i}}function*Go(s){switch(s.type){case"Json":return;case"JsonPartitioned":for(const[,e]of Object.entries(s.parts))yield e;return;case"BinaryPartitioned":for(const[,{index:e,values:t}]of Object.entries(s.parts))yield e,yield t;return;default:S.assertNever(s)}}function gr(s,e){return Object.fromEntries(Object.entries(s).map(([t,r])=>[t,e(r,t)]))}function Jo(s,e){switch(s.type){case"Json":return{...s};case"JsonPartitioned":return{...s,parts:gr(s.parts,e)};case"BinaryPartitioned":return{...s,parts:gr(s.parts,t=>({index:e(t.index),values:e(t.values)}))};default:S.assertNever(s)}}const Mo=g.resourceType("PColumnData/JsonPartitioned","1"),_o=g.resourceType("PColumnData/Partitioned/JsonPartitioned","1"),Ko=g.resourceType("PColumnData/BinaryPartitioned","1"),Ho=g.resourceType("PColumnData/Partitioned/BinaryPartitioned","1"),qo=g.resourceType("PColumnData/Json","1");function Wo(s){if(!s.getIsReadyOrError())throw new Error("Data not ready.");const e=s.getDataAsJson();if(e===void 0)throw new Error("unexpected data info structure, no resource data");if(g.resourceTypesEqual(s.resourceType,qo)){const t=e;return{type:"Json",keyLength:t.keyLength,data:t.data}}else if(g.resourceTypesEqual(s.resourceType,Mo)){const t=e,r=Object.fromEntries(s.listInputFields().map(o=>[o,s.traverse({field:o,errorIfFieldNotSet:!0}).resourceInfo]));return{type:"JsonPartitioned",partitionKeyLength:t.partitionKeyLength,parts:r}}else if(g.resourceTypesEqual(s.resourceType,_o)){const t=e,r={};for(const o of s.listInputFields()){const n=s.traverse({field:o,errorIfFieldNotSet:!0}),i=n.listInputFields();if(i===void 0)throw new Error(`no partition keys for super key ${o}`);for(const c of i){const a=JSON.stringify([...JSON.parse(o),...JSON.parse(c)]);r[a]=n.traverse({field:c,errorIfFieldNotSet:!0}).resourceInfo}}return{type:"JsonPartitioned",partitionKeyLength:t.superPartitionKeyLength+t.partitionKeyLength,parts:r}}else if(g.resourceTypesEqual(s.resourceType,Ko)){const t=e,r={};for(const o of s.listInputFields())if(o.endsWith(".index")){const n=o.slice(0,o.length-6);let i=r[n];i===void 0&&(i={},r[n]=i),i.index=s.traverse({field:o,errorIfFieldNotSet:!0}).resourceInfo}else if(o.endsWith(".values")){const n=o.slice(0,o.length-7);let i=r[n];i===void 0&&(i={},r[n]=i),i.values=s.traverse({field:o,errorIfFieldNotSet:!0}).resourceInfo}else throw new Error(`unrecognized part field name: ${o}`);for(const[o,n]of Object.entries(r)){if(n.index===void 0)throw new Error(`no index for part ${o}`);if(n.values===void 0)throw new Error(`no values for part ${o}`)}return{type:"BinaryPartitioned",partitionKeyLength:t.partitionKeyLength,parts:r}}else if(g.resourceTypesEqual(s.resourceType,Ho)){const t=e,r={};for(const o of s.listInputFields()){const n=s.traverse({field:o,errorIfFieldNotSet:!0}),i=n.listInputFields();if(i===void 0)throw new Error(`no partition keys for super key ${o}`);for(const c of i)if(c.endsWith(".index")){const a=c.slice(0,c.length-6),l=JSON.stringify([...JSON.parse(o),...JSON.parse(a)]);let u=r[l];u===void 0&&(u={},r[l]=u),r[l].index=n.traverse({field:c,errorIfFieldNotSet:!0}).resourceInfo}else if(c.endsWith(".values")){const a=c.slice(0,c.length-7),l=JSON.stringify([...JSON.parse(o),...JSON.parse(a)]);let u=r[l];u===void 0&&(u={},r[l]=u),r[l].values=n.traverse({field:c,errorIfFieldNotSet:!0}).resourceInfo}else throw new Error(`unrecognized part field name: ${c}`)}return{type:"BinaryPartitioned",partitionKeyLength:t.superPartitionKeyLength+t.partitionKeyLength,parts:r}}throw new Error(`unsupported resource type: ${g.resourceTypeToString(s.resourceType)}`)}function zo(s,e){const t=s.axesSpec.length,r={};for(const{key:o,val:n}of e){if(o.length!==t)throw new Error(`inline column key length ${o.length} differs from axes count ${t}`);r[JSON.stringify(o)]=n}return{type:"Json",keyLength:t,data:r}}function Xo(s,e){const t=re.createHash("sha256");return t.update(G(s)),t.update(String(g.isNullResourceId(e.originalId)?e.id:e.originalId)),t.digest().toString("hex")}function hr(s,e){return G({__isRef:!0,blockId:s,name:e})}function Yo(s,e){return G({resolvePath:s,name:e})}function us(s,e=!0,t=!1,r=""){var c,a,l;const o=/^(?<name>.*)\.(?<type>spec|data)$/,n=new Map;for(const u of s.listInputFields()){const d=u.match(o);if(!d){if(e)throw new Error(`unexpected field name ${u}`);continue}let p=S.notEmpty((c=d.groups)==null?void 0:c.name);if(!p.startsWith(r)){if(e)throw new Error(`unexpected field name ${u}`);continue}p=p.slice(r.length);const f=S.notEmpty((a=d.groups)==null?void 0:a.type);let k=n.get(p);switch(k===void 0&&(k={},n.set(p,k)),f){case"spec":k.spec=(l=s.traverse({field:u,ignoreError:t,pureFieldErrorToUndefined:t}))==null?void 0:l.getDataAsJson();break;case"data":k.hasData=!0,k.data=()=>s.traverseOrError({field:u,ignoreError:t});break}}const i=s.getInputsLocked();if(i)for(const[,u]of n)u.data===void 0&&(u.hasData=!1);return{locked:i,results:n}}function Qo(s,e=!0,t="",r){if(!s.getIsReadyOrError())throw new Error("resource is not ready");const o=us(s,e,!1,t);Ns(o.locked);const n={};for(const[i,c]of o.results){if(c.spec===void 0)throw new Error(`no spec for key ${i}`);if(c.hasData!==!0||c.data===void 0)throw new Error(`no data for key ${i}`);const a=c.data();if(a===void 0)throw new Error(`no data for key ${i}`);if(!a.ok)throw a.error;n[i]={id:r.length===0?Xo(c.spec,a.value):Yo(r,i),spec:c.spec,data:a.value}}return n}class jt{constructor(e,t){P(this,"allSpecsAvailable");this.ctx=e,this.blocks=t;let r=!0;e:for(const o of t.values())for(const n of[o.prod,o.staging])if(n!==void 0){if(!n.locked){r=!1;break e}for(const i of n.results.values())if(i.spec===void 0){r=!1;break e}}this.allSpecsAvailable=r}getSpecByRef(e,t){var n,i,c,a,l,u;const r=this.blocks.get(e);if(r===void 0)return;let o=(c=(i=(n=r.prod)==null?void 0:n.results)==null?void 0:i.get(t))==null?void 0:c.spec;if(o!==void 0||(o=(u=(l=(a=r.staging)==null?void 0:a.results)==null?void 0:l.get(t))==null?void 0:u.spec,o!==void 0))return o;r.staging===void 0?this.ctx.markUnstable(`staging_not_rendered:${e}`):r.staging.locked?r.prod!==void 0&&!r.prod.locked&&this.ctx.markUnstable(`prod_not_locked:${e}`):this.ctx.markUnstable(`staging_not_locked:${e}`)}getDataOrErrorByRef(e,t){var i,c,a;const r=this.blocks.get(e);if(r===void 0)return;const o=(c=(i=r.prod)==null?void 0:i.results)==null?void 0:c.get(t),n=(a=o==null?void 0:o.data)==null?void 0:a.call(o);if(o!==void 0&&o.spec!==void 0&&n!==void 0)return A.mapValueInVOE(n,l=>({id:hr(e,t),spec:o.spec,data:l}));o!==void 0&&this.ctx.markUnstable(`no_data:${e}:${t}`),r.prod!==void 0&&!r.prod.locked&&this.ctx.markUnstable(`prod_not_locked:${e}`)}getDataByRef(e,t){const r=this.getDataOrErrorByRef(e,t);if(!(r===void 0||!r.ok))return r.value}getData(){const e=this.getDataWithErrors(),t=[];for(const r of e.entries)r.obj.id!==void 0&&r.obj.data.ok&&t.push({ref:r.ref,obj:{id:r.obj.id,spec:r.obj.spec,data:r.obj.data.value}});return{entries:t,isComplete:e.isComplete,instabilityMarker:e.instabilityMarker}}getDataWithErrors(){const e=[];let t=!0,r;const o=i=>{r===void 0&&(r=i),t=!1},n=(i,c,a)=>{if(a.spec!==void 0&&a.hasData===!0&&a.data!==void 0){const l=a.data();l!==void 0?e.push({ref:Me(i,c),obj:{id:l.ok?hr(i,c):void 0,spec:a.spec,data:l}}):o(`no_data:${i}:${c}`)}};for(const[i,c]of this.blocks){const a=new Set;if(c.prod!==void 0){c.prod.locked||o(`prod_not_locked:${i}`);for(const[l,u]of c.prod.results)a.add(l),n(i,l,u)}if(c.staging!==void 0){c.staging.locked||o(`staging_not_locked:${i}`);for(const[l,u]of c.staging.results)a.has(l)||n(i,l,u)}}return{entries:e,isComplete:t,instabilityMarker:r}}getSpecs(){const e=[];let t=!0,r;const o=n=>{r===void 0&&(r=n),t=!1};for(const[n,i]of this.blocks){const c=new Set;if(i.staging!==void 0){i.staging.locked||o(`staging_not_locked:${n}`);for(const[a,l]of i.staging.results)l.spec!==void 0&&(e.push({ref:Me(n,a),obj:l.spec}),c.add(a))}else o(`staging_not_rendered:${n}`);if(i.prod!==void 0){i.prod.locked||o(`prod_not_locked:${n}`);for(const[a,l]of i.prod.results)c.has(a)||l.spec!==void 0&&e.push({ref:Me(n,a),obj:l.spec})}}return{entries:e,isComplete:t,instabilityMarker:r}}calculateOptions(e){const t=[];for(const r of this.blocks.values()){const o=new Set,n=i=>{for(const[c,a]of i.results)o.has(c)||a.spec===void 0||(o.add(c),A.executePSpecPredicate(e,a.spec)&&t.push({label:r.info.label+" / "+c,ref:Me(r.info.id,c),spec:a.spec}))};r.staging!==void 0&&n(r.staging),r.prod!==void 0&&n(r.prod)}return t}static create(e,t,r){const o=e.accessor(t).node(),n=S.notEmpty(o.getKeyValueAsJson(ge)),c=Rt(n).traverseIds("upstream",r),a=new Map;for(const l of ae(n)){if(!c.has(l.id))continue;const u=mr(o.traverse({field:H(l.id,"prodCtx"),ignoreError:!0,pureFieldErrorToUndefined:!0,stableIfNotFound:!0})!==void 0,o.traverseOrError({field:H(l.id,"prodUiCtx"),stableIfNotFound:!0})),d=mr(o.traverse({field:H(l.id,"stagingCtx"),ignoreError:!0,pureFieldErrorToUndefined:!0})!==void 0,o.traverseOrError({field:H(l.id,"stagingUiCtx")}));a.set(l.id,{info:l,prod:u,staging:d})}return new jt(e,a)}}function mr(s,e){if(e===void 0)return s?{locked:!1,results:new Map}:void 0;if(e.ok)return us(e.value,!1,!0)}function Vt(s,e){return{blockId:e,args:n=>S.notEmpty(n.accessor(s).node().traverse({field:H(e,"currentArgs"),errorIfFieldNotSet:!0}).getDataAsString()),activeArgs:n=>{var i;return(i=n.accessor(s).node().traverse({field:H(e,"prodArgs"),stableIfNotFound:!0}))==null?void 0:i.getDataAsString()},uiState:n=>n.accessor(s).node().getKeyValueAsString(bt(e)),blockMeta:n=>{const i=n.accessor(s).node(),c=S.notEmpty(i.getKeyValueAsJson(ge)),a=new Map;for(const l of ae(c))a.set(l.id,l);return a}}}function ds(s,e){return{...Vt(s,e),prod:t=>{var r;return(r=t.accessor(s).node({ignoreError:!0}).traverse({field:H(e,"prodOutput"),stableIfNotFound:!0,ignoreError:!0}))==null?void 0:r.persist()},staging:t=>{var o;const r=(o=t.accessor(s).node({ignoreError:!0}).traverse({field:H(e,"stagingOutput"),ignoreError:!0}))==null?void 0:o.persist();return r===void 0&&t.markUnstable("staging_not_rendered"),r},getResultsPool:t=>jt.create(t,s,e)}}function*te(s,e){switch(yield s,s.type){case"GetFromCtx":case"Immediate":return;case"Isolate":yield*te(s.cfg);return;case"MakeObject":for(const[,t]of Object.entries(s.template))yield*te(t);return;case"MakeArray":for(const t of s.template)yield*te(t);return;case"GetJsonField":case"GetResourceField":yield*te(s.source),yield*te(s.field);return;case"MapRecordValues":case"MapArrayValues":case"MapResourceFields":yield*te(s.source),yield*te(s.mapping);return;case"Flatten":case"GetResourceValueAsJson":case"GetBlobContent":case"ExtractArchiveAndGetURL":case"GetBlobContentAsString":case"GetBlobContentAsJson":case"GetDownloadedBlobContent":case"GetOnDemandBlobContent":case"GetImportProgress":case"GetLastLogs":case"GetProgressLog":case"GetProgressLogWithInfo":case"GetLogHandle":yield*te(s.source);return;case"IsEmpty":yield*te(s.arg);return;case"Not":yield*te(s.operand);return;case"And":case"Or":yield*te(s.operand1),yield*te(s.operand2);return;default:S.assertNever(s)}}function Zo(s,e){const t={};for(const[r,o]of Object.entries(s))t[r]=e(o);return t}function Ee(s,e){return s===void 0?void 0:e(s)}function en(s){switch(s.type){case"GetImportProgress":return!0;default:return!1}}function tn(s){for(const e of te(s))if(en(e))return!0;return!1}function ot(s){return{type:"ReturnResult",result:s}}function $(s){return()=>ot(s)}const rn=s=>{const e={};for(const[t,r]of Object.entries(s))e[t]=r;return $(e)},sn=s=>{const e=s.source;if(e===void 0)return $(void 0);const t=[];for(const r of e)r instanceof Array?t.push(...r):t.push(r);return $(t)},on=s=>{const e=s.source,t=s.field;return e===void 0||t===void 0?$(void 0):({cCtx:r})=>{var o;return ot((o=r.accessor(e).node().traverse(t))==null?void 0:o.persist())}};function ps(s,e){const t={},r=s.length;for(let o=0;o<r;o++)t[String(o)]=e(s[o]);return t}function nn(s,e){return t=>{const r=t.source;return r===void 0?$(void 0):()=>({type:"ScheduleSubroutine",subroutine:fs(r.length),args:ps(r,o=>I({...s,[e.itVar]:o},e.mapping))})}}function fs(s){return e=>{const t=[];for(let r=0;r<s;r++)t.push(e[String(r)]);return $(t)}}function an(s,e){return t=>{const r=t.source;if(r===void 0)return $(void 0);const o={};for(const[n,i]of Object.entries(r)){const c={...s,[e.itVar]:i};o[n]=I(c,e.mapping)}return()=>({type:"ScheduleSubroutine",subroutine:cn,args:o})}}const cn=s=>$(s),ln=s=>{const e=s.arg;return $(e===void 0?void 0:e.length===0)},un=s=>{const e=s.operand;return $(e===void 0?void 0:!e)},dn=s=>{const e=s.operand1,t=s.operand2;return $(e===void 0||t===void 0?void 0:e&&t)},pn=s=>{const e=s.operand1,t=s.operand2;return $(e===void 0||t===void 0?void 0:e||t)},fn=s=>{const e=s.source;return e===void 0?$(void 0):({cCtx:t})=>{var r;return ot((r=t.accessor(e).node())==null?void 0:r.getDataAsJson())}},gn=s=>{const e=s.source,t=s.field;return $(e===void 0||t===void 0?void 0:e[t])};function hn(s,e){return t=>{const r=t.source;return r===void 0?$(void 0):({cCtx:o})=>{const n=o.accessor(r).node(),i={};for(const c of n.listInputFields()){const a=n.traverse(c);if(a===void 0)i[c]=$(void 0);else{const l={...s,[e.itVar]:a.persist()};i[c]=I(l,e.mapping)}}return{type:"ScheduleSubroutine",subroutine:mn,args:i}}}}const mn=s=>$(s),yn=s=>{const e=s.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:x.Computable.make(r=>t.blobDriver.getDownloadedBlob(r.accessor(e).node().resourceInfo),{postprocessValue:async r=>{if(r!==void 0)return await t.blobDriver.getContent(r.handle)}})})},vn=s=>{const e=s.source;return e===void 0?$(void 0):({cCtx:t,drivers:r})=>{const o=t.accessor(e).node().resourceInfo;return{type:"ScheduleComputable",computable:x.Computable.make(()=>r.blobDriver.getDownloadedBlob(o),{postprocessValue:async n=>n===void 0?void 0:(await r.blobDriver.getContent(n.handle)).toString()})}}},wn=s=>{const e=s.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:x.Computable.make(r=>t.blobDriver.getDownloadedBlob(r.accessor(e).node().resourceInfo),{postprocessValue:async r=>{if(r==null)return;const o=await t.blobDriver.getContent(r.handle);if(o!=null)return JSON.parse(Buffer.from(o).toString())}})})},bn=s=>{const e=s.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.blobDriver.getDownloadedBlob(e)})},Sn=s=>{const e=s.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.blobDriver.getOnDemandBlob(e)})},kn=s=>e=>{const t=e.source;return t===void 0?$(void 0):({drivers:r})=>({type:"ScheduleComputable",computable:r.blobToURLDriver.extractArchiveAndGetURL(t,s)})},Pn=s=>{const e=s.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.uploadDriver.getProgressId(e)})},Cn=s=>e=>{const t=e.source;return t===void 0?$(void 0):({drivers:r})=>({type:"ScheduleComputable",computable:r.logDriver.getLastLogs(t,s)})},Rn=s=>e=>{const t=e.source;return t===void 0?$(void 0):({drivers:r})=>({type:"ScheduleComputable",computable:r.logDriver.getProgressLog(t,s)})},En=s=>e=>{const t=e.source;return t===void 0?$(void 0):({drivers:r})=>({type:"ScheduleComputable",computable:r.logDriver.getProgressLogWithInfo(t,s)})},On=s=>{const e=s.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.logDriver.getLogHandle(e)})};function I(s,e){switch(e.type){case"GetFromCtx":{const t=s[e.variable];return typeof t=="function"?r=>ot(t(r.cCtx)):$(t)}case"Isolate":return({drivers:t})=>({type:"ScheduleComputable",computable:ms(t,s,e.cfg)});case"Immediate":return $(e.value);case"GetJsonField":return()=>({type:"ScheduleSubroutine",subroutine:gn,args:{source:I(s,e.source),field:I(s,e.field)}});case"MapArrayValues":return()=>({type:"ScheduleSubroutine",subroutine:nn(s,e),args:{source:I(s,e.source)}});case"MapRecordValues":return()=>({type:"ScheduleSubroutine",subroutine:an(s,e),args:{source:I(s,e.source)}});case"MakeObject":return()=>({type:"ScheduleSubroutine",subroutine:rn,args:Zo(e.template,t=>I(s,t))});case"MakeArray":return()=>({type:"ScheduleSubroutine",subroutine:fs(e.template.length),args:ps(e.template,t=>I(s,t))});case"Flatten":return()=>({type:"ScheduleSubroutine",subroutine:sn,args:{source:I(s,e.source)}});case"IsEmpty":return()=>({type:"ScheduleSubroutine",subroutine:ln,args:{arg:I(s,e.arg)}});case"Not":return()=>({type:"ScheduleSubroutine",subroutine:un,args:{operand:I(s,e.operand)}});case"And":return()=>({type:"ScheduleSubroutine",subroutine:dn,args:{operand1:I(s,e.operand1),operand2:I(s,e.operand2)}});case"Or":return()=>({type:"ScheduleSubroutine",subroutine:pn,args:{operand1:I(s,e.operand1),operand2:I(s,e.operand2)}});case"MapResourceFields":return()=>({type:"ScheduleSubroutine",subroutine:hn(s,e),args:{source:I(s,e.source)}});case"GetResourceField":return()=>({type:"ScheduleSubroutine",subroutine:on,args:{source:I(s,e.source),field:I(s,e.field)}});case"GetResourceValueAsJson":return()=>({type:"ScheduleSubroutine",subroutine:fn,args:{source:I(s,e.source)}});case"GetBlobContent":return()=>({type:"ScheduleSubroutine",subroutine:yn,args:{source:I(s,e.source)}});case"GetBlobContentAsString":return()=>({type:"ScheduleSubroutine",subroutine:vn,args:{source:I(s,e.source)}});case"GetBlobContentAsJson":return()=>({type:"ScheduleSubroutine",subroutine:wn,args:{source:I(s,e.source)}});case"GetDownloadedBlobContent":return()=>({type:"ScheduleSubroutine",subroutine:bn,args:{source:I(s,e.source)}});case"GetOnDemandBlobContent":return()=>({type:"ScheduleSubroutine",subroutine:Sn,args:{source:I(s,e.source)}});case"ExtractArchiveAndGetURL":return()=>({type:"ScheduleSubroutine",subroutine:kn(e.format),args:{source:I(s,e.source)}});case"GetImportProgress":return()=>({type:"ScheduleSubroutine",subroutine:Pn,args:{source:I(s,e.source)}});case"GetLastLogs":return()=>({type:"ScheduleSubroutine",subroutine:Cn(e.lines),args:{source:I(s,e.source)}});case"GetProgressLog":return()=>({type:"ScheduleSubroutine",subroutine:Rn(e.patternToSearch),args:{source:I(s,e.source)}});case"GetProgressLogWithInfo":return()=>({type:"ScheduleSubroutine",subroutine:En(e.patternToSearch),args:{source:I(s,e.source)}});case"GetLogHandle":return()=>({type:"ScheduleSubroutine",subroutine:On,args:{source:I(s,e.source)}});default:return S.assertNever(e)}}const Tn=["$prod","$staging"];function $n(s){return{$blockId:s.blockId,$args:e=>JSON.parse(s.args(e)),$ui:e=>{const t=s.uiState(e);return t!==void 0?JSON.parse(t):void 0},$prod:s.prod,$staging:s.staging}}const gs=Symbol(),hs="return",In={op:gs,arg:hs};function Fn(s){return s.op==gs&&s.arg==hs}function An(){return{pendingSubroutines:new Map}}function yr(s,e,t,r){const o=new Mr(t),n=(c,a)=>{if(Fn(c))return e.result=a,!1;const l=S.notEmpty(e.pendingSubroutines.get(c.op));if(c.arg in l.args)throw new Error("argument already set");return l.args[c.arg]=a,l.argCounter--,l.argCounter===0&&(e.pendingSubroutines.delete(c.op),o.push({destination:l.destination,operation:l.subroutine(l.args)})),!0},i=[];e:for(;o.length>0;){const c=o.shift(),a=c.operation(s);switch(a.type){case"ReturnResult":if(!n(c.destination,a.result))break e;break;case"ScheduleSubroutine":{const l=Symbol(),u=Object.entries(a.args),d=u.length;if(d===0)o.push({destination:c.destination,operation:a.subroutine({})});else{for(const[p,f]of u)o.push({destination:{op:l,arg:p},operation:f});e.pendingSubroutines.set(l,{argCounter:d,args:{},subroutine:a.subroutine,destination:c.destination})}}break;case"ScheduleComputable":if(!r)throw new Error("asynchronous operations are forbidden in this context");i.push({destination:c.destination,computable:a.computable});break;default:S.assertNever(a)}}return i}function Dn(s,e,t,r={}){return ms(s,$n(e),t,r)}function ms(s,e,t,r={}){const o=`${e.blockId}#`+G({ctx:Object.fromEntries(Object.entries(e).filter(([n])=>Tn.indexOf(n)===-1)),cfg:t});return x.Computable.makeRaw(n=>{const i={drivers:s,cCtx:n},c=An();return{ir:yr(i,c,[{destination:In,operation:I(e,t)}],!0),postprocessValue(l){const u=[];for(const k of l)u.push({destination:k.destination,operation:$(k.computable)});const d={drivers:s,get cCtx(){throw new Error("asynchronous operations are forbidden in this context")}},p=new Map;for(const[k,v]of c.pendingSubroutines)p.set(k,{...v,args:{...v.args}});const f={result:c.result,pendingSubroutines:p};if(yr(d,f,u,!1),!("result"in f))throw new Error("illegal cfg rendering stack state, no result");return f.result}}},{...r,key:o})}function vr(s){return s!==void 0?Buffer.from(s).toString("base64"):void 0}class Ln{constructor(e,t,r,o){P(this,"computablesToResolve",{});P(this,"computableCtx");P(this,"accessors",new Map);P(this,"meta");P(this,"_resultPool");this.parent=e,this.blockCtx=t,this.env=r,this.computableCtx=o,this.meta=t.blockMeta(o)}resetComputableCtx(){this.computableCtx=void 0,this.accessors.clear()}getAccessorHandleByName(e){if(this.computableCtx===void 0)throw new Error("Accessors can't be used in this context");const t=(r,o)=>{if(!this.accessors.has(r)){const n=this.blockCtx[o];if(n===void 0)throw new Error("Staging context not available");const i=n(this.computableCtx);i?this.accessors.set(r,this.computableCtx.accessor(i).node({ignoreError:!0})):this.accessors.set(r,void 0)}return this.accessors.get(r)?r:void 0};if(e==="staging")return t("staging","staging");if(e==="main")return t("main","prod")}resolveWithCommon(e,t,...r){return this.wrapAccessor(this.getAccessor(e).traverseWithCommon(t,...r))}getResourceType(e){return this.getAccessor(e).resourceType}getInputsLocked(e){return this.getAccessor(e).getInputsLocked()}getOutputsLocked(e){return this.getAccessor(e).getOutputsLocked()}getIsReadyOrError(e){return this.getAccessor(e).getIsReadyOrError()}getIsFinal(e){return this.getAccessor(e).getIsFinal()}getError(e){return this.wrapAccessor(this.getAccessor(e).getError())}listInputFields(e){return this.getAccessor(e).listInputFields()}listOutputFields(e){return this.getAccessor(e).listOutputFields()}listDynamicFields(e){return this.getAccessor(e).listDynamicFields()}getKeyValueBase64(e,t){return vr(this.getAccessor(e).getKeyValue(t))}getKeyValueAsString(e,t){return this.getAccessor(e).getKeyValueAsString(t)}getDataBase64(e){return vr(this.getAccessor(e).getData())}getDataAsString(e){return this.getAccessor(e).getDataAsString()}parsePObjectCollection(e,t,r,...o){const n=this.getAccessor(e);if(!n.getIsReadyOrError())return;const i=Qo(n,t,r,o),c={};for(const[a,l]of Object.entries(i))c[a]=A.mapPObjectData(l,u=>this.wrapAccessor(u));return c}registerComputable(e,t){const r=`${e}_${re.randomUUID()}`;return this.computablesToResolve[r]=t,r}getBlobContentAsString(e){const t=this.getAccessor(e).resourceInfo;return this.registerComputable("getBlobContentAsString",x.Computable.make(r=>this.env.driverKit.blobDriver.getDownloadedBlob(t,r),{postprocessValue:async r=>{if(r!==void 0)return Buffer.from(await this.env.driverKit.blobDriver.getContent(r.handle)).toString("utf-8")}}))}getBlobContentAsBase64(e){const t=this.getAccessor(e).resourceInfo;return this.registerComputable("getBlobContentAsBase64",x.Computable.make(r=>this.env.driverKit.blobDriver.getDownloadedBlob(t,r),{postprocessValue:async r=>{if(r!==void 0)return Buffer.from(await this.env.driverKit.blobDriver.getContent(r.handle)).toString("base64")}}))}getDownloadedBlobContentHandle(e){const t=this.getAccessor(e).resourceInfo;return this.registerComputable("getDownloadedBlobContentHandle",this.env.driverKit.blobDriver.getDownloadedBlob(t))}getOnDemandBlobContentHandle(e){const t=this.getAccessor(e).persist();return this.registerComputable("getOnDemandBlobContentHandle",this.env.driverKit.blobDriver.getOnDemandBlob(t))}extractArchiveAndGetURL(e,t){const r=this.getAccessor(e).persist();return this.registerComputable("extractArchiveAndGetURL",this.env.driverKit.blobToURLDriver.extractArchiveAndGetURL(r,t))}getImportProgress(e){const t=this.getAccessor(e).persist();return this.registerComputable("getImportProgress",this.env.driverKit.uploadDriver.getProgressId(t))}getLastLogs(e,t){const r=this.getAccessor(e).persist();return this.registerComputable("getLastLogs",this.env.driverKit.logDriver.getLastLogs(r,t))}getProgressLog(e,t){const r=this.getAccessor(e).persist();return this.registerComputable("getProgressLog",this.env.driverKit.logDriver.getProgressLog(r,t))}getProgressLogWithInfo(e,t){const r=this.getAccessor(e).persist();return this.registerComputable("getProgressLogWithInfo",this.env.driverKit.logDriver.getProgressLogWithInfo(r,t))}getLogHandle(e){const t=this.getAccessor(e).persist();return this.registerComputable("getLogHandle",this.env.driverKit.logDriver.getLogHandle(t))}getBlockLabel(e){const t=this.meta.get(e);if(t===void 0)throw new Error(`Block ${e} not found.`);return t.label}get resultPool(){if(this._resultPool===void 0){if(this.computableCtx===void 0)throw new Error("can't use result pool in this context (most porbably called from the future mapper)");this._resultPool=S.notEmpty(this.blockCtx.getResultsPool,"getResultsPool")(this.computableCtx)}return this._resultPool}calculateOptions(e){return this.resultPool.calculateOptions(e)}getDataFromResultPool(){const e=this.resultPool.getData();return e.instabilityMarker!==void 0&&this.computableCtx.markUnstable(`incomplete_result_pool:${e.instabilityMarker}`),{isComplete:e.isComplete,entries:e.entries.map(t=>({ref:t.ref,obj:A.mapPObjectData(t.obj,r=>this.wrapAccessor(r))}))}}getDataWithErrorsFromResultPool(){const e=this.resultPool.getDataWithErrors();return e.instabilityMarker!==void 0&&this.computableCtx.markUnstable(`incomplete_result_pool:${e.instabilityMarker}`),{isComplete:e.isComplete,entries:e.entries.map(t=>({ref:t.ref,obj:{id:t.obj.id,spec:t.obj.spec,data:A.mapValueInVOE(t.obj.data,r=>this.wrapAccessor(r))}}))}}getSpecsFromResultPool(){const e=this.resultPool.getSpecs();return e.instabilityMarker!==void 0&&this.computableCtx.markUnstable(`specs_from_pool_incomplete:${e.instabilityMarker}`),e}getSpecFromResultPoolByRef(e,t){return this.resultPool.getSpecByRef(e,t)}getDataFromResultPoolByRef(e,t){return A.mapPObjectData(this.resultPool.getDataByRef(e,t),r=>this.wrapAccessor(r))}createPFrame(e){if(this.computableCtx===void 0)throw new Error("can't instantiate PFrames from this context (most porbably called from the future mapper)");return this.env.driverKit.pFrameDriver.createPFrame(e.map(t=>A.mapPObjectData(t,r=>this.transformInputPData(r))),this.computableCtx)}createPTable(e){if(this.computableCtx===void 0)throw new Error("can't instantiate PTable from this context (most porbably called from the future mapper)");return this.env.driverKit.pFrameDriver.createPTable(A.mapPTableDef(e,t=>A.mapPObjectData(t,r=>this.transformInputPData(r))),this.computableCtx)}transformInputPData(e){return typeof e=="string"?this.getAccessor(e):A.isDataInfo(e)?A.mapDataInfo(e,t=>this.getAccessor(t)):e}getCurrentUnstableMarker(){var e;return(e=this.computableCtx)==null?void 0:e.unstableMarker}getAccessor(e){const t=this.accessors.get(e);if(t===void 0)throw new Error("No such accessor");return t}wrapAccessor(e){if(e!==void 0){const t=re.randomUUID();return this.accessors.set(t,e),t}}injectCtx(e){const t=this.parent,r=t.vm;fe.Scope.withScope(o=>{const n=this.blockCtx.args(this.computableCtx),i=this.blockCtx.activeArgs(this.computableCtx),c=this.blockCtx.uiState(this.computableCtx);r.setProp(e,"args",o.manage(r.newString(n))),c!==void 0&&r.setProp(e,"uiState",o.manage(r.newString(c))),i!==void 0&&r.setProp(e,"activeArgs",o.manage(r.newString(i)));const a=(l,u)=>{const d=(...p)=>{try{return u(...p)}catch(f){const k=t.errorRepo.setAndRecreateForQuickJS(f);throw r.newError(k)}};r.newFunction(l,d).consume(p=>r.setProp(e,l,p)),r.newFunction(l,u).consume(p=>r.setProp(e,l+"__internal__",p))};a("getAccessorHandleByName",l=>t.exportSingleValue(this.getAccessorHandleByName(r.getString(l)),void 0)),a("resolveWithCommon",(l,u,...d)=>t.exportSingleValue(this.resolveWithCommon(r.getString(l),t.importObjectViaJson(u),...d.map(p=>t.importObjectViaJson(p))),void 0)),a("getResourceType",l=>t.exportObjectViaJson(this.getResourceType(r.getString(l)),void 0)),a("getInputsLocked",l=>t.exportSingleValue(this.getInputsLocked(r.getString(l)),void 0)),a("getOutputsLocked",l=>t.exportSingleValue(this.getOutputsLocked(r.getString(l)),void 0)),a("getIsReadyOrError",l=>t.exportSingleValue(this.getIsReadyOrError(r.getString(l)),void 0)),a("getIsFinal",l=>t.exportSingleValue(this.getIsFinal(r.getString(l)),void 0)),a("getError",l=>t.exportSingleValue(this.getError(r.getString(l)),void 0)),a("listInputFields",l=>t.exportObjectViaJson(this.listInputFields(r.getString(l)),void 0)),a("listOutputFields",l=>t.exportObjectViaJson(this.listInputFields(r.getString(l)),void 0)),a("listDynamicFields",l=>t.exportObjectViaJson(this.listInputFields(r.getString(l)),void 0)),a("getKeyValueBase64",(l,u)=>t.exportSingleValue(this.getKeyValueBase64(r.getString(l),r.getString(u)),void 0)),a("getKeyValueAsString",(l,u)=>t.exportSingleValue(this.getKeyValueAsString(r.getString(l),r.getString(u)),void 0)),a("getDataBase64",l=>t.exportSingleValue(this.getDataBase64(r.getString(l)),void 0)),a("getDataAsString",l=>t.exportSingleValue(this.getDataAsString(r.getString(l)),void 0)),a("parsePObjectCollection",(l,u,d,...p)=>t.exportObjectUniversal(this.parsePObjectCollection(r.getString(l),r.dump(u),r.getString(d),...p.map(f=>r.getString(f))),void 0)),a("getBlobContentAsBase64",l=>t.exportSingleValue(this.getBlobContentAsBase64(r.getString(l)),void 0)),a("getBlobContentAsString",l=>t.exportSingleValue(this.getBlobContentAsString(r.getString(l)),void 0)),a("getDownloadedBlobContentHandle",l=>t.exportSingleValue(this.getDownloadedBlobContentHandle(r.getString(l)),void 0)),a("getOnDemandBlobContentHandle",l=>t.exportSingleValue(this.getOnDemandBlobContentHandle(r.getString(l)),void 0)),a("extractArchiveAndGetURL",(l,u)=>t.exportSingleValue(this.extractArchiveAndGetURL(r.getString(l),r.getString(u)),void 0)),a("getImportProgress",l=>t.exportSingleValue(this.getImportProgress(r.getString(l)),void 0)),a("getLastLogs",(l,u)=>t.exportSingleValue(this.getLastLogs(r.getString(l),r.getNumber(u)),void 0)),a("getProgressLog",(l,u)=>t.exportSingleValue(this.getProgressLog(r.getString(l),r.getString(u)),void 0)),a("getProgressLogWithInfo",(l,u)=>t.exportSingleValue(this.getProgressLogWithInfo(r.getString(l),r.getString(u)),void 0)),a("getLogHandle",l=>t.exportSingleValue(this.getLogHandle(r.getString(l)),void 0)),a("getBlockLabel",l=>t.exportSingleValue(this.getBlockLabel(r.getString(l)),void 0)),a("getDataFromResultPool",()=>t.exportObjectUniversal(this.getDataFromResultPool(),void 0)),a("getDataWithErrorsFromResultPool",()=>t.exportObjectUniversal(this.getDataWithErrorsFromResultPool(),void 0)),a("getSpecsFromResultPool",()=>t.exportObjectUniversal(this.getSpecsFromResultPool(),void 0)),a("calculateOptions",l=>t.exportObjectUniversal(this.calculateOptions(t.importObjectViaJson(l)),void 0)),a("getSpecFromResultPoolByRef",(l,u)=>t.exportObjectUniversal(this.getSpecFromResultPoolByRef(r.getString(l),r.getString(u)),void 0)),a("getDataFromResultPoolByRef",(l,u)=>t.exportObjectUniversal(this.getDataFromResultPoolByRef(r.getString(l),r.getString(u)),void 0)),a("createPFrame",l=>t.exportSingleValue(this.createPFrame(t.importObjectViaJson(l)),void 0)),a("createPTable",l=>t.exportSingleValue(this.createPTable(t.importObjectViaJson(l)),void 0)),a("getCurrentUnstableMarker",()=>t.exportSingleValue(this.getCurrentUnstableMarker(),void 0))})}}function Nn(s){return s instanceof ArrayBuffer||ArrayBuffer.isView(s)}class De{constructor(e,t,r,o){P(this,"callbackRegistry");P(this,"fnJSONStringify");P(this,"fnJSONParse");P(this,"errorRepo",new Bn);P(this,"computableHelper");if(this.scope=e,this.vm=t,this.deadlineSetter=r,this.callbackRegistry=this.scope.manage(this.vm.newObject()),this.fnJSONStringify=e.manage(t.getProp(t.global,"JSON").consume(n=>t.getProp(n,"stringify"))),t.typeof(this.fnJSONStringify)!=="function")throw new Error("JSON.stringify() not found.");if(this.fnJSONParse=e.manage(t.getProp(t.global,"JSON").consume(n=>t.getProp(n,"parse"))),t.typeof(this.fnJSONParse)!=="function")throw new Error("JSON.parse() not found.");o!==void 0&&(this.computableHelper=new Ln(this,o.blockCtx,o.mlEnv,o.computableCtx)),this.injectCtx()}resetComputableCtx(){S.notEmpty(this.computableHelper,"Computable context helper is not initialized").resetComputableCtx()}static cleanErrorContext(e){typeof e=="object"&&e!==null&&"context"in e&&delete e.context}evaluateBundle(e){try{this.deadlineSetter({currentExecutionTarget:"evaluateBundle",deadline:Date.now()+1e4}),this.vm.unwrapResult(this.vm.evalCode(e,"bundle.js",{type:"global"})).dispose()}catch(t){throw De.cleanErrorContext(t),t}finally{this.deadlineSetter(void 0)}}runCallback(e,...t){try{return this.deadlineSetter({currentExecutionTarget:e,deadline:Date.now()+1e4}),fe.Scope.withScope(r=>{const o=r.manage(this.vm.getProp(this.callbackRegistry,e));if(this.vm.typeof(o)!=="function")throw new Error(`No such callback: ${e}`);return this.scope.manage(this.vm.unwrapResult(this.vm.callFunction(o,this.vm.undefined,...t.map(n=>this.exportObjectUniversal(n,r)))))})}catch(r){throw De.cleanErrorContext(r),this.errorRepo.getOriginal(r)}finally{this.deadlineSetter(void 0)}}exportSingleValue(e,t){const r=this.tryExportSingleValue(e,t);if(r===void 0)throw new Error(`Can't export value: ${e===void 0?"undefined":JSON.stringify(e)}`);return r}tryExportSingleValue(e,t){let r,o=!1;switch(typeof e){case"string":r=this.vm.newString(e),o=!0;break;case"number":r=this.vm.newNumber(e),o=!0;break;case"undefined":r=this.vm.undefined;break;case"boolean":r=e?this.vm.true:this.vm.false;break;default:if(e===null){r=this.vm.null;break}if(Nn(e)){r=this.vm.newArrayBuffer(e),o=!0;break}return}return o&&t!=null?t.manage(r):r}exportObjectUniversal(e,t){const r=this.tryExportSingleValue(e,t);return r!==void 0?r:this.exportObjectViaJson(e,t)}exportObjectViaJson(e,t){const r=this.vm.newString(JSON.stringify(e)).consume(o=>this.vm.unwrapResult(this.vm.callFunction(this.fnJSONParse,this.vm.undefined,o)));return t!==void 0?t.manage(r):r}importObjectUniversal(e){switch(this.vm.typeof(e)){case"undefined":return;case"boolean":case"number":case"string":return this.vm.dump(e);default:return this.importObjectViaJson(e)}}importObjectViaJson(e){const t=this.vm.unwrapResult(this.vm.callFunction(this.fnJSONStringify,this.vm.undefined,e)).consume(r=>this.vm.getString(r));if(t!=="undefined")return JSON.parse(t)}injectCtx(){fe.Scope.withScope(e=>{const t=e.manage(this.vm.newObject());this.vm.setProp(t,"callbackRegistry",this.callbackRegistry),this.vm.setProp(t,"featureFlags",this.exportObjectUniversal(A.JsRenderInternal.GlobalCfgRenderCtxFeatureFlags,e)),this.computableHelper!==void 0&&this.computableHelper.injectCtx(t),this.vm.setProp(this.vm.global,"cfgRenderCtx",t)})}}class Bn{constructor(){P(this,"errorIdToError",new Map)}setAndRecreateForQuickJS(e){const t=re.randomUUID();return this.errorIdToError.set(t,e),e instanceof Error?{name:`${e.name}/uuid:${t}`,message:e.message}:{name:`UnknownErrorQuickJS/uuid:${t}`,message:`${e}`}}getOriginal(e){if(!(e instanceof fe.errors.QuickJSUnwrapError))return console.warn("ErrorRepo: quickJSError is not a QuickJSUnwrapError",g.stringifyWithResourceId(e)),e;if(!("name"in e.cause))return console.warn("ErrorRepo: quickJSError.cause is not an Error",g.stringifyWithResourceId(e)),e;const t=e.cause.name,r=t.slice(t.indexOf("/uuid:")+6);if(!r)throw new Error(`ErrorRepo: quickJSError.cause.name does not contain errorId: ${t}, ${g.stringifyWithResourceId(e)}`);const o=this.errorIdToError.get(r);if(o===void 0)throw new Error(`ErrorRepo: errorId not found: ${r}, ${g.stringifyWithResourceId(e)}`);return new Bs.PlQuickJSError(e,o)}}function Le(s,e){return Ee(s.traverse({field:H(e,"blockPack"),assertFieldType:"Dynamic",errorIfFieldNotSet:!0},{field:g.Pl.HolderRefField,assertFieldType:"Input",errorIfFieldNotFound:!0}),t=>{const r=t.getDataAsJson(),o=A.extractConfig(r.config);return{bpResourceId:t.resourceInfo.id,bpId:t.resourceInfo.id.toString(),info:r,cfg:o}})}const Ke=process.env.MI_LOG_OUTPUT_STATUS;function jn(s,e,t,r,o,n={}){const i=`${e.blockId}#lambda#${o}#${t.handle}`;return n={...n,key:i},n.mode===void 0&&t.retentive===!0&&(n.mode="StableOnlyRetentive"),x.Computable.makeRaw(c=>{const a=new fe.Scope;c.addOnDestroy(()=>a.dispose());const l=a.manage(s.quickJs.newRuntime());l.setMemoryLimit(1024*1024*8),l.setMaxStackSize(1024*320);let u;l.setInterruptHandler(()=>u===void 0?!1:Date.now()>u.deadline);const d=a.manage(l.newContext()),p=new De(a,d,v=>{u=v},{computableCtx:c,blockCtx:e,mlEnv:s});p.evaluateBundle(r.content);const f=p.runCallback(t.handle);p.resetComputableCtx();let k=0;return Ke&&Ke!=="unstable-only"&&console.log(`Output ${t.handle} scaffold calculated.`),{ir:p.computableHelper.computablesToResolve,postprocessValue:(v,{unstableMarker:j,stable:N})=>{for(const[F,q]of Object.entries(v))p.runCallback(F,q);const U=p.importObjectUniversal(f);return k++,Ke&&(Ke!=="unstable-only"||!N)&&console.log(N?`Stable output ${t.handle} calculated ${U!==void 0?"defined":"undefined"}; (#${k})`:`Unstable output ${t.handle}; marker = ${j}; ${U!==void 0?"defined":"undefined"} (#${k})`),U}}},n)}function Vn(s,e,t,...r){const o=new fe.Scope;try{const n=o.manage(s.newRuntime());n.setMemoryLimit(1024*1024*8),n.setMaxStackSize(1024*320);let i;n.setInterruptHandler(()=>i===void 0?!1:Date.now()>i.deadline);const c=o.manage(n.newContext()),a=new De(o,c,l=>{i=l});return a.evaluateBundle(t.content),a.importObjectUniversal(a.runCallback(e.handle,...r))}finally{o.dispose()}}function xn(s){return A.isConfigLambda(s)?s.isActive===!0:tn(s)}function Oe(s,e,t,r,o,n={}){if(A.isConfigLambda(t)){if(r===void 0)throw new Error("No code bundle.");return jn(s,e,t,r,o,n)}else return Dn(s.driverKit,e,t,n)}function Un(s,e){if(s===e)return!0;if(s===void 0||e===void 0)return!1;const t=rr.omitBy((r,o)=>o.startsWith("__"));return rr.isDeepEqual(t(s),t(e))}function Gn(s,e,t){return x.Computable.make(r=>{var k,v,j,N,U,F,q,V;const o=r.accessor(s).node(),n=S.notEmpty(o.getKeyValueAsJson(Dt)),i=S.notEmpty(o.getKeyValueAsJson(Fe)),c=S.notEmpty(o.getKeyValueAsJson(Ae)),a=S.notEmpty(o.getKeyValueAsJson(ge)),l=S.notEmpty(o.getKeyValueAsJson(Ze)),u=new Map;for(const{id:B}of ae(a)){const W=o.traverse({field:H(B,"currentArgs"),assertFieldType:"Dynamic",errorIfFieldNotSet:!0}),ee=W.getDataAsJson();let z;const oe=o.traverse({field:H(B,"prodArgs"),assertFieldType:"Dynamic",stableIfNotFound:!0});if(oe!==void 0){const ne=oe.getDataAsJson(),_=o.getField({field:H(B,"prodOutput"),assertFieldType:"Dynamic",errorIfFieldNotFound:!0}),X=o.getField({field:H(B,"prodUiCtx"),assertFieldType:"Dynamic",errorIfFieldNotFound:!0});z={arguments:ne,stale:!Un(ee,ne),outputError:_.error!==void 0||X.error!==void 0||((k=_.value)==null?void 0:k.getError())!==void 0||((v=X.value)==null?void 0:v.getError())!==void 0,outputsError:((j=_.error)==null?void 0:j.getDataAsString())??((U=(N=_.value)==null?void 0:N.getError())==null?void 0:U.getDataAsString()),exportsError:((F=X.error)==null?void 0:F.getDataAsString())??((V=(q=X.value)==null?void 0:q.getError())==null?void 0:V.getDataAsString()),finished:(_.value!==void 0&&_.value.getIsReadyOrError()||_.error!==void 0&&_.error.getIsReadyOrError())&&(X.value!==void 0&&X.value.getIsReadyOrError()||X.error!==void 0&&X.error.getIsReadyOrError())}}u.set(B,{currentArguments:ee,prod:z,argsRid:W.resourceInfo.id})}const d=Ye(a,B=>{const W=Le(o,B),ee=u.get(B),z=ee.currentArguments;return{args:z,enrichmentTargets:t.projectHelper.getEnrichmentTargets(()=>W.cfg,()=>z,{argsRid:ee.argsRid,blockPackRid:W.bpResourceId})}}),p=new Set(l.blocksInLimbo),f=[...ae(a)].map(({id:B,label:W,renderingMode:ee})=>{var y,C,T,E,D;const z=S.notEmpty(u.get(B)),oe=S.notEmpty(d.nodes.get(B));let ne="NotCalculated";z.prod!==void 0&&(p.has(B)?ne="Limbo":ne=z.prod.finished?"Done":"Running");const _=Le(o,B),{sections:X,title:w,inputsValid:m,sdkVersion:R}=Ee(_,({bpId:M,cfg:L})=>{const de=Vt(s,B);return{sections:Oe(t,de,L.sections,L.code,M).wrap({recover:ke=>(t.logger.error("Error in block model sections"),t.logger.error(ke),[])}),title:Ee(L.title,ke=>Oe(t,de,ke,L.code,M).wrap({recover:$s=>(t.logger.error("Error in block model title"),t.logger.error($s),"Invalid title")})),inputsValid:Oe(t,de,L.inputsValid,L.code,M).wrap({recover:ke=>(t.logger.error("Error in block model argsValid"),t.logger.error(ke),!1)}),sdkVersion:L.sdkVersion}})||{},h=o.traverse({field:H(B,"blockSettings"),assertFieldType:"Dynamic",errorIfFieldNotSet:!0}).getDataAsJson(),b=Ee(_,({info:M})=>t.blockUpdateWatcher.get({currentSpec:M.source,settings:h}));return{projectResourceId:g.resourceIdToString(s.rid),id:B,label:w??W,title:w??W,renderingMode:ee,stale:((y=z.prod)==null?void 0:y.stale)!==!1||ne==="Limbo",missingReference:oe.missingReferences,upstreams:[...d.traverseIdsExcludingRoots("upstream",B)],downstreams:[...d.traverseIdsExcludingRoots("downstream",B)],calculationStatus:ne,outputErrors:((C=z.prod)==null?void 0:C.outputError)===!0,outputsError:(T=z.prod)==null?void 0:T.outputsError,exportsError:(E=z.prod)==null?void 0:E.exportsError,settings:h,sections:X,inputsValid:m,updateInfo:{},currentBlockPack:(D=_==null?void 0:_.info)==null?void 0:D.source,updates:b,sdkVersion:R,navigationState:e.getState(B)}});return{meta:c,created:new Date(n),lastModified:new Date(i),authorMarker:o.getKeyValueAsJson(kt),blocks:f}},{postprocessValue:r=>{const o=new Set,n=new Set;return{...r,blocks:r.blocks.map(i=>{var u,d;i.inputsValid||o.add(i.id),i.stale&&n.add(i.id);const c=i.stale||i.upstreams.findIndex(p=>n.has(p))!==-1,a=(c||i.outputErrors)&&!!i.inputsValid&&!i.missingReference&&i.upstreams.findIndex(p=>o.has(p))===-1,l={...i,canRun:a,stale:c,updateSuggestions:((u=i.updates)==null?void 0:u.suggestions)??[],updatedBlockPack:(d=i.updates)==null?void 0:d.mainSuggestion};return delete l.updates,l})}}}).withStableType()}function Jn(s,e){const t=s.node();if(g.resourceTypesEqual(t.resourceType,Nt)){const r=t.getDataAsJson();if(r===void 0)throw new Error("No resource data.");return e.frontendDownloadDriver.getPath(new URL(r.url)).withStableType()}else if(g.resourceTypesEqual(t.resourceType,Bt)){const r=t.getDataAsJson();if(r===void 0)throw new Error("No resource data.");return e.signer.verify(r.path,r.signature,`Frontend path signature mismatch for: ${r.path}`),r.path}else throw new Error(`Unsupported resource type: ${JSON.stringify(t.resourceType)}`)}function Mn(s,e){if(s!==void 0)return x.Computable.make(t=>Jn(t.accessor(s),e),{postprocessValue:t=>{if(t!==void 0){if(typeof t=="string")return t;if(t.error!==void 0)throw new Error(t.error);return t.path}}}).withStableType()}function _n(s,e,t){return x.Computable.make(r=>{var c;const o=r.accessor(s).node(),n=Le(o,e),i=(c=o.traverse({field:H(e,"blockPack"),assertFieldType:"Dynamic"},{field:g.Pl.HolderRefField,assertFieldType:"Input",errorIfFieldNotFound:!0},{field:as,assertFieldType:"Input"}))==null?void 0:c.persist();return{path:Mn(i,t),sdkVersion:n==null?void 0:n.cfg.sdkVersion}},{mode:"StableOnlyLive"})}function ys(s,e,t){if(t===void 0)return x.Computable.make(i=>ys(s,e,i),{key:`inputs#${g.resourceIdToString(s.rid)}#${e}`});const r=t.accessor(s).node(),o=Vt(s,e),n=o.uiState(t);return{author:r.getKeyValueAsJson(St(e)),args:S.deepFreeze(JSON.parse(o.args(t))),ui:n!==void 0?S.deepFreeze(JSON.parse(n)):void 0}}function Kn(s,e,t){return x.Computable.make(r=>{const o=r.accessor(s).node(),n=ds(s,e);return Ee(Le(o,e),({cfg:i,bpId:c})=>{const a={};for(const[l,u]of Object.entries(i.outputs)){const d=Oe(t,n,u,i.code,c);a[l]=x.Computable.wrapError(d,1)}return a})},{key:"outputs#"+g.resourceIdToString(s.rid)+"#"+e}).withStableType()}function Hn(s,e){return x.Computable.make(t=>{const r=t.accessor(s).node(),o=S.notEmpty(r.getKeyValueAsJson(ge)),n=[];for(const{id:i}of ae(o)){const c=Le(r,i);if(c===void 0)continue;const a=Object.entries(c.cfg.outputs).map(([,u])=>u).filter(u=>xn(u)).map(u=>u);if(a.length===0)continue;const l=ds(r.persist(),i);for(const u of a)n.push(x.Computable.wrapError(Oe(e,l,u,c.cfg.code,c.bpId)))}return n})}class qn{constructor(){P(this,"states",new Map)}setState(e,t){const r=this.states.get(e);if(r===void 0){this.states.set(e,{state:t,change:new x.ChangeSource});return}r.state={...t},r.change.markChanged()}readState(e,t){let r=this.states.get(t);return r===void 0&&(r={state:{...A.DefaultNavigationState},change:new x.ChangeSource},this.states.set(t,r)),r.change.attachWatcher(e.watcher),r.state}getState(e){return x.Computable.make(t=>this.readState(t,e),{key:`navigationState#${e}`})}deleteBlock(e){const t=this.states.get(e);t!==void 0&&(this.states.delete(e),t.change.markChanged())}}function wr(s){return JSON.stringify(s,(e,t)=>typeof t=="bigint"?g.resourceIdToString(t):ArrayBuffer.isView(t)||t instanceof Int8Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array||t instanceof BigInt64Array||t instanceof BigUint64Array?Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("base64"):Buffer.isBuffer(t)?t.toString("base64"):t)}class nt{constructor(e,t,r){P(this,"rid");P(this,"overview");P(this,"navigationStates",new qn);P(this,"blockComputables",new Map);P(this,"blockFrontends",new Map);P(this,"activeConfigs");P(this,"refreshLoopResult");P(this,"abortController",new AbortController);P(this,"destroyed",!1);this.env=e,this.projectTree=r,this.overview=Gn(r.entry(),this.navigationStates,e).withPreCalculatedValueTree(),this.rid=t,this.refreshLoopResult=this.refreshLoop(),this.activeConfigs=Hn(r.entry(),e)}async refreshLoop(){for(;!this.destroyed;)try{await _e(this.env.projectHelper,this.env.pl,this.rid,e=>{e.doRefresh(this.env.ops.stagingRenderingRate)}),await this.activeConfigs.getValue(),await _r.setTimeout(this.env.ops.projectRefreshInterval,this.abortController.signal)}catch(e){if(g.isNotFoundError(e)){console.warn("project refresh routine terminated, because project was externally deleted");break}else if(!g.isTimeoutOrCancelError(e))throw new Error("Unexpected exception",{cause:e})}}async addBlock(e,t,r,o=void 0,n=re.randomUUID()){const i=await this.env.bpPreparer.prepare(t),c=await this.env.bpPreparer.getBlockConfigContainer(t),a=A.extractConfig(c);return await ie(this.env.projectHelper,this.env.pl,this.rid,o,l=>l.addBlock({id:n,label:e,renderingMode:a.renderingMode},{args:G(a.initialArgs),uiState:G(a.initialUiState),blockPack:i},r)),await this.projectTree.refreshState(),n}async updateBlockPack(e,t,r=!1,o){const n=await this.env.bpPreparer.prepare(t),i=A.extractConfig(await this.env.bpPreparer.getBlockConfigContainer(t));await ie(this.env.projectHelper,this.env.pl,this.rid,o,c=>c.migrateBlockPack(e,n,r?{args:G(i.initialArgs),uiState:G(i.initialUiState)}:void 0)),await this.projectTree.refreshState()}async deleteBlock(e,t){await ie(this.env.projectHelper,this.env.pl,this.rid,t,r=>r.deleteBlock(e)),this.navigationStates.deleteBlock(e),await this.projectTree.refreshState()}async reorderBlocks(e,t){await ie(this.env.projectHelper,this.env.pl,this.rid,t,r=>{const o=r.structure;if(o.groups.length!==1)throw new Error("Unexpected project structure, non-sinular block group");const n=o.groups[0];if(n.blocks.length!==e.length)throw new Error(`Lengh mismatch: ${n.blocks.length} !== ${e.length}`);if(new Set(e).size!==e.length)throw new Error("Repeated block ids");const i={groups:[{id:n.id,label:n.label,blocks:e.map(c=>{const a=n.blocks.find(l=>l.id===c);if(a===void 0)throw new Error(`Can't find block: ${c}`);return a})}]};r.updateStructure(i)}),await this.projectTree.refreshState()}async runBlock(e){await _e(this.env.projectHelper,this.env.pl,this.rid,t=>t.renderProduction([e],!0)),await this.projectTree.refreshState()}async stopBlock(e){await _e(this.env.projectHelper,this.env.pl,this.rid,t=>t.stopProduction(e)),await this.projectTree.refreshState()}async setBlockArgs(e,t,r){await ie(this.env.projectHelper,this.env.pl,this.rid,r,o=>o.setArgs([{blockId:e,args:G(t)}])),await this.projectTree.refreshState()}async setUiState(e,t,r){await ie(this.env.projectHelper,this.env.pl,this.rid,r,o=>o.setUiState(e,t===void 0?void 0:G(t))),await this.projectTree.refreshState()}async setNavigationState(e,t){this.navigationStates.setState(e,t)}async setBlockArgsAndUiState(e,t,r,o){await ie(this.env.projectHelper,this.env.pl,this.rid,o,n=>{n.setArgs([{blockId:e,args:G(t)}]),n.setUiState(e,G(r))}),await this.projectTree.refreshState()}async setBlockSettings(e,t){await ie(this.env.projectHelper,this.env.pl,this.rid,void 0,r=>{r.setBlockSettings(e,t)}),await this.projectTree.refreshState()}async resetBlockArgsAndUiState(e,t){await this.env.pl.withWriteTx("BlockInputsReset",async r=>{const o=g.ensureResourceIdNotNull((await r.getField(g.field(this.rid,H(e,"blockPack")))).value),n=g.ensureResourceIdNotNull((await r.getField(g.field(o,g.Pl.HolderRefField))).value),i=await r.getResourceData(n,!1),c=A.extractConfig(S.cachedDeserialize(S.notEmpty(i.data)).config);await ie(this.env.projectHelper,r,this.rid,t,a=>{a.setArgs([{blockId:e,args:G(c.initialArgs)}]),a.setUiState(e,G(c.initialUiState))}),await r.commit()}),await this.projectTree.refreshState()}getBlockComputables(e){const t=this.blockComputables.get(e);if(t===void 0){const r=Kn(this.projectTree.entry(),e,this.env),n={fullState:x.Computable.make(i=>({argsAndUiState:ys(this.projectTree.entry(),e,i),outputs:r,navigationState:this.navigationStates.getState(e),overview:this.overview}),{postprocessValue:i=>{var u,d,p;const c=(p=(d=(u=i.overview)==null?void 0:u.blocks)==null?void 0:d.find(f=>f.id==e))==null?void 0:p.sdkVersion,l=c&&zn(c)&&i.outputs!==void 0?Yn(i.outputs):i.outputs;return{...i.argsAndUiState,outputs:l,navigationState:i.navigationState}}}).withPreCalculatedValueTree()};return this.blockComputables.set(e,n),n}return t}getBlockState(e){return this.getBlockComputables(e).fullState}getBlockFrontend(e){const t=this.blockFrontends.get(e);if(t===void 0){const r=_n(this.projectTree.entry(),e,this.env).withPreCalculatedValueTree();return this.blockFrontends.set(e,r),r}return t}async destroy(){this.destroyed=!0,this.abortController.abort(),await this.refreshLoopResult,await this.projectTree.terminate(),this.overview.resetState(),this.blockFrontends.forEach(e=>e.resetState()),this.blockComputables.forEach(e=>{e.fullState.resetState()}),this.activeConfigs.resetState()}async destroyAndAwaitTermination(){await this.destroy()}static async init(e,t){await _e(e.projectHelper,e.pl,t,o=>{});const r=await Qe.SynchronizedTreeState.init(e.pl,t,{...e.ops.defaultTreeOptions,pruning:Wn},e.logger);if(e.ops.debugOps.dumpInitialTreeState){const o=r.dumpState();o.sort((i,c)=>{var a,l;return(((a=c.data)==null?void 0:a.byteLength)??0)-(((l=i.data)==null?void 0:l.byteLength)??0)});const n=Qe.treeDumpStats(o);await Ie.writeFile(`${g.resourceIdToString(t)}.json`,wr(o)),await Ie.writeFile(`${g.resourceIdToString(t)}.stats.json`,wr(n))}return new nt(e,t,r)}}function Wn(s){switch(s.type.name){case"BlockPackCustom":return s.fields.filter(e=>e.name!=="template");case"UserProject":return s.fields.filter(e=>!e.name.startsWith("__serviceTemplate"));case"Blob":return[];default:return s.fields}}function zn(s){return!Xn(s,"1.26.0")}function Xn(s,e){const t=s.split(".").map(Number),r=e.split(".").map(Number);return t[0]>r[0]||t[0]===r[0]&&t[1]>r[1]||t[0]===r[0]&&t[1]===r[1]&&t[2]>r[2]}function Yn(s){const e={};for(const[t,r]of Object.entries(s)){if(r.ok){e[t]=r;continue}e[t]={ok:!1,errors:r.errors.map(o=>typeof o=="string"?o:o.type=="PlError"&&o.fullMessage!==void 0?o.fullMessage:o.message),moreErrors:r.moreErrors}}return e}const xt={logger:new S.ConsoleLoggerAdapter,blobDriverOps:{cacheSoftSizeBytes:8*1024*1024*1024,nConcurrentDownloads:10},downloadBlobToURLDriverOps:{cacheSoftSizeBytes:100*1024*1024,nConcurrentDownloads:10},uploadDriverOps:{nConcurrentPartUploads:10,nConcurrentGetProgresses:10,pollingInterval:1e3,stopPollingDelay:1e3},logStreamDriverOps:{nConcurrentGetLogs:10,pollingInterval:1e3,stopPollingDelay:1e3}};function Ut(s){return{blobDownloadPath:J.join(s,"download"),downloadBlobToURLPath:J.join(s,"downloadToURL"),pframesSpillPath:J.join(s,"pframes")}}const vs={...xt,defaultTreeOptions:{pollingInterval:350,stopPollingDelay:2500,initialTreeLoadingTimeout:100*60*60*1e3},debugOps:{dumpInitialTreeState:!1},devBlockUpdateRecheckInterval:1e3,projectRefreshInterval:700,stagingRenderingRate:5};function ws(s){return{...Ut(s),frontendDownloadPath:J.join(s,"frontend")}}function Qn(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}var Ot={exports:{}};const Zn="2.0.0",bs=256,ei=Number.MAX_SAFE_INTEGER||9007199254740991,ti=16,ri=bs-6,si=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var it={MAX_LENGTH:bs,MAX_SAFE_COMPONENT_LENGTH:ti,MAX_SAFE_BUILD_LENGTH:ri,MAX_SAFE_INTEGER:ei,RELEASE_TYPES:si,SEMVER_SPEC_VERSION:Zn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};const oi=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...s)=>console.error("SEMVER",...s):()=>{};var at=oi;(function(s,e){const{MAX_SAFE_COMPONENT_LENGTH:t,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:o}=it,n=at;e=s.exports={};const i=e.re=[],c=e.safeRe=[],a=e.src=[],l=e.safeSrc=[],u=e.t={};let d=0;const p="[a-zA-Z0-9-]",f=[["\\s",1],["\\d",o],[p,r]],k=j=>{for(const[N,U]of f)j=j.split(`${N}*`).join(`${N}{0,${U}}`).split(`${N}+`).join(`${N}{1,${U}}`);return j},v=(j,N,U)=>{const F=k(N),q=d++;n(j,q,N),u[j]=q,a[q]=N,l[q]=F,i[q]=new RegExp(N,U?"g":void 0),c[q]=new RegExp(F,U?"g":void 0)};v("NUMERICIDENTIFIER","0|[1-9]\\d*"),v("NUMERICIDENTIFIERLOOSE","\\d+"),v("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${p}*`),v("MAINVERSION",`(${a[u.NUMERICIDENTIFIER]})\\.(${a[u.NUMERICIDENTIFIER]})\\.(${a[u.NUMERICIDENTIFIER]})`),v("MAINVERSIONLOOSE",`(${a[u.NUMERICIDENTIFIERLOOSE]})\\.(${a[u.NUMERICIDENTIFIERLOOSE]})\\.(${a[u.NUMERICIDENTIFIERLOOSE]})`),v("PRERELEASEIDENTIFIER",`(?:${a[u.NUMERICIDENTIFIER]}|${a[u.NONNUMERICIDENTIFIER]})`),v("PRERELEASEIDENTIFIERLOOSE",`(?:${a[u.NUMERICIDENTIFIERLOOSE]}|${a[u.NONNUMERICIDENTIFIER]})`),v("PRERELEASE",`(?:-(${a[u.PRERELEASEIDENTIFIER]}(?:\\.${a[u.PRERELEASEIDENTIFIER]})*))`),v("PRERELEASELOOSE",`(?:-?(${a[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${a[u.PRERELEASEIDENTIFIERLOOSE]})*))`),v("BUILDIDENTIFIER",`${p}+`),v("BUILD",`(?:\\+(${a[u.BUILDIDENTIFIER]}(?:\\.${a[u.BUILDIDENTIFIER]})*))`),v("FULLPLAIN",`v?${a[u.MAINVERSION]}${a[u.PRERELEASE]}?${a[u.BUILD]}?`),v("FULL",`^${a[u.FULLPLAIN]}$`),v("LOOSEPLAIN",`[v=\\s]*${a[u.MAINVERSIONLOOSE]}${a[u.PRERELEASELOOSE]}?${a[u.BUILD]}?`),v("LOOSE",`^${a[u.LOOSEPLAIN]}$`),v("GTLT","((?:<|>)?=?)"),v("XRANGEIDENTIFIERLOOSE",`${a[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),v("XRANGEIDENTIFIER",`${a[u.NUMERICIDENTIFIER]}|x|X|\\*`),v("XRANGEPLAIN",`[v=\\s]*(${a[u.XRANGEIDENTIFIER]})(?:\\.(${a[u.XRANGEIDENTIFIER]})(?:\\.(${a[u.XRANGEIDENTIFIER]})(?:${a[u.PRERELEASE]})?${a[u.BUILD]}?)?)?`),v("XRANGEPLAINLOOSE",`[v=\\s]*(${a[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[u.XRANGEIDENTIFIERLOOSE]})(?:${a[u.PRERELEASELOOSE]})?${a[u.BUILD]}?)?)?`),v("XRANGE",`^${a[u.GTLT]}\\s*${a[u.XRANGEPLAIN]}$`),v("XRANGELOOSE",`^${a[u.GTLT]}\\s*${a[u.XRANGEPLAINLOOSE]}$`),v("COERCEPLAIN",`(^|[^\\d])(\\d{1,${t}})(?:\\.(\\d{1,${t}}))?(?:\\.(\\d{1,${t}}))?`),v("COERCE",`${a[u.COERCEPLAIN]}(?:$|[^\\d])`),v("COERCEFULL",a[u.COERCEPLAIN]+`(?:${a[u.PRERELEASE]})?(?:${a[u.BUILD]})?(?:$|[^\\d])`),v("COERCERTL",a[u.COERCE],!0),v("COERCERTLFULL",a[u.COERCEFULL],!0),v("LONETILDE","(?:~>?)"),v("TILDETRIM",`(\\s*)${a[u.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",v("TILDE",`^${a[u.LONETILDE]}${a[u.XRANGEPLAIN]}$`),v("TILDELOOSE",`^${a[u.LONETILDE]}${a[u.XRANGEPLAINLOOSE]}$`),v("LONECARET","(?:\\^)"),v("CARETTRIM",`(\\s*)${a[u.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",v("CARET",`^${a[u.LONECARET]}${a[u.XRANGEPLAIN]}$`),v("CARETLOOSE",`^${a[u.LONECARET]}${a[u.XRANGEPLAINLOOSE]}$`),v("COMPARATORLOOSE",`^${a[u.GTLT]}\\s*(${a[u.LOOSEPLAIN]})$|^$`),v("COMPARATOR",`^${a[u.GTLT]}\\s*(${a[u.FULLPLAIN]})$|^$`),v("COMPARATORTRIM",`(\\s*)${a[u.GTLT]}\\s*(${a[u.LOOSEPLAIN]}|${a[u.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",v("HYPHENRANGE",`^\\s*(${a[u.XRANGEPLAIN]})\\s+-\\s+(${a[u.XRANGEPLAIN]})\\s*$`),v("HYPHENRANGELOOSE",`^\\s*(${a[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${a[u.XRANGEPLAINLOOSE]})\\s*$`),v("STAR","(<|>)?=?\\s*\\*"),v("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),v("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(Ot,Ot.exports);var Be=Ot.exports;const ni=Object.freeze({loose:!0}),ii=Object.freeze({}),ai=s=>s?typeof s!="object"?ni:s:ii;var Gt=ai;const br=/^[0-9]+$/,Ss=(s,e)=>{const t=br.test(s),r=br.test(e);return t&&r&&(s=+s,e=+e),s===e?0:t&&!r?-1:r&&!t?1:s<e?-1:1},ci=(s,e)=>Ss(e,s);var ks={compareIdentifiers:Ss,rcompareIdentifiers:ci};const He=at,{MAX_LENGTH:Sr,MAX_SAFE_INTEGER:qe}=it,{safeRe:kr,safeSrc:Pr,t:We}=Be,li=Gt,{compareIdentifiers:me}=ks;let ui=class ue{constructor(e,t){if(t=li(t),e instanceof ue){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>Sr)throw new TypeError(`version is longer than ${Sr} characters`);He("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?kr[We.LOOSE]:kr[We.FULL]);if(!r)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>qe||this.major<0)throw new TypeError("Invalid major version");if(this.minor>qe||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>qe||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(o=>{if(/^[0-9]+$/.test(o)){const n=+o;if(n>=0&&n<qe)return n}return o}):this.prerelease=[],this.build=r[5]?r[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(He("SemVer.compare",this.version,this.options,e),!(e instanceof ue)){if(typeof e=="string"&&e===this.version)return 0;e=new ue(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof ue||(e=new ue(e,this.options)),me(this.major,e.major)||me(this.minor,e.minor)||me(this.patch,e.patch)}comparePre(e){if(e instanceof ue||(e=new ue(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{const r=this.prerelease[t],o=e.prerelease[t];if(He("prerelease compare",t,r,o),r===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(r===void 0)return-1;if(r===o)continue;return me(r,o)}while(++t)}compareBuild(e){e instanceof ue||(e=new ue(e,this.options));let t=0;do{const r=this.build[t],o=e.build[t];if(He("build compare",t,r,o),r===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(r===void 0)return-1;if(r===o)continue;return me(r,o)}while(++t)}inc(e,t,r){if(e.startsWith("pre")){if(!t&&r===!1)throw new Error("invalid increment argument: identifier is empty");if(t){const o=new RegExp(`^${this.options.loose?Pr[We.PRERELEASELOOSE]:Pr[We.PRERELEASE]}$`),n=`-${t}`.match(o);if(!n||n[1]!==t)throw new Error(`invalid identifier: ${t}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,r),this.inc("pre",t,r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,r),this.inc("pre",t,r);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const o=Number(r)?1:0;if(this.prerelease.length===0)this.prerelease=[o];else{let n=this.prerelease.length;for(;--n>=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(t===this.prerelease.join(".")&&r===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(o)}}if(t){let n=[t,o];r===!1&&(n=[t]),me(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};var Z=ui;const Cr=Z,di=(s,e,t=!1)=>{if(s instanceof Cr)return s;try{return new Cr(s,e)}catch(r){if(!t)return null;throw r}};var be=di;const pi=be,fi=(s,e)=>{const t=pi(s,e);return t?t.version:null};var gi=fi;const hi=be,mi=(s,e)=>{const t=hi(s.trim().replace(/^[=v]+/,""),e);return t?t.version:null};var yi=mi;const Rr=Z,vi=(s,e,t,r,o)=>{typeof t=="string"&&(o=r,r=t,t=void 0);try{return new Rr(s instanceof Rr?s.version:s,t).inc(e,r,o).version}catch{return null}};var wi=vi;const Er=be,bi=(s,e)=>{const t=Er(s,null,!0),r=Er(e,null,!0),o=t.compare(r);if(o===0)return null;const n=o>0,i=n?t:r,c=n?r:t,a=!!i.prerelease.length;if(!!c.prerelease.length&&!a){if(!c.patch&&!c.minor)return"major";if(c.compareMain(i)===0)return c.minor&&!c.patch?"minor":"patch"}const u=a?"pre":"";return t.major!==r.major?u+"major":t.minor!==r.minor?u+"minor":t.patch!==r.patch?u+"patch":"prerelease"};var Si=bi;const ki=Z,Pi=(s,e)=>new ki(s,e).major;var Ci=Pi;const Ri=Z,Ei=(s,e)=>new Ri(s,e).minor;var Oi=Ei;const Ti=Z,$i=(s,e)=>new Ti(s,e).patch;var Ii=$i;const Fi=be,Ai=(s,e)=>{const t=Fi(s,e);return t&&t.prerelease.length?t.prerelease:null};var Di=Ai;const Or=Z,Li=(s,e,t)=>new Or(s,t).compare(new Or(e,t));var ce=Li;const Ni=ce,Bi=(s,e,t)=>Ni(e,s,t);var ji=Bi;const Vi=ce,xi=(s,e)=>Vi(s,e,!0);var Ui=xi;const Tr=Z,Gi=(s,e,t)=>{const r=new Tr(s,t),o=new Tr(e,t);return r.compare(o)||r.compareBuild(o)};var Jt=Gi;const Ji=Jt,Mi=(s,e)=>s.sort((t,r)=>Ji(t,r,e));var _i=Mi;const Ki=Jt,Hi=(s,e)=>s.sort((t,r)=>Ki(r,t,e));var qi=Hi;const Wi=ce,zi=(s,e,t)=>Wi(s,e,t)>0;var ct=zi;const Xi=ce,Yi=(s,e,t)=>Xi(s,e,t)<0;var Mt=Yi;const Qi=ce,Zi=(s,e,t)=>Qi(s,e,t)===0;var Ps=Zi;const ea=ce,ta=(s,e,t)=>ea(s,e,t)!==0;var Cs=ta;const ra=ce,sa=(s,e,t)=>ra(s,e,t)>=0;var _t=sa;const oa=ce,na=(s,e,t)=>oa(s,e,t)<=0;var Kt=na;const ia=Ps,aa=Cs,ca=ct,la=_t,ua=Mt,da=Kt,pa=(s,e,t,r)=>{switch(e){case"===":return typeof s=="object"&&(s=s.version),typeof t=="object"&&(t=t.version),s===t;case"!==":return typeof s=="object"&&(s=s.version),typeof t=="object"&&(t=t.version),s!==t;case"":case"=":case"==":return ia(s,t,r);case"!=":return aa(s,t,r);case">":return ca(s,t,r);case">=":return la(s,t,r);case"<":return ua(s,t,r);case"<=":return da(s,t,r);default:throw new TypeError(`Invalid operator: ${e}`)}};var Rs=pa;const fa=Z,ga=be,{safeRe:ze,t:Xe}=Be,ha=(s,e)=>{if(s instanceof fa)return s;if(typeof s=="number"&&(s=String(s)),typeof s!="string")return null;e=e||{};let t=null;if(!e.rtl)t=s.match(e.includePrerelease?ze[Xe.COERCEFULL]:ze[Xe.COERCE]);else{const a=e.includePrerelease?ze[Xe.COERCERTLFULL]:ze[Xe.COERCERTL];let l;for(;(l=a.exec(s))&&(!t||t.index+t[0].length!==s.length);)(!t||l.index+l[0].length!==t.index+t[0].length)&&(t=l),a.lastIndex=l.index+l[1].length+l[2].length;a.lastIndex=-1}if(t===null)return null;const r=t[2],o=t[3]||"0",n=t[4]||"0",i=e.includePrerelease&&t[5]?`-${t[5]}`:"",c=e.includePrerelease&&t[6]?`+${t[6]}`:"";return ga(`${r}.${o}.${n}${i}${c}`,e)};var ma=ha;class ya{constructor(){this.max=1e3,this.map=new Map}get(e){const t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){const o=this.map.keys().next().value;this.delete(o)}this.map.set(e,t)}return this}}var va=ya,gt,$r;function le(){if($r)return gt;$r=1;const s=/\s+/g;class e{constructor(m,R){if(R=o(R),m instanceof e)return m.loose===!!R.loose&&m.includePrerelease===!!R.includePrerelease?m:new e(m.raw,R);if(m instanceof n)return this.raw=m.value,this.set=[[m]],this.formatted=void 0,this;if(this.options=R,this.loose=!!R.loose,this.includePrerelease=!!R.includePrerelease,this.raw=m.trim().replace(s," "),this.set=this.raw.split("||").map(h=>this.parseRange(h.trim())).filter(h=>h.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const h=this.set[0];if(this.set=this.set.filter(b=>!v(b[0])),this.set.length===0)this.set=[h];else if(this.set.length>1){for(const b of this.set)if(b.length===1&&j(b[0])){this.set=[b];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let m=0;m<this.set.length;m++){m>0&&(this.formatted+="||");const R=this.set[m];for(let h=0;h<R.length;h++)h>0&&(this.formatted+=" "),this.formatted+=R[h].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(m){const h=((this.options.includePrerelease&&f)|(this.options.loose&&k))+":"+m,b=r.get(h);if(b)return b;const y=this.options.loose,C=y?a[l.HYPHENRANGELOOSE]:a[l.HYPHENRANGE];m=m.replace(C,_(this.options.includePrerelease)),i("hyphen replace",m),m=m.replace(a[l.COMPARATORTRIM],u),i("comparator trim",m),m=m.replace(a[l.TILDETRIM],d),i("tilde trim",m),m=m.replace(a[l.CARETTRIM],p),i("caret trim",m);let T=m.split(" ").map(L=>U(L,this.options)).join(" ").split(/\s+/).map(L=>ne(L,this.options));y&&(T=T.filter(L=>(i("loose invalid filter",L,this.options),!!L.match(a[l.COMPARATORLOOSE])))),i("range list",T);const E=new Map,D=T.map(L=>new n(L,this.options));for(const L of D){if(v(L))return[L];E.set(L.value,L)}E.size>1&&E.has("")&&E.delete("");const M=[...E.values()];return r.set(h,M),M}intersects(m,R){if(!(m instanceof e))throw new TypeError("a Range is required");return this.set.some(h=>N(h,R)&&m.set.some(b=>N(b,R)&&h.every(y=>b.every(C=>y.intersects(C,R)))))}test(m){if(!m)return!1;if(typeof m=="string")try{m=new c(m,this.options)}catch{return!1}for(let R=0;R<this.set.length;R++)if(X(this.set[R],m,this.options))return!0;return!1}}gt=e;const t=va,r=new t,o=Gt,n=lt(),i=at,c=Z,{safeRe:a,t:l,comparatorTrimReplace:u,tildeTrimReplace:d,caretTrimReplace:p}=Be,{FLAG_INCLUDE_PRERELEASE:f,FLAG_LOOSE:k}=it,v=w=>w.value==="<0.0.0-0",j=w=>w.value==="",N=(w,m)=>{let R=!0;const h=w.slice();let b=h.pop();for(;R&&h.length;)R=h.every(y=>b.intersects(y,m)),b=h.pop();return R},U=(w,m)=>(i("comp",w,m),w=B(w,m),i("caret",w),w=q(w,m),i("tildes",w),w=ee(w,m),i("xrange",w),w=oe(w,m),i("stars",w),w),F=w=>!w||w.toLowerCase()==="x"||w==="*",q=(w,m)=>w.trim().split(/\s+/).map(R=>V(R,m)).join(" "),V=(w,m)=>{const R=m.loose?a[l.TILDELOOSE]:a[l.TILDE];return w.replace(R,(h,b,y,C,T)=>{i("tilde",w,h,b,y,C,T);let E;return F(b)?E="":F(y)?E=`>=${b}.0.0 <${+b+1}.0.0-0`:F(C)?E=`>=${b}.${y}.0 <${b}.${+y+1}.0-0`:T?(i("replaceTilde pr",T),E=`>=${b}.${y}.${C}-${T} <${b}.${+y+1}.0-0`):E=`>=${b}.${y}.${C} <${b}.${+y+1}.0-0`,i("tilde return",E),E})},B=(w,m)=>w.trim().split(/\s+/).map(R=>W(R,m)).join(" "),W=(w,m)=>{i("caret",w,m);const R=m.loose?a[l.CARETLOOSE]:a[l.CARET],h=m.includePrerelease?"-0":"";return w.replace(R,(b,y,C,T,E)=>{i("caret",w,b,y,C,T,E);let D;return F(y)?D="":F(C)?D=`>=${y}.0.0${h} <${+y+1}.0.0-0`:F(T)?y==="0"?D=`>=${y}.${C}.0${h} <${y}.${+C+1}.0-0`:D=`>=${y}.${C}.0${h} <${+y+1}.0.0-0`:E?(i("replaceCaret pr",E),y==="0"?C==="0"?D=`>=${y}.${C}.${T}-${E} <${y}.${C}.${+T+1}-0`:D=`>=${y}.${C}.${T}-${E} <${y}.${+C+1}.0-0`:D=`>=${y}.${C}.${T}-${E} <${+y+1}.0.0-0`):(i("no pr"),y==="0"?C==="0"?D=`>=${y}.${C}.${T}${h} <${y}.${C}.${+T+1}-0`:D=`>=${y}.${C}.${T}${h} <${y}.${+C+1}.0-0`:D=`>=${y}.${C}.${T} <${+y+1}.0.0-0`),i("caret return",D),D})},ee=(w,m)=>(i("replaceXRanges",w,m),w.split(/\s+/).map(R=>z(R,m)).join(" ")),z=(w,m)=>{w=w.trim();const R=m.loose?a[l.XRANGELOOSE]:a[l.XRANGE];return w.replace(R,(h,b,y,C,T,E)=>{i("xRange",w,h,b,y,C,T,E);const D=F(y),M=D||F(C),L=M||F(T),de=L;return b==="="&&de&&(b=""),E=m.includePrerelease?"-0":"",D?b===">"||b==="<"?h="<0.0.0-0":h="*":b&&de?(M&&(C=0),T=0,b===">"?(b=">=",M?(y=+y+1,C=0,T=0):(C=+C+1,T=0)):b==="<="&&(b="<",M?y=+y+1:C=+C+1),b==="<"&&(E="-0"),h=`${b+y}.${C}.${T}${E}`):M?h=`>=${y}.0.0${E} <${+y+1}.0.0-0`:L&&(h=`>=${y}.${C}.0${E} <${y}.${+C+1}.0-0`),i("xRange return",h),h})},oe=(w,m)=>(i("replaceStars",w,m),w.trim().replace(a[l.STAR],"")),ne=(w,m)=>(i("replaceGTE0",w,m),w.trim().replace(a[m.includePrerelease?l.GTE0PRE:l.GTE0],"")),_=w=>(m,R,h,b,y,C,T,E,D,M,L,de)=>(F(h)?R="":F(b)?R=`>=${h}.0.0${w?"-0":""}`:F(y)?R=`>=${h}.${b}.0${w?"-0":""}`:C?R=`>=${R}`:R=`>=${R}${w?"-0":""}`,F(D)?E="":F(M)?E=`<${+D+1}.0.0-0`:F(L)?E=`<${D}.${+M+1}.0-0`:de?E=`<=${D}.${M}.${L}-${de}`:w?E=`<${D}.${M}.${+L+1}-0`:E=`<=${E}`,`${R} ${E}`.trim()),X=(w,m,R)=>{for(let h=0;h<w.length;h++)if(!w[h].test(m))return!1;if(m.prerelease.length&&!R.includePrerelease){for(let h=0;h<w.length;h++)if(i(w[h].semver),w[h].semver!==n.ANY&&w[h].semver.prerelease.length>0){const b=w[h].semver;if(b.major===m.major&&b.minor===m.minor&&b.patch===m.patch)return!0}return!1}return!0};return gt}var ht,Ir;function lt(){if(Ir)return ht;Ir=1;const s=Symbol("SemVer ANY");class e{static get ANY(){return s}constructor(u,d){if(d=t(d),u instanceof e){if(u.loose===!!d.loose)return u;u=u.value}u=u.trim().split(/\s+/).join(" "),i("comparator",u,d),this.options=d,this.loose=!!d.loose,this.parse(u),this.semver===s?this.value="":this.value=this.operator+this.semver.version,i("comp",this)}parse(u){const d=this.options.loose?r[o.COMPARATORLOOSE]:r[o.COMPARATOR],p=u.match(d);if(!p)throw new TypeError(`Invalid comparator: ${u}`);this.operator=p[1]!==void 0?p[1]:"",this.operator==="="&&(this.operator=""),p[2]?this.semver=new c(p[2],this.options.loose):this.semver=s}toString(){return this.value}test(u){if(i("Comparator.test",u,this.options.loose),this.semver===s||u===s)return!0;if(typeof u=="string")try{u=new c(u,this.options)}catch{return!1}return n(u,this.operator,this.semver,this.options)}intersects(u,d){if(!(u instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new a(u.value,d).test(this.value):u.operator===""?u.value===""?!0:new a(this.value,d).test(u.semver):(d=t(d),d.includePrerelease&&(this.value==="<0.0.0-0"||u.value==="<0.0.0-0")||!d.includePrerelease&&(this.value.startsWith("<0.0.0")||u.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&u.operator.startsWith(">")||this.operator.startsWith("<")&&u.operator.startsWith("<")||this.semver.version===u.semver.version&&this.operator.includes("=")&&u.operator.includes("=")||n(this.semver,"<",u.semver,d)&&this.operator.startsWith(">")&&u.operator.startsWith("<")||n(this.semver,">",u.semver,d)&&this.operator.startsWith("<")&&u.operator.startsWith(">")))}}ht=e;const t=Gt,{safeRe:r,t:o}=Be,n=Rs,i=at,c=Z,a=le();return ht}const wa=le(),ba=(s,e,t)=>{try{e=new wa(e,t)}catch{return!1}return e.test(s)};var ut=ba;const Sa=le(),ka=(s,e)=>new Sa(s,e).set.map(t=>t.map(r=>r.value).join(" ").trim().split(" "));var Pa=ka;const Ca=Z,Ra=le(),Ea=(s,e,t)=>{let r=null,o=null,n=null;try{n=new Ra(e,t)}catch{return null}return s.forEach(i=>{n.test(i)&&(!r||o.compare(i)===-1)&&(r=i,o=new Ca(r,t))}),r};var Oa=Ea;const Ta=Z,$a=le(),Ia=(s,e,t)=>{let r=null,o=null,n=null;try{n=new $a(e,t)}catch{return null}return s.forEach(i=>{n.test(i)&&(!r||o.compare(i)===1)&&(r=i,o=new Ta(r,t))}),r};var Fa=Ia;const mt=Z,Aa=le(),Fr=ct,Da=(s,e)=>{s=new Aa(s,e);let t=new mt("0.0.0");if(s.test(t)||(t=new mt("0.0.0-0"),s.test(t)))return t;t=null;for(let r=0;r<s.set.length;++r){const o=s.set[r];let n=null;o.forEach(i=>{const c=new mt(i.semver.version);switch(i.operator){case">":c.prerelease.length===0?c.patch++:c.prerelease.push(0),c.raw=c.format();case"":case">=":(!n||Fr(c,n))&&(n=c);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${i.operator}`)}}),n&&(!t||Fr(t,n))&&(t=n)}return t&&s.test(t)?t:null};var La=Da;const Na=le(),Ba=(s,e)=>{try{return new Na(s,e).range||"*"}catch{return null}};var ja=Ba;const Va=Z,Es=lt(),{ANY:xa}=Es,Ua=le(),Ga=ut,Ar=ct,Dr=Mt,Ja=Kt,Ma=_t,_a=(s,e,t,r)=>{s=new Va(s,r),e=new Ua(e,r);let o,n,i,c,a;switch(t){case">":o=Ar,n=Ja,i=Dr,c=">",a=">=";break;case"<":o=Dr,n=Ma,i=Ar,c="<",a="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Ga(s,e,r))return!1;for(let l=0;l<e.set.length;++l){const u=e.set[l];let d=null,p=null;if(u.forEach(f=>{f.semver===xa&&(f=new Es(">=0.0.0")),d=d||f,p=p||f,o(f.semver,d.semver,r)?d=f:i(f.semver,p.semver,r)&&(p=f)}),d.operator===c||d.operator===a||(!p.operator||p.operator===c)&&n(s,p.semver))return!1;if(p.operator===a&&i(s,p.semver))return!1}return!0};var Ht=_a;const Ka=Ht,Ha=(s,e,t)=>Ka(s,e,">",t);var qa=Ha;const Wa=Ht,za=(s,e,t)=>Wa(s,e,"<",t);var Xa=za;const Lr=le(),Ya=(s,e,t)=>(s=new Lr(s,t),e=new Lr(e,t),s.intersects(e,t));var Qa=Ya;const Za=ut,ec=ce;var tc=(s,e,t)=>{const r=[];let o=null,n=null;const i=s.sort((u,d)=>ec(u,d,t));for(const u of i)Za(u,e,t)?(n=u,o||(o=u)):(n&&r.push([o,n]),n=null,o=null);o&&r.push([o,null]);const c=[];for(const[u,d]of r)u===d?c.push(u):!d&&u===i[0]?c.push("*"):d?u===i[0]?c.push(`<=${d}`):c.push(`${u} - ${d}`):c.push(`>=${u}`);const a=c.join(" || "),l=typeof e.raw=="string"?e.raw:String(e);return a.length<l.length?a:e};const Nr=le(),qt=lt(),{ANY:yt}=qt,Pe=ut,Wt=ce,rc=(s,e,t={})=>{if(s===e)return!0;s=new Nr(s,t),e=new Nr(e,t);let r=!1;e:for(const o of s.set){for(const n of e.set){const i=oc(o,n,t);if(r=r||i!==null,i)continue e}if(r)return!1}return!0},sc=[new qt(">=0.0.0-0")],Br=[new qt(">=0.0.0")],oc=(s,e,t)=>{if(s===e)return!0;if(s.length===1&&s[0].semver===yt){if(e.length===1&&e[0].semver===yt)return!0;t.includePrerelease?s=sc:s=Br}if(e.length===1&&e[0].semver===yt){if(t.includePrerelease)return!0;e=Br}const r=new Set;let o,n;for(const f of s)f.operator===">"||f.operator===">="?o=jr(o,f,t):f.operator==="<"||f.operator==="<="?n=Vr(n,f,t):r.add(f.semver);if(r.size>1)return null;let i;if(o&&n){if(i=Wt(o.semver,n.semver,t),i>0)return null;if(i===0&&(o.operator!==">="||n.operator!=="<="))return null}for(const f of r){if(o&&!Pe(f,String(o),t)||n&&!Pe(f,String(n),t))return null;for(const k of e)if(!Pe(f,String(k),t))return!1;return!0}let c,a,l,u,d=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1,p=o&&!t.includePrerelease&&o.semver.prerelease.length?o.semver:!1;d&&d.prerelease.length===1&&n.operator==="<"&&d.prerelease[0]===0&&(d=!1);for(const f of e){if(u=u||f.operator===">"||f.operator===">=",l=l||f.operator==="<"||f.operator==="<=",o){if(p&&f.semver.prerelease&&f.semver.prerelease.length&&f.semver.major===p.major&&f.semver.minor===p.minor&&f.semver.patch===p.patch&&(p=!1),f.operator===">"||f.operator===">="){if(c=jr(o,f,t),c===f&&c!==o)return!1}else if(o.operator===">="&&!Pe(o.semver,String(f),t))return!1}if(n){if(d&&f.semver.prerelease&&f.semver.prerelease.length&&f.semver.major===d.major&&f.semver.minor===d.minor&&f.semver.patch===d.patch&&(d=!1),f.operator==="<"||f.operator==="<="){if(a=Vr(n,f,t),a===f&&a!==n)return!1}else if(n.operator==="<="&&!Pe(n.semver,String(f),t))return!1}if(!f.operator&&(n||o)&&i!==0)return!1}return!(o&&l&&!n&&i!==0||n&&u&&!o&&i!==0||p||d)},jr=(s,e,t)=>{if(!s)return e;const r=Wt(s.semver,e.semver,t);return r>0?s:r<0||e.operator===">"&&s.operator===">="?e:s},Vr=(s,e,t)=>{if(!s)return e;const r=Wt(s.semver,e.semver,t);return r<0?s:r>0||e.operator==="<"&&s.operator==="<="?e:s};var nc=rc;const vt=Be,xr=it,ic=Z,Ur=ks,ac=be,cc=gi,lc=yi,uc=wi,dc=Si,pc=Ci,fc=Oi,gc=Ii,hc=Di,mc=ce,yc=ji,vc=Ui,wc=Jt,bc=_i,Sc=qi,kc=ct,Pc=Mt,Cc=Ps,Rc=Cs,Ec=_t,Oc=Kt,Tc=Rs,$c=ma,Ic=lt(),Fc=le(),Ac=ut,Dc=Pa,Lc=Oa,Nc=Fa,Bc=La,jc=ja,Vc=Ht,xc=qa,Uc=Xa,Gc=Qa,Jc=tc,Mc=nc;var _c={parse:ac,valid:cc,clean:lc,inc:uc,diff:dc,major:pc,minor:fc,patch:gc,prerelease:hc,compare:mc,rcompare:yc,compareLoose:vc,compareBuild:wc,sort:bc,rsort:Sc,gt:kc,lt:Pc,eq:Cc,neq:Rc,gte:Ec,lte:Oc,cmp:Tc,coerce:$c,Comparator:Ic,Range:Fc,satisfies:Ac,toComparators:Dc,maxSatisfying:Lc,minSatisfying:Nc,minVersion:Bc,validRange:jc,outside:Vc,gtr:xc,ltr:Uc,intersects:Gc,simplifyRange:Jc,subset:Mc,SemVer:ic,re:vt.re,src:vt.src,tokens:vt.t,SEMVER_SPEC_VERSION:xr.SEMVER_SPEC_VERSION,RELEASE_TYPES:xr.RELEASE_TYPES,compareIdentifiers:Ur.compareIdentifiers,rcompareIdentifiers:Ur.rcompareIdentifiers};const Kc=Qn(_c),Hc={minDelay:1500},qc="__no_updates__";class Wc extends x.PollComputablePool{constructor(t,r,o={}){super({...o,...Hc},r);P(this,"http");P(this,"preferredUpdateChannel");this.registryProvider=t,this.http=o.http,this.preferredUpdateChannel=o.preferredUpdateChannel}getKey(t){switch(t.currentSpec.type){case"dev-v1":return`dev_1_${t.currentSpec.folder}_${t.currentSpec.mtime}`;case"dev-v2":return`dev_2_${t.currentSpec.folder}_${t.currentSpec.mtime}`;case"from-registry-v2":return`from_registry_v2_${G(t)}`;default:return qc}}async readValue(t){var r,o;try{const n=t.currentSpec;switch(n.type){case"dev-v1":try{const i=await At(n.folder);return i===n.mtime?{suggestions:[]}:{mainSuggestion:{...n,mtime:i},suggestions:[]}}catch(i){return this.logger.warn(i),{suggestions:[]}}case"dev-v2":try{const i=await Q.tryLoadPackDescription(n.folder,this.logger);if(i===void 0)return{suggestions:[]};const c=await rt(i);return c===n.mtime?{suggestions:[]}:{mainSuggestion:{...n,mtime:c},suggestions:[]}}catch(i){return this.logger.warn(i),{suggestions:[]}}case"from-registry-v2":try{const{versionLock:i,skipVersion:c}=t.settings;if(i==="patch")return{suggestions:[]};const a=this.registryProvider.getRegistry(n.registryUrl);let l=this.preferredUpdateChannel;if(l===void 0)if(n.channel===void 0)if(await a.getLatestOverview(n.id,Y.StableChannel))l=Y.StableChannel;else{if(await a.getLatestOverview(n.id,Y.AnyChannel)===void 0)return this.logger.error(`No "any" channel record for ${Y.blockPackIdToString(n.id)}`),{suggestions:[]};l=Y.AnyChannel}else l=n.channel;const u=await a.getUpdateSuggestions(n.id,l);if(u===void 0||u.length===0)return{suggestions:[]};u.reverse();let d;switch(i){case void 0:d=u[0].update;break;case"major":d=(r=u.find(k=>k.type!=="major"))==null?void 0:r.update;break;case"minor":d=(o=u.find(k=>k.type==="patch"))==null?void 0:o.update;break}const p=u.map(({type:k,update:v})=>({type:k,update:{...n,id:{...n.id,version:v}}}));if(d===void 0)return{suggestions:p};if(c!==void 0&&Kc.lte(d,c))return{suggestions:p};const f={...n,id:{...n.id,version:d}};return(async()=>{try{await a.getComponents(f.id)}catch(k){this.logger.warn(k)}})(),{suggestions:p,mainSuggestion:f}}catch(i){return this.logger.warn(i),{suggestions:[]}}default:return{suggestions:[]}}}catch(n){return this.logger.warn(n),{suggestions:[]}}}resultsEqual(t,r){return G(t)===G(r)}}class Gr{constructor(){P(this,"resources",new Map)}check(e){const t=this.resources.get(e);if(t===void 0)throw new Error("Unexpected state.");t.refCount===0&&(this.resources.delete(e),(o=>o!=null&&typeof o[Symbol.dispose]=="function")(t.resource)&&t.resource[Symbol.dispose]())}acquire(e){const t=this.calculateParamsKey(e);let r=this.resources.get(t);r===void 0&&(r={refCount:0,resource:this.createNewResource(e)},this.resources.set(t,r)),r.refCount++;let o=!1;return{resource:r.resource,key:t,unref:()=>{o||(r.refCount--,o=!0,this.check(t))}}}getByKey(e){if(!this.resources.has(e))throw new Error(`resource not found, key = ${e}`);return this.resources.get(e).resource}tryGetByKey(e){var t;return(t=this.resources.get(e))==null?void 0:t.resource}}let Ce;function pe(){return Ce||(Ce={logPFrameRequests:process.env.MI_LOG_PFRAMES!==void 0,dumpInitialTreeState:process.env.MI_DUMP_INITIAL_TREE_STATE!==void 0},process.env.MI_LOG_TREE_STAT&&(Ce.logTreeStats=process.env.MI_LOG_TREE_STAT==="cumulative"?"cumulative":"per-request"),Ce)}function Te(s){return String(s.id)}const zc=["Int","Long","Float","Double","String","Bytes"];function wt(s){const e=[],t=[];for(const r of s)r.type==="bySingleColumn"?(e.push(r),t.push({...r,type:"bySingleColumnV2"})):t.push(r);if(e.length>0){const r=JSON.stringify(e);console.warn(`type overriten from 'bySingleColumn' to 'bySingleColumnV2' for filters: ${r}`)}return t}const Re=(s,e)=>typeof e=="bigint"?e.toString():e;class Xc{constructor(e,t,r,o,n){P(this,"pFrame");P(this,"blobIdToResource",new Map);P(this,"blobHandleComputables",new Map);P(this,"preloadBlob",async e=>{const t=e.map(r=>this.getOrCreateComputableForBlob(r));for(const r of t)await r.awaitStableFullValue()});P(this,"resolveBlob",async e=>{const t=this.getOrCreateComputableForBlob(e);return this.blobDriver.getLocalPath((await t.awaitStableValue()).handle)});P(this,"resolveBlobContent",async e=>{try{const t=this.getOrCreateComputableForBlob(e),r=this.blobDriver.getLocalPath((await t.awaitStableValue()).handle);return await this.blobContentCache.forceFetch(r)}catch(t){const r=JSON.stringify(t);throw console.log(`resolveBlobContent catched error: ${r}`),t}});this.blobDriver=e,this.logger=t,this.spillPath=r,this.blobContentCache=o;const i=(a,l)=>this.logger[a](l);for(const a of n)for(const l of Go(a.data))this.blobIdToResource.set(Te(l),l);const c=[...new Map(n.map(a=>({...a,data:Jo(a.data,Te)})).map(a=>[G(a),a])).values()];try{const a=new Vs.PFrame(this.spillPath,pe().logPFrameRequests?i:void 0);a.setDataSource(this);for(const l of c)a.addColumnSpec(l.id,l.spec),a.setColumnData(l.id,l.data);this.pFrame=a}catch(a){throw new Error(`Rust PFrame creation failed, columns: ${JSON.stringify(c)}, error: ${a}`)}}getOrCreateComputableForBlob(e){let t=this.blobHandleComputables.get(e);if(t!==void 0)return t;const r=this.blobIdToResource.get(e);if(r===void 0)throw new Error(`Blob with id ${e} not found.`);return t=this.blobDriver.getDownloadedBlob(r).withPreCalculatedValueTree(),this.blobHandleComputables.set(e,t),t}[Symbol.dispose](){for(const e of this.blobHandleComputables.values())e.resetState();this.pFrame.dispose()}}class Yc{constructor(e){this.table=e}[Symbol.dispose](){this.table.then(e=>e.dispose())}}class zt{constructor(e,t,r){P(this,"pFrames");P(this,"pTables");P(this,"concurrencyLimiter");this.blobDriver=e,this.logger=t,this.spillPath=r;const o=new Tt.LRUCache({maxSize:1e9,fetchMethod:async i=>await Hr.readFile(i),sizeCalculation:i=>i.length}),n=new S.ConcurrencyLimitingExecutor(4);this.concurrencyLimiter=n,this.pFrames=new class extends Gr{constructor(i,c,a){super(),this.blobDriver=i,this.logger=c,this.spillPath=a}createNewResource(i){return pe().logPFrameRequests&&t.info(`PFrame creation (pFrameHandle = ${this.calculateParamsKey(i)}): ${JSON.stringify(i,Re)}`),new Xc(this.blobDriver,this.logger,this.spillPath,o,i)}calculateParamsKey(i){return Zc(i)}}(this.blobDriver,this.logger,this.spillPath),this.pTables=new class extends Gr{constructor(i){super(),this.pFrames=i}createNewResource(i){const c=i.pFrameHandle;pe().logPFrameRequests&&t.info(`PTable creation (pTableHandle = ${this.calculateParamsKey(i)}): ${JSON.stringify(i,Re)}`);const a=n.run(async()=>await this.pFrames.getByKey(c).pFrame.createTable({src:$e(i.def.src),filters:wt(i.def.filters)},i.signal)).then(async l=>{if(i.def.sorting.length===0)return l;try{return n.run(async()=>await l.sort(i.def.sorting,i.signal))}finally{l.dispose()}});return new Yc(a)}calculateParamsKey(i){return Qc(i)}}(this.pFrames)}static async init(e,t,r){const o=Gs.resolve(r);return await S.emptyDir(o),new zt(e,t,o)}createPFrame(e,t){const r=e.filter(n=>zc.find(i=>i===n.spec.valueType)).map(n=>A.mapPObjectData(n,i=>Qe.isPlTreeNodeAccessor(i)?Wo(i):A.isDataInfo(i)?A.mapDataInfo(i,c=>c.resourceInfo):zo(n.spec,i))),o=this.pFrames.acquire(r);return t.addOnDestroy(o.unref),o.key}createPTable(e,t,r){const o=this.createPFrame(A.extractAllColumns(e.src),t),n=A.mapPTableDef(e,c=>c.id),i=this.pTables.acquire({def:n,pFrameHandle:o,signal:r});return pe().logPFrameRequests&&this.logger.info(`Create PTable call (pFrameHandle = ${o}; pTableHandle = ${JSON.stringify(i)}): ${JSON.stringify(A.mapPTableDef(e,c=>c.spec),Re)}`),t.addOnDestroy(i.unref),i.key}async findColumns(e,t){const r={...t,compatibleWith:t.compatibleWith.length!==0?[{axesSpec:[...new Map(t.compatibleWith.map(n=>[G(n),n])).values()],qualifications:[]}]:[]};return{hits:(await this.pFrames.getByKey(e).pFrame.findColumns(r)).hits.filter(n=>n.mappingVariants.length===0||n.mappingVariants.some(i=>i.qualifications.forHit.length===0&&i.qualifications.forQueries.every(c=>c.length===0))).map(n=>n.hit)}}async getColumnSpec(e,t){return await this.pFrames.getByKey(e).pFrame.getColumnSpec(t)}async listColumns(e){return await this.pFrames.getByKey(e).pFrame.listColumns()}async calculateTableData(e,t,r){return pe().logPFrameRequests&&this.logger.info(`Call calculateTableData, handle = ${e}, request = ${JSON.stringify(t,Re)}`),await this.concurrencyLimiter.run(async()=>await this.pFrames.getByKey(e).pFrame.createTable({src:$e(t.src),filters:wt(t.filters)},r)).then(async o=>{if(t.sorting.length===0)return o;try{return await this.concurrencyLimiter.run(async()=>await o.sort(t.sorting,r))}finally{o.dispose()}}).then(async o=>{try{const n=o.getSpec(),i=await this.concurrencyLimiter.run(async()=>await o.getData([...n.keys()],void 0,r));return n.map((c,a)=>({spec:c,data:i[a]}))}finally{o.dispose()}})}async getUniqueValues(e,t,r){return pe().logPFrameRequests&&this.logger.info(`Call getUniqueValues, handle = ${e}, request = ${JSON.stringify(t,Re)}`),await this.concurrencyLimiter.run(async()=>await this.pFrames.getByKey(e).pFrame.getUniqueValues({...t,filters:wt(t.filters)},r))}async getShape(e){return(await this.pTables.getByKey(e).table).getShape()}async getSpec(e){return(await this.pTables.getByKey(e).table).getSpec()}async getData(e,t,r,o){const n=await this.pTables.getByKey(e).table;return await this.concurrencyLimiter.run(async()=>await n.getData(t,r,o))}}function $e(s){switch(s.type){case"column":return{type:"column",columnId:s.column};case"slicedColumn":return{type:"slicedColumn",columnId:s.column,newId:s.newId,axisFilters:s.axisFilters};case"inner":case"full":return{type:s.type,entries:s.entries.map(e=>$e(e))};case"outer":return{type:"outer",primary:$e(s.primary),secondary:s.secondary.map(e=>$e(e))};default:S.assertNever(s)}}function Qc(s){const e=re.createHash("sha256");return e.update(G(s)),e.digest().toString("hex")}function Zc(s){const e=[...s].map(r=>A.mapPObjectData(r,o=>{let n;const i=o.type;switch(i){case"Json":n={type:o.type,keyLength:o.keyLength,payload:Object.entries(o.data).map(([c,a])=>({key:c,value:a}))};break;case"JsonPartitioned":n={type:o.type,keyLength:o.partitionKeyLength,payload:Object.entries(o.parts).map(([c,a])=>({key:c,value:Te(a)}))};break;case"BinaryPartitioned":n={type:o.type,keyLength:o.partitionKeyLength,payload:Object.entries(o.parts).map(([c,a])=>({key:c,value:[Te(a.index),Te(a.values)]}))};break;default:throw Error(`unsupported resource type: ${JSON.stringify(i)}`)}return n.payload.sort((c,a)=>c.key.localeCompare(a.key)),n}));e.sort((r,o)=>r.id.localeCompare(o.id));const t=re.createHash("sha256");return t.update(G(e)),t.digest().toString("hex")}async function Os(s,e,t){const r={...xt,...Ut(e),...t},o=new S.HmacSha256Signer(r.localSecret),n=K.createDownloadClient(r.logger,s,r.localProjections),i=K.createLogsClient(s,r.logger),c=K.createUploadBlobClient(s,r.logger),a=K.createUploadProgressClient(s,r.logger),l=new K.DownloadDriver(r.logger,n,i,r.blobDownloadPath,o,r.blobDriverOps),u=new K.DownloadBlobToURLDriver(r.logger,o,n,r.downloadBlobToURLPath,r.downloadBlobToURLDriverOps),d=new K.UploadDriver(r.logger,o,c,a,r.uploadDriverOps),p=new K.LogsStreamDriver(r.logger,i,r.logStreamDriverOps),f=new K.LogsDriver(r.logger,p,l),k=await K.LsDriver.init(r.logger,s,o,r.localProjections,r.openFileDialogCallback,r.virtualLocalStoragesOverride),v=await zt.init(l,r.logger,r.pframesSpillPath);return{blobDriver:l,blobToURLDriver:u,logDriver:f,lsDriver:k,signer:o,uploadDriver:d,pFrameDriver:v}}class el{constructor(e){P(this,"enrichmentTargetsCache",new Tt.LRUCache({max:256,memoMethod:(e,t,{context:r})=>({value:this.calculateEnrichmentTargets(r)})}));this.quickJs=e}calculateEnrichmentTargets(e){const t=e.blockConfig();if(t.enrichmentTargets===void 0)return;const r=e.args();return Vn(this.quickJs,t.enrichmentTargets,t.code,r)}getEnrichmentTargets(e,t,r){const o={blockConfig:e,args:t};if(r===void 0)return this.calculateEnrichmentTargets(o);const n=`${r.argsRid}:${r.blockPackRid}`;return this.enrichmentTargetsCache.memo(n,{context:o}).value}}class Xt{constructor(e,t,r,o,n,i,c,a){P(this,"pl");P(this,"projectList");P(this,"openedProjectsByRid",new Map);this.env=e,this.driverKit=t,this.signer=r,this.projectListResourceId=o,this.openedProjectsList=n,this.projectListTree=i,this.blockRegistryProvider=c,this.projectList=a,this.pl=this.env.pl}get internalDriverKit(){return this.env.driverKit}async createProject(e,t=re.randomUUID()){const r=await this.pl.withWriteTx("MLCreateProject",async o=>{const n=await Uo(o,e);return o.createField(g.field(this.projectListResourceId,t),"Dynamic",n),await o.commit(),await g.toGlobalResourceId(n)});return await this.projectListTree.refreshState(),r}async setProjectMeta(e,t,r){await ie(this.env.projectHelper,this.pl,e,r,o=>{o.setMeta(t)}),await this.projectListTree.refreshState()}async deleteProject(e){await this.pl.withWriteTx("MLRemoveProject",async t=>{t.removeField(g.field(this.projectListResourceId,e)),await t.commit()}),await this.projectListTree.refreshState()}async projectIdToResourceId(e){return await this.pl.withReadTx("Project id to resource id",async t=>{const r=(await t.getField(g.field(this.projectListResourceId,e))).value;if(g.isNullResourceId(r))throw new Error("Unexpected project list structure.");return r})}async ensureProjectRid(e){return typeof e=="string"?await this.projectIdToResourceId(e):e}async openProject(e){const t=await this.ensureProjectRid(e);if(this.openedProjectsByRid.has(t))throw new Error(`Project ${t} already opened`);this.openedProjectsByRid.set(t,await nt.init(this.env,t)),this.openedProjectsList.setValue([...this.openedProjectsByRid.keys()])}async closeProject(e){const t=this.openedProjectsByRid.get(e);if(t===void 0)throw new Error(`Project ${e} not found among opened projects`);this.openedProjectsByRid.delete(e),await t.destroy(),this.openedProjectsList.setValue([...this.openedProjectsByRid.keys()])}getOpenedProject(e){const t=this.openedProjectsByRid.get(e);if(t===void 0)throw new Error(`Project ${e} not found among opened projects`);return t}async close(){await Promise.all([...this.openedProjectsByRid.values()].map(e=>e.destroy())),await this.projectListTree.terminate(),await this.env.retryHttpDispatcher.destroy(),await this.pl.close()}async closeAndAwaitTermination(){await this.close()}static generateLocalSecret(){return S.HmacSha256Signer.generateSecret()}static async init(e,t,r){const o={...vs,...ws(t),...r};o.defaultTreeOptions.logStat=pe().logTreeStats,o.debugOps.dumpInitialTreeState=pe().dumpInitialTreeState;const n=await e.withWriteTx("MLInitialization",async j=>{const N=g.field(j.clientRoot,uo);j.createField(N,"Dynamic");const U=await j.getField(N);if(g.isNullResourceId(U.value)){const F=j.createEphemeral(Yr);return j.lock(F),j.setField(N,F),await j.commit(),await F.globalId}else return U.value}),i=o.logger,c=await Os(e,t,o),a=new tt.RetryAgent(e.httpDispatcher,{minTimeout:250,maxRetries:4}),l=new Wr(a),u=new Do(l,c.signer,a),d=new K.DownloadUrlDriver(i,e.httpDispatcher,o.frontendDownloadPath),p=await fe.getQuickJS(),f={pl:e,signer:c.signer,logger:i,httpDispatcher:e.httpDispatcher,retryHttpDispatcher:a,ops:o,bpPreparer:u,frontendDownloadDriver:d,driverKit:c,blockUpdateWatcher:new Wc(l,i,{minDelay:o.devBlockUpdateRecheckInterval,http:a,preferredUpdateChannel:o.preferredUpdateChannel}),quickJs:p,projectHelper:new el(p)},k=new x.WatchableValue([]),v=await fo(e,n,k,f);return new Xt(f,c,c.signer,n,k,v.tree,l,v.computable)}}async function tl(s,e){return await Se(s.pingCheckDurationMs,s.maxPingsPerSecond,async()=>{const r=await new g.UnauthenticatedPlClient(e).ping();return JSON.stringify(r).slice(0,s.bodyLimit)+"..."})}async function rl(s,e){return await Se(s.blockRegistryDurationMs,s.maxRegistryChecksPerSecond,async()=>await je(new URL(s.blockOverviewPath,s.blockRegistryUrl),s,e))}async function sl(s,e){return await Se(s.blockRegistryDurationMs,s.maxRegistryChecksPerSecond,async()=>await je(new URL(s.blockOverviewPath,s.blockGARegistryUrl),s,e))}async function ol(s,e){return await Se(s.blockRegistryDurationMs,s.maxRegistryChecksPerSecond,async()=>await je(new URL(s.blockUiPath,s.blockRegistryUrl),s,e))}async function nl(s,e){return await Se(s.blockRegistryDurationMs,s.maxRegistryChecksPerSecond,async()=>await je(new URL(s.blockUiPath,s.blockGARegistryUrl),s,e))}async function il(s,e){return await Se(s.autoUpdateCdnDurationMs,s.maxAutoUpdateCdnChecksPerSecond,async()=>await je(s.autoUpdateCdnUrl,s,e))}async function Se(s,e,t){const r=Date.now(),o=[];for(;Jr(r)<s;){const n=Date.now();let i;try{i={ok:!0,value:await t()}}catch(l){i={ok:!1,error:l}}const c=Jr(n);o.push({elapsedMs:c,response:i});const a=1e3/e-c;a>0&&await _r.setTimeout(a)}return o}async function je(s,e,t){const{body:r,statusCode:o}=await tt.request(s,{dispatcher:t,headersTimeout:e.httpTimeoutMs,bodyTimeout:e.httpTimeoutMs}),n=await r.text();return{statusCode:o,beginningOfBody:n.slice(0,e.bodyLimit)+"..."}}function Jr(s){return Date.now()-s}function ye(s){const e=s.filter(i=>i.response.ok),t=s.length-e.length,{mean:r,median:o}=al(s),n=`
1
+ "use strict";var Is=Object.defineProperty;var Yt=(s,e)=>(e=Symbol[s])?e:Symbol.for("Symbol."+s),Qt=s=>{throw TypeError(s)};var Fs=(s,e,t)=>e in s?Is(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var P=(s,e,t)=>Fs(s,typeof e!="symbol"?e+"":e,t);var Zt=(s,e,t)=>{if(e!=null){typeof e!="object"&&typeof e!="function"&&Qt("Object expected");var r;t&&(r=e[Yt("asyncDispose")]),r===void 0&&(r=e[Yt("dispose")]),typeof r!="function"&&Qt("Object not disposable"),s.push([t,r,e])}else t&&s.push([t]);return e},er=(s,e,t)=>{var r=typeof SuppressedError=="function"?SuppressedError:function(i,c,a,l){return l=Error(a),l.name="SuppressedError",l.error=i,l.suppressed=c,l},o=i=>e=t?new r(i,e,"An error was suppressed during disposal"):(t=!0,i),n=i=>{for(;i=s.pop();)try{var c=i[1]&&i[1].call(i[2]);if(i[0])return Promise.resolve(c).then(n,a=>(o(a),n()))}catch(a){o(a)}if(t)throw e};return n()};Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("@platforma-sdk/model"),Y=require("@milaboratories/pl-model-middle-layer"),tr=require("@milaboratories/pl-deployments"),tt=require("undici"),Q=require("@platforma-sdk/block-tools"),se=require("node:fs"),J=require("node:path"),As=require("yaml"),S=require("@milaboratories/ts-helpers"),Ie=require("node:fs/promises"),Ds=require("@milaboratories/resolve-helper"),g=require("@milaboratories/pl-client"),Qe=require("@milaboratories/pl-tree"),x=require("@milaboratories/computable"),re=require("node:crypto"),O=require("@milaboratories/pl-model-backend"),Tt=require("lru-cache"),Ls=require("node:worker_threads"),Mr=require("denque"),we=require("@platforma-sdk/workflow-tengo"),G=require("canonicalize"),Ns=require("node:assert"),fe=require("quickjs-emscripten"),Bs=require("@milaboratories/pl-errors"),js=require("remeda"),_r=require("node:timers/promises"),K=require("@milaboratories/pl-drivers"),Vs=require("@milaboratories/pframes-rs-node"),xs=require("node:diagnostics_channel"),Us=require("node:stream/consumers"),Kr=require("node:os");function $t(s){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const t in s)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>s[t]})}}return e.default=s,Object.freeze(e)}const Gs=$t(J),Hr=$t(Ie),rr=$t(js);async function sr(s){try{return await Hr.stat(s,{bigint:!0})}catch(e){if(e.code==="ENOENT")return;throw e}}const Js=[Q.RegistryV1.PlPackageYamlConfigFile],Ms=[Q.RegistryV1.PlPackageJsonConfigFile],It=["backend","dist","tengo","tpl","main.plj.gz"],Ft=["config","dist","config.json"],qr=["frontend","dist"],or="block-model/dist/config.json",_s="block-ui/package.json",Ks=[It,Ft,Js,Ms,qr];async function Hs(s){return await sr(J.join(s,...Ft))!==void 0||await sr(J.join(s,...It))!==void 0}function dt(s,e){const t=Ds.tryResolve(s,e);if(t===void 0)throw new Error(`Can't resolve ${e} against ${s}`);return t}async function nr(s,e){if(J.isAbsolute(s)||(s=J.resolve(s)),await Hs(s))return{workflow:J.join(s,...It),config:J.join(s,...Ft),ui:J.join(s,...qr)};{const t=dt(s,or),r=dt(s,or),o=dt(s,_s);return{workflow:t,config:r,ui:J.resolve(o,"..","dist")}}}async function qs(s){try{return await se.promises.readFile(s,"utf8")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")return;throw e}}async function Ws(s){try{return await se.promises.stat(s,{bigint:!0})}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")return;throw e}}async function At(s){let e=0n;for(const t of Ks){const r=J.join(s,...t),o=await Ws(r);o!==void 0&&e<o.mtimeNs&&(e=o.mtimeNs)}return e.toString()}async function rt(s){const e=await se.promises.stat(s.components.workflow.main.file,{bigint:!0}),t=await se.promises.stat(s.components.model.file,{bigint:!0});return(e.mtimeNs>t.mtimeNs?e.mtimeNs:t.mtimeNs).toString()}class zs{constructor(e,t,r){this.v2Provider=e,this.registries=t,this.http=r}async getPackagesForRoot(e){const t=[],r=e.spec;switch(r.type){case"remote-v1":{const o=this.http!==void 0?{dispatcher:this.http}:{},i=await(await tt.request(`${r.url}/${Q.RegistryV1.GlobalOverviewPath}`,o)).body.json();for(const c of i){const{organization:a,package:l,latestMeta:u,latestVersion:d}=c,p={organization:a,name:l,version:d},f={id:p,meta:{title:u.title??"No title",description:u.description??"No Description",organization:{name:a,url:"https://unknown.com"}},spec:{type:"from-registry-v1",id:p,registryUrl:r.url}};t.push({registryId:e.id,id:p,latestByChannel:{[Y.AnyChannel]:f,[Y.StableChannel]:f},allVersions:c.allVersions.map(k=>({version:k,channels:[]}))})}return t}case"remote-v2":return(await this.v2Provider.getRegistry(r.url).listBlockPacks()).map(o=>({...o,registryId:e.id}));case"local-dev":for(const o of await se.promises.readdir(r.path,{withFileTypes:!0})){if(!o.isDirectory())continue;const n=J.join(r.path,o.name),i=await qs(J.join(n,Q.RegistryV1.PlPackageYamlConfigFile));if(i!==void 0){const c=Q.RegistryV1.PlPackageConfigData.parse(As.parse(i)),a=await At(n),l={organization:c.organization,name:c.package,version:"DEV"},u={id:l,meta:{title:c.meta.title??"No title",description:c.meta.description??"No Description",organization:{name:c.organization,url:"https://unknown.com"}},spec:{type:"dev-v2",folder:n,mtime:a}};t.push({registryId:e.id,id:l,latestByChannel:{[Y.AnyChannel]:u,[Y.StableChannel]:u},allVersions:[]})}else{let c=n,a=await Q.tryLoadPackDescription(c);if(a===void 0){for(const l of["block","meta"])if(c=J.join(n,l),a=await Q.tryLoadPackDescription(c),a!==void 0)break}if(a!==void 0){const l=await rt(a),u={id:a.id,meta:await Q.BlockPackMetaEmbedAbsoluteBytes.parseAsync(a.meta),spec:{type:"dev-v2",folder:c,mtime:l}};t.push({registryId:e.id,id:a.id,latestByChannel:{[Y.AnyChannel]:u,[Y.StableChannel]:u},allVersions:[]})}}}return t;default:return S.assertNever(r)}}async listBlockPacks(){const e=[],t=[];for(const r of this.registries)t.push({...r,status:"online"}),e.push(...await this.getPackagesForRoot(r));return{registries:t,blockPacks:e}}async getOverview(e,t,r){var i;const o=(i=this.registries.find(c=>c.id===e))==null?void 0:i.spec;if(!o)throw new Error(`Registry with id "${e}" not found`);if(o.type!=="remote-v2")throw new Error('Only "remote-v2" registries support specific package version overview retrieval.');return await this.v2Provider.getRegistry(o.url).getSpecificOverview(t,r)}}class Wr{constructor(e){P(this,"registries",new Map);this.http=e}getRegistry(e){const t=this.registries.get(e);if(t)return t;const r=new Q.RegistryV2Reader(Q.folderReaderByUrl(e,this.http));return this.registries.set(e,r),r}}const Xs={type:"remote-v2",url:"https://blocks.pl-open.science/"},Ys={type:"remote-v1",url:"https://block.registry.platforma.bio/releases"},Qs={type:"remote-v1",url:"https://block.registry.platforma.bio/dev"},Zs={groups:[{id:"default",label:"Default",blocks:[]}]},eo={stagingRefreshTimestamp:0,blocksInLimbo:[]},to={label:"New Project"},ro={name:"UserProject",version:"2"},zr="SchemaVersion",Xr="1",Dt="ProjectCreated",Fe="ProjectLastModified",Ae="ProjectMeta",ge="ProjectStructure",Ze="BlockRenderingState",so="BlockFrontendState/",oo=/^BlockFrontendState\/(?<blockid>.*)$/;function bt(s){return`${so}${s}`}const no="BlockArgsAuthor/";function St(s){return`${no}${s}`}const kt="ProjectStructureAuthor";function io(s){const e=s.match(oo);if(e!==null)return e.groups.blockid}const ao="__serviceTemplate_";function Pt(s){return`${ao}${s}`}function H(s,e){return`${s}-${e}`}const co=/^(?<blockId>.*)-(?<fieldName>blockPack|blockSettings|prodArgs|currentArgs|prodCtx|prodUiCtx|prodOutput|prodCtxPrevious|prodUiCtxPrevious|prodOutputPrevious|stagingCtx|stagingUiCtx|stagingOutput|stagingCtxPrevious|stagingUiCtxPrevious|stagingOutputPrevious)$/;function lo(s){const e=s.match(co);if(e===null)return;const{blockId:t,fieldName:r}=e.groups;return{blockId:t,fieldName:r}}const uo="projects",Yr={name:"Projects",version:"1"},po=s=>g.resourceTypesEqual(s.type,Yr)?s.fields:[];async function fo(s,e,t,r){const o=await Qe.SynchronizedTreeState.init(s,e,{...r.ops.defaultTreeOptions,pruning:po},r.logger);return{computable:x.Computable.make(i=>{const c=i.accessor(o.entry()).node(),a=t.getValue(i);if(c===void 0)return;const l=[];for(const u of c.listDynamicFields()){const d=c.traverse(u);if(d===void 0)continue;const p=S.notEmpty(d.getKeyValueAsJson(Ae)),f=S.notEmpty(d.getKeyValueAsJson(Dt)),k=S.notEmpty(d.getKeyValueAsJson(Fe));l.push({id:u,rid:d.id,created:new Date(f),lastModified:new Date(k),opened:a.indexOf(d.id)>=0,meta:p})}return l.sort(u=>-u.lastModified.valueOf()),l}).withStableType(),tree:o}}const go={name:"EphRenderTemplate",version:"1"},ho={name:"RenderTemplate",version:"1"};function st(s,e,t,r,o){if(o.length===0)throw new Error("Zero output names provided");const n=t?s.createEphemeral(go):s.createStruct(ho),i=g.field(n,"template"),c=g.field(n,"inputs");return s.createField(i,"Input",e),s.createField(c,"Input",g.Pl.createPlMap(s,r,t)),s.lockInputs(n),g.Pl.futureRecord(s,n,o,"Output","outputs/")}const mo={name:"BContextEnd",version:"1"},vo={name:"BContext",version:"1"},yo="id",wo="parent/",bo=["context","result"];function ir(s,e,t){return st(s,e,!0,t,bo)}function So(s){const e=s.createEphemeral(mo);return s.lock(e),e}function ar(s,e){if(e.length===0)return So(s);if(e.length===1)return e[0];const t=s.createEphemeral(vo);s.createField(g.field(t,yo),"Input",g.Pl.createPlString(s,re.randomUUID()));for(let r=0;r<e.length;r++)s.createField(g.field(t,`${wo}${r}`),"Input",e[r]);return s.lock(t),t}function Qr(s,e){const t=new Map,r=(o,n,i)=>{const c=re.createHash("sha256");n.updateCacheKey(o,c,i);const a=c.digest("hex");if(!t.has(a)){const l=n.render(o,s,r,i);t.set(a,l)}return t.get(a)};return r(e.template,Zr,e.hashToSource)}const cr={updateCacheKey(s,e,t){e.update(O.PlTemplateLibV1.type.name).update(O.PlTemplateLibV1.type.version).update(s.name).update(s.version).update(ye(s.name,t,s.sourceHash))},render(s,e,t,r){return e.createValue(O.PlTemplateLibV1.type,JSON.stringify(O.PlTemplateLibV1.fromV3Data(s,ye(s.name,r,s.sourceHash)).data))}},Ue={updateCacheKey(s,e,t){e.update(O.PlTemplateSoftwareV1.type.name).update(O.PlTemplateSoftwareV1.type.version).update(s.name).update(s.version).update(ye(s.name,t,s.sourceHash))},render(s,e,t,r){const o=O.PlTemplateSoftwareV1.fromV3Data(s,ye(s.name,r,s.sourceHash)),n=e.createStruct(O.PlTemplateSoftwareV1.type,o.data);return e.setKValue(n,O.PlTemplateSoftwareV1.metaNameKey,JSON.stringify(o.name)),e.lock(n),n}},Zr={updateCacheKey(s,e,t){e.update(O.PlTemplateV1.type.name).update(O.PlTemplateV1.type.version).update(s.hashOverride??"no-override").update(s.name).update(s.version).update(ye(s.name,t,s.sourceHash));const r=o=>(o.sort((n,i)=>n[0]===i[0]?0:n[0]<i[0]?-1:1),o);for(const[o,n]of r(Object.entries(s.libs??{})))e.update("lib:"+o),cr.updateCacheKey(n,e,t);for(const[o,n]of r(Object.entries(s.software??{})))e.update("soft:"+o),Ue.updateCacheKey(n,e,t);for(const[o,n]of r(Object.entries(s.assets??{})))e.update("asset:"+o),Ue.updateCacheKey(n,e,t);for(const[o,n]of r(Object.entries(s.templates??{})))e.update("tpl:"+o),this.updateCacheKey(n,e,t)},render(s,e,t,r){const o=e.createStruct(O.PlTemplateV1.type,JSON.stringify(O.PlTemplateV1.fromV3Data(s,ye(s.name,r,s.sourceHash)).data));for(const[c,a]of Object.entries(s.libs??{})){const l=O.PlTemplateV1.libField(o,c);e.createField(l,"Input"),e.setField(l,t(a,cr,r))}for(const[c,a]of Object.entries(s.software??{})){const l=O.PlTemplateV1.swField(o,c);e.createField(l,"Input"),e.setField(l,t(a,Ue,r))}for(const[c,a]of Object.entries(s.assets??{})){const l=O.PlTemplateV1.swField(o,c);e.createField(l,"Input"),e.setField(l,t(a,Ue,r))}for(const[c,a]of Object.entries(s.templates??{})){const l=O.PlTemplateV1.tplField(o,c);e.createField(l,"Input"),e.setField(l,t(a,Zr,r))}if(e.lock(o),!s.hashOverride)return o;const n=e.createStruct(O.PlTemplateOverrideV1.type,JSON.stringify(O.PlTemplateOverrideV1.fromV3Data(s))),i=O.PlTemplateOverrideV1.tplField(n);return e.createField(i,"Service"),e.setField(i,o),e.lock(n),n}};function ye(s,e,t){return S.notEmpty(e[t],`trying to get "${s}" source: sources map doesn't contain source hash ${t}`)}function ko(s,e){const t=O.parseTemplate(e.content),r=t.type;switch(r){case"pl.tengo-template.v2":return ts(s,t);case"pl.tengo-template.v3":return Qr(s,t);default:S.assertNever(r)}}function Po(s,e){const t=e.data,r=t.type;switch(r){case"pl.tengo-template.v2":return ts(s,t);case"pl.tengo-template.v3":return Qr(s,t);default:S.assertNever(r)}}const lr={hash(s,e){e.update(O.PlTemplateLibV1.type.name).update(O.PlTemplateLibV1.type.version).update(s.name).update(s.version).update(s.src)},render(s,e,t){return e.createValue(O.PlTemplateLibV1.type,JSON.stringify(O.PlTemplateLibV1.fromV2Data(s).data))}},Ge={hash(s,e){e.update(O.PlTemplateSoftwareV1.type.name).update(O.PlTemplateSoftwareV1.type.version).update(s.name).update(s.version).update(s.src)},render(s,e,t){const r=O.PlTemplateSoftwareV1.fromV2Data(s),o=e.createStruct(O.PlTemplateSoftwareV1.type,r.data);return e.setKValue(o,O.PlTemplateSoftwareV1.metaNameKey,JSON.stringify(r.name)),e.lock(o),o}},es={hash(s,e){e.update(O.PlTemplateV1.type.name).update(O.PlTemplateV1.type.version).update(s.hashOverride??"no-override").update(s.name).update(s.version).update(s.src);const t=r=>(r.sort((o,n)=>o[0]===n[0]?0:o[0]<n[0]?-1:1),r);for(const[r,o]of t(Object.entries(s.libs??{})))e.update("lib:"+r),lr.hash(o,e);for(const[r,o]of t(Object.entries(s.software??{})))e.update("soft:"+r),Ge.hash(o,e);for(const[r,o]of t(Object.entries(s.assets??{})))e.update("asset:"+r),Ge.hash(o,e);for(const[r,o]of t(Object.entries(s.templates??{})))e.update("tpl:"+r),this.hash(o,e)},render(s,e,t){const r=e.createStruct(O.PlTemplateV1.type,JSON.stringify(O.PlTemplateV1.fromV2Data(s).data));for(const[i,c]of Object.entries(s.libs??{})){const a=O.PlTemplateV1.libField(r,i);e.createField(a,"Input"),e.setField(a,t(c,lr))}for(const[i,c]of Object.entries(s.software??{})){const a=O.PlTemplateV1.swField(r,i);e.createField(a,"Input"),e.setField(a,t(c,Ge))}for(const[i,c]of Object.entries(s.assets??{})){const a=O.PlTemplateV1.swField(r,i);e.createField(a,"Input"),e.setField(a,t(c,Ge))}for(const[i,c]of Object.entries(s.templates??{})){const a=O.PlTemplateV1.tplField(r,i);e.createField(a,"Input"),e.setField(a,t(c,es))}if(e.lock(r),!s.hashOverride)return r;const o=e.createStruct(O.PlTemplateOverrideV1.type,JSON.stringify(O.PlTemplateOverrideV1.fromV2Data(s))),n=O.PlTemplateOverrideV1.tplField(o);return e.createField(n,"Service"),e.setField(n,r),e.lock(o),o}};function ts(s,e){const t=new Map,r=(o,n)=>{const i=re.createHash("sha256");n.hash(o,i);const c=i.digest("hex");if(!t.has(c)){const a=n.render(o,s,r);t.set(c,a)}return t.get(c)};return r(e,es)}const rs={name:"TengoTemplateGet",version:"1"},ss="registry",os="templateURI",ns="template",Co={name:"TengoTemplatePack",version:"1"},Ro={name:"TengoTemplatePackConvert",version:"1"},Eo="templatePack",Oo="template";async function Lt(s){switch(s.type){case"from-file":return{type:"explicit",content:await se.promises.readFile(s.path)};case"from-registry":case"explicit":return s;case"prepared":return s;default:return S.assertNever(s)}}function To(s,e){const t=s.createStruct(rs),r=g.field(t,ss),o=g.field(t,os),n=g.field(t,ns);return s.setField(r,s.createValue(g.Pl.JsonString,Buffer.from(JSON.stringify(e.registry)))),s.setField(o,s.createValue(g.Pl.JsonString,Buffer.from(JSON.stringify(e.path)))),n}function Ne(s,e){switch(e.type){case"from-registry":return To(s,e);case"explicit":return ko(s,e);case"prepared":return Po(s,e);default:return S.assertNever(e)}}const Nt={name:"Frontend/FromUrl",version:"1"},Bt={name:"Frontend/FromFolder",version:"1"};function $o(s,e){switch(e.type){case"url":return s.createValue(Nt,JSON.stringify({url:e.url}));case"local":return s.createValue(Bt,JSON.stringify({path:e.path,signature:e.signature}));default:return S.assertNever(e)}}class Io{constructor(){P(this,"nextMessageId",0);P(this,"worker");P(this,"pendingRequests",new Map);const e=typeof global<"u"&&"__WORKER_PATH__"in global?global.__WORKER_PATH__:J.resolve(void 0,"worker.js"),t=this.worker=new Ls.Worker(e,{workerData:{}});t.on("message",({id:r,data:o,error:n})=>{const{resolve:i,reject:c}=this.pendingRequests.get(r);this.pendingRequests.delete(r),n?c(new Error(n)):i(o)}),t.on("error",r=>{console.error("Worker error",r),this.rejectAllPendingRequests(r)})}rejectAllPendingRequests(e){Array.from(this.pendingRequests.values()).map(({reject:t})=>{t(e)})}async process(e,...t){return new Promise((r,o)=>{const n=++this.nextMessageId;this.pendingRequests.set(n,{resolve:r,reject:o}),this.worker.postMessage({id:n,type:e,args:t})})}async terminate(){this.rejectAllPendingRequests(new Error("Worker terminated")),await this.worker.terminate()}[Symbol.asyncDispose](){return this.terminate()}}const Fo={name:"BlockPackCustom",version:"1"},is="template",as="frontend";function ur(s){return s.endsWith("/")?s:`${s}/`}function Ao(s){return Buffer.from(s).toString("utf8")}function Je(s){return JSON.parse(Ao(s))}class Do{constructor(e,t,r){P(this,"remoteContentCache",new Tt.LRUCache({max:500,maxSize:128*1024*1024,fetchMethod:async e=>{const t=this.http!==void 0?{dispatcher:this.http}:{};return await(await tt.request(e,t)).body.arrayBuffer()},sizeCalculation:e=>e.byteLength}));this.v2RegistryProvider=e,this.signer=t,this.http=r}async getBlockConfigContainer(e){switch(e.type){case"explicit":return e.config;case"prepared":return e.config;case"dev-v1":{const t=await nr(e.folder),r=await se.promises.readFile(t.config,{encoding:"utf-8"});return JSON.parse(r)}case"dev-v2":{const t=await Q.loadPackDescription(e.folder),r=await se.promises.readFile(t.components.model.file,{encoding:"utf-8"});return JSON.parse(r)}case"from-registry-v1":{const t=`${ur(e.registryUrl)}${Q.RegistryV1.packageContentPrefix({organization:e.id.organization,package:e.id.name,version:e.id.version})}`,r=await this.remoteContentCache.forceFetch(`${t}/config.json`);return Je(r)}case"from-registry-v2":{const r=await this.v2RegistryProvider.getRegistry(e.registryUrl).getComponents(e.id),o=await this.remoteContentCache.forceFetch(r.model.url);return Je(o)}default:return S.assertNever(e)}}async prepare(e){var o=[];try{if(e.type==="prepared")return e;const t=await this.prepareWithoutUnpacking(e);const r=Zt(o,new Io,!0);return{...t,type:"prepared",template:{type:"prepared",data:await r.process("parseTemplate",t.template.content)}}}catch(n){var i=n,c=!0}finally{var a=er(o,i,c);a&&await a}}async prepareWithoutUnpacking(e){switch(e.type){case"explicit":return e;case"dev-v1":{const t=await nr(e.folder),r=await se.promises.readFile(t.workflow),o=JSON.parse(await se.promises.readFile(t.config,"utf-8")),n=t.ui;return{type:"explicit",template:{type:"explicit",content:r},config:o,frontend:{type:"local",path:n,signature:this.signer.sign(n)},source:e}}case"dev-v2":{const t=await Q.loadPackDescription(e.folder),r=JSON.parse(await se.promises.readFile(t.components.model.file,{encoding:"utf-8"})),o=await se.promises.readFile(t.components.workflow.main.file),n=t.components.ui.folder,i={...e};return e.mtime===void 0&&(i.mtime=await rt(t)),{type:"explicit",template:{type:"explicit",content:o},config:r,frontend:{type:"local",path:n,signature:this.signer.sign(n)},source:i}}case"from-registry-v1":{const t=`${ur(e.registryUrl)}${Q.RegistryV1.packageContentPrefix({organization:e.id.organization,package:e.id.name,version:e.id.version})}`,r=`${t}/template.plj.gz`,o=await this.remoteContentCache.forceFetch(r),n=new Uint8Array(o),i=await this.remoteContentCache.forceFetch(`${t}/config.json`),c=Je(i);return{type:"explicit",template:{type:"explicit",content:n},config:c,frontend:{type:"url",url:`${t}/frontend.tgz`},source:e}}case"from-registry-v2":{const r=await this.v2RegistryProvider.getRegistry(e.registryUrl).getComponents(e.id),o=async()=>Je(await this.remoteContentCache.forceFetch(r.model.url)),n=async()=>await this.remoteContentCache.forceFetch(r.workflow.main.url),[i,c]=await Promise.all([o(),n()]);return{type:"explicit",template:{type:"explicit",content:Buffer.from(c)},config:i,frontend:{type:"url",url:r.ui.url},source:e}}default:return S.assertNever(e)}}}function Lo(s,e){const t={config:e.config,source:e.source},r=s.createStruct(Fo,JSON.stringify(t));return s.createField(g.field(r,is),"Input",Ne(s,e.template)),s.createField(g.field(r,as),"Input",$o(s,e.frontend)),s.lock(r),r}function dr(s,e){switch(e.type){case"prepared":return Lo(s,e);default:return S.assertNever(e.type)}}function Me(s,e,t){return{__isRef:!0,blockId:s,name:e}}function No(s){return typeof s=="object"&&s!==null&&"__isRef"in s&&s.__isRef===!0&&"blockId"in s&&"name"in s}function Ct(s,e,t){const r=typeof e;switch(r){case"function":case"bigint":case"number":case"string":case"boolean":case"symbol":case"undefined":return;case"object":if(e===null)return;if(No(e))t===void 0||t.has(e.blockId)?(s.upstreams.add(e.blockId),e.requireEnrichments&&s.upstreamsRequiringEnrichments.add(e.blockId)):s.missingReferences=!0;else if(Array.isArray(e))for(const o of e)Ct(s,o,t);else for(const[,o]of Object.entries(e))Ct(s,o,t);return;default:S.assertNever(r)}}function Bo(s,e){const t={upstreams:new Set,upstreamsRequiringEnrichments:new Set,missingReferences:!1};return Ct(t,s,e),t}function ae(s){return{*[Symbol.iterator](){for(const e of s.groups)for(const t of e.blocks)yield t}}}class cs{constructor(e){P(this,"nodes");this.nodes=e}traverseIds(e,...t){const r=new Set;return this.traverse(e,t,o=>r.add(o.id)),r}traverseIdsExcludingRoots(e,...t){const r=this.traverseIds(e,...t);for(const o of t)r.delete(o);return r}traverse(e,t,r){let o=[...t];const n=new Set(o);for(;o.length>0;){const i=[];for(const c of o){const a=this.nodes.get(c);r(a),a[e].forEach(l=>{n.has(l)||(n.add(l),i.push(l))})}o=i}}}function Rt(s){const e=new Map;let t;for(const{id:r}of ae(s)){const o={id:r,missingReferences:!1};e.set(r,o),t===void 0?(o.directUpstream=o.upstream=new Set,o.enrichments=o.enrichmentTargets=new Set):(o.directUpstream=o.upstream=new Set([t.id]),t.directDownstream=t.downstream=new Set([o.id]),t.enrichments=t.enrichmentTargets=new Set),t=o}return t!==void 0&&(t.directDownstream=t.downstream=new Set),new cs(e)}function Ye(s,e){const t=new Map,r=new cs(t),o=new Set;for(const{id:n}of ae(s)){const i=e(n);if(i===void 0)continue;const c=Bo(i.args,o),a=new Set([...c.upstreams,...r.traverseIds("enrichments",...c.upstreamsRequiringEnrichments)]),l=new Set;for(const{id:p}of ae(s)){if(p===n)break;if(a.has(p)){l.add(p);for(const f of r.traverseIdsExcludingRoots("upstream",p))l.delete(f)}}const u=i.enrichmentTargets===void 0?new Set(c.upstreams):new Set(i.enrichmentTargets.map(p=>p.blockId)),d={id:n,missingReferences:c.missingReferences,upstream:l,directUpstream:c.upstreams,enrichmentTargets:u,downstream:new Set,directDownstream:new Set,enrichments:new Set};t.set(n,d),c.upstreams.forEach(p=>t.get(p).directDownstream.add(n)),l.forEach(p=>t.get(p).downstream.add(n)),u.forEach(p=>{var f;return(f=t.get(p))==null?void 0:f.enrichments.add(n)}),o.add(n)}return r}function jo(s,e){if(s.size!==e.size)return!1;for(const t of s)if(!e.has(t))return!1;return!0}function Et(s,e){if(s.size>e.size)return Et(e,s);for(const t of s)if(e.has(t))return!0;return!1}function pr(s,e){const t=new Set,r=new Set,o=new Set;return s.nodes.forEach(n=>{const i=e.nodes.get(n.id);i===void 0?t.add(n.id):(!jo(n.upstream,i.upstream)||Et(n.upstream,o))&&o.add(n.id)}),e.nodes.forEach(n=>{s.nodes.has(n.id)?Et(n.upstream,o)&&o.add(n.id):r.add(n.id)}),{onlyInA:t,onlyInB:r,different:o}}let pt;async function ls(){if(pt===void 0){const s=await Lt(we.Templates["pframes.export-pframe-for-ui"]);if(s.type!=="explicit")throw new Error("Unexpected prepared template type.");const e=re.createHash("sha256").update(s.content).digest("hex");pt={spec:s,hash:e}}return pt}function Vo(s,e,t){return st(s,e,!0,{pf:t},["result"]).result}function ft(s,e){let t=!1,r,o;return()=>{if(!t)return t=!0,r=s(),o=e(),o;const n=s();return r!==n&&(r=n,o=e()),e()}}class fr{constructor(e,t,r,o){P(this,"currentArgsC",ft(()=>this.fields.currentArgs.modCount,()=>S.cachedDeserialize(this.fields.currentArgs.value)));P(this,"prodArgsC",ft(()=>{var e;return(e=this.fields.prodArgs)==null?void 0:e.modCount},()=>{var t;const e=(t=this.fields.prodArgs)==null?void 0:t.value;if(e!==void 0)return S.cachedDeserialize(e)}));P(this,"productionStaleC",ft(()=>{var e;return`${this.fields.currentArgs.modCount}_${(e=this.fields.prodArgs)==null?void 0:e.modCount}`},()=>this.fields.prodArgs===void 0||Buffer.compare(this.fields.currentArgs.value,this.fields.prodArgs.value)!==0));this.id=e,this.fields=t,this.config=r,this.source=o}check(){if(this.fields.prodOutput===void 0!=(this.fields.prodCtx===void 0))throw new Error("inconsistent prod fields");if(this.fields.stagingOutput===void 0!=(this.fields.stagingCtx===void 0))throw new Error("inconsistent stage fields");if(this.fields.prodOutputPrevious===void 0!=(this.fields.prodCtxPrevious===void 0))throw new Error("inconsistent prod cache fields");if(this.fields.stagingOutputPrevious===void 0!=(this.fields.stagingCtxPrevious===void 0))throw new Error("inconsistent stage cache fields");if(this.fields.blockPack===void 0)throw new Error("no block pack field");if(this.fields.currentArgs===void 0)throw new Error("no current args field")}get currentArgs(){return this.currentArgsC()}get stagingRendered(){return this.fields.stagingCtx!==void 0}get productionRendered(){return this.fields.prodCtx!==void 0}get productionHasErrors(){var e;return((e=this.fields.prodUiCtx)==null?void 0:e.status)==="Error"}get requireProductionRendering(){return!this.productionRendered||this.productionStaleC()||this.productionHasErrors}get prodArgs(){return this.prodArgsC()}getTemplate(e){return e.getFutureFieldValue(g.Pl.unwrapHolder(e,this.fields.blockPack.ref),is,"Input")}}const xo=s=>{throw new Error(`No new block info for ${s}`)};class et{constructor(e,t,r,o,n,i,c,a,l,u,d,p,f){P(this,"globalModCount",0);P(this,"fieldsChanged",!1);P(this,"lastModifiedChanged",!1);P(this,"structureChanged",!1);P(this,"metaChanged",!1);P(this,"renderingStateChanged",!1);P(this,"changedBlockFrontendStates",new Set);P(this,"blocksWithChangedInputs",new Set);P(this,"stagingGraph");P(this,"pendingProductionGraph");P(this,"actualProductionGraph");this.rid=e,this.tx=t,this.author=r,this.schema=o,this.lastModified=n,this.meta=i,this.struct=c,this.renderingState=a,this.blocksInLimbo=l,this.blockInfos=u,this.blockFrontendStates=d,this.ctxExportTplHolder=p,this.projectHelper=f}fixProblemsAndMigrate(){this.blockInfos.forEach(t=>{(t.fields.prodArgs===void 0||t.fields.prodOutput===void 0||t.fields.prodCtx===void 0)&&this.deleteBlockFields(t.id,"prodArgs","prodOutput","prodCtx")});let e;this.blockInfos.forEach(t=>{t.fields.blockSettings===void 0&&(e===void 0&&(e=this.createJsonFieldValue(Y.InitialBlockSettings)),this.setBlockFieldObj(t.id,"blockSettings",e))})}get wasModified(){return this.lastModifiedChanged||this.structureChanged||this.fieldsChanged||this.metaChanged||this.renderingStateChanged||this.changedBlockFrontendStates.size>0}get structure(){return JSON.parse(JSON.stringify(this.struct))}getStagingGraph(){return this.stagingGraph===void 0&&(this.stagingGraph=Rt(this.struct)),this.stagingGraph}getProductionGraphBlockInfo(e,t){const r=this.getBlockInfo(e);let o,n;if(t){if(r.fields.prodArgs===void 0)return;o=r.fields.prodArgs,n=r.prodArgs}else o=S.notEmpty(r.fields.currentArgs),n=r.currentArgs;const i=S.notEmpty(r.fields.blockPack);return g.isResourceId(o.ref)&&g.isResourceId(i.ref)?{args:n,enrichmentTargets:this.projectHelper.getEnrichmentTargets(()=>r.config,()=>n,{argsRid:o.ref,blockPackRid:i.ref})}:{args:n,enrichmentTargets:this.projectHelper.getEnrichmentTargets(()=>r.config,()=>n)}}getPendingProductionGraph(){return this.pendingProductionGraph===void 0&&(this.pendingProductionGraph=Ye(this.struct,e=>this.getProductionGraphBlockInfo(e,!1))),this.pendingProductionGraph}getActualProductionGraph(){return this.actualProductionGraph===void 0&&(this.actualProductionGraph=Ye(this.struct,e=>this.getProductionGraphBlockInfo(e,!0))),this.actualProductionGraph}getBlockInfo(e){const t=this.blockInfos.get(e);if(t===void 0)throw new Error(`No such block: ${e}`);return t}createJsonFieldValueByContent(e){const t=Buffer.from(e);return{ref:this.tx.createValue(g.Pl.JsonObject,t),value:t,status:"Ready"}}createJsonFieldValue(e){return this.createJsonFieldValueByContent(JSON.stringify(e))}getBlock(e){for(const t of ae(this.struct))if(t.id===e)return t;throw new Error("block not found")}setBlockFieldObj(e,t,r){const o=g.field(this.rid,H(e,t));if(r.ref===void 0)throw new Error("Can't set value with empty ref");this.getBlockInfo(e).fields[t]===void 0?this.tx.createField(o,"Dynamic",r.ref):this.tx.setField(o,r.ref),this.getBlockInfo(e).fields[t]={modCount:this.globalModCount++,...r},this.fieldsChanged=!0}setBlockField(e,t,r,o,n){this.setBlockFieldObj(e,t,{ref:r,status:o,value:n})}deleteBlockFields(e,...t){let r=!1;const o=this.getBlockInfo(e);for(const n of t){const i=o.fields;n in i&&(this.tx.removeField(g.field(this.rid,H(e,n))),delete i[n],this.fieldsChanged=!0,r=!0)}return r}updateLastModified(){this.lastModified=Date.now(),this.lastModifiedChanged=!0}resetStagingRefreshTimestamp(){this.renderingState.stagingRefreshTimestamp=Date.now(),this.renderingStateChanged=!0}resetStaging(e){var r,o,n;const t=this.getBlockInfo(e).fields;((r=t.stagingOutput)==null?void 0:r.status)==="Ready"&&((o=t.stagingCtx)==null?void 0:o.status)==="Ready"&&((n=t.stagingUiCtx)==null?void 0:n.status)==="Ready"&&(this.setBlockFieldObj(e,"stagingOutputPrevious",t.stagingOutput),this.setBlockFieldObj(e,"stagingCtxPrevious",t.stagingCtx),this.setBlockFieldObj(e,"stagingUiCtxPrevious",t.stagingUiCtx)),this.deleteBlockFields(e,"stagingOutput","stagingCtx","stagingUiCtx")&&this.resetStagingRefreshTimestamp()}resetProduction(e){var r,o,n;const t=this.getBlockInfo(e).fields;((r=t.prodOutput)==null?void 0:r.status)==="Ready"&&((o=t.prodCtx)==null?void 0:o.status)==="Ready"&&((n=t.prodUiCtx)==null?void 0:n.status)==="Ready"&&(this.setBlockFieldObj(e,"prodOutputPrevious",t.prodOutput),this.setBlockFieldObj(e,"prodCtxPrevious",t.prodCtx),this.setBlockFieldObj(e,"prodUiCtxPrevious",t.prodUiCtx)),this.deleteBlockFields(e,"prodOutput","prodCtx","prodUiCtx","prodArgs")}resetOrLimboProduction(e){var r,o;const t=this.getBlockInfo(e).fields;return((r=t.prodOutput)==null?void 0:r.status)==="Ready"&&((o=t.prodCtx)==null?void 0:o.status)==="Ready"?this.blocksInLimbo.has(e)?!1:(this.blocksInLimbo.add(e),this.renderingStateChanged=!0,this.deleteBlockFields(e,"prodOutputPrevious","prodCtxPrevious","prodUiCtxPrevious"),!0):this.deleteBlockFields(e,"prodOutput","prodCtx","prodUiCtx","prodArgs")}setArgs(e){const t=[];for(const{blockId:r,args:o}of e){const n=this.getBlockInfo(r);JSON.parse(o);const i=Buffer.from(o);if(Buffer.compare(n.fields.currentArgs.value,i)===0)continue;const c=this.tx.createValue(g.Pl.JsonObject,i);this.setBlockField(r,"currentArgs",c,"Ready",i),this.blocksWithChangedInputs.add(r),t.push(r)}this.getStagingGraph().traverse("downstream",t,({id:r})=>this.resetStaging(r)),t.length>0&&this.updateLastModified()}setUiState(e,t){if(this.blockInfos.get(e)===void 0)throw new Error("no such block");this.blockFrontendStates.get(e)!==t&&(t===void 0?this.blockFrontendStates.delete(e):this.blockFrontendStates.set(e,t),this.changedBlockFrontendStates.add(e),this.blocksWithChangedInputs.add(e),this.updateLastModified())}setBlockSettings(e,t){this.setBlockFieldObj(e,"blockSettings",this.createJsonFieldValue(t)),this.updateLastModified()}createProdCtx(e){const t=[];return e.forEach(r=>{var n;const o=this.getBlockInfo(r);if(((n=o.fields.prodCtx)==null?void 0:n.ref)===void 0)throw new Error("One of the upstreams staging is not rendered.");t.push(g.Pl.unwrapHolder(this.tx,o.fields.prodCtx.ref))}),ar(this.tx,t)}createStagingCtx(e){const t=[];return e.forEach(r=>{var n,i;const o=this.getBlockInfo(r);if(((n=o.fields.stagingCtx)==null?void 0:n.ref)===void 0)throw new Error("One of the upstreams staging is not rendered.");t.push(g.Pl.unwrapHolder(this.tx,o.fields.stagingCtx.ref)),((i=o.fields.prodCtx)==null?void 0:i.ref)!==void 0&&t.push(g.Pl.unwrapHolder(this.tx,o.fields.prodCtx.ref))}),ar(this.tx,t)}exportCtx(e){return Vo(this.tx,g.Pl.unwrapHolder(this.tx,this.ctxExportTplHolder),e)}renderStagingFor(e){this.resetStaging(e);const t=this.getBlockInfo(e),r=this.createStagingCtx(this.getStagingGraph().nodes.get(e).upstream);if(this.getBlock(e).renderingMode!=="Heavy")throw new Error("not supported yet");const o=t.getTemplate(this.tx),n=ir(this.tx,o,{args:t.fields.currentArgs.ref,blockId:this.tx.createValue(g.Pl.JsonString,JSON.stringify(e)),isProduction:this.tx.createValue(g.Pl.JsonBool,JSON.stringify(!1)),context:r});this.setBlockField(e,"stagingCtx",g.Pl.wrapInEphHolder(this.tx,n.context),"NotReady"),this.setBlockField(e,"stagingUiCtx",this.exportCtx(n.context),"NotReady"),this.setBlockField(e,"stagingOutput",n.result,"NotReady")}renderProductionFor(e){this.resetProduction(e);const t=this.getBlockInfo(e),r=this.createProdCtx(this.getPendingProductionGraph().nodes.get(e).upstream);if(this.getBlock(e).renderingMode==="Light")throw new Error("Can't render production for light block.");const o=t.getTemplate(this.tx),n=ir(this.tx,o,{args:t.fields.currentArgs.ref,blockId:this.tx.createValue(g.Pl.JsonString,JSON.stringify(e)),isProduction:this.tx.createValue(g.Pl.JsonBool,JSON.stringify(!0)),context:r});this.setBlockField(e,"prodCtx",g.Pl.wrapInEphHolder(this.tx,n.context),"NotReady"),this.setBlockField(e,"prodUiCtx",this.exportCtx(n.context),"NotReady"),this.setBlockField(e,"prodOutput",n.result,"NotReady"),this.setBlockFieldObj(e,"prodArgs",t.fields.currentArgs),this.blocksInLimbo.delete(e)&&(this.renderingStateChanged=!0)}updateStructure(e,t=xo){const r=this.getStagingGraph(),o=this.getActualProductionGraph(),n=Rt(e),i=pr(r,n);for(const l of i.onlyInA){const{fields:u}=this.getBlockInfo(l);this.deleteBlockFields(l,...Object.keys(u)),this.blockInfos.delete(l),this.blocksInLimbo.delete(l)&&(this.renderingStateChanged=!0),this.blockFrontendStates.delete(l)&&this.changedBlockFrontendStates.add(l)}for(const l of i.onlyInB){const u=t(l),d=new fr(l,{},A.extractConfig(u.blockPack.config),u.blockPack.source);this.blockInfos.set(l,d);const p=dr(this.tx,u.blockPack);this.setBlockField(l,"blockPack",g.Pl.wrapInHolder(this.tx,p),"NotReady"),this.setBlockFieldObj(l,"blockSettings",this.createJsonFieldValue(Y.InitialBlockSettings)),this.setBlockFieldObj(l,"currentArgs",this.createJsonFieldValueByContent(u.args)),u.uiState&&(this.blockFrontendStates.set(l,u.uiState),this.changedBlockFrontendStates.add(l)),d.check()}for(const l of i.different)this.resetStaging(l);const c=Ye(e,l=>this.getProductionGraphBlockInfo(l,!0)),a=pr(o,c);o.traverse("downstream",[...a.different],l=>{this.resetOrLimboProduction(l.id)}),(i.onlyInB.size>0||i.onlyInA.size>0||i.different.size>0)&&this.resetStagingRefreshTimestamp(),this.struct=e,this.structureChanged=!0,this.stagingGraph=void 0,this.pendingProductionGraph=void 0,this.actualProductionGraph=void 0,this.updateLastModified()}addBlock(e,t,r){const o=this.structure;if(r===void 0)o.groups[o.groups.length-1].blocks.push(e);else{let n=!1;for(const i of o.groups){const c=i.blocks.findIndex(a=>a.id===r);if(!(c<0)){i.blocks.splice(c,0,e),n=!0;break}}if(!n)throw new Error(`Can't find element with id: ${r}`)}this.updateStructure(o,n=>{if(n!==e.id)throw new Error("Unexpected");return t})}deleteBlock(e){const t=this.structure;let r=!1;for(const o of t.groups){const n=o.blocks.findIndex(i=>i.id===e);if(!(n<0)){o.blocks.splice(n,1),r=!0;break}}if(!r)throw new Error(`Can't find element with id: ${e}`);this.updateStructure(t)}migrateBlockPack(e,t,r){const o=this.getBlockInfo(e);this.setBlockField(e,"blockPack",g.Pl.wrapInHolder(this.tx,dr(this.tx,t)),"NotReady"),r!==void 0?(this.setArgs([{blockId:e,args:r.args}]),this.setUiState(e,r.uiState)):this.getStagingGraph().traverse("downstream",[e],({id:n})=>this.resetStaging(n)),o.productionRendered&&this.getActualProductionGraph().traverse("downstream",[e],({id:n})=>this.resetOrLimboProduction(n)),this.updateLastModified()}renderProduction(e,t=!1){const r=new Set(e),o=this.getPendingProductionGraph();if(t)o.traverse("upstream",e,c=>{r.add(c.id)});else for(const c of r){const a=o.nodes.get(c);if(a===void 0)throw new Error(`Can't find block with id: ${c}`);for(const l of a.upstream)if(!r.has(l))throw new Error("Can't render blocks not including all upstreams.")}const n=new Set;for(const c of ae(this.structure)){if(!r.has(c.id))continue;let a=this.getBlockInfo(c.id).requireProductionRendering||this.blocksInLimbo.has(c.id);if(!a){for(const l of o.nodes.get(c.id).upstream)if(n.has(l)){a=!0;break}}a&&(this.renderProductionFor(c.id),n.add(c.id))}const i=[...n];return o.traverse("downstream",i,c=>{n.has(c.id)||this.resetOrLimboProduction(c.id)}),this.getStagingGraph().traverse("downstream",i,({id:c})=>{i[0]!==c&&this.resetStaging(c)}),n.size>0&&this.updateLastModified(),n}stopProduction(...e){var i,c;const t=this.getActualProductionGraph(),r=new Mr(e),o=new Set(e),n=[];for(;!r.isEmpty();){const a=r.shift(),l=this.getBlockInfo(a).fields;if(!(((i=l.prodOutput)==null?void 0:i.status)==="Ready"&&((c=l.prodCtx)==null?void 0:c.status)==="Ready")&&this.deleteBlockFields(a,"prodOutput","prodCtx","prodUiCtx","prodArgs")){n.push(a);for(const u of t.traverseIdsExcludingRoots("downstream",a))o.has(u)||(r.push(u),o.add(u))}}for(const a of t.traverseIdsExcludingRoots("downstream",...n))this.resetOrLimboProduction(a)}traverseWithStagingLag(e){const t=new Map;this.getStagingGraph().nodes.forEach(o=>{let i=this.getBlockInfo(o.id).stagingRendered?0:1;o.upstream.forEach(c=>{const a=t.get(c);a!==0&&(i=Math.max(a+1,i))}),e(o.id,i),t.set(o.id,i)})}refreshStagings(e){const t=Date.now()-this.renderingState.stagingRefreshTimestamp,r=e===void 0?void 0:1+Math.max(0,t*e/1e3);let o=0;this.traverseWithStagingLag((n,i)=>{i!==0&&(r===void 0||i<=r)&&(this.renderStagingFor(n),o++)}),o>0&&this.resetStagingRefreshTimestamp()}setMeta(e){this.meta=e,this.metaChanged=!0,this.updateLastModified()}doRefresh(e){this.refreshStagings(e),this.blockInfos.forEach(t=>{var r,o,n,i;((r=t.fields.prodCtx)==null?void 0:r.status)==="Ready"&&((o=t.fields.prodOutput)==null?void 0:o.status)==="Ready"&&this.deleteBlockFields(t.id,"prodOutputPrevious","prodCtxPrevious","prodUiCtxPrevious"),((n=t.fields.stagingCtx)==null?void 0:n.status)==="Ready"&&((i=t.fields.stagingOutput)==null?void 0:i.status)==="Ready"&&this.deleteBlockFields(t.id,"stagingOutputPrevious","stagingCtxPrevious","stagingUiCtxPrevious")})}assignAuthorMarkers(){const e=this.author?JSON.stringify(this.author):void 0;for(const t of this.blocksWithChangedInputs)e===void 0?this.tx.deleteKValue(this.rid,St(t)):this.tx.setKValue(this.rid,St(t),e);(this.metaChanged||this.structureChanged)&&(e===void 0?this.tx.deleteKValue(this.rid,kt):this.tx.setKValue(this.rid,kt,e))}save(){if(this.wasModified){this.lastModifiedChanged&&this.tx.setKValue(this.rid,Fe,JSON.stringify(this.lastModified)),this.structureChanged&&this.tx.setKValue(this.rid,ge,JSON.stringify(this.struct)),this.renderingStateChanged&&this.tx.setKValue(this.rid,Ze,JSON.stringify({...this.renderingState,blocksInLimbo:[...this.blocksInLimbo]})),this.metaChanged&&this.tx.setKValue(this.rid,Ae,JSON.stringify(this.meta));for(const e of this.changedBlockFrontendStates){const t=this.blockFrontendStates.get(e);t===void 0?this.tx.deleteKValue(this.rid,bt(e)):this.tx.setKValue(this.rid,bt(e),t)}this.assignAuthorMarkers()}}static async load(e,t,r,o){const n=t.getResourceData(r,!0),i=t.getKValueJson(r,zr),c=t.getKValueJson(r,Fe),a=t.getKValueJson(r,Ae),l=t.getKValueJson(r,ge),u=t.getKValueJson(r,Ze),d=t.listKeyValuesString(r),p=await n,f=new Map;for(const h of p.fields){const b=lo(h.name);if(b===void 0)continue;let v=f.get(b.blockId);v===void 0&&(v={id:b.blockId,fields:{}},f.set(b.blockId,v)),v.fields[b.fieldName]=g.isNullResourceId(h.value)?{modCount:0}:{modCount:0,ref:h.value}}const k=[];f.forEach(h=>{const b=h.fields;for(const[v,C]of Object.entries(b)){if(C.ref===void 0)continue;if(!g.isResource(C.ref)||g.isResourceRef(C.ref))throw new Error("unexpected behaviour");const T=v;k.push([h,T,C,t.getResourceData(C.ref,T=="blockPack")])}});const[y,j,N,U,{stagingRefreshTimestamp:F,blocksInLimbo:q},V]=await Promise.all([i,c,a,l,u,d]);if(y!==Xr)throw new Error(`Can't act on this project resource because it has a wrong schema version: ${y}`);const B=[];for(const[h,b,v,C]of k){const T=await C;if(v.value=T.data,g.isNotNullResourceId(T.error)?v.status="Error":T.resourceReady||g.isNotNullResourceId(T.originalResourceId)?v.status="Ready":v.status="NotReady",b==="blockPack"){const E=T.fields.find(D=>D.name===g.Pl.HolderRefField);if(E===void 0)throw new Error("Block pack ref field is missing");B.push([h,t.getResourceData(g.ensureResourceIdNotNull(E.value),!1)])}}for(const[h,b]of B){const v=await b,C=S.cachedDeserialize(S.notEmpty(v.data));h.blockConfig=A.extractConfig(C.config),h.blockPack=C.source}const W=await ls(),ee=Pt(W.hash),z=p.fields.find(h=>h.name===ee);let oe;z!==void 0?oe=g.ensureResourceIdNotNull(z.value):(oe=g.Pl.wrapInHolder(t,Ne(t,W.spec)),t.createField(g.field(r,Pt(W.hash)),"Dynamic",oe));const ne={stagingRefreshTimestamp:F},_=new Set(q),X=new Map;for(const h of V){const b=io(h.key);b!==void 0&&X.set(b,h.value)}const w=new Map;f.forEach(({id:h,fields:b,blockConfig:v,blockPack:C})=>w.set(h,new fr(h,b,S.notEmpty(v),S.notEmpty(C))));const m=new Set;for(const h of ae(U)){if(!w.has(h.id))throw new Error(`Inconsistent project structure: no inputs for ${h.id}`);m.add(h.id)}w.forEach(h=>{if(!m.has(h.id))throw new Error(`Inconsistent project structure: no structure entry for ${h.id}`);h.check()});const R=new et(r,t,o,y,j,N,U,ne,_,w,X,oe,e);return R.fixProblemsAndMigrate(),R}}async function Uo(s,e=to){const t=s.createEphemeral(ro);s.lock(t);const r=String(Date.now());s.setKValue(t,zr,JSON.stringify(Xr)),s.setKValue(t,Dt,r),s.setKValue(t,Fe,r),s.setKValue(t,Ae,JSON.stringify(e)),s.setKValue(t,ge,JSON.stringify(Zs)),s.setKValue(t,Ze,JSON.stringify(eo));const o=await ls();return s.createField(g.field(t,Pt(o.hash)),"Dynamic",g.Pl.wrapInHolder(s,Ne(s,o.spec))),t}async function _e(s,e,t,r){return ie(s,e,t,void 0,r)}async function ie(s,e,t,r,o){if(e instanceof g.PlClient)return await e.withWriteTx("ProjectAction",async n=>{const i=await et.load(s,n,t,r),c=await o(i);return i.wasModified&&(i.save(),await n.commit()),c});{const n=await et.load(s,e,t,r),i=await o(n);return n.save(),i}}function*Go(s){switch(s.type){case"Json":return;case"JsonPartitioned":for(const[,e]of Object.entries(s.parts))yield e;return;case"BinaryPartitioned":for(const[,{index:e,values:t}]of Object.entries(s.parts))yield e,yield t;return;default:S.assertNever(s)}}function gr(s,e){return Object.fromEntries(Object.entries(s).map(([t,r])=>[t,e(r,t)]))}function Jo(s,e){switch(s.type){case"Json":return{...s};case"JsonPartitioned":return{...s,parts:gr(s.parts,e)};case"BinaryPartitioned":return{...s,parts:gr(s.parts,t=>({index:e(t.index),values:e(t.values)}))};default:S.assertNever(s)}}const Mo=g.resourceType("PColumnData/JsonPartitioned","1"),_o=g.resourceType("PColumnData/Partitioned/JsonPartitioned","1"),Ko=g.resourceType("PColumnData/BinaryPartitioned","1"),Ho=g.resourceType("PColumnData/Partitioned/BinaryPartitioned","1"),qo=g.resourceType("PColumnData/Json","1");function Wo(s){if(!s.getIsReadyOrError())throw new Error("Data not ready.");const e=s.getDataAsJson();if(e===void 0)throw new Error("unexpected data info structure, no resource data");if(g.resourceTypesEqual(s.resourceType,qo)){const t=e;return{type:"Json",keyLength:t.keyLength,data:t.data}}else if(g.resourceTypesEqual(s.resourceType,Mo)){const t=e,r=Object.fromEntries(s.listInputFields().map(o=>[o,s.traverse({field:o,errorIfFieldNotSet:!0}).resourceInfo]));return{type:"JsonPartitioned",partitionKeyLength:t.partitionKeyLength,parts:r}}else if(g.resourceTypesEqual(s.resourceType,_o)){const t=e,r={};for(const o of s.listInputFields()){const n=s.traverse({field:o,errorIfFieldNotSet:!0}),i=n.listInputFields();if(i===void 0)throw new Error(`no partition keys for super key ${o}`);for(const c of i){const a=JSON.stringify([...JSON.parse(o),...JSON.parse(c)]);r[a]=n.traverse({field:c,errorIfFieldNotSet:!0}).resourceInfo}}return{type:"JsonPartitioned",partitionKeyLength:t.superPartitionKeyLength+t.partitionKeyLength,parts:r}}else if(g.resourceTypesEqual(s.resourceType,Ko)){const t=e,r={};for(const o of s.listInputFields())if(o.endsWith(".index")){const n=o.slice(0,o.length-6);let i=r[n];i===void 0&&(i={},r[n]=i),i.index=s.traverse({field:o,errorIfFieldNotSet:!0}).resourceInfo}else if(o.endsWith(".values")){const n=o.slice(0,o.length-7);let i=r[n];i===void 0&&(i={},r[n]=i),i.values=s.traverse({field:o,errorIfFieldNotSet:!0}).resourceInfo}else throw new Error(`unrecognized part field name: ${o}`);for(const[o,n]of Object.entries(r)){if(n.index===void 0)throw new Error(`no index for part ${o}`);if(n.values===void 0)throw new Error(`no values for part ${o}`)}return{type:"BinaryPartitioned",partitionKeyLength:t.partitionKeyLength,parts:r}}else if(g.resourceTypesEqual(s.resourceType,Ho)){const t=e,r={};for(const o of s.listInputFields()){const n=s.traverse({field:o,errorIfFieldNotSet:!0}),i=n.listInputFields();if(i===void 0)throw new Error(`no partition keys for super key ${o}`);for(const c of i)if(c.endsWith(".index")){const a=c.slice(0,c.length-6),l=JSON.stringify([...JSON.parse(o),...JSON.parse(a)]);let u=r[l];u===void 0&&(u={},r[l]=u),r[l].index=n.traverse({field:c,errorIfFieldNotSet:!0}).resourceInfo}else if(c.endsWith(".values")){const a=c.slice(0,c.length-7),l=JSON.stringify([...JSON.parse(o),...JSON.parse(a)]);let u=r[l];u===void 0&&(u={},r[l]=u),r[l].values=n.traverse({field:c,errorIfFieldNotSet:!0}).resourceInfo}else throw new Error(`unrecognized part field name: ${c}`)}return{type:"BinaryPartitioned",partitionKeyLength:t.superPartitionKeyLength+t.partitionKeyLength,parts:r}}throw new Error(`unsupported resource type: ${g.resourceTypeToString(s.resourceType)}`)}function zo(s,e){const t=s.axesSpec.length,r={};for(const{key:o,val:n}of e){if(o.length!==t)throw new Error(`inline column key length ${o.length} differs from axes count ${t}`);r[JSON.stringify(o)]=n}return{type:"Json",keyLength:t,data:r}}function Xo(s,e){const t=re.createHash("sha256");return t.update(G(s)),t.update(String(g.isNullResourceId(e.originalId)?e.id:e.originalId)),t.digest().toString("hex")}function hr(s,e){return G({__isRef:!0,blockId:s,name:e})}function Yo(s,e){return G({resolvePath:s,name:e})}function us(s,e=!0,t=!1,r=""){var c,a,l;const o=/^(?<name>.*)\.(?<type>spec|data)$/,n=new Map;for(const u of s.listInputFields()){const d=u.match(o);if(!d){if(e)throw new Error(`unexpected field name ${u}`);continue}let p=S.notEmpty((c=d.groups)==null?void 0:c.name);if(!p.startsWith(r)){if(e)throw new Error(`unexpected field name ${u}`);continue}p=p.slice(r.length);const f=S.notEmpty((a=d.groups)==null?void 0:a.type);let k=n.get(p);switch(k===void 0&&(k={},n.set(p,k)),f){case"spec":k.spec=(l=s.traverse({field:u,ignoreError:t,pureFieldErrorToUndefined:t}))==null?void 0:l.getDataAsJson();break;case"data":k.hasData=!0,k.data=()=>s.traverseOrError({field:u,ignoreError:t});break}}const i=s.getInputsLocked();if(i)for(const[,u]of n)u.data===void 0&&(u.hasData=!1);return{locked:i,results:n}}function Qo(s,e=!0,t="",r){if(!s.getIsReadyOrError())throw new Error("resource is not ready");const o=us(s,e,!1,t);Ns(o.locked);const n={};for(const[i,c]of o.results){if(c.spec===void 0)throw new Error(`no spec for key ${i}`);if(c.hasData!==!0||c.data===void 0)throw new Error(`no data for key ${i}`);const a=c.data();if(a===void 0)throw new Error(`no data for key ${i}`);if(!a.ok)throw a.error;n[i]={id:r.length===0?Xo(c.spec,a.value):Yo(r,i),spec:c.spec,data:a.value}}return n}class jt{constructor(e,t){P(this,"allSpecsAvailable");this.ctx=e,this.blocks=t;let r=!0;e:for(const o of t.values())for(const n of[o.prod,o.staging])if(n!==void 0){if(!n.locked){r=!1;break e}for(const i of n.results.values())if(i.spec===void 0){r=!1;break e}}this.allSpecsAvailable=r}getSpecByRef(e,t){var n,i,c,a,l,u;const r=this.blocks.get(e);if(r===void 0)return;let o=(c=(i=(n=r.prod)==null?void 0:n.results)==null?void 0:i.get(t))==null?void 0:c.spec;if(o!==void 0||(o=(u=(l=(a=r.staging)==null?void 0:a.results)==null?void 0:l.get(t))==null?void 0:u.spec,o!==void 0))return o;r.staging===void 0?this.ctx.markUnstable(`staging_not_rendered:${e}`):r.staging.locked?r.prod!==void 0&&!r.prod.locked&&this.ctx.markUnstable(`prod_not_locked:${e}`):this.ctx.markUnstable(`staging_not_locked:${e}`)}getDataOrErrorByRef(e,t){var i,c,a;const r=this.blocks.get(e);if(r===void 0)return;const o=(c=(i=r.prod)==null?void 0:i.results)==null?void 0:c.get(t),n=(a=o==null?void 0:o.data)==null?void 0:a.call(o);if(o!==void 0&&o.spec!==void 0&&n!==void 0)return A.mapValueInVOE(n,l=>({id:hr(e,t),spec:o.spec,data:l}));o!==void 0&&this.ctx.markUnstable(`no_data:${e}:${t}`),r.prod!==void 0&&!r.prod.locked&&this.ctx.markUnstable(`prod_not_locked:${e}`)}getDataByRef(e,t){const r=this.getDataOrErrorByRef(e,t);if(!(r===void 0||!r.ok))return r.value}getData(){const e=this.getDataWithErrors(),t=[];for(const r of e.entries)r.obj.id!==void 0&&r.obj.data.ok&&t.push({ref:r.ref,obj:{id:r.obj.id,spec:r.obj.spec,data:r.obj.data.value}});return{entries:t,isComplete:e.isComplete,instabilityMarker:e.instabilityMarker}}getDataWithErrors(){const e=[];let t=!0,r;const o=i=>{r===void 0&&(r=i),t=!1},n=(i,c,a)=>{if(a.spec!==void 0&&a.hasData===!0&&a.data!==void 0){const l=a.data();l!==void 0?e.push({ref:Me(i,c),obj:{id:l.ok?hr(i,c):void 0,spec:a.spec,data:l}}):o(`no_data:${i}:${c}`)}};for(const[i,c]of this.blocks){const a=new Set;if(c.prod!==void 0){c.prod.locked||o(`prod_not_locked:${i}`);for(const[l,u]of c.prod.results)a.add(l),n(i,l,u)}if(c.staging!==void 0){c.staging.locked||o(`staging_not_locked:${i}`);for(const[l,u]of c.staging.results)a.has(l)||n(i,l,u)}}return{entries:e,isComplete:t,instabilityMarker:r}}getSpecs(){const e=[];let t=!0,r;const o=n=>{r===void 0&&(r=n),t=!1};for(const[n,i]of this.blocks){const c=new Set;if(i.staging!==void 0){i.staging.locked||o(`staging_not_locked:${n}`);for(const[a,l]of i.staging.results)l.spec!==void 0&&(e.push({ref:Me(n,a),obj:l.spec}),c.add(a))}else o(`staging_not_rendered:${n}`);if(i.prod!==void 0){i.prod.locked||o(`prod_not_locked:${n}`);for(const[a,l]of i.prod.results)c.has(a)||l.spec!==void 0&&e.push({ref:Me(n,a),obj:l.spec})}}return{entries:e,isComplete:t,instabilityMarker:r}}calculateOptions(e){const t=[];for(const r of this.blocks.values()){const o=new Set,n=i=>{for(const[c,a]of i.results)o.has(c)||a.spec===void 0||(o.add(c),A.executePSpecPredicate(e,a.spec)&&t.push({label:r.info.label+" / "+c,ref:Me(r.info.id,c),spec:a.spec}))};r.staging!==void 0&&n(r.staging),r.prod!==void 0&&n(r.prod)}return t}static create(e,t,r){const o=e.accessor(t).node(),n=S.notEmpty(o.getKeyValueAsJson(ge)),c=Rt(n).traverseIds("upstream",r),a=new Map;for(const l of ae(n)){if(!c.has(l.id))continue;const u=mr(o.traverse({field:H(l.id,"prodCtx"),ignoreError:!0,pureFieldErrorToUndefined:!0,stableIfNotFound:!0})!==void 0,o.traverseOrError({field:H(l.id,"prodUiCtx"),stableIfNotFound:!0})),d=mr(o.traverse({field:H(l.id,"stagingCtx"),ignoreError:!0,pureFieldErrorToUndefined:!0})!==void 0,o.traverseOrError({field:H(l.id,"stagingUiCtx")}));a.set(l.id,{info:l,prod:u,staging:d})}return new jt(e,a)}}function mr(s,e){if(e===void 0)return s?{locked:!1,results:new Map}:void 0;if(e.ok)return us(e.value,!1,!0)}function Vt(s,e){return{blockId:e,args:n=>S.notEmpty(n.accessor(s).node().traverse({field:H(e,"currentArgs"),errorIfFieldNotSet:!0}).getDataAsString()),activeArgs:n=>{var i;return(i=n.accessor(s).node().traverse({field:H(e,"prodArgs"),stableIfNotFound:!0}))==null?void 0:i.getDataAsString()},uiState:n=>n.accessor(s).node().getKeyValueAsString(bt(e)),blockMeta:n=>{const i=n.accessor(s).node(),c=S.notEmpty(i.getKeyValueAsJson(ge)),a=new Map;for(const l of ae(c))a.set(l.id,l);return a}}}function ds(s,e){return{...Vt(s,e),prod:t=>{var r;return(r=t.accessor(s).node({ignoreError:!0}).traverse({field:H(e,"prodOutput"),stableIfNotFound:!0,ignoreError:!0}))==null?void 0:r.persist()},staging:t=>{var o;const r=(o=t.accessor(s).node({ignoreError:!0}).traverse({field:H(e,"stagingOutput"),ignoreError:!0}))==null?void 0:o.persist();return r===void 0&&t.markUnstable("staging_not_rendered"),r},getResultsPool:t=>jt.create(t,s,e)}}function*te(s,e){switch(yield s,s.type){case"GetFromCtx":case"Immediate":return;case"Isolate":yield*te(s.cfg);return;case"MakeObject":for(const[,t]of Object.entries(s.template))yield*te(t);return;case"MakeArray":for(const t of s.template)yield*te(t);return;case"GetJsonField":case"GetResourceField":yield*te(s.source),yield*te(s.field);return;case"MapRecordValues":case"MapArrayValues":case"MapResourceFields":yield*te(s.source),yield*te(s.mapping);return;case"Flatten":case"GetResourceValueAsJson":case"GetBlobContent":case"ExtractArchiveAndGetURL":case"GetBlobContentAsString":case"GetBlobContentAsJson":case"GetDownloadedBlobContent":case"GetOnDemandBlobContent":case"GetImportProgress":case"GetLastLogs":case"GetProgressLog":case"GetProgressLogWithInfo":case"GetLogHandle":yield*te(s.source);return;case"IsEmpty":yield*te(s.arg);return;case"Not":yield*te(s.operand);return;case"And":case"Or":yield*te(s.operand1),yield*te(s.operand2);return;default:S.assertNever(s)}}function Zo(s,e){const t={};for(const[r,o]of Object.entries(s))t[r]=e(o);return t}function Ee(s,e){return s===void 0?void 0:e(s)}function en(s){switch(s.type){case"GetImportProgress":return!0;default:return!1}}function tn(s){for(const e of te(s))if(en(e))return!0;return!1}function ot(s){return{type:"ReturnResult",result:s}}function $(s){return()=>ot(s)}const rn=s=>{const e={};for(const[t,r]of Object.entries(s))e[t]=r;return $(e)},sn=s=>{const e=s.source;if(e===void 0)return $(void 0);const t=[];for(const r of e)r instanceof Array?t.push(...r):t.push(r);return $(t)},on=s=>{const e=s.source,t=s.field;return e===void 0||t===void 0?$(void 0):({cCtx:r})=>{var o;return ot((o=r.accessor(e).node().traverse(t))==null?void 0:o.persist())}};function ps(s,e){const t={},r=s.length;for(let o=0;o<r;o++)t[String(o)]=e(s[o]);return t}function nn(s,e){return t=>{const r=t.source;return r===void 0?$(void 0):()=>({type:"ScheduleSubroutine",subroutine:fs(r.length),args:ps(r,o=>I({...s,[e.itVar]:o},e.mapping))})}}function fs(s){return e=>{const t=[];for(let r=0;r<s;r++)t.push(e[String(r)]);return $(t)}}function an(s,e){return t=>{const r=t.source;if(r===void 0)return $(void 0);const o={};for(const[n,i]of Object.entries(r)){const c={...s,[e.itVar]:i};o[n]=I(c,e.mapping)}return()=>({type:"ScheduleSubroutine",subroutine:cn,args:o})}}const cn=s=>$(s),ln=s=>{const e=s.arg;return $(e===void 0?void 0:e.length===0)},un=s=>{const e=s.operand;return $(e===void 0?void 0:!e)},dn=s=>{const e=s.operand1,t=s.operand2;return $(e===void 0||t===void 0?void 0:e&&t)},pn=s=>{const e=s.operand1,t=s.operand2;return $(e===void 0||t===void 0?void 0:e||t)},fn=s=>{const e=s.source;return e===void 0?$(void 0):({cCtx:t})=>{var r;return ot((r=t.accessor(e).node())==null?void 0:r.getDataAsJson())}},gn=s=>{const e=s.source,t=s.field;return $(e===void 0||t===void 0?void 0:e[t])};function hn(s,e){return t=>{const r=t.source;return r===void 0?$(void 0):({cCtx:o})=>{const n=o.accessor(r).node(),i={};for(const c of n.listInputFields()){const a=n.traverse(c);if(a===void 0)i[c]=$(void 0);else{const l={...s,[e.itVar]:a.persist()};i[c]=I(l,e.mapping)}}return{type:"ScheduleSubroutine",subroutine:mn,args:i}}}}const mn=s=>$(s),vn=s=>{const e=s.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:x.Computable.make(r=>t.blobDriver.getDownloadedBlob(r.accessor(e).node().resourceInfo),{postprocessValue:async r=>{if(r!==void 0)return await t.blobDriver.getContent(r.handle)}})})},yn=s=>{const e=s.source;return e===void 0?$(void 0):({cCtx:t,drivers:r})=>{const o=t.accessor(e).node().resourceInfo;return{type:"ScheduleComputable",computable:x.Computable.make(()=>r.blobDriver.getDownloadedBlob(o),{postprocessValue:async n=>n===void 0?void 0:(await r.blobDriver.getContent(n.handle)).toString()})}}},wn=s=>{const e=s.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:x.Computable.make(r=>t.blobDriver.getDownloadedBlob(r.accessor(e).node().resourceInfo),{postprocessValue:async r=>{if(r==null)return;const o=await t.blobDriver.getContent(r.handle);if(o!=null)return JSON.parse(Buffer.from(o).toString())}})})},bn=s=>{const e=s.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.blobDriver.getDownloadedBlob(e)})},Sn=s=>{const e=s.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.blobDriver.getOnDemandBlob(e)})},kn=s=>e=>{const t=e.source;return t===void 0?$(void 0):({drivers:r})=>({type:"ScheduleComputable",computable:r.blobToURLDriver.extractArchiveAndGetURL(t,s)})},Pn=s=>{const e=s.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.uploadDriver.getProgressId(e)})},Cn=s=>e=>{const t=e.source;return t===void 0?$(void 0):({drivers:r})=>({type:"ScheduleComputable",computable:r.logDriver.getLastLogs(t,s)})},Rn=s=>e=>{const t=e.source;return t===void 0?$(void 0):({drivers:r})=>({type:"ScheduleComputable",computable:r.logDriver.getProgressLog(t,s)})},En=s=>e=>{const t=e.source;return t===void 0?$(void 0):({drivers:r})=>({type:"ScheduleComputable",computable:r.logDriver.getProgressLogWithInfo(t,s)})},On=s=>{const e=s.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.logDriver.getLogHandle(e)})};function I(s,e){switch(e.type){case"GetFromCtx":{const t=s[e.variable];return typeof t=="function"?r=>ot(t(r.cCtx)):$(t)}case"Isolate":return({drivers:t})=>({type:"ScheduleComputable",computable:ms(t,s,e.cfg)});case"Immediate":return $(e.value);case"GetJsonField":return()=>({type:"ScheduleSubroutine",subroutine:gn,args:{source:I(s,e.source),field:I(s,e.field)}});case"MapArrayValues":return()=>({type:"ScheduleSubroutine",subroutine:nn(s,e),args:{source:I(s,e.source)}});case"MapRecordValues":return()=>({type:"ScheduleSubroutine",subroutine:an(s,e),args:{source:I(s,e.source)}});case"MakeObject":return()=>({type:"ScheduleSubroutine",subroutine:rn,args:Zo(e.template,t=>I(s,t))});case"MakeArray":return()=>({type:"ScheduleSubroutine",subroutine:fs(e.template.length),args:ps(e.template,t=>I(s,t))});case"Flatten":return()=>({type:"ScheduleSubroutine",subroutine:sn,args:{source:I(s,e.source)}});case"IsEmpty":return()=>({type:"ScheduleSubroutine",subroutine:ln,args:{arg:I(s,e.arg)}});case"Not":return()=>({type:"ScheduleSubroutine",subroutine:un,args:{operand:I(s,e.operand)}});case"And":return()=>({type:"ScheduleSubroutine",subroutine:dn,args:{operand1:I(s,e.operand1),operand2:I(s,e.operand2)}});case"Or":return()=>({type:"ScheduleSubroutine",subroutine:pn,args:{operand1:I(s,e.operand1),operand2:I(s,e.operand2)}});case"MapResourceFields":return()=>({type:"ScheduleSubroutine",subroutine:hn(s,e),args:{source:I(s,e.source)}});case"GetResourceField":return()=>({type:"ScheduleSubroutine",subroutine:on,args:{source:I(s,e.source),field:I(s,e.field)}});case"GetResourceValueAsJson":return()=>({type:"ScheduleSubroutine",subroutine:fn,args:{source:I(s,e.source)}});case"GetBlobContent":return()=>({type:"ScheduleSubroutine",subroutine:vn,args:{source:I(s,e.source)}});case"GetBlobContentAsString":return()=>({type:"ScheduleSubroutine",subroutine:yn,args:{source:I(s,e.source)}});case"GetBlobContentAsJson":return()=>({type:"ScheduleSubroutine",subroutine:wn,args:{source:I(s,e.source)}});case"GetDownloadedBlobContent":return()=>({type:"ScheduleSubroutine",subroutine:bn,args:{source:I(s,e.source)}});case"GetOnDemandBlobContent":return()=>({type:"ScheduleSubroutine",subroutine:Sn,args:{source:I(s,e.source)}});case"ExtractArchiveAndGetURL":return()=>({type:"ScheduleSubroutine",subroutine:kn(e.format),args:{source:I(s,e.source)}});case"GetImportProgress":return()=>({type:"ScheduleSubroutine",subroutine:Pn,args:{source:I(s,e.source)}});case"GetLastLogs":return()=>({type:"ScheduleSubroutine",subroutine:Cn(e.lines),args:{source:I(s,e.source)}});case"GetProgressLog":return()=>({type:"ScheduleSubroutine",subroutine:Rn(e.patternToSearch),args:{source:I(s,e.source)}});case"GetProgressLogWithInfo":return()=>({type:"ScheduleSubroutine",subroutine:En(e.patternToSearch),args:{source:I(s,e.source)}});case"GetLogHandle":return()=>({type:"ScheduleSubroutine",subroutine:On,args:{source:I(s,e.source)}});default:return S.assertNever(e)}}const Tn=["$prod","$staging"];function $n(s){return{$blockId:s.blockId,$args:e=>JSON.parse(s.args(e)),$ui:e=>{const t=s.uiState(e);return t!==void 0?JSON.parse(t):void 0},$prod:s.prod,$staging:s.staging}}const gs=Symbol(),hs="return",In={op:gs,arg:hs};function Fn(s){return s.op==gs&&s.arg==hs}function An(){return{pendingSubroutines:new Map}}function vr(s,e,t,r){const o=new Mr(t),n=(c,a)=>{if(Fn(c))return e.result=a,!1;const l=S.notEmpty(e.pendingSubroutines.get(c.op));if(c.arg in l.args)throw new Error("argument already set");return l.args[c.arg]=a,l.argCounter--,l.argCounter===0&&(e.pendingSubroutines.delete(c.op),o.push({destination:l.destination,operation:l.subroutine(l.args)})),!0},i=[];e:for(;o.length>0;){const c=o.shift(),a=c.operation(s);switch(a.type){case"ReturnResult":if(!n(c.destination,a.result))break e;break;case"ScheduleSubroutine":{const l=Symbol(),u=Object.entries(a.args),d=u.length;if(d===0)o.push({destination:c.destination,operation:a.subroutine({})});else{for(const[p,f]of u)o.push({destination:{op:l,arg:p},operation:f});e.pendingSubroutines.set(l,{argCounter:d,args:{},subroutine:a.subroutine,destination:c.destination})}}break;case"ScheduleComputable":if(!r)throw new Error("asynchronous operations are forbidden in this context");i.push({destination:c.destination,computable:a.computable});break;default:S.assertNever(a)}}return i}function Dn(s,e,t,r={}){return ms(s,$n(e),t,r)}function ms(s,e,t,r={}){const o=`${e.blockId}#`+G({ctx:Object.fromEntries(Object.entries(e).filter(([n])=>Tn.indexOf(n)===-1)),cfg:t});return x.Computable.makeRaw(n=>{const i={drivers:s,cCtx:n},c=An();return{ir:vr(i,c,[{destination:In,operation:I(e,t)}],!0),postprocessValue(l){const u=[];for(const k of l)u.push({destination:k.destination,operation:$(k.computable)});const d={drivers:s,get cCtx(){throw new Error("asynchronous operations are forbidden in this context")}},p=new Map;for(const[k,y]of c.pendingSubroutines)p.set(k,{...y,args:{...y.args}});const f={result:c.result,pendingSubroutines:p};if(vr(d,f,u,!1),!("result"in f))throw new Error("illegal cfg rendering stack state, no result");return f.result}}},{...r,key:o})}function yr(s){return s!==void 0?Buffer.from(s).toString("base64"):void 0}class Ln{constructor(e,t,r,o){P(this,"computablesToResolve",{});P(this,"computableCtx");P(this,"accessors",new Map);P(this,"meta");P(this,"_resultPool");this.parent=e,this.blockCtx=t,this.env=r,this.computableCtx=o,this.meta=t.blockMeta(o)}resetComputableCtx(){this.computableCtx=void 0,this.accessors.clear()}getAccessorHandleByName(e){if(this.computableCtx===void 0)throw new Error("Accessors can't be used in this context");const t=(r,o)=>{if(!this.accessors.has(r)){const n=this.blockCtx[o];if(n===void 0)throw new Error("Staging context not available");const i=n(this.computableCtx);i?this.accessors.set(r,this.computableCtx.accessor(i).node({ignoreError:!0})):this.accessors.set(r,void 0)}return this.accessors.get(r)?r:void 0};if(e==="staging")return t("staging","staging");if(e==="main")return t("main","prod")}resolveWithCommon(e,t,...r){return this.wrapAccessor(this.getAccessor(e).traverseWithCommon(t,...r))}getResourceType(e){return this.getAccessor(e).resourceType}getInputsLocked(e){return this.getAccessor(e).getInputsLocked()}getOutputsLocked(e){return this.getAccessor(e).getOutputsLocked()}getIsReadyOrError(e){return this.getAccessor(e).getIsReadyOrError()}getIsFinal(e){return this.getAccessor(e).getIsFinal()}getError(e){return this.wrapAccessor(this.getAccessor(e).getError())}listInputFields(e){return this.getAccessor(e).listInputFields()}listOutputFields(e){return this.getAccessor(e).listOutputFields()}listDynamicFields(e){return this.getAccessor(e).listDynamicFields()}getKeyValueBase64(e,t){return yr(this.getAccessor(e).getKeyValue(t))}getKeyValueAsString(e,t){return this.getAccessor(e).getKeyValueAsString(t)}getDataBase64(e){return yr(this.getAccessor(e).getData())}getDataAsString(e){return this.getAccessor(e).getDataAsString()}parsePObjectCollection(e,t,r,...o){const n=this.getAccessor(e);if(!n.getIsReadyOrError())return;const i=Qo(n,t,r,o),c={};for(const[a,l]of Object.entries(i))c[a]=A.mapPObjectData(l,u=>this.wrapAccessor(u));return c}registerComputable(e,t){const r=`${e}_${re.randomUUID()}`;return this.computablesToResolve[r]=t,r}getBlobContentAsString(e){const t=this.getAccessor(e).resourceInfo;return this.registerComputable("getBlobContentAsString",x.Computable.make(r=>this.env.driverKit.blobDriver.getDownloadedBlob(t,r),{postprocessValue:async r=>{if(r!==void 0)return Buffer.from(await this.env.driverKit.blobDriver.getContent(r.handle)).toString("utf-8")}}))}getBlobContentAsBase64(e){const t=this.getAccessor(e).resourceInfo;return this.registerComputable("getBlobContentAsBase64",x.Computable.make(r=>this.env.driverKit.blobDriver.getDownloadedBlob(t,r),{postprocessValue:async r=>{if(r!==void 0)return Buffer.from(await this.env.driverKit.blobDriver.getContent(r.handle)).toString("base64")}}))}getDownloadedBlobContentHandle(e){const t=this.getAccessor(e).resourceInfo;return this.registerComputable("getDownloadedBlobContentHandle",this.env.driverKit.blobDriver.getDownloadedBlob(t))}getOnDemandBlobContentHandle(e){const t=this.getAccessor(e).persist();return this.registerComputable("getOnDemandBlobContentHandle",this.env.driverKit.blobDriver.getOnDemandBlob(t))}extractArchiveAndGetURL(e,t){const r=this.getAccessor(e).persist();return this.registerComputable("extractArchiveAndGetURL",this.env.driverKit.blobToURLDriver.extractArchiveAndGetURL(r,t))}getImportProgress(e){const t=this.getAccessor(e).persist();return this.registerComputable("getImportProgress",this.env.driverKit.uploadDriver.getProgressId(t))}getLastLogs(e,t){const r=this.getAccessor(e).persist();return this.registerComputable("getLastLogs",this.env.driverKit.logDriver.getLastLogs(r,t))}getProgressLog(e,t){const r=this.getAccessor(e).persist();return this.registerComputable("getProgressLog",this.env.driverKit.logDriver.getProgressLog(r,t))}getProgressLogWithInfo(e,t){const r=this.getAccessor(e).persist();return this.registerComputable("getProgressLogWithInfo",this.env.driverKit.logDriver.getProgressLogWithInfo(r,t))}getLogHandle(e){const t=this.getAccessor(e).persist();return this.registerComputable("getLogHandle",this.env.driverKit.logDriver.getLogHandle(t))}getBlockLabel(e){const t=this.meta.get(e);if(t===void 0)throw new Error(`Block ${e} not found.`);return t.label}get resultPool(){if(this._resultPool===void 0){if(this.computableCtx===void 0)throw new Error("can't use result pool in this context (most porbably called from the future mapper)");this._resultPool=S.notEmpty(this.blockCtx.getResultsPool,"getResultsPool")(this.computableCtx)}return this._resultPool}calculateOptions(e){return this.resultPool.calculateOptions(e)}getDataFromResultPool(){const e=this.resultPool.getData();return e.instabilityMarker!==void 0&&this.computableCtx.markUnstable(`incomplete_result_pool:${e.instabilityMarker}`),{isComplete:e.isComplete,entries:e.entries.map(t=>({ref:t.ref,obj:A.mapPObjectData(t.obj,r=>this.wrapAccessor(r))}))}}getDataWithErrorsFromResultPool(){const e=this.resultPool.getDataWithErrors();return e.instabilityMarker!==void 0&&this.computableCtx.markUnstable(`incomplete_result_pool:${e.instabilityMarker}`),{isComplete:e.isComplete,entries:e.entries.map(t=>({ref:t.ref,obj:{id:t.obj.id,spec:t.obj.spec,data:A.mapValueInVOE(t.obj.data,r=>this.wrapAccessor(r))}}))}}getSpecsFromResultPool(){const e=this.resultPool.getSpecs();return e.instabilityMarker!==void 0&&this.computableCtx.markUnstable(`specs_from_pool_incomplete:${e.instabilityMarker}`),e}getSpecFromResultPoolByRef(e,t){return this.resultPool.getSpecByRef(e,t)}getDataFromResultPoolByRef(e,t){return A.mapPObjectData(this.resultPool.getDataByRef(e,t),r=>this.wrapAccessor(r))}createPFrame(e){if(this.computableCtx===void 0)throw new Error("can't instantiate PFrames from this context (most porbably called from the future mapper)");return this.env.driverKit.pFrameDriver.createPFrame(e.map(t=>A.mapPObjectData(t,r=>this.transformInputPData(r))),this.computableCtx)}createPTable(e){if(this.computableCtx===void 0)throw new Error("can't instantiate PTable from this context (most porbably called from the future mapper)");return this.env.driverKit.pFrameDriver.createPTable(A.mapPTableDef(e,t=>A.mapPObjectData(t,r=>this.transformInputPData(r))),this.computableCtx)}transformInputPData(e){return typeof e=="string"?this.getAccessor(e):A.isDataInfo(e)?A.mapDataInfo(e,t=>this.getAccessor(t)):e}getCurrentUnstableMarker(){var e;return(e=this.computableCtx)==null?void 0:e.unstableMarker}getAccessor(e){const t=this.accessors.get(e);if(t===void 0)throw new Error("No such accessor");return t}wrapAccessor(e){if(e!==void 0){const t=re.randomUUID();return this.accessors.set(t,e),t}}injectCtx(e){const t=this.parent,r=t.vm;fe.Scope.withScope(o=>{const n=this.blockCtx.args(this.computableCtx),i=this.blockCtx.activeArgs(this.computableCtx),c=this.blockCtx.uiState(this.computableCtx);r.setProp(e,"args",o.manage(r.newString(n))),c!==void 0&&r.setProp(e,"uiState",o.manage(r.newString(c))),i!==void 0&&r.setProp(e,"activeArgs",o.manage(r.newString(i)));const a=(l,u)=>{const d=(...p)=>{try{return u(...p)}catch(f){const k=t.errorRepo.setAndRecreateForQuickJS(f);throw r.newError(k)}};r.newFunction(l,d).consume(p=>r.setProp(e,l,p)),r.newFunction(l,u).consume(p=>r.setProp(e,l+"__internal__",p))};a("getAccessorHandleByName",l=>t.exportSingleValue(this.getAccessorHandleByName(r.getString(l)),void 0)),a("resolveWithCommon",(l,u,...d)=>t.exportSingleValue(this.resolveWithCommon(r.getString(l),t.importObjectViaJson(u),...d.map(p=>t.importObjectViaJson(p))),void 0)),a("getResourceType",l=>t.exportObjectViaJson(this.getResourceType(r.getString(l)),void 0)),a("getInputsLocked",l=>t.exportSingleValue(this.getInputsLocked(r.getString(l)),void 0)),a("getOutputsLocked",l=>t.exportSingleValue(this.getOutputsLocked(r.getString(l)),void 0)),a("getIsReadyOrError",l=>t.exportSingleValue(this.getIsReadyOrError(r.getString(l)),void 0)),a("getIsFinal",l=>t.exportSingleValue(this.getIsFinal(r.getString(l)),void 0)),a("getError",l=>t.exportSingleValue(this.getError(r.getString(l)),void 0)),a("listInputFields",l=>t.exportObjectViaJson(this.listInputFields(r.getString(l)),void 0)),a("listOutputFields",l=>t.exportObjectViaJson(this.listInputFields(r.getString(l)),void 0)),a("listDynamicFields",l=>t.exportObjectViaJson(this.listInputFields(r.getString(l)),void 0)),a("getKeyValueBase64",(l,u)=>t.exportSingleValue(this.getKeyValueBase64(r.getString(l),r.getString(u)),void 0)),a("getKeyValueAsString",(l,u)=>t.exportSingleValue(this.getKeyValueAsString(r.getString(l),r.getString(u)),void 0)),a("getDataBase64",l=>t.exportSingleValue(this.getDataBase64(r.getString(l)),void 0)),a("getDataAsString",l=>t.exportSingleValue(this.getDataAsString(r.getString(l)),void 0)),a("parsePObjectCollection",(l,u,d,...p)=>t.exportObjectUniversal(this.parsePObjectCollection(r.getString(l),r.dump(u),r.getString(d),...p.map(f=>r.getString(f))),void 0)),a("getBlobContentAsBase64",l=>t.exportSingleValue(this.getBlobContentAsBase64(r.getString(l)),void 0)),a("getBlobContentAsString",l=>t.exportSingleValue(this.getBlobContentAsString(r.getString(l)),void 0)),a("getDownloadedBlobContentHandle",l=>t.exportSingleValue(this.getDownloadedBlobContentHandle(r.getString(l)),void 0)),a("getOnDemandBlobContentHandle",l=>t.exportSingleValue(this.getOnDemandBlobContentHandle(r.getString(l)),void 0)),a("extractArchiveAndGetURL",(l,u)=>t.exportSingleValue(this.extractArchiveAndGetURL(r.getString(l),r.getString(u)),void 0)),a("getImportProgress",l=>t.exportSingleValue(this.getImportProgress(r.getString(l)),void 0)),a("getLastLogs",(l,u)=>t.exportSingleValue(this.getLastLogs(r.getString(l),r.getNumber(u)),void 0)),a("getProgressLog",(l,u)=>t.exportSingleValue(this.getProgressLog(r.getString(l),r.getString(u)),void 0)),a("getProgressLogWithInfo",(l,u)=>t.exportSingleValue(this.getProgressLogWithInfo(r.getString(l),r.getString(u)),void 0)),a("getLogHandle",l=>t.exportSingleValue(this.getLogHandle(r.getString(l)),void 0)),a("getBlockLabel",l=>t.exportSingleValue(this.getBlockLabel(r.getString(l)),void 0)),a("getDataFromResultPool",()=>t.exportObjectUniversal(this.getDataFromResultPool(),void 0)),a("getDataWithErrorsFromResultPool",()=>t.exportObjectUniversal(this.getDataWithErrorsFromResultPool(),void 0)),a("getSpecsFromResultPool",()=>t.exportObjectUniversal(this.getSpecsFromResultPool(),void 0)),a("calculateOptions",l=>t.exportObjectUniversal(this.calculateOptions(t.importObjectViaJson(l)),void 0)),a("getSpecFromResultPoolByRef",(l,u)=>t.exportObjectUniversal(this.getSpecFromResultPoolByRef(r.getString(l),r.getString(u)),void 0)),a("getDataFromResultPoolByRef",(l,u)=>t.exportObjectUniversal(this.getDataFromResultPoolByRef(r.getString(l),r.getString(u)),void 0)),a("createPFrame",l=>t.exportSingleValue(this.createPFrame(t.importObjectViaJson(l)),void 0)),a("createPTable",l=>t.exportSingleValue(this.createPTable(t.importObjectViaJson(l)),void 0)),a("getCurrentUnstableMarker",()=>t.exportSingleValue(this.getCurrentUnstableMarker(),void 0))})}}function Nn(s){return s instanceof ArrayBuffer||ArrayBuffer.isView(s)}class De{constructor(e,t,r,o){P(this,"callbackRegistry");P(this,"fnJSONStringify");P(this,"fnJSONParse");P(this,"errorRepo",new Bn);P(this,"computableHelper");if(this.scope=e,this.vm=t,this.deadlineSetter=r,this.callbackRegistry=this.scope.manage(this.vm.newObject()),this.fnJSONStringify=e.manage(t.getProp(t.global,"JSON").consume(n=>t.getProp(n,"stringify"))),t.typeof(this.fnJSONStringify)!=="function")throw new Error("JSON.stringify() not found.");if(this.fnJSONParse=e.manage(t.getProp(t.global,"JSON").consume(n=>t.getProp(n,"parse"))),t.typeof(this.fnJSONParse)!=="function")throw new Error("JSON.parse() not found.");o!==void 0&&(this.computableHelper=new Ln(this,o.blockCtx,o.mlEnv,o.computableCtx)),this.injectCtx()}resetComputableCtx(){S.notEmpty(this.computableHelper,"Computable context helper is not initialized").resetComputableCtx()}static cleanErrorContext(e){typeof e=="object"&&e!==null&&"context"in e&&delete e.context}evaluateBundle(e){try{this.deadlineSetter({currentExecutionTarget:"evaluateBundle",deadline:Date.now()+1e4}),this.vm.unwrapResult(this.vm.evalCode(e,"bundle.js",{type:"global"})).dispose()}catch(t){throw De.cleanErrorContext(t),t}finally{this.deadlineSetter(void 0)}}runCallback(e,...t){try{return this.deadlineSetter({currentExecutionTarget:e,deadline:Date.now()+1e4}),fe.Scope.withScope(r=>{const o=r.manage(this.vm.getProp(this.callbackRegistry,e));if(this.vm.typeof(o)!=="function")throw new Error(`No such callback: ${e}`);return this.scope.manage(this.vm.unwrapResult(this.vm.callFunction(o,this.vm.undefined,...t.map(n=>this.exportObjectUniversal(n,r)))))})}catch(r){throw De.cleanErrorContext(r),this.errorRepo.getOriginal(r)}finally{this.deadlineSetter(void 0)}}exportSingleValue(e,t){const r=this.tryExportSingleValue(e,t);if(r===void 0)throw new Error(`Can't export value: ${e===void 0?"undefined":JSON.stringify(e)}`);return r}tryExportSingleValue(e,t){let r,o=!1;switch(typeof e){case"string":r=this.vm.newString(e),o=!0;break;case"number":r=this.vm.newNumber(e),o=!0;break;case"undefined":r=this.vm.undefined;break;case"boolean":r=e?this.vm.true:this.vm.false;break;default:if(e===null){r=this.vm.null;break}if(Nn(e)){r=this.vm.newArrayBuffer(e),o=!0;break}return}return o&&t!=null?t.manage(r):r}exportObjectUniversal(e,t){const r=this.tryExportSingleValue(e,t);return r!==void 0?r:this.exportObjectViaJson(e,t)}exportObjectViaJson(e,t){const r=this.vm.newString(JSON.stringify(e)).consume(o=>this.vm.unwrapResult(this.vm.callFunction(this.fnJSONParse,this.vm.undefined,o)));return t!==void 0?t.manage(r):r}importObjectUniversal(e){switch(this.vm.typeof(e)){case"undefined":return;case"boolean":case"number":case"string":return this.vm.dump(e);default:return this.importObjectViaJson(e)}}importObjectViaJson(e){const t=this.vm.unwrapResult(this.vm.callFunction(this.fnJSONStringify,this.vm.undefined,e)).consume(r=>this.vm.getString(r));if(t!=="undefined")return JSON.parse(t)}injectCtx(){fe.Scope.withScope(e=>{const t=e.manage(this.vm.newObject());this.vm.setProp(t,"callbackRegistry",this.callbackRegistry),this.vm.setProp(t,"featureFlags",this.exportObjectUniversal(A.JsRenderInternal.GlobalCfgRenderCtxFeatureFlags,e)),this.computableHelper!==void 0&&this.computableHelper.injectCtx(t),this.vm.setProp(this.vm.global,"cfgRenderCtx",t)})}}class Bn{constructor(){P(this,"errorIdToError",new Map)}setAndRecreateForQuickJS(e){const t=re.randomUUID();return this.errorIdToError.set(t,e),e instanceof Error?{name:`${e.name}/uuid:${t}`,message:e.message}:{name:`UnknownErrorQuickJS/uuid:${t}`,message:`${e}`}}getOriginal(e){if(!(e instanceof fe.errors.QuickJSUnwrapError))return console.warn("ErrorRepo: quickJSError is not a QuickJSUnwrapError",g.stringifyWithResourceId(e)),e;if(!("name"in e.cause))return console.warn("ErrorRepo: quickJSError.cause is not an Error",g.stringifyWithResourceId(e)),e;const t=e.cause.name,r=t.slice(t.indexOf("/uuid:")+6);if(!r)throw new Error(`ErrorRepo: quickJSError.cause.name does not contain errorId: ${t}, ${g.stringifyWithResourceId(e)}`);const o=this.errorIdToError.get(r);if(o===void 0)throw new Error(`ErrorRepo: errorId not found: ${r}, ${g.stringifyWithResourceId(e)}`);return new Bs.PlQuickJSError(e,o)}}function Le(s,e){return Ee(s.traverse({field:H(e,"blockPack"),assertFieldType:"Dynamic",errorIfFieldNotSet:!0},{field:g.Pl.HolderRefField,assertFieldType:"Input",errorIfFieldNotFound:!0}),t=>{const r=t.getDataAsJson(),o=A.extractConfig(r.config);return{bpResourceId:t.resourceInfo.id,bpId:t.resourceInfo.id.toString(),info:r,cfg:o}})}const Ke=process.env.MI_LOG_OUTPUT_STATUS;function jn(s,e,t,r,o,n={}){const i=`${e.blockId}#lambda#${o}#${t.handle}`;return n={...n,key:i},n.mode===void 0&&t.retentive===!0&&(n.mode="StableOnlyRetentive"),x.Computable.makeRaw(c=>{const a=new fe.Scope;c.addOnDestroy(()=>a.dispose());const l=a.manage(s.quickJs.newRuntime());l.setMemoryLimit(1024*1024*8),l.setMaxStackSize(1024*320);let u;l.setInterruptHandler(()=>u===void 0?!1:Date.now()>u.deadline);const d=a.manage(l.newContext()),p=new De(a,d,y=>{u=y},{computableCtx:c,blockCtx:e,mlEnv:s});p.evaluateBundle(r.content);const f=p.runCallback(t.handle);p.resetComputableCtx();let k=0;return Ke&&Ke!=="unstable-only"&&console.log(`Output ${t.handle} scaffold calculated.`),{ir:p.computableHelper.computablesToResolve,postprocessValue:(y,{unstableMarker:j,stable:N})=>{for(const[F,q]of Object.entries(y))p.runCallback(F,q);const U=p.importObjectUniversal(f);return k++,Ke&&(Ke!=="unstable-only"||!N)&&console.log(N?`Stable output ${t.handle} calculated ${U!==void 0?"defined":"undefined"}; (#${k})`:`Unstable output ${t.handle}; marker = ${j}; ${U!==void 0?"defined":"undefined"} (#${k})`),U}}},n)}function Vn(s,e,t,...r){const o=new fe.Scope;try{const n=o.manage(s.newRuntime());n.setMemoryLimit(1024*1024*8),n.setMaxStackSize(1024*320);let i;n.setInterruptHandler(()=>i===void 0?!1:Date.now()>i.deadline);const c=o.manage(n.newContext()),a=new De(o,c,l=>{i=l});return a.evaluateBundle(t.content),a.importObjectUniversal(a.runCallback(e.handle,...r))}finally{o.dispose()}}function xn(s){return A.isConfigLambda(s)?s.isActive===!0:tn(s)}function Oe(s,e,t,r,o,n={}){if(A.isConfigLambda(t)){if(r===void 0)throw new Error("No code bundle.");return jn(s,e,t,r,o,n)}else return Dn(s.driverKit,e,t,n)}function Un(s,e){if(s===e)return!0;if(s===void 0||e===void 0)return!1;const t=rr.omitBy((r,o)=>o.startsWith("__"));return rr.isDeepEqual(t(s),t(e))}function Gn(s,e,t){return x.Computable.make(r=>{var k,y,j,N,U,F,q,V;const o=r.accessor(s).node(),n=S.notEmpty(o.getKeyValueAsJson(Dt)),i=S.notEmpty(o.getKeyValueAsJson(Fe)),c=S.notEmpty(o.getKeyValueAsJson(Ae)),a=S.notEmpty(o.getKeyValueAsJson(ge)),l=S.notEmpty(o.getKeyValueAsJson(Ze)),u=new Map;for(const{id:B}of ae(a)){const W=o.traverse({field:H(B,"currentArgs"),assertFieldType:"Dynamic",errorIfFieldNotSet:!0}),ee=W.getDataAsJson();let z;const oe=o.traverse({field:H(B,"prodArgs"),assertFieldType:"Dynamic",stableIfNotFound:!0});if(oe!==void 0){const ne=oe.getDataAsJson(),_=o.getField({field:H(B,"prodOutput"),assertFieldType:"Dynamic",errorIfFieldNotFound:!0}),X=o.getField({field:H(B,"prodUiCtx"),assertFieldType:"Dynamic",errorIfFieldNotFound:!0});z={arguments:ne,stale:!Un(ee,ne),outputError:_.error!==void 0||X.error!==void 0||((k=_.value)==null?void 0:k.getError())!==void 0||((y=X.value)==null?void 0:y.getError())!==void 0,outputsError:((j=_.error)==null?void 0:j.getDataAsString())??((U=(N=_.value)==null?void 0:N.getError())==null?void 0:U.getDataAsString()),exportsError:((F=X.error)==null?void 0:F.getDataAsString())??((V=(q=X.value)==null?void 0:q.getError())==null?void 0:V.getDataAsString()),finished:(_.value!==void 0&&_.value.getIsReadyOrError()||_.error!==void 0&&_.error.getIsReadyOrError())&&(X.value!==void 0&&X.value.getIsReadyOrError()||X.error!==void 0&&X.error.getIsReadyOrError())}}u.set(B,{currentArguments:ee,prod:z,argsRid:W.resourceInfo.id})}const d=Ye(a,B=>{const W=Le(o,B),ee=u.get(B),z=ee.currentArguments;return{args:z,enrichmentTargets:t.projectHelper.getEnrichmentTargets(()=>W.cfg,()=>z,{argsRid:ee.argsRid,blockPackRid:W.bpResourceId})}}),p=new Set(l.blocksInLimbo),f=[...ae(a)].map(({id:B,label:W,renderingMode:ee})=>{var v,C,T,E,D;const z=S.notEmpty(u.get(B)),oe=S.notEmpty(d.nodes.get(B));let ne="NotCalculated";z.prod!==void 0&&(p.has(B)?ne="Limbo":ne=z.prod.finished?"Done":"Running");const _=Le(o,B),{sections:X,title:w,inputsValid:m,sdkVersion:R}=Ee(_,({bpId:M,cfg:L})=>{const de=Vt(s,B);return{sections:Oe(t,de,L.sections,L.code,M).wrap({recover:ke=>(t.logger.error("Error in block model sections"),t.logger.error(ke),[])}),title:Ee(L.title,ke=>Oe(t,de,ke,L.code,M).wrap({recover:$s=>(t.logger.error("Error in block model title"),t.logger.error($s),"Invalid title")})),inputsValid:Oe(t,de,L.inputsValid,L.code,M).wrap({recover:ke=>(t.logger.error("Error in block model argsValid"),t.logger.error(ke),!1)}),sdkVersion:L.sdkVersion}})||{},h=o.traverse({field:H(B,"blockSettings"),assertFieldType:"Dynamic",errorIfFieldNotSet:!0}).getDataAsJson(),b=Ee(_,({info:M})=>t.blockUpdateWatcher.get({currentSpec:M.source,settings:h}));return{projectResourceId:g.resourceIdToString(s.rid),id:B,label:w??W,title:w??W,renderingMode:ee,stale:((v=z.prod)==null?void 0:v.stale)!==!1||ne==="Limbo",missingReference:oe.missingReferences,upstreams:[...d.traverseIdsExcludingRoots("upstream",B)],downstreams:[...d.traverseIdsExcludingRoots("downstream",B)],calculationStatus:ne,outputErrors:((C=z.prod)==null?void 0:C.outputError)===!0,outputsError:(T=z.prod)==null?void 0:T.outputsError,exportsError:(E=z.prod)==null?void 0:E.exportsError,settings:h,sections:X,inputsValid:m,updateInfo:{},currentBlockPack:(D=_==null?void 0:_.info)==null?void 0:D.source,updates:b,sdkVersion:R,navigationState:e.getState(B)}});return{meta:c,created:new Date(n),lastModified:new Date(i),authorMarker:o.getKeyValueAsJson(kt),blocks:f}},{postprocessValue:r=>{const o=new Set,n=new Set;return{...r,blocks:r.blocks.map(i=>{var u,d;i.inputsValid||o.add(i.id),i.stale&&n.add(i.id);const c=i.stale||i.upstreams.findIndex(p=>n.has(p))!==-1,a=(c||i.outputErrors)&&!!i.inputsValid&&!i.missingReference&&i.upstreams.findIndex(p=>o.has(p))===-1,l={...i,canRun:a,stale:c,updateSuggestions:((u=i.updates)==null?void 0:u.suggestions)??[],updatedBlockPack:(d=i.updates)==null?void 0:d.mainSuggestion};return delete l.updates,l})}}}).withStableType()}function Jn(s,e){const t=s.node();if(g.resourceTypesEqual(t.resourceType,Nt)){const r=t.getDataAsJson();if(r===void 0)throw new Error("No resource data.");return e.frontendDownloadDriver.getPath(new URL(r.url)).withStableType()}else if(g.resourceTypesEqual(t.resourceType,Bt)){const r=t.getDataAsJson();if(r===void 0)throw new Error("No resource data.");return e.signer.verify(r.path,r.signature,`Frontend path signature mismatch for: ${r.path}`),r.path}else throw new Error(`Unsupported resource type: ${JSON.stringify(t.resourceType)}`)}function Mn(s,e){if(s!==void 0)return x.Computable.make(t=>Jn(t.accessor(s),e),{postprocessValue:t=>{if(t!==void 0){if(typeof t=="string")return t;if(t.error!==void 0)throw new Error(t.error);return t.path}}}).withStableType()}function _n(s,e,t){return x.Computable.make(r=>{var c;const o=r.accessor(s).node(),n=Le(o,e),i=(c=o.traverse({field:H(e,"blockPack"),assertFieldType:"Dynamic"},{field:g.Pl.HolderRefField,assertFieldType:"Input",errorIfFieldNotFound:!0},{field:as,assertFieldType:"Input"}))==null?void 0:c.persist();return{path:Mn(i,t),sdkVersion:n==null?void 0:n.cfg.sdkVersion}},{mode:"StableOnlyLive"})}function vs(s,e,t){if(t===void 0)return x.Computable.make(i=>vs(s,e,i),{key:`inputs#${g.resourceIdToString(s.rid)}#${e}`});const r=t.accessor(s).node(),o=Vt(s,e),n=o.uiState(t);return{author:r.getKeyValueAsJson(St(e)),args:S.deepFreeze(JSON.parse(o.args(t))),ui:n!==void 0?S.deepFreeze(JSON.parse(n)):void 0}}function Kn(s,e,t){return x.Computable.make(r=>{const o=r.accessor(s).node(),n=ds(s,e);return Ee(Le(o,e),({cfg:i,bpId:c})=>{const a={};for(const[l,u]of Object.entries(i.outputs)){const d=Oe(t,n,u,i.code,c);a[l]=x.Computable.wrapError(d,1)}return a})},{key:"outputs#"+g.resourceIdToString(s.rid)+"#"+e}).withStableType()}function Hn(s,e){return x.Computable.make(t=>{const r=t.accessor(s).node(),o=S.notEmpty(r.getKeyValueAsJson(ge)),n=[];for(const{id:i}of ae(o)){const c=Le(r,i);if(c===void 0)continue;const a=Object.entries(c.cfg.outputs).map(([,u])=>u).filter(u=>xn(u)).map(u=>u);if(a.length===0)continue;const l=ds(r.persist(),i);for(const u of a)n.push(x.Computable.wrapError(Oe(e,l,u,c.cfg.code,c.bpId)))}return n})}class qn{constructor(){P(this,"states",new Map)}setState(e,t){const r=this.states.get(e);if(r===void 0){this.states.set(e,{state:t,change:new x.ChangeSource});return}r.state={...t},r.change.markChanged()}readState(e,t){let r=this.states.get(t);return r===void 0&&(r={state:{...A.DefaultNavigationState},change:new x.ChangeSource},this.states.set(t,r)),r.change.attachWatcher(e.watcher),r.state}getState(e){return x.Computable.make(t=>this.readState(t,e),{key:`navigationState#${e}`})}deleteBlock(e){const t=this.states.get(e);t!==void 0&&(this.states.delete(e),t.change.markChanged())}}function wr(s){return JSON.stringify(s,(e,t)=>typeof t=="bigint"?g.resourceIdToString(t):ArrayBuffer.isView(t)||t instanceof Int8Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array||t instanceof BigInt64Array||t instanceof BigUint64Array?Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("base64"):Buffer.isBuffer(t)?t.toString("base64"):t)}class nt{constructor(e,t,r){P(this,"rid");P(this,"overview");P(this,"navigationStates",new qn);P(this,"blockComputables",new Map);P(this,"blockFrontends",new Map);P(this,"activeConfigs");P(this,"refreshLoopResult");P(this,"abortController",new AbortController);P(this,"destroyed",!1);this.env=e,this.projectTree=r,this.overview=Gn(r.entry(),this.navigationStates,e).withPreCalculatedValueTree(),this.rid=t,this.refreshLoopResult=this.refreshLoop(),this.activeConfigs=Hn(r.entry(),e)}async refreshLoop(){for(;!this.destroyed;)try{await _e(this.env.projectHelper,this.env.pl,this.rid,e=>{e.doRefresh(this.env.ops.stagingRenderingRate)}),await this.activeConfigs.getValue(),await _r.setTimeout(this.env.ops.projectRefreshInterval,this.abortController.signal)}catch(e){if(g.isNotFoundError(e)){console.warn("project refresh routine terminated, because project was externally deleted");break}else if(!g.isTimeoutOrCancelError(e))throw new Error("Unexpected exception",{cause:e})}}async addBlock(e,t,r,o=void 0,n=re.randomUUID()){const i=await this.env.bpPreparer.prepare(t),c=await this.env.bpPreparer.getBlockConfigContainer(t),a=A.extractConfig(c);return await ie(this.env.projectHelper,this.env.pl,this.rid,o,l=>l.addBlock({id:n,label:e,renderingMode:a.renderingMode},{args:G(a.initialArgs),uiState:G(a.initialUiState),blockPack:i},r)),await this.projectTree.refreshState(),n}async updateBlockPack(e,t,r=!1,o){const n=await this.env.bpPreparer.prepare(t),i=A.extractConfig(await this.env.bpPreparer.getBlockConfigContainer(t));await ie(this.env.projectHelper,this.env.pl,this.rid,o,c=>c.migrateBlockPack(e,n,r?{args:G(i.initialArgs),uiState:G(i.initialUiState)}:void 0)),await this.projectTree.refreshState()}async deleteBlock(e,t){await ie(this.env.projectHelper,this.env.pl,this.rid,t,r=>r.deleteBlock(e)),this.navigationStates.deleteBlock(e),await this.projectTree.refreshState()}async reorderBlocks(e,t){await ie(this.env.projectHelper,this.env.pl,this.rid,t,r=>{const o=r.structure;if(o.groups.length!==1)throw new Error("Unexpected project structure, non-sinular block group");const n=o.groups[0];if(n.blocks.length!==e.length)throw new Error(`Lengh mismatch: ${n.blocks.length} !== ${e.length}`);if(new Set(e).size!==e.length)throw new Error("Repeated block ids");const i={groups:[{id:n.id,label:n.label,blocks:e.map(c=>{const a=n.blocks.find(l=>l.id===c);if(a===void 0)throw new Error(`Can't find block: ${c}`);return a})}]};r.updateStructure(i)}),await this.projectTree.refreshState()}async runBlock(e){await _e(this.env.projectHelper,this.env.pl,this.rid,t=>t.renderProduction([e],!0)),await this.projectTree.refreshState()}async stopBlock(e){await _e(this.env.projectHelper,this.env.pl,this.rid,t=>t.stopProduction(e)),await this.projectTree.refreshState()}async setBlockArgs(e,t,r){await ie(this.env.projectHelper,this.env.pl,this.rid,r,o=>o.setArgs([{blockId:e,args:G(t)}])),await this.projectTree.refreshState()}async setUiState(e,t,r){await ie(this.env.projectHelper,this.env.pl,this.rid,r,o=>o.setUiState(e,t===void 0?void 0:G(t))),await this.projectTree.refreshState()}async setNavigationState(e,t){this.navigationStates.setState(e,t)}async setBlockArgsAndUiState(e,t,r,o){await ie(this.env.projectHelper,this.env.pl,this.rid,o,n=>{n.setArgs([{blockId:e,args:G(t)}]),n.setUiState(e,G(r))}),await this.projectTree.refreshState()}async setBlockSettings(e,t){await ie(this.env.projectHelper,this.env.pl,this.rid,void 0,r=>{r.setBlockSettings(e,t)}),await this.projectTree.refreshState()}async resetBlockArgsAndUiState(e,t){await this.env.pl.withWriteTx("BlockInputsReset",async r=>{const o=g.ensureResourceIdNotNull((await r.getField(g.field(this.rid,H(e,"blockPack")))).value),n=g.ensureResourceIdNotNull((await r.getField(g.field(o,g.Pl.HolderRefField))).value),i=await r.getResourceData(n,!1),c=A.extractConfig(S.cachedDeserialize(S.notEmpty(i.data)).config);await ie(this.env.projectHelper,r,this.rid,t,a=>{a.setArgs([{blockId:e,args:G(c.initialArgs)}]),a.setUiState(e,G(c.initialUiState))}),await r.commit()}),await this.projectTree.refreshState()}getBlockComputables(e){const t=this.blockComputables.get(e);if(t===void 0){const r=Kn(this.projectTree.entry(),e,this.env),n={fullState:x.Computable.make(i=>({argsAndUiState:vs(this.projectTree.entry(),e,i),outputs:r,navigationState:this.navigationStates.getState(e),overview:this.overview}),{postprocessValue:i=>{var u,d,p;const c=(p=(d=(u=i.overview)==null?void 0:u.blocks)==null?void 0:d.find(f=>f.id==e))==null?void 0:p.sdkVersion,l=c&&zn(c)&&i.outputs!==void 0?Yn(i.outputs):i.outputs;return{...i.argsAndUiState,outputs:l,navigationState:i.navigationState}}}).withPreCalculatedValueTree()};return this.blockComputables.set(e,n),n}return t}getBlockState(e){return this.getBlockComputables(e).fullState}getBlockFrontend(e){const t=this.blockFrontends.get(e);if(t===void 0){const r=_n(this.projectTree.entry(),e,this.env).withPreCalculatedValueTree();return this.blockFrontends.set(e,r),r}return t}async destroy(){this.destroyed=!0,this.abortController.abort(),await this.refreshLoopResult,await this.projectTree.terminate(),this.overview.resetState(),this.blockFrontends.forEach(e=>e.resetState()),this.blockComputables.forEach(e=>{e.fullState.resetState()}),this.activeConfigs.resetState()}async destroyAndAwaitTermination(){await this.destroy()}static async init(e,t){await _e(e.projectHelper,e.pl,t,o=>{});const r=await Qe.SynchronizedTreeState.init(e.pl,t,{...e.ops.defaultTreeOptions,pruning:Wn},e.logger);if(e.ops.debugOps.dumpInitialTreeState){const o=r.dumpState();o.sort((i,c)=>{var a,l;return(((a=c.data)==null?void 0:a.byteLength)??0)-(((l=i.data)==null?void 0:l.byteLength)??0)});const n=Qe.treeDumpStats(o);await Ie.writeFile(`${g.resourceIdToString(t)}.json`,wr(o)),await Ie.writeFile(`${g.resourceIdToString(t)}.stats.json`,wr(n))}return new nt(e,t,r)}}function Wn(s){switch(s.type.name){case"BlockPackCustom":return s.fields.filter(e=>e.name!=="template");case"UserProject":return s.fields.filter(e=>!e.name.startsWith("__serviceTemplate"));case"Blob":return[];default:return s.fields}}function zn(s){return!Xn(s,"1.26.0")}function Xn(s,e){const t=s.split(".").map(Number),r=e.split(".").map(Number);return t[0]>r[0]||t[0]===r[0]&&t[1]>r[1]||t[0]===r[0]&&t[1]===r[1]&&t[2]>r[2]}function Yn(s){const e={};for(const[t,r]of Object.entries(s)){if(r.ok){e[t]=r;continue}e[t]={ok:!1,errors:r.errors.map(o=>typeof o=="string"?o:o.type=="PlError"&&o.fullMessage!==void 0?o.fullMessage:o.message),moreErrors:r.moreErrors}}return e}const xt={logger:new S.ConsoleLoggerAdapter,blobDriverOps:{cacheSoftSizeBytes:8*1024*1024*1024,nConcurrentDownloads:10},downloadBlobToURLDriverOps:{cacheSoftSizeBytes:100*1024*1024,nConcurrentDownloads:10},uploadDriverOps:{nConcurrentPartUploads:10,nConcurrentGetProgresses:10,pollingInterval:1e3,stopPollingDelay:1e3},logStreamDriverOps:{nConcurrentGetLogs:10,pollingInterval:1e3,stopPollingDelay:1e3}};function Ut(s){return{blobDownloadPath:J.join(s,"download"),downloadBlobToURLPath:J.join(s,"downloadToURL"),pframesSpillPath:J.join(s,"pframes")}}const ys={...xt,defaultTreeOptions:{pollingInterval:350,stopPollingDelay:2500,initialTreeLoadingTimeout:100*60*60*1e3},debugOps:{dumpInitialTreeState:!1},devBlockUpdateRecheckInterval:1e3,projectRefreshInterval:700,stagingRenderingRate:5};function ws(s){return{...Ut(s),frontendDownloadPath:J.join(s,"frontend")}}function Qn(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}var Ot={exports:{}};const Zn="2.0.0",bs=256,ei=Number.MAX_SAFE_INTEGER||9007199254740991,ti=16,ri=bs-6,si=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var it={MAX_LENGTH:bs,MAX_SAFE_COMPONENT_LENGTH:ti,MAX_SAFE_BUILD_LENGTH:ri,MAX_SAFE_INTEGER:ei,RELEASE_TYPES:si,SEMVER_SPEC_VERSION:Zn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};const oi=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...s)=>console.error("SEMVER",...s):()=>{};var at=oi;(function(s,e){const{MAX_SAFE_COMPONENT_LENGTH:t,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:o}=it,n=at;e=s.exports={};const i=e.re=[],c=e.safeRe=[],a=e.src=[],l=e.safeSrc=[],u=e.t={};let d=0;const p="[a-zA-Z0-9-]",f=[["\\s",1],["\\d",o],[p,r]],k=j=>{for(const[N,U]of f)j=j.split(`${N}*`).join(`${N}{0,${U}}`).split(`${N}+`).join(`${N}{1,${U}}`);return j},y=(j,N,U)=>{const F=k(N),q=d++;n(j,q,N),u[j]=q,a[q]=N,l[q]=F,i[q]=new RegExp(N,U?"g":void 0),c[q]=new RegExp(F,U?"g":void 0)};y("NUMERICIDENTIFIER","0|[1-9]\\d*"),y("NUMERICIDENTIFIERLOOSE","\\d+"),y("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${p}*`),y("MAINVERSION",`(${a[u.NUMERICIDENTIFIER]})\\.(${a[u.NUMERICIDENTIFIER]})\\.(${a[u.NUMERICIDENTIFIER]})`),y("MAINVERSIONLOOSE",`(${a[u.NUMERICIDENTIFIERLOOSE]})\\.(${a[u.NUMERICIDENTIFIERLOOSE]})\\.(${a[u.NUMERICIDENTIFIERLOOSE]})`),y("PRERELEASEIDENTIFIER",`(?:${a[u.NUMERICIDENTIFIER]}|${a[u.NONNUMERICIDENTIFIER]})`),y("PRERELEASEIDENTIFIERLOOSE",`(?:${a[u.NUMERICIDENTIFIERLOOSE]}|${a[u.NONNUMERICIDENTIFIER]})`),y("PRERELEASE",`(?:-(${a[u.PRERELEASEIDENTIFIER]}(?:\\.${a[u.PRERELEASEIDENTIFIER]})*))`),y("PRERELEASELOOSE",`(?:-?(${a[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${a[u.PRERELEASEIDENTIFIERLOOSE]})*))`),y("BUILDIDENTIFIER",`${p}+`),y("BUILD",`(?:\\+(${a[u.BUILDIDENTIFIER]}(?:\\.${a[u.BUILDIDENTIFIER]})*))`),y("FULLPLAIN",`v?${a[u.MAINVERSION]}${a[u.PRERELEASE]}?${a[u.BUILD]}?`),y("FULL",`^${a[u.FULLPLAIN]}$`),y("LOOSEPLAIN",`[v=\\s]*${a[u.MAINVERSIONLOOSE]}${a[u.PRERELEASELOOSE]}?${a[u.BUILD]}?`),y("LOOSE",`^${a[u.LOOSEPLAIN]}$`),y("GTLT","((?:<|>)?=?)"),y("XRANGEIDENTIFIERLOOSE",`${a[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),y("XRANGEIDENTIFIER",`${a[u.NUMERICIDENTIFIER]}|x|X|\\*`),y("XRANGEPLAIN",`[v=\\s]*(${a[u.XRANGEIDENTIFIER]})(?:\\.(${a[u.XRANGEIDENTIFIER]})(?:\\.(${a[u.XRANGEIDENTIFIER]})(?:${a[u.PRERELEASE]})?${a[u.BUILD]}?)?)?`),y("XRANGEPLAINLOOSE",`[v=\\s]*(${a[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[u.XRANGEIDENTIFIERLOOSE]})(?:${a[u.PRERELEASELOOSE]})?${a[u.BUILD]}?)?)?`),y("XRANGE",`^${a[u.GTLT]}\\s*${a[u.XRANGEPLAIN]}$`),y("XRANGELOOSE",`^${a[u.GTLT]}\\s*${a[u.XRANGEPLAINLOOSE]}$`),y("COERCEPLAIN",`(^|[^\\d])(\\d{1,${t}})(?:\\.(\\d{1,${t}}))?(?:\\.(\\d{1,${t}}))?`),y("COERCE",`${a[u.COERCEPLAIN]}(?:$|[^\\d])`),y("COERCEFULL",a[u.COERCEPLAIN]+`(?:${a[u.PRERELEASE]})?(?:${a[u.BUILD]})?(?:$|[^\\d])`),y("COERCERTL",a[u.COERCE],!0),y("COERCERTLFULL",a[u.COERCEFULL],!0),y("LONETILDE","(?:~>?)"),y("TILDETRIM",`(\\s*)${a[u.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",y("TILDE",`^${a[u.LONETILDE]}${a[u.XRANGEPLAIN]}$`),y("TILDELOOSE",`^${a[u.LONETILDE]}${a[u.XRANGEPLAINLOOSE]}$`),y("LONECARET","(?:\\^)"),y("CARETTRIM",`(\\s*)${a[u.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",y("CARET",`^${a[u.LONECARET]}${a[u.XRANGEPLAIN]}$`),y("CARETLOOSE",`^${a[u.LONECARET]}${a[u.XRANGEPLAINLOOSE]}$`),y("COMPARATORLOOSE",`^${a[u.GTLT]}\\s*(${a[u.LOOSEPLAIN]})$|^$`),y("COMPARATOR",`^${a[u.GTLT]}\\s*(${a[u.FULLPLAIN]})$|^$`),y("COMPARATORTRIM",`(\\s*)${a[u.GTLT]}\\s*(${a[u.LOOSEPLAIN]}|${a[u.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",y("HYPHENRANGE",`^\\s*(${a[u.XRANGEPLAIN]})\\s+-\\s+(${a[u.XRANGEPLAIN]})\\s*$`),y("HYPHENRANGELOOSE",`^\\s*(${a[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${a[u.XRANGEPLAINLOOSE]})\\s*$`),y("STAR","(<|>)?=?\\s*\\*"),y("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),y("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(Ot,Ot.exports);var Be=Ot.exports;const ni=Object.freeze({loose:!0}),ii=Object.freeze({}),ai=s=>s?typeof s!="object"?ni:s:ii;var Gt=ai;const br=/^[0-9]+$/,Ss=(s,e)=>{const t=br.test(s),r=br.test(e);return t&&r&&(s=+s,e=+e),s===e?0:t&&!r?-1:r&&!t?1:s<e?-1:1},ci=(s,e)=>Ss(e,s);var ks={compareIdentifiers:Ss,rcompareIdentifiers:ci};const He=at,{MAX_LENGTH:Sr,MAX_SAFE_INTEGER:qe}=it,{safeRe:kr,safeSrc:Pr,t:We}=Be,li=Gt,{compareIdentifiers:me}=ks;let ui=class ue{constructor(e,t){if(t=li(t),e instanceof ue){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>Sr)throw new TypeError(`version is longer than ${Sr} characters`);He("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?kr[We.LOOSE]:kr[We.FULL]);if(!r)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>qe||this.major<0)throw new TypeError("Invalid major version");if(this.minor>qe||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>qe||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(o=>{if(/^[0-9]+$/.test(o)){const n=+o;if(n>=0&&n<qe)return n}return o}):this.prerelease=[],this.build=r[5]?r[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(He("SemVer.compare",this.version,this.options,e),!(e instanceof ue)){if(typeof e=="string"&&e===this.version)return 0;e=new ue(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof ue||(e=new ue(e,this.options)),me(this.major,e.major)||me(this.minor,e.minor)||me(this.patch,e.patch)}comparePre(e){if(e instanceof ue||(e=new ue(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{const r=this.prerelease[t],o=e.prerelease[t];if(He("prerelease compare",t,r,o),r===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(r===void 0)return-1;if(r===o)continue;return me(r,o)}while(++t)}compareBuild(e){e instanceof ue||(e=new ue(e,this.options));let t=0;do{const r=this.build[t],o=e.build[t];if(He("build compare",t,r,o),r===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(r===void 0)return-1;if(r===o)continue;return me(r,o)}while(++t)}inc(e,t,r){if(e.startsWith("pre")){if(!t&&r===!1)throw new Error("invalid increment argument: identifier is empty");if(t){const o=new RegExp(`^${this.options.loose?Pr[We.PRERELEASELOOSE]:Pr[We.PRERELEASE]}$`),n=`-${t}`.match(o);if(!n||n[1]!==t)throw new Error(`invalid identifier: ${t}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,r),this.inc("pre",t,r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,r),this.inc("pre",t,r);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const o=Number(r)?1:0;if(this.prerelease.length===0)this.prerelease=[o];else{let n=this.prerelease.length;for(;--n>=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(t===this.prerelease.join(".")&&r===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(o)}}if(t){let n=[t,o];r===!1&&(n=[t]),me(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};var Z=ui;const Cr=Z,di=(s,e,t=!1)=>{if(s instanceof Cr)return s;try{return new Cr(s,e)}catch(r){if(!t)return null;throw r}};var be=di;const pi=be,fi=(s,e)=>{const t=pi(s,e);return t?t.version:null};var gi=fi;const hi=be,mi=(s,e)=>{const t=hi(s.trim().replace(/^[=v]+/,""),e);return t?t.version:null};var vi=mi;const Rr=Z,yi=(s,e,t,r,o)=>{typeof t=="string"&&(o=r,r=t,t=void 0);try{return new Rr(s instanceof Rr?s.version:s,t).inc(e,r,o).version}catch{return null}};var wi=yi;const Er=be,bi=(s,e)=>{const t=Er(s,null,!0),r=Er(e,null,!0),o=t.compare(r);if(o===0)return null;const n=o>0,i=n?t:r,c=n?r:t,a=!!i.prerelease.length;if(!!c.prerelease.length&&!a){if(!c.patch&&!c.minor)return"major";if(c.compareMain(i)===0)return c.minor&&!c.patch?"minor":"patch"}const u=a?"pre":"";return t.major!==r.major?u+"major":t.minor!==r.minor?u+"minor":t.patch!==r.patch?u+"patch":"prerelease"};var Si=bi;const ki=Z,Pi=(s,e)=>new ki(s,e).major;var Ci=Pi;const Ri=Z,Ei=(s,e)=>new Ri(s,e).minor;var Oi=Ei;const Ti=Z,$i=(s,e)=>new Ti(s,e).patch;var Ii=$i;const Fi=be,Ai=(s,e)=>{const t=Fi(s,e);return t&&t.prerelease.length?t.prerelease:null};var Di=Ai;const Or=Z,Li=(s,e,t)=>new Or(s,t).compare(new Or(e,t));var ce=Li;const Ni=ce,Bi=(s,e,t)=>Ni(e,s,t);var ji=Bi;const Vi=ce,xi=(s,e)=>Vi(s,e,!0);var Ui=xi;const Tr=Z,Gi=(s,e,t)=>{const r=new Tr(s,t),o=new Tr(e,t);return r.compare(o)||r.compareBuild(o)};var Jt=Gi;const Ji=Jt,Mi=(s,e)=>s.sort((t,r)=>Ji(t,r,e));var _i=Mi;const Ki=Jt,Hi=(s,e)=>s.sort((t,r)=>Ki(r,t,e));var qi=Hi;const Wi=ce,zi=(s,e,t)=>Wi(s,e,t)>0;var ct=zi;const Xi=ce,Yi=(s,e,t)=>Xi(s,e,t)<0;var Mt=Yi;const Qi=ce,Zi=(s,e,t)=>Qi(s,e,t)===0;var Ps=Zi;const ea=ce,ta=(s,e,t)=>ea(s,e,t)!==0;var Cs=ta;const ra=ce,sa=(s,e,t)=>ra(s,e,t)>=0;var _t=sa;const oa=ce,na=(s,e,t)=>oa(s,e,t)<=0;var Kt=na;const ia=Ps,aa=Cs,ca=ct,la=_t,ua=Mt,da=Kt,pa=(s,e,t,r)=>{switch(e){case"===":return typeof s=="object"&&(s=s.version),typeof t=="object"&&(t=t.version),s===t;case"!==":return typeof s=="object"&&(s=s.version),typeof t=="object"&&(t=t.version),s!==t;case"":case"=":case"==":return ia(s,t,r);case"!=":return aa(s,t,r);case">":return ca(s,t,r);case">=":return la(s,t,r);case"<":return ua(s,t,r);case"<=":return da(s,t,r);default:throw new TypeError(`Invalid operator: ${e}`)}};var Rs=pa;const fa=Z,ga=be,{safeRe:ze,t:Xe}=Be,ha=(s,e)=>{if(s instanceof fa)return s;if(typeof s=="number"&&(s=String(s)),typeof s!="string")return null;e=e||{};let t=null;if(!e.rtl)t=s.match(e.includePrerelease?ze[Xe.COERCEFULL]:ze[Xe.COERCE]);else{const a=e.includePrerelease?ze[Xe.COERCERTLFULL]:ze[Xe.COERCERTL];let l;for(;(l=a.exec(s))&&(!t||t.index+t[0].length!==s.length);)(!t||l.index+l[0].length!==t.index+t[0].length)&&(t=l),a.lastIndex=l.index+l[1].length+l[2].length;a.lastIndex=-1}if(t===null)return null;const r=t[2],o=t[3]||"0",n=t[4]||"0",i=e.includePrerelease&&t[5]?`-${t[5]}`:"",c=e.includePrerelease&&t[6]?`+${t[6]}`:"";return ga(`${r}.${o}.${n}${i}${c}`,e)};var ma=ha;class va{constructor(){this.max=1e3,this.map=new Map}get(e){const t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){const o=this.map.keys().next().value;this.delete(o)}this.map.set(e,t)}return this}}var ya=va,gt,$r;function le(){if($r)return gt;$r=1;const s=/\s+/g;class e{constructor(m,R){if(R=o(R),m instanceof e)return m.loose===!!R.loose&&m.includePrerelease===!!R.includePrerelease?m:new e(m.raw,R);if(m instanceof n)return this.raw=m.value,this.set=[[m]],this.formatted=void 0,this;if(this.options=R,this.loose=!!R.loose,this.includePrerelease=!!R.includePrerelease,this.raw=m.trim().replace(s," "),this.set=this.raw.split("||").map(h=>this.parseRange(h.trim())).filter(h=>h.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const h=this.set[0];if(this.set=this.set.filter(b=>!y(b[0])),this.set.length===0)this.set=[h];else if(this.set.length>1){for(const b of this.set)if(b.length===1&&j(b[0])){this.set=[b];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let m=0;m<this.set.length;m++){m>0&&(this.formatted+="||");const R=this.set[m];for(let h=0;h<R.length;h++)h>0&&(this.formatted+=" "),this.formatted+=R[h].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(m){const h=((this.options.includePrerelease&&f)|(this.options.loose&&k))+":"+m,b=r.get(h);if(b)return b;const v=this.options.loose,C=v?a[l.HYPHENRANGELOOSE]:a[l.HYPHENRANGE];m=m.replace(C,_(this.options.includePrerelease)),i("hyphen replace",m),m=m.replace(a[l.COMPARATORTRIM],u),i("comparator trim",m),m=m.replace(a[l.TILDETRIM],d),i("tilde trim",m),m=m.replace(a[l.CARETTRIM],p),i("caret trim",m);let T=m.split(" ").map(L=>U(L,this.options)).join(" ").split(/\s+/).map(L=>ne(L,this.options));v&&(T=T.filter(L=>(i("loose invalid filter",L,this.options),!!L.match(a[l.COMPARATORLOOSE])))),i("range list",T);const E=new Map,D=T.map(L=>new n(L,this.options));for(const L of D){if(y(L))return[L];E.set(L.value,L)}E.size>1&&E.has("")&&E.delete("");const M=[...E.values()];return r.set(h,M),M}intersects(m,R){if(!(m instanceof e))throw new TypeError("a Range is required");return this.set.some(h=>N(h,R)&&m.set.some(b=>N(b,R)&&h.every(v=>b.every(C=>v.intersects(C,R)))))}test(m){if(!m)return!1;if(typeof m=="string")try{m=new c(m,this.options)}catch{return!1}for(let R=0;R<this.set.length;R++)if(X(this.set[R],m,this.options))return!0;return!1}}gt=e;const t=ya,r=new t,o=Gt,n=lt(),i=at,c=Z,{safeRe:a,t:l,comparatorTrimReplace:u,tildeTrimReplace:d,caretTrimReplace:p}=Be,{FLAG_INCLUDE_PRERELEASE:f,FLAG_LOOSE:k}=it,y=w=>w.value==="<0.0.0-0",j=w=>w.value==="",N=(w,m)=>{let R=!0;const h=w.slice();let b=h.pop();for(;R&&h.length;)R=h.every(v=>b.intersects(v,m)),b=h.pop();return R},U=(w,m)=>(i("comp",w,m),w=B(w,m),i("caret",w),w=q(w,m),i("tildes",w),w=ee(w,m),i("xrange",w),w=oe(w,m),i("stars",w),w),F=w=>!w||w.toLowerCase()==="x"||w==="*",q=(w,m)=>w.trim().split(/\s+/).map(R=>V(R,m)).join(" "),V=(w,m)=>{const R=m.loose?a[l.TILDELOOSE]:a[l.TILDE];return w.replace(R,(h,b,v,C,T)=>{i("tilde",w,h,b,v,C,T);let E;return F(b)?E="":F(v)?E=`>=${b}.0.0 <${+b+1}.0.0-0`:F(C)?E=`>=${b}.${v}.0 <${b}.${+v+1}.0-0`:T?(i("replaceTilde pr",T),E=`>=${b}.${v}.${C}-${T} <${b}.${+v+1}.0-0`):E=`>=${b}.${v}.${C} <${b}.${+v+1}.0-0`,i("tilde return",E),E})},B=(w,m)=>w.trim().split(/\s+/).map(R=>W(R,m)).join(" "),W=(w,m)=>{i("caret",w,m);const R=m.loose?a[l.CARETLOOSE]:a[l.CARET],h=m.includePrerelease?"-0":"";return w.replace(R,(b,v,C,T,E)=>{i("caret",w,b,v,C,T,E);let D;return F(v)?D="":F(C)?D=`>=${v}.0.0${h} <${+v+1}.0.0-0`:F(T)?v==="0"?D=`>=${v}.${C}.0${h} <${v}.${+C+1}.0-0`:D=`>=${v}.${C}.0${h} <${+v+1}.0.0-0`:E?(i("replaceCaret pr",E),v==="0"?C==="0"?D=`>=${v}.${C}.${T}-${E} <${v}.${C}.${+T+1}-0`:D=`>=${v}.${C}.${T}-${E} <${v}.${+C+1}.0-0`:D=`>=${v}.${C}.${T}-${E} <${+v+1}.0.0-0`):(i("no pr"),v==="0"?C==="0"?D=`>=${v}.${C}.${T}${h} <${v}.${C}.${+T+1}-0`:D=`>=${v}.${C}.${T}${h} <${v}.${+C+1}.0-0`:D=`>=${v}.${C}.${T} <${+v+1}.0.0-0`),i("caret return",D),D})},ee=(w,m)=>(i("replaceXRanges",w,m),w.split(/\s+/).map(R=>z(R,m)).join(" ")),z=(w,m)=>{w=w.trim();const R=m.loose?a[l.XRANGELOOSE]:a[l.XRANGE];return w.replace(R,(h,b,v,C,T,E)=>{i("xRange",w,h,b,v,C,T,E);const D=F(v),M=D||F(C),L=M||F(T),de=L;return b==="="&&de&&(b=""),E=m.includePrerelease?"-0":"",D?b===">"||b==="<"?h="<0.0.0-0":h="*":b&&de?(M&&(C=0),T=0,b===">"?(b=">=",M?(v=+v+1,C=0,T=0):(C=+C+1,T=0)):b==="<="&&(b="<",M?v=+v+1:C=+C+1),b==="<"&&(E="-0"),h=`${b+v}.${C}.${T}${E}`):M?h=`>=${v}.0.0${E} <${+v+1}.0.0-0`:L&&(h=`>=${v}.${C}.0${E} <${v}.${+C+1}.0-0`),i("xRange return",h),h})},oe=(w,m)=>(i("replaceStars",w,m),w.trim().replace(a[l.STAR],"")),ne=(w,m)=>(i("replaceGTE0",w,m),w.trim().replace(a[m.includePrerelease?l.GTE0PRE:l.GTE0],"")),_=w=>(m,R,h,b,v,C,T,E,D,M,L,de)=>(F(h)?R="":F(b)?R=`>=${h}.0.0${w?"-0":""}`:F(v)?R=`>=${h}.${b}.0${w?"-0":""}`:C?R=`>=${R}`:R=`>=${R}${w?"-0":""}`,F(D)?E="":F(M)?E=`<${+D+1}.0.0-0`:F(L)?E=`<${D}.${+M+1}.0-0`:de?E=`<=${D}.${M}.${L}-${de}`:w?E=`<${D}.${M}.${+L+1}-0`:E=`<=${E}`,`${R} ${E}`.trim()),X=(w,m,R)=>{for(let h=0;h<w.length;h++)if(!w[h].test(m))return!1;if(m.prerelease.length&&!R.includePrerelease){for(let h=0;h<w.length;h++)if(i(w[h].semver),w[h].semver!==n.ANY&&w[h].semver.prerelease.length>0){const b=w[h].semver;if(b.major===m.major&&b.minor===m.minor&&b.patch===m.patch)return!0}return!1}return!0};return gt}var ht,Ir;function lt(){if(Ir)return ht;Ir=1;const s=Symbol("SemVer ANY");class e{static get ANY(){return s}constructor(u,d){if(d=t(d),u instanceof e){if(u.loose===!!d.loose)return u;u=u.value}u=u.trim().split(/\s+/).join(" "),i("comparator",u,d),this.options=d,this.loose=!!d.loose,this.parse(u),this.semver===s?this.value="":this.value=this.operator+this.semver.version,i("comp",this)}parse(u){const d=this.options.loose?r[o.COMPARATORLOOSE]:r[o.COMPARATOR],p=u.match(d);if(!p)throw new TypeError(`Invalid comparator: ${u}`);this.operator=p[1]!==void 0?p[1]:"",this.operator==="="&&(this.operator=""),p[2]?this.semver=new c(p[2],this.options.loose):this.semver=s}toString(){return this.value}test(u){if(i("Comparator.test",u,this.options.loose),this.semver===s||u===s)return!0;if(typeof u=="string")try{u=new c(u,this.options)}catch{return!1}return n(u,this.operator,this.semver,this.options)}intersects(u,d){if(!(u instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new a(u.value,d).test(this.value):u.operator===""?u.value===""?!0:new a(this.value,d).test(u.semver):(d=t(d),d.includePrerelease&&(this.value==="<0.0.0-0"||u.value==="<0.0.0-0")||!d.includePrerelease&&(this.value.startsWith("<0.0.0")||u.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&u.operator.startsWith(">")||this.operator.startsWith("<")&&u.operator.startsWith("<")||this.semver.version===u.semver.version&&this.operator.includes("=")&&u.operator.includes("=")||n(this.semver,"<",u.semver,d)&&this.operator.startsWith(">")&&u.operator.startsWith("<")||n(this.semver,">",u.semver,d)&&this.operator.startsWith("<")&&u.operator.startsWith(">")))}}ht=e;const t=Gt,{safeRe:r,t:o}=Be,n=Rs,i=at,c=Z,a=le();return ht}const wa=le(),ba=(s,e,t)=>{try{e=new wa(e,t)}catch{return!1}return e.test(s)};var ut=ba;const Sa=le(),ka=(s,e)=>new Sa(s,e).set.map(t=>t.map(r=>r.value).join(" ").trim().split(" "));var Pa=ka;const Ca=Z,Ra=le(),Ea=(s,e,t)=>{let r=null,o=null,n=null;try{n=new Ra(e,t)}catch{return null}return s.forEach(i=>{n.test(i)&&(!r||o.compare(i)===-1)&&(r=i,o=new Ca(r,t))}),r};var Oa=Ea;const Ta=Z,$a=le(),Ia=(s,e,t)=>{let r=null,o=null,n=null;try{n=new $a(e,t)}catch{return null}return s.forEach(i=>{n.test(i)&&(!r||o.compare(i)===1)&&(r=i,o=new Ta(r,t))}),r};var Fa=Ia;const mt=Z,Aa=le(),Fr=ct,Da=(s,e)=>{s=new Aa(s,e);let t=new mt("0.0.0");if(s.test(t)||(t=new mt("0.0.0-0"),s.test(t)))return t;t=null;for(let r=0;r<s.set.length;++r){const o=s.set[r];let n=null;o.forEach(i=>{const c=new mt(i.semver.version);switch(i.operator){case">":c.prerelease.length===0?c.patch++:c.prerelease.push(0),c.raw=c.format();case"":case">=":(!n||Fr(c,n))&&(n=c);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${i.operator}`)}}),n&&(!t||Fr(t,n))&&(t=n)}return t&&s.test(t)?t:null};var La=Da;const Na=le(),Ba=(s,e)=>{try{return new Na(s,e).range||"*"}catch{return null}};var ja=Ba;const Va=Z,Es=lt(),{ANY:xa}=Es,Ua=le(),Ga=ut,Ar=ct,Dr=Mt,Ja=Kt,Ma=_t,_a=(s,e,t,r)=>{s=new Va(s,r),e=new Ua(e,r);let o,n,i,c,a;switch(t){case">":o=Ar,n=Ja,i=Dr,c=">",a=">=";break;case"<":o=Dr,n=Ma,i=Ar,c="<",a="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Ga(s,e,r))return!1;for(let l=0;l<e.set.length;++l){const u=e.set[l];let d=null,p=null;if(u.forEach(f=>{f.semver===xa&&(f=new Es(">=0.0.0")),d=d||f,p=p||f,o(f.semver,d.semver,r)?d=f:i(f.semver,p.semver,r)&&(p=f)}),d.operator===c||d.operator===a||(!p.operator||p.operator===c)&&n(s,p.semver))return!1;if(p.operator===a&&i(s,p.semver))return!1}return!0};var Ht=_a;const Ka=Ht,Ha=(s,e,t)=>Ka(s,e,">",t);var qa=Ha;const Wa=Ht,za=(s,e,t)=>Wa(s,e,"<",t);var Xa=za;const Lr=le(),Ya=(s,e,t)=>(s=new Lr(s,t),e=new Lr(e,t),s.intersects(e,t));var Qa=Ya;const Za=ut,ec=ce;var tc=(s,e,t)=>{const r=[];let o=null,n=null;const i=s.sort((u,d)=>ec(u,d,t));for(const u of i)Za(u,e,t)?(n=u,o||(o=u)):(n&&r.push([o,n]),n=null,o=null);o&&r.push([o,null]);const c=[];for(const[u,d]of r)u===d?c.push(u):!d&&u===i[0]?c.push("*"):d?u===i[0]?c.push(`<=${d}`):c.push(`${u} - ${d}`):c.push(`>=${u}`);const a=c.join(" || "),l=typeof e.raw=="string"?e.raw:String(e);return a.length<l.length?a:e};const Nr=le(),qt=lt(),{ANY:vt}=qt,Pe=ut,Wt=ce,rc=(s,e,t={})=>{if(s===e)return!0;s=new Nr(s,t),e=new Nr(e,t);let r=!1;e:for(const o of s.set){for(const n of e.set){const i=oc(o,n,t);if(r=r||i!==null,i)continue e}if(r)return!1}return!0},sc=[new qt(">=0.0.0-0")],Br=[new qt(">=0.0.0")],oc=(s,e,t)=>{if(s===e)return!0;if(s.length===1&&s[0].semver===vt){if(e.length===1&&e[0].semver===vt)return!0;t.includePrerelease?s=sc:s=Br}if(e.length===1&&e[0].semver===vt){if(t.includePrerelease)return!0;e=Br}const r=new Set;let o,n;for(const f of s)f.operator===">"||f.operator===">="?o=jr(o,f,t):f.operator==="<"||f.operator==="<="?n=Vr(n,f,t):r.add(f.semver);if(r.size>1)return null;let i;if(o&&n){if(i=Wt(o.semver,n.semver,t),i>0)return null;if(i===0&&(o.operator!==">="||n.operator!=="<="))return null}for(const f of r){if(o&&!Pe(f,String(o),t)||n&&!Pe(f,String(n),t))return null;for(const k of e)if(!Pe(f,String(k),t))return!1;return!0}let c,a,l,u,d=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1,p=o&&!t.includePrerelease&&o.semver.prerelease.length?o.semver:!1;d&&d.prerelease.length===1&&n.operator==="<"&&d.prerelease[0]===0&&(d=!1);for(const f of e){if(u=u||f.operator===">"||f.operator===">=",l=l||f.operator==="<"||f.operator==="<=",o){if(p&&f.semver.prerelease&&f.semver.prerelease.length&&f.semver.major===p.major&&f.semver.minor===p.minor&&f.semver.patch===p.patch&&(p=!1),f.operator===">"||f.operator===">="){if(c=jr(o,f,t),c===f&&c!==o)return!1}else if(o.operator===">="&&!Pe(o.semver,String(f),t))return!1}if(n){if(d&&f.semver.prerelease&&f.semver.prerelease.length&&f.semver.major===d.major&&f.semver.minor===d.minor&&f.semver.patch===d.patch&&(d=!1),f.operator==="<"||f.operator==="<="){if(a=Vr(n,f,t),a===f&&a!==n)return!1}else if(n.operator==="<="&&!Pe(n.semver,String(f),t))return!1}if(!f.operator&&(n||o)&&i!==0)return!1}return!(o&&l&&!n&&i!==0||n&&u&&!o&&i!==0||p||d)},jr=(s,e,t)=>{if(!s)return e;const r=Wt(s.semver,e.semver,t);return r>0?s:r<0||e.operator===">"&&s.operator===">="?e:s},Vr=(s,e,t)=>{if(!s)return e;const r=Wt(s.semver,e.semver,t);return r<0?s:r>0||e.operator==="<"&&s.operator==="<="?e:s};var nc=rc;const yt=Be,xr=it,ic=Z,Ur=ks,ac=be,cc=gi,lc=vi,uc=wi,dc=Si,pc=Ci,fc=Oi,gc=Ii,hc=Di,mc=ce,vc=ji,yc=Ui,wc=Jt,bc=_i,Sc=qi,kc=ct,Pc=Mt,Cc=Ps,Rc=Cs,Ec=_t,Oc=Kt,Tc=Rs,$c=ma,Ic=lt(),Fc=le(),Ac=ut,Dc=Pa,Lc=Oa,Nc=Fa,Bc=La,jc=ja,Vc=Ht,xc=qa,Uc=Xa,Gc=Qa,Jc=tc,Mc=nc;var _c={parse:ac,valid:cc,clean:lc,inc:uc,diff:dc,major:pc,minor:fc,patch:gc,prerelease:hc,compare:mc,rcompare:vc,compareLoose:yc,compareBuild:wc,sort:bc,rsort:Sc,gt:kc,lt:Pc,eq:Cc,neq:Rc,gte:Ec,lte:Oc,cmp:Tc,coerce:$c,Comparator:Ic,Range:Fc,satisfies:Ac,toComparators:Dc,maxSatisfying:Lc,minSatisfying:Nc,minVersion:Bc,validRange:jc,outside:Vc,gtr:xc,ltr:Uc,intersects:Gc,simplifyRange:Jc,subset:Mc,SemVer:ic,re:yt.re,src:yt.src,tokens:yt.t,SEMVER_SPEC_VERSION:xr.SEMVER_SPEC_VERSION,RELEASE_TYPES:xr.RELEASE_TYPES,compareIdentifiers:Ur.compareIdentifiers,rcompareIdentifiers:Ur.rcompareIdentifiers};const Kc=Qn(_c),Hc={minDelay:1500},qc="__no_updates__";class Wc extends x.PollComputablePool{constructor(t,r,o={}){super({...o,...Hc},r);P(this,"http");P(this,"preferredUpdateChannel");this.registryProvider=t,this.http=o.http,this.preferredUpdateChannel=o.preferredUpdateChannel}getKey(t){switch(t.currentSpec.type){case"dev-v1":return`dev_1_${t.currentSpec.folder}_${t.currentSpec.mtime}`;case"dev-v2":return`dev_2_${t.currentSpec.folder}_${t.currentSpec.mtime}`;case"from-registry-v2":return`from_registry_v2_${G(t)}`;default:return qc}}async readValue(t){var r,o;try{const n=t.currentSpec;switch(n.type){case"dev-v1":try{const i=await At(n.folder);return i===n.mtime?{suggestions:[]}:{mainSuggestion:{...n,mtime:i},suggestions:[]}}catch(i){return this.logger.warn(i),{suggestions:[]}}case"dev-v2":try{const i=await Q.tryLoadPackDescription(n.folder,this.logger);if(i===void 0)return{suggestions:[]};const c=await rt(i);return c===n.mtime?{suggestions:[]}:{mainSuggestion:{...n,mtime:c},suggestions:[]}}catch(i){return this.logger.warn(i),{suggestions:[]}}case"from-registry-v2":try{const{versionLock:i,skipVersion:c}=t.settings;if(i==="patch")return{suggestions:[]};const a=this.registryProvider.getRegistry(n.registryUrl);let l=this.preferredUpdateChannel;if(l===void 0)if(n.channel===void 0)if(await a.getLatestOverview(n.id,Y.StableChannel))l=Y.StableChannel;else{if(await a.getLatestOverview(n.id,Y.AnyChannel)===void 0)return this.logger.error(`No "any" channel record for ${Y.blockPackIdToString(n.id)}`),{suggestions:[]};l=Y.AnyChannel}else l=n.channel;const u=await a.getUpdateSuggestions(n.id,l);if(u===void 0||u.length===0)return{suggestions:[]};u.reverse();let d;switch(i){case void 0:d=u[0].update;break;case"major":d=(r=u.find(k=>k.type!=="major"))==null?void 0:r.update;break;case"minor":d=(o=u.find(k=>k.type==="patch"))==null?void 0:o.update;break}const p=u.map(({type:k,update:y})=>({type:k,update:{...n,id:{...n.id,version:y}}}));if(d===void 0)return{suggestions:p};if(c!==void 0&&Kc.lte(d,c))return{suggestions:p};const f={...n,id:{...n.id,version:d}};return(async()=>{try{await a.getComponents(f.id)}catch(k){this.logger.warn(k)}})(),{suggestions:p,mainSuggestion:f}}catch(i){return this.logger.warn(i),{suggestions:[]}}default:return{suggestions:[]}}}catch(n){return this.logger.warn(n),{suggestions:[]}}}resultsEqual(t,r){return G(t)===G(r)}}class Gr{constructor(){P(this,"resources",new Map)}check(e){const t=this.resources.get(e);if(t===void 0)throw new Error("Unexpected state.");t.refCount===0&&(this.resources.delete(e),(o=>o!=null&&typeof o[Symbol.dispose]=="function")(t.resource)&&t.resource[Symbol.dispose]())}acquire(e){const t=this.calculateParamsKey(e);let r=this.resources.get(t);r===void 0&&(r={refCount:0,resource:this.createNewResource(e)},this.resources.set(t,r)),r.refCount++;let o=!1;return{resource:r.resource,key:t,unref:()=>{o||(r.refCount--,o=!0,this.check(t))}}}getByKey(e){if(!this.resources.has(e))throw new Error(`resource not found, key = ${e}`);return this.resources.get(e).resource}tryGetByKey(e){var t;return(t=this.resources.get(e))==null?void 0:t.resource}}let Ce;function pe(){return Ce||(Ce={logPFrameRequests:process.env.MI_LOG_PFRAMES!==void 0,dumpInitialTreeState:process.env.MI_DUMP_INITIAL_TREE_STATE!==void 0},process.env.MI_LOG_TREE_STAT&&(Ce.logTreeStats=process.env.MI_LOG_TREE_STAT==="cumulative"?"cumulative":"per-request"),Ce)}function Te(s){return String(s.id)}const zc=["Int","Long","Float","Double","String","Bytes"];function wt(s){const e=[],t=[];for(const r of s)r.type==="bySingleColumn"?(e.push(r),t.push({...r,type:"bySingleColumnV2"})):t.push(r);if(e.length>0){const r=JSON.stringify(e);console.warn(`type overriten from 'bySingleColumn' to 'bySingleColumnV2' for filters: ${r}`)}return t}const Re=(s,e)=>typeof e=="bigint"?e.toString():e;class Xc{constructor(e,t,r,o,n){P(this,"pFrame");P(this,"blobIdToResource",new Map);P(this,"blobHandleComputables",new Map);P(this,"preloadBlob",async e=>{const t=e.map(r=>this.getOrCreateComputableForBlob(r));for(const r of t)await r.awaitStableFullValue()});P(this,"resolveBlob",async e=>{const t=this.getOrCreateComputableForBlob(e);return this.blobDriver.getLocalPath((await t.awaitStableValue()).handle)});P(this,"resolveBlobContent",async e=>{try{const t=this.getOrCreateComputableForBlob(e),r=this.blobDriver.getLocalPath((await t.awaitStableValue()).handle);return await this.blobContentCache.forceFetch(r)}catch(t){const r=JSON.stringify(t);throw console.log(`resolveBlobContent catched error: ${r}`),t}});this.blobDriver=e,this.logger=t,this.spillPath=r,this.blobContentCache=o;const i=(a,l)=>this.logger[a](l);for(const a of n)for(const l of Go(a.data))this.blobIdToResource.set(Te(l),l);const c=[...new Map(n.map(a=>({...a,data:Jo(a.data,Te)})).map(a=>[G(a),a])).values()];try{const a=new Vs.PFrame(this.spillPath,pe().logPFrameRequests?i:void 0);a.setDataSource(this);for(const l of c)a.addColumnSpec(l.id,l.spec),a.setColumnData(l.id,l.data);this.pFrame=a}catch(a){throw new Error(`Rust PFrame creation failed, columns: ${JSON.stringify(c)}, error: ${a}`)}}getOrCreateComputableForBlob(e){let t=this.blobHandleComputables.get(e);if(t!==void 0)return t;const r=this.blobIdToResource.get(e);if(r===void 0)throw new Error(`Blob with id ${e} not found.`);return t=this.blobDriver.getDownloadedBlob(r).withPreCalculatedValueTree(),this.blobHandleComputables.set(e,t),t}[Symbol.dispose](){for(const e of this.blobHandleComputables.values())e.resetState();this.pFrame.dispose()}}class Yc{constructor(e){this.table=e}[Symbol.dispose](){this.table.then(e=>e.dispose())}}class zt{constructor(e,t,r){P(this,"pFrames");P(this,"pTables");P(this,"concurrencyLimiter");this.blobDriver=e,this.logger=t,this.spillPath=r;const o=new Tt.LRUCache({maxSize:1e9,fetchMethod:async i=>await Hr.readFile(i),sizeCalculation:i=>i.length}),n=new S.ConcurrencyLimitingExecutor(4);this.concurrencyLimiter=n,this.pFrames=new class extends Gr{constructor(i,c,a){super(),this.blobDriver=i,this.logger=c,this.spillPath=a}createNewResource(i){return pe().logPFrameRequests&&t.info(`PFrame creation (pFrameHandle = ${this.calculateParamsKey(i)}): ${JSON.stringify(i,Re)}`),new Xc(this.blobDriver,this.logger,this.spillPath,o,i)}calculateParamsKey(i){return Zc(i)}}(this.blobDriver,this.logger,this.spillPath),this.pTables=new class extends Gr{constructor(i){super(),this.pFrames=i}createNewResource(i){const c=i.pFrameHandle;pe().logPFrameRequests&&t.info(`PTable creation (pTableHandle = ${this.calculateParamsKey(i)}): ${JSON.stringify(i,Re)}`);const a=n.run(async()=>{const l=await this.pFrames.getByKey(c).pFrame.createTable({src:$e(i.def.src),filters:wt(i.def.filters)},i.signal);let u=l;if(i.def.sorting.length>0)try{u=await l.sort(i.def.sorting,i.signal)}finally{l.dispose()}return u});return new Yc(a)}calculateParamsKey(i){return Qc(i)}}(this.pFrames)}static async init(e,t,r){const o=Gs.resolve(r);return await S.emptyDir(o),new zt(e,t,o)}createPFrame(e,t){const r=e.filter(n=>zc.find(i=>i===n.spec.valueType)).map(n=>A.mapPObjectData(n,i=>Qe.isPlTreeNodeAccessor(i)?Wo(i):A.isDataInfo(i)?A.mapDataInfo(i,c=>c.resourceInfo):zo(n.spec,i))),o=this.pFrames.acquire(r);return t.addOnDestroy(o.unref),o.key}createPTable(e,t,r){const o=this.createPFrame(A.extractAllColumns(e.src),t),n=A.mapPTableDef(e,c=>c.id),i=this.pTables.acquire({def:n,pFrameHandle:o,signal:r});return pe().logPFrameRequests&&this.logger.info(`Create PTable call (pFrameHandle = ${o}; pTableHandle = ${JSON.stringify(i)}): ${JSON.stringify(A.mapPTableDef(e,c=>c.spec),Re)}`),t.addOnDestroy(i.unref),i.key}async findColumns(e,t){const r={...t,compatibleWith:t.compatibleWith.length!==0?[{axesSpec:[...new Map(t.compatibleWith.map(n=>[G(n),n])).values()],qualifications:[]}]:[]};return{hits:(await this.pFrames.getByKey(e).pFrame.findColumns(r)).hits.filter(n=>n.mappingVariants.length===0||n.mappingVariants.some(i=>i.qualifications.forHit.length===0&&i.qualifications.forQueries.every(c=>c.length===0))).map(n=>n.hit)}}async getColumnSpec(e,t){return await this.pFrames.getByKey(e).pFrame.getColumnSpec(t)}async listColumns(e){return await this.pFrames.getByKey(e).pFrame.listColumns()}async calculateTableData(e,t,r){return pe().logPFrameRequests&&this.logger.info(`Call calculateTableData, handle = ${e}, request = ${JSON.stringify(t,Re)}`),await this.concurrencyLimiter.run(async()=>{const o=await this.pFrames.getByKey(e).pFrame.createTable({src:$e(t.src),filters:wt(t.filters)},r);let n=o;if(t.sorting.length>0)try{n=await o.sort(t.sorting,r)}finally{o.dispose()}try{const i=n.getSpec(),c=await n.getData([...i.keys()],void 0,r);return i.map((a,l)=>({spec:a,data:c[l]}))}finally{n.dispose()}})}async getUniqueValues(e,t,r){return pe().logPFrameRequests&&this.logger.info(`Call getUniqueValues, handle = ${e}, request = ${JSON.stringify(t,Re)}`),await this.concurrencyLimiter.run(async()=>await this.pFrames.getByKey(e).pFrame.getUniqueValues({...t,filters:wt(t.filters)},r))}async getShape(e){return(await this.pTables.getByKey(e).table).getShape()}async getSpec(e){return(await this.pTables.getByKey(e).table).getSpec()}async getData(e,t,r,o){const n=await this.pTables.getByKey(e).table;return await this.concurrencyLimiter.run(async()=>await n.getData(t,r,o))}}function $e(s){switch(s.type){case"column":return{type:"column",columnId:s.column};case"slicedColumn":return{type:"slicedColumn",columnId:s.column,newId:s.newId,axisFilters:s.axisFilters};case"inner":case"full":return{type:s.type,entries:s.entries.map(e=>$e(e))};case"outer":return{type:"outer",primary:$e(s.primary),secondary:s.secondary.map(e=>$e(e))};default:S.assertNever(s)}}function Qc(s){const e=re.createHash("sha256");return e.update(G(s)),e.digest().toString("hex")}function Zc(s){const e=[...s].map(r=>A.mapPObjectData(r,o=>{let n;const i=o.type;switch(i){case"Json":n={type:o.type,keyLength:o.keyLength,payload:Object.entries(o.data).map(([c,a])=>({key:c,value:a}))};break;case"JsonPartitioned":n={type:o.type,keyLength:o.partitionKeyLength,payload:Object.entries(o.parts).map(([c,a])=>({key:c,value:Te(a)}))};break;case"BinaryPartitioned":n={type:o.type,keyLength:o.partitionKeyLength,payload:Object.entries(o.parts).map(([c,a])=>({key:c,value:[Te(a.index),Te(a.values)]}))};break;default:throw Error(`unsupported resource type: ${JSON.stringify(i)}`)}return n.payload.sort((c,a)=>c.key.localeCompare(a.key)),n}));e.sort((r,o)=>r.id.localeCompare(o.id));const t=re.createHash("sha256");return t.update(G(e)),t.digest().toString("hex")}async function Os(s,e,t){const r={...xt,...Ut(e),...t},o=new S.HmacSha256Signer(r.localSecret),n=K.createDownloadClient(r.logger,s,r.localProjections),i=K.createLogsClient(s,r.logger),c=K.createUploadBlobClient(s,r.logger),a=K.createUploadProgressClient(s,r.logger),l=new K.DownloadDriver(r.logger,n,i,r.blobDownloadPath,o,r.blobDriverOps),u=new K.DownloadBlobToURLDriver(r.logger,o,n,r.downloadBlobToURLPath,r.downloadBlobToURLDriverOps),d=new K.UploadDriver(r.logger,o,c,a,r.uploadDriverOps),p=new K.LogsStreamDriver(r.logger,i,r.logStreamDriverOps),f=new K.LogsDriver(r.logger,p,l),k=await K.LsDriver.init(r.logger,s,o,r.localProjections,r.openFileDialogCallback,r.virtualLocalStoragesOverride),y=await zt.init(l,r.logger,r.pframesSpillPath);return{blobDriver:l,blobToURLDriver:u,logDriver:f,lsDriver:k,signer:o,uploadDriver:d,pFrameDriver:y}}class el{constructor(e){P(this,"enrichmentTargetsCache",new Tt.LRUCache({max:256,memoMethod:(e,t,{context:r})=>({value:this.calculateEnrichmentTargets(r)})}));this.quickJs=e}calculateEnrichmentTargets(e){const t=e.blockConfig();if(t.enrichmentTargets===void 0)return;const r=e.args();return Vn(this.quickJs,t.enrichmentTargets,t.code,r)}getEnrichmentTargets(e,t,r){const o={blockConfig:e,args:t};if(r===void 0)return this.calculateEnrichmentTargets(o);const n=`${r.argsRid}:${r.blockPackRid}`;return this.enrichmentTargetsCache.memo(n,{context:o}).value}}class Xt{constructor(e,t,r,o,n,i,c,a){P(this,"pl");P(this,"projectList");P(this,"openedProjectsByRid",new Map);this.env=e,this.driverKit=t,this.signer=r,this.projectListResourceId=o,this.openedProjectsList=n,this.projectListTree=i,this.blockRegistryProvider=c,this.projectList=a,this.pl=this.env.pl}get internalDriverKit(){return this.env.driverKit}async createProject(e,t=re.randomUUID()){const r=await this.pl.withWriteTx("MLCreateProject",async o=>{const n=await Uo(o,e);return o.createField(g.field(this.projectListResourceId,t),"Dynamic",n),await o.commit(),await g.toGlobalResourceId(n)});return await this.projectListTree.refreshState(),r}async setProjectMeta(e,t,r){await ie(this.env.projectHelper,this.pl,e,r,o=>{o.setMeta(t)}),await this.projectListTree.refreshState()}async deleteProject(e){await this.pl.withWriteTx("MLRemoveProject",async t=>{t.removeField(g.field(this.projectListResourceId,e)),await t.commit()}),await this.projectListTree.refreshState()}async projectIdToResourceId(e){return await this.pl.withReadTx("Project id to resource id",async t=>{const r=(await t.getField(g.field(this.projectListResourceId,e))).value;if(g.isNullResourceId(r))throw new Error("Unexpected project list structure.");return r})}async ensureProjectRid(e){return typeof e=="string"?await this.projectIdToResourceId(e):e}async openProject(e){const t=await this.ensureProjectRid(e);if(this.openedProjectsByRid.has(t))throw new Error(`Project ${t} already opened`);this.openedProjectsByRid.set(t,await nt.init(this.env,t)),this.openedProjectsList.setValue([...this.openedProjectsByRid.keys()])}async closeProject(e){const t=this.openedProjectsByRid.get(e);if(t===void 0)throw new Error(`Project ${e} not found among opened projects`);this.openedProjectsByRid.delete(e),await t.destroy(),this.openedProjectsList.setValue([...this.openedProjectsByRid.keys()])}getOpenedProject(e){const t=this.openedProjectsByRid.get(e);if(t===void 0)throw new Error(`Project ${e} not found among opened projects`);return t}async close(){await Promise.all([...this.openedProjectsByRid.values()].map(e=>e.destroy())),await this.projectListTree.terminate(),await this.env.retryHttpDispatcher.destroy(),await this.pl.close()}async closeAndAwaitTermination(){await this.close()}static generateLocalSecret(){return S.HmacSha256Signer.generateSecret()}static async init(e,t,r){const o={...ys,...ws(t),...r};o.defaultTreeOptions.logStat=pe().logTreeStats,o.debugOps.dumpInitialTreeState=pe().dumpInitialTreeState;const n=await e.withWriteTx("MLInitialization",async j=>{const N=g.field(j.clientRoot,uo);j.createField(N,"Dynamic");const U=await j.getField(N);if(g.isNullResourceId(U.value)){const F=j.createEphemeral(Yr);return j.lock(F),j.setField(N,F),await j.commit(),await F.globalId}else return U.value}),i=o.logger,c=await Os(e,t,o),a=new tt.RetryAgent(e.httpDispatcher,{minTimeout:250,maxRetries:4}),l=new Wr(a),u=new Do(l,c.signer,a),d=new K.DownloadUrlDriver(i,e.httpDispatcher,o.frontendDownloadPath),p=await fe.getQuickJS(),f={pl:e,signer:c.signer,logger:i,httpDispatcher:e.httpDispatcher,retryHttpDispatcher:a,ops:o,bpPreparer:u,frontendDownloadDriver:d,driverKit:c,blockUpdateWatcher:new Wc(l,i,{minDelay:o.devBlockUpdateRecheckInterval,http:a,preferredUpdateChannel:o.preferredUpdateChannel}),quickJs:p,projectHelper:new el(p)},k=new x.WatchableValue([]),y=await fo(e,n,k,f);return new Xt(f,c,c.signer,n,k,y.tree,l,y.computable)}}async function tl(s,e){return await Se(s.pingCheckDurationMs,s.maxPingsPerSecond,async()=>{const r=await new g.UnauthenticatedPlClient(e).ping();return JSON.stringify(r).slice(0,s.bodyLimit)+"..."})}async function rl(s,e){return await Se(s.blockRegistryDurationMs,s.maxRegistryChecksPerSecond,async()=>await je(new URL(s.blockOverviewPath,s.blockRegistryUrl),s,e))}async function sl(s,e){return await Se(s.blockRegistryDurationMs,s.maxRegistryChecksPerSecond,async()=>await je(new URL(s.blockOverviewPath,s.blockGARegistryUrl),s,e))}async function ol(s,e){return await Se(s.blockRegistryDurationMs,s.maxRegistryChecksPerSecond,async()=>await je(new URL(s.blockUiPath,s.blockRegistryUrl),s,e))}async function nl(s,e){return await Se(s.blockRegistryDurationMs,s.maxRegistryChecksPerSecond,async()=>await je(new URL(s.blockUiPath,s.blockGARegistryUrl),s,e))}async function il(s,e){return await Se(s.autoUpdateCdnDurationMs,s.maxAutoUpdateCdnChecksPerSecond,async()=>await je(s.autoUpdateCdnUrl,s,e))}async function Se(s,e,t){const r=Date.now(),o=[];for(;Jr(r)<s;){const n=Date.now();let i;try{i={ok:!0,value:await t()}}catch(l){i={ok:!1,error:l}}const c=Jr(n);o.push({elapsedMs:c,response:i});const a=1e3/e-c;a>0&&await _r.setTimeout(a)}return o}async function je(s,e,t){const{body:r,statusCode:o}=await tt.request(s,{dispatcher:t,headersTimeout:e.httpTimeoutMs,bodyTimeout:e.httpTimeoutMs}),n=await r.text();return{statusCode:o,beginningOfBody:n.slice(0,e.bodyLimit)+"..."}}function Jr(s){return Date.now()-s}function ve(s){const e=s.filter(i=>i.response.ok),t=s.length-e.length,{mean:r,median:o}=al(s),n=`
2
2
  total: ${s.length};
3
3
  successes: ${e.length};
4
4
  errors: ${t};
5
5
  mean in ms: ${r};
6
6
  median in ms: ${o};
7
7
  `;return{ok:t===0,details:n}}function al(s){const e=s.map(o=>o.elapsedMs).sort(),t=e.reduce((o,n)=>o+n)/e.length;let r;if(e.length>0){const o=Math.floor(e.length/2);r=e.length%2?e[o]:(e[o-1]+e[o])/2}return{mean:t,median:r}}async function cl(s,e,t){try{const r=await ll(s,e,t);return r!==`Hello, ${t}`?{ok:!1,message:`Template uploading failed: expected: ${t}, got: ${r}`}:{ok:!0,message:`Template uploading succeeded: ${r}`}}catch(r){return{ok:!1,message:`Template uploading failed: error occurred: ${r}`}}}async function ll(s,e,t){var o;const r=await Ve(e,we.Templates["check_network.upload_template"],!0,n=>({name:n.createValue(g.Pl.JsonObject,JSON.stringify(t))}),["greeting"]);try{return JSON.parse(S.notEmpty((o=(await he(e,r.greeting)).data)==null?void 0:o.toString()))}finally{await xe(e,Object.values(r))}}async function ul(s,e,t,r,o){try{const n=await dl(s,e,t,r,o);return n.type.name!=="Blob"?{ok:!1,message:`File uploading failed: ${n.type.name}`}:{ok:!0,message:`File uploading succeeded: ${n.type.name}`}}catch(n){return{ok:!1,message:`File uploading failed: error occurred: ${n}`}}}async function dl(s,e,t,r,o){var c;const n=await e.getLocalFileHandle(o),i=await Ve(r,we.Templates["check_network.upload_blob"],!0,a=>({file:a.createValue(g.Pl.JsonObject,JSON.stringify(n))}),["progress","file"]);try{const a=await he(r,i.progress);return await K.uploadBlob(s,t,a,K.ImportFileHandleUploadData.parse(JSON.parse(S.notEmpty((c=a.data)==null?void 0:c.toString()))),()=>!1,{nPartsWithThisUploadSpeed:10,nPartsToIncreaseUpload:10,currentSpeed:10,maxSpeed:10}),await he(r,i.file)}finally{await xe(r,Object.values(i))}}async function pl(s,e,t,r,o,n,i){try{const c=await fl(s,e,t,r,o,n);return c!==i?{ok:!1,message:`File downloading failed: expected: ${i}, got: ${c}`}:{ok:!0,message:`File downloading succeeded: ${c}`}}catch(c){return{ok:!1,message:`File downloading failed: error occurred: ${c}`}}}async function fl(s,e,t,r,o,n){var a;const i=await t.getLocalFileHandle(n),c=await Ve(e,we.Templates["check_network.download_blob"],!0,l=>({file:l.createValue(g.Pl.JsonObject,JSON.stringify(i))}),["progress","file"]);try{const l=await he(e,c.progress);await K.uploadBlob(s,r,l,K.ImportFileHandleUploadData.parse(JSON.parse(S.notEmpty((a=l.data)==null?void 0:a.toString()))),()=>!1,{nPartsWithThisUploadSpeed:1,nPartsToIncreaseUpload:1,currentSpeed:1,maxSpeed:1});const u=await he(e,c.file),{content:d}=await o.downloadBlob(u);return await Us.text(d)}finally{await xe(e,Object.values(c))}}async function gl(s){try{const e=await hl(s);return e!==`Hello from go binary
8
- `?{ok:!1,message:`Software check failed: got: ${e}`}:{ok:!0,message:`Software check succeeded: ${e}`}}catch(e){return{ok:!1,message:`Software check failed: error occurred: ${e}`}}}async function hl(s){var t;const e=await Ve(s,we.Templates["check_network.run_hello_world"],!0,r=>({}),["greeting"]);try{return S.notEmpty((t=(await he(s,e.greeting)).data)==null?void 0:t.toString())}finally{await xe(s,Object.values(e))}}async function ml(s,e){try{const t=await yl(s,e);return t!==`Hello, ${e}!
9
- `?{ok:!1,message:`Python software check failed: got: ${t}`}:{ok:!0,message:`Python software check succeeded: ${t}`}}catch(t){return{ok:!1,message:`Python software check failed: error occurred: ${t}`}}}async function yl(s,e){var r;const t=await Ve(s,we.Templates["check_network.run_hello_world_py"],!0,o=>({name:o.createValue(g.Pl.JsonObject,JSON.stringify(e))}),["greeting"]);try{return S.notEmpty((r=(await he(s,t.greeting)).data)==null?void 0:r.toString())}finally{await xe(s,Object.values(t))}}async function vl(){const s=J.join(Kr.tmpdir(),`check-network-big-temp-${Date.now()}.bin`),e=20*1024*1024,t=re.randomBytes(e);return await Ie.appendFile(s,t),{filePath:s}}async function wl(){const s=J.join(Kr.tmpdir(),`check-network-temp-${Date.now()}.txt`),e="Hello, world! "+new Date().toISOString();return await Ie.writeFile(s,e),{filePath:s,fileContent:e}}async function Ve(s,e,t,r,o){return await s.withWriteTx("TemplateRender",async n=>{const i=await Lt(e),c=Ne(n,i),a=st(n,c,t,r(n),o),l={};for(const u of o){const d=g.field(s.clientRoot,u);n.createField(d,"Dynamic",a[u]),l[u]=await g.toGlobalFieldId(d)}return await n.commit(),l})}async function he(s,e){return await g.poll(s,async t=>{const r=await t.tx.getField(e);if(g.isNotNullResourceId(r.error)){const o=await t.tx.getResourceData(r.error,!0);throw new Error(`getFieldValue of "${e.fieldName}" field failed: ${o.data}`)}if(g.isNullResourceId(r.value))throw new g.ContinuePolling;return await t.tx.getResourceData(r.value,!0)})}async function xe(s,e){await s.withWriteTx("DeleteFields",async t=>{for(const r of e)t.resetField(r);await t.commit()})}async function bl(s,e,t,r={}){const o=[];kl.forEach(N=>{xs.channel(N).subscribe(F=>{var B,W;const q=new Date().toISOString(),V={...F};(B=V==null?void 0:V.response)!=null&&B.headers&&(V.response={...V.response},V.response.headers=V.response.headers.slice(),V.response.headers=V.response.headers.map(ee=>ee.toString())),(W=V==null?void 0:V.request)!=null&&W.body&&(V.request={...V.request},V.request.body="too big"),o.push(JSON.stringify({timestamp:q,event:N,data:V}))})});const{logger:n,plConfig:i,client:c,downloadClient:a,uploadBlobClient:l,lsDriver:u,httpClient:d,ops:p}=await Ts(s,e,t,r),{filePath:f,fileContent:k}=await wl(),{filePath:v}=await vl(),j={plPings:await tl(p,i),blockRegistryOverviewChecks:await rl(p,d),blockGARegistryOverviewChecks:await sl(p,d),blockRegistryUiChecks:await ol(p,d),blockGARegistryUiChecks:await nl(p,d),autoUpdateCdnChecks:await il(p,d),uploadTemplateCheck:await cl(n,c,"Jack"),uploadFileCheck:await ul(n,u,l,c,v),downloadFileCheck:await pl(n,c,u,l,a,f,k),softwareCheck:await gl(c),pythonSoftwareCheck:await ml(c,"Jack")};return Sl(j,s,p,o)}async function Ts(s,e,t,r={}){const o={pingCheckDurationMs:1e4,pingTimeoutMs:3e3,maxPingsPerSecond:50,httpTimeoutMs:3e3,blockRegistryDurationMs:3e3,maxRegistryChecksPerSecond:1,blockRegistryUrl:"https://blocks.pl-open.science",blockGARegistryUrl:"https://blocks-ga.pl-open.science",blockOverviewPath:"v2/overview.json",blockUiPath:"v2/milaboratories/samples-and-data/1.7.0/ui.tgz",autoUpdateCdnDurationMs:5e3,maxAutoUpdateCdnChecksPerSecond:1,autoUpdateCdnUrl:"https://cdn.platforma.bio/software/platforma-desktop-v2/windows/amd64/latest.yml",bodyLimit:300,...r},n=g.plAddressToConfig(s,{defaultRequestTimeout:o.pingTimeoutMs});n.alternativeRoot=`check_network_${Date.now()}`;const i=new g.UnauthenticatedPlClient(n);let c={};e&&t&&(c=await i.login(e,t));const a=await g.PlClient.init(s,{authInformation:c}),l=i.ll.httpDispatcher,u=new S.ConsoleLoggerAdapter,d=new S.HmacSha256Signer("localSecret"),p=K.createDownloadClient(u,a,[]),f=K.createUploadBlobClient(a,u),k=await K.LsDriver.init(u,a,d,[],()=>Promise.resolve([]),[]);return{logger:u,plConfig:n,client:a,downloadClient:p,uploadBlobClient:f,lsDriver:k,httpClient:l,ops:o,terminate:async()=>{p.close(),f.close(),await l.close(),await a.close()}}}function Sl(s,e,t,r){const o=s.plPings.filter(k=>k.response.ok),n=s.plPings.filter(k=>!k.response.ok),i=[...new Set(o.map(k=>JSON.stringify(k.response.value)))],c=ye(s.plPings),a=ye(s.blockRegistryOverviewChecks),l=ye(s.blockGARegistryOverviewChecks),u=ye(s.blockRegistryUiChecks),d=ye(s.blockGARegistryUiChecks),p=ye(s.autoUpdateCdnChecks),f=k=>k?"OK":"FAILED";return`
8
+ `?{ok:!1,message:`Software check failed: got: ${e}`}:{ok:!0,message:`Software check succeeded: ${e}`}}catch(e){return{ok:!1,message:`Software check failed: error occurred: ${e}`}}}async function hl(s){var t;const e=await Ve(s,we.Templates["check_network.run_hello_world"],!0,r=>({}),["greeting"]);try{return S.notEmpty((t=(await he(s,e.greeting)).data)==null?void 0:t.toString())}finally{await xe(s,Object.values(e))}}async function ml(s,e){try{const t=await vl(s,e);return t!==`Hello, ${e}!
9
+ `?{ok:!1,message:`Python software check failed: got: ${t}`}:{ok:!0,message:`Python software check succeeded: ${t}`}}catch(t){return{ok:!1,message:`Python software check failed: error occurred: ${t}`}}}async function vl(s,e){var r;const t=await Ve(s,we.Templates["check_network.run_hello_world_py"],!0,o=>({name:o.createValue(g.Pl.JsonObject,JSON.stringify(e))}),["greeting"]);try{return S.notEmpty((r=(await he(s,t.greeting)).data)==null?void 0:r.toString())}finally{await xe(s,Object.values(t))}}async function yl(){const s=J.join(Kr.tmpdir(),`check-network-big-temp-${Date.now()}.bin`),e=20*1024*1024,t=re.randomBytes(e);return await Ie.appendFile(s,t),{filePath:s}}async function wl(){const s=J.join(Kr.tmpdir(),`check-network-temp-${Date.now()}.txt`),e="Hello, world! "+new Date().toISOString();return await Ie.writeFile(s,e),{filePath:s,fileContent:e}}async function Ve(s,e,t,r,o){return await s.withWriteTx("TemplateRender",async n=>{const i=await Lt(e),c=Ne(n,i),a=st(n,c,t,r(n),o),l={};for(const u of o){const d=g.field(s.clientRoot,u);n.createField(d,"Dynamic",a[u]),l[u]=await g.toGlobalFieldId(d)}return await n.commit(),l})}async function he(s,e){return await g.poll(s,async t=>{const r=await t.tx.getField(e);if(g.isNotNullResourceId(r.error)){const o=await t.tx.getResourceData(r.error,!0);throw new Error(`getFieldValue of "${e.fieldName}" field failed: ${o.data}`)}if(g.isNullResourceId(r.value))throw new g.ContinuePolling;return await t.tx.getResourceData(r.value,!0)})}async function xe(s,e){await s.withWriteTx("DeleteFields",async t=>{for(const r of e)t.resetField(r);await t.commit()})}async function bl(s,e,t,r={}){const o=[];kl.forEach(N=>{xs.channel(N).subscribe(F=>{var B,W;const q=new Date().toISOString(),V={...F};(B=V==null?void 0:V.response)!=null&&B.headers&&(V.response={...V.response},V.response.headers=V.response.headers.slice(),V.response.headers=V.response.headers.map(ee=>ee.toString())),(W=V==null?void 0:V.request)!=null&&W.body&&(V.request={...V.request},V.request.body="too big"),o.push(JSON.stringify({timestamp:q,event:N,data:V}))})});const{logger:n,plConfig:i,client:c,downloadClient:a,uploadBlobClient:l,lsDriver:u,httpClient:d,ops:p}=await Ts(s,e,t,r),{filePath:f,fileContent:k}=await wl(),{filePath:y}=await yl(),j={plPings:await tl(p,i),blockRegistryOverviewChecks:await rl(p,d),blockGARegistryOverviewChecks:await sl(p,d),blockRegistryUiChecks:await ol(p,d),blockGARegistryUiChecks:await nl(p,d),autoUpdateCdnChecks:await il(p,d),uploadTemplateCheck:await cl(n,c,"Jack"),uploadFileCheck:await ul(n,u,l,c,y),downloadFileCheck:await pl(n,c,u,l,a,f,k),softwareCheck:await gl(c),pythonSoftwareCheck:await ml(c,"Jack")};return Sl(j,s,p,o)}async function Ts(s,e,t,r={}){const o={pingCheckDurationMs:1e4,pingTimeoutMs:3e3,maxPingsPerSecond:50,httpTimeoutMs:3e3,blockRegistryDurationMs:3e3,maxRegistryChecksPerSecond:1,blockRegistryUrl:"https://blocks.pl-open.science",blockGARegistryUrl:"https://blocks-ga.pl-open.science",blockOverviewPath:"v2/overview.json",blockUiPath:"v2/milaboratories/samples-and-data/1.7.0/ui.tgz",autoUpdateCdnDurationMs:5e3,maxAutoUpdateCdnChecksPerSecond:1,autoUpdateCdnUrl:"https://cdn.platforma.bio/software/platforma-desktop-v2/windows/amd64/latest.yml",bodyLimit:300,...r},n=g.plAddressToConfig(s,{defaultRequestTimeout:o.pingTimeoutMs});n.alternativeRoot=`check_network_${Date.now()}`;const i=new g.UnauthenticatedPlClient(n);let c={};e&&t&&(c=await i.login(e,t));const a=await g.PlClient.init(s,{authInformation:c}),l=i.ll.httpDispatcher,u=new S.ConsoleLoggerAdapter,d=new S.HmacSha256Signer("localSecret"),p=K.createDownloadClient(u,a,[]),f=K.createUploadBlobClient(a,u),k=await K.LsDriver.init(u,a,d,[],()=>Promise.resolve([]),[]);return{logger:u,plConfig:n,client:a,downloadClient:p,uploadBlobClient:f,lsDriver:k,httpClient:l,ops:o,terminate:async()=>{p.close(),f.close(),await l.close(),await a.close()}}}function Sl(s,e,t,r){const o=s.plPings.filter(k=>k.response.ok),n=s.plPings.filter(k=>!k.response.ok),i=[...new Set(o.map(k=>JSON.stringify(k.response.value)))],c=ve(s.plPings),a=ve(s.blockRegistryOverviewChecks),l=ve(s.blockGARegistryOverviewChecks),u=ve(s.blockRegistryUiChecks),d=ve(s.blockGARegistryUiChecks),p=ve(s.autoUpdateCdnChecks),f=k=>k?"OK":"FAILED";return`
10
10
  Network report:
11
11
  pl endpoint: ${e};
12
12
 
@@ -71,5 +71,5 @@ ${JSON.stringify(i,null,2)}
71
71
  Undici logs:
72
72
  ${r.join(`
73
73
  `)}
74
- `}const kl=["undici:request:create","undici:request:bodySent","undici:request:headers","undici:request:error","undici:request:trailers","undici:client:sendHeaders","undici:client:beforeConnect","undici:client:connected","undici:client:connectError","undici:socket:close","undici:socket:connect","undici:socket:error","undici:pool:request","undici:pool:connect","undici:pool:disconnect","undici:pool:destroy","undici:dispatcher:request","undici:dispatcher:connect","undici:dispatcher:disconnect","undici:dispatcher:retry"];exports.BlockPackRegistry=zs;exports.CentralBlockRegistry=Xs;exports.DefaultDriverKitOpsPaths=Ut;exports.DefaultDriverKitOpsSettings=xt;exports.DefaultMiddleLayerOpsPaths=ws;exports.DefaultMiddleLayerOpsSettings=vs;exports.FrontendFromFolderResourceType=Bt;exports.FrontendFromUrlResourceType=Nt;exports.MiddleLayer=Xt;exports.Project=nt;exports.TengoTemplateGet=rs;exports.TengoTemplateGetRegistry=ss;exports.TengoTemplateGetTemplate=ns;exports.TengoTemplateGetTemplateURI=os;exports.TengoTemplatePack=Co;exports.TengoTemplatePackConvert=Ro;exports.TengoTemplatePackConvertTemplate=Oo;exports.TengoTemplatePackConvertTemplatePack=Eo;exports.V1CentralDevSnapshotRegistry=Qs;exports.V1CentralRegistry=Ys;exports.V2RegistryProvider=Wr;exports.checkNetwork=bl;exports.createRenderTemplate=st;exports.getDevV1PacketMtime=At;exports.getDevV2PacketMtime=rt;exports.initDriverKit=Os;exports.initNetworkCheck=Ts;exports.loadTemplate=Ne;exports.prepareTemplateSpec=Lt;Object.keys(A).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>A[s]})});Object.keys(Y).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>Y[s]})});Object.keys(tr).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>tr[s]})});Object.keys(g).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>g[s]})});
74
+ `}const kl=["undici:request:create","undici:request:bodySent","undici:request:headers","undici:request:error","undici:request:trailers","undici:client:sendHeaders","undici:client:beforeConnect","undici:client:connected","undici:client:connectError","undici:socket:close","undici:socket:connect","undici:socket:error","undici:pool:request","undici:pool:connect","undici:pool:disconnect","undici:pool:destroy","undici:dispatcher:request","undici:dispatcher:connect","undici:dispatcher:disconnect","undici:dispatcher:retry"];exports.BlockPackRegistry=zs;exports.CentralBlockRegistry=Xs;exports.DefaultDriverKitOpsPaths=Ut;exports.DefaultDriverKitOpsSettings=xt;exports.DefaultMiddleLayerOpsPaths=ws;exports.DefaultMiddleLayerOpsSettings=ys;exports.FrontendFromFolderResourceType=Bt;exports.FrontendFromUrlResourceType=Nt;exports.MiddleLayer=Xt;exports.Project=nt;exports.TengoTemplateGet=rs;exports.TengoTemplateGetRegistry=ss;exports.TengoTemplateGetTemplate=ns;exports.TengoTemplateGetTemplateURI=os;exports.TengoTemplatePack=Co;exports.TengoTemplatePackConvert=Ro;exports.TengoTemplatePackConvertTemplate=Oo;exports.TengoTemplatePackConvertTemplatePack=Eo;exports.V1CentralDevSnapshotRegistry=Qs;exports.V1CentralRegistry=Ys;exports.V2RegistryProvider=Wr;exports.checkNetwork=bl;exports.createRenderTemplate=st;exports.getDevV1PacketMtime=At;exports.getDevV2PacketMtime=rt;exports.initDriverKit=Os;exports.initNetworkCheck=Ts;exports.loadTemplate=Ne;exports.prepareTemplateSpec=Lt;Object.keys(A).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>A[s]})});Object.keys(Y).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>Y[s]})});Object.keys(tr).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>tr[s]})});Object.keys(g).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>g[s]})});
75
75
  //# sourceMappingURL=index.js.map