@milaboratories/pl-middle-layer 1.34.8 → 1.34.10

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,34 +1,34 @@
1
- "use strict";var vs=Object.defineProperty;var Mt=(s,e)=>(e=Symbol[s])?e:Symbol.for("Symbol."+s),Jt=s=>{throw TypeError(s)};var ys=(s,e,t)=>e in s?vs(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var S=(s,e,t)=>ys(s,typeof e!="symbol"?e+"":e,t);var _t=(s,e,t)=>{if(e!=null){typeof e!="object"&&typeof e!="function"&&Jt("Object expected");var r;t&&(r=e[Mt("asyncDispose")]),r===void 0&&(r=e[Mt("dispose")]),typeof r!="function"&&Jt("Object not disposable"),s.push([t,r,e])}else t&&s.push([t]);return e},Kt=(s,e,t)=>{var r=typeof SuppressedError=="function"?SuppressedError:function(i,a,c,u){return u=Error(c),u.name="SuppressedError",u.error=i,u.suppressed=a,u},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 a=i[1]&&i[1].call(i[2]);if(i[0])return Promise.resolve(a).then(n,c=>(o(c),n()))}catch(c){o(c)}if(t)throw e};return n()};Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("@platforma-sdk/model"),q=require("@milaboratories/pl-model-middle-layer"),Ht=require("@milaboratories/pl-deployments"),He=require("undici"),W=require("@platforma-sdk/block-tools"),ee=require("node:fs"),K=require("node:path"),ws=require("yaml"),k=require("@milaboratories/ts-helpers"),pt=require("node:fs/promises"),Ss=require("@milaboratories/resolve-helper"),h=require("@milaboratories/pl-client"),Me=require("@milaboratories/pl-tree"),B=require("@milaboratories/computable"),se=require("node:crypto"),j=require("@milaboratories/pl-model-backend"),Ar=require("lru-cache"),bs=require("node:worker_threads"),Dr=require("denque"),Ps=require("@platforma-sdk/workflow-tengo"),x=require("canonicalize"),Rs=require("node:assert"),Oe=require("quickjs-emscripten"),Es=require("@milaboratories/pl-errors"),Lr=require("node:timers/promises"),te=require("@milaboratories/pl-drivers"),Cs=require("@milaboratories/pframes-rs-node"),ks=require("node:diagnostics_channel");function Os(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 Nr=Os(pt);async function qt(s){try{return await Nr.stat(s,{bigint:!0})}catch(e){if(e.code==="ENOENT")return;throw e}}const $s=[W.RegistryV1.PlPackageYamlConfigFile],Ts=[W.RegistryV1.PlPackageJsonConfigFile],Pt=["backend","dist","tengo","tpl","main.plj.gz"],Rt=["config","dist","config.json"],Br=["frontend","dist"],Wt="block-model/dist/config.json",Is="block-ui/package.json",Fs=[Pt,Rt,$s,Ts,Br];async function As(s){return await qt(K.join(s,...Rt))!==void 0||await qt(K.join(s,...Pt))!==void 0}function st(s,e){const t=Ss.tryResolve(s,e);if(t===void 0)throw new Error(`Can't resolve ${e} against ${s}`);return t}async function zt(s,e){if(K.isAbsolute(s)||(s=K.resolve(s)),await As(s))return{workflow:K.join(s,...Pt),config:K.join(s,...Rt),ui:K.join(s,...Br)};{const t=st(s,Wt),r=st(s,Wt),o=st(s,Is);return{workflow:t,config:r,ui:K.resolve(o,"..","dist")}}}async function Ds(s){try{return await ee.promises.readFile(s,"utf8")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")return;throw e}}async function Ls(s){try{return await ee.promises.stat(s,{bigint:!0})}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")return;throw e}}async function Et(s){let e=0n;for(const t of Fs){const r=K.join(s,...t),o=await Ls(r);o!==void 0&&e<o.mtimeNs&&(e=o.mtimeNs)}return e.toString()}async function qe(s){const e=await ee.promises.stat(s.components.workflow.main.file,{bigint:!0}),t=await ee.promises.stat(s.components.model.file,{bigint:!0});return(e.mtimeNs>t.mtimeNs?e.mtimeNs:t.mtimeNs).toString()}class Ns{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 He.request(`${r.url}/${W.RegistryV1.GlobalOverviewPath}`,o)).body.json();for(const a of i){const{organization:c,package:u,latestMeta:l,latestVersion:d}=a,f={organization:c,name:u,version:d},g={id:f,meta:{title:l.title??"No title",description:l.description??"No Description",organization:{name:c,url:"https://unknown.com"}},spec:{type:"from-registry-v1",id:f,registryUrl:r.url}};t.push({registryId:e.id,id:f,latestByChannel:{[q.AnyChannel]:g,[q.StableChannel]:g},allVersions:a.allVersions.map(R=>({version:R,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 ee.promises.readdir(r.path,{withFileTypes:!0})){if(!o.isDirectory())continue;const n=K.join(r.path,o.name),i=await Ds(K.join(n,W.RegistryV1.PlPackageYamlConfigFile));if(i!==void 0){const a=W.RegistryV1.PlPackageConfigData.parse(ws.parse(i)),c=await Et(n),u={organization:a.organization,name:a.package,version:"DEV"},l={id:u,meta:{title:a.meta.title??"No title",description:a.meta.description??"No Description",organization:{name:a.organization,url:"https://unknown.com"}},spec:{type:"dev-v2",folder:n,mtime:c}};t.push({registryId:e.id,id:u,latestByChannel:{[q.AnyChannel]:l,[q.StableChannel]:l},allVersions:[]})}else{let a=n,c=await W.tryLoadPackDescription(a);if(c===void 0){for(const u of["block","meta"])if(a=K.join(n,u),c=await W.tryLoadPackDescription(a),c!==void 0)break}if(c!==void 0){const u=await qe(c),l={id:c.id,meta:await W.BlockPackMetaEmbedAbsoluteBytes.parseAsync(c.meta),spec:{type:"dev-v2",folder:a,mtime:u}};t.push({registryId:e.id,id:c.id,latestByChannel:{[q.AnyChannel]:l,[q.StableChannel]:l},allVersions:[]})}}}return t;default:return k.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(a=>a.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 jr{constructor(e){S(this,"registries",new Map);this.http=e}getRegistry(e){const t=this.registries.get(e);if(t)return t;const r=new W.RegistryV2Reader(W.folderReaderByUrl(e,this.http));return this.registries.set(e,r),r}}const Bs={type:"remote-v2",url:"https://blocks.pl-open.science/"},js={type:"remote-v1",url:"https://block.registry.platforma.bio/releases"},xs={type:"remote-v1",url:"https://block.registry.platforma.bio/dev"},Vs={groups:[{id:"default",label:"Default",blocks:[]}]},Us={stagingRefreshTimestamp:0,blocksInLimbo:[]},Gs={label:"New Project"},Ms={name:"UserProject",version:"2"},xr="SchemaVersion",Vr="1",Ct="ProjectCreated",$e="ProjectLastModified",Te="ProjectMeta",de="ProjectStructure",Je="BlockRenderingState",Js="BlockFrontendState/",_s=/^BlockFrontendState\/(?<blockid>.*)$/;function ht(s){return`${Js}${s}`}const Ks="BlockArgsAuthor/";function ft(s){return`${Ks}${s}`}const gt="ProjectStructureAuthor";function Hs(s){const e=s.match(_s);if(e!==null)return e.groups.blockid}const qs="__serviceTemplate_";function mt(s){return`${qs}${s}`}function J(s,e){return`${s}-${e}`}const Ws=/^(?<blockId>.*)-(?<fieldName>blockPack|blockSettings|prodArgs|currentArgs|prodCtx|prodUiCtx|prodOutput|prodCtxPrevious|prodUiCtxPrevious|prodOutputPrevious|stagingCtx|stagingUiCtx|stagingOutput|stagingCtxPrevious|stagingUiCtxPrevious|stagingOutputPrevious)$/;function zs(s){const e=s.match(Ws);if(e===null)return;const{blockId:t,fieldName:r}=e.groups;return{blockId:t,fieldName:r}}const Xs="projects",Ur={name:"Projects",version:"1"},Ys=s=>h.resourceTypesEqual(s.type,Ur)?s.fields:[];async function Qs(s,e,t,r){const o=await Me.SynchronizedTreeState.init(s,e,{...r.ops.defaultTreeOptions,pruning:Ys},r.logger);return{computable:B.Computable.make(i=>{const a=i.accessor(o.entry()).node(),c=t.getValue(i);if(a===void 0)return;const u=[];for(const l of a.listDynamicFields()){const d=a.traverse(l);if(d===void 0)continue;const f=k.notEmpty(d.getKeyValueAsJson(Te)),g=k.notEmpty(d.getKeyValueAsJson(Ct)),R=k.notEmpty(d.getKeyValueAsJson($e));u.push({id:l,rid:d.id,created:new Date(g),lastModified:new Date(R),opened:c.indexOf(d.id)>=0,meta:f})}return u.sort(l=>-l.lastModified.valueOf()),u}).withStableType(),tree:o}}const Zs={name:"EphRenderTemplate",version:"1"},eo={name:"RenderTemplate",version:"1"};function kt(s,e,t,r,o){if(o.length===0)throw new Error("Zero output names provided");const n=t?s.createEphemeral(Zs):s.createStruct(eo),i=h.field(n,"template"),a=h.field(n,"inputs");return s.createField(i,"Input",e),s.createField(a,"Input",h.Pl.createPlMap(s,r,t)),s.lockInputs(n),h.Pl.futureRecord(s,n,o,"Output","outputs/")}const to={name:"BContextEnd",version:"1"},ro={name:"BContext",version:"1"},so="id",oo="parent/",no=["context","result"];function Xt(s,e,t){return kt(s,e,!0,t,no)}function io(s){const e=s.createEphemeral(to);return s.lock(e),e}function Yt(s,e){if(e.length===0)return io(s);if(e.length===1)return e[0];const t=s.createEphemeral(ro);s.createField(h.field(t,so),"Input",h.Pl.createPlString(s,se.randomUUID()));for(let r=0;r<e.length;r++)s.createField(h.field(t,`${oo}${r}`),"Input",e[r]);return s.lock(t),t}function ao(s,e){const t=j.parseTemplate(e.content),r=t.type;switch(r){case"pl.tengo-template.v2":return Mr(s,t);default:k.assertNever(r)}}function co(s,e){const t=e.data,r=t.type;switch(r){case"pl.tengo-template.v2":return Mr(s,t);default:k.assertNever(r)}}const Qt={hash(s,e){e.update(j.PlTemplateLibV1.type.name).update(j.PlTemplateLibV1.type.version).update(s.name).update(s.version).update(s.src)},render(s,e,t){return e.createValue(j.PlTemplateLibV1.type,JSON.stringify(j.PlTemplateLibV1.fromV2Data(s).data))}},Fe={hash(s,e){e.update(j.PlTemplateSoftwareV1.type.name).update(j.PlTemplateSoftwareV1.type.version).update(s.name).update(s.version).update(s.src)},render(s,e,t){const r=j.PlTemplateSoftwareV1.fromV2Data(s),o=e.createStruct(j.PlTemplateSoftwareV1.type,r.data);return e.setKValue(o,j.PlTemplateSoftwareV1.metaNameKey,JSON.stringify(r.name)),e.lock(o),o}},Gr={hash(s,e){e.update(j.PlTemplateV1.type.name).update(j.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),Qt.hash(o,e);for(const[r,o]of t(Object.entries(s.software??{})))e.update("soft:"+r),Fe.hash(o,e);for(const[r,o]of t(Object.entries(s.assets??{})))e.update("asset:"+r),Fe.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(j.PlTemplateV1.type,JSON.stringify(j.PlTemplateV1.fromV2Data(s).data));for(const[i,a]of Object.entries(s.libs??{})){const c=j.PlTemplateV1.libField(r,i);e.createField(c,"Input"),e.setField(c,t(a,Qt))}for(const[i,a]of Object.entries(s.software??{})){const c=j.PlTemplateV1.swField(r,i);e.createField(c,"Input"),e.setField(c,t(a,Fe))}for(const[i,a]of Object.entries(s.assets??{})){const c=j.PlTemplateV1.swField(r,i);e.createField(c,"Input"),e.setField(c,t(a,Fe))}for(const[i,a]of Object.entries(s.templates??{})){const c=j.PlTemplateV1.tplField(r,i);e.createField(c,"Input"),e.setField(c,t(a,Gr))}if(e.lock(r),!s.hashOverride)return r;const o=e.createStruct(j.PlTemplateOverrideV1.type,JSON.stringify(j.PlTemplateOverrideV1.fromV2Data(s))),n=j.PlTemplateOverrideV1.tplField(o);return e.createField(n,"Service"),e.setField(n,r),e.lock(o),o}};function Mr(s,e){const t=new Map,r=(o,n)=>{const i=se.createHash("sha256");n.hash(o,i);const a=i.digest("hex");if(!t.has(a)){const c=n.render(o,s,r);t.set(a,c)}return t.get(a)};return r(e,Gr)}const Jr={name:"TengoTemplateGet",version:"1"},_r="registry",Kr="templateURI",Hr="template",lo={name:"TengoTemplatePack",version:"1"},uo={name:"TengoTemplatePackConvert",version:"1"},po="templatePack",ho="template";async function qr(s){switch(s.type){case"from-file":return{type:"explicit",content:await ee.promises.readFile(s.path)};case"from-registry":case"explicit":return s;case"prepared":return s;default:return k.assertNever(s)}}function fo(s,e){const t=s.createStruct(Jr),r=h.field(t,_r),o=h.field(t,Kr),n=h.field(t,Hr);return s.setField(r,s.createValue(h.Pl.JsonString,Buffer.from(JSON.stringify(e.registry)))),s.setField(o,s.createValue(h.Pl.JsonString,Buffer.from(JSON.stringify(e.path)))),n}function We(s,e){switch(e.type){case"from-registry":return fo(s,e);case"explicit":return ao(s,e);case"prepared":return co(s,e);default:return k.assertNever(e)}}const Ot={name:"Frontend/FromUrl",version:"1"},$t={name:"Frontend/FromFolder",version:"1"};function go(s,e){switch(e.type){case"url":return s.createValue(Ot,JSON.stringify({url:e.url}));case"local":return s.createValue($t,JSON.stringify({path:e.path,signature:e.signature}));default:return k.assertNever(e)}}class mo{constructor(){S(this,"nextMessageId",0);S(this,"worker");S(this,"pendingRequests",new Map);const e=typeof global<"u"&&"__WORKER_PATH__"in global?global.__WORKER_PATH__:K.resolve(void 0,"worker.js"),t=this.worker=new bs.Worker(e,{workerData:{}});t.on("message",({id:r,data:o,error:n})=>{const{resolve:i,reject:a}=this.pendingRequests.get(r);this.pendingRequests.delete(r),n?a(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 vo={name:"BlockPackCustom",version:"1"},Wr="template",zr="frontend";function Zt(s){return s.endsWith("/")?s:`${s}/`}function yo(s){return Buffer.from(s).toString("utf8")}function Ae(s){return JSON.parse(yo(s))}class wo{constructor(e,t,r){S(this,"remoteContentCache",new Ar.LRUCache({max:500,maxSize:128*1024*1024,fetchMethod:async e=>{const t=this.http!==void 0?{dispatcher:this.http}:{};return await(await He.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 zt(e.folder),r=await ee.promises.readFile(t.config,{encoding:"utf-8"});return JSON.parse(r)}case"dev-v2":{const t=await W.loadPackDescription(e.folder),r=await ee.promises.readFile(t.components.model.file,{encoding:"utf-8"});return JSON.parse(r)}case"from-registry-v1":{const t=`${Zt(e.registryUrl)}${W.RegistryV1.packageContentPrefix({organization:e.id.organization,package:e.id.name,version:e.id.version})}`,r=await this.remoteContentCache.forceFetch(`${t}/config.json`);return Ae(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 Ae(o)}default:return k.assertNever(e)}}async prepare(e){var o=[];try{if(e.type==="prepared")return e;const t=await this.prepareWithoutUnpacking(e);const r=_t(o,new mo,!0);return{...t,type:"prepared",template:{type:"prepared",data:await r.process("parseTemplate",t.template.content)}}}catch(n){var i=n,a=!0}finally{var c=Kt(o,i,a);c&&await c}}async prepareWithoutUnpacking(e){switch(e.type){case"explicit":return e;case"dev-v1":{const t=await zt(e.folder),r=await ee.promises.readFile(t.workflow),o=JSON.parse(await ee.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 W.loadPackDescription(e.folder),r=JSON.parse(await ee.promises.readFile(t.components.model.file,{encoding:"utf-8"})),o=await ee.promises.readFile(t.components.workflow.main.file),n=t.components.ui.folder,i={...e};return e.mtime===void 0&&(i.mtime=await qe(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=`${Zt(e.registryUrl)}${W.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`),a=Ae(i);return{type:"explicit",template:{type:"explicit",content:n},config:a,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()=>Ae(await this.remoteContentCache.forceFetch(r.model.url)),n=async()=>await this.remoteContentCache.forceFetch(r.workflow.main.url),[i,a]=await Promise.all([o(),n()]);return{type:"explicit",template:{type:"explicit",content:Buffer.from(a)},config:i,frontend:{type:"url",url:r.ui.url},source:e}}default:return k.assertNever(e)}}}function So(s,e){const t={config:e.config,source:e.source},r=s.createStruct(vo,JSON.stringify(t));return s.createField(h.field(r,Wr),"Input",We(s,e.template)),s.createField(h.field(r,zr),"Input",go(s,e.frontend)),s.lock(r),r}function er(s,e){switch(e.type){case"prepared":return So(s,e);default:return k.assertNever(e.type)}}function De(s,e){return{__isRef:!0,blockId:s,name:e}}function bo(s){return typeof s=="object"&&s!==null&&"__isRef"in s&&s.__isRef===!0&&"blockId"in s&&"name"in s}function vt(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(bo(e))t===void 0||t.has(e.blockId)?s.upstreams.add(e.blockId):s.missingReferences=!0;else if(Array.isArray(e))for(const o of e)vt(s,o,t);else for(const[,o]of Object.entries(e))vt(s,o,t);return;default:k.assertNever(r)}}function Po(s,e){const t={upstreams:new Set,missingReferences:!1};return vt(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 Xr{constructor(e){S(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 a of o){const c=this.nodes.get(a);r(c),c[e].forEach(u=>{n.has(u)||(n.add(u),i.push(u))})}o=i}}}function yt(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.upstream=new Set:(o.upstream=new Set([t.id]),t.downstream=new Set([o.id])),t=o}return t!==void 0&&(t.downstream=new Set),new Xr(e)}function Ge(s,e){const t=new Map,r=new Set;for(const{id:o}of ae(s)){const n=e(o);if(n===void 0)continue;const i=Po(n,r),a={id:o,missingReferences:i.missingReferences,upstream:i.upstreams,downstream:new Set};t.set(o,a),i.upstreams.forEach(c=>t.get(c).downstream.add(o)),r.add(o)}return new Xr(t)}function Ro(s,e){if(s.size!==e.size)return!1;for(const t of s)if(!e.has(t))return!1;return!0}function wt(s,e){if(s.size>e.size)return wt(e,s);for(const t of s)if(e.has(t))return!0;return!1}function tr(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):(!Ro(n.upstream,i.upstream)||wt(n.upstream,o))&&o.add(n.id)}),e.nodes.forEach(n=>{s.nodes.has(n.id)?wt(n.upstream,o)&&o.add(n.id):r.add(n.id)}),{onlyInA:t,onlyInB:r,different:o}}let ot;async function Yr(){if(ot===void 0){const s=await qr(Ps.Templates["pframes.export-pframe-for-ui"]);if(s.type!=="explicit")throw new Error("Unexpected prepared template type.");const e=se.createHash("sha256").update(s.content).digest("hex");ot={spec:s,hash:e}}return ot}function Eo(s,e,t){return kt(s,e,!0,{pf:t},["result"]).result}function nt(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 rr{constructor(e,t){S(this,"currentInputsC",nt(()=>this.fields.currentArgs.modCount,()=>JSON.parse(Buffer.from(this.fields.currentArgs.value).toString())));S(this,"actualProductionInputsC",nt(()=>{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 JSON.parse(Buffer.from(e).toString())}));S(this,"productionStaleC",nt(()=>{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}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 currentInputs(){return this.currentInputsC()}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 actualProductionInputs(){return this.actualProductionInputsC()}getTemplate(e){return e.getFutureFieldValue(h.Pl.unwrapHolder(e,this.fields.blockPack.ref),Wr,"Input")}}const Co=s=>{throw new Error(`No new block info for ${s}`)};class _e{constructor(e,t,r,o,n,i,a,c,u,l,d,f){S(this,"globalModCount",0);S(this,"fieldsChanged",!1);S(this,"lastModifiedChanged",!1);S(this,"structureChanged",!1);S(this,"metaChanged",!1);S(this,"renderingStateChanged",!1);S(this,"changedBlockFrontendStates",new Set);S(this,"blocksWithChangedInputs",new Set);S(this,"stagingGraph");S(this,"pendingProductionGraph");S(this,"actualProductionGraph");this.rid=e,this.tx=t,this.author=r,this.schema=o,this.lastModified=n,this.meta=i,this.struct=a,this.renderingState=c,this.blocksInLimbo=u,this.blockInfos=l,this.blockFrontendStates=d,this.ctxExportTplHolder=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(q.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=yt(this.struct)),this.stagingGraph}getPendingProductionGraph(){return this.pendingProductionGraph===void 0&&(this.pendingProductionGraph=Ge(this.struct,e=>this.getBlockInfo(e).currentInputs)),this.pendingProductionGraph}getActualProductionGraph(){return this.actualProductionGraph===void 0&&(this.actualProductionGraph=Ge(this.struct,e=>this.getBlockInfo(e).actualProductionInputs)),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(h.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=h.field(this.rid,J(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(h.field(this.rid,J(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 a=this.tx.createValue(h.Pl.JsonObject,i);this.setBlockField(r,"currentArgs",a,"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(h.Pl.unwrapHolder(this.tx,o.fields.prodCtx.ref))}),Yt(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(h.Pl.unwrapHolder(this.tx,o.fields.stagingCtx.ref)),((i=o.fields.prodCtx)==null?void 0:i.ref)!==void 0&&t.push(h.Pl.unwrapHolder(this.tx,o.fields.prodCtx.ref))}),Yt(this.tx,t)}exportCtx(e){return Eo(this.tx,h.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=Xt(this.tx,o,{args:t.fields.currentArgs.ref,blockId:this.tx.createValue(h.Pl.JsonString,JSON.stringify(e)),isProduction:this.tx.createValue(h.Pl.JsonBool,JSON.stringify(!1)),context:r});this.setBlockField(e,"stagingCtx",h.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=Xt(this.tx,o,{args:t.fields.currentArgs.ref,blockId:this.tx.createValue(h.Pl.JsonString,JSON.stringify(e)),isProduction:this.tx.createValue(h.Pl.JsonBool,JSON.stringify(!0)),context:r});this.setBlockField(e,"prodCtx",h.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=Co){const r=this.getStagingGraph(),o=this.getActualProductionGraph(),n=yt(e),i=Ge(e,u=>{var l;return(l=this.blockInfos.get(u))==null?void 0:l.actualProductionInputs}),a=tr(r,n),c=tr(o,i);for(const u of a.onlyInA){const{fields:l}=this.getBlockInfo(u);this.deleteBlockFields(u,...Object.keys(l)),this.blockInfos.delete(u),this.blocksInLimbo.delete(u)&&(this.renderingStateChanged=!0),this.blockFrontendStates.delete(u)&&this.changedBlockFrontendStates.add(u)}for(const u of a.onlyInB){const l=new rr(u,{});this.blockInfos.set(u,l);const d=t(u),f=er(this.tx,d.blockPack);this.setBlockField(u,"blockPack",h.Pl.wrapInHolder(this.tx,f),"NotReady"),this.setBlockFieldObj(u,"blockSettings",this.createJsonFieldValue(q.InitialBlockSettings)),this.setBlockFieldObj(u,"currentArgs",this.createJsonFieldValueByContent(d.args)),d.uiState&&(this.blockFrontendStates.set(u,d.uiState),this.changedBlockFrontendStates.add(u)),l.check()}for(const u of a.different)this.resetStaging(u);o.traverse("downstream",[...c.different],u=>{this.resetOrLimboProduction(u.id)}),(a.onlyInB.size>0||a.onlyInA.size>0||a.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 a=i.blocks.findIndex(c=>c.id===r);if(!(a<0)){i.blocks.splice(a,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",h.Pl.wrapInHolder(this.tx,er(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,a=>{r.add(a.id)});else for(const a of r){const c=o.nodes.get(a);if(c===void 0)throw new Error(`Can't find block with id: ${a}`);for(const u of c.upstream)if(!r.has(u))throw new Error("Can't render blocks not including all upstreams.")}const n=new Set;for(const a of ae(this.structure)){if(!r.has(a.id))continue;let c=this.getBlockInfo(a.id).requireProductionRendering||this.blocksInLimbo.has(a.id);if(!c){for(const u of o.nodes.get(a.id).upstream)if(n.has(u)){c=!0;break}}c&&(this.renderProductionFor(a.id),n.add(a.id))}const i=[...n];return o.traverse("downstream",i,a=>{n.has(a.id)||this.resetOrLimboProduction(a.id)}),this.getStagingGraph().traverse("downstream",i,({id:a})=>{i[0]!==a&&this.resetStaging(a)}),n.size>0&&this.updateLastModified(),n}stopProduction(...e){var i,a;const t=this.getActualProductionGraph(),r=new Dr(e),o=new Set(e),n=[];for(;!r.isEmpty();){const c=r.shift(),u=this.getBlockInfo(c).fields;if(!(((i=u.prodOutput)==null?void 0:i.status)==="Ready"&&((a=u.prodCtx)==null?void 0:a.status)==="Ready")&&this.deleteBlockFields(c,"prodOutput","prodCtx","prodUiCtx","prodArgs")){n.push(c);for(const l of t.traverseIdsExcludingRoots("downstream",c))o.has(l)||(r.push(l),o.add(l))}}for(const c of t.traverseIdsExcludingRoots("downstream",...n))this.resetOrLimboProduction(c)}traverseWithStagingLag(e){const t=new Map;this.getStagingGraph().nodes.forEach(o=>{let i=this.getBlockInfo(o.id).stagingRendered?0:1;o.upstream.forEach(a=>{const c=t.get(a);c!==0&&(i=Math.max(c+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,ft(t)):this.tx.setKValue(this.rid,ft(t),e);(this.metaChanged||this.structureChanged)&&(e===void 0?this.tx.deleteKValue(this.rid,gt):this.tx.setKValue(this.rid,gt,e))}save(){if(this.wasModified){this.lastModifiedChanged&&this.tx.setKValue(this.rid,$e,JSON.stringify(this.lastModified)),this.structureChanged&&this.tx.setKValue(this.rid,de,JSON.stringify(this.struct)),this.renderingStateChanged&&this.tx.setKValue(this.rid,Je,JSON.stringify({...this.renderingState,blocksInLimbo:[...this.blocksInLimbo]})),this.metaChanged&&this.tx.setKValue(this.rid,Te,JSON.stringify(this.meta));for(const e of this.changedBlockFrontendStates){const t=this.blockFrontendStates.get(e);t===void 0?this.tx.deleteKValue(this.rid,ht(e)):this.tx.setKValue(this.rid,ht(e),t)}this.assignAuthorMarkers()}}static async load(e,t,r){const o=e.getResourceData(t,!0),n=e.getKValueJson(t,xr),i=e.getKValueJson(t,$e),a=e.getKValueJson(t,Te),c=e.getKValueJson(t,de),u=e.getKValueJson(t,Je),l=e.listKeyValuesString(t),[d,f,g,R,m,{stagingRefreshTimestamp:U,blocksInLimbo:L},V]=await Promise.all([o,n,i,a,c,u,l]);if(f!==Vr)throw new Error(`Can't act on this project resource because it has a wrong schema version: ${f}`);const I=new Map;for(const p of d.fields){const v=zs(p.name);if(v===void 0)continue;let w=I.get(v.blockId);w===void 0&&(w={id:v.blockId,fields:{}},I.set(v.blockId,w)),w.fields[v.fieldName]=h.isNullResourceId(p.value)?{modCount:0}:{modCount:0,ref:p.value}}const _=await Yr(),pe=mt(_.hash),N=d.fields.find(p=>p.name===pe);let Q;N!==void 0?Q=h.ensureResourceIdNotNull(N.value):(Q=h.Pl.wrapInHolder(e,We(e,_.spec)),e.createField(h.field(t,mt(_.hash)),"Dynamic",Q));const le={stagingRefreshTimestamp:U},X=new Set(L),H=new Map;for(const p of V){const v=Hs(p.key);v!==void 0&&H.set(v,p.value)}const M=[];I.forEach(({fields:p})=>{for(const[,v]of Object.entries(p))if(v.ref!==void 0){if(!h.isResource(v.ref)||h.isResourceRef(v.ref))throw new Error("unexpected behaviour");M.push([v,e.getResourceData(v.ref,!1)])}});for(const[p,v]of M){const w=await v;p.value=w.data,h.isNotNullResourceId(w.error)?p.status="Error":w.resourceReady||h.isNotNullResourceId(w.originalResourceId)?p.status="Ready":p.status="NotReady"}const Z=new Map;I.forEach(({id:p,fields:v})=>Z.set(p,new rr(p,v)));const he=new Set;for(const p of ae(m)){if(!Z.has(p.id))throw new Error(`Inconsistent project structure: no inputs for ${p.id}`);he.add(p.id)}Z.forEach(p=>{if(!he.has(p.id))throw new Error(`Inconsistent project structure: no structure entry for ${p.id}`);p.check()});const y=new _e(t,e,r,f,g,R,m,le,X,Z,H,Q);return y.fixProblemsAndMigrate(),y}}async function ko(s,e=Gs){const t=s.createEphemeral(Ms);s.lock(t);const r=String(Date.now());s.setKValue(t,xr,JSON.stringify(Vr)),s.setKValue(t,Ct,r),s.setKValue(t,$e,r),s.setKValue(t,Te,JSON.stringify(e)),s.setKValue(t,de,JSON.stringify(Vs)),s.setKValue(t,Je,JSON.stringify(Us));const o=await Yr();return s.createField(h.field(t,mt(o.hash)),"Dynamic",h.Pl.wrapInHolder(s,We(s,o.spec))),t}async function Le(s,e,t){return re(s,e,void 0,t)}async function re(s,e,t,r){if(s instanceof h.PlClient)return await s.withWriteTx("ProjectAction",async o=>{const n=await _e.load(o,e,t),i=await r(n);return n.wasModified&&(n.save(),await o.commit()),i});{const o=await _e.load(s,e,t),n=await r(o);return o.save(),n}}function*Oo(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:k.assertNever(s)}}function sr(s,e){return Object.fromEntries(Object.entries(s).map(([t,r])=>[t,e(r,t)]))}function $o(s,e){switch(s.type){case"Json":return{...s};case"JsonPartitioned":return{...s,parts:sr(s.parts,e)};case"BinaryPartitioned":return{...s,parts:sr(s.parts,t=>({index:e(t.index),values:e(t.values)}))};default:k.assertNever(s)}}const To=h.resourceType("PColumnData/JsonPartitioned","1"),Io=h.resourceType("PColumnData/Partitioned/JsonPartitioned","1"),Fo=h.resourceType("PColumnData/BinaryPartitioned","1"),Ao=h.resourceType("PColumnData/Partitioned/BinaryPartitioned","1"),Do=h.resourceType("PColumnData/Json","1");function Lo(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(h.resourceTypesEqual(s.resourceType,Do)){const t=e;return{type:"Json",keyLength:t.keyLength,data:t.data}}else if(h.resourceTypesEqual(s.resourceType,To)){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(h.resourceTypesEqual(s.resourceType,Io)){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 a of i){const c=JSON.stringify([...JSON.parse(o),...JSON.parse(a)]);r[c]=n.traverse({field:a,errorIfFieldNotSet:!0}).resourceInfo}}return{type:"JsonPartitioned",partitionKeyLength:t.superPartitionKeyLength+t.partitionKeyLength,parts:r}}else if(h.resourceTypesEqual(s.resourceType,Fo)){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(h.resourceTypesEqual(s.resourceType,Ao)){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 a of i)if(a.endsWith(".index")){const c=a.slice(0,a.length-6),u=JSON.stringify([...JSON.parse(o),...JSON.parse(c)]);let l=r[u];l===void 0&&(l={},r[u]=l),r[u].index=n.traverse({field:a,errorIfFieldNotSet:!0}).resourceInfo}else if(a.endsWith(".values")){const c=a.slice(0,a.length-7),u=JSON.stringify([...JSON.parse(o),...JSON.parse(c)]);let l=r[u];l===void 0&&(l={},r[u]=l),r[u].values=n.traverse({field:a,errorIfFieldNotSet:!0}).resourceInfo}else throw new Error(`unrecognized part field name: ${a}`)}return{type:"BinaryPartitioned",partitionKeyLength:t.superPartitionKeyLength+t.partitionKeyLength,parts:r}}throw new Error(`unsupported resource type: ${h.resourceTypeToString(s.resourceType)}`)}function No(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 Bo(s,e){const t=se.createHash("sha256");return t.update(x(s)),t.update(String(h.isNullResourceId(e.originalId)?e.id:e.originalId)),t.digest().toString("hex")}function or(s,e){return x({__isRef:!0,blockId:s,name:e})}function jo(s,e){return x({resolvePath:s,name:e})}function Qr(s,e=!0,t=!1,r=""){var a,c,u;const o=/^(?<name>.*)\.(?<type>spec|data)$/,n=new Map;for(const l of s.listInputFields()){const d=l.match(o);if(!d){if(e)throw new Error(`unexpected field name ${l}`);continue}let f=k.notEmpty((a=d.groups)==null?void 0:a.name);if(!f.startsWith(r)){if(e)throw new Error(`unexpected field name ${l}`);continue}f=f.slice(r.length);const g=k.notEmpty((c=d.groups)==null?void 0:c.type);let R=n.get(f);switch(R===void 0&&(R={},n.set(f,R)),g){case"spec":R.spec=(u=s.traverse({field:l,ignoreError:t,pureFieldErrorToUndefined:t}))==null?void 0:u.getDataAsJson();break;case"data":R.hasData=!0,R.data=()=>s.traverseOrError({field:l,ignoreError:t});break}}const i=s.getInputsLocked();if(i)for(const[,l]of n)l.data===void 0&&(l.hasData=!1);return{locked:i,results:n}}function xo(s,e=!0,t="",r){if(!s.getIsReadyOrError())throw new Error("resource is not ready");const o=Qr(s,e,!1,t);Rs(o.locked);const n={};for(const[i,a]of o.results){if(a.spec===void 0)throw new Error(`no spec for key ${i}`);if(a.hasData!==!0||a.data===void 0)throw new Error(`no data for key ${i}`);const c=a.data();if(c===void 0)throw new Error(`no data for key ${i}`);if(!c.ok)throw c.error;n[i]={id:r.length===0?Bo(a.spec,c.value):jo(r,i),spec:a.spec,data:c.value}}return n}class Tt{constructor(e,t){S(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,a,c,u,l;const r=this.blocks.get(e);if(r===void 0)return;let o=(a=(i=(n=r.prod)==null?void 0:n.results)==null?void 0:i.get(t))==null?void 0:a.spec;if(o!==void 0||(o=(l=(u=(c=r.staging)==null?void 0:c.results)==null?void 0:u.get(t))==null?void 0:l.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,a,c;const r=this.blocks.get(e);if(r===void 0)return;const o=(a=(i=r.prod)==null?void 0:i.results)==null?void 0:a.get(t),n=(c=o==null?void 0:o.data)==null?void 0:c.call(o);if(o!==void 0&&o.spec!==void 0&&n!==void 0)return A.mapValueInVOE(n,u=>({id:or(e,t),spec:o.spec,data:u}));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,a,c)=>{if(c.spec!==void 0&&c.hasData===!0&&c.data!==void 0){const u=c.data();u!==void 0?e.push({ref:De(i,a),obj:{id:u.ok?or(i,a):void 0,spec:c.spec,data:u}}):o(`no_data:${i}:${a}`)}};for(const[i,a]of this.blocks){const c=new Set;if(a.prod!==void 0){a.prod.locked||o(`prod_not_locked:${i}`);for(const[u,l]of a.prod.results)c.add(u),n(i,u,l)}if(a.staging!==void 0){a.staging.locked||o(`staging_not_locked:${i}`);for(const[u,l]of a.staging.results)c.has(u)||n(i,u,l)}}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 a=new Set;if(i.staging!==void 0){i.staging.locked||o(`staging_not_locked:${n}`);for(const[c,u]of i.staging.results)u.spec!==void 0&&(e.push({ref:De(n,c),obj:u.spec}),a.add(c))}else o(`staging_not_rendered:${n}`);if(i.prod!==void 0){i.prod.locked||o(`prod_not_locked:${n}`);for(const[c,u]of i.prod.results)a.has(c)||u.spec!==void 0&&e.push({ref:De(n,c),obj:u.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[a,c]of i.results)o.has(a)||c.spec===void 0||(o.add(a),A.executePSpecPredicate(e,c.spec)&&t.push({label:r.info.label+" / "+a,ref:De(r.info.id,a),spec:c.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=k.notEmpty(o.getKeyValueAsJson(de)),a=yt(n).traverseIds("upstream",r),c=new Map;for(const u of ae(n)){if(!a.has(u.id))continue;const l=nr(o.traverse({field:J(u.id,"prodCtx"),ignoreError:!0,pureFieldErrorToUndefined:!0,stableIfNotFound:!0})!==void 0,o.traverseOrError({field:J(u.id,"prodUiCtx"),stableIfNotFound:!0})),d=nr(o.traverse({field:J(u.id,"stagingCtx"),ignoreError:!0,pureFieldErrorToUndefined:!0})!==void 0,o.traverseOrError({field:J(u.id,"stagingUiCtx")}));c.set(u.id,{info:u,prod:l,staging:d})}return new Tt(e,c)}}function nr(s,e){if(e===void 0)return s?{locked:!1,results:new Map}:void 0;if(e.ok)return Qr(e.value,!1,!0)}function It(s,e){return{blockId:e,args:n=>k.notEmpty(n.accessor(s).node().traverse({field:J(e,"currentArgs"),errorIfFieldNotSet:!0}).getDataAsString()),activeArgs:n=>{var i;return(i=n.accessor(s).node().traverse({field:J(e,"prodArgs"),stableIfNotFound:!0}))==null?void 0:i.getDataAsString()},uiState:n=>n.accessor(s).node().getKeyValueAsString(ht(e)),blockMeta:n=>{const i=n.accessor(s).node(),a=k.notEmpty(i.getKeyValueAsJson(de)),c=new Map;for(const u of ae(a))c.set(u.id,u);return c}}}function Zr(s,e){return{...It(s,e),prod:t=>{var r;return(r=t.accessor(s).node({ignoreError:!0}).traverse({field:J(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:J(e,"stagingOutput"),ignoreError:!0}))==null?void 0:o.persist();return r===void 0&&t.markUnstable("staging_not_rendered"),r},getResultsPool:t=>Tt.create(t,s,e)}}function*Y(s,e){switch(yield s,s.type){case"GetFromCtx":case"Immediate":return;case"Isolate":yield*Y(s.cfg);return;case"MakeObject":for(const[,t]of Object.entries(s.template))yield*Y(t);return;case"MakeArray":for(const t of s.template)yield*Y(t);return;case"GetJsonField":case"GetResourceField":yield*Y(s.source),yield*Y(s.field);return;case"MapRecordValues":case"MapArrayValues":case"MapResourceFields":yield*Y(s.source),yield*Y(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*Y(s.source);return;case"IsEmpty":yield*Y(s.arg);return;case"Not":yield*Y(s.operand);return;case"And":case"Or":yield*Y(s.operand1),yield*Y(s.operand2);return;default:k.assertNever(s)}}function Vo(s,e){const t={};for(const[r,o]of Object.entries(s))t[r]=e(o);return t}function Re(s,e){return s===void 0?void 0:e(s)}function Uo(s){switch(s.type){case"GetImportProgress":return!0;default:return!1}}function Go(s){for(const e of Y(s))if(Uo(e))return!0;return!1}function ze(s){return{type:"ReturnResult",result:s}}function O(s){return()=>ze(s)}const Mo=s=>{const e={};for(const[t,r]of Object.entries(s))e[t]=r;return O(e)},Jo=s=>{const e=s.source;if(e===void 0)return O(void 0);const t=[];for(const r of e)r instanceof Array?t.push(...r):t.push(r);return O(t)},_o=s=>{const e=s.source,t=s.field;return e===void 0||t===void 0?O(void 0):({cCtx:r})=>{var o;return ze((o=r.accessor(e).node().traverse(t))==null?void 0:o.persist())}};function es(s,e){const t={},r=s.length;for(let o=0;o<r;o++)t[String(o)]=e(s[o]);return t}function Ko(s,e){return t=>{const r=t.source;return r===void 0?O(void 0):()=>({type:"ScheduleSubroutine",subroutine:ts(r.length),args:es(r,o=>$({...s,[e.itVar]:o},e.mapping))})}}function ts(s){return e=>{const t=[];for(let r=0;r<s;r++)t.push(e[String(r)]);return O(t)}}function Ho(s,e){return t=>{const r=t.source;if(r===void 0)return O(void 0);const o={};for(const[n,i]of Object.entries(r)){const a={...s,[e.itVar]:i};o[n]=$(a,e.mapping)}return()=>({type:"ScheduleSubroutine",subroutine:qo,args:o})}}const qo=s=>O(s),Wo=s=>{const e=s.arg;return O(e===void 0?void 0:e.length===0)},zo=s=>{const e=s.operand;return O(e===void 0?void 0:!e)},Xo=s=>{const e=s.operand1,t=s.operand2;return O(e===void 0||t===void 0?void 0:e&&t)},Yo=s=>{const e=s.operand1,t=s.operand2;return O(e===void 0||t===void 0?void 0:e||t)},Qo=s=>{const e=s.source;return e===void 0?O(void 0):({cCtx:t})=>{var r;return ze((r=t.accessor(e).node())==null?void 0:r.getDataAsJson())}},Zo=s=>{const e=s.source,t=s.field;return O(e===void 0||t===void 0?void 0:e[t])};function en(s,e){return t=>{const r=t.source;return r===void 0?O(void 0):({cCtx:o})=>{const n=o.accessor(r).node(),i={};for(const a of n.listInputFields()){const c=n.traverse(a);if(c===void 0)i[a]=O(void 0);else{const u={...s,[e.itVar]:c.persist()};i[a]=$(u,e.mapping)}}return{type:"ScheduleSubroutine",subroutine:tn,args:i}}}}const tn=s=>O(s),rn=s=>{const e=s.source;return e===void 0?O(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:B.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)}})})},sn=s=>{const e=s.source;return e===void 0?O(void 0):({cCtx:t,drivers:r})=>{const o=t.accessor(e).node().resourceInfo;return{type:"ScheduleComputable",computable:B.Computable.make(()=>r.blobDriver.getDownloadedBlob(o),{postprocessValue:async n=>n===void 0?void 0:(await r.blobDriver.getContent(n.handle)).toString()})}}},on=s=>{const e=s.source;return e===void 0?O(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:B.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())}})})},nn=s=>{const e=s.source;return e===void 0?O(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.blobDriver.getDownloadedBlob(e)})},an=s=>{const e=s.source;return e===void 0?O(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.blobDriver.getOnDemandBlob(e)})},cn=s=>e=>{const t=e.source;return t===void 0?O(void 0):({drivers:r})=>({type:"ScheduleComputable",computable:r.blobToURLDriver.extractArchiveAndGetURL(t,s)})},ln=s=>{const e=s.source;return e===void 0?O(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.uploadDriver.getProgressId(e)})},un=s=>e=>{const t=e.source;return t===void 0?O(void 0):({drivers:r})=>({type:"ScheduleComputable",computable:r.logDriver.getLastLogs(t,s)})},dn=s=>e=>{const t=e.source;return t===void 0?O(void 0):({drivers:r})=>({type:"ScheduleComputable",computable:r.logDriver.getProgressLog(t,s)})},pn=s=>e=>{const t=e.source;return t===void 0?O(void 0):({drivers:r})=>({type:"ScheduleComputable",computable:r.logDriver.getProgressLogWithInfo(t,s)})},hn=s=>{const e=s.source;return e===void 0?O(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.logDriver.getLogHandle(e)})};function $(s,e){switch(e.type){case"GetFromCtx":{const t=s[e.variable];return typeof t=="function"?r=>ze(t(r.cCtx)):O(t)}case"Isolate":return({drivers:t})=>({type:"ScheduleComputable",computable:os(t,s,e.cfg)});case"Immediate":return O(e.value);case"GetJsonField":return()=>({type:"ScheduleSubroutine",subroutine:Zo,args:{source:$(s,e.source),field:$(s,e.field)}});case"MapArrayValues":return()=>({type:"ScheduleSubroutine",subroutine:Ko(s,e),args:{source:$(s,e.source)}});case"MapRecordValues":return()=>({type:"ScheduleSubroutine",subroutine:Ho(s,e),args:{source:$(s,e.source)}});case"MakeObject":return()=>({type:"ScheduleSubroutine",subroutine:Mo,args:Vo(e.template,t=>$(s,t))});case"MakeArray":return()=>({type:"ScheduleSubroutine",subroutine:ts(e.template.length),args:es(e.template,t=>$(s,t))});case"Flatten":return()=>({type:"ScheduleSubroutine",subroutine:Jo,args:{source:$(s,e.source)}});case"IsEmpty":return()=>({type:"ScheduleSubroutine",subroutine:Wo,args:{arg:$(s,e.arg)}});case"Not":return()=>({type:"ScheduleSubroutine",subroutine:zo,args:{operand:$(s,e.operand)}});case"And":return()=>({type:"ScheduleSubroutine",subroutine:Xo,args:{operand1:$(s,e.operand1),operand2:$(s,e.operand2)}});case"Or":return()=>({type:"ScheduleSubroutine",subroutine:Yo,args:{operand1:$(s,e.operand1),operand2:$(s,e.operand2)}});case"MapResourceFields":return()=>({type:"ScheduleSubroutine",subroutine:en(s,e),args:{source:$(s,e.source)}});case"GetResourceField":return()=>({type:"ScheduleSubroutine",subroutine:_o,args:{source:$(s,e.source),field:$(s,e.field)}});case"GetResourceValueAsJson":return()=>({type:"ScheduleSubroutine",subroutine:Qo,args:{source:$(s,e.source)}});case"GetBlobContent":return()=>({type:"ScheduleSubroutine",subroutine:rn,args:{source:$(s,e.source)}});case"GetBlobContentAsString":return()=>({type:"ScheduleSubroutine",subroutine:sn,args:{source:$(s,e.source)}});case"GetBlobContentAsJson":return()=>({type:"ScheduleSubroutine",subroutine:on,args:{source:$(s,e.source)}});case"GetDownloadedBlobContent":return()=>({type:"ScheduleSubroutine",subroutine:nn,args:{source:$(s,e.source)}});case"GetOnDemandBlobContent":return()=>({type:"ScheduleSubroutine",subroutine:an,args:{source:$(s,e.source)}});case"ExtractArchiveAndGetURL":return()=>({type:"ScheduleSubroutine",subroutine:cn(e.format),args:{source:$(s,e.source)}});case"GetImportProgress":return()=>({type:"ScheduleSubroutine",subroutine:ln,args:{source:$(s,e.source)}});case"GetLastLogs":return()=>({type:"ScheduleSubroutine",subroutine:un(e.lines),args:{source:$(s,e.source)}});case"GetProgressLog":return()=>({type:"ScheduleSubroutine",subroutine:dn(e.patternToSearch),args:{source:$(s,e.source)}});case"GetProgressLogWithInfo":return()=>({type:"ScheduleSubroutine",subroutine:pn(e.patternToSearch),args:{source:$(s,e.source)}});case"GetLogHandle":return()=>({type:"ScheduleSubroutine",subroutine:hn,args:{source:$(s,e.source)}});default:return k.assertNever(e)}}const fn=["$prod","$staging"];function gn(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 rs=Symbol(),ss="return",mn={op:rs,arg:ss};function vn(s){return s.op==rs&&s.arg==ss}function yn(){return{pendingSubroutines:new Map}}function ir(s,e,t,r){const o=new Dr(t),n=(a,c)=>{if(vn(a))return e.result=c,!1;const u=k.notEmpty(e.pendingSubroutines.get(a.op));if(a.arg in u.args)throw new Error("argument already set");return u.args[a.arg]=c,u.argCounter--,u.argCounter===0&&(e.pendingSubroutines.delete(a.op),o.push({destination:u.destination,operation:u.subroutine(u.args)})),!0},i=[];e:for(;o.length>0;){const a=o.shift(),c=a.operation(s);switch(c.type){case"ReturnResult":if(!n(a.destination,c.result))break e;break;case"ScheduleSubroutine":{const u=Symbol(),l=Object.entries(c.args),d=l.length;if(d===0)o.push({destination:a.destination,operation:c.subroutine({})});else{for(const[f,g]of l)o.push({destination:{op:u,arg:f},operation:g});e.pendingSubroutines.set(u,{argCounter:d,args:{},subroutine:c.subroutine,destination:a.destination})}}break;case"ScheduleComputable":if(!r)throw new Error("asynchronous operations are forbidden in this context");i.push({destination:a.destination,computable:c.computable});break;default:k.assertNever(c)}}return i}function wn(s,e,t,r={}){return os(s,gn(e),t,r)}function os(s,e,t,r={}){const o=`${e.blockId}#`+x({ctx:Object.fromEntries(Object.entries(e).filter(([n])=>fn.indexOf(n)===-1)),cfg:t});return B.Computable.makeRaw(n=>{const i={drivers:s,cCtx:n},a=yn();return{ir:ir(i,a,[{destination:mn,operation:$(e,t)}],!0),postprocessValue(u){const l=[];for(const R of u)l.push({destination:R.destination,operation:O(R.computable)});const d={drivers:s,get cCtx(){throw new Error("asynchronous operations are forbidden in this context")}},f=new Map;for(const[R,m]of a.pendingSubroutines)f.set(R,{...m,args:{...m.args}});const g={result:a.result,pendingSubroutines:f};if(ir(d,g,l,!1),!("result"in g))throw new Error("illegal cfg rendering stack state, no result");return g.result}}},{...r,key:o})}function Sn(s){return s instanceof ArrayBuffer||ArrayBuffer.isView(s)}function ar(s){return s!==void 0?Buffer.from(s).toString("base64"):void 0}class Ke{constructor(e,t,r,o,n,i){S(this,"callbackRegistry");S(this,"fnJSONStringify");S(this,"fnJSONParse");S(this,"computablesToResolve",{});S(this,"computableCtx");S(this,"accessors",new Map);S(this,"meta");S(this,"errorRepo",new bn);S(this,"_resultPool");if(this.scope=e,this.vm=t,this.blockCtx=r,this.env=o,this.deadlineSetter=n,this.computableCtx=i,this.callbackRegistry=this.scope.manage(this.vm.newObject()),this.fnJSONStringify=e.manage(t.getProp(t.global,"JSON").consume(a=>t.getProp(a,"stringify"))),t.typeof(this.fnJSONStringify)!=="function")throw new Error("JSON.stringify() not found.");if(this.fnJSONParse=e.manage(t.getProp(t.global,"JSON").consume(a=>t.getProp(a,"parse"))),t.typeof(this.fnJSONParse)!=="function")throw new Error("JSON.parse() not found.");this.meta=r.blockMeta(i),this.injectCtx()}resetComputableCtx(){this.computableCtx=void 0,this.accessors.clear()}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 Ke.cleanErrorContext(t),t}finally{this.deadlineSetter(void 0)}}runCallback(e,...t){try{return this.deadlineSetter({currentExecutionTarget:e,deadline:Date.now()+1e4}),Oe.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 Ke.cleanErrorContext(r),this.errorRepo.getOriginal(r)}finally{this.deadlineSetter(void 0)}}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 ar(this.getAccessor(e).getKeyValue(t))}getKeyValueAsString(e,t){return this.getAccessor(e).getKeyValueAsString(t)}getDataBase64(e){return ar(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=xo(n,t,r,o),a={};for(const[c,u]of Object.entries(i))a[c]=A.mapPObjectData(u,l=>this.wrapAccessor(l));return a}registerComputable(e,t){const r=`${e}_${se.randomUUID()}`;return this.computablesToResolve[r]=t,r}getBlobContentAsString(e){const t=this.getAccessor(e).resourceInfo;return this.registerComputable("getBlobContentAsString",B.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",B.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=k.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=se.randomUUID();return this.accessors.set(t,e),t}}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(Sn(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(){Oe.Scope.withScope(e=>{const t=e.manage(this.vm.newObject()),r=this.blockCtx.args(this.computableCtx),o=this.blockCtx.activeArgs(this.computableCtx),n=this.blockCtx.uiState(this.computableCtx);this.vm.setProp(t,"args",e.manage(this.vm.newString(r))),n!==void 0&&this.vm.setProp(t,"uiState",e.manage(this.vm.newString(n))),o!==void 0&&this.vm.setProp(t,"activeArgs",e.manage(this.vm.newString(o))),this.vm.setProp(t,"callbackRegistry",this.callbackRegistry),this.vm.setProp(t,"featureFlags",this.exportObjectUniversal(A.JsRenderInternal.GlobalCfgRenderCtxFeatureFlags,e));const i=(a,c)=>{const u=(...l)=>{try{return c(...l)}catch(d){const f=this.errorRepo.setAndRecreateForQuickJS(d);throw this.vm.newError(f)}};this.vm.newFunction(a,u).consume(l=>this.vm.setProp(t,a,l)),this.vm.newFunction(a,c).consume(l=>this.vm.setProp(t,a+"__internal__",l))};i("getAccessorHandleByName",a=>this.exportSingleValue(this.getAccessorHandleByName(this.vm.getString(a)),void 0)),i("resolveWithCommon",(a,c,...u)=>this.exportSingleValue(this.resolveWithCommon(this.vm.getString(a),this.importObjectViaJson(c),...u.map(l=>this.importObjectViaJson(l))),void 0)),i("getResourceType",a=>this.exportObjectViaJson(this.getResourceType(this.vm.getString(a)),void 0)),i("getInputsLocked",a=>this.exportSingleValue(this.getInputsLocked(this.vm.getString(a)),void 0)),i("getOutputsLocked",a=>this.exportSingleValue(this.getOutputsLocked(this.vm.getString(a)),void 0)),i("getIsReadyOrError",a=>this.exportSingleValue(this.getIsReadyOrError(this.vm.getString(a)),void 0)),i("getIsFinal",a=>this.exportSingleValue(this.getIsFinal(this.vm.getString(a)),void 0)),i("getError",a=>this.exportSingleValue(this.getError(this.vm.getString(a)),void 0)),i("listInputFields",a=>this.exportObjectViaJson(this.listInputFields(this.vm.getString(a)),void 0)),i("listOutputFields",a=>this.exportObjectViaJson(this.listInputFields(this.vm.getString(a)),void 0)),i("listDynamicFields",a=>this.exportObjectViaJson(this.listInputFields(this.vm.getString(a)),void 0)),i("getKeyValueBase64",(a,c)=>this.exportSingleValue(this.getKeyValueBase64(this.vm.getString(a),this.vm.getString(c)),void 0)),i("getKeyValueAsString",(a,c)=>this.exportSingleValue(this.getKeyValueAsString(this.vm.getString(a),this.vm.getString(c)),void 0)),i("getDataBase64",a=>this.exportSingleValue(this.getDataBase64(this.vm.getString(a)),void 0)),i("getDataAsString",a=>this.exportSingleValue(this.getDataAsString(this.vm.getString(a)),void 0)),i("parsePObjectCollection",(a,c,u,...l)=>this.exportObjectUniversal(this.parsePObjectCollection(this.vm.getString(a),this.vm.dump(c),this.vm.getString(u),...l.map(d=>this.vm.getString(d))),void 0)),i("getBlobContentAsBase64",a=>this.exportSingleValue(this.getBlobContentAsBase64(this.vm.getString(a)),void 0)),i("getBlobContentAsString",a=>this.exportSingleValue(this.getBlobContentAsString(this.vm.getString(a)),void 0)),i("getDownloadedBlobContentHandle",a=>this.exportSingleValue(this.getDownloadedBlobContentHandle(this.vm.getString(a)),void 0)),i("getOnDemandBlobContentHandle",a=>this.exportSingleValue(this.getOnDemandBlobContentHandle(this.vm.getString(a)),void 0)),i("extractArchiveAndGetURL",(a,c)=>this.exportSingleValue(this.extractArchiveAndGetURL(this.vm.getString(a),this.vm.getString(c)),void 0)),i("getImportProgress",a=>this.exportSingleValue(this.getImportProgress(this.vm.getString(a)),void 0)),i("getLastLogs",(a,c)=>this.exportSingleValue(this.getLastLogs(this.vm.getString(a),this.vm.getNumber(c)),void 0)),i("getProgressLog",(a,c)=>this.exportSingleValue(this.getProgressLog(this.vm.getString(a),this.vm.getString(c)),void 0)),i("getProgressLogWithInfo",(a,c)=>this.exportSingleValue(this.getProgressLogWithInfo(this.vm.getString(a),this.vm.getString(c)),void 0)),i("getLogHandle",a=>this.exportSingleValue(this.getLogHandle(this.vm.getString(a)),void 0)),i("getBlockLabel",a=>this.exportSingleValue(this.getBlockLabel(this.vm.getString(a)),void 0)),i("getDataFromResultPool",()=>this.exportObjectUniversal(this.getDataFromResultPool(),void 0)),i("getDataWithErrorsFromResultPool",()=>this.exportObjectUniversal(this.getDataWithErrorsFromResultPool(),void 0)),i("getSpecsFromResultPool",()=>this.exportObjectUniversal(this.getSpecsFromResultPool(),void 0)),i("calculateOptions",a=>this.exportObjectUniversal(this.calculateOptions(this.importObjectViaJson(a)),void 0)),i("getSpecFromResultPoolByRef",(a,c)=>this.exportObjectUniversal(this.getSpecFromResultPoolByRef(this.vm.getString(a),this.vm.getString(c)),void 0)),i("getDataFromResultPoolByRef",(a,c)=>this.exportObjectUniversal(this.getDataFromResultPoolByRef(this.vm.getString(a),this.vm.getString(c)),void 0)),i("createPFrame",a=>this.exportSingleValue(this.createPFrame(this.importObjectViaJson(a)),void 0)),i("createPTable",a=>this.exportSingleValue(this.createPTable(this.importObjectViaJson(a)),void 0)),i("getCurrentUnstableMarker",()=>this.exportSingleValue(this.getCurrentUnstableMarker(),void 0)),this.vm.setProp(this.vm.global,"cfgRenderCtx",t)})}}class bn{constructor(){S(this,"errorIdToError",new Map)}setAndRecreateForQuickJS(e){const t=se.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 Oe.errors.QuickJSUnwrapError))return console.warn("ErrorRepo: quickJSError is not a QuickJSUnwrapError",h.stringifyWithResourceId(e)),e;if(!("name"in e.cause))return console.warn("ErrorRepo: quickJSError.cause is not an Error",h.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}, ${h.stringifyWithResourceId(e)}`);const o=this.errorIdToError.get(r);if(o===void 0)throw new Error(`ErrorRepo: errorId not found: ${r}, ${h.stringifyWithResourceId(e)}`);return new Es.PlQuickJSError(e,o)}}function Xe(s,e){return Re(s.traverse({field:J(e,"blockPack"),assertFieldType:"Dynamic",errorIfFieldNotSet:!0},{field:h.Pl.HolderRefField,assertFieldType:"Input",errorIfFieldNotFound:!0}),t=>{const r=t.getDataAsJson(),o=A.extractConfig(r.config);return{bpId:t.resourceInfo.id.toString(),info:r,cfg:o}})}const Ne=process.env.MI_LOG_OUTPUT_STATUS;function Pn(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"),B.Computable.makeRaw(a=>{const c=new Oe.Scope;a.addOnDestroy(()=>c.dispose());const u=c.manage(s.quickJs.newRuntime());u.setMemoryLimit(1024*1024*8),u.setMaxStackSize(1024*320);let l;u.setInterruptHandler(()=>l===void 0?!1:Date.now()>l.deadline);const d=c.manage(u.newContext()),f=new Ke(c,d,e,s,m=>{l=m},a);f.evaluateBundle(r.content);const g=f.runCallback(t.handle);f.resetComputableCtx();let R=0;return Ne&&Ne!=="unstable-only"&&console.log(`Output ${t.handle} scaffold calculated.`),{ir:f.computablesToResolve,postprocessValue:(m,{unstableMarker:U,stable:L})=>{for(const[I,_]of Object.entries(m))f.runCallback(I,_);const V=f.importObjectUniversal(g);return R++,Ne&&(Ne!=="unstable-only"||!L)&&console.log(L?`Stable output ${t.handle} calculated ${V!==void 0?"defined":"undefined"}; (#${R})`:`Unstable output ${t.handle}; marker = ${U}; ${V!==void 0?"defined":"undefined"} (#${R})`),V}}},n)}function Rn(s){return A.isConfigLambda(s)?s.isActive===!0:Go(s)}function Ee(s,e,t,r,o,n={}){if(A.isConfigLambda(t)){if(r===void 0)throw new Error("No code bundle.");return Pn(s,e,t,r,o,n)}else return wn(s.driverKit,e,t,n)}function En(s,e,t){return B.Computable.make(r=>{var R,m,U,L,V,I,_,pe;const o=r.accessor(s).node(),n=k.notEmpty(o.getKeyValueAsJson(Ct)),i=k.notEmpty(o.getKeyValueAsJson($e)),a=k.notEmpty(o.getKeyValueAsJson(Te)),c=k.notEmpty(o.getKeyValueAsJson(de)),u=k.notEmpty(o.getKeyValueAsJson(Je)),l=new Map;for(const{id:N}of ae(c)){const Q=o.traverse({field:J(N,"currentArgs"),assertFieldType:"Dynamic",errorIfFieldNotSet:!0});let le;const X=o.traverse({field:J(N,"prodArgs"),assertFieldType:"Dynamic",stableIfNotFound:!0});if(X!==void 0){const H=o.getField({field:J(N,"prodOutput"),assertFieldType:"Dynamic",errorIfFieldNotFound:!0}),M=o.getField({field:J(N,"prodUiCtx"),assertFieldType:"Dynamic",errorIfFieldNotFound:!0});le={arguments:X.getDataAsJson(),stale:Q.id!==X.id,outputError:H.error!==void 0||M.error!==void 0||((R=H.value)==null?void 0:R.getError())!==void 0||((m=M.value)==null?void 0:m.getError())!==void 0,outputsError:((U=H.error)==null?void 0:U.getDataAsString())??((V=(L=H.value)==null?void 0:L.getError())==null?void 0:V.getDataAsString()),exportsError:((I=M.error)==null?void 0:I.getDataAsString())??((pe=(_=M.value)==null?void 0:_.getError())==null?void 0:pe.getDataAsString()),finished:(H.value!==void 0&&H.value.getIsReadyOrError()||H.error!==void 0&&H.error.getIsReadyOrError())&&(M.value!==void 0&&M.value.getIsReadyOrError()||M.error!==void 0&&M.error.getIsReadyOrError())}}l.set(N,{currentArguments:Q.getDataAsJson(),prod:le})}const d=Ge(c,N=>l.get(N).currentArguments),f=new Set(u.blocksInLimbo),g=[...ae(c)].map(({id:N,label:Q,renderingMode:le})=>{var b,E,T,C,D;const X=k.notEmpty(l.get(N)),H=k.notEmpty(d.nodes.get(N));let M="NotCalculated";X.prod!==void 0&&(f.has(N)?M="Limbo":M=X.prod.finished?"Done":"Running");const Z=Xe(o,N),{sections:he,title:y,inputsValid:p,sdkVersion:v}=Re(Z,({bpId:G,cfg:F})=>{const ce=It(s,N);return{sections:Ee(t,ce,F.sections,F.code,G).wrap({recover:ye=>(t.logger.error("Error in block model sections"),t.logger.error(ye),[])}),title:Re(F.title,ye=>Ee(t,ce,ye,F.code,G).wrap({recover:ms=>(t.logger.error("Error in block model title"),t.logger.error(ms),"Invalid title")})),inputsValid:Ee(t,ce,F.inputsValid,F.code,G).wrap({recover:ye=>(t.logger.error("Error in block model argsValid"),t.logger.error(ye),!1)}),sdkVersion:F.sdkVersion}})||{},w=o.traverse({field:J(N,"blockSettings"),assertFieldType:"Dynamic",errorIfFieldNotSet:!0}).getDataAsJson(),P=Re(Z,({info:G})=>t.blockUpdateWatcher.get({currentSpec:G.source,settings:w}));return{projectResourceId:h.resourceIdToString(s.rid),id:N,label:y??Q,title:y??Q,renderingMode:le,stale:((b=X.prod)==null?void 0:b.stale)!==!1||M==="Limbo",missingReference:H.missingReferences,upstreams:[...d.traverseIdsExcludingRoots("upstream",N)],downstreams:[...d.traverseIdsExcludingRoots("downstream",N)],calculationStatus:M,outputErrors:((E=X.prod)==null?void 0:E.outputError)===!0,outputsError:(T=X.prod)==null?void 0:T.outputsError,exportsError:(C=X.prod)==null?void 0:C.exportsError,settings:w,sections:he,inputsValid:p,updateInfo:{},currentBlockPack:(D=Z==null?void 0:Z.info)==null?void 0:D.source,updates:P,sdkVersion:v,navigationState:e.getState(N)}});return{meta:a,created:new Date(n),lastModified:new Date(i),authorMarker:o.getKeyValueAsJson(gt),blocks:g}},{postprocessValue:r=>{const o=new Set,n=new Set;return{...r,blocks:r.blocks.map(i=>{var l,d;i.inputsValid||o.add(i.id),i.stale&&n.add(i.id);const a=i.stale||i.upstreams.findIndex(f=>n.has(f))!==-1,c=(a||i.outputErrors)&&!!i.inputsValid&&!i.missingReference&&i.upstreams.findIndex(f=>o.has(f))===-1,u={...i,canRun:c,stale:a,updateSuggestions:((l=i.updates)==null?void 0:l.suggestions)??[],updatedBlockPack:(d=i.updates)==null?void 0:d.mainSuggestion};return delete u.updates,u})}}}).withStableType()}function Cn(s,e){const t=s.node();if(h.resourceTypesEqual(t.resourceType,Ot)){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(h.resourceTypesEqual(t.resourceType,$t)){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 kn(s,e){if(s!==void 0)return B.Computable.make(t=>Cn(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 On(s,e,t){return B.Computable.make(r=>{var a;const o=r.accessor(s).node(),n=Xe(o,e),i=(a=o.traverse({field:J(e,"blockPack"),assertFieldType:"Dynamic"},{field:h.Pl.HolderRefField,assertFieldType:"Input",errorIfFieldNotFound:!0},{field:zr,assertFieldType:"Input"}))==null?void 0:a.persist();return{path:kn(i,t),sdkVersion:n==null?void 0:n.cfg.sdkVersion}},{mode:"StableOnlyLive"})}function ns(s,e,t){if(t===void 0)return B.Computable.make(i=>ns(s,e,i),{key:`inputs#${h.resourceIdToString(s.rid)}#${e}`});const r=t.accessor(s).node(),o=It(s,e),n=o.uiState(t);return{author:r.getKeyValueAsJson(ft(e)),args:JSON.parse(o.args(t)),ui:n!==void 0?JSON.parse(n):void 0}}function $n(s,e,t){return B.Computable.make(r=>{const o=r.accessor(s).node(),n=Zr(s,e);return Re(Xe(o,e),({cfg:i,bpId:a})=>{const c={};for(const[u,l]of Object.entries(i.outputs)){const d=Ee(t,n,l,i.code,a);c[u]=B.Computable.wrapError(d,1)}return c})},{key:"outputs#"+h.resourceIdToString(s.rid)+"#"+e}).withStableType()}function Tn(s,e){return B.Computable.make(t=>{const r=t.accessor(s).node(),o=k.notEmpty(r.getKeyValueAsJson(de)),n=[];for(const{id:i}of ae(o)){const a=Xe(r,i);if(a===void 0)continue;const c=Object.entries(a.cfg.outputs).map(([,l])=>l).filter(l=>Rn(l)).map(l=>l);if(c.length===0)continue;const u=Zr(r.persist(),i);for(const l of c)n.push(B.Computable.wrapError(Ee(e,u,l,a.cfg.code,a.bpId)))}return n})}class In{constructor(){S(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 B.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 B.ChangeSource},this.states.set(t,r)),r.change.attachWatcher(e.watcher),r.state}getState(e){return B.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 cr(s){return JSON.stringify(s,(e,t)=>typeof t=="bigint"?h.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 Ye{constructor(e,t,r){S(this,"rid");S(this,"overview");S(this,"navigationStates",new In);S(this,"blockComputables",new Map);S(this,"blockFrontends",new Map);S(this,"activeConfigs");S(this,"refreshLoopResult");S(this,"abortController",new AbortController);S(this,"destroyed",!1);this.env=e,this.projectTree=r,this.overview=En(r.entry(),this.navigationStates,e).withPreCalculatedValueTree(),this.rid=t,this.refreshLoopResult=this.refreshLoop(),this.activeConfigs=Tn(r.entry(),e)}async refreshLoop(){for(;!this.destroyed;)try{await Le(this.env.pl,this.rid,e=>{e.doRefresh(this.env.ops.stagingRenderingRate)}),await this.activeConfigs.getValue(),await Lr.setTimeout(this.env.ops.projectRefreshInterval,this.abortController.signal)}catch(e){if(h.isNotFoundError(e)){console.warn("project refresh routine terminated, because project was externally deleted");break}else if(!h.isTimeoutOrCancelError(e))throw new Error("Unexpected exception",{cause:e})}}async addBlock(e,t,r,o=void 0,n=se.randomUUID()){const i=await this.env.bpPreparer.prepare(t),a=await this.env.bpPreparer.getBlockConfigContainer(t),c=A.extractConfig(a);return await re(this.env.pl,this.rid,o,u=>u.addBlock({id:n,label:e,renderingMode:c.renderingMode},{args:x(c.initialArgs),uiState:x(c.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 re(this.env.pl,this.rid,o,a=>a.migrateBlockPack(e,n,r?{args:x(i.initialArgs),uiState:x(i.initialUiState)}:void 0)),await this.projectTree.refreshState()}async deleteBlock(e,t){await re(this.env.pl,this.rid,t,r=>r.deleteBlock(e)),this.navigationStates.deleteBlock(e),await this.projectTree.refreshState()}async reorderBlocks(e,t){await re(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(a=>{const c=n.blocks.find(u=>u.id===a);if(c===void 0)throw new Error(`Can't find block: ${a}`);return c})}]};r.updateStructure(i)}),await this.projectTree.refreshState()}async runBlock(e){await Le(this.env.pl,this.rid,t=>t.renderProduction([e],!0)),await this.projectTree.refreshState()}async stopBlock(e){await Le(this.env.pl,this.rid,t=>t.stopProduction(e)),await this.projectTree.refreshState()}async setBlockArgs(e,t,r){await re(this.env.pl,this.rid,r,o=>o.setArgs([{blockId:e,args:x(t)}])),await this.projectTree.refreshState()}async setUiState(e,t,r){await re(this.env.pl,this.rid,r,o=>o.setUiState(e,t===void 0?void 0:x(t))),await this.projectTree.refreshState()}async setNavigationState(e,t){this.navigationStates.setState(e,t)}async setBlockArgsAndUiState(e,t,r,o){await re(this.env.pl,this.rid,o,n=>{n.setArgs([{blockId:e,args:x(t)}]),n.setUiState(e,x(r))}),await this.projectTree.refreshState()}async setBlockSettings(e,t){await re(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=h.ensureResourceIdNotNull((await r.getField(h.field(this.rid,J(e,"blockPack")))).value),n=h.ensureResourceIdNotNull((await r.getField(h.field(o,h.Pl.HolderRefField))).value),i=await r.getResourceData(n,!1),a=A.extractConfig(JSON.parse(Buffer.from(k.notEmpty(i.data)).toString("utf-8")).config);await re(r,this.rid,t,c=>{c.setArgs([{blockId:e,args:x(a.initialArgs)}]),c.setUiState(e,x(a.initialUiState))}),await r.commit()}),await this.projectTree.refreshState()}getBlockComputables(e){const t=this.blockComputables.get(e);if(t===void 0){const r=$n(this.projectTree.entry(),e,this.env),n={fullState:B.Computable.make(i=>({argsAndUiState:ns(this.projectTree.entry(),e,i),outputs:r,navigationState:this.navigationStates.getState(e),overview:this.overview}),{postprocessValue:i=>{var l,d,f;const a=(f=(d=(l=i.overview)==null?void 0:l.blocks)==null?void 0:d.find(g=>g.id==e))==null?void 0:f.sdkVersion,u=a&&An(a)&&i.outputs!==void 0?Ln(i.outputs):i.outputs;return{...i.argsAndUiState,outputs:u,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=On(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 Le(e.pl,t,o=>{});const r=await Me.SynchronizedTreeState.init(e.pl,t,{...e.ops.defaultTreeOptions,pruning:Fn},e.logger);if(e.ops.debugOps.dumpInitialTreeState){const o=r.dumpState();o.sort((i,a)=>{var c,u;return(((c=a.data)==null?void 0:c.byteLength)??0)-(((u=i.data)==null?void 0:u.byteLength)??0)});const n=Me.treeDumpStats(o);await pt.writeFile(`${h.resourceIdToString(t)}.json`,cr(o)),await pt.writeFile(`${h.resourceIdToString(t)}.stats.json`,cr(n))}return new Ye(e,t,r)}}function Fn(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 An(s){return!Dn(s,"1.26.0")}function Dn(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 Ln(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 Ft={logger:new k.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 At(s){return{blobDownloadPath:K.join(s,"download"),downloadBlobToURLPath:K.join(s,"downloadToURL")}}const is={...Ft,defaultTreeOptions:{pollingInterval:350,stopPollingDelay:2500,initialTreeLoadingTimeout:100*60*60*1e3},debugOps:{dumpInitialTreeState:!1},devBlockUpdateRecheckInterval:1e3,projectRefreshInterval:700,stagingRenderingRate:5};function as(s){return{...At(s),frontendDownloadPath:K.join(s,"frontend")}}function Nn(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}var St={exports:{}};const Bn="2.0.0",cs=256,jn=Number.MAX_SAFE_INTEGER||9007199254740991,xn=16,Vn=cs-6,Un=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var Qe={MAX_LENGTH:cs,MAX_SAFE_COMPONENT_LENGTH:xn,MAX_SAFE_BUILD_LENGTH:Vn,MAX_SAFE_INTEGER:jn,RELEASE_TYPES:Un,SEMVER_SPEC_VERSION:Bn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};const Gn=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...s)=>console.error("SEMVER",...s):()=>{};var Ze=Gn;(function(s,e){const{MAX_SAFE_COMPONENT_LENGTH:t,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:o}=Qe,n=Ze;e=s.exports={};const i=e.re=[],a=e.safeRe=[],c=e.src=[],u=e.safeSrc=[],l=e.t={};let d=0;const f="[a-zA-Z0-9-]",g=[["\\s",1],["\\d",o],[f,r]],R=U=>{for(const[L,V]of g)U=U.split(`${L}*`).join(`${L}{0,${V}}`).split(`${L}+`).join(`${L}{1,${V}}`);return U},m=(U,L,V)=>{const I=R(L),_=d++;n(U,_,L),l[U]=_,c[_]=L,u[_]=I,i[_]=new RegExp(L,V?"g":void 0),a[_]=new RegExp(I,V?"g":void 0)};m("NUMERICIDENTIFIER","0|[1-9]\\d*"),m("NUMERICIDENTIFIERLOOSE","\\d+"),m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${f}*`),m("MAINVERSION",`(${c[l.NUMERICIDENTIFIER]})\\.(${c[l.NUMERICIDENTIFIER]})\\.(${c[l.NUMERICIDENTIFIER]})`),m("MAINVERSIONLOOSE",`(${c[l.NUMERICIDENTIFIERLOOSE]})\\.(${c[l.NUMERICIDENTIFIERLOOSE]})\\.(${c[l.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASEIDENTIFIER",`(?:${c[l.NUMERICIDENTIFIER]}|${c[l.NONNUMERICIDENTIFIER]})`),m("PRERELEASEIDENTIFIERLOOSE",`(?:${c[l.NUMERICIDENTIFIERLOOSE]}|${c[l.NONNUMERICIDENTIFIER]})`),m("PRERELEASE",`(?:-(${c[l.PRERELEASEIDENTIFIER]}(?:\\.${c[l.PRERELEASEIDENTIFIER]})*))`),m("PRERELEASELOOSE",`(?:-?(${c[l.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${c[l.PRERELEASEIDENTIFIERLOOSE]})*))`),m("BUILDIDENTIFIER",`${f}+`),m("BUILD",`(?:\\+(${c[l.BUILDIDENTIFIER]}(?:\\.${c[l.BUILDIDENTIFIER]})*))`),m("FULLPLAIN",`v?${c[l.MAINVERSION]}${c[l.PRERELEASE]}?${c[l.BUILD]}?`),m("FULL",`^${c[l.FULLPLAIN]}$`),m("LOOSEPLAIN",`[v=\\s]*${c[l.MAINVERSIONLOOSE]}${c[l.PRERELEASELOOSE]}?${c[l.BUILD]}?`),m("LOOSE",`^${c[l.LOOSEPLAIN]}$`),m("GTLT","((?:<|>)?=?)"),m("XRANGEIDENTIFIERLOOSE",`${c[l.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),m("XRANGEIDENTIFIER",`${c[l.NUMERICIDENTIFIER]}|x|X|\\*`),m("XRANGEPLAIN",`[v=\\s]*(${c[l.XRANGEIDENTIFIER]})(?:\\.(${c[l.XRANGEIDENTIFIER]})(?:\\.(${c[l.XRANGEIDENTIFIER]})(?:${c[l.PRERELEASE]})?${c[l.BUILD]}?)?)?`),m("XRANGEPLAINLOOSE",`[v=\\s]*(${c[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[l.XRANGEIDENTIFIERLOOSE]})(?:${c[l.PRERELEASELOOSE]})?${c[l.BUILD]}?)?)?`),m("XRANGE",`^${c[l.GTLT]}\\s*${c[l.XRANGEPLAIN]}$`),m("XRANGELOOSE",`^${c[l.GTLT]}\\s*${c[l.XRANGEPLAINLOOSE]}$`),m("COERCEPLAIN",`(^|[^\\d])(\\d{1,${t}})(?:\\.(\\d{1,${t}}))?(?:\\.(\\d{1,${t}}))?`),m("COERCE",`${c[l.COERCEPLAIN]}(?:$|[^\\d])`),m("COERCEFULL",c[l.COERCEPLAIN]+`(?:${c[l.PRERELEASE]})?(?:${c[l.BUILD]})?(?:$|[^\\d])`),m("COERCERTL",c[l.COERCE],!0),m("COERCERTLFULL",c[l.COERCEFULL],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM",`(\\s*)${c[l.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",m("TILDE",`^${c[l.LONETILDE]}${c[l.XRANGEPLAIN]}$`),m("TILDELOOSE",`^${c[l.LONETILDE]}${c[l.XRANGEPLAINLOOSE]}$`),m("LONECARET","(?:\\^)"),m("CARETTRIM",`(\\s*)${c[l.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",m("CARET",`^${c[l.LONECARET]}${c[l.XRANGEPLAIN]}$`),m("CARETLOOSE",`^${c[l.LONECARET]}${c[l.XRANGEPLAINLOOSE]}$`),m("COMPARATORLOOSE",`^${c[l.GTLT]}\\s*(${c[l.LOOSEPLAIN]})$|^$`),m("COMPARATOR",`^${c[l.GTLT]}\\s*(${c[l.FULLPLAIN]})$|^$`),m("COMPARATORTRIM",`(\\s*)${c[l.GTLT]}\\s*(${c[l.LOOSEPLAIN]}|${c[l.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE",`^\\s*(${c[l.XRANGEPLAIN]})\\s+-\\s+(${c[l.XRANGEPLAIN]})\\s*$`),m("HYPHENRANGELOOSE",`^\\s*(${c[l.XRANGEPLAINLOOSE]})\\s+-\\s+(${c[l.XRANGEPLAINLOOSE]})\\s*$`),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(St,St.exports);var Ie=St.exports;const Mn=Object.freeze({loose:!0}),Jn=Object.freeze({}),_n=s=>s?typeof s!="object"?Mn:s:Jn;var Dt=_n;const lr=/^[0-9]+$/,ls=(s,e)=>{const t=lr.test(s),r=lr.test(e);return t&&r&&(s=+s,e=+e),s===e?0:t&&!r?-1:r&&!t?1:s<e?-1:1},Kn=(s,e)=>ls(e,s);var us={compareIdentifiers:ls,rcompareIdentifiers:Kn};const Be=Ze,{MAX_LENGTH:ur,MAX_SAFE_INTEGER:je}=Qe,{safeRe:dr,safeSrc:pr,t:xe}=Ie,Hn=Dt,{compareIdentifiers:fe}=us;let qn=class ie{constructor(e,t){if(t=Hn(t),e instanceof ie){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>ur)throw new TypeError(`version is longer than ${ur} characters`);Be("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?dr[xe.LOOSE]:dr[xe.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>je||this.major<0)throw new TypeError("Invalid major version");if(this.minor>je||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>je||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<je)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(Be("SemVer.compare",this.version,this.options,e),!(e instanceof ie)){if(typeof e=="string"&&e===this.version)return 0;e=new ie(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof ie||(e=new ie(e,this.options)),fe(this.major,e.major)||fe(this.minor,e.minor)||fe(this.patch,e.patch)}comparePre(e){if(e instanceof ie||(e=new ie(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(Be("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 fe(r,o)}while(++t)}compareBuild(e){e instanceof ie||(e=new ie(e,this.options));let t=0;do{const r=this.build[t],o=e.build[t];if(Be("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 fe(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[xe.PRERELEASELOOSE]:pr[xe.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]),fe(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=qn;const hr=z,Wn=(s,e,t=!1)=>{if(s instanceof hr)return s;try{return new hr(s,e)}catch(r){if(!t)return null;throw r}};var ve=Wn;const zn=ve,Xn=(s,e)=>{const t=zn(s,e);return t?t.version:null};var Yn=Xn;const Qn=ve,Zn=(s,e)=>{const t=Qn(s.trim().replace(/^[=v]+/,""),e);return t?t.version:null};var ei=Zn;const fr=z,ti=(s,e,t,r,o)=>{typeof t=="string"&&(o=r,r=t,t=void 0);try{return new fr(s instanceof fr?s.version:s,t).inc(e,r,o).version}catch{return null}};var ri=ti;const gr=ve,si=(s,e)=>{const t=gr(s,null,!0),r=gr(e,null,!0),o=t.compare(r);if(o===0)return null;const n=o>0,i=n?t:r,a=n?r:t,c=!!i.prerelease.length;if(!!a.prerelease.length&&!c){if(!a.patch&&!a.minor)return"major";if(a.compareMain(i)===0)return a.minor&&!a.patch?"minor":"patch"}const l=c?"pre":"";return t.major!==r.major?l+"major":t.minor!==r.minor?l+"minor":t.patch!==r.patch?l+"patch":"prerelease"};var oi=si;const ni=z,ii=(s,e)=>new ni(s,e).major;var ai=ii;const ci=z,li=(s,e)=>new ci(s,e).minor;var ui=li;const di=z,pi=(s,e)=>new di(s,e).patch;var hi=pi;const fi=ve,gi=(s,e)=>{const t=fi(s,e);return t&&t.prerelease.length?t.prerelease:null};var mi=gi;const mr=z,vi=(s,e,t)=>new mr(s,t).compare(new mr(e,t));var oe=vi;const yi=oe,wi=(s,e,t)=>yi(e,s,t);var Si=wi;const bi=oe,Pi=(s,e)=>bi(s,e,!0);var Ri=Pi;const vr=z,Ei=(s,e,t)=>{const r=new vr(s,t),o=new vr(e,t);return r.compare(o)||r.compareBuild(o)};var Lt=Ei;const Ci=Lt,ki=(s,e)=>s.sort((t,r)=>Ci(t,r,e));var Oi=ki;const $i=Lt,Ti=(s,e)=>s.sort((t,r)=>$i(r,t,e));var Ii=Ti;const Fi=oe,Ai=(s,e,t)=>Fi(s,e,t)>0;var et=Ai;const Di=oe,Li=(s,e,t)=>Di(s,e,t)<0;var Nt=Li;const Ni=oe,Bi=(s,e,t)=>Ni(s,e,t)===0;var ds=Bi;const ji=oe,xi=(s,e,t)=>ji(s,e,t)!==0;var ps=xi;const Vi=oe,Ui=(s,e,t)=>Vi(s,e,t)>=0;var Bt=Ui;const Gi=oe,Mi=(s,e,t)=>Gi(s,e,t)<=0;var jt=Mi;const Ji=ds,_i=ps,Ki=et,Hi=Bt,qi=Nt,Wi=jt,zi=(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 Ji(s,t,r);case"!=":return _i(s,t,r);case">":return Ki(s,t,r);case">=":return Hi(s,t,r);case"<":return qi(s,t,r);case"<=":return Wi(s,t,r);default:throw new TypeError(`Invalid operator: ${e}`)}};var hs=zi;const Xi=z,Yi=ve,{safeRe:Ve,t:Ue}=Ie,Qi=(s,e)=>{if(s instanceof Xi)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?Ve[Ue.COERCEFULL]:Ve[Ue.COERCE]);else{const c=e.includePrerelease?Ve[Ue.COERCERTLFULL]:Ve[Ue.COERCERTL];let u;for(;(u=c.exec(s))&&(!t||t.index+t[0].length!==s.length);)(!t||u.index+u[0].length!==t.index+t[0].length)&&(t=u),c.lastIndex=u.index+u[1].length+u[2].length;c.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]}`:"",a=e.includePrerelease&&t[6]?`+${t[6]}`:"";return Yi(`${r}.${o}.${n}${i}${a}`,e)};var Zi=Qi;class ea{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 ta=ea,it,yr;function ne(){if(yr)return it;yr=1;const s=/\s+/g;class e{constructor(p,v){if(v=o(v),p instanceof e)return p.loose===!!v.loose&&p.includePrerelease===!!v.includePrerelease?p:new e(p.raw,v);if(p instanceof n)return this.raw=p.value,this.set=[[p]],this.formatted=void 0,this;if(this.options=v,this.loose=!!v.loose,this.includePrerelease=!!v.includePrerelease,this.raw=p.trim().replace(s," "),this.set=this.raw.split("||").map(w=>this.parseRange(w.trim())).filter(w=>w.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const w=this.set[0];if(this.set=this.set.filter(P=>!m(P[0])),this.set.length===0)this.set=[w];else if(this.set.length>1){for(const P of this.set)if(P.length===1&&U(P[0])){this.set=[P];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let p=0;p<this.set.length;p++){p>0&&(this.formatted+="||");const v=this.set[p];for(let w=0;w<v.length;w++)w>0&&(this.formatted+=" "),this.formatted+=v[w].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(p){const w=((this.options.includePrerelease&&g)|(this.options.loose&&R))+":"+p,P=r.get(w);if(P)return P;const b=this.options.loose,E=b?c[u.HYPHENRANGELOOSE]:c[u.HYPHENRANGE];p=p.replace(E,Z(this.options.includePrerelease)),i("hyphen replace",p),p=p.replace(c[u.COMPARATORTRIM],l),i("comparator trim",p),p=p.replace(c[u.TILDETRIM],d),i("tilde trim",p),p=p.replace(c[u.CARETTRIM],f),i("caret trim",p);let T=p.split(" ").map(F=>V(F,this.options)).join(" ").split(/\s+/).map(F=>M(F,this.options));b&&(T=T.filter(F=>(i("loose invalid filter",F,this.options),!!F.match(c[u.COMPARATORLOOSE])))),i("range list",T);const C=new Map,D=T.map(F=>new n(F,this.options));for(const F of D){if(m(F))return[F];C.set(F.value,F)}C.size>1&&C.has("")&&C.delete("");const G=[...C.values()];return r.set(w,G),G}intersects(p,v){if(!(p instanceof e))throw new TypeError("a Range is required");return this.set.some(w=>L(w,v)&&p.set.some(P=>L(P,v)&&w.every(b=>P.every(E=>b.intersects(E,v)))))}test(p){if(!p)return!1;if(typeof p=="string")try{p=new a(p,this.options)}catch{return!1}for(let v=0;v<this.set.length;v++)if(he(this.set[v],p,this.options))return!0;return!1}}it=e;const t=ta,r=new t,o=Dt,n=tt(),i=Ze,a=z,{safeRe:c,t:u,comparatorTrimReplace:l,tildeTrimReplace:d,caretTrimReplace:f}=Ie,{FLAG_INCLUDE_PRERELEASE:g,FLAG_LOOSE:R}=Qe,m=y=>y.value==="<0.0.0-0",U=y=>y.value==="",L=(y,p)=>{let v=!0;const w=y.slice();let P=w.pop();for(;v&&w.length;)v=w.every(b=>P.intersects(b,p)),P=w.pop();return v},V=(y,p)=>(i("comp",y,p),y=N(y,p),i("caret",y),y=_(y,p),i("tildes",y),y=le(y,p),i("xrange",y),y=H(y,p),i("stars",y),y),I=y=>!y||y.toLowerCase()==="x"||y==="*",_=(y,p)=>y.trim().split(/\s+/).map(v=>pe(v,p)).join(" "),pe=(y,p)=>{const v=p.loose?c[u.TILDELOOSE]:c[u.TILDE];return y.replace(v,(w,P,b,E,T)=>{i("tilde",y,w,P,b,E,T);let C;return I(P)?C="":I(b)?C=`>=${P}.0.0 <${+P+1}.0.0-0`:I(E)?C=`>=${P}.${b}.0 <${P}.${+b+1}.0-0`:T?(i("replaceTilde pr",T),C=`>=${P}.${b}.${E}-${T} <${P}.${+b+1}.0-0`):C=`>=${P}.${b}.${E} <${P}.${+b+1}.0-0`,i("tilde return",C),C})},N=(y,p)=>y.trim().split(/\s+/).map(v=>Q(v,p)).join(" "),Q=(y,p)=>{i("caret",y,p);const v=p.loose?c[u.CARETLOOSE]:c[u.CARET],w=p.includePrerelease?"-0":"";return y.replace(v,(P,b,E,T,C)=>{i("caret",y,P,b,E,T,C);let D;return I(b)?D="":I(E)?D=`>=${b}.0.0${w} <${+b+1}.0.0-0`:I(T)?b==="0"?D=`>=${b}.${E}.0${w} <${b}.${+E+1}.0-0`:D=`>=${b}.${E}.0${w} <${+b+1}.0.0-0`:C?(i("replaceCaret pr",C),b==="0"?E==="0"?D=`>=${b}.${E}.${T}-${C} <${b}.${E}.${+T+1}-0`:D=`>=${b}.${E}.${T}-${C} <${b}.${+E+1}.0-0`:D=`>=${b}.${E}.${T}-${C} <${+b+1}.0.0-0`):(i("no pr"),b==="0"?E==="0"?D=`>=${b}.${E}.${T}${w} <${b}.${E}.${+T+1}-0`:D=`>=${b}.${E}.${T}${w} <${b}.${+E+1}.0-0`:D=`>=${b}.${E}.${T} <${+b+1}.0.0-0`),i("caret return",D),D})},le=(y,p)=>(i("replaceXRanges",y,p),y.split(/\s+/).map(v=>X(v,p)).join(" ")),X=(y,p)=>{y=y.trim();const v=p.loose?c[u.XRANGELOOSE]:c[u.XRANGE];return y.replace(v,(w,P,b,E,T,C)=>{i("xRange",y,w,P,b,E,T,C);const D=I(b),G=D||I(E),F=G||I(T),ce=F;return P==="="&&ce&&(P=""),C=p.includePrerelease?"-0":"",D?P===">"||P==="<"?w="<0.0.0-0":w="*":P&&ce?(G&&(E=0),T=0,P===">"?(P=">=",G?(b=+b+1,E=0,T=0):(E=+E+1,T=0)):P==="<="&&(P="<",G?b=+b+1:E=+E+1),P==="<"&&(C="-0"),w=`${P+b}.${E}.${T}${C}`):G?w=`>=${b}.0.0${C} <${+b+1}.0.0-0`:F&&(w=`>=${b}.${E}.0${C} <${b}.${+E+1}.0-0`),i("xRange return",w),w})},H=(y,p)=>(i("replaceStars",y,p),y.trim().replace(c[u.STAR],"")),M=(y,p)=>(i("replaceGTE0",y,p),y.trim().replace(c[p.includePrerelease?u.GTE0PRE:u.GTE0],"")),Z=y=>(p,v,w,P,b,E,T,C,D,G,F,ce)=>(I(w)?v="":I(P)?v=`>=${w}.0.0${y?"-0":""}`:I(b)?v=`>=${w}.${P}.0${y?"-0":""}`:E?v=`>=${v}`:v=`>=${v}${y?"-0":""}`,I(D)?C="":I(G)?C=`<${+D+1}.0.0-0`:I(F)?C=`<${D}.${+G+1}.0-0`:ce?C=`<=${D}.${G}.${F}-${ce}`:y?C=`<${D}.${G}.${+F+1}-0`:C=`<=${C}`,`${v} ${C}`.trim()),he=(y,p,v)=>{for(let w=0;w<y.length;w++)if(!y[w].test(p))return!1;if(p.prerelease.length&&!v.includePrerelease){for(let w=0;w<y.length;w++)if(i(y[w].semver),y[w].semver!==n.ANY&&y[w].semver.prerelease.length>0){const P=y[w].semver;if(P.major===p.major&&P.minor===p.minor&&P.patch===p.patch)return!0}return!1}return!0};return it}var at,wr;function tt(){if(wr)return at;wr=1;const s=Symbol("SemVer ANY");class e{static get ANY(){return s}constructor(l,d){if(d=t(d),l instanceof e){if(l.loose===!!d.loose)return l;l=l.value}l=l.trim().split(/\s+/).join(" "),i("comparator",l,d),this.options=d,this.loose=!!d.loose,this.parse(l),this.semver===s?this.value="":this.value=this.operator+this.semver.version,i("comp",this)}parse(l){const d=this.options.loose?r[o.COMPARATORLOOSE]:r[o.COMPARATOR],f=l.match(d);if(!f)throw new TypeError(`Invalid comparator: ${l}`);this.operator=f[1]!==void 0?f[1]:"",this.operator==="="&&(this.operator=""),f[2]?this.semver=new a(f[2],this.options.loose):this.semver=s}toString(){return this.value}test(l){if(i("Comparator.test",l,this.options.loose),this.semver===s||l===s)return!0;if(typeof l=="string")try{l=new a(l,this.options)}catch{return!1}return n(l,this.operator,this.semver,this.options)}intersects(l,d){if(!(l instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new c(l.value,d).test(this.value):l.operator===""?l.value===""?!0:new c(this.value,d).test(l.semver):(d=t(d),d.includePrerelease&&(this.value==="<0.0.0-0"||l.value==="<0.0.0-0")||!d.includePrerelease&&(this.value.startsWith("<0.0.0")||l.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&l.operator.startsWith(">")||this.operator.startsWith("<")&&l.operator.startsWith("<")||this.semver.version===l.semver.version&&this.operator.includes("=")&&l.operator.includes("=")||n(this.semver,"<",l.semver,d)&&this.operator.startsWith(">")&&l.operator.startsWith("<")||n(this.semver,">",l.semver,d)&&this.operator.startsWith("<")&&l.operator.startsWith(">")))}}at=e;const t=Dt,{safeRe:r,t:o}=Ie,n=hs,i=Ze,a=z,c=ne();return at}const ra=ne(),sa=(s,e,t)=>{try{e=new ra(e,t)}catch{return!1}return e.test(s)};var rt=sa;const oa=ne(),na=(s,e)=>new oa(s,e).set.map(t=>t.map(r=>r.value).join(" ").trim().split(" "));var ia=na;const aa=z,ca=ne(),la=(s,e,t)=>{let r=null,o=null,n=null;try{n=new ca(e,t)}catch{return null}return s.forEach(i=>{n.test(i)&&(!r||o.compare(i)===-1)&&(r=i,o=new aa(r,t))}),r};var ua=la;const da=z,pa=ne(),ha=(s,e,t)=>{let r=null,o=null,n=null;try{n=new pa(e,t)}catch{return null}return s.forEach(i=>{n.test(i)&&(!r||o.compare(i)===1)&&(r=i,o=new da(r,t))}),r};var fa=ha;const ct=z,ga=ne(),Sr=et,ma=(s,e)=>{s=new ga(s,e);let t=new ct("0.0.0");if(s.test(t)||(t=new ct("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 a=new ct(i.semver.version);switch(i.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!n||Sr(a,n))&&(n=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${i.operator}`)}}),n&&(!t||Sr(t,n))&&(t=n)}return t&&s.test(t)?t:null};var va=ma;const ya=ne(),wa=(s,e)=>{try{return new ya(s,e).range||"*"}catch{return null}};var Sa=wa;const ba=z,fs=tt(),{ANY:Pa}=fs,Ra=ne(),Ea=rt,br=et,Pr=Nt,Ca=jt,ka=Bt,Oa=(s,e,t,r)=>{s=new ba(s,r),e=new Ra(e,r);let o,n,i,a,c;switch(t){case">":o=br,n=Ca,i=Pr,a=">",c=">=";break;case"<":o=Pr,n=ka,i=br,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Ea(s,e,r))return!1;for(let u=0;u<e.set.length;++u){const l=e.set[u];let d=null,f=null;if(l.forEach(g=>{g.semver===Pa&&(g=new fs(">=0.0.0")),d=d||g,f=f||g,o(g.semver,d.semver,r)?d=g:i(g.semver,f.semver,r)&&(f=g)}),d.operator===a||d.operator===c||(!f.operator||f.operator===a)&&n(s,f.semver))return!1;if(f.operator===c&&i(s,f.semver))return!1}return!0};var xt=Oa;const $a=xt,Ta=(s,e,t)=>$a(s,e,">",t);var Ia=Ta;const Fa=xt,Aa=(s,e,t)=>Fa(s,e,"<",t);var Da=Aa;const Rr=ne(),La=(s,e,t)=>(s=new Rr(s,t),e=new Rr(e,t),s.intersects(e,t));var Na=La;const Ba=rt,ja=oe;var xa=(s,e,t)=>{const r=[];let o=null,n=null;const i=s.sort((l,d)=>ja(l,d,t));for(const l of i)Ba(l,e,t)?(n=l,o||(o=l)):(n&&r.push([o,n]),n=null,o=null);o&&r.push([o,null]);const a=[];for(const[l,d]of r)l===d?a.push(l):!d&&l===i[0]?a.push("*"):d?l===i[0]?a.push(`<=${d}`):a.push(`${l} - ${d}`):a.push(`>=${l}`);const c=a.join(" || "),u=typeof e.raw=="string"?e.raw:String(e);return c.length<u.length?c:e};const Er=ne(),Vt=tt(),{ANY:lt}=Vt,we=rt,Ut=oe,Va=(s,e,t={})=>{if(s===e)return!0;s=new Er(s,t),e=new Er(e,t);let r=!1;e:for(const o of s.set){for(const n of e.set){const i=Ga(o,n,t);if(r=r||i!==null,i)continue e}if(r)return!1}return!0},Ua=[new Vt(">=0.0.0-0")],Cr=[new Vt(">=0.0.0")],Ga=(s,e,t)=>{if(s===e)return!0;if(s.length===1&&s[0].semver===lt){if(e.length===1&&e[0].semver===lt)return!0;t.includePrerelease?s=Ua:s=Cr}if(e.length===1&&e[0].semver===lt){if(t.includePrerelease)return!0;e=Cr}const r=new Set;let o,n;for(const g of s)g.operator===">"||g.operator===">="?o=kr(o,g,t):g.operator==="<"||g.operator==="<="?n=Or(n,g,t):r.add(g.semver);if(r.size>1)return null;let i;if(o&&n){if(i=Ut(o.semver,n.semver,t),i>0)return null;if(i===0&&(o.operator!==">="||n.operator!=="<="))return null}for(const g of r){if(o&&!we(g,String(o),t)||n&&!we(g,String(n),t))return null;for(const R of e)if(!we(g,String(R),t))return!1;return!0}let a,c,u,l,d=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1,f=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 g of e){if(l=l||g.operator===">"||g.operator===">=",u=u||g.operator==="<"||g.operator==="<=",o){if(f&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===f.major&&g.semver.minor===f.minor&&g.semver.patch===f.patch&&(f=!1),g.operator===">"||g.operator===">="){if(a=kr(o,g,t),a===g&&a!==o)return!1}else if(o.operator===">="&&!we(o.semver,String(g),t))return!1}if(n){if(d&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===d.major&&g.semver.minor===d.minor&&g.semver.patch===d.patch&&(d=!1),g.operator==="<"||g.operator==="<="){if(c=Or(n,g,t),c===g&&c!==n)return!1}else if(n.operator==="<="&&!we(n.semver,String(g),t))return!1}if(!g.operator&&(n||o)&&i!==0)return!1}return!(o&&u&&!n&&i!==0||n&&l&&!o&&i!==0||f||d)},kr=(s,e,t)=>{if(!s)return e;const r=Ut(s.semver,e.semver,t);return r>0?s:r<0||e.operator===">"&&s.operator===">="?e:s},Or=(s,e,t)=>{if(!s)return e;const r=Ut(s.semver,e.semver,t);return r<0?s:r>0||e.operator==="<"&&s.operator==="<="?e:s};var Ma=Va;const ut=Ie,$r=Qe,Ja=z,Tr=us,_a=ve,Ka=Yn,Ha=ei,qa=ri,Wa=oi,za=ai,Xa=ui,Ya=hi,Qa=mi,Za=oe,ec=Si,tc=Ri,rc=Lt,sc=Oi,oc=Ii,nc=et,ic=Nt,ac=ds,cc=ps,lc=Bt,uc=jt,dc=hs,pc=Zi,hc=tt(),fc=ne(),gc=rt,mc=ia,vc=ua,yc=fa,wc=va,Sc=Sa,bc=xt,Pc=Ia,Rc=Da,Ec=Na,Cc=xa,kc=Ma;var Oc={parse:_a,valid:Ka,clean:Ha,inc:qa,diff:Wa,major:za,minor:Xa,patch:Ya,prerelease:Qa,compare:Za,rcompare:ec,compareLoose:tc,compareBuild:rc,sort:sc,rsort:oc,gt:nc,lt:ic,eq:ac,neq:cc,gte:lc,lte:uc,cmp:dc,coerce:pc,Comparator:hc,Range:fc,satisfies:gc,toComparators:mc,maxSatisfying:vc,minSatisfying:yc,minVersion:wc,validRange:Sc,outside:bc,gtr:Pc,ltr:Rc,intersects:Ec,simplifyRange:Cc,subset:kc,SemVer:Ja,re:ut.re,src:ut.src,tokens:ut.t,SEMVER_SPEC_VERSION:$r.SEMVER_SPEC_VERSION,RELEASE_TYPES:$r.RELEASE_TYPES,compareIdentifiers:Tr.compareIdentifiers,rcompareIdentifiers:Tr.rcompareIdentifiers};const $c=Nn(Oc),Tc={minDelay:1500},Ic="__no_updates__";class Fc extends B.PollComputablePool{constructor(t,r,o={}){super({...o,...Tc},r);S(this,"http");S(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_${x(t)}`;default:return Ic}}async readValue(t){var r,o;try{const n=t.currentSpec;switch(n.type){case"dev-v1":try{const i=await Et(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 W.tryLoadPackDescription(n.folder,this.logger);if(i===void 0)return{suggestions:[]};const a=await qe(i);return a===n.mtime?{suggestions:[]}:{mainSuggestion:{...n,mtime:a},suggestions:[]}}catch(i){return this.logger.warn(i),{suggestions:[]}}case"from-registry-v2":try{const{versionLock:i,skipVersion:a}=t.settings;if(i==="patch")return{suggestions:[]};const c=this.registryProvider.getRegistry(n.registryUrl);let u=this.preferredUpdateChannel;if(u===void 0)if(n.channel===void 0)if(await c.getLatestOverview(n.id,q.StableChannel))u=q.StableChannel;else{if(await c.getLatestOverview(n.id,q.AnyChannel)===void 0)return this.logger.error(`No "any" channel record for ${q.blockPackIdToString(n.id)}`),{suggestions:[]};u=q.AnyChannel}else u=n.channel;const l=await c.getUpdateSuggestions(n.id,u);if(l===void 0||l.length===0)return{suggestions:[]};l.reverse();let d;switch(i){case void 0:d=l[0].update;break;case"major":d=(r=l.find(R=>R.type!=="major"))==null?void 0:r.update;break;case"minor":d=(o=l.find(R=>R.type==="patch"))==null?void 0:o.update;break}const f=l.map(({type:R,update:m})=>({type:R,update:{...n,id:{...n.id,version:m}}}));if(d===void 0)return{suggestions:f};if(a!==void 0&&$c.lte(d,a))return{suggestions:f};const g={...n,id:{...n.id,version:d}};return(async()=>{try{await c.getComponents(g.id)}catch(R){this.logger.warn(R)}})(),{suggestions:f,mainSuggestion:g}}catch(i){return this.logger.warn(i),{suggestions:[]}}default:return{suggestions:[]}}}catch(n){return this.logger.warn(n),{suggestions:[]}}}resultsEqual(t,r){return x(t)===x(r)}}class Ir{constructor(){S(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 Se;function ue(){return Se||(Se={logPFrameRequests:process.env.MI_LOG_PFRAMES!==void 0,dumpInitialTreeState:process.env.MI_DUMP_INITIAL_TREE_STATE!==void 0},process.env.MI_LOG_TREE_STAT&&(Se.logTreeStats=process.env.MI_LOG_TREE_STAT==="cumulative"?"cumulative":"per-request"),Se)}function Ce(s){return String(s.id)}const Ac=["Int","Long","Float","Double","String","Bytes"];function dt(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 be=(s,e)=>typeof e=="bigint"?e.toString():e;class Dc{constructor(e,t,r,o){S(this,"rustPFrame");S(this,"blobIdToResource",new Map);S(this,"blobHandleComputables",new Map);S(this,"preloadBlob",async e=>{const t=e.map(r=>this.getOrCreateComputableForBlob(r));for(const r of t)await r.awaitStableFullValue()});S(this,"resolveBlob",async e=>{const t=this.getOrCreateComputableForBlob(e);return this.blobDriver.getLocalPath((await t.awaitStableValue()).handle)});S(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.blobContentCache=r;const n=(a,c)=>{switch(a){default:case"info":return this.logger.info(c);case"warn":return this.logger.warn(c);case"error":return this.logger.error(c)}};for(const a of o)for(const c of Oo(a.data))this.blobIdToResource.set(Ce(c),c);const i=[...new Map(o.map(a=>({...a,data:$o(a.data,Ce)})).map(a=>[x(a),a])).values()];try{const a=new Cs.PFrame(ue().logPFrameRequests?n:void 0);a.setDataSource(this);for(const c of i)a.addColumnSpec(c.id,c.spec),a.setColumnData(c.id,c.data);this.rustPFrame=a}catch(a){throw new Error(`Rust PFrame creation failed, columns: ${JSON.stringify(i)}, 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.rustPFrame.dispose()}}class Lc{constructor(e){this.table=e}[Symbol.dispose](){this.table.then(e=>e.dispose())}}class Nc{constructor(e,t){S(this,"pFrames");S(this,"pTables");S(this,"blobContentCache");this.blobDriver=e,this.logger=t;const r=new Ar.LRUCache({maxSize:1e9,fetchMethod:async o=>await Nr.readFile(o),sizeCalculation:o=>o.length});this.blobContentCache=r,this.pFrames=new class extends Ir{constructor(o,n){super(),this.blobDriver=o,this.logger=n}createNewResource(o){return ue().logPFrameRequests&&t.info(`PFrame creation (pFrameHandle = ${this.calculateParamsKey(o)}): ${JSON.stringify(o,be)}`),new Dc(this.blobDriver,this.logger,r,o)}calculateParamsKey(o){return jc(o)}}(this.blobDriver,this.logger),this.pTables=new class extends Ir{constructor(o){super(),this.pFrames=o}createNewResource(o){const n=o.pFrameHandle;ue().logPFrameRequests&&t.info(`PTable creation (pTableHandle = ${this.calculateParamsKey(o)}): ${JSON.stringify(o,be)}`);const i=this.pFrames.getByKey(n).rustPFrame.createTable({src:ke(o.def.src),filters:dt(o.def.filters)},o.signal).then(async a=>{if(o.def.sorting.length===0)return a;try{return await a.sort(o.def.sorting,o.signal)}finally{a.dispose()}});return new Lc(i)}calculateParamsKey(o){return Bc(o)}}(this.pFrames)}createPFrame(e,t){const r=e.filter(n=>Ac.find(i=>i===n.spec.valueType)).map(n=>A.mapPObjectData(n,i=>Me.isPlTreeNodeAccessor(i)?Lo(i):A.isDataInfo(i)?A.mapDataInfo(i,a=>a.resourceInfo):No(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,a=>a.id),i=this.pTables.acquire({def:n,pFrameHandle:o,signal:r});return ue().logPFrameRequests&&this.logger.info(`Create PTable call (pFrameHandle = ${o}; pTableHandle = ${JSON.stringify(i)}): ${JSON.stringify(A.mapPTableDef(e,a=>a.spec),be)}`),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=>[x(n),n])).values()],qualifications:[]}]:[]};return{hits:(await this.pFrames.getByKey(e).rustPFrame.findColumns(r)).hits.filter(n=>n.mappingVariants.length===0||n.mappingVariants.some(i=>i.qualifications.forHit.length===0&&i.qualifications.forQueries.every(a=>a.length===0))).map(n=>n.hit)}}async getColumnSpec(e,t){return await this.pFrames.getByKey(e).rustPFrame.getColumnSpec(t)}async listColumns(e){return await this.pFrames.getByKey(e).rustPFrame.listColumns()}async calculateTableData(e,t,r){return ue().logPFrameRequests&&this.logger.info(`Call calculateTableData, handle = ${e}, request = ${JSON.stringify(t,be)}`),await this.pFrames.getByKey(e).rustPFrame.createTable({src:ke(t.src),filters:dt(t.filters)},r).then(async o=>{if(t.sorting.length===0)return o;try{return await o.sort(t.sorting,r)}finally{o.dispose()}}).then(async o=>{try{const n=o.getSpec(),i=await o.getData([...n.keys()]);return n.map((a,c)=>({spec:a,data:i[c]}))}finally{o.dispose()}})}async getUniqueValues(e,t,r){return ue().logPFrameRequests&&this.logger.info(`Call getUniqueValues, handle = ${e}, request = ${JSON.stringify(t,be)}`),await this.pFrames.getByKey(e).rustPFrame.getUniqueValues({...t,filters:dt(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){return await(await this.pTables.getByKey(e).table).getData(t,r)}}function ke(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=>ke(e))};case"outer":return{type:"outer",primary:ke(s.primary),secondary:s.secondary.map(e=>ke(e))};default:k.assertNever(s)}}function Bc(s){const e=se.createHash("sha256");return e.update(x(s)),e.digest().toString("hex")}function jc(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(([a,c])=>({key:a,value:c}))};break;case"JsonPartitioned":n={type:o.type,keyLength:o.partitionKeyLength,payload:Object.entries(o.parts).map(([a,c])=>({key:a,value:Ce(c)}))};break;case"BinaryPartitioned":n={type:o.type,keyLength:o.partitionKeyLength,payload:Object.entries(o.parts).map(([a,c])=>({key:a,value:[Ce(c.index),Ce(c.values)]}))};break;default:throw Error(`unsupported resource type: ${JSON.stringify(i)}`)}return n.payload.sort((a,c)=>a.key.localeCompare(c.key)),n}));e.sort((r,o)=>r.id.localeCompare(o.id));const t=se.createHash("sha256");return t.update(x(e)),t.digest().toString("hex")}async function gs(s,e,t){const r={...Ft,...At(e),...t},o=new k.HmacSha256Signer(r.localSecret),n=te.createDownloadClient(r.logger,s,r.localProjections),i=te.createLogsClient(s,r.logger),a=te.createUploadBlobClient(s,r.logger),c=te.createUploadProgressClient(s,r.logger),u=new te.DownloadDriver(r.logger,n,i,r.blobDownloadPath,o,r.blobDriverOps),l=new te.DownloadBlobToURLDriver(r.logger,o,n,r.downloadBlobToURLPath,r.downloadBlobToURLDriverOps),d=new te.UploadDriver(r.logger,o,a,c,r.uploadDriverOps),f=new te.LogsStreamDriver(r.logger,i,r.logStreamDriverOps),g=new te.LogsDriver(r.logger,f,u),R=await te.LsDriver.init(r.logger,s,o,r.localProjections,r.openFileDialogCallback,r.virtualLocalStoragesOverride),m=new Nc(u,r.logger);return{blobDriver:u,blobToURLDriver:l,logDriver:g,lsDriver:R,signer:o,uploadDriver:d,pFrameDriver:m}}class Gt{constructor(e,t,r,o,n,i,a,c){S(this,"pl");S(this,"projectList");S(this,"openedProjectsByRid",new Map);this.env=e,this.driverKit=t,this.signer=r,this.projectListResourceId=o,this.openedProjectsList=n,this.projectListTree=i,this.blockRegistryProvider=a,this.projectList=c,this.pl=this.env.pl}get internalDriverKit(){return this.env.driverKit}async createProject(e,t=se.randomUUID()){const r=await this.pl.withWriteTx("MLCreateProject",async o=>{const n=await ko(o,e);return o.createField(h.field(this.projectListResourceId,t),"Dynamic",n),await o.commit(),await h.toGlobalResourceId(n)});return await this.projectListTree.refreshState(),r}async setProjectMeta(e,t,r){await re(this.pl,e,r,o=>{o.setMeta(t)}),await this.projectListTree.refreshState()}async deleteProject(e){await this.pl.withWriteTx("MLRemoveProject",async t=>{t.removeField(h.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(h.field(this.projectListResourceId,e))).value;if(h.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 Ye.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 k.HmacSha256Signer.generateSecret()}static async init(e,t,r){const o={...is,...as(t),...r};o.defaultTreeOptions.logStat=ue().logTreeStats,o.debugOps.dumpInitialTreeState=ue().dumpInitialTreeState;const n=await e.withWriteTx("MLInitialization",async m=>{const U=h.field(m.clientRoot,Xs);m.createField(U,"Dynamic");const L=await m.getField(U);if(h.isNullResourceId(L.value)){const V=m.createEphemeral(Ur);return m.lock(V),m.setField(U,V),await m.commit(),await V.globalId}else return L.value}),i=o.logger,a=await gs(e,t,o),c=new He.RetryAgent(e.httpDispatcher,{minTimeout:250,maxRetries:4}),u=new jr(c),l=new wo(u,a.signer,c),d=new te.DownloadUrlDriver(i,e.httpDispatcher,o.frontendDownloadPath),f={pl:e,signer:a.signer,logger:i,httpDispatcher:e.httpDispatcher,retryHttpDispatcher:c,ops:o,bpPreparer:l,frontendDownloadDriver:d,driverKit:a,blockUpdateWatcher:new Fc(u,i,{minDelay:o.devBlockUpdateRecheckInterval,http:c,preferredUpdateChannel:o.preferredUpdateChannel}),quickJs:await Oe.getQuickJS()},g=new B.WatchableValue([]),R=await Qs(e,n,g,f);return new Gt(f,a,a.signer,n,g,R.tree,u,R.computable)}}const xc=["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"];async function Vc(s,e={}){const t={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,...e},r=[];xc.forEach(c=>{ks.channel(c).subscribe(l=>{var f;const d=new Date().toISOString();(f=l==null?void 0:l.response)!=null&&f.headers&&(l.response.headers=l.response.headers.map(g=>g.toString())),r.push(JSON.stringify({timestamp:d,event:c,data:l}))})});const o={plPings:[],blockRegistryOverviewChecks:[],blockGARegistryOverviewChecks:[],blockRegistryUiChecks:[],blockGARegistryUiChecks:[],autoUpdateCdnChecks:[]},n=h.plAddressToConfig(s,{defaultRequestTimeout:t.pingTimeoutMs});o.plPings=await ge(t.pingCheckDurationMs,t.maxPingsPerSecond,async()=>{const u=await new h.UnauthenticatedPlClient(n).ping();return JSON.stringify(u).slice(0,t.bodyLimit)+"..."});const a=new h.UnauthenticatedPlClient(n).ll.httpDispatcher;return o.blockRegistryOverviewChecks=await ge(t.blockRegistryDurationMs,t.maxRegistryChecksPerSecond,async()=>await Pe(new URL(t.blockOverviewPath,t.blockRegistryUrl),t,a)),o.blockGARegistryOverviewChecks=await ge(t.blockRegistryDurationMs,t.maxRegistryChecksPerSecond,async()=>await Pe(new URL(t.blockOverviewPath,t.blockGARegistryUrl),t,a)),o.blockRegistryUiChecks=await ge(t.blockRegistryDurationMs,t.maxRegistryChecksPerSecond,async()=>await Pe(new URL(t.blockUiPath,t.blockRegistryUrl),t,a)),o.blockGARegistryUiChecks=await ge(t.blockRegistryDurationMs,t.maxRegistryChecksPerSecond,async()=>await Pe(new URL(t.blockUiPath,t.blockGARegistryUrl),t,a)),o.autoUpdateCdnChecks=await ge(t.autoUpdateCdnDurationMs,t.maxAutoUpdateCdnChecksPerSecond,async()=>await Pe(t.autoUpdateCdnUrl,t,a)),Uc(o,s,t,r)}async function ge(s,e,t){const r=bt(),o=[];for(;Fr(r)<s;){const n=bt();let i;try{i={ok:!0,value:await t()}}catch(u){i={ok:!1,error:u}}const a=Fr(n);o.push({elapsedMs:a,response:i});const c=1e3/e-a;c>0&&await Lr.setTimeout(c)}return o}async function Pe(s,e,t){const{body:r,statusCode:o}=await He.request(s,{dispatcher:t,headersTimeout:e.httpTimeoutMs,bodyTimeout:e.httpTimeoutMs}),n=await r.text();return{statusCode:o,beginningOfBody:n.slice(0,e.bodyLimit)+"..."}}function Uc(s,e,t,r){const o=s.plPings.filter(a=>a.response.ok),n=s.plPings.filter(a=>!a.response.ok),i=[...new Set(o.map(a=>JSON.stringify(a.response.value)))];return`
1
+ "use strict";var Ps=Object.defineProperty;var _t=(r,e)=>(e=Symbol[r])?e:Symbol.for("Symbol."+r),Kt=r=>{throw TypeError(r)};var Rs=(r,e,t)=>e in r?Ps(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var S=(r,e,t)=>Rs(r,typeof e!="symbol"?e+"":e,t);var Ht=(r,e,t)=>{if(e!=null){typeof e!="object"&&typeof e!="function"&&Kt("Object expected");var s;t&&(s=e[_t("asyncDispose")]),s===void 0&&(s=e[_t("dispose")]),typeof s!="function"&&Kt("Object not disposable"),r.push([t,s,e])}else t&&r.push([t]);return e},qt=(r,e,t)=>{var s=typeof SuppressedError=="function"?SuppressedError:function(i,a,c,u){return u=Error(c),u.name="SuppressedError",u.error=i,u.suppressed=a,u},o=i=>e=t?new s(i,e,"An error was suppressed during disposal"):(t=!0,i),n=i=>{for(;i=r.pop();)try{var a=i[1]&&i[1].call(i[2]);if(i[0])return Promise.resolve(a).then(n,c=>(o(c),n()))}catch(c){o(c)}if(t)throw e};return n()};Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const L=require("@platforma-sdk/model"),q=require("@milaboratories/pl-model-middle-layer"),Wt=require("@milaboratories/pl-deployments"),We=require("undici"),W=require("@platforma-sdk/block-tools"),ee=require("node:fs"),K=require("node:path"),Cs=require("yaml"),O=require("@milaboratories/ts-helpers"),ht=require("node:fs/promises"),Es=require("@milaboratories/resolve-helper"),f=require("@milaboratories/pl-client"),_e=require("@milaboratories/pl-tree"),j=require("@milaboratories/computable"),te=require("node:crypto"),E=require("@milaboratories/pl-model-backend"),Nr=require("lru-cache"),ks=require("node:worker_threads"),Br=require("denque"),Os=require("@platforma-sdk/workflow-tengo"),V=require("canonicalize"),$s=require("node:assert"),$e=require("quickjs-emscripten"),Ts=require("@milaboratories/pl-errors"),jr=require("node:timers/promises"),re=require("@milaboratories/pl-drivers"),Is=require("@milaboratories/pframes-rs-node"),Fs=require("node:diagnostics_channel");function As(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const Vr=As(ht);async function zt(r){try{return await Vr.stat(r,{bigint:!0})}catch(e){if(e.code==="ENOENT")return;throw e}}const Ls=[W.RegistryV1.PlPackageYamlConfigFile],Ds=[W.RegistryV1.PlPackageJsonConfigFile],Ct=["backend","dist","tengo","tpl","main.plj.gz"],Et=["config","dist","config.json"],xr=["frontend","dist"],Xt="block-model/dist/config.json",Ns="block-ui/package.json",Bs=[Ct,Et,Ls,Ds,xr];async function js(r){return await zt(K.join(r,...Et))!==void 0||await zt(K.join(r,...Ct))!==void 0}function nt(r,e){const t=Es.tryResolve(r,e);if(t===void 0)throw new Error(`Can't resolve ${e} against ${r}`);return t}async function Yt(r,e){if(K.isAbsolute(r)||(r=K.resolve(r)),await js(r))return{workflow:K.join(r,...Ct),config:K.join(r,...Et),ui:K.join(r,...xr)};{const t=nt(r,Xt),s=nt(r,Xt),o=nt(r,Ns);return{workflow:t,config:s,ui:K.resolve(o,"..","dist")}}}async function Vs(r){try{return await ee.promises.readFile(r,"utf8")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")return;throw e}}async function xs(r){try{return await ee.promises.stat(r,{bigint:!0})}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")return;throw e}}async function kt(r){let e=0n;for(const t of Bs){const s=K.join(r,...t),o=await xs(s);o!==void 0&&e<o.mtimeNs&&(e=o.mtimeNs)}return e.toString()}async function ze(r){const e=await ee.promises.stat(r.components.workflow.main.file,{bigint:!0}),t=await ee.promises.stat(r.components.model.file,{bigint:!0});return(e.mtimeNs>t.mtimeNs?e.mtimeNs:t.mtimeNs).toString()}class Us{constructor(e,t,s){this.v2Provider=e,this.registries=t,this.http=s}async getPackagesForRoot(e){const t=[],s=e.spec;switch(s.type){case"remote-v1":{const o=this.http!==void 0?{dispatcher:this.http}:{},i=await(await We.request(`${s.url}/${W.RegistryV1.GlobalOverviewPath}`,o)).body.json();for(const a of i){const{organization:c,package:u,latestMeta:l,latestVersion:d}=a,h={organization:c,name:u,version:d},g={id:h,meta:{title:l.title??"No title",description:l.description??"No Description",organization:{name:c,url:"https://unknown.com"}},spec:{type:"from-registry-v1",id:h,registryUrl:s.url}};t.push({registryId:e.id,id:h,latestByChannel:{[q.AnyChannel]:g,[q.StableChannel]:g},allVersions:a.allVersions.map(R=>({version:R,channels:[]}))})}return t}case"remote-v2":return(await this.v2Provider.getRegistry(s.url).listBlockPacks()).map(o=>({...o,registryId:e.id}));case"local-dev":for(const o of await ee.promises.readdir(s.path,{withFileTypes:!0})){if(!o.isDirectory())continue;const n=K.join(s.path,o.name),i=await Vs(K.join(n,W.RegistryV1.PlPackageYamlConfigFile));if(i!==void 0){const a=W.RegistryV1.PlPackageConfigData.parse(Cs.parse(i)),c=await kt(n),u={organization:a.organization,name:a.package,version:"DEV"},l={id:u,meta:{title:a.meta.title??"No title",description:a.meta.description??"No Description",organization:{name:a.organization,url:"https://unknown.com"}},spec:{type:"dev-v2",folder:n,mtime:c}};t.push({registryId:e.id,id:u,latestByChannel:{[q.AnyChannel]:l,[q.StableChannel]:l},allVersions:[]})}else{let a=n,c=await W.tryLoadPackDescription(a);if(c===void 0){for(const u of["block","meta"])if(a=K.join(n,u),c=await W.tryLoadPackDescription(a),c!==void 0)break}if(c!==void 0){const u=await ze(c),l={id:c.id,meta:await W.BlockPackMetaEmbedAbsoluteBytes.parseAsync(c.meta),spec:{type:"dev-v2",folder:a,mtime:u}};t.push({registryId:e.id,id:c.id,latestByChannel:{[q.AnyChannel]:l,[q.StableChannel]:l},allVersions:[]})}}}return t;default:return O.assertNever(s)}}async listBlockPacks(){const e=[],t=[];for(const s of this.registries)t.push({...s,status:"online"}),e.push(...await this.getPackagesForRoot(s));return{registries:t,blockPacks:e}}async getOverview(e,t,s){var i;const o=(i=this.registries.find(a=>a.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,s)}}class Ur{constructor(e){S(this,"registries",new Map);this.http=e}getRegistry(e){const t=this.registries.get(e);if(t)return t;const s=new W.RegistryV2Reader(W.folderReaderByUrl(e,this.http));return this.registries.set(e,s),s}}const Gs={type:"remote-v2",url:"https://blocks.pl-open.science/"},Ms={type:"remote-v1",url:"https://block.registry.platforma.bio/releases"},Js={type:"remote-v1",url:"https://block.registry.platforma.bio/dev"},_s={groups:[{id:"default",label:"Default",blocks:[]}]},Ks={stagingRefreshTimestamp:0,blocksInLimbo:[]},Hs={label:"New Project"},qs={name:"UserProject",version:"2"},Gr="SchemaVersion",Mr="1",Ot="ProjectCreated",Te="ProjectLastModified",Ie="ProjectMeta",de="ProjectStructure",Ke="BlockRenderingState",Ws="BlockFrontendState/",zs=/^BlockFrontendState\/(?<blockid>.*)$/;function gt(r){return`${Ws}${r}`}const Xs="BlockArgsAuthor/";function mt(r){return`${Xs}${r}`}const vt="ProjectStructureAuthor";function Ys(r){const e=r.match(zs);if(e!==null)return e.groups.blockid}const Qs="__serviceTemplate_";function yt(r){return`${Qs}${r}`}function J(r,e){return`${r}-${e}`}const Zs=/^(?<blockId>.*)-(?<fieldName>blockPack|blockSettings|prodArgs|currentArgs|prodCtx|prodUiCtx|prodOutput|prodCtxPrevious|prodUiCtxPrevious|prodOutputPrevious|stagingCtx|stagingUiCtx|stagingOutput|stagingCtxPrevious|stagingUiCtxPrevious|stagingOutputPrevious)$/;function eo(r){const e=r.match(Zs);if(e===null)return;const{blockId:t,fieldName:s}=e.groups;return{blockId:t,fieldName:s}}const to="projects",Jr={name:"Projects",version:"1"},ro=r=>f.resourceTypesEqual(r.type,Jr)?r.fields:[];async function so(r,e,t,s){const o=await _e.SynchronizedTreeState.init(r,e,{...s.ops.defaultTreeOptions,pruning:ro},s.logger);return{computable:j.Computable.make(i=>{const a=i.accessor(o.entry()).node(),c=t.getValue(i);if(a===void 0)return;const u=[];for(const l of a.listDynamicFields()){const d=a.traverse(l);if(d===void 0)continue;const h=O.notEmpty(d.getKeyValueAsJson(Ie)),g=O.notEmpty(d.getKeyValueAsJson(Ot)),R=O.notEmpty(d.getKeyValueAsJson(Te));u.push({id:l,rid:d.id,created:new Date(g),lastModified:new Date(R),opened:c.indexOf(d.id)>=0,meta:h})}return u.sort(l=>-l.lastModified.valueOf()),u}).withStableType(),tree:o}}const oo={name:"EphRenderTemplate",version:"1"},no={name:"RenderTemplate",version:"1"};function $t(r,e,t,s,o){if(o.length===0)throw new Error("Zero output names provided");const n=t?r.createEphemeral(oo):r.createStruct(no),i=f.field(n,"template"),a=f.field(n,"inputs");return r.createField(i,"Input",e),r.createField(a,"Input",f.Pl.createPlMap(r,s,t)),r.lockInputs(n),f.Pl.futureRecord(r,n,o,"Output","outputs/")}const io={name:"BContextEnd",version:"1"},ao={name:"BContext",version:"1"},co="id",lo="parent/",uo=["context","result"];function Qt(r,e,t){return $t(r,e,!0,t,uo)}function po(r){const e=r.createEphemeral(io);return r.lock(e),e}function Zt(r,e){if(e.length===0)return po(r);if(e.length===1)return e[0];const t=r.createEphemeral(ao);r.createField(f.field(t,co),"Input",f.Pl.createPlString(r,te.randomUUID()));for(let s=0;s<e.length;s++)r.createField(f.field(t,`${lo}${s}`),"Input",e[s]);return r.lock(t),t}function _r(r,e){const t=new Map,s=(o,n,i)=>{const a=te.createHash("sha256");n.updateCacheKey(o,a,i);const c=a.digest("hex");if(!t.has(c)){const u=n.render(o,r,s,i);t.set(c,u)}return t.get(c)};return s(e.template,Kr,e.hashToSource)}const er={updateCacheKey(r,e,t){e.update(E.PlTemplateLibV1.type.name).update(E.PlTemplateLibV1.type.version).update(r.name).update(r.version).update(ve(r.name,t,r.sourceHash))},render(r,e,t,s){return e.createValue(E.PlTemplateLibV1.type,JSON.stringify(E.PlTemplateLibV1.fromV3Data(r,ve(r.name,s,r.sourceHash)).data))}},Ae={updateCacheKey(r,e,t){e.update(E.PlTemplateSoftwareV1.type.name).update(E.PlTemplateSoftwareV1.type.version).update(r.name).update(r.version).update(ve(r.name,t,r.sourceHash))},render(r,e,t,s){const o=E.PlTemplateSoftwareV1.fromV3Data(r,ve(r.name,s,r.sourceHash)),n=e.createStruct(E.PlTemplateSoftwareV1.type,o.data);return e.setKValue(n,E.PlTemplateSoftwareV1.metaNameKey,JSON.stringify(o.name)),e.lock(n),n}},Kr={updateCacheKey(r,e,t){e.update(E.PlTemplateV1.type.name).update(E.PlTemplateV1.type.version).update(r.hashOverride??"no-override").update(r.name).update(r.version).update(ve(r.name,t,r.sourceHash));const s=o=>(o.sort((n,i)=>n[0]===i[0]?0:n[0]<i[0]?-1:1),o);for(const[o,n]of s(Object.entries(r.libs??{})))e.update("lib:"+o),er.updateCacheKey(n,e,t);for(const[o,n]of s(Object.entries(r.software??{})))e.update("soft:"+o),Ae.updateCacheKey(n,e,t);for(const[o,n]of s(Object.entries(r.assets??{})))e.update("asset:"+o),Ae.updateCacheKey(n,e,t);for(const[o,n]of s(Object.entries(r.templates??{})))e.update("tpl:"+o),this.updateCacheKey(n,e,t)},render(r,e,t,s){const o=e.createStruct(E.PlTemplateV1.type,JSON.stringify(E.PlTemplateV1.fromV3Data(r,ve(r.name,s,r.sourceHash)).data));for(const[a,c]of Object.entries(r.libs??{})){const u=E.PlTemplateV1.libField(o,a);e.createField(u,"Input"),e.setField(u,t(c,er,s))}for(const[a,c]of Object.entries(r.software??{})){const u=E.PlTemplateV1.swField(o,a);e.createField(u,"Input"),e.setField(u,t(c,Ae,s))}for(const[a,c]of Object.entries(r.assets??{})){const u=E.PlTemplateV1.swField(o,a);e.createField(u,"Input"),e.setField(u,t(c,Ae,s))}for(const[a,c]of Object.entries(r.templates??{})){const u=E.PlTemplateV1.tplField(o,a);e.createField(u,"Input"),e.setField(u,t(c,Kr,s))}if(e.lock(o),!r.hashOverride)return o;const n=e.createStruct(E.PlTemplateOverrideV1.type,JSON.stringify(E.PlTemplateOverrideV1.fromV3Data(r))),i=E.PlTemplateOverrideV1.tplField(n);return e.createField(i,"Service"),e.setField(i,o),e.lock(n),n}};function ve(r,e,t){return O.notEmpty(e[t],`trying to get "${r}" source: sources map doesn't contain source hash ${t}`)}function fo(r,e){const t=E.parseTemplate(e.content),s=t.type;switch(s){case"pl.tengo-template.v2":return qr(r,t);case"pl.tengo-template.v3":return _r(r,t);default:O.assertNever(s)}}function ho(r,e){const t=e.data,s=t.type;switch(s){case"pl.tengo-template.v2":return qr(r,t);case"pl.tengo-template.v3":return _r(r,t);default:O.assertNever(s)}}const tr={hash(r,e){e.update(E.PlTemplateLibV1.type.name).update(E.PlTemplateLibV1.type.version).update(r.name).update(r.version).update(r.src)},render(r,e,t){return e.createValue(E.PlTemplateLibV1.type,JSON.stringify(E.PlTemplateLibV1.fromV2Data(r).data))}},Le={hash(r,e){e.update(E.PlTemplateSoftwareV1.type.name).update(E.PlTemplateSoftwareV1.type.version).update(r.name).update(r.version).update(r.src)},render(r,e,t){const s=E.PlTemplateSoftwareV1.fromV2Data(r),o=e.createStruct(E.PlTemplateSoftwareV1.type,s.data);return e.setKValue(o,E.PlTemplateSoftwareV1.metaNameKey,JSON.stringify(s.name)),e.lock(o),o}},Hr={hash(r,e){e.update(E.PlTemplateV1.type.name).update(E.PlTemplateV1.type.version).update(r.hashOverride??"no-override").update(r.name).update(r.version).update(r.src);const t=s=>(s.sort((o,n)=>o[0]===n[0]?0:o[0]<n[0]?-1:1),s);for(const[s,o]of t(Object.entries(r.libs??{})))e.update("lib:"+s),tr.hash(o,e);for(const[s,o]of t(Object.entries(r.software??{})))e.update("soft:"+s),Le.hash(o,e);for(const[s,o]of t(Object.entries(r.assets??{})))e.update("asset:"+s),Le.hash(o,e);for(const[s,o]of t(Object.entries(r.templates??{})))e.update("tpl:"+s),this.hash(o,e)},render(r,e,t){const s=e.createStruct(E.PlTemplateV1.type,JSON.stringify(E.PlTemplateV1.fromV2Data(r).data));for(const[i,a]of Object.entries(r.libs??{})){const c=E.PlTemplateV1.libField(s,i);e.createField(c,"Input"),e.setField(c,t(a,tr))}for(const[i,a]of Object.entries(r.software??{})){const c=E.PlTemplateV1.swField(s,i);e.createField(c,"Input"),e.setField(c,t(a,Le))}for(const[i,a]of Object.entries(r.assets??{})){const c=E.PlTemplateV1.swField(s,i);e.createField(c,"Input"),e.setField(c,t(a,Le))}for(const[i,a]of Object.entries(r.templates??{})){const c=E.PlTemplateV1.tplField(s,i);e.createField(c,"Input"),e.setField(c,t(a,Hr))}if(e.lock(s),!r.hashOverride)return s;const o=e.createStruct(E.PlTemplateOverrideV1.type,JSON.stringify(E.PlTemplateOverrideV1.fromV2Data(r))),n=E.PlTemplateOverrideV1.tplField(o);return e.createField(n,"Service"),e.setField(n,s),e.lock(o),o}};function qr(r,e){const t=new Map,s=(o,n)=>{const i=te.createHash("sha256");n.hash(o,i);const a=i.digest("hex");if(!t.has(a)){const c=n.render(o,r,s);t.set(a,c)}return t.get(a)};return s(e,Hr)}const Wr={name:"TengoTemplateGet",version:"1"},zr="registry",Xr="templateURI",Yr="template",go={name:"TengoTemplatePack",version:"1"},mo={name:"TengoTemplatePackConvert",version:"1"},vo="templatePack",yo="template";async function Qr(r){switch(r.type){case"from-file":return{type:"explicit",content:await ee.promises.readFile(r.path)};case"from-registry":case"explicit":return r;case"prepared":return r;default:return O.assertNever(r)}}function wo(r,e){const t=r.createStruct(Wr),s=f.field(t,zr),o=f.field(t,Xr),n=f.field(t,Yr);return r.setField(s,r.createValue(f.Pl.JsonString,Buffer.from(JSON.stringify(e.registry)))),r.setField(o,r.createValue(f.Pl.JsonString,Buffer.from(JSON.stringify(e.path)))),n}function Xe(r,e){switch(e.type){case"from-registry":return wo(r,e);case"explicit":return fo(r,e);case"prepared":return ho(r,e);default:return O.assertNever(e)}}const Tt={name:"Frontend/FromUrl",version:"1"},It={name:"Frontend/FromFolder",version:"1"};function So(r,e){switch(e.type){case"url":return r.createValue(Tt,JSON.stringify({url:e.url}));case"local":return r.createValue(It,JSON.stringify({path:e.path,signature:e.signature}));default:return O.assertNever(e)}}class bo{constructor(){S(this,"nextMessageId",0);S(this,"worker");S(this,"pendingRequests",new Map);const e=typeof global<"u"&&"__WORKER_PATH__"in global?global.__WORKER_PATH__:K.resolve(void 0,"worker.js"),t=this.worker=new ks.Worker(e,{workerData:{}});t.on("message",({id:s,data:o,error:n})=>{const{resolve:i,reject:a}=this.pendingRequests.get(s);this.pendingRequests.delete(s),n?a(new Error(n)):i(o)}),t.on("error",s=>{console.error("Worker error",s),this.rejectAllPendingRequests(s)})}rejectAllPendingRequests(e){Array.from(this.pendingRequests.values()).map(({reject:t})=>{t(e)})}async process(e,...t){return new Promise((s,o)=>{const n=++this.nextMessageId;this.pendingRequests.set(n,{resolve:s,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 Po={name:"BlockPackCustom",version:"1"},Zr="template",es="frontend";function rr(r){return r.endsWith("/")?r:`${r}/`}function Ro(r){return Buffer.from(r).toString("utf8")}function De(r){return JSON.parse(Ro(r))}class Co{constructor(e,t,s){S(this,"remoteContentCache",new Nr.LRUCache({max:500,maxSize:128*1024*1024,fetchMethod:async e=>{const t=this.http!==void 0?{dispatcher:this.http}:{};return await(await We.request(e,t)).body.arrayBuffer()},sizeCalculation:e=>e.byteLength}));this.v2RegistryProvider=e,this.signer=t,this.http=s}async getBlockConfigContainer(e){switch(e.type){case"explicit":return e.config;case"prepared":return e.config;case"dev-v1":{const t=await Yt(e.folder),s=await ee.promises.readFile(t.config,{encoding:"utf-8"});return JSON.parse(s)}case"dev-v2":{const t=await W.loadPackDescription(e.folder),s=await ee.promises.readFile(t.components.model.file,{encoding:"utf-8"});return JSON.parse(s)}case"from-registry-v1":{const t=`${rr(e.registryUrl)}${W.RegistryV1.packageContentPrefix({organization:e.id.organization,package:e.id.name,version:e.id.version})}`,s=await this.remoteContentCache.forceFetch(`${t}/config.json`);return De(s)}case"from-registry-v2":{const s=await this.v2RegistryProvider.getRegistry(e.registryUrl).getComponents(e.id),o=await this.remoteContentCache.forceFetch(s.model.url);return De(o)}default:return O.assertNever(e)}}async prepare(e){var o=[];try{if(e.type==="prepared")return e;const t=await this.prepareWithoutUnpacking(e);const s=Ht(o,new bo,!0);return{...t,type:"prepared",template:{type:"prepared",data:await s.process("parseTemplate",t.template.content)}}}catch(n){var i=n,a=!0}finally{var c=qt(o,i,a);c&&await c}}async prepareWithoutUnpacking(e){switch(e.type){case"explicit":return e;case"dev-v1":{const t=await Yt(e.folder),s=await ee.promises.readFile(t.workflow),o=JSON.parse(await ee.promises.readFile(t.config,"utf-8")),n=t.ui;return{type:"explicit",template:{type:"explicit",content:s},config:o,frontend:{type:"local",path:n,signature:this.signer.sign(n)},source:e}}case"dev-v2":{const t=await W.loadPackDescription(e.folder),s=JSON.parse(await ee.promises.readFile(t.components.model.file,{encoding:"utf-8"})),o=await ee.promises.readFile(t.components.workflow.main.file),n=t.components.ui.folder,i={...e};return e.mtime===void 0&&(i.mtime=await ze(t)),{type:"explicit",template:{type:"explicit",content:o},config:s,frontend:{type:"local",path:n,signature:this.signer.sign(n)},source:i}}case"from-registry-v1":{const t=`${rr(e.registryUrl)}${W.RegistryV1.packageContentPrefix({organization:e.id.organization,package:e.id.name,version:e.id.version})}`,s=`${t}/template.plj.gz`,o=await this.remoteContentCache.forceFetch(s),n=new Uint8Array(o),i=await this.remoteContentCache.forceFetch(`${t}/config.json`),a=De(i);return{type:"explicit",template:{type:"explicit",content:n},config:a,frontend:{type:"url",url:`${t}/frontend.tgz`},source:e}}case"from-registry-v2":{const s=await this.v2RegistryProvider.getRegistry(e.registryUrl).getComponents(e.id),o=async()=>De(await this.remoteContentCache.forceFetch(s.model.url)),n=async()=>await this.remoteContentCache.forceFetch(s.workflow.main.url),[i,a]=await Promise.all([o(),n()]);return{type:"explicit",template:{type:"explicit",content:Buffer.from(a)},config:i,frontend:{type:"url",url:s.ui.url},source:e}}default:return O.assertNever(e)}}}function Eo(r,e){const t={config:e.config,source:e.source},s=r.createStruct(Po,JSON.stringify(t));return r.createField(f.field(s,Zr),"Input",Xe(r,e.template)),r.createField(f.field(s,es),"Input",So(r,e.frontend)),r.lock(s),s}function sr(r,e){switch(e.type){case"prepared":return Eo(r,e);default:return O.assertNever(e.type)}}function Ne(r,e){return{__isRef:!0,blockId:r,name:e}}function ko(r){return typeof r=="object"&&r!==null&&"__isRef"in r&&r.__isRef===!0&&"blockId"in r&&"name"in r}function wt(r,e,t){const s=typeof e;switch(s){case"function":case"bigint":case"number":case"string":case"boolean":case"symbol":case"undefined":return;case"object":if(e===null)return;if(ko(e))t===void 0||t.has(e.blockId)?r.upstreams.add(e.blockId):r.missingReferences=!0;else if(Array.isArray(e))for(const o of e)wt(r,o,t);else for(const[,o]of Object.entries(e))wt(r,o,t);return;default:O.assertNever(s)}}function Oo(r,e){const t={upstreams:new Set,missingReferences:!1};return wt(t,r,e),t}function ae(r){return{*[Symbol.iterator](){for(const e of r.groups)for(const t of e.blocks)yield t}}}class ts{constructor(e){S(this,"nodes");this.nodes=e}traverseIds(e,...t){const s=new Set;return this.traverse(e,t,o=>s.add(o.id)),s}traverseIdsExcludingRoots(e,...t){const s=this.traverseIds(e,...t);for(const o of t)s.delete(o);return s}traverse(e,t,s){let o=[...t];const n=new Set(o);for(;o.length>0;){const i=[];for(const a of o){const c=this.nodes.get(a);s(c),c[e].forEach(u=>{n.has(u)||(n.add(u),i.push(u))})}o=i}}}function St(r){const e=new Map;let t;for(const{id:s}of ae(r)){const o={id:s,missingReferences:!1};e.set(s,o),t===void 0?o.upstream=new Set:(o.upstream=new Set([t.id]),t.downstream=new Set([o.id])),t=o}return t!==void 0&&(t.downstream=new Set),new ts(e)}function Je(r,e){const t=new Map,s=new Set;for(const{id:o}of ae(r)){const n=e(o);if(n===void 0)continue;const i=Oo(n,s),a={id:o,missingReferences:i.missingReferences,upstream:i.upstreams,downstream:new Set};t.set(o,a),i.upstreams.forEach(c=>t.get(c).downstream.add(o)),s.add(o)}return new ts(t)}function $o(r,e){if(r.size!==e.size)return!1;for(const t of r)if(!e.has(t))return!1;return!0}function bt(r,e){if(r.size>e.size)return bt(e,r);for(const t of r)if(e.has(t))return!0;return!1}function or(r,e){const t=new Set,s=new Set,o=new Set;return r.nodes.forEach(n=>{const i=e.nodes.get(n.id);i===void 0?t.add(n.id):(!$o(n.upstream,i.upstream)||bt(n.upstream,o))&&o.add(n.id)}),e.nodes.forEach(n=>{r.nodes.has(n.id)?bt(n.upstream,o)&&o.add(n.id):s.add(n.id)}),{onlyInA:t,onlyInB:s,different:o}}let it;async function rs(){if(it===void 0){const r=await Qr(Os.Templates["pframes.export-pframe-for-ui"]);if(r.type!=="explicit")throw new Error("Unexpected prepared template type.");const e=te.createHash("sha256").update(r.content).digest("hex");it={spec:r,hash:e}}return it}function To(r,e,t){return $t(r,e,!0,{pf:t},["result"]).result}function at(r,e){let t=!1,s,o;return()=>{if(!t)return t=!0,s=r(),o=e(),o;const n=r();return s!==n&&(s=n,o=e()),e()}}class nr{constructor(e,t){S(this,"currentInputsC",at(()=>this.fields.currentArgs.modCount,()=>JSON.parse(Buffer.from(this.fields.currentArgs.value).toString())));S(this,"actualProductionInputsC",at(()=>{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 JSON.parse(Buffer.from(e).toString())}));S(this,"productionStaleC",at(()=>{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}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 currentInputs(){return this.currentInputsC()}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 actualProductionInputs(){return this.actualProductionInputsC()}getTemplate(e){return e.getFutureFieldValue(f.Pl.unwrapHolder(e,this.fields.blockPack.ref),Zr,"Input")}}const Io=r=>{throw new Error(`No new block info for ${r}`)};class He{constructor(e,t,s,o,n,i,a,c,u,l,d,h){S(this,"globalModCount",0);S(this,"fieldsChanged",!1);S(this,"lastModifiedChanged",!1);S(this,"structureChanged",!1);S(this,"metaChanged",!1);S(this,"renderingStateChanged",!1);S(this,"changedBlockFrontendStates",new Set);S(this,"blocksWithChangedInputs",new Set);S(this,"stagingGraph");S(this,"pendingProductionGraph");S(this,"actualProductionGraph");this.rid=e,this.tx=t,this.author=s,this.schema=o,this.lastModified=n,this.meta=i,this.struct=a,this.renderingState=c,this.blocksInLimbo=u,this.blockInfos=l,this.blockFrontendStates=d,this.ctxExportTplHolder=h}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(q.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=St(this.struct)),this.stagingGraph}getPendingProductionGraph(){return this.pendingProductionGraph===void 0&&(this.pendingProductionGraph=Je(this.struct,e=>this.getBlockInfo(e).currentInputs)),this.pendingProductionGraph}getActualProductionGraph(){return this.actualProductionGraph===void 0&&(this.actualProductionGraph=Je(this.struct,e=>this.getBlockInfo(e).actualProductionInputs)),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(f.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,s){const o=f.field(this.rid,J(e,t));if(s.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",s.ref):this.tx.setField(o,s.ref),this.getBlockInfo(e).fields[t]={modCount:this.globalModCount++,...s},this.fieldsChanged=!0}setBlockField(e,t,s,o,n){this.setBlockFieldObj(e,t,{ref:s,status:o,value:n})}deleteBlockFields(e,...t){let s=!1;const o=this.getBlockInfo(e);for(const n of t){const i=o.fields;n in i&&(this.tx.removeField(f.field(this.rid,J(e,n))),delete i[n],this.fieldsChanged=!0,s=!0)}return s}updateLastModified(){this.lastModified=Date.now(),this.lastModifiedChanged=!0}resetStagingRefreshTimestamp(){this.renderingState.stagingRefreshTimestamp=Date.now(),this.renderingStateChanged=!0}resetStaging(e){var s,o,n;const t=this.getBlockInfo(e).fields;((s=t.stagingOutput)==null?void 0:s.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 s,o,n;const t=this.getBlockInfo(e).fields;((s=t.prodOutput)==null?void 0:s.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 s,o;const t=this.getBlockInfo(e).fields;return((s=t.prodOutput)==null?void 0:s.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:s,args:o}of e){const n=this.getBlockInfo(s);JSON.parse(o);const i=Buffer.from(o);if(Buffer.compare(n.fields.currentArgs.value,i)===0)continue;const a=this.tx.createValue(f.Pl.JsonObject,i);this.setBlockField(s,"currentArgs",a,"Ready",i),this.blocksWithChangedInputs.add(s),t.push(s)}this.getStagingGraph().traverse("downstream",t,({id:s})=>this.resetStaging(s)),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(s=>{var n;const o=this.getBlockInfo(s);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(f.Pl.unwrapHolder(this.tx,o.fields.prodCtx.ref))}),Zt(this.tx,t)}createStagingCtx(e){const t=[];return e.forEach(s=>{var n,i;const o=this.getBlockInfo(s);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(f.Pl.unwrapHolder(this.tx,o.fields.stagingCtx.ref)),((i=o.fields.prodCtx)==null?void 0:i.ref)!==void 0&&t.push(f.Pl.unwrapHolder(this.tx,o.fields.prodCtx.ref))}),Zt(this.tx,t)}exportCtx(e){return To(this.tx,f.Pl.unwrapHolder(this.tx,this.ctxExportTplHolder),e)}renderStagingFor(e){this.resetStaging(e);const t=this.getBlockInfo(e),s=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=Qt(this.tx,o,{args:t.fields.currentArgs.ref,blockId:this.tx.createValue(f.Pl.JsonString,JSON.stringify(e)),isProduction:this.tx.createValue(f.Pl.JsonBool,JSON.stringify(!1)),context:s});this.setBlockField(e,"stagingCtx",f.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),s=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=Qt(this.tx,o,{args:t.fields.currentArgs.ref,blockId:this.tx.createValue(f.Pl.JsonString,JSON.stringify(e)),isProduction:this.tx.createValue(f.Pl.JsonBool,JSON.stringify(!0)),context:s});this.setBlockField(e,"prodCtx",f.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=Io){const s=this.getStagingGraph(),o=this.getActualProductionGraph(),n=St(e),i=Je(e,u=>{var l;return(l=this.blockInfos.get(u))==null?void 0:l.actualProductionInputs}),a=or(s,n),c=or(o,i);for(const u of a.onlyInA){const{fields:l}=this.getBlockInfo(u);this.deleteBlockFields(u,...Object.keys(l)),this.blockInfos.delete(u),this.blocksInLimbo.delete(u)&&(this.renderingStateChanged=!0),this.blockFrontendStates.delete(u)&&this.changedBlockFrontendStates.add(u)}for(const u of a.onlyInB){const l=new nr(u,{});this.blockInfos.set(u,l);const d=t(u),h=sr(this.tx,d.blockPack);this.setBlockField(u,"blockPack",f.Pl.wrapInHolder(this.tx,h),"NotReady"),this.setBlockFieldObj(u,"blockSettings",this.createJsonFieldValue(q.InitialBlockSettings)),this.setBlockFieldObj(u,"currentArgs",this.createJsonFieldValueByContent(d.args)),d.uiState&&(this.blockFrontendStates.set(u,d.uiState),this.changedBlockFrontendStates.add(u)),l.check()}for(const u of a.different)this.resetStaging(u);o.traverse("downstream",[...c.different],u=>{this.resetOrLimboProduction(u.id)}),(a.onlyInB.size>0||a.onlyInA.size>0||a.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,s){const o=this.structure;if(s===void 0)o.groups[o.groups.length-1].blocks.push(e);else{let n=!1;for(const i of o.groups){const a=i.blocks.findIndex(c=>c.id===s);if(!(a<0)){i.blocks.splice(a,0,e),n=!0;break}}if(!n)throw new Error(`Can't find element with id: ${s}`)}this.updateStructure(o,n=>{if(n!==e.id)throw new Error("Unexpected");return t})}deleteBlock(e){const t=this.structure;let s=!1;for(const o of t.groups){const n=o.blocks.findIndex(i=>i.id===e);if(!(n<0)){o.blocks.splice(n,1),s=!0;break}}if(!s)throw new Error(`Can't find element with id: ${e}`);this.updateStructure(t)}migrateBlockPack(e,t,s){const o=this.getBlockInfo(e);this.setBlockField(e,"blockPack",f.Pl.wrapInHolder(this.tx,sr(this.tx,t)),"NotReady"),s!==void 0?(this.setArgs([{blockId:e,args:s.args}]),this.setUiState(e,s.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 s=new Set(e),o=this.getPendingProductionGraph();if(t)o.traverse("upstream",e,a=>{s.add(a.id)});else for(const a of s){const c=o.nodes.get(a);if(c===void 0)throw new Error(`Can't find block with id: ${a}`);for(const u of c.upstream)if(!s.has(u))throw new Error("Can't render blocks not including all upstreams.")}const n=new Set;for(const a of ae(this.structure)){if(!s.has(a.id))continue;let c=this.getBlockInfo(a.id).requireProductionRendering||this.blocksInLimbo.has(a.id);if(!c){for(const u of o.nodes.get(a.id).upstream)if(n.has(u)){c=!0;break}}c&&(this.renderProductionFor(a.id),n.add(a.id))}const i=[...n];return o.traverse("downstream",i,a=>{n.has(a.id)||this.resetOrLimboProduction(a.id)}),this.getStagingGraph().traverse("downstream",i,({id:a})=>{i[0]!==a&&this.resetStaging(a)}),n.size>0&&this.updateLastModified(),n}stopProduction(...e){var i,a;const t=this.getActualProductionGraph(),s=new Br(e),o=new Set(e),n=[];for(;!s.isEmpty();){const c=s.shift(),u=this.getBlockInfo(c).fields;if(!(((i=u.prodOutput)==null?void 0:i.status)==="Ready"&&((a=u.prodCtx)==null?void 0:a.status)==="Ready")&&this.deleteBlockFields(c,"prodOutput","prodCtx","prodUiCtx","prodArgs")){n.push(c);for(const l of t.traverseIdsExcludingRoots("downstream",c))o.has(l)||(s.push(l),o.add(l))}}for(const c of t.traverseIdsExcludingRoots("downstream",...n))this.resetOrLimboProduction(c)}traverseWithStagingLag(e){const t=new Map;this.getStagingGraph().nodes.forEach(o=>{let i=this.getBlockInfo(o.id).stagingRendered?0:1;o.upstream.forEach(a=>{const c=t.get(a);c!==0&&(i=Math.max(c+1,i))}),e(o.id,i),t.set(o.id,i)})}refreshStagings(e){const t=Date.now()-this.renderingState.stagingRefreshTimestamp,s=e===void 0?void 0:1+Math.max(0,t*e/1e3);let o=0;this.traverseWithStagingLag((n,i)=>{i!==0&&(s===void 0||i<=s)&&(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 s,o,n,i;((s=t.fields.prodCtx)==null?void 0:s.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,mt(t)):this.tx.setKValue(this.rid,mt(t),e);(this.metaChanged||this.structureChanged)&&(e===void 0?this.tx.deleteKValue(this.rid,vt):this.tx.setKValue(this.rid,vt,e))}save(){if(this.wasModified){this.lastModifiedChanged&&this.tx.setKValue(this.rid,Te,JSON.stringify(this.lastModified)),this.structureChanged&&this.tx.setKValue(this.rid,de,JSON.stringify(this.struct)),this.renderingStateChanged&&this.tx.setKValue(this.rid,Ke,JSON.stringify({...this.renderingState,blocksInLimbo:[...this.blocksInLimbo]})),this.metaChanged&&this.tx.setKValue(this.rid,Ie,JSON.stringify(this.meta));for(const e of this.changedBlockFrontendStates){const t=this.blockFrontendStates.get(e);t===void 0?this.tx.deleteKValue(this.rid,gt(e)):this.tx.setKValue(this.rid,gt(e),t)}this.assignAuthorMarkers()}}static async load(e,t,s){const o=e.getResourceData(t,!0),n=e.getKValueJson(t,Gr),i=e.getKValueJson(t,Te),a=e.getKValueJson(t,Ie),c=e.getKValueJson(t,de),u=e.getKValueJson(t,Ke),l=e.listKeyValuesString(t),[d,h,g,R,m,{stagingRefreshTimestamp:U,blocksInLimbo:N},x]=await Promise.all([o,n,i,a,c,u,l]);if(h!==Mr)throw new Error(`Can't act on this project resource because it has a wrong schema version: ${h}`);const F=new Map;for(const p of d.fields){const v=eo(p.name);if(v===void 0)continue;let w=F.get(v.blockId);w===void 0&&(w={id:v.blockId,fields:{}},F.set(v.blockId,w)),w.fields[v.fieldName]=f.isNullResourceId(p.value)?{modCount:0}:{modCount:0,ref:p.value}}const _=await rs(),pe=yt(_.hash),B=d.fields.find(p=>p.name===pe);let Q;B!==void 0?Q=f.ensureResourceIdNotNull(B.value):(Q=f.Pl.wrapInHolder(e,Xe(e,_.spec)),e.createField(f.field(t,yt(_.hash)),"Dynamic",Q));const le={stagingRefreshTimestamp:U},X=new Set(N),H=new Map;for(const p of x){const v=Ys(p.key);v!==void 0&&H.set(v,p.value)}const M=[];F.forEach(({fields:p})=>{for(const[,v]of Object.entries(p))if(v.ref!==void 0){if(!f.isResource(v.ref)||f.isResourceRef(v.ref))throw new Error("unexpected behaviour");M.push([v,e.getResourceData(v.ref,!1)])}});for(const[p,v]of M){const w=await v;p.value=w.data,f.isNotNullResourceId(w.error)?p.status="Error":w.resourceReady||f.isNotNullResourceId(w.originalResourceId)?p.status="Ready":p.status="NotReady"}const Z=new Map;F.forEach(({id:p,fields:v})=>Z.set(p,new nr(p,v)));const fe=new Set;for(const p of ae(m)){if(!Z.has(p.id))throw new Error(`Inconsistent project structure: no inputs for ${p.id}`);fe.add(p.id)}Z.forEach(p=>{if(!fe.has(p.id))throw new Error(`Inconsistent project structure: no structure entry for ${p.id}`);p.check()});const y=new He(t,e,s,h,g,R,m,le,X,Z,H,Q);return y.fixProblemsAndMigrate(),y}}async function Fo(r,e=Hs){const t=r.createEphemeral(qs);r.lock(t);const s=String(Date.now());r.setKValue(t,Gr,JSON.stringify(Mr)),r.setKValue(t,Ot,s),r.setKValue(t,Te,s),r.setKValue(t,Ie,JSON.stringify(e)),r.setKValue(t,de,JSON.stringify(_s)),r.setKValue(t,Ke,JSON.stringify(Ks));const o=await rs();return r.createField(f.field(t,yt(o.hash)),"Dynamic",f.Pl.wrapInHolder(r,Xe(r,o.spec))),t}async function Be(r,e,t){return se(r,e,void 0,t)}async function se(r,e,t,s){if(r instanceof f.PlClient)return await r.withWriteTx("ProjectAction",async o=>{const n=await He.load(o,e,t),i=await s(n);return n.wasModified&&(n.save(),await o.commit()),i});{const o=await He.load(r,e,t),n=await s(o);return o.save(),n}}function*Ao(r){switch(r.type){case"Json":return;case"JsonPartitioned":for(const[,e]of Object.entries(r.parts))yield e;return;case"BinaryPartitioned":for(const[,{index:e,values:t}]of Object.entries(r.parts))yield e,yield t;return;default:O.assertNever(r)}}function ir(r,e){return Object.fromEntries(Object.entries(r).map(([t,s])=>[t,e(s,t)]))}function Lo(r,e){switch(r.type){case"Json":return{...r};case"JsonPartitioned":return{...r,parts:ir(r.parts,e)};case"BinaryPartitioned":return{...r,parts:ir(r.parts,t=>({index:e(t.index),values:e(t.values)}))};default:O.assertNever(r)}}const Do=f.resourceType("PColumnData/JsonPartitioned","1"),No=f.resourceType("PColumnData/Partitioned/JsonPartitioned","1"),Bo=f.resourceType("PColumnData/BinaryPartitioned","1"),jo=f.resourceType("PColumnData/Partitioned/BinaryPartitioned","1"),Vo=f.resourceType("PColumnData/Json","1");function xo(r){if(!r.getIsReadyOrError())throw new Error("Data not ready.");const e=r.getDataAsJson();if(e===void 0)throw new Error("unexpected data info structure, no resource data");if(f.resourceTypesEqual(r.resourceType,Vo)){const t=e;return{type:"Json",keyLength:t.keyLength,data:t.data}}else if(f.resourceTypesEqual(r.resourceType,Do)){const t=e,s=Object.fromEntries(r.listInputFields().map(o=>[o,r.traverse({field:o,errorIfFieldNotSet:!0}).resourceInfo]));return{type:"JsonPartitioned",partitionKeyLength:t.partitionKeyLength,parts:s}}else if(f.resourceTypesEqual(r.resourceType,No)){const t=e,s={};for(const o of r.listInputFields()){const n=r.traverse({field:o,errorIfFieldNotSet:!0}),i=n.listInputFields();if(i===void 0)throw new Error(`no partition keys for super key ${o}`);for(const a of i){const c=JSON.stringify([...JSON.parse(o),...JSON.parse(a)]);s[c]=n.traverse({field:a,errorIfFieldNotSet:!0}).resourceInfo}}return{type:"JsonPartitioned",partitionKeyLength:t.superPartitionKeyLength+t.partitionKeyLength,parts:s}}else if(f.resourceTypesEqual(r.resourceType,Bo)){const t=e,s={};for(const o of r.listInputFields())if(o.endsWith(".index")){const n=o.slice(0,o.length-6);let i=s[n];i===void 0&&(i={},s[n]=i),i.index=r.traverse({field:o,errorIfFieldNotSet:!0}).resourceInfo}else if(o.endsWith(".values")){const n=o.slice(0,o.length-7);let i=s[n];i===void 0&&(i={},s[n]=i),i.values=r.traverse({field:o,errorIfFieldNotSet:!0}).resourceInfo}else throw new Error(`unrecognized part field name: ${o}`);for(const[o,n]of Object.entries(s)){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:s}}else if(f.resourceTypesEqual(r.resourceType,jo)){const t=e,s={};for(const o of r.listInputFields()){const n=r.traverse({field:o,errorIfFieldNotSet:!0}),i=n.listInputFields();if(i===void 0)throw new Error(`no partition keys for super key ${o}`);for(const a of i)if(a.endsWith(".index")){const c=a.slice(0,a.length-6),u=JSON.stringify([...JSON.parse(o),...JSON.parse(c)]);let l=s[u];l===void 0&&(l={},s[u]=l),s[u].index=n.traverse({field:a,errorIfFieldNotSet:!0}).resourceInfo}else if(a.endsWith(".values")){const c=a.slice(0,a.length-7),u=JSON.stringify([...JSON.parse(o),...JSON.parse(c)]);let l=s[u];l===void 0&&(l={},s[u]=l),s[u].values=n.traverse({field:a,errorIfFieldNotSet:!0}).resourceInfo}else throw new Error(`unrecognized part field name: ${a}`)}return{type:"BinaryPartitioned",partitionKeyLength:t.superPartitionKeyLength+t.partitionKeyLength,parts:s}}throw new Error(`unsupported resource type: ${f.resourceTypeToString(r.resourceType)}`)}function Uo(r,e){const t=r.axesSpec.length,s={};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}`);s[JSON.stringify(o)]=n}return{type:"Json",keyLength:t,data:s}}function Go(r,e){const t=te.createHash("sha256");return t.update(V(r)),t.update(String(f.isNullResourceId(e.originalId)?e.id:e.originalId)),t.digest().toString("hex")}function ar(r,e){return V({__isRef:!0,blockId:r,name:e})}function Mo(r,e){return V({resolvePath:r,name:e})}function ss(r,e=!0,t=!1,s=""){var a,c,u;const o=/^(?<name>.*)\.(?<type>spec|data)$/,n=new Map;for(const l of r.listInputFields()){const d=l.match(o);if(!d){if(e)throw new Error(`unexpected field name ${l}`);continue}let h=O.notEmpty((a=d.groups)==null?void 0:a.name);if(!h.startsWith(s)){if(e)throw new Error(`unexpected field name ${l}`);continue}h=h.slice(s.length);const g=O.notEmpty((c=d.groups)==null?void 0:c.type);let R=n.get(h);switch(R===void 0&&(R={},n.set(h,R)),g){case"spec":R.spec=(u=r.traverse({field:l,ignoreError:t,pureFieldErrorToUndefined:t}))==null?void 0:u.getDataAsJson();break;case"data":R.hasData=!0,R.data=()=>r.traverseOrError({field:l,ignoreError:t});break}}const i=r.getInputsLocked();if(i)for(const[,l]of n)l.data===void 0&&(l.hasData=!1);return{locked:i,results:n}}function Jo(r,e=!0,t="",s){if(!r.getIsReadyOrError())throw new Error("resource is not ready");const o=ss(r,e,!1,t);$s(o.locked);const n={};for(const[i,a]of o.results){if(a.spec===void 0)throw new Error(`no spec for key ${i}`);if(a.hasData!==!0||a.data===void 0)throw new Error(`no data for key ${i}`);const c=a.data();if(c===void 0)throw new Error(`no data for key ${i}`);if(!c.ok)throw c.error;n[i]={id:s.length===0?Go(a.spec,c.value):Mo(s,i),spec:a.spec,data:c.value}}return n}class Ft{constructor(e,t){S(this,"allSpecsAvailable");this.ctx=e,this.blocks=t;let s=!0;e:for(const o of t.values())for(const n of[o.prod,o.staging])if(n!==void 0){if(!n.locked){s=!1;break e}for(const i of n.results.values())if(i.spec===void 0){s=!1;break e}}this.allSpecsAvailable=s}getSpecByRef(e,t){var n,i,a,c,u,l;const s=this.blocks.get(e);if(s===void 0)return;let o=(a=(i=(n=s.prod)==null?void 0:n.results)==null?void 0:i.get(t))==null?void 0:a.spec;if(o!==void 0||(o=(l=(u=(c=s.staging)==null?void 0:c.results)==null?void 0:u.get(t))==null?void 0:l.spec,o!==void 0))return o;s.staging===void 0?this.ctx.markUnstable(`staging_not_rendered:${e}`):s.staging.locked?s.prod!==void 0&&!s.prod.locked&&this.ctx.markUnstable(`prod_not_locked:${e}`):this.ctx.markUnstable(`staging_not_locked:${e}`)}getDataOrErrorByRef(e,t){var i,a,c;const s=this.blocks.get(e);if(s===void 0)return;const o=(a=(i=s.prod)==null?void 0:i.results)==null?void 0:a.get(t),n=(c=o==null?void 0:o.data)==null?void 0:c.call(o);if(o!==void 0&&o.spec!==void 0&&n!==void 0)return L.mapValueInVOE(n,u=>({id:ar(e,t),spec:o.spec,data:u}));o!==void 0&&this.ctx.markUnstable(`no_data:${e}:${t}`),s.prod!==void 0&&!s.prod.locked&&this.ctx.markUnstable(`prod_not_locked:${e}`)}getDataByRef(e,t){const s=this.getDataOrErrorByRef(e,t);if(!(s===void 0||!s.ok))return s.value}getData(){const e=this.getDataWithErrors(),t=[];for(const s of e.entries)s.obj.id!==void 0&&s.obj.data.ok&&t.push({ref:s.ref,obj:{id:s.obj.id,spec:s.obj.spec,data:s.obj.data.value}});return{entries:t,isComplete:e.isComplete,instabilityMarker:e.instabilityMarker}}getDataWithErrors(){const e=[];let t=!0,s;const o=i=>{s===void 0&&(s=i),t=!1},n=(i,a,c)=>{if(c.spec!==void 0&&c.hasData===!0&&c.data!==void 0){const u=c.data();u!==void 0?e.push({ref:Ne(i,a),obj:{id:u.ok?ar(i,a):void 0,spec:c.spec,data:u}}):o(`no_data:${i}:${a}`)}};for(const[i,a]of this.blocks){const c=new Set;if(a.prod!==void 0){a.prod.locked||o(`prod_not_locked:${i}`);for(const[u,l]of a.prod.results)c.add(u),n(i,u,l)}if(a.staging!==void 0){a.staging.locked||o(`staging_not_locked:${i}`);for(const[u,l]of a.staging.results)c.has(u)||n(i,u,l)}}return{entries:e,isComplete:t,instabilityMarker:s}}getSpecs(){const e=[];let t=!0,s;const o=n=>{s===void 0&&(s=n),t=!1};for(const[n,i]of this.blocks){const a=new Set;if(i.staging!==void 0){i.staging.locked||o(`staging_not_locked:${n}`);for(const[c,u]of i.staging.results)u.spec!==void 0&&(e.push({ref:Ne(n,c),obj:u.spec}),a.add(c))}else o(`staging_not_rendered:${n}`);if(i.prod!==void 0){i.prod.locked||o(`prod_not_locked:${n}`);for(const[c,u]of i.prod.results)a.has(c)||u.spec!==void 0&&e.push({ref:Ne(n,c),obj:u.spec})}}return{entries:e,isComplete:t,instabilityMarker:s}}calculateOptions(e){const t=[];for(const s of this.blocks.values()){const o=new Set,n=i=>{for(const[a,c]of i.results)o.has(a)||c.spec===void 0||(o.add(a),L.executePSpecPredicate(e,c.spec)&&t.push({label:s.info.label+" / "+a,ref:Ne(s.info.id,a),spec:c.spec}))};s.staging!==void 0&&n(s.staging),s.prod!==void 0&&n(s.prod)}return t}static create(e,t,s){const o=e.accessor(t).node(),n=O.notEmpty(o.getKeyValueAsJson(de)),a=St(n).traverseIds("upstream",s),c=new Map;for(const u of ae(n)){if(!a.has(u.id))continue;const l=cr(o.traverse({field:J(u.id,"prodCtx"),ignoreError:!0,pureFieldErrorToUndefined:!0,stableIfNotFound:!0})!==void 0,o.traverseOrError({field:J(u.id,"prodUiCtx"),stableIfNotFound:!0})),d=cr(o.traverse({field:J(u.id,"stagingCtx"),ignoreError:!0,pureFieldErrorToUndefined:!0})!==void 0,o.traverseOrError({field:J(u.id,"stagingUiCtx")}));c.set(u.id,{info:u,prod:l,staging:d})}return new Ft(e,c)}}function cr(r,e){if(e===void 0)return r?{locked:!1,results:new Map}:void 0;if(e.ok)return ss(e.value,!1,!0)}function At(r,e){return{blockId:e,args:n=>O.notEmpty(n.accessor(r).node().traverse({field:J(e,"currentArgs"),errorIfFieldNotSet:!0}).getDataAsString()),activeArgs:n=>{var i;return(i=n.accessor(r).node().traverse({field:J(e,"prodArgs"),stableIfNotFound:!0}))==null?void 0:i.getDataAsString()},uiState:n=>n.accessor(r).node().getKeyValueAsString(gt(e)),blockMeta:n=>{const i=n.accessor(r).node(),a=O.notEmpty(i.getKeyValueAsJson(de)),c=new Map;for(const u of ae(a))c.set(u.id,u);return c}}}function os(r,e){return{...At(r,e),prod:t=>{var s;return(s=t.accessor(r).node({ignoreError:!0}).traverse({field:J(e,"prodOutput"),stableIfNotFound:!0,ignoreError:!0}))==null?void 0:s.persist()},staging:t=>{var o;const s=(o=t.accessor(r).node({ignoreError:!0}).traverse({field:J(e,"stagingOutput"),ignoreError:!0}))==null?void 0:o.persist();return s===void 0&&t.markUnstable("staging_not_rendered"),s},getResultsPool:t=>Ft.create(t,r,e)}}function*Y(r,e){switch(yield r,r.type){case"GetFromCtx":case"Immediate":return;case"Isolate":yield*Y(r.cfg);return;case"MakeObject":for(const[,t]of Object.entries(r.template))yield*Y(t);return;case"MakeArray":for(const t of r.template)yield*Y(t);return;case"GetJsonField":case"GetResourceField":yield*Y(r.source),yield*Y(r.field);return;case"MapRecordValues":case"MapArrayValues":case"MapResourceFields":yield*Y(r.source),yield*Y(r.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*Y(r.source);return;case"IsEmpty":yield*Y(r.arg);return;case"Not":yield*Y(r.operand);return;case"And":case"Or":yield*Y(r.operand1),yield*Y(r.operand2);return;default:O.assertNever(r)}}function _o(r,e){const t={};for(const[s,o]of Object.entries(r))t[s]=e(o);return t}function Ce(r,e){return r===void 0?void 0:e(r)}function Ko(r){switch(r.type){case"GetImportProgress":return!0;default:return!1}}function Ho(r){for(const e of Y(r))if(Ko(e))return!0;return!1}function Ye(r){return{type:"ReturnResult",result:r}}function $(r){return()=>Ye(r)}const qo=r=>{const e={};for(const[t,s]of Object.entries(r))e[t]=s;return $(e)},Wo=r=>{const e=r.source;if(e===void 0)return $(void 0);const t=[];for(const s of e)s instanceof Array?t.push(...s):t.push(s);return $(t)},zo=r=>{const e=r.source,t=r.field;return e===void 0||t===void 0?$(void 0):({cCtx:s})=>{var o;return Ye((o=s.accessor(e).node().traverse(t))==null?void 0:o.persist())}};function ns(r,e){const t={},s=r.length;for(let o=0;o<s;o++)t[String(o)]=e(r[o]);return t}function Xo(r,e){return t=>{const s=t.source;return s===void 0?$(void 0):()=>({type:"ScheduleSubroutine",subroutine:is(s.length),args:ns(s,o=>T({...r,[e.itVar]:o},e.mapping))})}}function is(r){return e=>{const t=[];for(let s=0;s<r;s++)t.push(e[String(s)]);return $(t)}}function Yo(r,e){return t=>{const s=t.source;if(s===void 0)return $(void 0);const o={};for(const[n,i]of Object.entries(s)){const a={...r,[e.itVar]:i};o[n]=T(a,e.mapping)}return()=>({type:"ScheduleSubroutine",subroutine:Qo,args:o})}}const Qo=r=>$(r),Zo=r=>{const e=r.arg;return $(e===void 0?void 0:e.length===0)},en=r=>{const e=r.operand;return $(e===void 0?void 0:!e)},tn=r=>{const e=r.operand1,t=r.operand2;return $(e===void 0||t===void 0?void 0:e&&t)},rn=r=>{const e=r.operand1,t=r.operand2;return $(e===void 0||t===void 0?void 0:e||t)},sn=r=>{const e=r.source;return e===void 0?$(void 0):({cCtx:t})=>{var s;return Ye((s=t.accessor(e).node())==null?void 0:s.getDataAsJson())}},on=r=>{const e=r.source,t=r.field;return $(e===void 0||t===void 0?void 0:e[t])};function nn(r,e){return t=>{const s=t.source;return s===void 0?$(void 0):({cCtx:o})=>{const n=o.accessor(s).node(),i={};for(const a of n.listInputFields()){const c=n.traverse(a);if(c===void 0)i[a]=$(void 0);else{const u={...r,[e.itVar]:c.persist()};i[a]=T(u,e.mapping)}}return{type:"ScheduleSubroutine",subroutine:an,args:i}}}}const an=r=>$(r),cn=r=>{const e=r.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:j.Computable.make(s=>t.blobDriver.getDownloadedBlob(s.accessor(e).node().resourceInfo),{postprocessValue:async s=>{if(s!==void 0)return await t.blobDriver.getContent(s.handle)}})})},ln=r=>{const e=r.source;return e===void 0?$(void 0):({cCtx:t,drivers:s})=>{const o=t.accessor(e).node().resourceInfo;return{type:"ScheduleComputable",computable:j.Computable.make(()=>s.blobDriver.getDownloadedBlob(o),{postprocessValue:async n=>n===void 0?void 0:(await s.blobDriver.getContent(n.handle)).toString()})}}},un=r=>{const e=r.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:j.Computable.make(s=>t.blobDriver.getDownloadedBlob(s.accessor(e).node().resourceInfo),{postprocessValue:async s=>{if(s==null)return;const o=await t.blobDriver.getContent(s.handle);if(o!=null)return JSON.parse(Buffer.from(o).toString())}})})},dn=r=>{const e=r.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.blobDriver.getDownloadedBlob(e)})},pn=r=>{const e=r.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.blobDriver.getOnDemandBlob(e)})},fn=r=>e=>{const t=e.source;return t===void 0?$(void 0):({drivers:s})=>({type:"ScheduleComputable",computable:s.blobToURLDriver.extractArchiveAndGetURL(t,r)})},hn=r=>{const e=r.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.uploadDriver.getProgressId(e)})},gn=r=>e=>{const t=e.source;return t===void 0?$(void 0):({drivers:s})=>({type:"ScheduleComputable",computable:s.logDriver.getLastLogs(t,r)})},mn=r=>e=>{const t=e.source;return t===void 0?$(void 0):({drivers:s})=>({type:"ScheduleComputable",computable:s.logDriver.getProgressLog(t,r)})},vn=r=>e=>{const t=e.source;return t===void 0?$(void 0):({drivers:s})=>({type:"ScheduleComputable",computable:s.logDriver.getProgressLogWithInfo(t,r)})},yn=r=>{const e=r.source;return e===void 0?$(void 0):({drivers:t})=>({type:"ScheduleComputable",computable:t.logDriver.getLogHandle(e)})};function T(r,e){switch(e.type){case"GetFromCtx":{const t=r[e.variable];return typeof t=="function"?s=>Ye(t(s.cCtx)):$(t)}case"Isolate":return({drivers:t})=>({type:"ScheduleComputable",computable:ls(t,r,e.cfg)});case"Immediate":return $(e.value);case"GetJsonField":return()=>({type:"ScheduleSubroutine",subroutine:on,args:{source:T(r,e.source),field:T(r,e.field)}});case"MapArrayValues":return()=>({type:"ScheduleSubroutine",subroutine:Xo(r,e),args:{source:T(r,e.source)}});case"MapRecordValues":return()=>({type:"ScheduleSubroutine",subroutine:Yo(r,e),args:{source:T(r,e.source)}});case"MakeObject":return()=>({type:"ScheduleSubroutine",subroutine:qo,args:_o(e.template,t=>T(r,t))});case"MakeArray":return()=>({type:"ScheduleSubroutine",subroutine:is(e.template.length),args:ns(e.template,t=>T(r,t))});case"Flatten":return()=>({type:"ScheduleSubroutine",subroutine:Wo,args:{source:T(r,e.source)}});case"IsEmpty":return()=>({type:"ScheduleSubroutine",subroutine:Zo,args:{arg:T(r,e.arg)}});case"Not":return()=>({type:"ScheduleSubroutine",subroutine:en,args:{operand:T(r,e.operand)}});case"And":return()=>({type:"ScheduleSubroutine",subroutine:tn,args:{operand1:T(r,e.operand1),operand2:T(r,e.operand2)}});case"Or":return()=>({type:"ScheduleSubroutine",subroutine:rn,args:{operand1:T(r,e.operand1),operand2:T(r,e.operand2)}});case"MapResourceFields":return()=>({type:"ScheduleSubroutine",subroutine:nn(r,e),args:{source:T(r,e.source)}});case"GetResourceField":return()=>({type:"ScheduleSubroutine",subroutine:zo,args:{source:T(r,e.source),field:T(r,e.field)}});case"GetResourceValueAsJson":return()=>({type:"ScheduleSubroutine",subroutine:sn,args:{source:T(r,e.source)}});case"GetBlobContent":return()=>({type:"ScheduleSubroutine",subroutine:cn,args:{source:T(r,e.source)}});case"GetBlobContentAsString":return()=>({type:"ScheduleSubroutine",subroutine:ln,args:{source:T(r,e.source)}});case"GetBlobContentAsJson":return()=>({type:"ScheduleSubroutine",subroutine:un,args:{source:T(r,e.source)}});case"GetDownloadedBlobContent":return()=>({type:"ScheduleSubroutine",subroutine:dn,args:{source:T(r,e.source)}});case"GetOnDemandBlobContent":return()=>({type:"ScheduleSubroutine",subroutine:pn,args:{source:T(r,e.source)}});case"ExtractArchiveAndGetURL":return()=>({type:"ScheduleSubroutine",subroutine:fn(e.format),args:{source:T(r,e.source)}});case"GetImportProgress":return()=>({type:"ScheduleSubroutine",subroutine:hn,args:{source:T(r,e.source)}});case"GetLastLogs":return()=>({type:"ScheduleSubroutine",subroutine:gn(e.lines),args:{source:T(r,e.source)}});case"GetProgressLog":return()=>({type:"ScheduleSubroutine",subroutine:mn(e.patternToSearch),args:{source:T(r,e.source)}});case"GetProgressLogWithInfo":return()=>({type:"ScheduleSubroutine",subroutine:vn(e.patternToSearch),args:{source:T(r,e.source)}});case"GetLogHandle":return()=>({type:"ScheduleSubroutine",subroutine:yn,args:{source:T(r,e.source)}});default:return O.assertNever(e)}}const wn=["$prod","$staging"];function Sn(r){return{$blockId:r.blockId,$args:e=>JSON.parse(r.args(e)),$ui:e=>{const t=r.uiState(e);return t!==void 0?JSON.parse(t):void 0},$prod:r.prod,$staging:r.staging}}const as=Symbol(),cs="return",bn={op:as,arg:cs};function Pn(r){return r.op==as&&r.arg==cs}function Rn(){return{pendingSubroutines:new Map}}function lr(r,e,t,s){const o=new Br(t),n=(a,c)=>{if(Pn(a))return e.result=c,!1;const u=O.notEmpty(e.pendingSubroutines.get(a.op));if(a.arg in u.args)throw new Error("argument already set");return u.args[a.arg]=c,u.argCounter--,u.argCounter===0&&(e.pendingSubroutines.delete(a.op),o.push({destination:u.destination,operation:u.subroutine(u.args)})),!0},i=[];e:for(;o.length>0;){const a=o.shift(),c=a.operation(r);switch(c.type){case"ReturnResult":if(!n(a.destination,c.result))break e;break;case"ScheduleSubroutine":{const u=Symbol(),l=Object.entries(c.args),d=l.length;if(d===0)o.push({destination:a.destination,operation:c.subroutine({})});else{for(const[h,g]of l)o.push({destination:{op:u,arg:h},operation:g});e.pendingSubroutines.set(u,{argCounter:d,args:{},subroutine:c.subroutine,destination:a.destination})}}break;case"ScheduleComputable":if(!s)throw new Error("asynchronous operations are forbidden in this context");i.push({destination:a.destination,computable:c.computable});break;default:O.assertNever(c)}}return i}function Cn(r,e,t,s={}){return ls(r,Sn(e),t,s)}function ls(r,e,t,s={}){const o=`${e.blockId}#`+V({ctx:Object.fromEntries(Object.entries(e).filter(([n])=>wn.indexOf(n)===-1)),cfg:t});return j.Computable.makeRaw(n=>{const i={drivers:r,cCtx:n},a=Rn();return{ir:lr(i,a,[{destination:bn,operation:T(e,t)}],!0),postprocessValue(u){const l=[];for(const R of u)l.push({destination:R.destination,operation:$(R.computable)});const d={drivers:r,get cCtx(){throw new Error("asynchronous operations are forbidden in this context")}},h=new Map;for(const[R,m]of a.pendingSubroutines)h.set(R,{...m,args:{...m.args}});const g={result:a.result,pendingSubroutines:h};if(lr(d,g,l,!1),!("result"in g))throw new Error("illegal cfg rendering stack state, no result");return g.result}}},{...s,key:o})}function En(r){return r instanceof ArrayBuffer||ArrayBuffer.isView(r)}function ur(r){return r!==void 0?Buffer.from(r).toString("base64"):void 0}class qe{constructor(e,t,s,o,n,i){S(this,"callbackRegistry");S(this,"fnJSONStringify");S(this,"fnJSONParse");S(this,"computablesToResolve",{});S(this,"computableCtx");S(this,"accessors",new Map);S(this,"meta");S(this,"errorRepo",new kn);S(this,"_resultPool");if(this.scope=e,this.vm=t,this.blockCtx=s,this.env=o,this.deadlineSetter=n,this.computableCtx=i,this.callbackRegistry=this.scope.manage(this.vm.newObject()),this.fnJSONStringify=e.manage(t.getProp(t.global,"JSON").consume(a=>t.getProp(a,"stringify"))),t.typeof(this.fnJSONStringify)!=="function")throw new Error("JSON.stringify() not found.");if(this.fnJSONParse=e.manage(t.getProp(t.global,"JSON").consume(a=>t.getProp(a,"parse"))),t.typeof(this.fnJSONParse)!=="function")throw new Error("JSON.parse() not found.");this.meta=s.blockMeta(i),this.injectCtx()}resetComputableCtx(){this.computableCtx=void 0,this.accessors.clear()}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 qe.cleanErrorContext(t),t}finally{this.deadlineSetter(void 0)}}runCallback(e,...t){try{return this.deadlineSetter({currentExecutionTarget:e,deadline:Date.now()+1e4}),$e.Scope.withScope(s=>{const o=s.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,s)))))})}catch(s){throw qe.cleanErrorContext(s),this.errorRepo.getOriginal(s)}finally{this.deadlineSetter(void 0)}}getAccessorHandleByName(e){if(this.computableCtx===void 0)throw new Error("Accessors can't be used in this context");const t=(s,o)=>{if(!this.accessors.has(s)){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(s,this.computableCtx.accessor(i).node({ignoreError:!0})):this.accessors.set(s,void 0)}return this.accessors.get(s)?s:void 0};if(e==="staging")return t("staging","staging");if(e==="main")return t("main","prod")}resolveWithCommon(e,t,...s){return this.wrapAccessor(this.getAccessor(e).traverseWithCommon(t,...s))}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 ur(this.getAccessor(e).getKeyValue(t))}getKeyValueAsString(e,t){return this.getAccessor(e).getKeyValueAsString(t)}getDataBase64(e){return ur(this.getAccessor(e).getData())}getDataAsString(e){return this.getAccessor(e).getDataAsString()}parsePObjectCollection(e,t,s,...o){const n=this.getAccessor(e);if(!n.getIsReadyOrError())return;const i=Jo(n,t,s,o),a={};for(const[c,u]of Object.entries(i))a[c]=L.mapPObjectData(u,l=>this.wrapAccessor(l));return a}registerComputable(e,t){const s=`${e}_${te.randomUUID()}`;return this.computablesToResolve[s]=t,s}getBlobContentAsString(e){const t=this.getAccessor(e).resourceInfo;return this.registerComputable("getBlobContentAsString",j.Computable.make(s=>this.env.driverKit.blobDriver.getDownloadedBlob(t,s),{postprocessValue:async s=>{if(s!==void 0)return Buffer.from(await this.env.driverKit.blobDriver.getContent(s.handle)).toString("utf-8")}}))}getBlobContentAsBase64(e){const t=this.getAccessor(e).resourceInfo;return this.registerComputable("getBlobContentAsBase64",j.Computable.make(s=>this.env.driverKit.blobDriver.getDownloadedBlob(t,s),{postprocessValue:async s=>{if(s!==void 0)return Buffer.from(await this.env.driverKit.blobDriver.getContent(s.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 s=this.getAccessor(e).persist();return this.registerComputable("extractArchiveAndGetURL",this.env.driverKit.blobToURLDriver.extractArchiveAndGetURL(s,t))}getImportProgress(e){const t=this.getAccessor(e).persist();return this.registerComputable("getImportProgress",this.env.driverKit.uploadDriver.getProgressId(t))}getLastLogs(e,t){const s=this.getAccessor(e).persist();return this.registerComputable("getLastLogs",this.env.driverKit.logDriver.getLastLogs(s,t))}getProgressLog(e,t){const s=this.getAccessor(e).persist();return this.registerComputable("getProgressLog",this.env.driverKit.logDriver.getProgressLog(s,t))}getProgressLogWithInfo(e,t){const s=this.getAccessor(e).persist();return this.registerComputable("getProgressLogWithInfo",this.env.driverKit.logDriver.getProgressLogWithInfo(s,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=O.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:L.mapPObjectData(t.obj,s=>this.wrapAccessor(s))}))}}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:L.mapValueInVOE(t.obj.data,s=>this.wrapAccessor(s))}}))}}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 L.mapPObjectData(this.resultPool.getDataByRef(e,t),s=>this.wrapAccessor(s))}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=>L.mapPObjectData(t,s=>this.transformInputPData(s))),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(L.mapPTableDef(e,t=>L.mapPObjectData(t,s=>this.transformInputPData(s))),this.computableCtx)}transformInputPData(e){return typeof e=="string"?this.getAccessor(e):L.isDataInfo(e)?L.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=te.randomUUID();return this.accessors.set(t,e),t}}exportSingleValue(e,t){const s=this.tryExportSingleValue(e,t);if(s===void 0)throw new Error(`Can't export value: ${e===void 0?"undefined":JSON.stringify(e)}`);return s}tryExportSingleValue(e,t){let s,o=!1;switch(typeof e){case"string":s=this.vm.newString(e),o=!0;break;case"number":s=this.vm.newNumber(e),o=!0;break;case"undefined":s=this.vm.undefined;break;case"boolean":s=e?this.vm.true:this.vm.false;break;default:if(e===null){s=this.vm.null;break}if(En(e)){s=this.vm.newArrayBuffer(e),o=!0;break}return}return o&&t!=null?t.manage(s):s}exportObjectUniversal(e,t){const s=this.tryExportSingleValue(e,t);return s!==void 0?s:this.exportObjectViaJson(e,t)}exportObjectViaJson(e,t){const s=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(s):s}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(s=>this.vm.getString(s));if(t!=="undefined")return JSON.parse(t)}injectCtx(){$e.Scope.withScope(e=>{const t=e.manage(this.vm.newObject()),s=this.blockCtx.args(this.computableCtx),o=this.blockCtx.activeArgs(this.computableCtx),n=this.blockCtx.uiState(this.computableCtx);this.vm.setProp(t,"args",e.manage(this.vm.newString(s))),n!==void 0&&this.vm.setProp(t,"uiState",e.manage(this.vm.newString(n))),o!==void 0&&this.vm.setProp(t,"activeArgs",e.manage(this.vm.newString(o))),this.vm.setProp(t,"callbackRegistry",this.callbackRegistry),this.vm.setProp(t,"featureFlags",this.exportObjectUniversal(L.JsRenderInternal.GlobalCfgRenderCtxFeatureFlags,e));const i=(a,c)=>{const u=(...l)=>{try{return c(...l)}catch(d){const h=this.errorRepo.setAndRecreateForQuickJS(d);throw this.vm.newError(h)}};this.vm.newFunction(a,u).consume(l=>this.vm.setProp(t,a,l)),this.vm.newFunction(a,c).consume(l=>this.vm.setProp(t,a+"__internal__",l))};i("getAccessorHandleByName",a=>this.exportSingleValue(this.getAccessorHandleByName(this.vm.getString(a)),void 0)),i("resolveWithCommon",(a,c,...u)=>this.exportSingleValue(this.resolveWithCommon(this.vm.getString(a),this.importObjectViaJson(c),...u.map(l=>this.importObjectViaJson(l))),void 0)),i("getResourceType",a=>this.exportObjectViaJson(this.getResourceType(this.vm.getString(a)),void 0)),i("getInputsLocked",a=>this.exportSingleValue(this.getInputsLocked(this.vm.getString(a)),void 0)),i("getOutputsLocked",a=>this.exportSingleValue(this.getOutputsLocked(this.vm.getString(a)),void 0)),i("getIsReadyOrError",a=>this.exportSingleValue(this.getIsReadyOrError(this.vm.getString(a)),void 0)),i("getIsFinal",a=>this.exportSingleValue(this.getIsFinal(this.vm.getString(a)),void 0)),i("getError",a=>this.exportSingleValue(this.getError(this.vm.getString(a)),void 0)),i("listInputFields",a=>this.exportObjectViaJson(this.listInputFields(this.vm.getString(a)),void 0)),i("listOutputFields",a=>this.exportObjectViaJson(this.listInputFields(this.vm.getString(a)),void 0)),i("listDynamicFields",a=>this.exportObjectViaJson(this.listInputFields(this.vm.getString(a)),void 0)),i("getKeyValueBase64",(a,c)=>this.exportSingleValue(this.getKeyValueBase64(this.vm.getString(a),this.vm.getString(c)),void 0)),i("getKeyValueAsString",(a,c)=>this.exportSingleValue(this.getKeyValueAsString(this.vm.getString(a),this.vm.getString(c)),void 0)),i("getDataBase64",a=>this.exportSingleValue(this.getDataBase64(this.vm.getString(a)),void 0)),i("getDataAsString",a=>this.exportSingleValue(this.getDataAsString(this.vm.getString(a)),void 0)),i("parsePObjectCollection",(a,c,u,...l)=>this.exportObjectUniversal(this.parsePObjectCollection(this.vm.getString(a),this.vm.dump(c),this.vm.getString(u),...l.map(d=>this.vm.getString(d))),void 0)),i("getBlobContentAsBase64",a=>this.exportSingleValue(this.getBlobContentAsBase64(this.vm.getString(a)),void 0)),i("getBlobContentAsString",a=>this.exportSingleValue(this.getBlobContentAsString(this.vm.getString(a)),void 0)),i("getDownloadedBlobContentHandle",a=>this.exportSingleValue(this.getDownloadedBlobContentHandle(this.vm.getString(a)),void 0)),i("getOnDemandBlobContentHandle",a=>this.exportSingleValue(this.getOnDemandBlobContentHandle(this.vm.getString(a)),void 0)),i("extractArchiveAndGetURL",(a,c)=>this.exportSingleValue(this.extractArchiveAndGetURL(this.vm.getString(a),this.vm.getString(c)),void 0)),i("getImportProgress",a=>this.exportSingleValue(this.getImportProgress(this.vm.getString(a)),void 0)),i("getLastLogs",(a,c)=>this.exportSingleValue(this.getLastLogs(this.vm.getString(a),this.vm.getNumber(c)),void 0)),i("getProgressLog",(a,c)=>this.exportSingleValue(this.getProgressLog(this.vm.getString(a),this.vm.getString(c)),void 0)),i("getProgressLogWithInfo",(a,c)=>this.exportSingleValue(this.getProgressLogWithInfo(this.vm.getString(a),this.vm.getString(c)),void 0)),i("getLogHandle",a=>this.exportSingleValue(this.getLogHandle(this.vm.getString(a)),void 0)),i("getBlockLabel",a=>this.exportSingleValue(this.getBlockLabel(this.vm.getString(a)),void 0)),i("getDataFromResultPool",()=>this.exportObjectUniversal(this.getDataFromResultPool(),void 0)),i("getDataWithErrorsFromResultPool",()=>this.exportObjectUniversal(this.getDataWithErrorsFromResultPool(),void 0)),i("getSpecsFromResultPool",()=>this.exportObjectUniversal(this.getSpecsFromResultPool(),void 0)),i("calculateOptions",a=>this.exportObjectUniversal(this.calculateOptions(this.importObjectViaJson(a)),void 0)),i("getSpecFromResultPoolByRef",(a,c)=>this.exportObjectUniversal(this.getSpecFromResultPoolByRef(this.vm.getString(a),this.vm.getString(c)),void 0)),i("getDataFromResultPoolByRef",(a,c)=>this.exportObjectUniversal(this.getDataFromResultPoolByRef(this.vm.getString(a),this.vm.getString(c)),void 0)),i("createPFrame",a=>this.exportSingleValue(this.createPFrame(this.importObjectViaJson(a)),void 0)),i("createPTable",a=>this.exportSingleValue(this.createPTable(this.importObjectViaJson(a)),void 0)),i("getCurrentUnstableMarker",()=>this.exportSingleValue(this.getCurrentUnstableMarker(),void 0)),this.vm.setProp(this.vm.global,"cfgRenderCtx",t)})}}class kn{constructor(){S(this,"errorIdToError",new Map)}setAndRecreateForQuickJS(e){const t=te.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 $e.errors.QuickJSUnwrapError))return console.warn("ErrorRepo: quickJSError is not a QuickJSUnwrapError",f.stringifyWithResourceId(e)),e;if(!("name"in e.cause))return console.warn("ErrorRepo: quickJSError.cause is not an Error",f.stringifyWithResourceId(e)),e;const t=e.cause.name,s=t.slice(t.indexOf("/uuid:")+6);if(!s)throw new Error(`ErrorRepo: quickJSError.cause.name does not contain errorId: ${t}, ${f.stringifyWithResourceId(e)}`);const o=this.errorIdToError.get(s);if(o===void 0)throw new Error(`ErrorRepo: errorId not found: ${s}, ${f.stringifyWithResourceId(e)}`);return new Ts.PlQuickJSError(e,o)}}function Qe(r,e){return Ce(r.traverse({field:J(e,"blockPack"),assertFieldType:"Dynamic",errorIfFieldNotSet:!0},{field:f.Pl.HolderRefField,assertFieldType:"Input",errorIfFieldNotFound:!0}),t=>{const s=t.getDataAsJson(),o=L.extractConfig(s.config);return{bpId:t.resourceInfo.id.toString(),info:s,cfg:o}})}const je=process.env.MI_LOG_OUTPUT_STATUS;function On(r,e,t,s,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"),j.Computable.makeRaw(a=>{const c=new $e.Scope;a.addOnDestroy(()=>c.dispose());const u=c.manage(r.quickJs.newRuntime());u.setMemoryLimit(1024*1024*8),u.setMaxStackSize(1024*320);let l;u.setInterruptHandler(()=>l===void 0?!1:Date.now()>l.deadline);const d=c.manage(u.newContext()),h=new qe(c,d,e,r,m=>{l=m},a);h.evaluateBundle(s.content);const g=h.runCallback(t.handle);h.resetComputableCtx();let R=0;return je&&je!=="unstable-only"&&console.log(`Output ${t.handle} scaffold calculated.`),{ir:h.computablesToResolve,postprocessValue:(m,{unstableMarker:U,stable:N})=>{for(const[F,_]of Object.entries(m))h.runCallback(F,_);const x=h.importObjectUniversal(g);return R++,je&&(je!=="unstable-only"||!N)&&console.log(N?`Stable output ${t.handle} calculated ${x!==void 0?"defined":"undefined"}; (#${R})`:`Unstable output ${t.handle}; marker = ${U}; ${x!==void 0?"defined":"undefined"} (#${R})`),x}}},n)}function $n(r){return L.isConfigLambda(r)?r.isActive===!0:Ho(r)}function Ee(r,e,t,s,o,n={}){if(L.isConfigLambda(t)){if(s===void 0)throw new Error("No code bundle.");return On(r,e,t,s,o,n)}else return Cn(r.driverKit,e,t,n)}function Tn(r,e,t){return j.Computable.make(s=>{var R,m,U,N,x,F,_,pe;const o=s.accessor(r).node(),n=O.notEmpty(o.getKeyValueAsJson(Ot)),i=O.notEmpty(o.getKeyValueAsJson(Te)),a=O.notEmpty(o.getKeyValueAsJson(Ie)),c=O.notEmpty(o.getKeyValueAsJson(de)),u=O.notEmpty(o.getKeyValueAsJson(Ke)),l=new Map;for(const{id:B}of ae(c)){const Q=o.traverse({field:J(B,"currentArgs"),assertFieldType:"Dynamic",errorIfFieldNotSet:!0});let le;const X=o.traverse({field:J(B,"prodArgs"),assertFieldType:"Dynamic",stableIfNotFound:!0});if(X!==void 0){const H=o.getField({field:J(B,"prodOutput"),assertFieldType:"Dynamic",errorIfFieldNotFound:!0}),M=o.getField({field:J(B,"prodUiCtx"),assertFieldType:"Dynamic",errorIfFieldNotFound:!0});le={arguments:X.getDataAsJson(),stale:Q.id!==X.id,outputError:H.error!==void 0||M.error!==void 0||((R=H.value)==null?void 0:R.getError())!==void 0||((m=M.value)==null?void 0:m.getError())!==void 0,outputsError:((U=H.error)==null?void 0:U.getDataAsString())??((x=(N=H.value)==null?void 0:N.getError())==null?void 0:x.getDataAsString()),exportsError:((F=M.error)==null?void 0:F.getDataAsString())??((pe=(_=M.value)==null?void 0:_.getError())==null?void 0:pe.getDataAsString()),finished:(H.value!==void 0&&H.value.getIsReadyOrError()||H.error!==void 0&&H.error.getIsReadyOrError())&&(M.value!==void 0&&M.value.getIsReadyOrError()||M.error!==void 0&&M.error.getIsReadyOrError())}}l.set(B,{currentArguments:Q.getDataAsJson(),prod:le})}const d=Je(c,B=>l.get(B).currentArguments),h=new Set(u.blocksInLimbo),g=[...ae(c)].map(({id:B,label:Q,renderingMode:le})=>{var b,C,I,k,D;const X=O.notEmpty(l.get(B)),H=O.notEmpty(d.nodes.get(B));let M="NotCalculated";X.prod!==void 0&&(h.has(B)?M="Limbo":M=X.prod.finished?"Done":"Running");const Z=Qe(o,B),{sections:fe,title:y,inputsValid:p,sdkVersion:v}=Ce(Z,({bpId:G,cfg:A})=>{const ce=At(r,B);return{sections:Ee(t,ce,A.sections,A.code,G).wrap({recover:we=>(t.logger.error("Error in block model sections"),t.logger.error(we),[])}),title:Ce(A.title,we=>Ee(t,ce,we,A.code,G).wrap({recover:bs=>(t.logger.error("Error in block model title"),t.logger.error(bs),"Invalid title")})),inputsValid:Ee(t,ce,A.inputsValid,A.code,G).wrap({recover:we=>(t.logger.error("Error in block model argsValid"),t.logger.error(we),!1)}),sdkVersion:A.sdkVersion}})||{},w=o.traverse({field:J(B,"blockSettings"),assertFieldType:"Dynamic",errorIfFieldNotSet:!0}).getDataAsJson(),P=Ce(Z,({info:G})=>t.blockUpdateWatcher.get({currentSpec:G.source,settings:w}));return{projectResourceId:f.resourceIdToString(r.rid),id:B,label:y??Q,title:y??Q,renderingMode:le,stale:((b=X.prod)==null?void 0:b.stale)!==!1||M==="Limbo",missingReference:H.missingReferences,upstreams:[...d.traverseIdsExcludingRoots("upstream",B)],downstreams:[...d.traverseIdsExcludingRoots("downstream",B)],calculationStatus:M,outputErrors:((C=X.prod)==null?void 0:C.outputError)===!0,outputsError:(I=X.prod)==null?void 0:I.outputsError,exportsError:(k=X.prod)==null?void 0:k.exportsError,settings:w,sections:fe,inputsValid:p,updateInfo:{},currentBlockPack:(D=Z==null?void 0:Z.info)==null?void 0:D.source,updates:P,sdkVersion:v,navigationState:e.getState(B)}});return{meta:a,created:new Date(n),lastModified:new Date(i),authorMarker:o.getKeyValueAsJson(vt),blocks:g}},{postprocessValue:s=>{const o=new Set,n=new Set;return{...s,blocks:s.blocks.map(i=>{var l,d;i.inputsValid||o.add(i.id),i.stale&&n.add(i.id);const a=i.stale||i.upstreams.findIndex(h=>n.has(h))!==-1,c=(a||i.outputErrors)&&!!i.inputsValid&&!i.missingReference&&i.upstreams.findIndex(h=>o.has(h))===-1,u={...i,canRun:c,stale:a,updateSuggestions:((l=i.updates)==null?void 0:l.suggestions)??[],updatedBlockPack:(d=i.updates)==null?void 0:d.mainSuggestion};return delete u.updates,u})}}}).withStableType()}function In(r,e){const t=r.node();if(f.resourceTypesEqual(t.resourceType,Tt)){const s=t.getDataAsJson();if(s===void 0)throw new Error("No resource data.");return e.frontendDownloadDriver.getPath(new URL(s.url)).withStableType()}else if(f.resourceTypesEqual(t.resourceType,It)){const s=t.getDataAsJson();if(s===void 0)throw new Error("No resource data.");return e.signer.verify(s.path,s.signature,`Frontend path signature mismatch for: ${s.path}`),s.path}else throw new Error(`Unsupported resource type: ${JSON.stringify(t.resourceType)}`)}function Fn(r,e){if(r!==void 0)return j.Computable.make(t=>In(t.accessor(r),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 An(r,e,t){return j.Computable.make(s=>{var a;const o=s.accessor(r).node(),n=Qe(o,e),i=(a=o.traverse({field:J(e,"blockPack"),assertFieldType:"Dynamic"},{field:f.Pl.HolderRefField,assertFieldType:"Input",errorIfFieldNotFound:!0},{field:es,assertFieldType:"Input"}))==null?void 0:a.persist();return{path:Fn(i,t),sdkVersion:n==null?void 0:n.cfg.sdkVersion}},{mode:"StableOnlyLive"})}function us(r,e,t){if(t===void 0)return j.Computable.make(i=>us(r,e,i),{key:`inputs#${f.resourceIdToString(r.rid)}#${e}`});const s=t.accessor(r).node(),o=At(r,e),n=o.uiState(t);return{author:s.getKeyValueAsJson(mt(e)),args:JSON.parse(o.args(t)),ui:n!==void 0?JSON.parse(n):void 0}}function Ln(r,e,t){return j.Computable.make(s=>{const o=s.accessor(r).node(),n=os(r,e);return Ce(Qe(o,e),({cfg:i,bpId:a})=>{const c={};for(const[u,l]of Object.entries(i.outputs)){const d=Ee(t,n,l,i.code,a);c[u]=j.Computable.wrapError(d,1)}return c})},{key:"outputs#"+f.resourceIdToString(r.rid)+"#"+e}).withStableType()}function Dn(r,e){return j.Computable.make(t=>{const s=t.accessor(r).node(),o=O.notEmpty(s.getKeyValueAsJson(de)),n=[];for(const{id:i}of ae(o)){const a=Qe(s,i);if(a===void 0)continue;const c=Object.entries(a.cfg.outputs).map(([,l])=>l).filter(l=>$n(l)).map(l=>l);if(c.length===0)continue;const u=os(s.persist(),i);for(const l of c)n.push(j.Computable.wrapError(Ee(e,u,l,a.cfg.code,a.bpId)))}return n})}class Nn{constructor(){S(this,"states",new Map)}setState(e,t){const s=this.states.get(e);if(s===void 0){this.states.set(e,{state:t,change:new j.ChangeSource});return}s.state={...t},s.change.markChanged()}readState(e,t){let s=this.states.get(t);return s===void 0&&(s={state:{...L.DefaultNavigationState},change:new j.ChangeSource},this.states.set(t,s)),s.change.attachWatcher(e.watcher),s.state}getState(e){return j.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 dr(r){return JSON.stringify(r,(e,t)=>typeof t=="bigint"?f.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 Ze{constructor(e,t,s){S(this,"rid");S(this,"overview");S(this,"navigationStates",new Nn);S(this,"blockComputables",new Map);S(this,"blockFrontends",new Map);S(this,"activeConfigs");S(this,"refreshLoopResult");S(this,"abortController",new AbortController);S(this,"destroyed",!1);this.env=e,this.projectTree=s,this.overview=Tn(s.entry(),this.navigationStates,e).withPreCalculatedValueTree(),this.rid=t,this.refreshLoopResult=this.refreshLoop(),this.activeConfigs=Dn(s.entry(),e)}async refreshLoop(){for(;!this.destroyed;)try{await Be(this.env.pl,this.rid,e=>{e.doRefresh(this.env.ops.stagingRenderingRate)}),await this.activeConfigs.getValue(),await jr.setTimeout(this.env.ops.projectRefreshInterval,this.abortController.signal)}catch(e){if(f.isNotFoundError(e)){console.warn("project refresh routine terminated, because project was externally deleted");break}else if(!f.isTimeoutOrCancelError(e))throw new Error("Unexpected exception",{cause:e})}}async addBlock(e,t,s,o=void 0,n=te.randomUUID()){const i=await this.env.bpPreparer.prepare(t),a=await this.env.bpPreparer.getBlockConfigContainer(t),c=L.extractConfig(a);return await se(this.env.pl,this.rid,o,u=>u.addBlock({id:n,label:e,renderingMode:c.renderingMode},{args:V(c.initialArgs),uiState:V(c.initialUiState),blockPack:i},s)),await this.projectTree.refreshState(),n}async updateBlockPack(e,t,s=!1,o){const n=await this.env.bpPreparer.prepare(t),i=L.extractConfig(await this.env.bpPreparer.getBlockConfigContainer(t));await se(this.env.pl,this.rid,o,a=>a.migrateBlockPack(e,n,s?{args:V(i.initialArgs),uiState:V(i.initialUiState)}:void 0)),await this.projectTree.refreshState()}async deleteBlock(e,t){await se(this.env.pl,this.rid,t,s=>s.deleteBlock(e)),this.navigationStates.deleteBlock(e),await this.projectTree.refreshState()}async reorderBlocks(e,t){await se(this.env.pl,this.rid,t,s=>{const o=s.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(a=>{const c=n.blocks.find(u=>u.id===a);if(c===void 0)throw new Error(`Can't find block: ${a}`);return c})}]};s.updateStructure(i)}),await this.projectTree.refreshState()}async runBlock(e){await Be(this.env.pl,this.rid,t=>t.renderProduction([e],!0)),await this.projectTree.refreshState()}async stopBlock(e){await Be(this.env.pl,this.rid,t=>t.stopProduction(e)),await this.projectTree.refreshState()}async setBlockArgs(e,t,s){await se(this.env.pl,this.rid,s,o=>o.setArgs([{blockId:e,args:V(t)}])),await this.projectTree.refreshState()}async setUiState(e,t,s){await se(this.env.pl,this.rid,s,o=>o.setUiState(e,t===void 0?void 0:V(t))),await this.projectTree.refreshState()}async setNavigationState(e,t){this.navigationStates.setState(e,t)}async setBlockArgsAndUiState(e,t,s,o){await se(this.env.pl,this.rid,o,n=>{n.setArgs([{blockId:e,args:V(t)}]),n.setUiState(e,V(s))}),await this.projectTree.refreshState()}async setBlockSettings(e,t){await se(this.env.pl,this.rid,void 0,s=>{s.setBlockSettings(e,t)}),await this.projectTree.refreshState()}async resetBlockArgsAndUiState(e,t){await this.env.pl.withWriteTx("BlockInputsReset",async s=>{const o=f.ensureResourceIdNotNull((await s.getField(f.field(this.rid,J(e,"blockPack")))).value),n=f.ensureResourceIdNotNull((await s.getField(f.field(o,f.Pl.HolderRefField))).value),i=await s.getResourceData(n,!1),a=L.extractConfig(JSON.parse(Buffer.from(O.notEmpty(i.data)).toString("utf-8")).config);await se(s,this.rid,t,c=>{c.setArgs([{blockId:e,args:V(a.initialArgs)}]),c.setUiState(e,V(a.initialUiState))}),await s.commit()}),await this.projectTree.refreshState()}getBlockComputables(e){const t=this.blockComputables.get(e);if(t===void 0){const s=Ln(this.projectTree.entry(),e,this.env),n={fullState:j.Computable.make(i=>({argsAndUiState:us(this.projectTree.entry(),e,i),outputs:s,navigationState:this.navigationStates.getState(e),overview:this.overview}),{postprocessValue:i=>{var l,d,h;const a=(h=(d=(l=i.overview)==null?void 0:l.blocks)==null?void 0:d.find(g=>g.id==e))==null?void 0:h.sdkVersion,u=a&&jn(a)&&i.outputs!==void 0?xn(i.outputs):i.outputs;return{...i.argsAndUiState,outputs:u,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 s=An(this.projectTree.entry(),e,this.env).withPreCalculatedValueTree();return this.blockFrontends.set(e,s),s}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 Be(e.pl,t,o=>{});const s=await _e.SynchronizedTreeState.init(e.pl,t,{...e.ops.defaultTreeOptions,pruning:Bn},e.logger);if(e.ops.debugOps.dumpInitialTreeState){const o=s.dumpState();o.sort((i,a)=>{var c,u;return(((c=a.data)==null?void 0:c.byteLength)??0)-(((u=i.data)==null?void 0:u.byteLength)??0)});const n=_e.treeDumpStats(o);await ht.writeFile(`${f.resourceIdToString(t)}.json`,dr(o)),await ht.writeFile(`${f.resourceIdToString(t)}.stats.json`,dr(n))}return new Ze(e,t,s)}}function Bn(r){switch(r.type.name){case"BlockPackCustom":return r.fields.filter(e=>e.name!=="template");case"UserProject":return r.fields.filter(e=>!e.name.startsWith("__serviceTemplate"));case"Blob":return[];default:return r.fields}}function jn(r){return!Vn(r,"1.26.0")}function Vn(r,e){const t=r.split(".").map(Number),s=e.split(".").map(Number);return t[0]>s[0]||t[0]===s[0]&&t[1]>s[1]||t[0]===s[0]&&t[1]===s[1]&&t[2]>s[2]}function xn(r){const e={};for(const[t,s]of Object.entries(r)){if(s.ok){e[t]=s;continue}e[t]={ok:!1,errors:s.errors.map(o=>typeof o=="string"?o:o.type=="PlError"&&o.fullMessage!==void 0?o.fullMessage:o.message),moreErrors:s.moreErrors}}return e}const Lt={logger:new O.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 Dt(r){return{blobDownloadPath:K.join(r,"download"),downloadBlobToURLPath:K.join(r,"downloadToURL")}}const ds={...Lt,defaultTreeOptions:{pollingInterval:350,stopPollingDelay:2500,initialTreeLoadingTimeout:100*60*60*1e3},debugOps:{dumpInitialTreeState:!1},devBlockUpdateRecheckInterval:1e3,projectRefreshInterval:700,stagingRenderingRate:5};function ps(r){return{...Dt(r),frontendDownloadPath:K.join(r,"frontend")}}function Un(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var Pt={exports:{}};const Gn="2.0.0",fs=256,Mn=Number.MAX_SAFE_INTEGER||9007199254740991,Jn=16,_n=fs-6,Kn=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var et={MAX_LENGTH:fs,MAX_SAFE_COMPONENT_LENGTH:Jn,MAX_SAFE_BUILD_LENGTH:_n,MAX_SAFE_INTEGER:Mn,RELEASE_TYPES:Kn,SEMVER_SPEC_VERSION:Gn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};const Hn=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};var tt=Hn;(function(r,e){const{MAX_SAFE_COMPONENT_LENGTH:t,MAX_SAFE_BUILD_LENGTH:s,MAX_LENGTH:o}=et,n=tt;e=r.exports={};const i=e.re=[],a=e.safeRe=[],c=e.src=[],u=e.safeSrc=[],l=e.t={};let d=0;const h="[a-zA-Z0-9-]",g=[["\\s",1],["\\d",o],[h,s]],R=U=>{for(const[N,x]of g)U=U.split(`${N}*`).join(`${N}{0,${x}}`).split(`${N}+`).join(`${N}{1,${x}}`);return U},m=(U,N,x)=>{const F=R(N),_=d++;n(U,_,N),l[U]=_,c[_]=N,u[_]=F,i[_]=new RegExp(N,x?"g":void 0),a[_]=new RegExp(F,x?"g":void 0)};m("NUMERICIDENTIFIER","0|[1-9]\\d*"),m("NUMERICIDENTIFIERLOOSE","\\d+"),m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${h}*`),m("MAINVERSION",`(${c[l.NUMERICIDENTIFIER]})\\.(${c[l.NUMERICIDENTIFIER]})\\.(${c[l.NUMERICIDENTIFIER]})`),m("MAINVERSIONLOOSE",`(${c[l.NUMERICIDENTIFIERLOOSE]})\\.(${c[l.NUMERICIDENTIFIERLOOSE]})\\.(${c[l.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASEIDENTIFIER",`(?:${c[l.NUMERICIDENTIFIER]}|${c[l.NONNUMERICIDENTIFIER]})`),m("PRERELEASEIDENTIFIERLOOSE",`(?:${c[l.NUMERICIDENTIFIERLOOSE]}|${c[l.NONNUMERICIDENTIFIER]})`),m("PRERELEASE",`(?:-(${c[l.PRERELEASEIDENTIFIER]}(?:\\.${c[l.PRERELEASEIDENTIFIER]})*))`),m("PRERELEASELOOSE",`(?:-?(${c[l.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${c[l.PRERELEASEIDENTIFIERLOOSE]})*))`),m("BUILDIDENTIFIER",`${h}+`),m("BUILD",`(?:\\+(${c[l.BUILDIDENTIFIER]}(?:\\.${c[l.BUILDIDENTIFIER]})*))`),m("FULLPLAIN",`v?${c[l.MAINVERSION]}${c[l.PRERELEASE]}?${c[l.BUILD]}?`),m("FULL",`^${c[l.FULLPLAIN]}$`),m("LOOSEPLAIN",`[v=\\s]*${c[l.MAINVERSIONLOOSE]}${c[l.PRERELEASELOOSE]}?${c[l.BUILD]}?`),m("LOOSE",`^${c[l.LOOSEPLAIN]}$`),m("GTLT","((?:<|>)?=?)"),m("XRANGEIDENTIFIERLOOSE",`${c[l.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),m("XRANGEIDENTIFIER",`${c[l.NUMERICIDENTIFIER]}|x|X|\\*`),m("XRANGEPLAIN",`[v=\\s]*(${c[l.XRANGEIDENTIFIER]})(?:\\.(${c[l.XRANGEIDENTIFIER]})(?:\\.(${c[l.XRANGEIDENTIFIER]})(?:${c[l.PRERELEASE]})?${c[l.BUILD]}?)?)?`),m("XRANGEPLAINLOOSE",`[v=\\s]*(${c[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[l.XRANGEIDENTIFIERLOOSE]})(?:${c[l.PRERELEASELOOSE]})?${c[l.BUILD]}?)?)?`),m("XRANGE",`^${c[l.GTLT]}\\s*${c[l.XRANGEPLAIN]}$`),m("XRANGELOOSE",`^${c[l.GTLT]}\\s*${c[l.XRANGEPLAINLOOSE]}$`),m("COERCEPLAIN",`(^|[^\\d])(\\d{1,${t}})(?:\\.(\\d{1,${t}}))?(?:\\.(\\d{1,${t}}))?`),m("COERCE",`${c[l.COERCEPLAIN]}(?:$|[^\\d])`),m("COERCEFULL",c[l.COERCEPLAIN]+`(?:${c[l.PRERELEASE]})?(?:${c[l.BUILD]})?(?:$|[^\\d])`),m("COERCERTL",c[l.COERCE],!0),m("COERCERTLFULL",c[l.COERCEFULL],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM",`(\\s*)${c[l.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",m("TILDE",`^${c[l.LONETILDE]}${c[l.XRANGEPLAIN]}$`),m("TILDELOOSE",`^${c[l.LONETILDE]}${c[l.XRANGEPLAINLOOSE]}$`),m("LONECARET","(?:\\^)"),m("CARETTRIM",`(\\s*)${c[l.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",m("CARET",`^${c[l.LONECARET]}${c[l.XRANGEPLAIN]}$`),m("CARETLOOSE",`^${c[l.LONECARET]}${c[l.XRANGEPLAINLOOSE]}$`),m("COMPARATORLOOSE",`^${c[l.GTLT]}\\s*(${c[l.LOOSEPLAIN]})$|^$`),m("COMPARATOR",`^${c[l.GTLT]}\\s*(${c[l.FULLPLAIN]})$|^$`),m("COMPARATORTRIM",`(\\s*)${c[l.GTLT]}\\s*(${c[l.LOOSEPLAIN]}|${c[l.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE",`^\\s*(${c[l.XRANGEPLAIN]})\\s+-\\s+(${c[l.XRANGEPLAIN]})\\s*$`),m("HYPHENRANGELOOSE",`^\\s*(${c[l.XRANGEPLAINLOOSE]})\\s+-\\s+(${c[l.XRANGEPLAINLOOSE]})\\s*$`),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(Pt,Pt.exports);var Fe=Pt.exports;const qn=Object.freeze({loose:!0}),Wn=Object.freeze({}),zn=r=>r?typeof r!="object"?qn:r:Wn;var Nt=zn;const pr=/^[0-9]+$/,hs=(r,e)=>{const t=pr.test(r),s=pr.test(e);return t&&s&&(r=+r,e=+e),r===e?0:t&&!s?-1:s&&!t?1:r<e?-1:1},Xn=(r,e)=>hs(e,r);var gs={compareIdentifiers:hs,rcompareIdentifiers:Xn};const Ve=tt,{MAX_LENGTH:fr,MAX_SAFE_INTEGER:xe}=et,{safeRe:hr,safeSrc:gr,t:Ue}=Fe,Yn=Nt,{compareIdentifiers:he}=gs;let Qn=class ie{constructor(e,t){if(t=Yn(t),e instanceof ie){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>fr)throw new TypeError(`version is longer than ${fr} characters`);Ve("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const s=e.trim().match(t.loose?hr[Ue.LOOSE]:hr[Ue.FULL]);if(!s)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>xe||this.major<0)throw new TypeError("Invalid major version");if(this.minor>xe||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>xe||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[4].split(".").map(o=>{if(/^[0-9]+$/.test(o)){const n=+o;if(n>=0&&n<xe)return n}return o}):this.prerelease=[],this.build=s[5]?s[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(Ve("SemVer.compare",this.version,this.options,e),!(e instanceof ie)){if(typeof e=="string"&&e===this.version)return 0;e=new ie(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof ie||(e=new ie(e,this.options)),he(this.major,e.major)||he(this.minor,e.minor)||he(this.patch,e.patch)}comparePre(e){if(e instanceof ie||(e=new ie(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 s=this.prerelease[t],o=e.prerelease[t];if(Ve("prerelease compare",t,s,o),s===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(s===void 0)return-1;if(s===o)continue;return he(s,o)}while(++t)}compareBuild(e){e instanceof ie||(e=new ie(e,this.options));let t=0;do{const s=this.build[t],o=e.build[t];if(Ve("build compare",t,s,o),s===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(s===void 0)return-1;if(s===o)continue;return he(s,o)}while(++t)}inc(e,t,s){if(e.startsWith("pre")){if(!t&&s===!1)throw new Error("invalid increment argument: identifier is empty");if(t){const o=new RegExp(`^${this.options.loose?gr[Ue.PRERELEASELOOSE]:gr[Ue.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,s);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,s);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,s),this.inc("pre",t,s);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,s),this.inc("pre",t,s);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(s)?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(".")&&s===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(o)}}if(t){let n=[t,o];s===!1&&(n=[t]),he(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=Qn;const mr=z,Zn=(r,e,t=!1)=>{if(r instanceof mr)return r;try{return new mr(r,e)}catch(s){if(!t)return null;throw s}};var ye=Zn;const ei=ye,ti=(r,e)=>{const t=ei(r,e);return t?t.version:null};var ri=ti;const si=ye,oi=(r,e)=>{const t=si(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};var ni=oi;const vr=z,ii=(r,e,t,s,o)=>{typeof t=="string"&&(o=s,s=t,t=void 0);try{return new vr(r instanceof vr?r.version:r,t).inc(e,s,o).version}catch{return null}};var ai=ii;const yr=ye,ci=(r,e)=>{const t=yr(r,null,!0),s=yr(e,null,!0),o=t.compare(s);if(o===0)return null;const n=o>0,i=n?t:s,a=n?s:t,c=!!i.prerelease.length;if(!!a.prerelease.length&&!c){if(!a.patch&&!a.minor)return"major";if(a.compareMain(i)===0)return a.minor&&!a.patch?"minor":"patch"}const l=c?"pre":"";return t.major!==s.major?l+"major":t.minor!==s.minor?l+"minor":t.patch!==s.patch?l+"patch":"prerelease"};var li=ci;const ui=z,di=(r,e)=>new ui(r,e).major;var pi=di;const fi=z,hi=(r,e)=>new fi(r,e).minor;var gi=hi;const mi=z,vi=(r,e)=>new mi(r,e).patch;var yi=vi;const wi=ye,Si=(r,e)=>{const t=wi(r,e);return t&&t.prerelease.length?t.prerelease:null};var bi=Si;const wr=z,Pi=(r,e,t)=>new wr(r,t).compare(new wr(e,t));var oe=Pi;const Ri=oe,Ci=(r,e,t)=>Ri(e,r,t);var Ei=Ci;const ki=oe,Oi=(r,e)=>ki(r,e,!0);var $i=Oi;const Sr=z,Ti=(r,e,t)=>{const s=new Sr(r,t),o=new Sr(e,t);return s.compare(o)||s.compareBuild(o)};var Bt=Ti;const Ii=Bt,Fi=(r,e)=>r.sort((t,s)=>Ii(t,s,e));var Ai=Fi;const Li=Bt,Di=(r,e)=>r.sort((t,s)=>Li(s,t,e));var Ni=Di;const Bi=oe,ji=(r,e,t)=>Bi(r,e,t)>0;var rt=ji;const Vi=oe,xi=(r,e,t)=>Vi(r,e,t)<0;var jt=xi;const Ui=oe,Gi=(r,e,t)=>Ui(r,e,t)===0;var ms=Gi;const Mi=oe,Ji=(r,e,t)=>Mi(r,e,t)!==0;var vs=Ji;const _i=oe,Ki=(r,e,t)=>_i(r,e,t)>=0;var Vt=Ki;const Hi=oe,qi=(r,e,t)=>Hi(r,e,t)<=0;var xt=qi;const Wi=ms,zi=vs,Xi=rt,Yi=Vt,Qi=jt,Zi=xt,ea=(r,e,t,s)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Wi(r,t,s);case"!=":return zi(r,t,s);case">":return Xi(r,t,s);case">=":return Yi(r,t,s);case"<":return Qi(r,t,s);case"<=":return Zi(r,t,s);default:throw new TypeError(`Invalid operator: ${e}`)}};var ys=ea;const ta=z,ra=ye,{safeRe:Ge,t:Me}=Fe,sa=(r,e)=>{if(r instanceof ta)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(e.includePrerelease?Ge[Me.COERCEFULL]:Ge[Me.COERCE]);else{const c=e.includePrerelease?Ge[Me.COERCERTLFULL]:Ge[Me.COERCERTL];let u;for(;(u=c.exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||u.index+u[0].length!==t.index+t[0].length)&&(t=u),c.lastIndex=u.index+u[1].length+u[2].length;c.lastIndex=-1}if(t===null)return null;const s=t[2],o=t[3]||"0",n=t[4]||"0",i=e.includePrerelease&&t[5]?`-${t[5]}`:"",a=e.includePrerelease&&t[6]?`+${t[6]}`:"";return ra(`${s}.${o}.${n}${i}${a}`,e)};var oa=sa;class na{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 ia=na,ct,br;function ne(){if(br)return ct;br=1;const r=/\s+/g;class e{constructor(p,v){if(v=o(v),p instanceof e)return p.loose===!!v.loose&&p.includePrerelease===!!v.includePrerelease?p:new e(p.raw,v);if(p instanceof n)return this.raw=p.value,this.set=[[p]],this.formatted=void 0,this;if(this.options=v,this.loose=!!v.loose,this.includePrerelease=!!v.includePrerelease,this.raw=p.trim().replace(r," "),this.set=this.raw.split("||").map(w=>this.parseRange(w.trim())).filter(w=>w.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const w=this.set[0];if(this.set=this.set.filter(P=>!m(P[0])),this.set.length===0)this.set=[w];else if(this.set.length>1){for(const P of this.set)if(P.length===1&&U(P[0])){this.set=[P];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let p=0;p<this.set.length;p++){p>0&&(this.formatted+="||");const v=this.set[p];for(let w=0;w<v.length;w++)w>0&&(this.formatted+=" "),this.formatted+=v[w].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(p){const w=((this.options.includePrerelease&&g)|(this.options.loose&&R))+":"+p,P=s.get(w);if(P)return P;const b=this.options.loose,C=b?c[u.HYPHENRANGELOOSE]:c[u.HYPHENRANGE];p=p.replace(C,Z(this.options.includePrerelease)),i("hyphen replace",p),p=p.replace(c[u.COMPARATORTRIM],l),i("comparator trim",p),p=p.replace(c[u.TILDETRIM],d),i("tilde trim",p),p=p.replace(c[u.CARETTRIM],h),i("caret trim",p);let I=p.split(" ").map(A=>x(A,this.options)).join(" ").split(/\s+/).map(A=>M(A,this.options));b&&(I=I.filter(A=>(i("loose invalid filter",A,this.options),!!A.match(c[u.COMPARATORLOOSE])))),i("range list",I);const k=new Map,D=I.map(A=>new n(A,this.options));for(const A of D){if(m(A))return[A];k.set(A.value,A)}k.size>1&&k.has("")&&k.delete("");const G=[...k.values()];return s.set(w,G),G}intersects(p,v){if(!(p instanceof e))throw new TypeError("a Range is required");return this.set.some(w=>N(w,v)&&p.set.some(P=>N(P,v)&&w.every(b=>P.every(C=>b.intersects(C,v)))))}test(p){if(!p)return!1;if(typeof p=="string")try{p=new a(p,this.options)}catch{return!1}for(let v=0;v<this.set.length;v++)if(fe(this.set[v],p,this.options))return!0;return!1}}ct=e;const t=ia,s=new t,o=Nt,n=st(),i=tt,a=z,{safeRe:c,t:u,comparatorTrimReplace:l,tildeTrimReplace:d,caretTrimReplace:h}=Fe,{FLAG_INCLUDE_PRERELEASE:g,FLAG_LOOSE:R}=et,m=y=>y.value==="<0.0.0-0",U=y=>y.value==="",N=(y,p)=>{let v=!0;const w=y.slice();let P=w.pop();for(;v&&w.length;)v=w.every(b=>P.intersects(b,p)),P=w.pop();return v},x=(y,p)=>(i("comp",y,p),y=B(y,p),i("caret",y),y=_(y,p),i("tildes",y),y=le(y,p),i("xrange",y),y=H(y,p),i("stars",y),y),F=y=>!y||y.toLowerCase()==="x"||y==="*",_=(y,p)=>y.trim().split(/\s+/).map(v=>pe(v,p)).join(" "),pe=(y,p)=>{const v=p.loose?c[u.TILDELOOSE]:c[u.TILDE];return y.replace(v,(w,P,b,C,I)=>{i("tilde",y,w,P,b,C,I);let k;return F(P)?k="":F(b)?k=`>=${P}.0.0 <${+P+1}.0.0-0`:F(C)?k=`>=${P}.${b}.0 <${P}.${+b+1}.0-0`:I?(i("replaceTilde pr",I),k=`>=${P}.${b}.${C}-${I} <${P}.${+b+1}.0-0`):k=`>=${P}.${b}.${C} <${P}.${+b+1}.0-0`,i("tilde return",k),k})},B=(y,p)=>y.trim().split(/\s+/).map(v=>Q(v,p)).join(" "),Q=(y,p)=>{i("caret",y,p);const v=p.loose?c[u.CARETLOOSE]:c[u.CARET],w=p.includePrerelease?"-0":"";return y.replace(v,(P,b,C,I,k)=>{i("caret",y,P,b,C,I,k);let D;return F(b)?D="":F(C)?D=`>=${b}.0.0${w} <${+b+1}.0.0-0`:F(I)?b==="0"?D=`>=${b}.${C}.0${w} <${b}.${+C+1}.0-0`:D=`>=${b}.${C}.0${w} <${+b+1}.0.0-0`:k?(i("replaceCaret pr",k),b==="0"?C==="0"?D=`>=${b}.${C}.${I}-${k} <${b}.${C}.${+I+1}-0`:D=`>=${b}.${C}.${I}-${k} <${b}.${+C+1}.0-0`:D=`>=${b}.${C}.${I}-${k} <${+b+1}.0.0-0`):(i("no pr"),b==="0"?C==="0"?D=`>=${b}.${C}.${I}${w} <${b}.${C}.${+I+1}-0`:D=`>=${b}.${C}.${I}${w} <${b}.${+C+1}.0-0`:D=`>=${b}.${C}.${I} <${+b+1}.0.0-0`),i("caret return",D),D})},le=(y,p)=>(i("replaceXRanges",y,p),y.split(/\s+/).map(v=>X(v,p)).join(" ")),X=(y,p)=>{y=y.trim();const v=p.loose?c[u.XRANGELOOSE]:c[u.XRANGE];return y.replace(v,(w,P,b,C,I,k)=>{i("xRange",y,w,P,b,C,I,k);const D=F(b),G=D||F(C),A=G||F(I),ce=A;return P==="="&&ce&&(P=""),k=p.includePrerelease?"-0":"",D?P===">"||P==="<"?w="<0.0.0-0":w="*":P&&ce?(G&&(C=0),I=0,P===">"?(P=">=",G?(b=+b+1,C=0,I=0):(C=+C+1,I=0)):P==="<="&&(P="<",G?b=+b+1:C=+C+1),P==="<"&&(k="-0"),w=`${P+b}.${C}.${I}${k}`):G?w=`>=${b}.0.0${k} <${+b+1}.0.0-0`:A&&(w=`>=${b}.${C}.0${k} <${b}.${+C+1}.0-0`),i("xRange return",w),w})},H=(y,p)=>(i("replaceStars",y,p),y.trim().replace(c[u.STAR],"")),M=(y,p)=>(i("replaceGTE0",y,p),y.trim().replace(c[p.includePrerelease?u.GTE0PRE:u.GTE0],"")),Z=y=>(p,v,w,P,b,C,I,k,D,G,A,ce)=>(F(w)?v="":F(P)?v=`>=${w}.0.0${y?"-0":""}`:F(b)?v=`>=${w}.${P}.0${y?"-0":""}`:C?v=`>=${v}`:v=`>=${v}${y?"-0":""}`,F(D)?k="":F(G)?k=`<${+D+1}.0.0-0`:F(A)?k=`<${D}.${+G+1}.0-0`:ce?k=`<=${D}.${G}.${A}-${ce}`:y?k=`<${D}.${G}.${+A+1}-0`:k=`<=${k}`,`${v} ${k}`.trim()),fe=(y,p,v)=>{for(let w=0;w<y.length;w++)if(!y[w].test(p))return!1;if(p.prerelease.length&&!v.includePrerelease){for(let w=0;w<y.length;w++)if(i(y[w].semver),y[w].semver!==n.ANY&&y[w].semver.prerelease.length>0){const P=y[w].semver;if(P.major===p.major&&P.minor===p.minor&&P.patch===p.patch)return!0}return!1}return!0};return ct}var lt,Pr;function st(){if(Pr)return lt;Pr=1;const r=Symbol("SemVer ANY");class e{static get ANY(){return r}constructor(l,d){if(d=t(d),l instanceof e){if(l.loose===!!d.loose)return l;l=l.value}l=l.trim().split(/\s+/).join(" "),i("comparator",l,d),this.options=d,this.loose=!!d.loose,this.parse(l),this.semver===r?this.value="":this.value=this.operator+this.semver.version,i("comp",this)}parse(l){const d=this.options.loose?s[o.COMPARATORLOOSE]:s[o.COMPARATOR],h=l.match(d);if(!h)throw new TypeError(`Invalid comparator: ${l}`);this.operator=h[1]!==void 0?h[1]:"",this.operator==="="&&(this.operator=""),h[2]?this.semver=new a(h[2],this.options.loose):this.semver=r}toString(){return this.value}test(l){if(i("Comparator.test",l,this.options.loose),this.semver===r||l===r)return!0;if(typeof l=="string")try{l=new a(l,this.options)}catch{return!1}return n(l,this.operator,this.semver,this.options)}intersects(l,d){if(!(l instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new c(l.value,d).test(this.value):l.operator===""?l.value===""?!0:new c(this.value,d).test(l.semver):(d=t(d),d.includePrerelease&&(this.value==="<0.0.0-0"||l.value==="<0.0.0-0")||!d.includePrerelease&&(this.value.startsWith("<0.0.0")||l.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&l.operator.startsWith(">")||this.operator.startsWith("<")&&l.operator.startsWith("<")||this.semver.version===l.semver.version&&this.operator.includes("=")&&l.operator.includes("=")||n(this.semver,"<",l.semver,d)&&this.operator.startsWith(">")&&l.operator.startsWith("<")||n(this.semver,">",l.semver,d)&&this.operator.startsWith("<")&&l.operator.startsWith(">")))}}lt=e;const t=Nt,{safeRe:s,t:o}=Fe,n=ys,i=tt,a=z,c=ne();return lt}const aa=ne(),ca=(r,e,t)=>{try{e=new aa(e,t)}catch{return!1}return e.test(r)};var ot=ca;const la=ne(),ua=(r,e)=>new la(r,e).set.map(t=>t.map(s=>s.value).join(" ").trim().split(" "));var da=ua;const pa=z,fa=ne(),ha=(r,e,t)=>{let s=null,o=null,n=null;try{n=new fa(e,t)}catch{return null}return r.forEach(i=>{n.test(i)&&(!s||o.compare(i)===-1)&&(s=i,o=new pa(s,t))}),s};var ga=ha;const ma=z,va=ne(),ya=(r,e,t)=>{let s=null,o=null,n=null;try{n=new va(e,t)}catch{return null}return r.forEach(i=>{n.test(i)&&(!s||o.compare(i)===1)&&(s=i,o=new ma(s,t))}),s};var wa=ya;const ut=z,Sa=ne(),Rr=rt,ba=(r,e)=>{r=new Sa(r,e);let t=new ut("0.0.0");if(r.test(t)||(t=new ut("0.0.0-0"),r.test(t)))return t;t=null;for(let s=0;s<r.set.length;++s){const o=r.set[s];let n=null;o.forEach(i=>{const a=new ut(i.semver.version);switch(i.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!n||Rr(a,n))&&(n=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${i.operator}`)}}),n&&(!t||Rr(t,n))&&(t=n)}return t&&r.test(t)?t:null};var Pa=ba;const Ra=ne(),Ca=(r,e)=>{try{return new Ra(r,e).range||"*"}catch{return null}};var Ea=Ca;const ka=z,ws=st(),{ANY:Oa}=ws,$a=ne(),Ta=ot,Cr=rt,Er=jt,Ia=xt,Fa=Vt,Aa=(r,e,t,s)=>{r=new ka(r,s),e=new $a(e,s);let o,n,i,a,c;switch(t){case">":o=Cr,n=Ia,i=Er,a=">",c=">=";break;case"<":o=Er,n=Fa,i=Cr,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Ta(r,e,s))return!1;for(let u=0;u<e.set.length;++u){const l=e.set[u];let d=null,h=null;if(l.forEach(g=>{g.semver===Oa&&(g=new ws(">=0.0.0")),d=d||g,h=h||g,o(g.semver,d.semver,s)?d=g:i(g.semver,h.semver,s)&&(h=g)}),d.operator===a||d.operator===c||(!h.operator||h.operator===a)&&n(r,h.semver))return!1;if(h.operator===c&&i(r,h.semver))return!1}return!0};var Ut=Aa;const La=Ut,Da=(r,e,t)=>La(r,e,">",t);var Na=Da;const Ba=Ut,ja=(r,e,t)=>Ba(r,e,"<",t);var Va=ja;const kr=ne(),xa=(r,e,t)=>(r=new kr(r,t),e=new kr(e,t),r.intersects(e,t));var Ua=xa;const Ga=ot,Ma=oe;var Ja=(r,e,t)=>{const s=[];let o=null,n=null;const i=r.sort((l,d)=>Ma(l,d,t));for(const l of i)Ga(l,e,t)?(n=l,o||(o=l)):(n&&s.push([o,n]),n=null,o=null);o&&s.push([o,null]);const a=[];for(const[l,d]of s)l===d?a.push(l):!d&&l===i[0]?a.push("*"):d?l===i[0]?a.push(`<=${d}`):a.push(`${l} - ${d}`):a.push(`>=${l}`);const c=a.join(" || "),u=typeof e.raw=="string"?e.raw:String(e);return c.length<u.length?c:e};const Or=ne(),Gt=st(),{ANY:dt}=Gt,Se=ot,Mt=oe,_a=(r,e,t={})=>{if(r===e)return!0;r=new Or(r,t),e=new Or(e,t);let s=!1;e:for(const o of r.set){for(const n of e.set){const i=Ha(o,n,t);if(s=s||i!==null,i)continue e}if(s)return!1}return!0},Ka=[new Gt(">=0.0.0-0")],$r=[new Gt(">=0.0.0")],Ha=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===dt){if(e.length===1&&e[0].semver===dt)return!0;t.includePrerelease?r=Ka:r=$r}if(e.length===1&&e[0].semver===dt){if(t.includePrerelease)return!0;e=$r}const s=new Set;let o,n;for(const g of r)g.operator===">"||g.operator===">="?o=Tr(o,g,t):g.operator==="<"||g.operator==="<="?n=Ir(n,g,t):s.add(g.semver);if(s.size>1)return null;let i;if(o&&n){if(i=Mt(o.semver,n.semver,t),i>0)return null;if(i===0&&(o.operator!==">="||n.operator!=="<="))return null}for(const g of s){if(o&&!Se(g,String(o),t)||n&&!Se(g,String(n),t))return null;for(const R of e)if(!Se(g,String(R),t))return!1;return!0}let a,c,u,l,d=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1,h=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 g of e){if(l=l||g.operator===">"||g.operator===">=",u=u||g.operator==="<"||g.operator==="<=",o){if(h&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===h.major&&g.semver.minor===h.minor&&g.semver.patch===h.patch&&(h=!1),g.operator===">"||g.operator===">="){if(a=Tr(o,g,t),a===g&&a!==o)return!1}else if(o.operator===">="&&!Se(o.semver,String(g),t))return!1}if(n){if(d&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===d.major&&g.semver.minor===d.minor&&g.semver.patch===d.patch&&(d=!1),g.operator==="<"||g.operator==="<="){if(c=Ir(n,g,t),c===g&&c!==n)return!1}else if(n.operator==="<="&&!Se(n.semver,String(g),t))return!1}if(!g.operator&&(n||o)&&i!==0)return!1}return!(o&&u&&!n&&i!==0||n&&l&&!o&&i!==0||h||d)},Tr=(r,e,t)=>{if(!r)return e;const s=Mt(r.semver,e.semver,t);return s>0?r:s<0||e.operator===">"&&r.operator===">="?e:r},Ir=(r,e,t)=>{if(!r)return e;const s=Mt(r.semver,e.semver,t);return s<0?r:s>0||e.operator==="<"&&r.operator==="<="?e:r};var qa=_a;const pt=Fe,Fr=et,Wa=z,Ar=gs,za=ye,Xa=ri,Ya=ni,Qa=ai,Za=li,ec=pi,tc=gi,rc=yi,sc=bi,oc=oe,nc=Ei,ic=$i,ac=Bt,cc=Ai,lc=Ni,uc=rt,dc=jt,pc=ms,fc=vs,hc=Vt,gc=xt,mc=ys,vc=oa,yc=st(),wc=ne(),Sc=ot,bc=da,Pc=ga,Rc=wa,Cc=Pa,Ec=Ea,kc=Ut,Oc=Na,$c=Va,Tc=Ua,Ic=Ja,Fc=qa;var Ac={parse:za,valid:Xa,clean:Ya,inc:Qa,diff:Za,major:ec,minor:tc,patch:rc,prerelease:sc,compare:oc,rcompare:nc,compareLoose:ic,compareBuild:ac,sort:cc,rsort:lc,gt:uc,lt:dc,eq:pc,neq:fc,gte:hc,lte:gc,cmp:mc,coerce:vc,Comparator:yc,Range:wc,satisfies:Sc,toComparators:bc,maxSatisfying:Pc,minSatisfying:Rc,minVersion:Cc,validRange:Ec,outside:kc,gtr:Oc,ltr:$c,intersects:Tc,simplifyRange:Ic,subset:Fc,SemVer:Wa,re:pt.re,src:pt.src,tokens:pt.t,SEMVER_SPEC_VERSION:Fr.SEMVER_SPEC_VERSION,RELEASE_TYPES:Fr.RELEASE_TYPES,compareIdentifiers:Ar.compareIdentifiers,rcompareIdentifiers:Ar.rcompareIdentifiers};const Lc=Un(Ac),Dc={minDelay:1500},Nc="__no_updates__";class Bc extends j.PollComputablePool{constructor(t,s,o={}){super({...o,...Dc},s);S(this,"http");S(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_${V(t)}`;default:return Nc}}async readValue(t){var s,o;try{const n=t.currentSpec;switch(n.type){case"dev-v1":try{const i=await kt(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 W.tryLoadPackDescription(n.folder,this.logger);if(i===void 0)return{suggestions:[]};const a=await ze(i);return a===n.mtime?{suggestions:[]}:{mainSuggestion:{...n,mtime:a},suggestions:[]}}catch(i){return this.logger.warn(i),{suggestions:[]}}case"from-registry-v2":try{const{versionLock:i,skipVersion:a}=t.settings;if(i==="patch")return{suggestions:[]};const c=this.registryProvider.getRegistry(n.registryUrl);let u=this.preferredUpdateChannel;if(u===void 0)if(n.channel===void 0)if(await c.getLatestOverview(n.id,q.StableChannel))u=q.StableChannel;else{if(await c.getLatestOverview(n.id,q.AnyChannel)===void 0)return this.logger.error(`No "any" channel record for ${q.blockPackIdToString(n.id)}`),{suggestions:[]};u=q.AnyChannel}else u=n.channel;const l=await c.getUpdateSuggestions(n.id,u);if(l===void 0||l.length===0)return{suggestions:[]};l.reverse();let d;switch(i){case void 0:d=l[0].update;break;case"major":d=(s=l.find(R=>R.type!=="major"))==null?void 0:s.update;break;case"minor":d=(o=l.find(R=>R.type==="patch"))==null?void 0:o.update;break}const h=l.map(({type:R,update:m})=>({type:R,update:{...n,id:{...n.id,version:m}}}));if(d===void 0)return{suggestions:h};if(a!==void 0&&Lc.lte(d,a))return{suggestions:h};const g={...n,id:{...n.id,version:d}};return(async()=>{try{await c.getComponents(g.id)}catch(R){this.logger.warn(R)}})(),{suggestions:h,mainSuggestion:g}}catch(i){return this.logger.warn(i),{suggestions:[]}}default:return{suggestions:[]}}}catch(n){return this.logger.warn(n),{suggestions:[]}}}resultsEqual(t,s){return V(t)===V(s)}}class Lr{constructor(){S(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 s=this.resources.get(t);s===void 0&&(s={refCount:0,resource:this.createNewResource(e)},this.resources.set(t,s)),s.refCount++;let o=!1;return{resource:s.resource,key:t,unref:()=>{o||(s.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 be;function ue(){return be||(be={logPFrameRequests:process.env.MI_LOG_PFRAMES!==void 0,dumpInitialTreeState:process.env.MI_DUMP_INITIAL_TREE_STATE!==void 0},process.env.MI_LOG_TREE_STAT&&(be.logTreeStats=process.env.MI_LOG_TREE_STAT==="cumulative"?"cumulative":"per-request"),be)}function ke(r){return String(r.id)}const jc=["Int","Long","Float","Double","String","Bytes"];function ft(r){const e=[],t=[];for(const s of r)s.type==="bySingleColumn"?(e.push(s),t.push({...s,type:"bySingleColumnV2"})):t.push(s);if(e.length>0){const s=JSON.stringify(e);console.warn(`type overriten from 'bySingleColumn' to 'bySingleColumnV2' for filters: ${s}`)}return t}const Pe=(r,e)=>typeof e=="bigint"?e.toString():e;class Vc{constructor(e,t,s,o){S(this,"rustPFrame");S(this,"blobIdToResource",new Map);S(this,"blobHandleComputables",new Map);S(this,"preloadBlob",async e=>{const t=e.map(s=>this.getOrCreateComputableForBlob(s));for(const s of t)await s.awaitStableFullValue()});S(this,"resolveBlob",async e=>{const t=this.getOrCreateComputableForBlob(e);return this.blobDriver.getLocalPath((await t.awaitStableValue()).handle)});S(this,"resolveBlobContent",async e=>{try{const t=this.getOrCreateComputableForBlob(e),s=this.blobDriver.getLocalPath((await t.awaitStableValue()).handle);return await this.blobContentCache.forceFetch(s)}catch(t){const s=JSON.stringify(t);throw console.log(`resolveBlobContent catched error: ${s}`),t}});this.blobDriver=e,this.logger=t,this.blobContentCache=s;const n=(a,c)=>{switch(a){default:case"info":return this.logger.info(c);case"warn":return this.logger.warn(c);case"error":return this.logger.error(c)}};for(const a of o)for(const c of Ao(a.data))this.blobIdToResource.set(ke(c),c);const i=[...new Map(o.map(a=>({...a,data:Lo(a.data,ke)})).map(a=>[V(a),a])).values()];try{const a=new Is.PFrame(ue().logPFrameRequests?n:void 0);a.setDataSource(this);for(const c of i)a.addColumnSpec(c.id,c.spec),a.setColumnData(c.id,c.data);this.rustPFrame=a}catch(a){throw new Error(`Rust PFrame creation failed, columns: ${JSON.stringify(i)}, error: ${a}`)}}getOrCreateComputableForBlob(e){let t=this.blobHandleComputables.get(e);if(t!==void 0)return t;const s=this.blobIdToResource.get(e);if(s===void 0)throw new Error(`Blob with id ${e} not found.`);return t=this.blobDriver.getDownloadedBlob(s).withPreCalculatedValueTree(),this.blobHandleComputables.set(e,t),t}[Symbol.dispose](){for(const e of this.blobHandleComputables.values())e.resetState();this.rustPFrame.dispose()}}class xc{constructor(e){this.table=e}[Symbol.dispose](){this.table.then(e=>e.dispose())}}class Uc{constructor(e,t){S(this,"pFrames");S(this,"pTables");S(this,"blobContentCache");this.blobDriver=e,this.logger=t;const s=new Nr.LRUCache({maxSize:1e9,fetchMethod:async o=>await Vr.readFile(o),sizeCalculation:o=>o.length});this.blobContentCache=s,this.pFrames=new class extends Lr{constructor(o,n){super(),this.blobDriver=o,this.logger=n}createNewResource(o){return ue().logPFrameRequests&&t.info(`PFrame creation (pFrameHandle = ${this.calculateParamsKey(o)}): ${JSON.stringify(o,Pe)}`),new Vc(this.blobDriver,this.logger,s,o)}calculateParamsKey(o){return Mc(o)}}(this.blobDriver,this.logger),this.pTables=new class extends Lr{constructor(o){super(),this.pFrames=o}createNewResource(o){const n=o.pFrameHandle;ue().logPFrameRequests&&t.info(`PTable creation (pTableHandle = ${this.calculateParamsKey(o)}): ${JSON.stringify(o,Pe)}`);const i=this.pFrames.getByKey(n).rustPFrame.createTable({src:Oe(o.def.src),filters:ft(o.def.filters)},o.signal).then(async a=>{if(o.def.sorting.length===0)return a;try{return await a.sort(o.def.sorting,o.signal)}finally{a.dispose()}});return new xc(i)}calculateParamsKey(o){return Gc(o)}}(this.pFrames)}createPFrame(e,t){const s=e.filter(n=>jc.find(i=>i===n.spec.valueType)).map(n=>L.mapPObjectData(n,i=>_e.isPlTreeNodeAccessor(i)?xo(i):L.isDataInfo(i)?L.mapDataInfo(i,a=>a.resourceInfo):Uo(n.spec,i))),o=this.pFrames.acquire(s);return t.addOnDestroy(o.unref),o.key}createPTable(e,t,s){const o=this.createPFrame(L.extractAllColumns(e.src),t),n=L.mapPTableDef(e,a=>a.id),i=this.pTables.acquire({def:n,pFrameHandle:o,signal:s});return ue().logPFrameRequests&&this.logger.info(`Create PTable call (pFrameHandle = ${o}; pTableHandle = ${JSON.stringify(i)}): ${JSON.stringify(L.mapPTableDef(e,a=>a.spec),Pe)}`),t.addOnDestroy(i.unref),i.key}async findColumns(e,t){const s={...t,compatibleWith:t.compatibleWith.length!==0?[{axesSpec:[...new Map(t.compatibleWith.map(n=>[V(n),n])).values()],qualifications:[]}]:[]};return{hits:(await this.pFrames.getByKey(e).rustPFrame.findColumns(s)).hits.filter(n=>n.mappingVariants.length===0||n.mappingVariants.some(i=>i.qualifications.forHit.length===0&&i.qualifications.forQueries.every(a=>a.length===0))).map(n=>n.hit)}}async getColumnSpec(e,t){return await this.pFrames.getByKey(e).rustPFrame.getColumnSpec(t)}async listColumns(e){return await this.pFrames.getByKey(e).rustPFrame.listColumns()}async calculateTableData(e,t,s){return ue().logPFrameRequests&&this.logger.info(`Call calculateTableData, handle = ${e}, request = ${JSON.stringify(t,Pe)}`),await this.pFrames.getByKey(e).rustPFrame.createTable({src:Oe(t.src),filters:ft(t.filters)},s).then(async o=>{if(t.sorting.length===0)return o;try{return await o.sort(t.sorting,s)}finally{o.dispose()}}).then(async o=>{try{const n=o.getSpec(),i=await o.getData([...n.keys()]);return n.map((a,c)=>({spec:a,data:i[c]}))}finally{o.dispose()}})}async getUniqueValues(e,t,s){return ue().logPFrameRequests&&this.logger.info(`Call getUniqueValues, handle = ${e}, request = ${JSON.stringify(t,Pe)}`),await this.pFrames.getByKey(e).rustPFrame.getUniqueValues({...t,filters:ft(t.filters)},s)}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,s){return await(await this.pTables.getByKey(e).table).getData(t,s)}}function Oe(r){switch(r.type){case"column":return{type:"column",columnId:r.column};case"slicedColumn":return{type:"slicedColumn",columnId:r.column,newId:r.newId,axisFilters:r.axisFilters};case"inner":case"full":return{type:r.type,entries:r.entries.map(e=>Oe(e))};case"outer":return{type:"outer",primary:Oe(r.primary),secondary:r.secondary.map(e=>Oe(e))};default:O.assertNever(r)}}function Gc(r){const e=te.createHash("sha256");return e.update(V(r)),e.digest().toString("hex")}function Mc(r){const e=[...r].map(s=>L.mapPObjectData(s,o=>{let n;const i=o.type;switch(i){case"Json":n={type:o.type,keyLength:o.keyLength,payload:Object.entries(o.data).map(([a,c])=>({key:a,value:c}))};break;case"JsonPartitioned":n={type:o.type,keyLength:o.partitionKeyLength,payload:Object.entries(o.parts).map(([a,c])=>({key:a,value:ke(c)}))};break;case"BinaryPartitioned":n={type:o.type,keyLength:o.partitionKeyLength,payload:Object.entries(o.parts).map(([a,c])=>({key:a,value:[ke(c.index),ke(c.values)]}))};break;default:throw Error(`unsupported resource type: ${JSON.stringify(i)}`)}return n.payload.sort((a,c)=>a.key.localeCompare(c.key)),n}));e.sort((s,o)=>s.id.localeCompare(o.id));const t=te.createHash("sha256");return t.update(V(e)),t.digest().toString("hex")}async function Ss(r,e,t){const s={...Lt,...Dt(e),...t},o=new O.HmacSha256Signer(s.localSecret),n=re.createDownloadClient(s.logger,r,s.localProjections),i=re.createLogsClient(r,s.logger),a=re.createUploadBlobClient(r,s.logger),c=re.createUploadProgressClient(r,s.logger),u=new re.DownloadDriver(s.logger,n,i,s.blobDownloadPath,o,s.blobDriverOps),l=new re.DownloadBlobToURLDriver(s.logger,o,n,s.downloadBlobToURLPath,s.downloadBlobToURLDriverOps),d=new re.UploadDriver(s.logger,o,a,c,s.uploadDriverOps),h=new re.LogsStreamDriver(s.logger,i,s.logStreamDriverOps),g=new re.LogsDriver(s.logger,h,u),R=await re.LsDriver.init(s.logger,r,o,s.localProjections,s.openFileDialogCallback,s.virtualLocalStoragesOverride),m=new Uc(u,s.logger);return{blobDriver:u,blobToURLDriver:l,logDriver:g,lsDriver:R,signer:o,uploadDriver:d,pFrameDriver:m}}class Jt{constructor(e,t,s,o,n,i,a,c){S(this,"pl");S(this,"projectList");S(this,"openedProjectsByRid",new Map);this.env=e,this.driverKit=t,this.signer=s,this.projectListResourceId=o,this.openedProjectsList=n,this.projectListTree=i,this.blockRegistryProvider=a,this.projectList=c,this.pl=this.env.pl}get internalDriverKit(){return this.env.driverKit}async createProject(e,t=te.randomUUID()){const s=await this.pl.withWriteTx("MLCreateProject",async o=>{const n=await Fo(o,e);return o.createField(f.field(this.projectListResourceId,t),"Dynamic",n),await o.commit(),await f.toGlobalResourceId(n)});return await this.projectListTree.refreshState(),s}async setProjectMeta(e,t,s){await se(this.pl,e,s,o=>{o.setMeta(t)}),await this.projectListTree.refreshState()}async deleteProject(e){await this.pl.withWriteTx("MLRemoveProject",async t=>{t.removeField(f.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 s=(await t.getField(f.field(this.projectListResourceId,e))).value;if(f.isNullResourceId(s))throw new Error("Unexpected project list structure.");return s})}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 Ze.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 O.HmacSha256Signer.generateSecret()}static async init(e,t,s){const o={...ds,...ps(t),...s};o.defaultTreeOptions.logStat=ue().logTreeStats,o.debugOps.dumpInitialTreeState=ue().dumpInitialTreeState;const n=await e.withWriteTx("MLInitialization",async m=>{const U=f.field(m.clientRoot,to);m.createField(U,"Dynamic");const N=await m.getField(U);if(f.isNullResourceId(N.value)){const x=m.createEphemeral(Jr);return m.lock(x),m.setField(U,x),await m.commit(),await x.globalId}else return N.value}),i=o.logger,a=await Ss(e,t,o),c=new We.RetryAgent(e.httpDispatcher,{minTimeout:250,maxRetries:4}),u=new Ur(c),l=new Co(u,a.signer,c),d=new re.DownloadUrlDriver(i,e.httpDispatcher,o.frontendDownloadPath),h={pl:e,signer:a.signer,logger:i,httpDispatcher:e.httpDispatcher,retryHttpDispatcher:c,ops:o,bpPreparer:l,frontendDownloadDriver:d,driverKit:a,blockUpdateWatcher:new Bc(u,i,{minDelay:o.devBlockUpdateRecheckInterval,http:c,preferredUpdateChannel:o.preferredUpdateChannel}),quickJs:await $e.getQuickJS()},g=new j.WatchableValue([]),R=await so(e,n,g,h);return new Jt(h,a,a.signer,n,g,R.tree,u,R.computable)}}const Jc=["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"];async function _c(r,e={}){const t={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,...e},s=[];Jc.forEach(c=>{Fs.channel(c).subscribe(l=>{var h;const d=new Date().toISOString();(h=l==null?void 0:l.response)!=null&&h.headers&&(l.response.headers=l.response.headers.map(g=>g.toString())),s.push(JSON.stringify({timestamp:d,event:c,data:l}))})});const o={plPings:[],blockRegistryOverviewChecks:[],blockGARegistryOverviewChecks:[],blockRegistryUiChecks:[],blockGARegistryUiChecks:[],autoUpdateCdnChecks:[]},n=f.plAddressToConfig(r,{defaultRequestTimeout:t.pingTimeoutMs});o.plPings=await ge(t.pingCheckDurationMs,t.maxPingsPerSecond,async()=>{const u=await new f.UnauthenticatedPlClient(n).ping();return JSON.stringify(u).slice(0,t.bodyLimit)+"..."});const a=new f.UnauthenticatedPlClient(n).ll.httpDispatcher;return o.blockRegistryOverviewChecks=await ge(t.blockRegistryDurationMs,t.maxRegistryChecksPerSecond,async()=>await Re(new URL(t.blockOverviewPath,t.blockRegistryUrl),t,a)),o.blockGARegistryOverviewChecks=await ge(t.blockRegistryDurationMs,t.maxRegistryChecksPerSecond,async()=>await Re(new URL(t.blockOverviewPath,t.blockGARegistryUrl),t,a)),o.blockRegistryUiChecks=await ge(t.blockRegistryDurationMs,t.maxRegistryChecksPerSecond,async()=>await Re(new URL(t.blockUiPath,t.blockRegistryUrl),t,a)),o.blockGARegistryUiChecks=await ge(t.blockRegistryDurationMs,t.maxRegistryChecksPerSecond,async()=>await Re(new URL(t.blockUiPath,t.blockGARegistryUrl),t,a)),o.autoUpdateCdnChecks=await ge(t.autoUpdateCdnDurationMs,t.maxAutoUpdateCdnChecksPerSecond,async()=>await Re(t.autoUpdateCdnUrl,t,a)),Kc(o,r,t,s)}async function ge(r,e,t){const s=Rt(),o=[];for(;Dr(s)<r;){const n=Rt();let i;try{i={ok:!0,value:await t()}}catch(u){i={ok:!1,error:u}}const a=Dr(n);o.push({elapsedMs:a,response:i});const c=1e3/e-a;c>0&&await jr.setTimeout(c)}return o}async function Re(r,e,t){const{body:s,statusCode:o}=await We.request(r,{dispatcher:t,headersTimeout:e.httpTimeoutMs,bodyTimeout:e.httpTimeoutMs}),n=await s.text();return{statusCode:o,beginningOfBody:n.slice(0,e.bodyLimit)+"..."}}function Kc(r,e,t,s){const o=r.plPings.filter(a=>a.response.ok),n=r.plPings.filter(a=>!a.response.ok),i=[...new Set(o.map(a=>JSON.stringify(a.response.value)))];return`
2
2
  Network report:
3
3
  pl endpoint: ${e};
4
4
  options: ${JSON.stringify(t,null,2)}.
5
5
 
6
- Platforma pings: ${me(s.plPings)}
6
+ Platforma pings: ${me(r.plPings)}
7
7
 
8
- Block registry overview responses: ${me(s.blockRegistryOverviewChecks)}
8
+ Block registry overview responses: ${me(r.blockRegistryOverviewChecks)}
9
9
 
10
- Block ga registry overview responses: ${me(s.blockGARegistryOverviewChecks)}
10
+ Block ga registry overview responses: ${me(r.blockGARegistryOverviewChecks)}
11
11
 
12
- Block registry ui responses: ${me(s.blockRegistryUiChecks)}
12
+ Block registry ui responses: ${me(r.blockRegistryUiChecks)}
13
13
 
14
- Block ga registry ui responses: ${me(s.blockGARegistryUiChecks)}
14
+ Block ga registry ui responses: ${me(r.blockGARegistryUiChecks)}
15
15
 
16
- Auto-update CDN responses: ${me(s.autoUpdateCdnChecks)}
16
+ Auto-update CDN responses: ${me(r.autoUpdateCdnChecks)}
17
17
 
18
18
  Block registry overview dumps:
19
- ${JSON.stringify(s.blockRegistryOverviewChecks,null,2)}
19
+ ${JSON.stringify(r.blockRegistryOverviewChecks,null,2)}
20
20
 
21
21
  Block ga registry overview dumps:
22
- ${JSON.stringify(s.blockGARegistryOverviewChecks,null,2)}
22
+ ${JSON.stringify(r.blockGARegistryOverviewChecks,null,2)}
23
23
 
24
24
  Block registry ui dumps:
25
- ${JSON.stringify(s.blockRegistryUiChecks,null,2)}
25
+ ${JSON.stringify(r.blockRegistryUiChecks,null,2)}
26
26
 
27
27
  Block ga registry ui dumps:
28
- ${JSON.stringify(s.blockGARegistryUiChecks,null,2)}
28
+ ${JSON.stringify(r.blockGARegistryUiChecks,null,2)}
29
29
 
30
30
  Auto-update CDN dumps:
31
- ${JSON.stringify(s.autoUpdateCdnChecks,null,2)}
31
+ ${JSON.stringify(r.autoUpdateCdnChecks,null,2)}
32
32
 
33
33
  Platforma pings error dumps:
34
34
  ${JSON.stringify(n,null,2)}
@@ -37,13 +37,13 @@ Platforma pings success dump examples:
37
37
  ${JSON.stringify(i,null,2)}
38
38
 
39
39
  Undici logs:
40
- ${r.join(`
40
+ ${s.join(`
41
41
  `)}
42
- `}function me(s){const e=s.filter(o=>o.response.ok),{mean:t,median:r}=Gc(s);return`
43
- total: ${s.length};
42
+ `}function me(r){const e=r.filter(o=>o.response.ok),{mean:t,median:s}=Hc(r);return`
43
+ total: ${r.length};
44
44
  successes: ${e.length};
45
- errors: ${s.length-e.length};
45
+ errors: ${r.length-e.length};
46
46
  mean in ms: ${t};
47
- median in ms: ${r};
48
- `}function Gc(s){const e=s.map(o=>o.elapsedMs),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}}function bt(){return Date.now()}function Fr(s){return bt()-s}exports.BlockPackRegistry=Ns;exports.CentralBlockRegistry=Bs;exports.DefaultDriverKitOpsPaths=At;exports.DefaultDriverKitOpsSettings=Ft;exports.DefaultMiddleLayerOpsPaths=as;exports.DefaultMiddleLayerOpsSettings=is;exports.FrontendFromFolderResourceType=$t;exports.FrontendFromUrlResourceType=Ot;exports.MiddleLayer=Gt;exports.Project=Ye;exports.TengoTemplateGet=Jr;exports.TengoTemplateGetRegistry=_r;exports.TengoTemplateGetTemplate=Hr;exports.TengoTemplateGetTemplateURI=Kr;exports.TengoTemplatePack=lo;exports.TengoTemplatePackConvert=uo;exports.TengoTemplatePackConvertTemplate=ho;exports.TengoTemplatePackConvertTemplatePack=po;exports.V1CentralDevSnapshotRegistry=xs;exports.V1CentralRegistry=js;exports.V2RegistryProvider=jr;exports.checkNetwork=Vc;exports.createRenderTemplate=kt;exports.getDevV1PacketMtime=Et;exports.getDevV2PacketMtime=qe;exports.initDriverKit=gs;exports.loadTemplate=We;exports.prepareTemplateSpec=qr;Object.keys(A).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>A[s]})});Object.keys(q).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>q[s]})});Object.keys(Ht).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>Ht[s]})});Object.keys(h).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>h[s]})});
47
+ median in ms: ${s};
48
+ `}function Hc(r){const e=r.map(o=>o.elapsedMs),t=e.reduce((o,n)=>o+n)/e.length;let s;if(e.length>0){const o=Math.floor(e.length/2);s=e.length%2?e[o]:(e[o-1]+e[o])/2}return{mean:t,median:s}}function Rt(){return Date.now()}function Dr(r){return Rt()-r}exports.BlockPackRegistry=Us;exports.CentralBlockRegistry=Gs;exports.DefaultDriverKitOpsPaths=Dt;exports.DefaultDriverKitOpsSettings=Lt;exports.DefaultMiddleLayerOpsPaths=ps;exports.DefaultMiddleLayerOpsSettings=ds;exports.FrontendFromFolderResourceType=It;exports.FrontendFromUrlResourceType=Tt;exports.MiddleLayer=Jt;exports.Project=Ze;exports.TengoTemplateGet=Wr;exports.TengoTemplateGetRegistry=zr;exports.TengoTemplateGetTemplate=Yr;exports.TengoTemplateGetTemplateURI=Xr;exports.TengoTemplatePack=go;exports.TengoTemplatePackConvert=mo;exports.TengoTemplatePackConvertTemplate=yo;exports.TengoTemplatePackConvertTemplatePack=vo;exports.V1CentralDevSnapshotRegistry=Js;exports.V1CentralRegistry=Ms;exports.V2RegistryProvider=Ur;exports.checkNetwork=_c;exports.createRenderTemplate=$t;exports.getDevV1PacketMtime=kt;exports.getDevV2PacketMtime=ze;exports.initDriverKit=Ss;exports.loadTemplate=Xe;exports.prepareTemplateSpec=Qr;Object.keys(L).forEach(r=>{r!=="default"&&!Object.prototype.hasOwnProperty.call(exports,r)&&Object.defineProperty(exports,r,{enumerable:!0,get:()=>L[r]})});Object.keys(q).forEach(r=>{r!=="default"&&!Object.prototype.hasOwnProperty.call(exports,r)&&Object.defineProperty(exports,r,{enumerable:!0,get:()=>q[r]})});Object.keys(Wt).forEach(r=>{r!=="default"&&!Object.prototype.hasOwnProperty.call(exports,r)&&Object.defineProperty(exports,r,{enumerable:!0,get:()=>Wt[r]})});Object.keys(f).forEach(r=>{r!=="default"&&!Object.prototype.hasOwnProperty.call(exports,r)&&Object.defineProperty(exports,r,{enumerable:!0,get:()=>f[r]})});
49
49
  //# sourceMappingURL=index.js.map